From e9729e4d20113231eb60472da02b4d0016d69be5 Mon Sep 17 00:00:00 2001 From: Tejas Mehta Date: Sat, 10 Feb 2024 16:28:34 -0500 Subject: [PATCH] use docker watch for builds, syncs, and rebuilds --- docker-compose-dev.yml | 8 +- docker/docker-compose-live-packages.yml | 42 +++++-- docker/docker-compose-live-proto.yml | 45 ++++++-- package.json | 19 +++- packages/api-gateway/package.json | 1 + packages/auth-service/package.json | 3 + packages/db-service/package.json | 3 +- yarn.lock | 139 +++++++++++++++++++++++- 8 files changed, 227 insertions(+), 33 deletions(-) diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml index 7a9ca8d2..9bab907a 100644 --- a/docker-compose-dev.yml +++ b/docker-compose-dev.yml @@ -5,7 +5,7 @@ services: target: api-gateway-dev context: . ports: - - '3000:3000' + - 3000 entrypoint: yarn ${GATEWAY_COMMAND-start:dev} environment: DB_SERVICE_ADDR: db-service @@ -21,7 +21,7 @@ services: target: auth-service-dev context: . ports: - - '50052:50052' + - 50052 entrypoint: yarn ${AUTH_COMMAND-start:dev} environment: AUTH_SERVICE_ADDR: auth-service @@ -37,7 +37,7 @@ services: target: db-service-dev context: . ports: - - '50053:50053' + - 50053 entrypoint: /bin/sh -c "DB_COMMAND=${DB_COMMAND-start:dev} RUN_MODE=${RUN_MODE-dev} ./entrypoint.sh" environment: AUTH_SERVICE_ADDR: auth-service @@ -53,7 +53,7 @@ services: image: postgres restart: always ports: - - '5432:5432' + - 5432 environment: POSTGRES_PASSWORD: password POSTGRES_USER: user diff --git a/docker/docker-compose-live-packages.yml b/docker/docker-compose-live-packages.yml index 2cdcd2e6..9b80f7df 100644 --- a/docker/docker-compose-live-packages.yml +++ b/docker/docker-compose-live-packages.yml @@ -3,25 +3,49 @@ services: extends: file: docker-compose-dev.yml service: api-gateway - volumes: - - ./packages/api-gateway:/app/packages/api-gateway - - /app/packages/api-gateway/node_modules + develop: + watch: + - action: sync + path: ./packages/api-gateway + target: /app/packages/api-gateway + ignore: + - ./packages/api-gateway/node_modules + - action: rebuild + path: ./package.json + - action: rebuild + path: ./packages/api-gateway/package.json auth-service: extends: file: docker-compose-dev.yml service: auth-service - volumes: - - ./packages/auth-service:/app/packages/auth-service - - /app/packages/auth-service/node_modules + develop: + watch: + - action: sync + path: ./packages/auth-service + target: /app/packages/auth-service + ignore: + - ./packages/auth-service/node_modules + - action: rebuild + path: ./package.json + - action: rebuild + path: ./packages/auth-service/package.json db-service: extends: file: docker-compose-dev.yml service: db-service - volumes: - - ./packages/db-service:/app/packages/db-service - - /app/packages/db-service/node_modules + develop: + watch: + - action: sync + path: ./packages/db-service + target: /app/packages/db-service + ignore: + - ./packages/db-service/node_modules + - action: rebuild + path: ./package.json + - action: rebuild + path: ./packages/db-service/package.json db: extends: diff --git a/docker/docker-compose-live-proto.yml b/docker/docker-compose-live-proto.yml index a4b36f0b..585fb9ee 100644 --- a/docker/docker-compose-live-proto.yml +++ b/docker/docker-compose-live-proto.yml @@ -3,25 +3,52 @@ services: extends: file: docker-compose-dev.yml service: api-gateway - volumes: - - ./packages/proto:/app/packages/proto - - ./packages/proto:/app/packages/node_modules/juno-proto + develop: + watch: + - action: sync + path: ./packages/proto + target: /app/packages/proto + ignore: + - ./packages/proto/node_modules + - action: sync + path: ./packages/proto + target: /app/packages/node_modules/juno-proto + ignore: + - ./packages/proto/node_modules auth-service: extends: file: docker-compose-dev.yml service: auth-service - volumes: - - ./packages/proto:/app/packages/proto - - ./packages/proto:/app/packages/node_modules/juno-proto + develop: + watch: + - action: sync + path: ./packages/proto + target: /app/packages/proto + ignore: + - ./packages/proto/node_modules + - action: sync + path: ./packages/proto + target: /app/packages/node_modules/juno-proto + ignore: + - ./packages/proto/node_modules db-service: extends: file: docker-compose-dev.yml service: db-service - volumes: - - ./packages/proto:/app/packages/proto - - ./packages/proto:/app/packages/node_modules/juno-proto + develop: + watch: + - action: sync + path: ./packages/proto + target: /app/packages/proto + ignore: + - ./packages/proto/node_modules + - action: sync + path: ./packages/proto + target: /app/packages/node_modules/juno-proto + ignore: + - ./packages/proto/node_modules db: extends: diff --git a/package.json b/package.json index 30ce3081..7d0b6be0 100644 --- a/package.json +++ b/package.json @@ -6,23 +6,30 @@ ], "scripts": { "start:dev": "docker-compose -f docker-compose-dev.yml up", - "start:dev:live-packages": "docker-compose -f docker-compose-dev.yml -f docker/docker-compose-live-packages.yml up", - "start:dev:live-proto": "docker-compose -f docker-compose-dev.yml -f docker/docker-compose-live-proto.yml up", - "start:dev:live-all": "docker-compose -f docker-compose-dev.yml -f docker/docker-compose-live-proto.yml -f docker/docker-compose-live-packages.yml up", + "start:dev:watch-packages": "docker compose -f docker-compose-dev.yml -f docker/docker-compose-live-packages.yml watch --no-up", + "start:dev:watch-proto": "docker compose -f docker-compose-dev.yml -f docker/docker-compose-live-proto.yml watch --no-up", + "start:dev:watch-all": "docker compose -f docker-compose-dev.yml -f docker/docker-compose-live-proto.yml -f docker/docker-compose-live-packages.yml watch --no-up", + "start:dev:up-packages": "docker compose -f docker-compose-dev.yml -f docker/docker-compose-live-packages.yml up", + "start:dev:up-proto": "docker compose -f docker-compose-dev.yml -f docker/docker-compose-live-proto.yml up", + "start:dev:up-all": "docker compose -f docker-compose-dev.yml -f docker/docker-compose-live-proto.yml -f docker/docker-compose-live-packages.yml up", + "start:dev:live-packages": "concurrently -k \"yarn start:dev:watch-packages\" \"yarn start:dev:up-packages\"", + "start:dev:live-proto": "concurrently -k \"yarn start:dev:watch-proto\" \"yarn start:dev:up-proto\"", + "start:dev:live-all": "concurrently -k -P --success=\"last\" \"yarn start:dev:watch-all\" \"yarn start:dev:up-all {@}\" -- ", "format:check": "yarn prettier --check .", "format:write": "yarn prettier --write .", "tsc": "nx run-many --target=tsc", "lint": "nx run-many --target=lint", "gen-proto": "yarn workspace juno-proto install && yarn workspace juno-proto build", "preinstall": "yarn gen-proto", - "test:e2e:api-gateway-live": "GATEWAY_COMMAND=test:e2e RUN_MODE=test yarn start:dev:live-all --exit-code-from api-gateway", - "test:e2e:auth-service-live": "AUTH_COMMAND=test:e2e RUN_MODE=test yarn start:dev:live-all --exit-code-from auth-service", - "test:e2e:db-service-live": "DB_COMMAND=test:e2e RUN_MODE=test yarn start:dev:live-all --exit-code-from db-service", + "test:e2e:api-gateway-live": "GATEWAY_COMMAND=test:e2e:watch RUN_MODE=test yarn start:dev:live-all --exit-code-from api-gateway", + "test:e2e:auth-service-live": "AUTH_COMMAND=test:e2e:watch RUN_MODE=test yarn start:dev:live-all --exit-code-from auth-service", + "test:e2e:db-service-live": "DB_COMMAND=test:e2e:watch RUN_MODE=test yarn start:dev:live-all --exit-code-from db-service", "test:e2e:api-gateway": "GATEWAY_COMMAND=test:e2e RUN_MODE=test yarn start:dev --exit-code-from api-gateway", "test:e2e:auth-service": "AUTH_COMMAND=test:e2e RUN_MODE=test yarn start:dev --exit-code-from auth-service", "test:e2e:db-service": "DB_COMMAND=test:e2e RUN_MODE=test yarn start:dev --exit-code-from db-service" }, "devDependencies": { + "concurrently": "^8.2.2", "nx": "17.0.0", "prettier": "^3.0.3", "prettier-plugin-organize-imports": "^3.2.3", diff --git a/packages/api-gateway/package.json b/packages/api-gateway/package.json index 026b2b6b..9a17a375 100644 --- a/packages/api-gateway/package.json +++ b/packages/api-gateway/package.json @@ -18,6 +18,7 @@ "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "jest --config ./test/jest-e2e.json --runInBand", + "test:e2e:watch": "jest --config ./test/jest-e2e.json --runInBand --watch", "tsc": "tsc" }, "dependencies": { diff --git a/packages/auth-service/package.json b/packages/auth-service/package.json index 0b165577..908bf54d 100644 --- a/packages/auth-service/package.json +++ b/packages/auth-service/package.json @@ -18,6 +18,7 @@ "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "jest --config ./test/jest-e2e.json --runInBand", + "test:e2e:watch": "jest --config ./test/jest-e2e.json --runInBand --watch", "tsc": "tsc" }, "dependencies": { @@ -27,6 +28,7 @@ "@nestjs/core": "^10.0.0", "@nestjs/microservices": "^10.2.7", "@nestjs/platform-express": "^10.0.0", + "jsonwebtoken": "^9.0.2", "juno-proto": "file:../proto", "reflect-metadata": "^0.1.13", "rxjs": "^7.8.1" @@ -38,6 +40,7 @@ "@nestjs/testing": "^10.0.0", "@types/express": "^4.17.17", "@types/jest": "^29.5.2", + "@types/jsonwebtoken": "^9.0.5", "@types/node": "^20.3.1", "@types/supertest": "^2.0.12", "@typescript-eslint/eslint-plugin": "^6.0.0", diff --git a/packages/db-service/package.json b/packages/db-service/package.json index 1b24acd1..6c66056c 100644 --- a/packages/db-service/package.json +++ b/packages/db-service/package.json @@ -17,7 +17,8 @@ "test:watch": "jest --watch", "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", - "test:e2e": "jest --config ./test/jest-e2e.json --runInBand" + "test:e2e": "jest --config ./test/jest-e2e.json --runInBand", + "test:e2e:watch": "jest --config ./test/jest-e2e.json --runInBand --watch" }, "dependencies": { "@grpc/grpc-js": "^1.9.7", diff --git a/yarn.lock b/yarn.lock index 9038e1ef..2acef369 100644 --- a/yarn.lock +++ b/yarn.lock @@ -320,6 +320,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/runtime@^7.21.0": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.9.tgz#47791a15e4603bb5f905bc0753801cf21d6345f7" + integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/template@^7.22.15", "@babel/template@^7.3.3": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" @@ -1181,6 +1188,13 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.14.tgz#74a97a5573980802f32c8e47b663530ab3b6b7d1" integrity sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw== +"@types/jsonwebtoken@^9.0.5": + version "9.0.5" + resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.5.tgz#0bd9b841c9e6c5a937c17656e2368f65da025588" + integrity sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA== + dependencies: + "@types/node" "*" + "@types/mime@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.3.tgz#886674659ce55fe7c6c06ec5ca7c0eb276a08f91" @@ -1853,6 +1867,11 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -2117,6 +2136,21 @@ concat-stream@^1.5.2: readable-stream "^2.2.2" typedarray "^0.0.6" +concurrently@^8.2.2: + version "8.2.2" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-8.2.2.tgz#353141985c198cfa5e4a3ef90082c336b5851784" + integrity sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg== + dependencies: + chalk "^4.1.2" + date-fns "^2.30.0" + lodash "^4.17.21" + rxjs "^7.8.1" + shell-quote "^1.8.1" + spawn-command "0.0.2" + supports-color "^8.1.1" + tree-kill "^1.2.2" + yargs "^17.7.2" + consola@^2.15.0: version "2.15.3" resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" @@ -2205,6 +2239,13 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +date-fns@^2.30.0: + version "2.30.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" + debug@2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -2357,6 +2398,13 @@ duplexer@^0.1.1: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -3803,6 +3851,22 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonwebtoken@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3" + integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^7.5.4" + "juno-proto@file:packages/proto": version "0.0.1" dependencies: @@ -3814,6 +3878,23 @@ jsonfile@^6.0.1: reflect-metadata "^0.1.12" rxjs "^7.8.1" +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + keyv@^4.5.3: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" @@ -3878,6 +3959,36 @@ lodash.camelcase@^4.3.0: resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + lodash.memoize@4.x: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -3888,6 +3999,11 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + lodash@4.17.21, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -4088,7 +4204,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3: +ms@2.1.3, ms@^2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -4689,6 +4805,11 @@ reflect-metadata@^0.1.13: resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" @@ -4788,7 +4909,7 @@ rxjs@7.8.1, rxjs@^7.5.5, rxjs@^7.8.1: dependencies: tslib "^2.1.0" -safe-buffer@5.2.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -4894,6 +5015,11 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shell-quote@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + shelljs@0.8.5: version "0.8.5" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" @@ -4953,6 +5079,11 @@ source-map@^0.6.0, source-map@^0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +spawn-command@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2.tgz#9544e1a43ca045f8531aac1a48cb29bdae62338e" + integrity sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ== + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -5085,7 +5216,7 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: +supports-color@^8.0.0, supports-color@^8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -5212,7 +5343,7 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -tree-kill@1.2.2: +tree-kill@1.2.2, tree-kill@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==