unoffical wafrn mirror wafrn.net
atproto social-network activitypub
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Force the usage of package-lock.json in builds

Due to us using a multi-workspace build the package-lock.json was not part of the docker context, meaning it wasn't used when it built the packages internally. This could lead to supply side attacks, where we accidentally download a later - offending - package version during docker builds

Had to update some packages to make sure backend and frontend are in sync.

Note: requires the docker compose files to be overridden. I'll see I can make the update script more clever to get that sorted

+265 -399
+10
.dockerignore
··· 6 6 public/build 7 7 build 8 8 .angular 9 + 10 + packages/backend/cache 11 + packages/backend/uploads 12 + packages/backend/environment.ts 13 + packages/backend/build 14 + packages/backend/node_modules 15 + 16 + packages/frontend/node_modules 17 + packages/frontend/dist 18 + packages/frontend/.angular
+7 -7
docker-compose.advanced.metrics.yml
··· 1 1 services: 2 2 backend: &default_backend 3 3 build: &default_backend_build 4 - context: packages/backend 5 - dockerfile: Dockerfile 4 + context: . 5 + dockerfile: packages/backend/Dockerfile 6 6 # these args configure private env vars for the backend and public env vars for the frontend 7 7 args: &default_backend_build_args 8 8 ADMIN_USER: ${ADMIN_USER} ··· 69 69 environment: 70 70 - NODE_ENV=production 71 71 volumes: 72 - - ./packages/backend/uploads:/wafrn/uploads 73 - - ./packages/backend/cache:/wafrn/cache 74 - - frontend:/wafrn/packages/frontend:ro 72 + - ./packages/backend/uploads:/app/packages/backend/uploads 73 + - ./packages/backend/cache:/app/packages/backend/cache 74 + - frontend:/app/packages/frontend:ro 75 75 76 76 migration: 77 77 <<: *default_backend ··· 88 88 frontend: 89 89 restart: unless-stopped 90 90 build: 91 - context: packages/frontend 92 - dockerfile: Dockerfile 91 + context: . 92 + dockerfile: packages/frontend/Dockerfile 93 93 args: 94 94 DOMAIN_NAME: ${DOMAIN_NAME} 95 95 PDS_DOMAIN_NAME: ${PDS_DOMAIN_NAME}
+7 -7
docker-compose.advanced.yml
··· 1 1 services: 2 2 backend: &default_backend 3 3 build: &default_backend_build 4 - context: packages/backend 5 - dockerfile: Dockerfile 4 + context: . 5 + dockerfile: packages/backend/Dockerfile 6 6 # these args configure private env vars for the backend and public env vars for the frontend 7 7 args: &default_backend_build_args 8 8 ADMIN_USER: ${ADMIN_USER} ··· 69 69 environment: 70 70 - NODE_ENV=production 71 71 volumes: 72 - - ./packages/backend/uploads:/wafrn/uploads 73 - - ./packages/backend/cache:/wafrn/cache 74 - - frontend:/wafrn/packages/frontend:ro 72 + - ./packages/backend/uploads:/app/packages/backend/uploads 73 + - ./packages/backend/cache:/app/packages/backend/cache 74 + - frontend:/app/packages/frontend:ro 75 75 76 76 migration: 77 77 <<: *default_backend ··· 88 88 frontend: 89 89 restart: unless-stopped 90 90 build: 91 - context: packages/frontend 92 - dockerfile: Dockerfile 91 + context: . 92 + dockerfile: packages/frontend/Dockerfile 93 93 args: 94 94 DOMAIN_NAME: ${DOMAIN_NAME} 95 95 PDS_DOMAIN_NAME: ${PDS_DOMAIN_NAME}
+7 -7
docker-compose.simple.metrics.yml
··· 1 1 services: 2 2 backend: &default_backend 3 3 build: 4 - context: packages/backend 5 - dockerfile: Dockerfile 4 + context: . 5 + dockerfile: packages/backend/Dockerfile 6 6 # these args configure private env vars for the backend and public env vars for the frontend 7 7 args: 8 8 ADMIN_USER: ${ADMIN_USER} ··· 69 69 environment: 70 70 - NODE_ENV=production 71 71 volumes: 72 - - ./packages/backend/uploads:/wafrn/uploads 73 - - ./packages/backend/cache:/wafrn/cache 74 - - frontend:/wafrn/packages/frontend:ro 72 + - ./packages/backend/uploads:/app/packages/backend/uploads 73 + - ./packages/backend/cache:/app/packages/backend/cache 74 + - frontend:/app/packages/frontend:ro 75 75 76 76 migration: 77 77 <<: *default_backend ··· 88 88 frontend: 89 89 restart: unless-stopped 90 90 build: 91 - context: packages/frontend 92 - dockerfile: Dockerfile 91 + context: . 92 + dockerfile: packages/frontend/Dockerfile 93 93 args: 94 94 DOMAIN_NAME: ${DOMAIN_NAME} 95 95 PDS_DOMAIN_NAME: ${PDS_DOMAIN_NAME}
+7 -7
docker-compose.simple.yml
··· 1 1 services: 2 2 backend: &default_backend 3 3 build: 4 - context: packages/backend 5 - dockerfile: Dockerfile 4 + context: . 5 + dockerfile: packages/backend/Dockerfile 6 6 # these args configure private env vars for the backend and public env vars for the frontend 7 7 args: 8 8 ADMIN_USER: ${ADMIN_USER} ··· 69 69 environment: 70 70 - NODE_ENV=production 71 71 volumes: 72 - - ./packages/backend/uploads:/wafrn/uploads 73 - - ./packages/backend/cache:/wafrn/cache 74 - - frontend:/wafrn/packages/frontend:ro 72 + - ./packages/backend/uploads:/app/packages/backend/uploads 73 + - ./packages/backend/cache:/app/packages/backend/cache 74 + - frontend:/app/packages/frontend:ro 75 75 76 76 migration: 77 77 <<: *default_backend ··· 88 88 frontend: 89 89 restart: unless-stopped 90 90 build: 91 - context: packages/frontend 92 - dockerfile: Dockerfile 91 + context: . 92 + dockerfile: packages/frontend/Dockerfile 93 93 args: 94 94 DOMAIN_NAME: ${DOMAIN_NAME} 95 95 PDS_DOMAIN_NAME: ${PDS_DOMAIN_NAME}
+206 -346
package-lock.json
··· 4770 4770 } 4771 4771 }, 4772 4772 "node_modules/@eslint-community/eslint-utils": { 4773 - "version": "4.7.0", 4774 - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", 4775 - "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", 4773 + "version": "4.9.0", 4774 + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", 4775 + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", 4776 4776 "license": "MIT", 4777 4777 "dependencies": { 4778 4778 "eslint-visitor-keys": "^3.4.3" ··· 4880 4880 } 4881 4881 }, 4882 4882 "node_modules/@eslint/js": { 4883 - "version": "9.33.0", 4884 - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.33.0.tgz", 4885 - "integrity": "sha512-5K1/mKhWaMfreBGJTwval43JJmkip0RmM+3+IuqupeSKNC/Th2Kc7ucaq5ovTSra/OOKB9c58CGSz3QMVbWt0A==", 4883 + "version": "9.35.0", 4884 + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.35.0.tgz", 4885 + "integrity": "sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==", 4886 4886 "license": "MIT", 4887 4887 "engines": { 4888 4888 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 7652 7652 "node": ">=14" 7653 7653 } 7654 7654 }, 7655 + "node_modules/@pkgr/core": { 7656 + "version": "0.2.9", 7657 + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", 7658 + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", 7659 + "dev": true, 7660 + "license": "MIT", 7661 + "engines": { 7662 + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" 7663 + }, 7664 + "funding": { 7665 + "url": "https://opencollective.com/pkgr" 7666 + } 7667 + }, 7655 7668 "node_modules/@rollup/rollup-android-arm-eabi": { 7656 7669 "version": "4.44.1", 7657 7670 "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.1.tgz", ··· 9038 9051 "version": "1.3.0", 9039 9052 "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", 9040 9053 "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", 9054 + "dev": true, 9041 9055 "license": "ISC" 9042 9056 }, 9043 9057 "node_modules/@vitejs/plugin-basic-ssl": { ··· 12145 12159 } 12146 12160 }, 12147 12161 "node_modules/eslint": { 12148 - "version": "9.33.0", 12149 - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.33.0.tgz", 12150 - "integrity": "sha512-TS9bTNIryDzStCpJN93aC5VRSW3uTx9sClUn4B87pwiCaJh220otoI0X8mJKr+VcPtniMdN8GKjlwgWGUv5ZKA==", 12162 + "version": "9.35.0", 12163 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.35.0.tgz", 12164 + "integrity": "sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg==", 12151 12165 "license": "MIT", 12152 12166 "dependencies": { 12153 - "@eslint-community/eslint-utils": "^4.2.0", 12167 + "@eslint-community/eslint-utils": "^4.8.0", 12154 12168 "@eslint-community/regexpp": "^4.12.1", 12155 12169 "@eslint/config-array": "^0.21.0", 12156 12170 "@eslint/config-helpers": "^0.3.1", 12157 12171 "@eslint/core": "^0.15.2", 12158 12172 "@eslint/eslintrc": "^3.3.1", 12159 - "@eslint/js": "9.33.0", 12173 + "@eslint/js": "9.35.0", 12160 12174 "@eslint/plugin-kit": "^0.3.5", 12161 12175 "@humanfs/node": "^0.16.6", 12162 12176 "@humanwhocodes/module-importer": "^1.0.1", ··· 12218 12232 } 12219 12233 }, 12220 12234 "node_modules/eslint-config-prettier": { 12221 - "version": "8.10.2", 12222 - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz", 12223 - "integrity": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==", 12235 + "version": "9.1.2", 12236 + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.2.tgz", 12237 + "integrity": "sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==", 12224 12238 "dev": true, 12225 12239 "license": "MIT", 12226 12240 "bin": { ··· 12231 12245 } 12232 12246 }, 12233 12247 "node_modules/eslint-plugin-prettier": { 12234 - "version": "4.2.5", 12235 - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.5.tgz", 12236 - "integrity": "sha512-9Ni+xgemM2IWLq6aXEpP2+V/V30GeA/46Ar629vcMqVPodFFWC9skHu/D1phvuqtS8bJCFnNf01/qcmqYEwNfg==", 12248 + "version": "5.5.4", 12249 + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz", 12250 + "integrity": "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==", 12237 12251 "dev": true, 12238 12252 "license": "MIT", 12239 12253 "dependencies": { 12240 - "prettier-linter-helpers": "^1.0.0" 12254 + "prettier-linter-helpers": "^1.0.0", 12255 + "synckit": "^0.11.7" 12241 12256 }, 12242 12257 "engines": { 12243 - "node": ">=12.0.0" 12258 + "node": "^14.18.0 || >=16.0.0" 12259 + }, 12260 + "funding": { 12261 + "url": "https://opencollective.com/eslint-plugin-prettier" 12244 12262 }, 12245 12263 "peerDependencies": { 12246 - "eslint": ">=7.28.0", 12247 - "prettier": ">=2.0.0" 12264 + "@types/eslint": ">=8.0.0", 12265 + "eslint": ">=8.0.0", 12266 + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", 12267 + "prettier": ">=3.0.0" 12248 12268 }, 12249 12269 "peerDependenciesMeta": { 12270 + "@types/eslint": { 12271 + "optional": true 12272 + }, 12250 12273 "eslint-config-prettier": { 12251 12274 "optional": true 12252 12275 } ··· 17985 18008 } 17986 18009 }, 17987 18010 "node_modules/prettier": { 17988 - "version": "2.8.8", 17989 - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", 17990 - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", 18011 + "version": "3.6.2", 18012 + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", 18013 + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", 17991 18014 "dev": true, 17992 18015 "license": "MIT", 17993 18016 "bin": { 17994 - "prettier": "bin-prettier.js" 18017 + "prettier": "bin/prettier.cjs" 17995 18018 }, 17996 18019 "engines": { 17997 - "node": ">=10.13.0" 18020 + "node": ">=14" 17998 18021 }, 17999 18022 "funding": { 18000 18023 "url": "https://github.com/prettier/prettier?sponsor=1" ··· 18604 18627 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 18605 18628 "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 18606 18629 "deprecated": "Rimraf versions prior to v4 are no longer supported", 18630 + "dev": true, 18607 18631 "license": "ISC", 18608 18632 "dependencies": { 18609 18633 "glob": "^7.1.3" ··· 18620 18644 "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 18621 18645 "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 18622 18646 "deprecated": "Glob versions prior to v9 are no longer supported", 18647 + "dev": true, 18623 18648 "license": "ISC", 18624 18649 "dependencies": { 18625 18650 "fs.realpath": "^1.0.0", ··· 20401 20426 "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", 20402 20427 "license": "MIT" 20403 20428 }, 20429 + "node_modules/synckit": { 20430 + "version": "0.11.11", 20431 + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", 20432 + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", 20433 + "dev": true, 20434 + "license": "MIT", 20435 + "dependencies": { 20436 + "@pkgr/core": "^0.2.9" 20437 + }, 20438 + "engines": { 20439 + "node": "^14.18.0 || >=16.0.0" 20440 + }, 20441 + "funding": { 20442 + "url": "https://opencollective.com/synckit" 20443 + } 20444 + }, 20404 20445 "node_modules/tapable": { 20405 20446 "version": "2.2.2", 20406 20447 "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", ··· 22493 22534 "@types/uuid": "^10.0.0", 22494 22535 "@types/validator": "^13.12.0", 22495 22536 "@types/web-push": "^3.6.4", 22496 - "@typescript-eslint/eslint-plugin": "^5.9.0", 22497 - "@typescript-eslint/parser": "^5.9.0", 22537 + "@typescript-eslint/eslint-plugin": "^8.39.1", 22538 + "@typescript-eslint/parser": "^8.39.1", 22498 22539 "archiver": "^7.0.1", 22499 22540 "atproto-firehose": "^0.2.2", 22500 22541 "axios": "^1.8.2", ··· 22558 22599 "web-push": "^3.6.7" 22559 22600 }, 22560 22601 "devDependencies": { 22561 - "eslint": "^8.6.0", 22602 + "eslint": "^9.13.0", 22562 22603 "eslint-config-google": "^0.14.0", 22563 - "eslint-config-prettier": "^8.8.0", 22564 - "eslint-plugin-prettier": "^4.2.1", 22565 - "prettier": "^2.8.8" 22566 - } 22567 - }, 22568 - "packages/backend/node_modules/@eslint/eslintrc": { 22569 - "version": "2.1.4", 22570 - "license": "MIT", 22571 - "dependencies": { 22572 - "ajv": "^6.12.4", 22573 - "debug": "^4.3.2", 22574 - "espree": "^9.6.0", 22575 - "globals": "^13.19.0", 22576 - "ignore": "^5.2.0", 22577 - "import-fresh": "^3.2.1", 22578 - "js-yaml": "^4.1.0", 22579 - "minimatch": "^3.1.2", 22580 - "strip-json-comments": "^3.1.1" 22581 - }, 22582 - "engines": { 22583 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 22584 - }, 22585 - "funding": { 22586 - "url": "https://opencollective.com/eslint" 22587 - } 22588 - }, 22589 - "packages/backend/node_modules/@eslint/js": { 22590 - "version": "8.57.1", 22591 - "license": "MIT", 22592 - "engines": { 22593 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 22604 + "eslint-config-prettier": "^9.1.0", 22605 + "eslint-plugin-prettier": "^5.2.1", 22606 + "prettier": "^3.4.2" 22594 22607 } 22595 22608 }, 22596 22609 "packages/backend/node_modules/@types/node": { ··· 22603 22616 } 22604 22617 }, 22605 22618 "packages/backend/node_modules/@typescript-eslint/eslint-plugin": { 22606 - "version": "5.62.0", 22619 + "version": "8.43.0", 22620 + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.43.0.tgz", 22621 + "integrity": "sha512-8tg+gt7ENL7KewsKMKDHXR1vm8tt9eMxjJBYINf6swonlWgkYn5NwyIgXpbbDxTNU5DgpDFfj95prcTq2clIQQ==", 22607 22622 "license": "MIT", 22608 22623 "dependencies": { 22609 - "@eslint-community/regexpp": "^4.4.0", 22610 - "@typescript-eslint/scope-manager": "5.62.0", 22611 - "@typescript-eslint/type-utils": "5.62.0", 22612 - "@typescript-eslint/utils": "5.62.0", 22613 - "debug": "^4.3.4", 22624 + "@eslint-community/regexpp": "^4.10.0", 22625 + "@typescript-eslint/scope-manager": "8.43.0", 22626 + "@typescript-eslint/type-utils": "8.43.0", 22627 + "@typescript-eslint/utils": "8.43.0", 22628 + "@typescript-eslint/visitor-keys": "8.43.0", 22614 22629 "graphemer": "^1.4.0", 22615 - "ignore": "^5.2.0", 22616 - "natural-compare-lite": "^1.4.0", 22617 - "semver": "^7.3.7", 22618 - "tsutils": "^3.21.0" 22630 + "ignore": "^7.0.0", 22631 + "natural-compare": "^1.4.0", 22632 + "ts-api-utils": "^2.1.0" 22619 22633 }, 22620 22634 "engines": { 22621 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 22635 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 22622 22636 }, 22623 22637 "funding": { 22624 22638 "type": "opencollective", 22625 22639 "url": "https://opencollective.com/typescript-eslint" 22626 22640 }, 22627 22641 "peerDependencies": { 22628 - "@typescript-eslint/parser": "^5.0.0", 22629 - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" 22630 - }, 22631 - "peerDependenciesMeta": { 22632 - "typescript": { 22633 - "optional": true 22634 - } 22642 + "@typescript-eslint/parser": "^8.43.0", 22643 + "eslint": "^8.57.0 || ^9.0.0", 22644 + "typescript": ">=4.8.4 <6.0.0" 22635 22645 } 22636 22646 }, 22637 22647 "packages/backend/node_modules/@typescript-eslint/parser": { 22638 - "version": "5.62.0", 22639 - "license": "BSD-2-Clause", 22648 + "version": "8.43.0", 22649 + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.43.0.tgz", 22650 + "integrity": "sha512-B7RIQiTsCBBmY+yW4+ILd6mF5h1FUwJsVvpqkrgpszYifetQ2Ke+Z4u6aZh0CblkUGIdR59iYVyXqqZGkZ3aBw==", 22651 + "license": "MIT", 22640 22652 "dependencies": { 22641 - "@typescript-eslint/scope-manager": "5.62.0", 22642 - "@typescript-eslint/types": "5.62.0", 22643 - "@typescript-eslint/typescript-estree": "5.62.0", 22653 + "@typescript-eslint/scope-manager": "8.43.0", 22654 + "@typescript-eslint/types": "8.43.0", 22655 + "@typescript-eslint/typescript-estree": "8.43.0", 22656 + "@typescript-eslint/visitor-keys": "8.43.0", 22644 22657 "debug": "^4.3.4" 22645 22658 }, 22646 22659 "engines": { 22647 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 22660 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 22648 22661 }, 22649 22662 "funding": { 22650 22663 "type": "opencollective", 22651 22664 "url": "https://opencollective.com/typescript-eslint" 22652 22665 }, 22653 22666 "peerDependencies": { 22654 - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" 22655 - }, 22656 - "peerDependenciesMeta": { 22657 - "typescript": { 22658 - "optional": true 22659 - } 22667 + "eslint": "^8.57.0 || ^9.0.0", 22668 + "typescript": ">=4.8.4 <6.0.0" 22660 22669 } 22661 22670 }, 22662 - "packages/backend/node_modules/@typescript-eslint/scope-manager": { 22663 - "version": "5.62.0", 22671 + "packages/backend/node_modules/@typescript-eslint/project-service": { 22672 + "version": "8.43.0", 22673 + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.43.0.tgz", 22674 + "integrity": "sha512-htB/+D/BIGoNTQYffZw4uM4NzzuolCoaA/BusuSIcC8YjmBYQioew5VUZAYdAETPjeed0hqCaW7EHg+Robq8uw==", 22664 22675 "license": "MIT", 22665 22676 "dependencies": { 22666 - "@typescript-eslint/types": "5.62.0", 22667 - "@typescript-eslint/visitor-keys": "5.62.0" 22677 + "@typescript-eslint/tsconfig-utils": "^8.43.0", 22678 + "@typescript-eslint/types": "^8.43.0", 22679 + "debug": "^4.3.4" 22668 22680 }, 22669 22681 "engines": { 22670 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 22682 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 22671 22683 }, 22672 22684 "funding": { 22673 22685 "type": "opencollective", 22674 22686 "url": "https://opencollective.com/typescript-eslint" 22687 + }, 22688 + "peerDependencies": { 22689 + "typescript": ">=4.8.4 <6.0.0" 22675 22690 } 22676 22691 }, 22677 - "packages/backend/node_modules/@typescript-eslint/type-utils": { 22678 - "version": "5.62.0", 22692 + "packages/backend/node_modules/@typescript-eslint/scope-manager": { 22693 + "version": "8.43.0", 22694 + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.43.0.tgz", 22695 + "integrity": "sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg==", 22679 22696 "license": "MIT", 22680 22697 "dependencies": { 22681 - "@typescript-eslint/typescript-estree": "5.62.0", 22682 - "@typescript-eslint/utils": "5.62.0", 22683 - "debug": "^4.3.4", 22684 - "tsutils": "^3.21.0" 22698 + "@typescript-eslint/types": "8.43.0", 22699 + "@typescript-eslint/visitor-keys": "8.43.0" 22685 22700 }, 22686 22701 "engines": { 22687 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 22702 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 22688 22703 }, 22689 22704 "funding": { 22690 22705 "type": "opencollective", 22691 22706 "url": "https://opencollective.com/typescript-eslint" 22692 - }, 22693 - "peerDependencies": { 22694 - "eslint": "*" 22695 - }, 22696 - "peerDependenciesMeta": { 22697 - "typescript": { 22698 - "optional": true 22699 - } 22700 22707 } 22701 22708 }, 22702 - "packages/backend/node_modules/@typescript-eslint/types": { 22703 - "version": "5.62.0", 22709 + "packages/backend/node_modules/@typescript-eslint/tsconfig-utils": { 22710 + "version": "8.43.0", 22711 + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.43.0.tgz", 22712 + "integrity": "sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA==", 22704 22713 "license": "MIT", 22705 22714 "engines": { 22706 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 22715 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 22707 22716 }, 22708 22717 "funding": { 22709 22718 "type": "opencollective", 22710 22719 "url": "https://opencollective.com/typescript-eslint" 22711 - } 22712 - }, 22713 - "packages/backend/node_modules/@typescript-eslint/typescript-estree": { 22714 - "version": "5.62.0", 22715 - "license": "BSD-2-Clause", 22716 - "dependencies": { 22717 - "@typescript-eslint/types": "5.62.0", 22718 - "@typescript-eslint/visitor-keys": "5.62.0", 22719 - "debug": "^4.3.4", 22720 - "globby": "^11.1.0", 22721 - "is-glob": "^4.0.3", 22722 - "semver": "^7.3.7", 22723 - "tsutils": "^3.21.0" 22724 22720 }, 22725 - "engines": { 22726 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 22727 - }, 22728 - "funding": { 22729 - "type": "opencollective", 22730 - "url": "https://opencollective.com/typescript-eslint" 22731 - }, 22732 - "peerDependenciesMeta": { 22733 - "typescript": { 22734 - "optional": true 22735 - } 22721 + "peerDependencies": { 22722 + "typescript": ">=4.8.4 <6.0.0" 22736 22723 } 22737 22724 }, 22738 - "packages/backend/node_modules/@typescript-eslint/utils": { 22739 - "version": "5.62.0", 22725 + "packages/backend/node_modules/@typescript-eslint/type-utils": { 22726 + "version": "8.43.0", 22727 + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.43.0.tgz", 22728 + "integrity": "sha512-qaH1uLBpBuBBuRf8c1mLJ6swOfzCXryhKND04Igr4pckzSEW9JX5Aw9AgW00kwfjWJF0kk0ps9ExKTfvXfw4Qg==", 22740 22729 "license": "MIT", 22741 22730 "dependencies": { 22742 - "@eslint-community/eslint-utils": "^4.2.0", 22743 - "@types/json-schema": "^7.0.9", 22744 - "@types/semver": "^7.3.12", 22745 - "@typescript-eslint/scope-manager": "5.62.0", 22746 - "@typescript-eslint/types": "5.62.0", 22747 - "@typescript-eslint/typescript-estree": "5.62.0", 22748 - "eslint-scope": "^5.1.1", 22749 - "semver": "^7.3.7" 22731 + "@typescript-eslint/types": "8.43.0", 22732 + "@typescript-eslint/typescript-estree": "8.43.0", 22733 + "@typescript-eslint/utils": "8.43.0", 22734 + "debug": "^4.3.4", 22735 + "ts-api-utils": "^2.1.0" 22750 22736 }, 22751 22737 "engines": { 22752 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 22738 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 22753 22739 }, 22754 22740 "funding": { 22755 22741 "type": "opencollective", 22756 22742 "url": "https://opencollective.com/typescript-eslint" 22757 22743 }, 22758 22744 "peerDependencies": { 22759 - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" 22745 + "eslint": "^8.57.0 || ^9.0.0", 22746 + "typescript": ">=4.8.4 <6.0.0" 22760 22747 } 22761 22748 }, 22762 - "packages/backend/node_modules/@typescript-eslint/visitor-keys": { 22763 - "version": "5.62.0", 22749 + "packages/backend/node_modules/@typescript-eslint/types": { 22750 + "version": "8.43.0", 22751 + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.43.0.tgz", 22752 + "integrity": "sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw==", 22764 22753 "license": "MIT", 22765 - "dependencies": { 22766 - "@typescript-eslint/types": "5.62.0", 22767 - "eslint-visitor-keys": "^3.3.0" 22768 - }, 22769 22754 "engines": { 22770 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 22755 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 22771 22756 }, 22772 22757 "funding": { 22773 22758 "type": "opencollective", 22774 22759 "url": "https://opencollective.com/typescript-eslint" 22775 22760 } 22776 22761 }, 22777 - "packages/backend/node_modules/ansi-regex": { 22778 - "version": "5.0.1", 22779 - "license": "MIT", 22780 - "engines": { 22781 - "node": ">=8" 22782 - } 22783 - }, 22784 - "packages/backend/node_modules/eslint": { 22785 - "version": "8.57.1", 22762 + "packages/backend/node_modules/@typescript-eslint/typescript-estree": { 22763 + "version": "8.43.0", 22764 + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.43.0.tgz", 22765 + "integrity": "sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw==", 22786 22766 "license": "MIT", 22787 22767 "dependencies": { 22788 - "@eslint-community/eslint-utils": "^4.2.0", 22789 - "@eslint-community/regexpp": "^4.6.1", 22790 - "@eslint/eslintrc": "^2.1.4", 22791 - "@eslint/js": "8.57.1", 22792 - "@humanwhocodes/config-array": "^0.13.0", 22793 - "@humanwhocodes/module-importer": "^1.0.1", 22794 - "@nodelib/fs.walk": "^1.2.8", 22795 - "@ungap/structured-clone": "^1.2.0", 22796 - "ajv": "^6.12.4", 22797 - "chalk": "^4.0.0", 22798 - "cross-spawn": "^7.0.2", 22799 - "debug": "^4.3.2", 22800 - "doctrine": "^3.0.0", 22801 - "escape-string-regexp": "^4.0.0", 22802 - "eslint-scope": "^7.2.2", 22803 - "eslint-visitor-keys": "^3.4.3", 22804 - "espree": "^9.6.1", 22805 - "esquery": "^1.4.2", 22806 - "esutils": "^2.0.2", 22807 - "fast-deep-equal": "^3.1.3", 22808 - "file-entry-cache": "^6.0.1", 22809 - "find-up": "^5.0.0", 22810 - "glob-parent": "^6.0.2", 22811 - "globals": "^13.19.0", 22812 - "graphemer": "^1.4.0", 22813 - "ignore": "^5.2.0", 22814 - "imurmurhash": "^0.1.4", 22815 - "is-glob": "^4.0.0", 22816 - "is-path-inside": "^3.0.3", 22817 - "js-yaml": "^4.1.0", 22818 - "json-stable-stringify-without-jsonify": "^1.0.1", 22819 - "levn": "^0.4.1", 22820 - "lodash.merge": "^4.6.2", 22821 - "minimatch": "^3.1.2", 22822 - "natural-compare": "^1.4.0", 22823 - "optionator": "^0.9.3", 22824 - "strip-ansi": "^6.0.1", 22825 - "text-table": "^0.2.0" 22826 - }, 22827 - "bin": { 22828 - "eslint": "bin/eslint.js" 22768 + "@typescript-eslint/project-service": "8.43.0", 22769 + "@typescript-eslint/tsconfig-utils": "8.43.0", 22770 + "@typescript-eslint/types": "8.43.0", 22771 + "@typescript-eslint/visitor-keys": "8.43.0", 22772 + "debug": "^4.3.4", 22773 + "fast-glob": "^3.3.2", 22774 + "is-glob": "^4.0.3", 22775 + "minimatch": "^9.0.4", 22776 + "semver": "^7.6.0", 22777 + "ts-api-utils": "^2.1.0" 22829 22778 }, 22830 22779 "engines": { 22831 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 22780 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 22832 22781 }, 22833 22782 "funding": { 22834 - "url": "https://opencollective.com/eslint" 22835 - } 22836 - }, 22837 - "packages/backend/node_modules/eslint-scope": { 22838 - "version": "5.1.1", 22839 - "license": "BSD-2-Clause", 22840 - "dependencies": { 22841 - "esrecurse": "^4.3.0", 22842 - "estraverse": "^4.1.1" 22843 - }, 22844 - "engines": { 22845 - "node": ">=8.0.0" 22846 - } 22847 - }, 22848 - "packages/backend/node_modules/eslint-scope/node_modules/estraverse": { 22849 - "version": "4.3.0", 22850 - "license": "BSD-2-Clause", 22851 - "engines": { 22852 - "node": ">=4.0" 22853 - } 22854 - }, 22855 - "packages/backend/node_modules/eslint-visitor-keys": { 22856 - "version": "3.4.3", 22857 - "license": "Apache-2.0", 22858 - "engines": { 22859 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 22783 + "type": "opencollective", 22784 + "url": "https://opencollective.com/typescript-eslint" 22860 22785 }, 22861 - "funding": { 22862 - "url": "https://opencollective.com/eslint" 22786 + "peerDependencies": { 22787 + "typescript": ">=4.8.4 <6.0.0" 22863 22788 } 22864 22789 }, 22865 - "packages/backend/node_modules/eslint/node_modules/eslint-scope": { 22866 - "version": "7.2.2", 22867 - "license": "BSD-2-Clause", 22790 + "packages/backend/node_modules/@typescript-eslint/utils": { 22791 + "version": "8.43.0", 22792 + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.43.0.tgz", 22793 + "integrity": "sha512-S1/tEmkUeeswxd0GGcnwuVQPFWo8NzZTOMxCvw8BX7OMxnNae+i8Tm7REQen/SwUIPoPqfKn7EaZ+YLpiB3k9g==", 22794 + "license": "MIT", 22868 22795 "dependencies": { 22869 - "esrecurse": "^4.3.0", 22870 - "estraverse": "^5.2.0" 22796 + "@eslint-community/eslint-utils": "^4.7.0", 22797 + "@typescript-eslint/scope-manager": "8.43.0", 22798 + "@typescript-eslint/types": "8.43.0", 22799 + "@typescript-eslint/typescript-estree": "8.43.0" 22871 22800 }, 22872 22801 "engines": { 22873 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 22802 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 22874 22803 }, 22875 22804 "funding": { 22876 - "url": "https://opencollective.com/eslint" 22877 - } 22878 - }, 22879 - "packages/backend/node_modules/espree": { 22880 - "version": "9.6.1", 22881 - "license": "BSD-2-Clause", 22882 - "dependencies": { 22883 - "acorn": "^8.9.0", 22884 - "acorn-jsx": "^5.3.2", 22885 - "eslint-visitor-keys": "^3.4.1" 22886 - }, 22887 - "engines": { 22888 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 22805 + "type": "opencollective", 22806 + "url": "https://opencollective.com/typescript-eslint" 22889 22807 }, 22890 - "funding": { 22891 - "url": "https://opencollective.com/eslint" 22808 + "peerDependencies": { 22809 + "eslint": "^8.57.0 || ^9.0.0", 22810 + "typescript": ">=4.8.4 <6.0.0" 22892 22811 } 22893 22812 }, 22894 - "packages/backend/node_modules/file-entry-cache": { 22895 - "version": "6.0.1", 22813 + "packages/backend/node_modules/@typescript-eslint/visitor-keys": { 22814 + "version": "8.43.0", 22815 + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.43.0.tgz", 22816 + "integrity": "sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw==", 22896 22817 "license": "MIT", 22897 22818 "dependencies": { 22898 - "flat-cache": "^3.0.4" 22819 + "@typescript-eslint/types": "8.43.0", 22820 + "eslint-visitor-keys": "^4.2.1" 22899 22821 }, 22900 22822 "engines": { 22901 - "node": "^10.12.0 || >=12.0.0" 22902 - } 22903 - }, 22904 - "packages/backend/node_modules/flat-cache": { 22905 - "version": "3.2.0", 22906 - "license": "MIT", 22907 - "dependencies": { 22908 - "flatted": "^3.2.9", 22909 - "keyv": "^4.5.3", 22910 - "rimraf": "^3.0.2" 22823 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 22911 22824 }, 22912 - "engines": { 22913 - "node": "^10.12.0 || >=12.0.0" 22825 + "funding": { 22826 + "type": "opencollective", 22827 + "url": "https://opencollective.com/typescript-eslint" 22914 22828 } 22915 22829 }, 22916 - "packages/backend/node_modules/globals": { 22917 - "version": "13.24.0", 22830 + "packages/backend/node_modules/brace-expansion": { 22831 + "version": "2.0.2", 22832 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", 22833 + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", 22918 22834 "license": "MIT", 22919 22835 "dependencies": { 22920 - "type-fest": "^0.20.2" 22921 - }, 22922 - "engines": { 22923 - "node": ">=8" 22924 - }, 22925 - "funding": { 22926 - "url": "https://github.com/sponsors/sindresorhus" 22836 + "balanced-match": "^1.0.0" 22927 22837 } 22928 22838 }, 22929 22839 "packages/backend/node_modules/htmlparser2": { ··· 22943 22853 "entities": "^4.5.0" 22944 22854 } 22945 22855 }, 22946 - "packages/backend/node_modules/strip-ansi": { 22947 - "version": "6.0.1", 22856 + "packages/backend/node_modules/ignore": { 22857 + "version": "7.0.5", 22858 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", 22859 + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", 22948 22860 "license": "MIT", 22949 - "dependencies": { 22950 - "ansi-regex": "^5.0.1" 22951 - }, 22952 22861 "engines": { 22953 - "node": ">=8" 22862 + "node": ">= 4" 22954 22863 } 22955 22864 }, 22956 - "packages/backend/node_modules/type-fest": { 22957 - "version": "0.20.2", 22958 - "license": "(MIT OR CC0-1.0)", 22865 + "packages/backend/node_modules/minimatch": { 22866 + "version": "9.0.5", 22867 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", 22868 + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", 22869 + "license": "ISC", 22870 + "dependencies": { 22871 + "brace-expansion": "^2.0.1" 22872 + }, 22959 22873 "engines": { 22960 - "node": ">=10" 22874 + "node": ">=16 || 14 >=14.17" 22961 22875 }, 22962 22876 "funding": { 22963 - "url": "https://github.com/sponsors/sindresorhus" 22877 + "url": "https://github.com/sponsors/isaacs" 22964 22878 } 22965 22879 }, 22966 22880 "packages/backend/node_modules/undici-types": { ··· 23019 22933 "@types/jasmine": "~5.1.0", 23020 22934 "@types/luxon": "^3.4.2", 23021 22935 "@types/sanitize-html": "^2.13.0", 23022 - "eslint": "^9.6.0", 22936 + "eslint": "^9.13.0", 23023 22937 "eslint-config-prettier": "^9.1.0", 23024 22938 "eslint-plugin-prettier": "^5.2.1", 23025 22939 "jasmine-core": "~5.1.0", ··· 23705 23619 "@esbuild/win32-x64": "0.25.0" 23706 23620 } 23707 23621 }, 23708 - "packages/frontend/node_modules/eslint-config-prettier": { 23709 - "version": "9.1.2", 23710 - "dev": true, 23711 - "license": "MIT", 23712 - "bin": { 23713 - "eslint-config-prettier": "bin/cli.js" 23714 - }, 23715 - "peerDependencies": { 23716 - "eslint": ">=7.0.0" 23717 - } 23718 - }, 23719 - "packages/frontend/node_modules/eslint-plugin-prettier": { 23720 - "version": "5.5.4", 23721 - "dev": true, 23722 - "license": "MIT", 23723 - "dependencies": { 23724 - "prettier-linter-helpers": "^1.0.0", 23725 - "synckit": "^0.11.7" 23726 - }, 23727 - "engines": { 23728 - "node": "^14.18.0 || >=16.0.0" 23729 - }, 23730 - "funding": { 23731 - "url": "https://opencollective.com/eslint-plugin-prettier" 23732 - }, 23733 - "peerDependencies": { 23734 - "@types/eslint": ">=8.0.0", 23735 - "eslint": ">=8.0.0", 23736 - "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", 23737 - "prettier": ">=3.0.0" 23738 - }, 23739 - "peerDependenciesMeta": { 23740 - "@types/eslint": { 23741 - "optional": true 23742 - }, 23743 - "eslint-config-prettier": { 23744 - "optional": true 23745 - } 23746 - } 23747 - }, 23748 23622 "packages/frontend/node_modules/eslint-scope": { 23749 23623 "version": "7.2.2", 23750 23624 "dev": true, ··· 23823 23697 }, 23824 23698 "funding": { 23825 23699 "url": "https://github.com/sponsors/sindresorhus" 23826 - } 23827 - }, 23828 - "packages/frontend/node_modules/prettier": { 23829 - "version": "3.6.2", 23830 - "dev": true, 23831 - "license": "MIT", 23832 - "bin": { 23833 - "prettier": "bin/prettier.cjs" 23834 - }, 23835 - "engines": { 23836 - "node": ">=14" 23837 - }, 23838 - "funding": { 23839 - "url": "https://github.com/prettier/prettier?sponsor=1" 23840 23700 } 23841 23701 }, 23842 23702 "packages/frontend/node_modules/prettier-eslint": {
-5
packages/backend/.dockerignore
··· 1 - /cache 2 - /uploads 3 - environment.ts 4 - build 5 - node_modules
+6 -4
packages/backend/Dockerfile
··· 5 5 RUN apk add --no-cache perl curl tini bash ffmpeg exiv2 6 6 7 7 # set working directory 8 - WORKDIR /wafrn 8 + WORKDIR /app/packages/backend 9 9 10 10 # copy package.json and package-lock.json 11 - COPY package*.json ./ 11 + COPY package.json /app 12 + COPY package-lock.json /app 13 + COPY packages/backend/package.json . 12 14 13 15 # set node_env as production for the npm install command 14 16 ENV NODE_ENV=production ··· 17 19 RUN npm install 18 20 19 21 # copy the rest of the files 20 - COPY . . 22 + COPY packages/backend . 21 23 22 24 # create log folder early to prevent node err: cannot open logs/*.log 23 25 RUN mkdir -p logs ··· 88 90 ARG LOG_DESTINATION=1 89 91 90 92 91 - COPY environment.example.ts environment.ts 93 + COPY packages/backend/environment.example.ts environment.ts 92 94 93 95 # use sed to replace the environment variables in the environment.ts file 94 96 RUN perl -pi -e 's/\$\{\{([_A-Z]+):-(.*)\}\}/$ENV{$1}||$2/ge' environment.ts && \
+1 -1
packages/backend/environment.example.ts
··· 52 52 // There is a script that loads the file from this url and blocks the servers 53 53 blocklistUrl: ${{BLOCKLIST_URI:-''}}, 54 54 // In some cases we serve the frontend with the backend with a small preprocessing. We need the location of the frontend 55 - frontedLocation: '${{FRONTEND_PATH:-/wafrn/packages/frontend}}', 55 + frontedLocation: '${{FRONTEND_PATH:-/app/packages/frontend}}', 56 56 // oh yes, you need TWO redis connections, one for queues other for cache 57 57 bullmqConnection: { 58 58 host: '${{REDIS_HOST:-localhost}}',
+6 -6
packages/backend/package.json
··· 51 51 "@types/uuid": "^10.0.0", 52 52 "@types/validator": "^13.12.0", 53 53 "@types/web-push": "^3.6.4", 54 - "@typescript-eslint/eslint-plugin": "^5.9.0", 55 - "@typescript-eslint/parser": "^5.9.0", 54 + "@typescript-eslint/eslint-plugin": "^8.39.1", 55 + "@typescript-eslint/parser": "^8.39.1", 56 56 "archiver": "^7.0.1", 57 57 "atproto-firehose": "^0.2.2", 58 58 "axios": "^1.8.2", ··· 116 116 "web-push": "^3.6.7" 117 117 }, 118 118 "devDependencies": { 119 - "eslint": "^8.6.0", 119 + "eslint": "^9.13.0", 120 120 "eslint-config-google": "^0.14.0", 121 - "eslint-config-prettier": "^8.8.0", 122 - "eslint-plugin-prettier": "^4.2.1", 123 - "prettier": "^2.8.8" 121 + "eslint-config-prettier": "^9.1.0", 122 + "eslint-plugin-prettier": "^5.2.1", 123 + "prettier": "^3.4.2" 124 124 } 125 125 }
+7 -8
packages/frontend/Dockerfile
··· 18 18 19 19 WORKDIR /app/packages/frontend 20 20 21 - COPY package*.json . 21 + COPY package.json /app 22 + COPY package-lock.json /app 23 + 24 + COPY packages/frontend/package.json . 22 25 23 26 # install dependencies 24 27 RUN npm install 25 28 26 - COPY . . 29 + COPY packages/frontend . 27 30 28 31 # Override frontend files with files put here. Allows easy overriding of assets, and potentially actual code as well 29 32 RUN cp -af /app/packages/frontend/overrides/* /app/packages/frontend/src || true ··· 34 37 RUN perl -pi -e 's/\$\{\{([_A-Z]+):-(.*)\}\}/$ENV{$1}||$2/ge' /app/packages/frontend/ngsw-config.json && \ 35 38 perl -pi -e 's/\$\{\{([_A-Z]+)\}\}/$ENV{$1}/g' /app/packages/frontend/ngsw-config.json 36 39 37 - # angular.json expects this to be two levels up, so we put it there 38 - RUN ln -s /app/packages/frontend/node_modules /app/node_modules 39 - 40 40 # copy the frontend environment file 41 41 RUN rm -rf src/environments/environment.prod.ts && mv src/environments/environment.docker.ts src/environments/environment.prod.ts 42 42 ··· 46 46 47 47 RUN mv dist/wafrn/browser /app/frontend 48 48 49 - 50 - COPY Caddyfile.example /app/Caddyfile 49 + COPY packages/frontend/Caddyfile.example /app/Caddyfile 51 50 52 51 RUN perl -pi -e 's/\$\{\{([_A-Z]+):-(.*)\}\}/$ENV{$1}||$2/ge' /app/Caddyfile && \ 53 52 perl -pi -e 's/\$\{\{([_A-Z]+)\}\}/$ENV{$1}/g' /app/Caddyfile ··· 57 56 58 57 FROM caddy:2 59 58 60 - COPY entrypoint.sh /entrypoint.sh 59 + COPY packages/frontend/entrypoint.sh /entrypoint.sh 61 60 COPY --from=builder /app/Caddyfile /etc/caddy/Caddyfile 62 61 COPY --from=builder /app/frontend/ /app/frontend 63 62
+1 -1
packages/frontend/package.json
··· 59 59 "@types/jasmine": "~5.1.0", 60 60 "@types/luxon": "^3.4.2", 61 61 "@types/sanitize-html": "^2.13.0", 62 - "eslint": "^9.6.0", 62 + "eslint": "^9.13.0", 63 63 "eslint-config-prettier": "^9.1.0", 64 64 "eslint-plugin-prettier": "^5.2.1", 65 65 "jasmine-core": "~5.1.0",