diff --git a/Dockerfile b/Dockerfile index 167e2c3fea6a..2611d942422b 100755 --- a/Dockerfile +++ b/Dockerfile @@ -75,7 +75,7 @@ ENV VITE_READY_PLAYER_ME_URL=$VITE_READY_PLAYER_ME_URL ENV VITE_DISABLE_LOG=$VITE_DISABLE_LOG ARG CACHE_DATE -RUN npm run check-db-exists +RUN npx cross-env ts-node --swc scripts/check-db-exists.ts RUN npm run build-client RUN rm -r packages/client/public diff --git a/dockerfiles/api/Dockerfile-api b/dockerfiles/api/Dockerfile-api index 344d7b4ec154..cbe2112d9e82 100755 --- a/dockerfiles/api/Dockerfile-api +++ b/dockerfiles/api/Dockerfile-api @@ -10,7 +10,7 @@ WORKDIR /app COPY packages/server/package.json ./packages/server/ ARG NODE_ENV -RUN npm install --loglevel notice --legacy-peer-deps +RUN npm install --loglevel notice --legacy-peer-deps --production COPY . . diff --git a/dockerfiles/api/Dockerfile-api-client b/dockerfiles/api/Dockerfile-api-client index 24cbc4444ab8..fbc62edad44a 100755 --- a/dockerfiles/api/Dockerfile-api-client +++ b/dockerfiles/api/Dockerfile-api-client @@ -10,7 +10,7 @@ WORKDIR /app COPY packages/server/package.json ./packages/server/ ARG NODE_ENV -RUN npm install --loglevel notice --legacy-peer-deps +RUN npm install --loglevel notice --legacy-peer-deps --production COPY . . @@ -37,7 +37,7 @@ COPY packages/ui/package.json ./packages/ui/ COPY patches/ ./patches/ ARG NODE_ENV -RUN npm install --loglevel notice --legacy-peer-deps +RUN npm install --loglevel notice --legacy-peer-deps --production # copy then compile the code COPY . . @@ -89,7 +89,7 @@ ENV VITE_DISABLE_LOG=$VITE_DISABLE_LOG RUN npm run build-client -RUN if [ "$SERVE_CLIENT_FROM_STORAGE_PROVIDER" = "true" ] && [ "$STORAGE_PROVIDER" = "s3" ] ; then npm run push-client-dist-to-s3 ; fi +RUN if [ "$SERVE_CLIENT_FROM_STORAGE_PROVIDER" = "true" ] && [ "$STORAGE_PROVIDER" = "s3" ] ; then npx cross-env ts-node --swc scripts/push-client-to-s3.ts ; fi RUN rm -r packages/client/public diff --git a/dockerfiles/client/Dockerfile-client b/dockerfiles/client/Dockerfile-client index 336366a44bcd..05e88e67aab2 100755 --- a/dockerfiles/client/Dockerfile-client +++ b/dockerfiles/client/Dockerfile-client @@ -15,7 +15,7 @@ COPY packages/ui/package.json ./packages/ui/ COPY patches/ ./patches/ ARG NODE_ENV -RUN npm install --loglevel notice --legacy-peer-deps +RUN npm install --loglevel notice --legacy-peer-deps --production # copy then compile the code COPY . . @@ -67,7 +67,7 @@ ENV VITE_DISABLE_LOG=$VITE_DISABLE_LOG RUN npm run build-client -RUN if [ "$SERVE_CLIENT_FROM_STORAGE_PROVIDER" = "true" ] && [ "$STORAGE_PROVIDER" = "s3" ] ; then npm run push-client-dist-to-s3 ; fi +RUN if [ "$SERVE_CLIENT_FROM_STORAGE_PROVIDER" = "true" ] && [ "$STORAGE_PROVIDER" = "s3" ] ; then npx cross-env ts-node --swc scripts/push-client-to-s3.ts ; fi RUN rm -r packages/client/public diff --git a/dockerfiles/instanceserver/Dockerfile-instanceserver b/dockerfiles/instanceserver/Dockerfile-instanceserver index 63666299c6b0..0d2b770c25bd 100755 --- a/dockerfiles/instanceserver/Dockerfile-instanceserver +++ b/dockerfiles/instanceserver/Dockerfile-instanceserver @@ -10,7 +10,7 @@ WORKDIR /app COPY packages/instanceserver/package.json ./packages/instanceserver/ ARG NODE_ENV -RUN npm install --loglevel notice --legacy-peer-deps +RUN npm install --loglevel notice --legacy-peer-deps --production COPY . . diff --git a/dockerfiles/taskserver/Dockerfile-taskserver b/dockerfiles/taskserver/Dockerfile-taskserver index 13db39618932..c1253e684cbc 100755 --- a/dockerfiles/taskserver/Dockerfile-taskserver +++ b/dockerfiles/taskserver/Dockerfile-taskserver @@ -10,7 +10,7 @@ WORKDIR /app COPY packages/taskserver/package.json ./packages/taskserver/ ARG NODE_ENV -RUN npm install --loglevel notice --legacy-peer-deps +RUN npm install --loglevel notice --legacy-peer-deps --production COPY . . diff --git a/dockerfiles/testbot/Dockerfile-testbot b/dockerfiles/testbot/Dockerfile-testbot index e3148da8c413..5c1a54d47310 100755 --- a/dockerfiles/testbot/Dockerfile-testbot +++ b/dockerfiles/testbot/Dockerfile-testbot @@ -6,7 +6,7 @@ FROM ${ECR_URL}/${REPO_NAME}-root:latest_${STAGE} as builder # Create app directory WORKDIR /app -RUN npm install --loglevel notice --legacy-peer-deps +RUN npm install --loglevel notice --legacy-peer-deps --production # copy then compile the code COPY . . diff --git a/package.json b/package.json index b4473dec46d6..756c60724d37 100755 --- a/package.json +++ b/package.json @@ -41,12 +41,8 @@ "scripts": { "build-client": "cd packages/client && npm run build", "check": "npm run lint && npm run check-errors && npm run test && npm run test:projects && npm run build-client", - "check-db-exists": "cross-env ts-node --swc scripts/check-db-exists.ts", - "check-db-exists-only": "cross-env ts-node --swc scripts/check-db-exists-only.ts", "check-errors": "lerna run check-errors", "clean-node-modules": "npx rimraf node_modules && npx rimraf package-lock.json && npx lerna exec npx rimraf node_modules && npx lerna exec npx rimraf package-lock.json", - "cleanup-tests": "node tests/cleanup-tests.js", - "clear-projects-rebuild": "cross-env ts-node --swc scripts/clear-projects-rebuild", "create-root-package-json": "cross-env ts-node --swc scripts/create-root-package-json", "depcheck": "lerna exec --no-bail --stream -- depcheck", "dev": "npm run dev-docker && concurrently -n agones,server,client,taskserver npm:dev-agones-silent npm:dev-server npm:dev-client npm:dev-taskserver", @@ -58,34 +54,24 @@ "dev-docker": "cd scripts && docker-compose up -d", "dev-tabs": "cd scripts && ./dev-tabs.sh", "fetch-projects": "lerna exec 'git fetch -p && git rebase' --parallel --ignore @etherealengine/*", - "dev-nginx": "", "dev-reinit": "npm run dev-docker && cd packages/server && npm run dev-reinit-db", "dev-server": "cd packages/server && npm run dev", "dev-windows": "npm run dev-docker && concurrently -n agones,server,client npm:dev-agones-silent npm:dev-server npm:dev-client", "diff": "lerna diff", - "edit": "node scripts/open-editor.js", "format": "prettier --write \"packages/**/*.{ts,tsx}\"", "format-scss": "stylelint \"packages/**/*.scss\" --fix", "format-staged": "lint-staged", "init-db-production": "cross-env APP_ENV=production FORCE_DB_REFRESH=true EXIT_ON_DB_INIT=true ts-node --swc packages/server/src/index.ts", - "install-projects": "ts-node --swc scripts/install-projects.js", "lint": "prettier --check \"packages/**/*.{ts,tsx}\"", - "list-client-s3-files-to-delete": "cross-env APP_ENV=production ts-node --swc scripts/get-deletable-client-files.ts", "local": "npm run dev-docker && cross-env VITE_LOCAL_BUILD=true LOCAL=true concurrently -n agones,server,worldserver,mediaserver,client,files npm:dev-agones-silent \"cd packages/server && npm run start\" \"cd packages/instanceserver && npm run start\" \"cd packages/instanceserver && npm run start-channel\" \"cd packages/client && npm run local\" \"cd packages/server && npm run serve-local-files\"", "make-user-admin": "ts-node --swc scripts/make-user-admin.js", "migrate": "cd packages/server-core && npm run migrate", "postinstall": "patch-package", "precommit": "no-master-commits -b master", "prepare-database": "cross-env APP_ENV=production PREPARE_DATABASE=true EXIT_ON_DB_INIT=true ts-node --swc packages/server/src/index.ts", - "prune-docker-cache": "cross-env ts-node --swc scripts/prune_docker_cache.ts", "publish": "lerna publish from-package --yes --registry https://registry.npmjs.org", "publish-npm": "lerna publish from-package --yes --no-verify-access --ignore-scripts --registry https://registry.npmjs.org", "publish-github": "lerna publish from-package --yes --no-verify-access --ignore-scripts --registry https://npm.pkg.github.com", - "delete-old-s3-files": "cross-env APP_ENV=production ts-node --swc scripts/delete-old-s3-files.ts", - "push-client-dist-to-s3": "cross-env APP_ENV=production ts-node --swc scripts/push-client-to-s3.ts", - "copy-client-to-localstorage": "cross-env APP_ENV=production ts-node --swc scripts/copy-client-to-localstorage.ts", - "resave-all-scenes": "ts-node --swc scripts/resave-all-scenes.ts", - "start": "npm run dev", "test": "cross-env TEST=true lerna run test", "test-e2e": "ts-node --swc scripts/run_e2e_tests.ts", "test:projects": "cross-env TEST=true lerna run test:projects", @@ -93,12 +79,9 @@ "validate": "npm run lint && lerna run validate", "version-increment": "lerna version --conventional-commits --yes", "version-increment-no-tag": "lerna version --conventional-commits --yes --no-git-tag-version", - "bump-project-versions": "cross-env ts-node --swc scripts/bump-project-versions.js", "create-build-status": "cross-env ts-node --swc scripts/create-build-status.ts", "record-build-error": "cross-env ts-node --swc scripts/record-build-error.ts", - "record-build-success": "cross-env ts-node --swc scripts/record-build-success", - "updateProject": "cross-env ts-node --swc scripts/update-project.ts", - "updateCronjobImage": "cross-env ts-node --swc scripts/update-cronjob-image.ts" + "record-build-success": "cross-env ts-node --swc scripts/record-build-success" }, "types": "lib/", "pre-commit": [ @@ -114,7 +97,6 @@ }, "devDependencies": { "@ianvs/prettier-plugin-sort-imports": "3.7.1", - "@originjs/vite-plugin-commonjs": "^1.0.3", "@swc/core": "^1.3.41", "@types/app-root-path": "1.2.4", "@types/cli": "0.11.21", @@ -123,10 +105,12 @@ "@typescript-eslint/eslint-plugin": "5.56.0", "@typescript-eslint/parser": "5.56.0", "concurrently": "7.6.0", + "deep-object-diff": "^1.1.9", "depcheck": "1.4.3", "eslint": "8.36.0", "jsdom": "^21.1.1", "kill-port": "2.0.1", + "lerna": "6.5.1", "lint-staged": "13.2.0", "mocha": "10.2.0", "no-master-commits": "1.1.1", @@ -142,34 +126,19 @@ "supertest": "6.3.3" }, "dependencies": { - "@aws-sdk/client-cloudfront": "^3.321.1", "@aws-sdk/client-ecr": "^3.319.0", "@aws-sdk/client-s3": "^3.319.0", - "@aws-sdk/lib-storage": "^3.321.1", - "@aws-sdk/s3-presigned-post": "^3.321.1", - "@feathersjs/commons": "5.0.1", "@feathersjs/errors": "5.0.1", "@feathersjs/feathers": "5.0.1", - "@feathersjs/schema": "5.0.1", "@feathersjs/typebox": "5.0.1", "app-root-path": "3.1.0", "cli": "1.0.1", - "daisyui": "^2.51.4", "dotenv": "16.0.3", "fix-esm": "^1.0.1", - "lerna": "6.5.1", "patch-package": "^6.5.1", - "pino": "^8.11.0", - "pino-pretty": "^10.0.0", - "postcss": "^8.4.21", - "qrcode.react": "^3.1.0", - "react-json-view": "^1.21.3", - "tailwindcss": "^3.2.7", "three": "0.150.1", "three.quarks": "^0.10.2", "ts-node": "10.9.1", - "typescript": "5.0.2", - "vite-plugin-node": "^3.0.2", - "ws": "8.13.0" + "typescript": "5.0.2" } } diff --git a/packages/client-core/package.json b/packages/client-core/package.json index 6f79896d1294..81eda7770f09 100755 --- a/packages/client-core/package.json +++ b/packages/client-core/package.json @@ -28,7 +28,6 @@ "react": "18.2.0" }, "dependencies": { - "@digitalcredentials/ed25519-signature-2020": "^3.0.2", "@etherealengine/common": "^1.3.0", "@etherealengine/engine": "^1.3.0", "@etherealengine/hyperflux": "^1.3.0", @@ -44,6 +43,7 @@ "@mui/material": "5.11.13", "@mui/styled-engine-sc": "5.11.11", "@mui/x-date-pickers": "5.0.0-beta.4", + "@vladmandic/face-api": "^1.7.9", "apexcharts": "^3.37.1", "axios": "1.3.4", "classnames": "2.3.2", @@ -62,6 +62,7 @@ "notistack": "^3.0.1", "primus": "^8.0.6", "primus-client": "^7.3.4", + "qrcode.react": "^3.1.0", "react": "18.2.0", "react-apexcharts": "^1.4.0", "react-color": "^2.19.3", diff --git a/packages/client/package.json b/packages/client/package.json index c2f3a0c38f51..dd12cfcbe960 100755 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -20,9 +20,7 @@ "test": "exit 0", "local": "npm run localbuild && npm run localstart", "localbuild": "cross-env APP_ENV=production VITE_LOCAL_BUILD=true npm run build && rm -rf ../server/upload/client && cp -r ./dist ../server/upload/client", - "localstart": "cross-env APP_ENV=production VITE_LOCAL_BUILD=true npm run start", - "buildenv": "cross-env APP_ENV=production ts-node --swc scripts/create-env-production.ts", - "populate-assetlinks": "cross-env APP_ENV=production ts-node --swc scripts/populate-assetlinks.ts" + "localstart": "cross-env APP_ENV=production VITE_LOCAL_BUILD=true npm run start" }, "resolutions": { "@types/react": "18.0.28", @@ -38,17 +36,14 @@ "@etherealengine/editor": "^1.3.0", "@etherealengine/engine": "^1.3.0", "@etherealengine/hyperflux": "^1.3.0", - "@etherealengine/matchmaking": "^1.3.0", "@etherealengine/projects": "^1.3.0", "@etherealengine/ui": "^1.3.0", - "@feathersjs/koa": "^5.0.5", - "@heroicons/react": "^2.0.16", "@hookstate/core": "4.0.0-rc21", "@mui/icons-material": "5.11.11", "@mui/material": "5.11.13", "@mui/styled-engine-sc": "5.11.11", "@originjs/vite-plugin-commonjs": "^1.0.3", - "@swc/core": "^1.2.210", + "@swc/core": "^1.3.41", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/typography": "^0.5.9", "@vitejs/plugin-basic-ssl": "^1.0.1", diff --git a/packages/common/package.json b/packages/common/package.json index 726328e71623..d2a7f0d558e1 100755 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -16,20 +16,11 @@ "author": "Ethereal Engine", "license": "MIT", "dependencies": { - "@digitalbazaar/did-method-key": "^3.0.0", - "@digitalbazaar/security-document-loader": "^2.0.0", - "@digitalcredentials/bnid": "^2.1.2", - "@digitalcredentials/did-method-key": "^2.0.3", - "@digitalcredentials/vc": "^4.1.1", - "@interop/did-web-resolver": "^2.2.1", "cross-fetch": "^3.1.5", - "crypto-ld": "^7.0.0", - "deep-object-diff": "^1.1.9", "lru-cache": "8.0.4" }, "devDependencies": { "@types/mocha": "10.0.1", - "cross-env": "7.0.3", "rimraf": "4.4.0" }, "gitHead": "2313453697ca7c6b8d36b3b166b5a6445fe1c851" diff --git a/packages/common/src/credentials/credentials.ts b/packages/common/src/credentials/credentials.ts index 355b4de21b82..36450a1678df 100644 --- a/packages/common/src/credentials/credentials.ts +++ b/packages/common/src/credentials/credentials.ts @@ -1,97 +1,98 @@ -import { Ed25519Signature2020 } from '@digitalcredentials/ed25519-signature-2020' -import vcjs from '@digitalcredentials/vc' -import axios from 'axios' +// import { Ed25519Signature2020 } from '@digitalcredentials/ed25519-signature-2020' +// import vcjs from '@digitalcredentials/vc' +// import axios from 'axios' -import { securityLoader } from '@etherealengine/common/src/documentLoader' +// import { securityLoader } from '@etherealengine/common/src/documentLoader' -import { VerifiablePresentation } from '../interfaces/Web5' -import multiLogger from '../logger' +// import { VerifiablePresentation } from '../interfaces/Web5' +// import multiLogger from '../logger' // import { serverHost } from '../serverHost' -const logger = multiLogger.child({ component: 'client-core:credentials' }) +// const logger = multiLogger.child({ component: 'client-core:credentials' }) -const documentLoader = securityLoader().build() +// const documentLoader = securityLoader().build() -export const vpRequestQuery: any = { - web: { - VerifiablePresentation: { - query: [ - { - type: 'QueryByExample', - credentialQuery: [ - { - example: { - '@context': ['https://www.w3.org/2018/credentials/v1', 'https://w3id.org/xr/v1'], - type: 'XRCredential' - } - } - ] - } - ] - } - } -} +// export const vpRequestQuery: any = { +// web: { +// VerifiablePresentation: { +// query: [ +// { +// type: 'QueryByExample', +// credentialQuery: [ +// { +// example: { +// '@context': ['https://www.w3.org/2018/credentials/v1', 'https://w3id.org/xr/v1'], +// type: 'XRCredential' +// } +// } +// ] +// } +// ] +// } +// } +// } -const vcTemplates = { - EnteredVolumeEvent: { - '@context': [ - 'https://www.w3.org/2018/credentials/v1', - // The object below is a temporary (in-line) context, used for an example - // Once we settle on what our VC content is (what types we want to issue, etc) - // We'll fold them all into the 'https://w3id.org/xr/v1' context - { - etherealEvent: 'https://w3id.org/xr/v1#etherealEvent', - EnteredVolumeEvent: 'https://w3id.org/xr/v1#EnteredVolumeEvent', - CheckpointEvent: 'https://w3id.org/xr/v1#CheckpointEvent', - checkpointId: 'https://w3id.org/xr/v1#checkpointId' - } - ], - type: ['VerifiableCredential', 'XRCredential'], - // issuer is set by the server - credentialSubject: { - id: '', - etherealEvent: [ - { - type: ['EnteredVolumeEvent', 'CheckpointEvent'], - checkpointId: '12345' - } - ] - } - } -} +// const vcTemplates = { +// EnteredVolumeEvent: { +// '@context': [ +// 'https://www.w3.org/2018/credentials/v1', +// // The object below is a temporary (in-line) context, used for an example +// // Once we settle on what our VC content is (what types we want to issue, etc) +// // We'll fold them all into the 'https://w3id.org/xr/v1' context +// { +// etherealEvent: 'https://w3id.org/xr/v1#etherealEvent', +// EnteredVolumeEvent: 'https://w3id.org/xr/v1#EnteredVolumeEvent', +// CheckpointEvent: 'https://w3id.org/xr/v1#CheckpointEvent', +// checkpointId: 'https://w3id.org/xr/v1#checkpointId' +// } +// ], +// type: ['VerifiableCredential', 'XRCredential'], +// // issuer is set by the server +// credentialSubject: { +// id: '', +// etherealEvent: [ +// { +// type: ['EnteredVolumeEvent', 'CheckpointEvent'], +// checkpointId: '12345' +// } +// ] +// } +// } +// } -export async function verifyCredential(credential) { - const suite = new Ed25519Signature2020() - return vcjs.verifyCredential({ - credential, - suite, - documentLoader - }) -} +// export async function verifyCredential(credential) { +// const suite = new Ed25519Signature2020() +// return vcjs.verifyCredential({ +// credential, +// suite, +// documentLoader +// }) +// } /** * Makes a request to the server to issue a credential for a given event name and user. * @param eventName {string} - Name of event (to look up the VC template). * @param [subjectId] {string} - User's DID */ -export async function requestVcForEvent(eventName, subjectId?): Promise { - // Example VC that denotes that a user has entered a door 3d volume - const unsignedCredential = vcTemplates[eventName] - unsignedCredential.credentialSubject.id = subjectId || 'did:example:user:1234' - - // const url = new URL('/api/credentials/request', serverHost) - // let signedVc - // try { - // ;({ data: signedVc } = await axios.post(url.toString(), { credential: unsignedCredential })) - // } catch (err) { - // logger.error(err, 'Error requesting credentials issuance') - // } - - // Wrap the VC in an unsigned Verifiable Presentation - return { - '@context': ['https://www.w3.org/2018/credentials/v1'], - type: ['VerifiablePresentation'], - verifiableCredential: [unsignedCredential] - } -} +// export async function requestVcForEvent(eventName, subjectId?): Promise { +// // Example VC that denotes that a user has entered a door 3d volume +// const unsignedCredential = vcTemplates[eventName] +// unsignedCredential.credentialSubject.id = subjectId || 'did:example:user:1234' +// +// // const url = new URL('/api/credentials/request', serverHost) +// // let signedVc +// // try { +// // ;({ data: signedVc } = await axios.post(url.toString(), { credential: unsignedCredential })) +// // } catch (err) { +// // logger.error(err, 'Error requesting credentials issuance') +// // } +// +// // Wrap the VC in an unsigned Verifiable Presentation +// return { +// '@context': ['https://www.w3.org/2018/credentials/v1'], +// type: ['VerifiablePresentation'], +// verifiableCredential: [unsignedCredential] +// } +// } +export {} diff --git a/packages/common/src/documentLoader.ts b/packages/common/src/documentLoader.ts index f6c57c598229..b4d3fe9bbf68 100644 --- a/packages/common/src/documentLoader.ts +++ b/packages/common/src/documentLoader.ts @@ -1,46 +1,49 @@ -import { CachedResolver } from '@digitalcredentials/did-io' -import * as didKey from '@digitalcredentials/did-method-key' -import { Ed25519VerificationKey2020 } from '@digitalcredentials/ed25519-verification-key-2020' -import { X25519KeyAgreementKey2020 } from '@digitalcredentials/x25519-key-agreement-key-2020' -import * as didWeb from '@interop/did-web-resolver' -import cred from 'credentials-context' -import { CryptoLD } from 'crypto-ld' -import didContext from 'did-context' -import ed25519 from 'ed25519-signature-2020-context' -import { JsonLdDocumentLoader } from 'jsonld-document-loader' -import x25519 from 'x25519-key-agreement-2020-context' - -const cryptoLd = new CryptoLD() -cryptoLd.use(Ed25519VerificationKey2020) -cryptoLd.use(X25519KeyAgreementKey2020) -const didWebDriver = didWeb.driver({ cryptoLd }) - -const { - contexts: credentialsContext, - constants: { CREDENTIALS_CONTEXT_V1_URL } -} = cred -const didKeyDriver = didKey.driver() -const resolver = new CachedResolver() -resolver.use(didKeyDriver) -resolver.use(didWebDriver) - -/** - * Because none of the credential libraries are typed, we need to use implicit - * any here for the return type. - */ -/* eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types */ -export function securityLoader() { - const loader = new JsonLdDocumentLoader() - - loader.addStatic(ed25519.constants.CONTEXT_URL, ed25519.contexts.get(ed25519.constants.CONTEXT_URL)) - - loader.addStatic(x25519.constants.CONTEXT_URL, x25519.contexts.get(x25519.constants.CONTEXT_URL)) - - loader.addStatic(didContext.constants.DID_CONTEXT_URL, didContext.contexts.get(didContext.constants.DID_CONTEXT_URL)) - - loader.addStatic(CREDENTIALS_CONTEXT_V1_URL, credentialsContext.get(CREDENTIALS_CONTEXT_V1_URL)) - - loader.setDidResolver(resolver) - - return loader -} +// If this gets re-implemented, need to add the @digitalCredentials packages back to package.json dependencies +// import { CachedResolver } from '@digitalcredentials/did-io' +// import * as didKey from '@digitalcredentials/did-method-key' +// import { Ed25519VerificationKey2020 } from '@digitalcredentials/ed25519-verification-key-2020' +// import { X25519KeyAgreementKey2020 } from '@digitalcredentials/x25519-key-agreement-key-2020' +// import * as didWeb from '@interop/did-web-resolver' +// import cred from 'credentials-context' +// import { CryptoLD } from 'crypto-ld' +// import didContext from 'did-context' +// import ed25519 from 'ed25519-signature-2020-context' +// import { JsonLdDocumentLoader } from 'jsonld-document-loader' +// import x25519 from 'x25519-key-agreement-2020-context' +// +// const cryptoLd = new CryptoLD() +// cryptoLd.use(Ed25519VerificationKey2020) +// cryptoLd.use(X25519KeyAgreementKey2020) +// const didWebDriver = didWeb.driver({ cryptoLd }) +// +// const { +// contexts: credentialsContext, +// constants: { CREDENTIALS_CONTEXT_V1_URL } +// } = cred +// const didKeyDriver = didKey.driver() +// const resolver = new CachedResolver() +// resolver.use(didKeyDriver) +// resolver.use(didWebDriver) +// +// /** +// * Because none of the credential libraries are typed, we need to use implicit +// * any here for the return type. +// */ +// /* eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types */ +// export function securityLoader() { +// const loader = new JsonLdDocumentLoader() +// +// loader.addStatic(ed25519.constants.CONTEXT_URL, ed25519.contexts.get(ed25519.constants.CONTEXT_URL)) +// +// loader.addStatic(x25519.constants.CONTEXT_URL, x25519.contexts.get(x25519.constants.CONTEXT_URL)) +// +// loader.addStatic(didContext.constants.DID_CONTEXT_URL, didContext.contexts.get(didContext.constants.DID_CONTEXT_URL)) +// +// loader.addStatic(CREDENTIALS_CONTEXT_V1_URL, credentialsContext.get(CREDENTIALS_CONTEXT_V1_URL)) +// +// loader.setDidResolver(resolver) +// +// return loader +// } + +export {} diff --git a/packages/common/src/types/dauria/index.d.ts b/packages/common/src/types/dauria/index.d.ts deleted file mode 100755 index 2e24a4bfd510..000000000000 --- a/packages/common/src/types/dauria/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare module 'dauria' diff --git a/packages/common/src/types/feathers-blob/index.d.ts b/packages/common/src/types/feathers-blob/index.d.ts deleted file mode 100755 index bd47062d299a..000000000000 --- a/packages/common/src/types/feathers-blob/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare module 'feathers-blob' diff --git a/packages/common/src/types/index.d.ts b/packages/common/src/types/index.d.ts index 8e2bbd588c36..e69de29bb2d1 100644 --- a/packages/common/src/types/index.d.ts +++ b/packages/common/src/types/index.d.ts @@ -1,5 +0,0 @@ -declare module '@digitalcredentials/did-method-key' -declare module '@digitalbazaar/security-document-loader' -declare module '@interop/did-web-resolver' -declare module '@digitalcredentials/bnid' -declare module 'crypto-ld' diff --git a/packages/editor/package.json b/packages/editor/package.json index d53104831e73..c5ee3f6bb431 100755 --- a/packages/editor/package.json +++ b/packages/editor/package.json @@ -40,12 +40,7 @@ "@mui/icons-material": "5.11.11", "@mui/material": "5.11.13", "@mui/styles": "5.11.13", - "axios": "1.3.4", "behave-graph": "^0.9.10", - "classnames": "2.3.2", - "cross-env": "7.0.3", - "crypto-js": "^4.1.1", - "esbuild-plugin-sass": "1.0.1", "i18next": "21.6.16", "lodash": "4.17.21", "potpack": "^2.0.0", @@ -59,6 +54,7 @@ "react-hot-keys": "^2.7.2", "react-hotkeys-hook": "4.3.8", "react-i18next": "11.16.6", + "react-json-view": "^1.21.3", "react-router-dom": "6.9.0", "react-virtualized-auto-sizer": "1.0.7", "react-window": "1.8.8", @@ -77,7 +73,6 @@ "@types/styled-components": "5.1.26", "@types/three": "0.149.0", "@types/uuid": "^9.0.1", - "esbuild": "0.17.12", "mocha": "10.2.0", "rimraf": "4.4.0", "trace-unhandled": "2.0.1" diff --git a/packages/editor/src/services/EditorHistory.ts b/packages/editor/src/services/EditorHistory.ts index 91ce0ddc8e28..2c735349a261 100644 --- a/packages/editor/src/services/EditorHistory.ts +++ b/packages/editor/src/services/EditorHistory.ts @@ -1,5 +1,3 @@ -import { diff } from 'deep-object-diff' - import { EntityUUID } from '@etherealengine/common/src/interfaces/EntityUUID' import { SceneData, SceneJson } from '@etherealengine/common/src/interfaces/SceneInterface' import { matches, Validator } from '@etherealengine/engine/src/common/functions/MatchesUtils' diff --git a/packages/engine/package.json b/packages/engine/package.json index 7ef20d3ecd89..6ed521c77c9b 100644 --- a/packages/engine/package.json +++ b/packages/engine/package.json @@ -41,7 +41,6 @@ "@mediapipe/holistic": "^0.5.1675471629", "@pixiv/three-vrm": "^1.0.9", "@tweenjs/tween.js": "^18.6.4", - "@vladmandic/face-api": "^1.7.9", "alea": "1.0.1", "behave-graph": "^0.9.10", "bitecs": "git://github.com/NateTheGreatt/bitECS.git#056c637e05327aab8e355ebf25e9ff202b67e495", @@ -66,7 +65,6 @@ "three.quarks": "0.10.2", "ts-matches": "5.3.0", "typescript": "5.0.2", - "vite": "4.2.1", "web-worker": "1.2.0" }, "devDependencies": { diff --git a/packages/instanceserver/package.json b/packages/instanceserver/package.json index af052efef746..1adfa55df0c0 100755 --- a/packages/instanceserver/package.json +++ b/packages/instanceserver/package.json @@ -42,7 +42,9 @@ }, "types": "lib/", "dependencies": { + "@etherealengine/common": "^1.3.0", "@etherealengine/engine": "^1.3.0", + "@etherealengine/hyperflux": "^1.3.0", "@etherealengine/projects": "^1.3.0", "@etherealengine/server-core": "^1.3.0", "@feathersjs/feathers": "5.0.1", @@ -50,21 +52,22 @@ "@feathersjs/primus-client": "4.5.15", "@feathersjs/transport-commons": "5.0.1", "@google-cloud/agones-sdk": "1.30.0", - "@kubernetes/client-node": "0.18.1", "@swc/core": "^1.3.41", "cross-env": "7.0.3", - "feathers-sync": "3.0.2", "ffmpeg-static": "^5.1.0", + "jsonwebtoken": "^9.0.0", + "lodash": "^4.17.21", "mediasoup": "3.11.14", + "msgpackr": "^1.9.2", + "primus": "^8.0.7", "ps-list": "7.2.0", - "serve-favicon": "2.5.0", "trace-unhandled": "2.0.1", "ts-node": "10.9.1", - "typescript": "5.0.2" + "typescript": "5.0.2", + "uuid": "^9.0.0" }, "devDependencies": { - "@types/node": "18.15.5", - "@types/serve-favicon": "2.5.3" + "@types/node": "18.15.5" }, "gitHead": "66449f6ffba4d32c424b16b4f0667fe0ad36562c" } diff --git a/packages/instanceserver/vite.config.ts b/packages/instanceserver/vite.config.ts deleted file mode 100644 index b9d127a50176..000000000000 --- a/packages/instanceserver/vite.config.ts +++ /dev/null @@ -1,77 +0,0 @@ -/** - * - */ - -import { viteCommonjs } from '@originjs/vite-plugin-commonjs' -import packageRoot from 'app-root-path' -import fs from 'fs' -import path from 'path' -import url from 'url' -import { defineConfig, loadEnv } from 'vite' -import { VitePluginNode } from 'vite-plugin-node' - -export function dirname(importMeta) { - return path.dirname(filename(importMeta)) -} - -export function filename(importMeta) { - return importMeta.url ? url.fileURLToPath(importMeta.url) : '' -} - -export default defineConfig( - (() => { - const env = loadEnv('', process.cwd() + '../../') - process.env = { - ...process.env, - ...env - } - - return { - plugins: [ - ...VitePluginNode({ - adapter: 'koa', - appPath: './src/index.ts', - exportName: 'instanceserver', - tsCompiler: 'esbuild' - }), - viteCommonjs({ - include: ['behave-graph'] - }) - ], - server: { - host: true, - hmr: false, - port: process.env.INSTANCESERVER_PORT ? parseInt(process.env.INSTANCESERVER_PORT) : undefined, - https: { - key: fs.readFileSync(path.join(packageRoot.path, 'certs/key.pem')), - cert: fs.readFileSync(path.join(packageRoot.path, 'certs/cert.pem')) - } - }, - resolve: { - alias: {} - }, - define: { - 'process.env': process.env - }, - build: { - /* - lib: { - entry: path.resolve(dirname(import.meta), 'src/index.ts'), - name: 'etherealengine-instanceserver' - },*/ - target: 'esnext', - sourcemap: 'inline', - minify: 'esbuild', - dynamicImportVarsOptions: { - warnOnError: true - }, - rollupOptions: { - output: { - dir: 'dist', - format: 'es' - } - } - } - } - })() -) diff --git a/packages/matchmaking/README-pre-helm.md b/packages/matchmaking/README-pre-helm.md index 7bf2a53aa278..5d5aaad5dee5 100644 --- a/packages/matchmaking/README-pre-helm.md +++ b/packages/matchmaking/README-pre-helm.md @@ -27,7 +27,7 @@ eval $(minikube docker-env) ./build-all-pods.sh -REGISTRY=lagunalabs +REGISTRY=etherealengine sed "s|REGISTRY_PLACEHOLDER|$REGISTRY|g" open-match-custom-pods/matchfunction/matchfunction.yaml | sed "s|Always|Never|g" | kubectl apply -f - sed "s|REGISTRY_PLACEHOLDER|$REGISTRY|g" open-match-custom-pods/director/director.yaml | sed "s|Always|Never|g" | kubectl apply -f - ``` diff --git a/packages/matchmaking/package.json b/packages/matchmaking/package.json index 10ae23c046de..accb8f561081 100644 --- a/packages/matchmaking/package.json +++ b/packages/matchmaking/package.json @@ -21,24 +21,22 @@ "scripts": { "check-errors": "tsc --noemit", "cross-env": "7.0.3", - "dev": "vite", "test": "mocha --config .mocharc.json", "validate": "npm run test", "local-minikube-start": "minikube start", "local-minikube-stop": "minikube stop", - "open-frontend-service-port": "kubectl port-forward --namespace open-match service/open-match-frontend 51504:51504", - "ts-node": "10.9.1", - "typescript": "5.0.2" + "open-frontend-service-port": "kubectl port-forward --namespace open-match service/open-match-frontend 51504:51504" }, "dependencies": { "abort-controller": "^3.0.0", "axios": "1.3.4", - "node-fetch": "2.6.9" + "node-fetch": "2.6.9", + "ts-node": "10.9.1", + "typescript": "5.0.2" }, "devDependencies": { "@types/mocha": "10.0.1", "mocha": "10.2.0", - "nock": "13.3.0", - "vite": "4.2.1" + "nock": "13.3.0" } } diff --git a/packages/server-core/package.json b/packages/server-core/package.json index 62ba5e391d71..214eac8e60af 100755 --- a/packages/server-core/package.json +++ b/packages/server-core/package.json @@ -42,9 +42,12 @@ "migrate:make": "knex --migrations-directory ./ migrate:make" }, "dependencies": { + "@aws-sdk/client-cloudfront": "^3.321.1", "@aws-sdk/client-ecr-public": "^3.316.0", "@aws-sdk/client-s3": "^3.317.0", "@aws-sdk/client-sns": "^3.316.0", + "@aws-sdk/lib-storage": "^3.321.1", + "@aws-sdk/s3-presigned-post": "^3.321.1", "@etherealengine/common": "^1.3.0", "@etherealengine/engine": "^1.3.0", "@etherealengine/matchmaking": "^1.3.0", @@ -54,6 +57,7 @@ "@feathersjs/feathers": "5.0.1", "@feathersjs/knex": "5.0.1", "@feathersjs/koa": "5.0.1", + "@feathersjs/schema": "5.0.1", "@feathersjs/transport-commons": "5.0.1", "@ffprobe-installer/ffprobe": "^2.0.0", "@gltf-transform/core": "3.1.1", @@ -61,19 +65,17 @@ "@gltf-transform/functions": "3.1.1", "@koa/multer": "^3.0.2", "@kubernetes/client-node": "0.18.1", + "@octokit/rest": "^19.0.11", "app-root-path": "3.1.0", "bent": "^7.3.12", "chargebee": "^2.19.0", "compare-versions": "^6.0.0-rc.1", "cors-anywhere": "^0.4.4", "cross-env": "7.0.3", - "dauria": "^2.0.0", "dotenv-flow": "^3.2.0", "execa": "^5.0.0", "extract-zip": "^2.0.1", - "faker": "^5.5.3", "feathers-authentication-management": "^3.0.0", - "feathers-blob": "^2.6.0", "feathers-hooks-common": "^7.0.1", "feathers-mailer": "^3.1.0", "feathers-sequelize": "6.3.4", @@ -89,7 +91,6 @@ "koa-cors": "^0.0.16", "koa-helmet": "^7.0.2", "koa-mount": "^4.0.0", - "koa-pino-logger": "^4.0.0", "koa-simple-healthcheck": "^0.0.1", "lodash": "4.17.21", "meshoptimizer": "^0.18.1", @@ -120,8 +121,7 @@ "typescript": "5.0.2", "uint8arrays": "^3.0.0", "universal-analytics": "^0.5.3", - "uuid": "9.0.0", - "ws": "8.13.0" + "uuid": "9.0.0" }, "devDependencies": { "@types/dotenv-flow": "3.2.0", diff --git a/packages/server-core/src/projects/project/project-helper.ts b/packages/server-core/src/projects/project/project-helper.ts index 8c7c37a504ff..bbe3eef1f360 100644 --- a/packages/server-core/src/projects/project/project-helper.ts +++ b/packages/server-core/src/projects/project/project-helper.ts @@ -2,9 +2,9 @@ import { ECRClient } from '@aws-sdk/client-ecr' import { DescribeImagesCommand, ECRPUBLICClient } from '@aws-sdk/client-ecr-public' import * as k8s from '@kubernetes/client-node' import appRootPath from 'app-root-path' -import axios from 'axios' import { compareVersions } from 'compare-versions' import _ from 'lodash' +import fetch from 'node-fetch' import path from 'path' import semver from 'semver' import Sequelize, { Op } from 'sequelize' @@ -729,14 +729,15 @@ export const findBuilderTags = async (): Promise> => { }) } else { const repoSplit = builderRepo.split('/') - const registry = repoSplit.length === 1 ? 'lagunalabs' : repoSplit[0] + const registry = repoSplit.length === 1 ? 'etherealengine' : repoSplit[0] const repo = repoSplit.length === 1 ? (repoSplit[0].length === 0 ? 'etherealengine-builder' : repoSplit[0]) : repoSplit[1] try { - const result = await axios.get( + const result = await fetch( `https://registry.hub.docker.com/v2/repositories/${registry}/${repo}/tags?page_size=100` ) - return result.data.results.map((imageDetails) => { + const body = JSON.parse(Buffer.from(await result.arrayBuffer()).toString()) + return body.results.map((imageDetails) => { const tag = imageDetails.name const tagSplit = tag.split('_') return { @@ -836,7 +837,15 @@ export const getCronJobBody = (project: ProjectInterface, image: string): object name: `${process.env.RELEASE_NAME}-${project.name}-auto-update`, image, imagePullPolicy: 'IfNotPresent', - command: ['npm', 'run', 'updateProject', '--', '--projectName', `${project.name}`], + command: [ + 'npx', + 'cross-env', + 'ts-node', + '--swc', + 'scripts/update-project.ts', + '--projectName', + `${project.name}` + ], env: Object.entries(process.env).map(([key, value]) => { return { name: key, value: value } }) diff --git a/packages/server-core/src/user/discord-bot-auth/discord-bot-auth.class.ts b/packages/server-core/src/user/discord-bot-auth/discord-bot-auth.class.ts index 5be589b5cf0f..379faf241fa0 100755 --- a/packages/server-core/src/user/discord-bot-auth/discord-bot-auth.class.ts +++ b/packages/server-core/src/user/discord-bot-auth/discord-bot-auth.class.ts @@ -1,7 +1,7 @@ import { errors } from '@feathersjs/errors' import { Paginated, Params, ServiceMethods } from '@feathersjs/feathers' -import axios from 'axios' import { SequelizeServiceOptions } from 'feathers-sequelize/types' +import fetch from 'node-fetch' import { IdentityProviderInterface } from '@etherealengine/common/src/dbmodels/IdentityProvider' @@ -21,12 +21,12 @@ export class DicscordBotAuth implements Partial> { async find(params?: Params): Promise { const url = `https://discord.com/api/users/@me` try { - const authResponse = await axios.get(url, { + const authResponse = await fetch(url, { headers: { Authorization: `Bot ${params!.query!.bot_token}` } }) - const resData = authResponse.data + const resData = JSON.parse(Buffer.from(await authResponse.arrayBuffer()).toString()) if (!resData?.bot) throw new Error('The authenticated Discord user is not a bot') const token = `discord:::${resData.id}` const ipResult = (await this.app.service('identity-provider').find({ diff --git a/packages/server/package.json b/packages/server/package.json index 5ff008cef867..d7db2bbf6d46 100755 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -40,23 +40,17 @@ "migrate": "cd ../server-core && npm run migrate", "test": "echo \"TODO: no test specified\" && exit 0", "validate": "npm run build && npm run test", - "upload-avatar": "node ./scripts/upload-avatar.js", - "upload-avatar-db-only": "node ./scripts/upload-avatar.js --db-only", "serve-local-files": "http-server ./upload --ssl --cert ../../certs/cert.pem --key ../../certs/key.pem --port 8642 --cors=* --brotli --gzip" }, "types": "lib/", "dependencies": { "@etherealengine/server-core": "^1.3.0", - "@feathersjs/feathers": "5.0.1", "@feathersjs/koa": "5.0.1", - "@feathersjs/primus": "4.5.15", "@feathersjs/transport-commons": "5.0.1", - "@kubernetes/client-node": "0.18.1", "@swc/core": "^1.3.41", - "@types/koa-compress": "^4.0.3", + "app-root-path": "^3.1.0", "cli": "1.0.1", "cross-env": "7.0.3", - "feathers-sync": "3.0.2", "koa-favicon": "^2.1.0", "koa-send": "5.0.1", "koa-static": "5.0.0", @@ -68,10 +62,10 @@ "uuid": "9.0.0" }, "devDependencies": { + "@types/koa-compress": "^4.0.3", "@types/node": "18.15.5", "concurrently": "7.6.0", "http-server": "14.1.1", - "nodemon": "2.0.21", "supertest": "6.3.3" }, "gitHead": "66449f6ffba4d32c424b16b4f0667fe0ad36562c" diff --git a/packages/taskserver/package.json b/packages/taskserver/package.json index 4d632f92d711..e14d10779adc 100755 --- a/packages/taskserver/package.json +++ b/packages/taskserver/package.json @@ -40,12 +40,8 @@ }, "dependencies": { "@etherealengine/server-core": "^1.3.0", - "@feathersjs/feathers": "5.0.1", - "@feathersjs/koa": "5.0.1", - "@feathersjs/primus": "4.5.15", "@swc/core": "^1.3.41", "cross-env": "7.0.3", - "feathers-sync": "3.0.2", "typescript": "5.0.2" }, "devDependencies": { diff --git a/packages/ui/package.json b/packages/ui/package.json index 0b376f0c6f7f..7342877663cc 100755 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -37,7 +37,6 @@ }, "dependencies": { "@heroicons/react": "^2.0.16", - "@mediapipe/camera_utils": "^0.3.1675466862", "@mediapipe/drawing_utils": "^0.3.1675466124", "@mediapipe/holistic": "^0.5.1675471629", "@mui/icons-material": "5.11.11", @@ -46,7 +45,6 @@ "@tailwindcss/typography": "^0.5.9", "autoprefixer": "^10.4.14", "daisyui": "^2.51.5", - "react-webcam": "^7.0.1", "tailwind-merge": "^1.10.0", "tailwindcss": "^3.3.2", "typescript": "5.0.2" @@ -91,7 +89,6 @@ "postcss": "^8.4.23", "react": "^18.2.0", "react-dom": "18.2.0", - "react-json-view": "^1.21.3", "sass": "1.59.3", "storybook": "^7.1.0-alpha.19", "storybook-addon-react-router-v6": "^1.0.0", diff --git a/packages/xrui/package.json b/packages/xrui/package.json index 0a8faf3d4b9e..a0c02c3c1bee 100644 --- a/packages/xrui/package.json +++ b/packages/xrui/package.json @@ -40,9 +40,6 @@ }, "dependencies": { "@juggle/resize-observer": "^3.4.0", - "@loaders.gl/core": "^3.3.1", - "@loaders.gl/images": "^3.3.1", - "@zip.js/zip.js": "^2.6.79", "dexie": "^3.2.3", "fflate": "^0.7.4", "msgpackr": "^1.8.5" diff --git a/scripts/build_and_publish_package.sh b/scripts/build_and_publish_package.sh index 7bbc56dc0288..0ae674ecc348 100755 --- a/scripts/build_and_publish_package.sh +++ b/scripts/build_and_publish_package.sh @@ -106,7 +106,7 @@ else --build-arg VITE_LOGIN_WITH_WALLET=$VITE_LOGIN_WITH_WALLET . fi -npm run prune-docker-cache -- --bucket "${CACHE_BUCKET_STEM}-${PACKAGE}-cache" --releaseName $STAGE +npx cross-env ts-node --swc scripts/prune_docker_cache.ts --bucket "${CACHE_BUCKET_STEM}-${PACKAGE}-cache" --releaseName $STAGE BUILD_END_TIME=`date +"%d-%m-%yT%H-%M-%S"` echo "Ending ${PACKAGE} build at ${BUILD_END_TIME}, start time was ${BUILD_START_TIME}" diff --git a/scripts/clear-projects-rebuild.js b/scripts/clear-projects-rebuild.ts similarity index 93% rename from scripts/clear-projects-rebuild.js rename to scripts/clear-projects-rebuild.ts index 01913a0731c1..4cf4c2a8402b 100644 --- a/scripts/clear-projects-rebuild.js +++ b/scripts/clear-projects-rebuild.ts @@ -1,9 +1,9 @@ import appRootPath from 'app-root-path' /* eslint-disable @typescript-eslint/no-var-requires */ -const dotenv = require('dotenv-flow') -const cli = require('cli') -const Sequelize = require('sequelize') +import dotenv from 'dotenv-flow' +import cli from 'cli' +import Sequelize from 'sequelize' dotenv.config({ path: appRootPath.path, @@ -16,7 +16,8 @@ const db = { database: process.env.MYSQL_DATABASE ?? 'etherealengine', host: process.env.MYSQL_HOST ?? '127.0.0.1', port: process.env.MYSQL_PORT ?? 3306, - dialect: 'mysql' + dialect: 'mysql', + url: '' } db.url = process.env.MYSQL_URL ?? `mysql://${db.username}:${db.password}@${db.host}:${db.port}/${db.database}` diff --git a/scripts/convert-avatars.ts b/scripts/convert-avatars.ts index ac2bce026335..1963cef76013 100755 --- a/scripts/convert-avatars.ts +++ b/scripts/convert-avatars.ts @@ -1,13 +1,11 @@ /* eslint-disable @typescript-eslint/no-var-requires */ import appRootPath from 'app-root-path' -import axios from 'axios' import cli from 'cli' import dotenv from 'dotenv-flow' import fetch from 'node-fetch' import Sequelize, { DataTypes, Op } from 'sequelize' import { createFeathersKoaApp } from '@etherealengine/server-core/src/createApp' -import { getCachedURL } from '@etherealengine/server-core/src/media/storageprovider/getCachedURL' import { addGenericAssetToS3AndStaticResources } from '@etherealengine/server-core/src/media/upload-asset/upload-asset.service' import { ServerMode } from '@etherealengine/server-core/src/ServerState' diff --git a/scripts/convert-static-resource-url.ts b/scripts/convert-static-resource-url.ts index 254ea305b176..b9112b26b053 100644 --- a/scripts/convert-static-resource-url.ts +++ b/scripts/convert-static-resource-url.ts @@ -1,14 +1,9 @@ /* eslint-disable @typescript-eslint/no-var-requires */ import appRootPath from 'app-root-path' -import axios from 'axios' import cli from 'cli' import dotenv from 'dotenv-flow' -import fetch from 'node-fetch' -import Sequelize, { DataTypes, Op } from 'sequelize' import { createFeathersKoaApp } from '@etherealengine/server-core/src/createApp' -import { getCachedURL } from '@etherealengine/server-core/src/media/storageprovider/getCachedURL' -import { addGenericAssetToS3AndStaticResources } from '@etherealengine/server-core/src/media/upload-asset/upload-asset.service' import { ServerMode } from '@etherealengine/server-core/src/ServerState' dotenv.config({ diff --git a/scripts/resave-all-scenes.ts b/scripts/resave-all-scenes.ts index 1196d19a3451..d689fab3df87 100644 --- a/scripts/resave-all-scenes.ts +++ b/scripts/resave-all-scenes.ts @@ -33,7 +33,7 @@ import { getMutableState, getState } from '@etherealengine/hyperflux' require('fix-esm').register() /** - * USAGE: `npm run resave-all-scenes -- --write` + * USAGE: `npx ts-node --swc scripts/resave-all-scenes.ts --write` */ createDOM() diff --git a/scripts/run-builder.sh b/scripts/run-builder.sh index 4d8873c3daf5..c1242b0bacd4 100755 --- a/scripts/run-builder.sh +++ b/scripts/run-builder.sh @@ -13,13 +13,13 @@ cp -v /var/lib/docker/certs/client/* ~/.docker touch ./builder-started.txt bash ./scripts/setup_helm.sh bash ./scripts/setup_aws.sh $AWS_ACCESS_KEY $AWS_SECRET $AWS_REGION $CLUSTER_NAME -npm run check-db-exists +npx cross-env ts-node --swc scripts/check-db-exists.ts npm run prepare-database npm run create-build-status BUILDER_RUN=$(tail -1 builder-run.txt) -npm run install-projects >project-install-build-logs.txt 2>project-install-build-error.txt || npm run record-build-error -- --service=project-install +npx ts-node --swc scripts/install-projects.js >project-install-build-logs.txt 2>project-install-build-error.txt || npm run record-build-error -- --service=project-install test -s project-install-build-error.txt && npm run record-build-error -- --service=project-install -npm run create-root-package-json +npx cross-env ts-node --swc scripts/create-root-package-json.ts mv package.json package.jsonmoved mv package-root-build.json package.json npm install @@ -27,11 +27,11 @@ rm package.json mv package.jsonmoved package.json npm run prepare-database >prepare-database-build-logs.txt 2>prepare-database-build-error.txt || npm run record-build-error -- --service=prepare-database test -s prepare-database-build-error.txt && npm run record-build-error -- --service=prepare-database -cd packages/client && npm run buildenv >buildenv-build-logs.txt 2>buildenv-build-error.txt || npm run record-build-error -- --service=buildenv +cd packages/client && npx cross-env ts-node --swc scripts/create-env-production.ts >buildenv-build-logs.txt 2>buildenv-build-error.txt || npm run record-build-error -- --service=buildenv test -s buildenv-build-error.txt && npm run record-build-error -- --service=buildenv if [ -n "$TWA_LINK" ] then - npm run populate-assetlinks >populate-assetlinks-build-logs.txt >populate-assetlinks-build-logs.txt 2>populate-assetlinks-build-error.txt || npm run record-build-error -- --service=populate-assetlinks + npx cross-env ts-node --swc scripts/populate-assetlinks.ts >populate-assetlinks-build-logs.txt >populate-assetlinks-build-logs.txt 2>populate-assetlinks-build-error.txt || npm run record-build-error -- --service=populate-assetlinks test -s populate-assetlinks-build-error.txt && npm run record-build-error -- --service=populate-assetlinks fi cd ../.. @@ -54,7 +54,7 @@ npm run record-build-error -- --service=root --isDocker=true npm install -g cli @aws-sdk/client-s3 -if [ "$SERVE_CLIENT_FROM_STORAGE_PROVIDER" = "true" ] && [ "$STORAGE_PROVIDER" = "s3" ] ; then npm run list-client-s3-files-to-delete ; fi +if [ "$SERVE_CLIENT_FROM_STORAGE_PROVIDER" = "true" ] && [ "$STORAGE_PROVIDER" = "s3" ] ; then npx cross-env ts-node --swc scripts/get-deletable-client-files.ts ; fi if [ "$SERVE_CLIENT_FROM_API" = "true" ] then @@ -87,9 +87,9 @@ fi bash ./scripts/deploy.sh $RELEASE_NAME ${TAG}__${START_TIME} -npm run updateCronjobImage -- --repoName=${REPO_NAME} --tag=${TAG} --ecrUrl=${ECR_URL} --startTime=${START_TIME} +npx cross-env ts-node --swc scripts/update-cronjob-image.ts --repoName=${REPO_NAME} --tag=${TAG} --ecrUrl=${ECR_URL} --startTime=${START_TIME} -npm run clear-projects-rebuild +npx cross-env ts-node --swc scripts/clear-projects-rebuild.ts npm run record-build-success DEPLOY_TIME=`date +"%d-%m-%yT%H-%M-%S"` @@ -99,7 +99,7 @@ END_TIME=`date +"%d-%m-%yT%H-%M-%S"` echo "Started build at $START_TIME, deployed image to K8s at $DEPLOY_TIME, ended at $END_TIME" sleep 5m if [ "$SERVE_CLIENT_FROM_STORAGE_PROVIDER" = "true" ] && [ "$STORAGE_PROVIDER" = "s3" ] ; then - npm run delete-old-s3-files; + npx cross-env ts-node --swc scripts/delete-old-s3-files.ts; echo "Deleted old client files from S3" fi diff --git a/scripts/start-testbot.sh b/scripts/start-testbot.sh index f59dc668b7c5..60ab197ac809 100755 --- a/scripts/start-testbot.sh +++ b/scripts/start-testbot.sh @@ -1,2 +1,2 @@ #!/bin/bash -npm run test-e2e \ No newline at end of file +npx ts-node --swc scripts/run_e2e_tests.ts \ No newline at end of file