From 8f6d5efe2f1b3724df569fe887249a97f98c6131 Mon Sep 17 00:00:00 2001 From: Mario Castro Squella Date: Fri, 5 Jul 2024 08:49:54 -0300 Subject: [PATCH 01/47] Update wf_test-integration.yml (#1540) Changes Azure region from East US to East US 2 in the integration testing workflow since Cosmos DB creation has been failing in East US since July 3. --- .github/workflows/wf_test-integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wf_test-integration.yml b/.github/workflows/wf_test-integration.yml index 1eb21bba0..cb9349d77 100644 --- a/.github/workflows/wf_test-integration.yml +++ b/.github/workflows/wf_test-integration.yml @@ -13,7 +13,7 @@ on: required: false type: string azure-region: - default: 'East US' + default: 'East US 2' required: false type: string azure-publisher-email: From 9cdb56f3edd5c6ea914c2c8f72a1153d75460ecd Mon Sep 17 00:00:00 2001 From: Mario Castro Squella Date: Mon, 8 Jul 2024 10:33:54 -0300 Subject: [PATCH 02/47] Update re_test-integration-azure.yml (#1541) Related to #1540, change the Azure region from East US to East US 2. --- .github/workflows/re_test-integration-azure.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/re_test-integration-azure.yml b/.github/workflows/re_test-integration-azure.yml index 5e0c4c3f3..9d8b0f4c9 100644 --- a/.github/workflows/re_test-integration-azure.yml +++ b/.github/workflows/re_test-integration-azure.yml @@ -7,7 +7,7 @@ on: workflow_call: inputs: azure-region: - default: 'East US' + default: 'East US 2' required: false type: string azure-publisher-email: From 177b0386069f6467a0fbe11857b403cc3cbc0f29 Mon Sep 17 00:00:00 2001 From: Mario Castro Squella Date: Fri, 19 Jul 2024 12:49:48 -0300 Subject: [PATCH 03/47] Calculated fields (#1539) * Add CalculatedField decorator * Add dependencies to select * Refactor instance creation methods * Temporarily change Azure region for integration tests * Revert "Temporarily change Azure region for integration tests" * Temporarily change Azure region for integration tests * Refactor types for instances creation * Add unit tests for instances helper * Fix broken CLI unit tests due to Node types upgrade * Update documentation * Add rush change file * Fix CodeQL scan warning * Refactor processProperties method to properly support undefined values * Refactor CalculatedField decorator options --------- Co-authored-by: Castro, Mario --- .../calculated_fields_2024-07-08-19-05.json | 10 + common/config/rush/pnpm-lock.yaml | 1721 ++++++++--------- .../cli/test/commands/stub/publish.test.ts | 3 + .../cli/test/services/stub-publisher.test.ts | 9 + .../framework-common-helpers/package.json | 4 +- .../framework-common-helpers/src/instances.ts | 97 +- .../test/instances.test.ts | 59 + .../src/booster-read-models-reader.ts | 80 +- .../src/decorators/read-model.ts | 29 +- .../test/booster-read-models-reader.test.ts | 2 + .../test/decorators/read-model.test.ts | 94 +- .../graphql/graphql-query-generator.test.ts | 4 + .../end-to-end/read-models.integration.ts | 174 +- .../src/commands/cart-my-address.ts | 22 + .../src/read-models/cart-read-model.ts | 5 +- .../metadata-booster/src/metadata-types.ts | 1 + .../docs/03_architecture/06_read-model.mdx | 7 +- 17 files changed, 1383 insertions(+), 938 deletions(-) create mode 100644 common/changes/@boostercloud/framework-core/calculated_fields_2024-07-08-19-05.json create mode 100644 packages/framework-common-helpers/test/instances.test.ts create mode 100644 packages/framework-integration-tests/src/commands/cart-my-address.ts diff --git a/common/changes/@boostercloud/framework-core/calculated_fields_2024-07-08-19-05.json b/common/changes/@boostercloud/framework-core/calculated_fields_2024-07-08-19-05.json new file mode 100644 index 000000000..643bf882e --- /dev/null +++ b/common/changes/@boostercloud/framework-core/calculated_fields_2024-07-08-19-05.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@boostercloud/framework-core", + "comment": "Improve support for calculated fields and their dependencies on read models", + "type": "minor" + } + ], + "packageName": "@boostercloud/framework-core" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 1cce552fa..62a076a2b 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,8 +8,8 @@ importers: ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.18.2 @@ -37,21 +37,21 @@ importers: typescript: 5.1.6 ws: 8.12.0 dependencies: - '@apollo/client': 3.7.13_sphwu2tmthkxbmhoomzrsl4p7y + '@apollo/client': 3.7.13_pvbge6vplei5rx3k4pxg27es3y '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@types/sinon': 10.0.0 cross-fetch: 3.1.5 - graphql: 16.8.1 + graphql: 16.9.0 jsonwebtoken: 9.0.1 sinon: 9.2.3 - subscriptions-transport-ws: 0.11.0_graphql@16.8.1 - tslib: 2.6.2 + subscriptions-transport-ws: 0.11.0_graphql@16.9.0 + tslib: 2.6.3 ws: 8.12.0 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/jsonwebtoken': 9.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/ws': 8.5.4 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry @@ -62,18 +62,18 @@ importers: eslint-plugin-import: 2.29.1_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 - fast-check: 3.17.1 + fast-check: 3.19.0 prettier: 2.3.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 typescript: 5.1.6 ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^2.11.0 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-core': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/application-tester': workspace:^2.12.1 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-core': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@oclif/core': 3.15.0 '@oclif/plugin-help': ^5 @@ -129,22 +129,22 @@ importers: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@oclif/core': 3.15.0_typescript@5.1.6 - '@oclif/plugin-help': 5.2.20_cwiqw7fmejhb47wvqtchhjxme4 + '@oclif/plugin-help': 5.2.20_qtieencaeb6d72le3lfodyl2z4 chalk: 2.4.2 child-process-promise: 2.2.1 execa: 2.1.0 - fp-ts: 2.16.5 + fp-ts: 2.16.7 fs-extra: 8.1.0 inflected: 2.1.0 inquirer: 7.3.3 mustache: 4.1.0 ora: 3.4.0 ts-morph: 19.0.0 - tslib: 2.6.2 + tslib: 2.6.3 devDependencies: '@boostercloud/application-tester': link:../application-tester '@boostercloud/eslint-config': link:../../tools/eslint-config - '@oclif/test': 3.2.10 + '@oclif/test': 3.2.15 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/child-process-promise': 2.2.6 @@ -154,7 +154,7 @@ importers: '@types/inquirer': 6.5.0 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -169,26 +169,27 @@ importers: eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 faker: 5.1.0 - fancy-test: 3.0.14 + fancy-test: 3.0.16 mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 rewire: 5.0.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/child-process-promise': ^2.2.1 + '@types/faker': 5.1.5 '@types/mocha': 10.0.1 '@types/node': ^18.18.2 '@types/rewire': ^2.5.28 @@ -206,6 +207,7 @@ importers: eslint-plugin-import: ^2.26.0 eslint-plugin-prettier: 3.4.0 eslint-plugin-unicorn: ~44.0.2 + faker: 5.1.0 mocha: 10.2.0 nyc: ^15.1.0 prettier: 2.3.0 @@ -221,14 +223,15 @@ importers: '@effect-ts/core': 0.60.5 child-process-promise: 2.2.1 class-transformer: 0.5.1 - tslib: 2.6.2 + tslib: 2.6.3 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/child-process-promise': 2.2.6 + '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -242,22 +245,23 @@ importers: eslint-plugin-import: 2.29.1_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 + faker: 5.1.0 mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 rewire: 5.0.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 typescript: 5.1.6 ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 - '@boostercloud/metadata-booster': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 + '@boostercloud/metadata-booster': workspace:^2.12.1 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 '@effect/platform-node': 0.45.26 @@ -319,19 +323,19 @@ importers: '@effect/platform-node': 0.45.26_cahjalgelcnk6vcj6x2oc46m3a '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_jsi5r7dvmbit34siukqkgq3mea + '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye '@effect/typeclass': 0.23.17_effect@2.4.17 effect: 2.4.17 - fast-check: 3.17.1 - fp-ts: 2.16.5 - graphql-scalars: 1.23.0_graphql@16.8.1 - graphql-subscriptions: 2.0.0_graphql@16.8.1 + fast-check: 3.19.0 + fp-ts: 2.16.7 + graphql-scalars: 1.23.0_graphql@16.9.0 + graphql-subscriptions: 2.0.0_graphql@16.9.0 inflected: 2.1.0 iterall: 1.3.0 jsonwebtoken: 9.0.1 jwks-rsa: 3.0.1 reflect-metadata: 0.1.13 - tslib: 2.6.2 + tslib: 2.6.3 validator: 13.7.0 ws: 8.12.0 devDependencies: @@ -343,7 +347,7 @@ importers: '@types/inflected': 1.1.29 '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/validator': 13.1.3 @@ -358,35 +362,35 @@ importers: eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 faker: 5.1.0 - graphql: 16.8.1 + graphql: 16.9.0 mocha: 10.2.0 mock-jwks: 1.0.3_nock@11.8.2 nock: 11.8.2 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^2.11.0 - '@boostercloud/cli': workspace:^2.11.0 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-core': workspace:^2.11.0 - '@boostercloud/framework-provider-aws': workspace:^2.11.0 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.11.0 - '@boostercloud/framework-provider-azure': workspace:^2.11.0 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.11.0 - '@boostercloud/framework-provider-local': workspace:^2.11.0 - '@boostercloud/framework-provider-local-infrastructure': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 - '@boostercloud/metadata-booster': workspace:^2.11.0 + '@boostercloud/application-tester': workspace:^2.12.1 + '@boostercloud/cli': workspace:^2.12.1 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-core': workspace:^2.12.1 + '@boostercloud/framework-provider-aws': workspace:^2.12.1 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.12.1 + '@boostercloud/framework-provider-azure': workspace:^2.12.1 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.12.1 + '@boostercloud/framework-provider-local': workspace:^2.12.1 + '@boostercloud/framework-provider-local-infrastructure': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 + '@boostercloud/metadata-booster': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 @@ -463,18 +467,18 @@ importers: '@effect/platform-node': 0.45.26_cahjalgelcnk6vcj6x2oc46m3a '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_jsi5r7dvmbit34siukqkgq3mea + '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye '@effect/typeclass': 0.23.17_effect@2.4.17 aws-sdk: 2.853.0 effect: 2.4.17 express: 4.19.2 express-unless: 2.1.3 - fast-check: 3.17.1 - graphql: 16.8.1 - tslib: 2.6.2 + fast-check: 3.19.0 + graphql: 16.9.0 + tslib: 2.6.3 ws: 8.12.0 devDependencies: - '@apollo/client': 3.7.13_c5ukhmnf6fm7wz7ctna5fqkm6e + '@apollo/client': 3.7.13_jxorufveymi4xbrutgakjkp5wa '@boostercloud/application-tester': link:../application-tester '@boostercloud/cli': link:../cli '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -492,7 +496,7 @@ importers: '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 '@types/nedb': 1.8.16 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 @@ -521,20 +525,20 @@ importers: prettier: 2.3.0 react: 17.0.2 reflect-metadata: 0.1.13 - rimraf: 5.0.5 + rimraf: 5.0.7 serverless: 3.8.0 serverless-artillery: 0.5.2 sinon: 9.2.3 - subscriptions-transport-ws: 0.11.0_graphql@16.8.1 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + subscriptions-transport-ws: 0.11.0_graphql@16.9.0 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -573,7 +577,7 @@ importers: '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 - tslib: 2.6.2 + tslib: 2.6.3 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/aws-lambda': 8.10.48 @@ -582,7 +586,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -602,10 +606,10 @@ importers: nyc: 15.1.0 prettier: 2.3.0 rewire: 5.0.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 typescript: 5.1.6 velocityjs: 2.0.6 @@ -628,10 +632,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-provider-aws': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-provider-aws': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -702,7 +706,7 @@ importers: colors: 1.4.0 constructs: 3.4.344 promptly: 3.2.0 - tslib: 2.6.2 + tslib: 2.6.3 yaml: 1.10.2 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -713,7 +717,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -731,10 +735,10 @@ importers: nyc: 15.1.0 prettier: 2.3.0 rewire: 5.0.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 typescript: 5.1.6 velocityjs: 2.0.6 @@ -745,9 +749,9 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -784,14 +788,14 @@ importers: '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 - tslib: 2.6.2 + tslib: 2.6.3 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 @@ -807,10 +811,10 @@ importers: mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 typescript: 5.1.6 ../../packages/framework-provider-azure-infrastructure: @@ -819,11 +823,11 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-core': workspace:^2.11.0 - '@boostercloud/framework-provider-azure': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-core': workspace:^2.12.1 + '@boostercloud/framework-provider-azure': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@cdktf/provider-azurerm': 11.2.0 '@cdktf/provider-time': 9.0.2 '@effect-ts/core': ^0.60.4 @@ -898,7 +902,7 @@ importers: ora: 3.4.0 react: 17.0.2 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - tslib: 2.6.2 + tslib: 2.6.3 uuid: 8.3.2 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -908,7 +912,7 @@ importers: '@types/fs-extra': 9.0.13 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 @@ -923,16 +927,16 @@ importers: mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 typescript: 5.1.6 ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@seald-io/nedb': 4.0.2 '@types/chai': 4.2.18 @@ -972,7 +976,7 @@ importers: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@seald-io/nedb': 4.0.2 - tslib: 2.6.2 + tslib: 2.6.3 ws: 8.12.0 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -981,7 +985,7 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/sinon-express-mock': 1.3.12 @@ -1000,19 +1004,19 @@ importers: mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 typescript: 5.1.6 ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-provider-local': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-provider-local': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1056,7 +1060,7 @@ importers: cors: 2.8.5 express: 4.19.2 node-schedule: 2.1.1 - tslib: 2.6.2 + tslib: 2.6.3 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/chai': 4.2.18 @@ -1065,7 +1069,7 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/node-schedule': 1.3.2 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -1083,17 +1087,17 @@ importers: mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 typescript: 5.1.6 ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/metadata-booster': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/metadata-booster': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@effect/cli': 0.35.26 @@ -1139,10 +1143,10 @@ importers: '@effect/platform': 0.48.24_dyvpp6bxxcuou3trhs4x4ygr5y '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_jsi5r7dvmbit34siukqkgq3mea + '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye '@effect/typeclass': 0.23.17_effect@2.4.17 effect: 2.4.17 - tslib: 2.6.2 + tslib: 2.6.3 uuid: 8.3.2 web-streams-polyfill: 3.3.3 ws: 8.12.0 @@ -1152,7 +1156,7 @@ importers: '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/mocha': 10.0.1 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 @@ -1165,19 +1169,19 @@ importers: eslint-plugin-import: 2.29.1_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 - fast-check: 3.17.1 - graphql: 16.8.1 + fast-check: 3.19.0 + graphql: 16.9.0 mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 typescript: 5.1.6 ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/node': ^18.18.2 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -1200,10 +1204,10 @@ importers: '@effect-ts/core': 0.60.5 reflect-metadata: 0.1.13 ts-morph: 19.0.0 - tslib: 2.6.2 + tslib: 2.6.3 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry eslint: 8.57.0 @@ -1212,9 +1216,9 @@ importers: eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 prettier: 2.3.0 - rimraf: 5.0.5 + rimraf: 5.0.7 sinon: 9.2.3 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 ts-patch: 3.1.2 typescript: 5.1.6 @@ -1250,10 +1254,6 @@ packages: es5-ext: 0.10.64 dev: true - /@aashutoshrathi/word-wrap/1.2.6: - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} - /@ampproject/remapping/2.3.0: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -1262,7 +1262,7 @@ packages: '@jridgewell/trace-mapping': 0.3.25 dev: true - /@apollo/client/3.7.13_c5ukhmnf6fm7wz7ctna5fqkm6e: + /@apollo/client/3.7.13_jxorufveymi4xbrutgakjkp5wa: resolution: {integrity: sha512-wi63WnO2mhb6uHGB/8x1qIOL4ZtZocrxdHS0VBQ9KwBDkwoP/TdVVgZ29J2WkiAPmJ0SK07ju4R2AjHor1gPxQ==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -1280,25 +1280,25 @@ packages: subscriptions-transport-ws: optional: true dependencies: - '@graphql-typed-document-node/core': 3.2.0_graphql@16.8.1 + '@graphql-typed-document-node/core': 3.2.0_graphql@16.9.0 '@wry/context': 0.7.4 '@wry/equality': 0.5.7 '@wry/trie': 0.3.2 - graphql: 16.8.1 - graphql-tag: 2.12.6_graphql@16.8.1 + graphql: 16.9.0 + graphql-tag: 2.12.6_graphql@16.9.0 hoist-non-react-statics: 3.3.2 optimism: 0.16.2 prop-types: 15.8.1 react: 17.0.2 response-iterator: 0.2.6 - subscriptions-transport-ws: 0.11.0_graphql@16.8.1 + subscriptions-transport-ws: 0.11.0_graphql@16.9.0 symbol-observable: 4.0.0 ts-invariant: 0.10.3 - tslib: 2.6.2 + tslib: 2.6.3 zen-observable-ts: 1.2.5 dev: true - /@apollo/client/3.7.13_sphwu2tmthkxbmhoomzrsl4p7y: + /@apollo/client/3.7.13_pvbge6vplei5rx3k4pxg27es3y: resolution: {integrity: sha512-wi63WnO2mhb6uHGB/8x1qIOL4ZtZocrxdHS0VBQ9KwBDkwoP/TdVVgZ29J2WkiAPmJ0SK07ju4R2AjHor1gPxQ==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -1316,20 +1316,20 @@ packages: subscriptions-transport-ws: optional: true dependencies: - '@graphql-typed-document-node/core': 3.2.0_graphql@16.8.1 + '@graphql-typed-document-node/core': 3.2.0_graphql@16.9.0 '@wry/context': 0.7.4 '@wry/equality': 0.5.7 '@wry/trie': 0.3.2 - graphql: 16.8.1 - graphql-tag: 2.12.6_graphql@16.8.1 + graphql: 16.9.0 + graphql-tag: 2.12.6_graphql@16.9.0 hoist-non-react-statics: 3.3.2 optimism: 0.16.2 prop-types: 15.8.1 response-iterator: 0.2.6 - subscriptions-transport-ws: 0.11.0_graphql@16.8.1 + subscriptions-transport-ws: 0.11.0_graphql@16.9.0 symbol-observable: 4.0.0 ts-invariant: 0.10.3 - tslib: 2.6.2 + tslib: 2.6.3 zen-observable-ts: 1.2.5 dev: false @@ -1388,7 +1388,7 @@ packages: '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-cognito': 1.204.0_jhanj7vnhseo3o4cwsyzgiowqa '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu @@ -1518,7 +1518,7 @@ packages: '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam @@ -1672,7 +1672,6 @@ packages: '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 - yaml: 1.10.2 transitivePeerDependencies: - '@aws-cdk/aws-lambda' - '@aws-cdk/cx-api' @@ -1788,7 +1787,6 @@ packages: '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/custom-resources': 1.204.0_c23kgzmvfhgnr6qpzzlbsfzuc4 constructs: 3.4.344 - punycode: 2.3.1 transitivePeerDependencies: - '@aws-cdk/aws-ec2' - '@aws-cdk/aws-logs' @@ -1934,17 +1932,17 @@ packages: '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/aws-route53': 1.204.0_i3vim6rlintxrbha4iep76yf5u - '@aws-cdk/aws-route53-targets': 1.204.0_yvzacxtkufuieelzdl2p47lu74 + '@aws-cdk/aws-route53-targets': 1.204.0_2eviprr3zwoouaslbumtdekrhi '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq - '@aws-cdk/aws-servicediscovery': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-servicediscovery': 1.204.0_nu23nesxfni464wb5cy4ehgagi '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-ssm': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -2005,7 +2003,7 @@ packages: constructs: 3.4.344 dev: false - /@aws-cdk/aws-elasticloadbalancingv2/1.204.0_duidta2ijoio5sg5x7jqysldja: + /@aws-cdk/aws-elasticloadbalancingv2/1.204.0_xbmlyikxd4zabyotfrt4oo4gli: resolution: {integrity: sha512-/43kzUTU3w9jimPuD5QZxoBN74+9QnOdhAcqIMVCFLPMkVLAxx3vg5g5MWWG+3j6rUoSecrtrP1AP7thZuo5wA==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -2023,6 +2021,7 @@ packages: dependencies: '@aws-cdk/aws-certificatemanager': 1.204.0_xtqk4litqxecxsqs3sd6ajo2ja '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm + '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-route53': 1.204.0_i3vim6rlintxrbha4iep76yf5u @@ -2033,7 +2032,7 @@ packages: '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 transitivePeerDependencies: - - '@aws-cdk/aws-ec2' + - '@aws-cdk/assets' - '@aws-cdk/aws-logs' - '@aws-cdk/custom-resources' dev: false @@ -2322,7 +2321,7 @@ packages: - '@aws-cdk/aws-s3' dev: false - /@aws-cdk/aws-route53-targets/1.204.0_yvzacxtkufuieelzdl2p47lu74: + /@aws-cdk/aws-route53-targets/1.204.0_2eviprr3zwoouaslbumtdekrhi: resolution: {integrity: sha512-JyILJz/HGRMilpFxrDk/VXv+TN24DoG5Gfdfh8SJoJpptokowN8blaQ2ibf6N0JnFqWSBrs7gMMWB2dR/sXoTQ==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -2344,7 +2343,7 @@ packages: '@aws-cdk/aws-cognito': 1.204.0_jhanj7vnhseo3o4cwsyzgiowqa '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli '@aws-cdk/aws-globalaccelerator': 1.204.0_u3bt2hwm6nh6yzg6d6qalghehq '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-route53': 1.204.0_i3vim6rlintxrbha4iep76yf5u @@ -2353,6 +2352,7 @@ packages: '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 transitivePeerDependencies: + - '@aws-cdk/assets' - '@aws-cdk/aws-lambda' - '@aws-cdk/aws-logs' - '@aws-cdk/custom-resources' @@ -2436,7 +2436,6 @@ packages: '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/lambda-layer-awscli': 1.204.0_e7ybiu4yrrtvf3zlvzrvcjkvyy - case: 1.6.3 constructs: 3.4.344 transitivePeerDependencies: - '@aws-cdk/assets' @@ -2541,7 +2540,7 @@ packages: - '@aws-cdk/aws-s3' dev: false - /@aws-cdk/aws-servicediscovery/1.204.0_duidta2ijoio5sg5x7jqysldja: + /@aws-cdk/aws-servicediscovery/1.204.0_nu23nesxfni464wb5cy4ehgagi: resolution: {integrity: sha512-K1ckza6oAj3DntEAYmolm2JafkxJ0ekWb+DCl9hkm9l+546j28Qpb4cm8VkgGteNBN4JYACxrIuIxVC2zBLsCg==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -2555,11 +2554,12 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli '@aws-cdk/aws-route53': 1.204.0_i3vim6rlintxrbha4iep76yf5u '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam constructs: 3.4.344 transitivePeerDependencies: + - '@aws-cdk/assets' - '@aws-cdk/aws-iam' - '@aws-cdk/aws-lambda' - '@aws-cdk/aws-logs' @@ -2715,9 +2715,6 @@ packages: /@aws-cdk/cloud-assembly-schema/1.203.0: resolution: {integrity: sha512-r252InZ8Oh7q7ztriaA3n6F48QOFVfNcT/KO4XOlYyt1xDWRMENDYf+D+DVr6O5klcaa3ivvvDT7DRuW3xdVOQ==} engines: {node: '>= 14.15.0'} - dependencies: - jsonschema: 1.4.1 - semver: 7.6.0 dev: false bundledDependencies: - jsonschema @@ -2731,9 +2728,6 @@ packages: This package is no longer being updated, and users should migrate to AWS CDK v2. For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html - dependencies: - jsonschema: 1.4.1 - semver: 7.6.0 dev: false bundledDependencies: - jsonschema @@ -2742,9 +2736,6 @@ packages: /@aws-cdk/cloud-assembly-schema/2.39.1: resolution: {integrity: sha512-lSVaaedXWeK08uoq0IXDCspz9U/H4qIERemdsMQrMUDTiUe/JBby7vtmyMvOdEscE8GMAmiOzoPmAE0Uf+yw5A==} engines: {node: '>= 14.15.0'} - dependencies: - jsonschema: 1.4.1 - semver: 7.6.0 dev: false bundledDependencies: - jsonschema @@ -2778,11 +2769,7 @@ packages: '@aws-cdk/cloud-assembly-schema': 1.204.0 '@aws-cdk/cx-api': 1.203.0 '@aws-cdk/region-info': 1.204.0 - '@balena/dockerignore': 1.0.2 constructs: 3.4.344 - fs-extra: 9.1.0 - ignore: 5.3.1 - minimatch: 3.1.2 dev: false bundledDependencies: - fs-extra @@ -2825,7 +2812,6 @@ packages: engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 1.203.0 - semver: 7.6.0 dev: false bundledDependencies: - semver @@ -2840,7 +2826,6 @@ packages: For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html dependencies: '@aws-cdk/cloud-assembly-schema': 1.204.0 - semver: 7.6.0 dev: false bundledDependencies: - semver @@ -2850,7 +2835,6 @@ packages: engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 2.39.1 - semver: 7.6.0 dev: false bundledDependencies: - semver @@ -2887,14 +2871,14 @@ packages: resolution: {integrity: sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==} engines: {node: '>=12.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 dev: false /@azure/abort-controller/2.1.2: resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 dev: false /@azure/arm-appservice/13.0.3: @@ -2906,8 +2890,8 @@ packages: '@azure/core-client': 1.9.2 '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.15.2 - tslib: 2.6.2 + '@azure/core-rest-pipeline': 1.16.1 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: false @@ -2921,8 +2905,8 @@ packages: '@azure/core-client': 1.9.2 '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.15.2 - tslib: 2.6.2 + '@azure/core-rest-pipeline': 1.16.1 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: false @@ -2940,8 +2924,8 @@ packages: jssha: 3.3.1 process: 0.11.10 rhea: 3.0.2 - rhea-promise: 3.0.1 - tslib: 2.6.2 + rhea-promise: 3.0.3 + tslib: 2.6.3 util: 0.12.5 transitivePeerDependencies: - supports-color @@ -2953,7 +2937,7 @@ packages: dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-util': 1.9.0 - tslib: 2.6.2 + tslib: 2.6.3 dev: false /@azure/core-client/1.9.2: @@ -2962,11 +2946,11 @@ packages: dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.7.2 - '@azure/core-rest-pipeline': 1.15.2 + '@azure/core-rest-pipeline': 1.16.1 '@azure/core-tracing': 1.1.2 '@azure/core-util': 1.9.0 '@azure/logger': 1.1.2 - tslib: 2.6.2 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: false @@ -2978,18 +2962,18 @@ packages: '@azure/abort-controller': 2.1.2 '@azure/core-util': 1.9.0 '@azure/logger': 1.1.2 - tslib: 2.6.2 + tslib: 2.6.3 dev: false /@azure/core-paging/1.6.2: resolution: {integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 dev: false - /@azure/core-rest-pipeline/1.15.2: - resolution: {integrity: sha512-BmWfpjc/QXc2ipHOh6LbUzp3ONCaa6xzIssTU0DwH9bbYNXJlGUL6tujx5TrbVd/QQknmS+vlQJGrCq2oL1gZA==} + /@azure/core-rest-pipeline/1.16.1: + resolution: {integrity: sha512-ExPSbgjwCoht6kB7B4MeZoBAxcQSIl29r/bPeazZJx50ej4JJCByimLOrZoIsurISNyJQQHf30b3JfqC3Hb88A==} engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 @@ -2998,8 +2982,8 @@ packages: '@azure/core-util': 1.9.0 '@azure/logger': 1.1.2 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 - tslib: 2.6.2 + https-proxy-agent: 7.0.5 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: false @@ -3008,7 +2992,7 @@ packages: resolution: {integrity: sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 dev: false /@azure/core-util/1.9.0: @@ -3016,7 +3000,7 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 - tslib: 2.6.2 + tslib: 2.6.3 dev: false /@azure/cosmos/4.0.0: @@ -3025,15 +3009,15 @@ packages: dependencies: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.7.2 - '@azure/core-rest-pipeline': 1.15.2 + '@azure/core-rest-pipeline': 1.16.1 '@azure/core-tracing': 1.1.2 - debug: 4.3.4 + debug: 4.3.5 fast-json-stable-stringify: 2.1.0 jsbi: 3.2.5 node-abort-controller: 3.1.1 priorityqueuejs: 1.0.0 semaphore: 1.1.0 - tslib: 2.6.2 + tslib: 2.6.3 universal-user-agent: 6.0.1 uuid: 8.3.2 transitivePeerDependencies: @@ -3054,8 +3038,8 @@ packages: is-buffer: 2.0.5 jssha: 3.3.1 process: 0.11.10 - rhea-promise: 3.0.1 - tslib: 2.6.2 + rhea-promise: 3.0.3 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: false @@ -3071,18 +3055,18 @@ packages: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.7.2 '@azure/core-client': 1.9.2 - '@azure/core-rest-pipeline': 1.15.2 + '@azure/core-rest-pipeline': 1.16.1 '@azure/core-tracing': 1.1.2 '@azure/core-util': 1.9.0 '@azure/logger': 1.1.2 - '@azure/msal-browser': 2.38.4 + '@azure/msal-browser': 2.39.0 '@azure/msal-common': 7.6.0 '@azure/msal-node': 1.18.4 events: 3.3.0 jws: 4.0.0 open: 8.4.2 stoppable: 1.1.0 - tslib: 2.6.2 + tslib: 2.6.3 uuid: 8.3.2 transitivePeerDependencies: - supports-color @@ -3092,14 +3076,14 @@ packages: resolution: {integrity: sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 dev: false - /@azure/msal-browser/2.38.4: - resolution: {integrity: sha512-d1qSanWO9fRKurrxhiyMOIj2jMoGw+2pHb51l2PXNwref7xQO+UeOP2q++5xfHQoUmgTtNuERhitynHla+dvhQ==} + /@azure/msal-browser/2.39.0: + resolution: {integrity: sha512-kks/n2AJzKUk+DBqZhiD+7zeQGBl+WpSOQYzWy6hff3bU0ZrYFqr4keFLlzB5VKuKZog0X59/FGHb1RPBDZLVg==} engines: {node: '>=0.8.0'} dependencies: - '@azure/msal-common': 13.3.1 + '@azure/msal-common': 13.3.3 dev: false /@azure/msal-common/13.3.1: @@ -3107,6 +3091,11 @@ packages: engines: {node: '>=0.8.0'} dev: false + /@azure/msal-common/13.3.3: + resolution: {integrity: sha512-n278DdCXKeiWhLwhEL7/u9HRMyzhUXLefeajiknf6AmEedoiOiv2r5aRJ7LXdT3NGPyubkdIbthaJlVtmuEqvA==} + engines: {node: '>=0.8.0'} + dev: false + /@azure/msal-common/7.6.0: resolution: {integrity: sha512-XqfbglUTVLdkHQ8F9UQJtKseRr3sSnr9ysboxtoswvaMVaEfvyLtMoHv9XdKUfOc0qKGzNgRFd9yRjIWVepl6Q==} engines: {node: '>=0.8.0'} @@ -3128,43 +3117,43 @@ packages: dependencies: '@azure/core-auth': 1.7.2 '@azure/core-client': 1.9.2 - '@azure/core-rest-pipeline': 1.15.2 + '@azure/core-rest-pipeline': 1.16.1 '@azure/core-tracing': 1.1.2 '@azure/logger': 1.1.2 jsonwebtoken: 9.0.1 - tslib: 2.6.2 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: false - /@babel/code-frame/7.24.2: - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + /@babel/code-frame/7.24.7: + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.24.2 - picocolors: 1.0.0 + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 - /@babel/compat-data/7.24.4: - resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} + /@babel/compat-data/7.24.7: + resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.24.4: - resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} + /@babel/core/7.24.7: + resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.4 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3_@babel+core@7.24.4 - '@babel/helpers': 7.24.4 - '@babel/parser': 7.24.4 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-compilation-targets': 7.24.7 + '@babel/helper-module-transforms': 7.24.7_@babel+core@7.24.7 + '@babel/helpers': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/template': 7.24.7 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 convert-source-map: 2.0.0 - debug: 4.3.4 + debug: 4.3.5 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -3172,164 +3161,167 @@ packages: - supports-color dev: true - /@babel/generator/7.24.4: - resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} + /@babel/generator/7.24.7: + resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - /@babel/helper-compilation-targets/7.23.6: - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + /@babel/helper-compilation-targets/7.24.7: + resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.24.4 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.23.0 + '@babel/compat-data': 7.24.7 + '@babel/helper-validator-option': 7.24.7 + browserslist: 4.23.1 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-environment-visitor/7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + /@babel/helper-environment-visitor/7.24.7: + resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.7 dev: true - /@babel/helper-function-name/7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + /@babel/helper-function-name/7.24.7: + resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 dev: true - /@babel/helper-hoist-variables/7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + /@babel/helper-hoist-variables/7.24.7: + resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 dev: true - /@babel/helper-module-imports/7.24.3: - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + /@babel/helper-module-imports/7.24.7: + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color dev: true - /@babel/helper-module-transforms/7.23.3_@babel+core@7.24.4: - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + /@babel/helper-module-transforms/7.24.7_@babel+core@7.24.7: + resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/core': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + transitivePeerDependencies: + - supports-color dev: true - /@babel/helper-simple-access/7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + /@babel/helper-simple-access/7.24.7: + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/traverse': 7.24.7 + '@babel/types': 7.24.7 + transitivePeerDependencies: + - supports-color dev: true - /@babel/helper-split-export-declaration/7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + /@babel/helper-split-export-declaration/7.24.7: + resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.7 dev: true - /@babel/helper-string-parser/7.24.1: - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + /@babel/helper-string-parser/7.24.7: + resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier/7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + /@babel/helper-validator-identifier/7.24.7: + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option/7.23.5: - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + /@babel/helper-validator-option/7.24.7: + resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helpers/7.24.4: - resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} + /@babel/helpers/7.24.7: + resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.1 - '@babel/types': 7.24.0 - transitivePeerDependencies: - - supports-color + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 dev: true - /@babel/highlight/7.24.2: - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + /@babel/highlight/7.24.7: + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.0 + picocolors: 1.0.1 - /@babel/parser/7.24.4: - resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} + /@babel/parser/7.24.7: + resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} engines: {node: '>=6.0.0'} hasBin: true - /@babel/runtime/7.24.5: - resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==} + /@babel/runtime/7.24.7: + resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 dev: true - /@babel/template/7.24.0: - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + /@babel/template/7.24.7: + resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 - /@babel/traverse/7.24.1: - resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} + /@babel/traverse/7.24.7: + resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 - debug: 4.3.4 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.24.7 + '@babel/helper-environment-visitor': 7.24.7 + '@babel/helper-function-name': 7.24.7 + '@babel/helper-hoist-variables': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/types': 7.24.7 + debug: 4.3.5 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types/7.24.0: - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + /@babel/types/7.24.7: + resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-string-parser': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 - /@balena/dockerignore/1.0.2: - resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} - dev: false - /@cdktf/cli-core/0.19.2_react@17.0.2: resolution: {integrity: sha512-kjgEUhrHx3kUPfL7KsTo6GrurVUPT77FmOUf7wWXt7ajNE5zCPvx/HKGmQruzt0n6eLZp1aKT+r/D6YRfXcIGA==} dependencies: @@ -3338,17 +3330,17 @@ packages: '@cdktf/hcl2json': 0.19.2 '@cdktf/node-pty-prebuilt-multiarch': 0.10.1-pre.11 '@cdktf/provider-schema': 0.19.2 - '@sentry/node': 7.110.1 + '@sentry/node': 7.118.0 archiver: 5.3.2 cdktf: 0.19.2_constructs@10.3.0 chalk: 4.1.2 chokidar: 3.6.0 cli-spinners: 2.7.0 - codemaker: 1.97.0 + codemaker: 1.101.0 constructs: 10.3.0 cross-fetch: 3.1.5 cross-spawn: 7.0.3 - detect-port: 1.5.1 + detect-port: 1.6.1 execa: 5.1.1 extract-zip: 2.0.1 follow-redirects: 1.15.6 @@ -3360,9 +3352,9 @@ packages: ink-spinner: 4.0.3_ink@3.2.0+react@17.0.2 ink-testing-library: 2.1.0 ink-use-stdout-dimensions: 1.0.5_ink@3.2.0+react@17.0.2 - jsii: 5.4.3 - jsii-pacmak: 1.97.0 - jsii-srcmak: 0.1.1039 + jsii: 5.4.25 + jsii-pacmak: 1.101.0 + jsii-srcmak: 0.1.1173 lodash.isequal: 4.5.0 log4js: 6.9.1 minimatch: 5.1.6 @@ -3370,9 +3362,9 @@ packages: open: 7.4.2 parse-gitignore: 1.0.1 pkg-up: 3.1.0 - semver: 7.6.0 + semver: 7.6.2 sscaff: 1.2.274 - stream-buffers: 3.0.2 + stream-buffers: 3.0.3 strip-ansi: 6.0.1 tunnel-agent: 0.6.0 uuid: 8.3.2 @@ -3380,12 +3372,13 @@ packages: xstate: 4.38.3 yargs: 17.7.2 yoga-layout-prebuilt: 1.10.0 - zod: 3.22.4 + zod: 3.23.8 transitivePeerDependencies: - '@types/react' - bufferutil - debug - encoding + - jsii-rosetta - react - supports-color - utf-8-validate @@ -3393,10 +3386,10 @@ packages: /@cdktf/commons/0.19.2: resolution: {integrity: sha512-5rOeb0cSREHQa5XVsGFEV6Ce8Zwo2WxE8GIhmGd/JzeSAByhK8scHFlD3+eENl83W/8lwIkm/nSl9oDHEkENIg==} dependencies: - '@sentry/node': 7.110.1 + '@sentry/node': 7.118.0 cdktf: 0.19.2_constructs@10.3.0 ci-info: 3.9.0 - codemaker: 1.97.0 + codemaker: 1.101.0 constructs: 10.3.0 cross-spawn: 7.0.3 follow-redirects: 1.15.6 @@ -3411,22 +3404,22 @@ packages: /@cdktf/hcl2cdk/0.19.2: resolution: {integrity: sha512-v0UNRvvzuCi3SnmSAgBFAnWavT0ybR1AzkK8ndgfbB5JLDoNm0iJV0MOTURZF+I0O3V9u4RZsw4DVNPdil2EEA==} dependencies: - '@babel/generator': 7.24.4 - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + '@babel/generator': 7.24.7 + '@babel/template': 7.24.7 + '@babel/types': 7.24.7 '@cdktf/commons': 0.19.2 '@cdktf/hcl2json': 0.19.2 '@cdktf/provider-generator': 0.19.2 '@cdktf/provider-schema': 0.19.2 camelcase: 6.3.0 deep-equal: 2.2.3 - glob: 10.3.12 + glob: 10.4.2 graphology: 0.25.4_graphology-types@0.24.7 graphology-types: 0.24.7 - jsii-rosetta: 5.4.2 + jsii-rosetta: 5.4.24 prettier: 2.8.8 reserved-words: 0.1.2 - zod: 3.22.4 + zod: 3.23.8 transitivePeerDependencies: - debug - supports-color @@ -3440,7 +3433,7 @@ packages: resolution: {integrity: sha512-qvga/nzEtdCJMu/6jJfDqpzbRejvXtNhWFnbubfuYyN5nMNORNXX+POT4j+mQSDQar5bIQ1a812szw/zr47cfw==} requiresBuild: true dependencies: - nan: 2.19.0 + nan: 2.20.0 prebuild-install: 7.1.2 /@cdktf/provider-azurerm/11.2.0_5k7lg6pu6lyti4sdnvep4rdzly: @@ -3461,10 +3454,10 @@ packages: '@cdktf/hcl2json': 0.19.2 '@cdktf/provider-schema': 0.19.2 '@types/node': 18.18.8 - codemaker: 1.97.0 + codemaker: 1.101.0 deepmerge: 4.3.1 fs-extra: 8.1.0 - jsii-srcmak: 0.1.1039 + jsii-srcmak: 0.1.1173 transitivePeerDependencies: - debug - supports-color @@ -3525,23 +3518,23 @@ packages: '@effect/platform': 0.48.24_dyvpp6bxxcuou3trhs4x4ygr5y '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_jsi5r7dvmbit34siukqkgq3mea + '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye effect: 2.4.17 - ini: 4.1.2 + ini: 4.1.3 toml: 3.0.0 - yaml: 2.4.1 + yaml: 2.4.5 dev: false - /@effect/platform-node-shared/0.3.28_cahjalgelcnk6vcj6x2oc46m3a: - resolution: {integrity: sha512-7OBftCRgRSp5y2A0vUTaN4XsIpKRGbU10JPrv8oX29ppOe6K3xupCAu+vehkhfRxr2fWr5PhUb4F4K/xuptizA==} + /@effect/platform-node-shared/0.3.29_cahjalgelcnk6vcj6x2oc46m3a: + resolution: {integrity: sha512-wP5tO8AX0FX969RLiFVUHbrpRqycNUYOjYiMRv+SQ3Tfv24LMIxksKItlmz3EV2cXk5tk5d1iLN+5d60/92wPw==} peerDependencies: - '@effect/platform': ^0.48.28 + '@effect/platform': ^0.48.29 effect: ^2.4.19 dependencies: '@effect/platform': 0.48.24_dyvpp6bxxcuou3trhs4x4ygr5y '@parcel/watcher': 2.4.1 effect: 2.4.17 - multipasta: 0.2.0 + multipasta: 0.2.2 dev: false /@effect/platform-node/0.45.26_cahjalgelcnk6vcj6x2oc46m3a: @@ -3551,11 +3544,11 @@ packages: effect: ^2.4.17 dependencies: '@effect/platform': 0.48.24_dyvpp6bxxcuou3trhs4x4ygr5y - '@effect/platform-node-shared': 0.3.28_cahjalgelcnk6vcj6x2oc46m3a + '@effect/platform-node-shared': 0.3.29_cahjalgelcnk6vcj6x2oc46m3a effect: 2.4.17 mime: 3.0.0 - undici: 6.13.0 - ws: 8.16.0 + undici: 6.19.2 + ws: 8.18.0 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -3567,11 +3560,11 @@ packages: '@effect/schema': ^0.64.18 effect: ^2.4.17 dependencies: - '@effect/schema': 0.64.18_jsi5r7dvmbit34siukqkgq3mea + '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye effect: 2.4.17 - find-my-way-ts: 0.1.1 + find-my-way-ts: 0.1.4 isomorphic-ws: 5.0.0_ws@8.12.0 - multipasta: 0.2.0 + multipasta: 0.2.2 path-browserify: 1.0.1 transitivePeerDependencies: - ws @@ -3598,14 +3591,14 @@ packages: effect: 2.4.17 dev: false - /@effect/schema/0.64.18_jsi5r7dvmbit34siukqkgq3mea: + /@effect/schema/0.64.18_5wzfkogs2kowufbtxgyqyusxye: resolution: {integrity: sha512-utMVAjcKqmNlkJ8hzdXf3FWBOsekKbe3xhYzWLLLFCpdbTMkCFeN52l1QRXTk7rla87sNTYdMA+xcES9maOEog==} peerDependencies: effect: ^2.4.17 fast-check: ^3.13.2 dependencies: effect: 2.4.17 - fast-check: 3.17.1 + fast-check: 3.19.0 dev: false /@effect/typeclass/0.23.17_effect@2.4.17: @@ -3625,8 +3618,8 @@ packages: eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - /@eslint-community/regexpp/4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + /@eslint-community/regexpp/4.11.0: + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} /@eslint/eslintrc/2.1.4: @@ -3634,7 +3627,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4 + debug: 4.3.5 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -3649,19 +3642,20 @@ packages: resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /@graphql-typed-document-node/core/3.2.0_graphql@16.8.1: + /@graphql-typed-document-node/core/3.2.0_graphql@16.9.0: resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - graphql: 16.8.1 + graphql: 16.9.0 /@humanwhocodes/config-array/0.11.14: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.4 + debug: 4.3.5 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -3672,13 +3666,14 @@ packages: /@humanwhocodes/object-schema/2.0.3: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead /@inquirer/checkbox/1.5.2: resolution: {integrity: sha512-CifrkgQjDkUkWexmgYYNyB5603HhTHI91vLFeQXh6qrTKiCMVASol01Rs1cv6LP/A2WccZSRlJKZhbaBIs/9ZA==} engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 ansi-escapes: 4.3.2 chalk: 4.1.2 figures: 3.2.0 @@ -3688,16 +3683,16 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 chalk: 4.1.2 /@inquirer/core/2.3.1: resolution: {integrity: sha512-faYAYnIfdEuns3jGKykaog5oUqFiEVbCx9nXGZfUhyEEpKcHt5bpJfZTb3eOBQKo8I/v4sJkZeBHmFlSZQuBCw==} engines: {node: '>=14.18.0'} dependencies: - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 '@types/mute-stream': 0.0.1 - '@types/node': 20.12.7 + '@types/node': 20.14.9 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3714,9 +3709,9 @@ packages: resolution: {integrity: sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==} engines: {node: '>=14.18.0'} dependencies: - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 '@types/mute-stream': 0.0.4 - '@types/node': 20.12.7 + '@types/node': 20.14.9 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3734,7 +3729,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 chalk: 4.1.2 external-editor: 3.1.0 @@ -3743,7 +3738,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 chalk: 4.1.2 figures: 3.2.0 @@ -3752,7 +3747,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 chalk: 4.1.2 /@inquirer/password/1.1.16: @@ -3760,7 +3755,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3783,7 +3778,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 chalk: 4.1.2 /@inquirer/select/1.3.3: @@ -3791,14 +3786,16 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.3.0 + '@inquirer/type': 1.4.0 ansi-escapes: 4.3.2 chalk: 4.1.2 figures: 3.2.0 - /@inquirer/type/1.3.0: - resolution: {integrity: sha512-RW4Zf6RCTnInRaOZuRHTqAUl+v6VJuQGglir7nW2BkT3OXOphMhkIFhvFRjorBx2l0VwtC/M4No8vYR65TdN9Q==} + /@inquirer/type/1.4.0: + resolution: {integrity: sha512-AjOqykVyjdJQvtfkNDGUyMYGF8xN50VUxftCQWsOyIo4DFRLr6VQhW0VItGI1JIyQGCGgIpKa7hMMwNhZb4OIw==} engines: {node: '>=18'} + dependencies: + mute-stream: 1.0.0 /@isaacs/cliui/8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} @@ -3858,30 +3855,23 @@ packages: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - /@jsii/check-node/1.96.0: - resolution: {integrity: sha512-1EZudLi9wMg6d8JYu8t5s0B+WhyAJvOezhdmFv+PTrTc1Eze7NRY7uZuvBRRkBvqvOWlKkCfBByyeZJnLcxNMA==} + /@jsii/check-node/1.101.0: + resolution: {integrity: sha512-io8u1GAF9XGp2crx0C/WGiJeUnHGw5X0du4fisbrNJHmVVFwcJbBMjbfXKWq+JSzl8fo/JV3F1LqtjsnawKA2A==} engines: {node: '>= 14.17.0'} dependencies: chalk: 4.1.2 - semver: 7.6.0 + semver: 7.6.2 - /@jsii/check-node/1.97.0: - resolution: {integrity: sha512-n7t4p2JNyr6iBkAv/+9pDPU6hV/sa3Kqdp6oPw5v4/TqNyopGSGtxyOtNXtsBcN6zMibAVXmvhzZA+OBaX1FiQ==} + /@jsii/spec/1.101.0: + resolution: {integrity: sha512-855OnjKm4RTzRA78GGTNBG/GLe6X/vHJYD58zg7Rw8rWS7sU6iB65TM/7P7R3cufVew8umjjPjvW7ygS6ZqITQ==} engines: {node: '>= 14.17.0'} dependencies: - chalk: 4.1.2 - semver: 7.6.0 - - /@jsii/spec/1.97.0: - resolution: {integrity: sha512-5YIq1fgOtToH6eUyTNlqAXuZzUzTD6wBukE7m5DpsxHjQlbR7TVP750FcPqH9qCitCwaePPl5IdCZJ/AS0IwEA==} - engines: {node: '>= 14.17.0'} - dependencies: - ajv: 8.12.0 + ajv: 8.16.0 /@kwsites/file-exists/1.1.1_supports-color@8.1.1: resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} dependencies: - debug: 4.3.4_supports-color@8.1.1 + debug: 4.3.5_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true @@ -3908,7 +3898,7 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - /@oclif/core/2.16.0_cwiqw7fmejhb47wvqtchhjxme4: + /@oclif/core/2.16.0_qtieencaeb6d72le3lfodyl2z4: resolution: {integrity: sha512-dL6atBH0zCZl1A1IXCKJgLPrM/wR7K+Wi401E/IvqsK8m2iCHW+0TEOGrans/cuN3oTW+uxIyJFHJ8Im0k4qBw==} engines: {node: '>=14.0.0'} dependencies: @@ -3919,7 +3909,7 @@ packages: chalk: 4.1.2 clean-stack: 3.0.1 cli-progress: 3.12.0 - debug: 4.3.4_supports-color@8.1.1 + debug: 4.3.5_supports-color@8.1.1 ejs: 3.1.10 get-package-type: 0.1.0 globby: 11.1.0 @@ -3935,8 +3925,8 @@ packages: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - ts-node: 10.9.2_cwiqw7fmejhb47wvqtchhjxme4 - tslib: 2.6.2 + ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 + tslib: 2.6.3 widest-line: 3.1.0 wordwrap: 1.0.0 wrap-ansi: 7.0.0 @@ -3958,7 +3948,7 @@ packages: clean-stack: 3.0.1 cli-progress: 3.12.0 color: 4.2.3 - debug: 4.3.4_supports-color@8.1.1 + debug: 4.3.5_supports-color@8.1.1 ejs: 3.1.10 get-package-type: 0.1.0 globby: 11.1.0 @@ -3974,7 +3964,7 @@ packages: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - tsconfck: 3.0.3_typescript@5.1.6 + tsconfck: 3.1.1_typescript@5.1.6 widest-line: 3.1.0 wordwrap: 1.0.0 wrap-ansi: 7.0.0 @@ -3982,8 +3972,8 @@ packages: - typescript dev: false - /@oclif/core/3.26.3: - resolution: {integrity: sha512-e6Vwu+cb2Sn4qFFpmY1fQLRWIY5ugruMuN94xb7+kyUzxrirYjJATPhuCT1G5xj9Dk+hTMH+Sp6XcHcVTS1lHg==} + /@oclif/core/3.27.0: + resolution: {integrity: sha512-Fg93aNFvXzBq5L7ztVHFP2nYwWU1oTCq48G0TjF/qC1UN36KWa2H5Hsm72kERd5x/sjy2M2Tn4kDEorUlpXOlw==} engines: {node: '>=18.0.0'} dependencies: '@types/cli-progress': 3.11.5 @@ -3994,7 +3984,7 @@ packages: clean-stack: 3.0.1 cli-progress: 3.12.0 color: 4.2.3 - debug: 4.3.4_supports-color@8.1.1 + debug: 4.3.5_supports-color@8.1.1 ejs: 3.1.10 get-package-type: 0.1.0 globby: 11.1.0 @@ -4002,7 +3992,7 @@ packages: indent-string: 4.0.0 is-wsl: 2.2.0 js-yaml: 3.14.1 - minimatch: 9.0.4 + minimatch: 9.0.5 natural-orderby: 2.0.3 object-treeify: 1.1.33 password-prompt: 1.1.3 @@ -4016,11 +4006,11 @@ packages: wrap-ansi: 7.0.0 dev: true - /@oclif/plugin-help/5.2.20_cwiqw7fmejhb47wvqtchhjxme4: + /@oclif/plugin-help/5.2.20_qtieencaeb6d72le3lfodyl2z4: resolution: {integrity: sha512-u+GXX/KAGL9S10LxAwNUaWdzbEBARJ92ogmM7g3gDVud2HioCmvWQCDohNRVZ9GYV9oKwZ/M8xwd6a1d95rEKQ==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.16.0_cwiqw7fmejhb47wvqtchhjxme4 + '@oclif/core': 2.16.0_qtieencaeb6d72le3lfodyl2z4 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -4028,13 +4018,13 @@ packages: - typescript dev: false - /@oclif/test/3.2.10: - resolution: {integrity: sha512-9h6rMHnFS7zf0CLmfqtbAmdDSLpYF8otu25YpeqQXOX3b9TYeyfOvD61TkkxJ2T3zpqnrViNzifsF6gfM6xanQ==} + /@oclif/test/3.2.15: + resolution: {integrity: sha512-XqG3RosozNqySkxSXInU12Xec2sPSOkqYHJDfdFZiWG3a8Cxu4dnPiAQvms+BJsOlLQmfEQlSHqiyVUKOMHhXA==} engines: {node: '>=18.0.0'} dependencies: - '@oclif/core': 3.26.3 + '@oclif/core': 3.27.0 chai: 4.4.1 - fancy-test: 3.0.14 + fancy-test: 3.0.16 transitivePeerDependencies: - supports-color dev: true @@ -4153,7 +4143,7 @@ packages: dependencies: detect-libc: 1.0.3 is-glob: 4.0.3 - micromatch: 4.0.5 + micromatch: 4.0.7 node-addon-api: 7.1.0 optionalDependencies: '@parcel/watcher-android-arm64': 2.4.1 @@ -4186,39 +4176,49 @@ packages: localforage: 1.10.0 util: 0.12.5 - /@sentry-internal/tracing/7.110.1: - resolution: {integrity: sha512-4kTd6EM0OP1SVWl2yLn3KIwlCpld1lyhNDeR8G1aKLm1PN+kVsR6YB/jy9KPPp4Q3lN3W9EkTSES3qhP4jVffQ==} + /@sentry-internal/tracing/7.118.0: + resolution: {integrity: sha512-dERAshKlQLrBscHSarhHyUeGsu652bDTUN1FK0m4e3X48M3I5/s+0N880Qjpe5MprNLcINlaIgdQ9jkisvxjfw==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.110.1 - '@sentry/types': 7.110.1 - '@sentry/utils': 7.110.1 + '@sentry/core': 7.118.0 + '@sentry/types': 7.118.0 + '@sentry/utils': 7.118.0 - /@sentry/core/7.110.1: - resolution: {integrity: sha512-yC1yeUFQlmHj9u/KxKmwOMVanBmgfX+4MZnZU31QPqN95adyZTwpaYFZl4fH5kDVnz7wXJI0qRP8SxuMePtqhw==} + /@sentry/core/7.118.0: + resolution: {integrity: sha512-ol0xBdp3/K11IMAYSQE0FMxBOOH9hMsb/rjxXWe0hfM5c72CqYWL3ol7voPci0GELJ5CZG+9ImEU1V9r6gK64g==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.110.1 - '@sentry/utils': 7.110.1 + '@sentry/types': 7.118.0 + '@sentry/utils': 7.118.0 - /@sentry/node/7.110.1: - resolution: {integrity: sha512-n6sNzZJ/ChfyCI1FxuGWgloeevC8j2vax3vXM4IZrSIm5hS1d9L2oCJ4HEPuxGUxCkQ1f4kXPcdmNaQsWH0JBw==} + /@sentry/integrations/7.118.0: + resolution: {integrity: sha512-C2rR4NvIMjokF8jP5qzSf1o2zxDx7IeYnr8u15Kb2+HdZtX559owALR0hfgwnfeElqMhGlJBaKUWZ48lXJMzCQ==} engines: {node: '>=8'} dependencies: - '@sentry-internal/tracing': 7.110.1 - '@sentry/core': 7.110.1 - '@sentry/types': 7.110.1 - '@sentry/utils': 7.110.1 + '@sentry/core': 7.118.0 + '@sentry/types': 7.118.0 + '@sentry/utils': 7.118.0 + localforage: 1.10.0 + + /@sentry/node/7.118.0: + resolution: {integrity: sha512-79N63DvYKkNPqzmc0cjO+vMZ/nU7+CbE3K3COQNiV7gk58+666G9mRZQJuZVOVebatq5wM5UR0G4LPkwD+J84g==} + engines: {node: '>=8'} + dependencies: + '@sentry-internal/tracing': 7.118.0 + '@sentry/core': 7.118.0 + '@sentry/integrations': 7.118.0 + '@sentry/types': 7.118.0 + '@sentry/utils': 7.118.0 - /@sentry/types/7.110.1: - resolution: {integrity: sha512-sZxOpM5gfyxvJeWVvNpHnxERTnlqcozjqNcIv29SZ6wonlkekmxDyJ3uCuPv85VO54WLyA4uzskPKnNFHacI8A==} + /@sentry/types/7.118.0: + resolution: {integrity: sha512-2drqrD2+6kgeg+W/ycmiti3G4lJrV3hGjY9PpJ3bJeXrh6T2+LxKPzlgSEnKFaeQWkXdZ4eaUbtTXVebMjb5JA==} engines: {node: '>=8'} - /@sentry/utils/7.110.1: - resolution: {integrity: sha512-eibLo2m1a7sHkOHxYYmRujr3D7ek2l9sv26F1SLoQBVDF7Afw5AKyzPmtA1D+4M9P/ux1okj7cGj3SaBrVpxXA==} + /@sentry/utils/7.118.0: + resolution: {integrity: sha512-43qItc/ydxZV1Zb3Kn2M54RwL9XXFa3IAYBO8S82Qvq5YUYmU2AmJ1jgg7DabXlVSWgMA1HntwqnOV3JLaEnTQ==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.110.1 + '@sentry/types': 7.118.0 /@serverless/dashboard-plugin/6.4.0_supports-color@8.1.1: resolution: {integrity: sha512-2yJQym94sXZhEFbcOVRMJgJ4a2H9Qly94UeUesPwf8bfWCxtiB4l5rxLnCB2aLTuUf/djcuD5/VrNPY1pRU7DA==} @@ -4234,14 +4234,14 @@ packages: js-yaml: 4.1.0 jszip: 3.10.1 lodash: 4.17.21 - memoizee: 0.4.15 + memoizee: 0.4.17 ncjsm: 4.3.2 node-dir: 0.1.17 node-fetch: 2.7.0 open: 7.4.2 - semver: 7.6.0 - simple-git: 3.24.0_supports-color@8.1.1 - type: 2.7.2 + semver: 7.6.2 + simple-git: 3.25.0_supports-color@8.1.1 + type: 2.7.3 uuid: 8.3.2 yamljs: 0.3.0 transitivePeerDependencies: @@ -4255,7 +4255,7 @@ packages: /@serverless/event-mocks/1.1.1: resolution: {integrity: sha512-YAV5V/y+XIOfd+HEVeXfPWZb8C6QLruFk9tBivoX2roQLWVq145s4uxf8D0QioCueuRzkukHUS4JIj+KVoS34A==} dependencies: - '@types/lodash': 4.17.0 + '@types/lodash': 4.17.6 lodash: 4.17.21 dev: true @@ -4263,13 +4263,13 @@ packages: resolution: {integrity: sha512-XltmO/029X76zi0LUFmhsnanhE2wnqH1xf+WBt5K8gumQA9LnrfwLgPxj+VA+mm6wQhy+PCp7H5SS0ZPu7F2Cw==} engines: {node: '>=10.0'} dependencies: - adm-zip: 0.5.12 + adm-zip: 0.5.14 archiver: 5.3.0 - axios: 1.6.8 + axios: 1.7.2 fast-glob: 3.3.2 https-proxy-agent: 5.0.1_supports-color@8.1.1 ignore: 5.3.1 - isomorphic-ws: 4.0.1_ws@7.5.9 + isomorphic-ws: 4.0.1_ws@7.5.10 js-yaml: 3.14.1 jwt-decode: 2.2.0 minimatch: 3.1.2 @@ -4277,7 +4277,7 @@ packages: run-parallel-limit: 1.1.0 throat: 5.0.0 traverse: 0.6.9 - ws: 7.5.9 + ws: 7.5.10 transitivePeerDependencies: - bufferutil - debug @@ -4310,15 +4310,15 @@ packages: log: 6.3.1 log-node: 8.0.3_log@6.3.1 make-dir: 4.0.0 - memoizee: 0.4.15 + memoizee: 0.4.17 ms: 2.1.3 ncjsm: 4.3.2 node-fetch: 2.7.0 open: 8.4.2 p-event: 4.2.0 supports-color: 8.1.1 - timers-ext: 0.1.7 - type: 2.7.2 + timers-ext: 0.1.8 + type: 2.7.3 uni-global: 1.0.0 uuid: 8.3.2 write-file-atomic: 4.0.2 @@ -4440,14 +4440,14 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 18.19.31 + '@types/node': 18.19.39 /@types/cacheable-request/6.0.3: resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/responselike': 1.0.3 dev: true @@ -4470,30 +4470,30 @@ packages: /@types/child-process-promise/2.2.6: resolution: {integrity: sha512-g0pOHijr6Trug43D2bV0PLSIsSHa/xHEES2HeX5BAlduq1vW0nZcq27Zeud5lgmNB+kPYYVqiMap32EHGTco/w==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true /@types/cli-progress/3.11.5: resolution: {integrity: sha512-D4PbNRbviKyppS5ivBGyFO29POlySLmA2HyUFE4p5QGazAMM3CwkKWcvTl8gvElSuxRh6FPKL8XmidX873ou4g==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 /@types/connect/3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 /@types/cors/2.8.17: resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true - /@types/express-serve-static-core/4.19.0: - resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==} + /@types/express-serve-static-core/4.19.5: + resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} dependencies: - '@types/node': 18.19.31 - '@types/qs': 6.9.14 + '@types/node': 18.19.39 + '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -4501,8 +4501,8 @@ packages: resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.0 - '@types/qs': 6.9.14 + '@types/express-serve-static-core': 4.19.5 + '@types/qs': 6.9.15 '@types/serve-static': 1.15.7 /@types/faker/5.1.5: @@ -4512,14 +4512,14 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true /@types/glob/8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.19.31 + '@types/node': 18.19.39 /@types/http-cache-semantics/4.0.4: resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} @@ -4548,16 +4548,16 @@ packages: /@types/jsonwebtoken/9.0.1: resolution: {integrity: sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true - /@types/lodash/4.17.0: - resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} + /@types/lodash/4.17.6: + resolution: {integrity: sha512-OpXEVoCKSS3lQqjx9GGGOapBeuW5eUboYHRlHP9urXPX25IKZ6AnP5ZRxtVf63iieUbsHxLn8NQ5Nlftc6yzAA==} dev: true /@types/mime/1.3.5: @@ -4577,29 +4577,29 @@ packages: /@types/mute-stream/0.0.1: resolution: {integrity: sha512-0yQLzYhCqGz7CQPE3iDmYjhb7KMBFOP+tBkyw+/Y2YyDI5wpS7itXXxneN1zSsUwWx3Ji6YiVYrhAnpQGS/vkw==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 /@types/mute-stream/0.0.4: resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 /@types/nedb/1.8.16: resolution: {integrity: sha512-ND+uzwAZk7ZI9byOvHGOcZe2R9XUcLF698yDJKn00trFvh+GaemkX3gQKCSKtObjDpv8Uuou+k8v4x4scPr4TA==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true /@types/needle/2.5.3: resolution: {integrity: sha512-RwgTwMRaedfyCBe5SSWMpm1Yqzc5UPZEMw0eAd09OSyV93nLRj9/evMGZmgFeHKzUOd4xxtHvgtc+rjcBjI1Qg==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: false /@types/node-schedule/1.3.2: resolution: {integrity: sha512-Y0CqdAr+lCpArT8CJJjJq4U2v8Bb5e7ru2nV/NhDdaptCMCRdOL3Y7tAhen39HluQMaIKWvPbDuiFBUQpg7Srw==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true /@types/node/10.17.60: @@ -4611,13 +4611,13 @@ packages: dependencies: undici-types: 5.26.5 - /@types/node/18.19.31: - resolution: {integrity: sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==} + /@types/node/18.19.39: + resolution: {integrity: sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==} dependencies: undici-types: 5.26.5 - /@types/node/20.12.7: - resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} + /@types/node/20.14.9: + resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==} dependencies: undici-types: 5.26.5 @@ -4625,8 +4625,8 @@ packages: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true - /@types/qs/6.9.14: - resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} + /@types/qs/6.9.15: + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} /@types/range-parser/1.2.7: resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} @@ -4634,7 +4634,7 @@ packages: /@types/responselike/1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true /@types/rewire/2.5.30: @@ -4648,13 +4648,13 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.31 + '@types/node': 18.19.39 /@types/serve-static/1.15.7: resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/node': 18.19.31 + '@types/node': 18.19.39 '@types/send': 0.17.4 /@types/sinon-chai/3.2.5: @@ -4679,7 +4679,7 @@ packages: /@types/through/0.0.33: resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true /@types/uuid/8.3.0: @@ -4696,14 +4696,14 @@ packages: /@types/ws/8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 dev: true /@types/yauzl/2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 18.19.31 + '@types/node': 18.19.39 optional: true /@types/yoga-layout/1.9.2: @@ -4720,17 +4720,17 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/regexpp': 4.11.0 '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/type-utils': 5.62.0_trrslaohprr5r73nykufww5lry '@typescript-eslint/utils': 5.62.0_trrslaohprr5r73nykufww5lry - debug: 4.3.4 + debug: 4.3.5 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare-lite: 1.4.0 - semver: 7.6.0 + semver: 7.6.2 tsutils: 3.21.0_typescript@5.1.6 typescript: 5.1.6 transitivePeerDependencies: @@ -4749,7 +4749,7 @@ packages: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 - debug: 4.3.4 + debug: 4.3.5 eslint: 8.57.0 typescript: 5.1.6 transitivePeerDependencies: @@ -4774,7 +4774,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 '@typescript-eslint/utils': 5.62.0_trrslaohprr5r73nykufww5lry - debug: 4.3.4 + debug: 4.3.5 eslint: 8.57.0 tsutils: 3.21.0_typescript@5.1.6 typescript: 5.1.6 @@ -4796,10 +4796,10 @@ packages: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.4 + debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.6.0 + semver: 7.6.2 tsutils: 3.21.0_typescript@5.1.6 typescript: 5.1.6 transitivePeerDependencies: @@ -4819,7 +4819,7 @@ packages: '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 eslint: 8.57.0 eslint-scope: 5.1.1 - semver: 7.6.0 + semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript @@ -4838,19 +4838,19 @@ packages: resolution: {integrity: sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==} engines: {node: '>=8'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 /@wry/equality/0.5.7: resolution: {integrity: sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==} engines: {node: '>=8'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 /@wry/trie/0.3.2: resolution: {integrity: sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==} engines: {node: '>=8'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 /@xmldom/xmldom/0.8.10: resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} @@ -4871,16 +4871,18 @@ packages: acorn: 7.4.1 dev: true - /acorn-jsx/5.3.2_acorn@8.11.3: + /acorn-jsx/5.3.2_acorn@8.12.1: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.11.3 + acorn: 8.12.1 - /acorn-walk/8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + /acorn-walk/8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} engines: {node: '>=0.4.0'} + dependencies: + acorn: 8.12.1 /acorn/7.4.1: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} @@ -4888,8 +4890,8 @@ packages: hasBin: true dev: true - /acorn/8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + /acorn/8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true @@ -4897,16 +4899,16 @@ packages: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} - /adm-zip/0.5.12: - resolution: {integrity: sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ==} - engines: {node: '>=6.0'} + /adm-zip/0.5.14: + resolution: {integrity: sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==} + engines: {node: '>=12.0'} dev: true /agent-base/6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -4914,7 +4916,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.4_supports-color@8.1.1 + debug: 4.3.5_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true @@ -4923,7 +4925,7 @@ packages: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color dev: false @@ -4942,7 +4944,7 @@ packages: ajv: optional: true dependencies: - ajv: 8.12.0 + ajv: 8.16.0 dev: true /ajv/6.12.6: @@ -4953,8 +4955,8 @@ packages: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - /ajv/8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + /ajv/8.16.0: + resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -5213,8 +5215,8 @@ packages: fsevents: 2.3.2 dev: false - /aws-sdk/2.1599.0: - resolution: {integrity: sha512-jPb1LAN+s1TLTK+VR3TTJLr//sb3AhhT60Bm9jxB5G/fVeeRczXtBtixNpQ00gksQdkstILYLc9S6MuKMsksxA==} + /aws-sdk/2.1654.0: + resolution: {integrity: sha512-b5ryvXipBJod9Uh1GUfQNgi5tIIiluxJbyqr/hZ/mr5U8WxrrfjVq3nGnx5JjevFKYRqXIywhumsVyanfACzFA==} engines: {node: '>= 10.0.0'} requiresBuild: true dependencies: @@ -5243,8 +5245,8 @@ packages: uuid: 3.3.2 xml2js: 0.4.19 - /axios/1.6.8: - resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} + /axios/1.7.2: + resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} dependencies: follow-redirects: 1.15.6 form-data: 4.0.0 @@ -5317,25 +5319,25 @@ packages: dependencies: balanced-match: 1.0.2 - /braces/3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + /braces/3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} dependencies: - fill-range: 7.0.1 + fill-range: 7.1.1 /browser-stdout/1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true - /browserslist/4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + /browserslist/4.23.1: + resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001610 - electron-to-chromium: 1.4.736 + caniuse-lite: 1.0.30001640 + electron-to-chromium: 1.4.816 node-releases: 2.0.14 - update-browserslist-db: 1.0.13_browserslist@4.23.0 + update-browserslist-db: 1.1.0_browserslist@4.23.1 dev: true /buffer-alloc-unsafe/1.1.0: @@ -5442,13 +5444,14 @@ packages: /camelcase/5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} + dev: true /camelcase/6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - /caniuse-lite/1.0.30001610: - resolution: {integrity: sha512-QFutAY4NgaelojVMjY63o6XlZyORPaLfyMnsl3HgnWdJUcX6K0oaJymHjH8PT5Gk7sTm8rvC/c5COUQKXqmOMA==} + /caniuse-lite/1.0.30001640: + resolution: {integrity: sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==} dev: true /cardinal/2.1.1: @@ -5470,7 +5473,7 @@ packages: '@aws-cdk/cloud-assembly-schema': 2.39.1 '@aws-cdk/cx-api': 2.39.1 archiver: 5.3.2 - aws-sdk: 2.1599.0 + aws-sdk: 2.1654.0 glob: 7.2.3 mime: 2.6.0 yargs: 16.2.0 @@ -5485,17 +5488,17 @@ packages: '@cdktf/hcl2cdk': 0.19.2 '@cdktf/hcl2json': 0.19.2 '@inquirer/prompts': 2.3.1 - '@sentry/node': 7.110.1 + '@sentry/node': 7.118.0 cdktf: 0.19.2_constructs@10.3.0 ci-info: 3.9.0 - codemaker: 1.97.0 + codemaker: 1.101.0 constructs: 10.3.0 cross-spawn: 7.0.3 https-proxy-agent: 5.0.1 ink-select-input: 4.2.2_ink@3.2.0+react@17.0.2 ink-table: 3.1.0_ink@3.2.0+react@17.0.2 - jsii: 5.4.3 - jsii-pacmak: 1.97.0 + jsii: 5.4.25 + jsii-pacmak: 1.101.0 minimatch: 5.1.6 node-fetch: 2.7.0 pidtree: 0.6.0 @@ -5504,13 +5507,14 @@ packages: xml-js: 1.6.11 yargs: 17.7.2 yoga-layout-prebuilt: 1.10.0 - zod: 3.22.4 + zod: 3.23.8 transitivePeerDependencies: - '@types/react' - bufferutil - debug - encoding - ink + - jsii-rosetta - react - supports-color - utf-8-validate @@ -5520,10 +5524,7 @@ packages: peerDependencies: constructs: ^10.0.25 dependencies: - archiver: 5.3.2 constructs: 10.3.0 - json-stable-stringify: 1.1.1 - semver: 7.6.0 bundledDependencies: - archiver - json-stable-stringify @@ -5559,7 +5560,7 @@ packages: dependencies: assertion-error: 1.1.0 check-error: 1.0.3 - deep-eql: 4.1.3 + deep-eql: 4.1.4 get-func-name: 2.0.2 loupe: 2.3.7 pathval: 1.1.1 @@ -5626,7 +5627,7 @@ packages: engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -5641,7 +5642,7 @@ packages: engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -5698,8 +5699,8 @@ packages: d: 1.0.2 es5-ext: 0.10.64 es6-iterator: 2.0.3 - memoizee: 0.4.15 - timers-ext: 0.1.7 + memoizee: 0.4.17 + timers-ext: 0.1.8 dev: true /cli-cursor/2.1.0: @@ -5724,8 +5725,8 @@ packages: es5-ext: 0.10.64 mute-stream: 0.0.8 process-utils: 4.0.0 - timers-ext: 0.1.7 - type: 2.7.2 + timers-ext: 0.1.8 + type: 2.7.3 dev: true /cli-progress/3.12.0: @@ -5748,7 +5749,7 @@ packages: dependencies: cli-color: 2.0.4 es5-ext: 0.10.64 - sprintf-kit: 2.0.1 + sprintf-kit: 2.0.2 supports-color: 6.1.0 dev: true @@ -5781,6 +5782,7 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 6.2.0 + dev: true /cliui/7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -5821,8 +5823,8 @@ packages: dependencies: convert-to-spaces: 1.0.2 - /codemaker/1.97.0: - resolution: {integrity: sha512-24ocuOL6bD9imoQqrYJOwPuL05HlEgdD8NyrtLWDUk2T94I3jwvw9pEmaj9Q4nW9tj9EEM3Ko1zV8mvPr0+mcA==} + /codemaker/1.101.0: + resolution: {integrity: sha512-bAg+N4PA8mniJrCpTYFdaFmJA+3fE1Vjgf4o1EnPc07nw6qRcJsr/D9ZZoutEsvw7UM8OmZp4qZxVzpCqRhhQQ==} engines: {node: '>= 14.17.0'} dependencies: camelcase: 6.3.0 @@ -5884,15 +5886,6 @@ packages: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true - /commonmark/0.30.0: - resolution: {integrity: sha512-j1yoUo4gxPND1JWV9xj5ELih0yMv1iCWDG6eEQIPLSWLxzCXiFoyS7kvB+WwU+tZMf4snwJMMtaubV0laFpiBA==} - hasBin: true - dependencies: - entities: 2.0.3 - mdurl: 1.0.1 - minimist: 1.2.8 - string.prototype.repeat: 0.2.0 - /commonmark/0.31.0: resolution: {integrity: sha512-nuDsQ34gjmgAqjyIz6mbRWBW/XPE9wsBempAMBk2V/AA88ekztjTM46oi07J6c6Y/2Y8TdYCZi9L0pIBt/oMZw==} hasBin: true @@ -6070,7 +6063,7 @@ packages: engines: {node: '>=0.12'} dependencies: es5-ext: 0.10.64 - type: 2.7.2 + type: 2.7.3 dev: true /data-view-buffer/1.0.1: @@ -6101,15 +6094,15 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.7 dev: true /date-format/4.0.14: resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} engines: {node: '>=4.0'} - /dayjs/1.11.10: - resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + /dayjs/1.11.11: + resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==} dev: true /debug/2.6.9: @@ -6122,7 +6115,7 @@ packages: dependencies: ms: 2.1.3 - /debug/4.3.4: + /debug/4.3.4_supports-color@8.1.1: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: @@ -6132,9 +6125,22 @@ packages: optional: true dependencies: ms: 2.1.2 + supports-color: 8.1.1 + dev: true - /debug/4.3.4_supports-color@8.1.1: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + /debug/4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /debug/4.3.5_supports-color@8.1.1: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -6148,6 +6154,7 @@ packages: /decamelize/1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} + dev: true /decamelize/4.0.0: resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} @@ -6223,8 +6230,8 @@ packages: dependencies: type-detect: 4.0.8 - /deep-eql/4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + /deep-eql/4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} dependencies: type-detect: 4.0.8 @@ -6288,7 +6295,7 @@ packages: es5-ext: 0.10.64 event-emitter: 0.3.5 next-tick: 1.1.0 - timers-ext: 0.1.7 + timers-ext: 0.1.8 dev: true /define-data-property/1.1.4: @@ -6342,12 +6349,13 @@ packages: resolution: {integrity: sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==} engines: {node: '>=0.10.0'} - /detect-port/1.5.1: - resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} + /detect-port/1.6.1: + resolution: {integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==} + engines: {node: '>= 4.0.0'} hasBin: true dependencies: address: 1.2.2 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -6407,9 +6415,9 @@ packages: resolution: {integrity: sha512-vo835pntK7kzYStk7xUHDifiYJvXxVhUapt85uk2AI94gUUAQX9HNRtrcMHNSc3YHJUEHGbYIGsM99uIbgAtxw==} hasBin: true dependencies: - semver: 7.6.0 + semver: 7.6.2 shelljs: 0.8.5 - typescript: 5.6.0-dev.20240604 + typescript: 5.6.0-dev.20240705 /duration/0.2.2: resolution: {integrity: sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==} @@ -6438,10 +6446,10 @@ packages: engines: {node: '>=0.10.0'} hasBin: true dependencies: - jake: 10.8.7 + jake: 10.9.1 - /electron-to-chromium/1.4.736: - resolution: {integrity: sha512-Rer6wc3ynLelKNM4lOCg7/zPQj8tPOCB2hzD32PX9wd3hgRRi9MxEbmkFCokzcEhRVMiOVLjnL9ig9cefJ+6+Q==} + /electron-to-chromium/1.4.816: + resolution: {integrity: sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==} dev: true /emoji-regex/7.0.3: @@ -6463,9 +6471,6 @@ packages: dependencies: once: 1.4.0 - /entities/2.0.3: - resolution: {integrity: sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==} - /entities/3.0.1: resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} engines: {node: '>=0.12'} @@ -6495,7 +6500,7 @@ packages: function.prototype.name: 1.1.6 get-intrinsic: 1.2.4 get-symbol-description: 1.0.2 - globalthis: 1.0.3 + globalthis: 1.0.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 has-proto: 1.0.3 @@ -6511,7 +6516,7 @@ packages: is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.1 + object-inspect: 1.13.2 object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.2 @@ -6609,7 +6614,7 @@ packages: es6-iterator: 2.0.3 es6-symbol: 3.1.4 event-emitter: 0.3.5 - type: 2.7.2 + type: 2.7.3 dev: true /es6-symbol/3.1.4: @@ -6660,7 +6665,7 @@ packages: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 - is-core-module: 2.13.1 + is-core-module: 2.14.0 resolve: 1.22.8 /eslint-module-utils/2.8.1_eslint@8.57.0: @@ -6691,7 +6696,7 @@ packages: eslint-import-resolver-node: 0.3.9 eslint-module-utils: 2.8.1_eslint@8.57.0 hasown: 2.0.2 - is-core-module: 2.13.1 + is-core-module: 2.14.0 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.8 @@ -6722,7 +6727,7 @@ packages: peerDependencies: eslint: '>=8.23.1' dependencies: - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-validator-identifier': 7.24.7 ci-info: 3.9.0 clean-regexp: 1.0.0 eslint: 8.57.0 @@ -6735,7 +6740,7 @@ packages: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 safe-regex: 2.1.1 - semver: 7.6.0 + semver: 7.6.2 strip-indent: 3.0.0 dev: true @@ -6789,11 +6794,11 @@ packages: engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} hasBin: true dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 ajv: 6.12.6 chalk: 2.4.2 cross-spawn: 6.0.5 - debug: 4.3.4 + debug: 4.3.5 doctrine: 3.0.0 eslint-scope: 5.1.1 eslint-utils: 1.4.3 @@ -6836,7 +6841,7 @@ packages: hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0_eslint@8.57.0 - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/regexpp': 4.11.0 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.0 '@humanwhocodes/config-array': 0.11.14 @@ -6846,7 +6851,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.5 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -6870,7 +6875,7 @@ packages: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.3 + optionator: 0.9.4 strip-ansi: 6.0.1 text-table: 0.2.0 transitivePeerDependencies: @@ -6891,7 +6896,7 @@ packages: d: 1.0.2 es5-ext: 0.10.64 event-emitter: 0.3.5 - type: 2.7.2 + type: 2.7.3 dev: true /espree/6.2.1: @@ -6907,8 +6912,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2_acorn@8.11.3 + acorn: 8.12.1 + acorn-jsx: 5.3.2_acorn@8.12.1 eslint-visitor-keys: 3.4.3 /esprima/4.0.1: @@ -7059,7 +7064,7 @@ packages: /ext/1.7.0: resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} dependencies: - type: 2.7.2 + type: 2.7.3 dev: true /external-editor/3.1.0: @@ -7075,7 +7080,7 @@ packages: engines: {node: '>= 10.17.0'} hasBin: true dependencies: - debug: 4.3.4 + debug: 4.3.5 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -7087,13 +7092,14 @@ packages: resolution: {integrity: sha512-RrWKFSSA/aNLP0g3o2WW1Zez7/MnMr7xkiZmoCfAGZmdkDQZ6l2KtuXHN5XjdvpRjDl8+3vf+Rrtl06Z352+Mw==} dev: true - /fancy-test/3.0.14: - resolution: {integrity: sha512-FkiDltQA8PBZzw5tUnMrP1QtwIdNQWxxbZK5C22M9wu6HfFNciwkG3D9siT4l4s1fBTDaEG+Fdkbpi9FDTxtrg==} + /fancy-test/3.0.16: + resolution: {integrity: sha512-y1xZFpyYbE2TMiT+agOW2Emv8gr73zvDrKKbcXc8L+gMyIVJFn71cc4ICfzu2zEXjHirpHpdDJN0JBX99wwDXQ==} engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. dependencies: '@types/chai': 4.2.18 - '@types/lodash': 4.17.0 - '@types/node': 18.19.31 + '@types/lodash': 4.17.6 + '@types/node': 18.19.39 '@types/sinon': 10.0.0 lodash: 4.17.21 mock-stdin: 1.0.0 @@ -7104,8 +7110,8 @@ packages: - supports-color dev: true - /fast-check/3.17.1: - resolution: {integrity: sha512-jIKXJVe6ZO0SpwEgVtEVujTf8TwjI9wMXFJCjsDHUB3RroUbXBgF4kOSz3A7MW0UR26aqsoB8i9O2mjtjERAiA==} + /fast-check/3.19.0: + resolution: {integrity: sha512-CO2JX/8/PT9bDGO1iXa5h5ey1skaKI1dvecERyhH4pp3PGjwd3KIjMAXEg79Ps9nclsdt4oPbfqiAnLU0EwrAQ==} engines: {node: '>=8.0.0'} dependencies: pure-rand: 6.1.0 @@ -7128,7 +7134,7 @@ packages: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.7 /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -7233,8 +7239,8 @@ packages: engines: {node: '>= 0.4.0'} dev: true - /fill-range/7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + /fill-range/7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 @@ -7260,8 +7266,8 @@ packages: pkg-dir: 4.2.0 dev: true - /find-my-way-ts/0.1.1: - resolution: {integrity: sha512-nXUdq29JRQ1tYa1/n+DHTVChMARJHz+gi7sDZibwQukzHP7Hrr6s+sxKbaIM8xB3LzhSBJy5yLb0JhIUmHmOiA==} + /find-my-way-ts/0.1.4: + resolution: {integrity: sha512-naNl2YZ8m9LlYtPZathQBjXQQ8069uYBFq8We6w9AEGddJErVh0JZw8jd/C/2W9Ib3BjTnu+YN0/rR+ytWxNdw==} dependencies: fast-querystring: 1.1.2 dev: false @@ -7286,6 +7292,7 @@ packages: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 + dev: true /find-up/5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} @@ -7345,8 +7352,8 @@ packages: signal-exit: 3.0.7 dev: true - /foreground-child/3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + /foreground-child/3.2.1: + resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 @@ -7367,15 +7374,15 @@ packages: dezalgo: 1.0.4 hexoid: 1.0.0 once: 1.4.0 - qs: 6.12.1 + qs: 6.12.2 dev: true /forwarded/0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} - /fp-ts/2.16.5: - resolution: {integrity: sha512-N8T8PwMSeTKKtkm9lkj/zSTAnPC/aJIIrQhnHxxkL0KLsRCNUPANksJOlMXxcKKCo7H1ORP3No9EMD+fP0tsdA==} + /fp-ts/2.16.7: + resolution: {integrity: sha512-Xiux+4mHHPj32/mrqN3XIIqEKk/MousgoC2FIaCwehpPjBI4oDrLvQEyQ/2T1sbTe0s/YIQqF98z+uHJLVoS9Q==} dev: false /fresh/0.5.2: @@ -7441,8 +7448,8 @@ packages: es5-ext: 0.10.64 event-emitter: 0.3.5 ignore: 5.3.1 - memoizee: 0.4.15 - type: 2.7.2 + memoizee: 0.4.17 + type: 2.7.3 dev: true /fsevents/2.3.2: @@ -7556,16 +7563,17 @@ packages: dependencies: is-glob: 4.0.3 - /glob/10.3.12: - resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} - engines: {node: '>=16 || 14 >=14.17'} + /glob/10.4.2: + resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} + engines: {node: '>=16 || 14 >=14.18'} hasBin: true dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.4 - minipass: 7.0.4 - path-scurry: 1.10.2 + foreground-child: 3.2.1 + jackspeak: 3.4.0 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 /glob/7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} @@ -7580,6 +7588,7 @@ packages: /glob/7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -7615,11 +7624,12 @@ packages: dependencies: type-fest: 0.20.2 - /globalthis/1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + /globalthis/1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 + gopd: 1.0.1 /globby/11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -7678,36 +7688,36 @@ packages: graphology-types: 0.24.7 obliterator: 2.0.4 - /graphql-scalars/1.23.0_graphql@16.8.1: + /graphql-scalars/1.23.0_graphql@16.9.0: resolution: {integrity: sha512-YTRNcwitkn8CqYcleKOx9IvedA8JIERn8BRq21nlKgOr4NEcTaWEG0sT+H92eF3ALTFbPgsqfft4cw+MGgv0Gg==} engines: {node: '>=10'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - graphql: 16.8.1 - tslib: 2.6.2 + graphql: 16.9.0 + tslib: 2.6.3 dev: false - /graphql-subscriptions/2.0.0_graphql@16.8.1: + /graphql-subscriptions/2.0.0_graphql@16.9.0: resolution: {integrity: sha512-s6k2b8mmt9gF9pEfkxsaO1lTxaySfKoEJzEfmwguBbQ//Oq23hIXCfR1hm4kdh5hnR20RdwB+s3BCb+0duHSZA==} peerDependencies: graphql: ^15.7.2 || ^16.0.0 dependencies: - graphql: 16.8.1 + graphql: 16.9.0 iterall: 1.3.0 dev: false - /graphql-tag/2.12.6_graphql@16.8.1: + /graphql-tag/2.12.6_graphql@16.9.0: resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==} engines: {node: '>=10'} peerDependencies: graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: - graphql: 16.8.1 - tslib: 2.6.2 + graphql: 16.9.0 + tslib: 2.6.3 - /graphql/16.8.1: - resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} + /graphql/16.9.0: + resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} /has-bigints/1.0.2: @@ -7796,7 +7806,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color dev: false @@ -7814,7 +7824,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color @@ -7823,17 +7833,17 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2_supports-color@8.1.1 - debug: 4.3.4_supports-color@8.1.1 + debug: 4.3.5_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true - /https-proxy-agent/7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + /https-proxy-agent/7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color dev: false @@ -7891,6 +7901,7 @@ packages: /inflight/1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. dependencies: once: 1.4.0 wrappy: 1.0.2 @@ -7901,8 +7912,8 @@ packages: /ini/1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - /ini/4.1.2: - resolution: {integrity: sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==} + /ini/4.1.3: + resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: false @@ -7990,7 +8001,7 @@ packages: type-fest: 0.12.0 widest-line: 3.1.0 wrap-ansi: 6.2.0 - ws: 7.5.9 + ws: 7.5.10 yoga-layout-prebuilt: 1.10.0 transitivePeerDependencies: - bufferutil @@ -8116,8 +8127,9 @@ packages: dependencies: ci-info: 2.0.0 - /is-core-module/2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + /is-core-module/2.14.0: + resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} + engines: {node: '>= 0.4'} dependencies: hasown: 2.0.2 @@ -8305,12 +8317,12 @@ packages: /isexe/2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - /isomorphic-ws/4.0.1_ws@7.5.9: + /isomorphic-ws/4.0.1_ws@7.5.10: resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} peerDependencies: ws: '*' dependencies: - ws: 7.5.9 + ws: 7.5.10 dev: true /isomorphic-ws/5.0.0_ws@8.12.0: @@ -8337,7 +8349,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -8370,7 +8382,7 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: - debug: 4.3.4 + debug: 4.3.5 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -8388,16 +8400,16 @@ packages: /iterall/1.3.0: resolution: {integrity: sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==} - /jackspeak/2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + /jackspeak/3.4.0: + resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - /jake/10.8.7: - resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + /jake/10.9.1: + resolution: {integrity: sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==} engines: {node: '>=10'} hasBin: true dependencies: @@ -8414,8 +8426,8 @@ packages: resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} engines: {node: '>= 0.6.0'} - /jose/4.15.5: - resolution: {integrity: sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==} + /jose/4.15.9: + resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -8442,72 +8454,72 @@ packages: engines: {node: '>=4'} hasBin: true - /jsii-pacmak/1.97.0: - resolution: {integrity: sha512-ehaQS/hrWN+alBDN6BaYMocuIbZno1OiXhemW0tqQw0RZeH3noFaBIus78cbVz2uE0JXpWCqZf89VF32Uu5jeQ==} + /jsii-pacmak/1.101.0: + resolution: {integrity: sha512-07a04KtOj+Kmx+5XQVD1JG6QOh6JNqFWh4bbzMDKiFx7JoHhQnLq07b/OlUpCuP7J7Q9WaXXYM59EUQpXO07wg==} engines: {node: '>= 14.17.0'} hasBin: true + peerDependencies: + jsii-rosetta: ^1.101.0 || ~5.2.0 || ~5.3.0 || ~5.4.0 dependencies: - '@jsii/check-node': 1.97.0 - '@jsii/spec': 1.97.0 + '@jsii/check-node': 1.101.0 + '@jsii/spec': 1.101.0 clone: 2.1.2 - codemaker: 1.97.0 - commonmark: 0.30.0 + codemaker: 1.101.0 + commonmark: 0.31.0 escape-string-regexp: 4.0.0 fs-extra: 10.1.0 - jsii-reflect: 1.97.0 - jsii-rosetta: 1.97.0 - semver: 7.6.0 + jsii-reflect: 1.101.0 + semver: 7.6.2 spdx-license-list: 6.9.0 xmlbuilder: 15.1.1 yargs: 16.2.0 - transitivePeerDependencies: - - supports-color - /jsii-reflect/1.97.0: - resolution: {integrity: sha512-E1oV/kliliFiqR9TxX2H5jgUObtq300Jk0kXBJKq06A/kXQk1rmCIoxnV5VFAxyhnPkmhgudpUIuzWh6STUdJg==} + /jsii-pacmak/1.101.0_jsii-rosetta@5.4.24: + resolution: {integrity: sha512-07a04KtOj+Kmx+5XQVD1JG6QOh6JNqFWh4bbzMDKiFx7JoHhQnLq07b/OlUpCuP7J7Q9WaXXYM59EUQpXO07wg==} engines: {node: '>= 14.17.0'} hasBin: true + peerDependencies: + jsii-rosetta: ^1.101.0 || ~5.2.0 || ~5.3.0 || ~5.4.0 dependencies: - '@jsii/check-node': 1.97.0 - '@jsii/spec': 1.97.0 - chalk: 4.1.2 + '@jsii/check-node': 1.101.0 + '@jsii/spec': 1.101.0 + clone: 2.1.2 + codemaker: 1.101.0 + commonmark: 0.31.0 + escape-string-regexp: 4.0.0 fs-extra: 10.1.0 - oo-ascii-tree: 1.97.0 + jsii-reflect: 1.101.0 + jsii-rosetta: 5.4.24 + semver: 7.6.2 + spdx-license-list: 6.9.0 + xmlbuilder: 15.1.1 yargs: 16.2.0 - /jsii-rosetta/1.97.0: - resolution: {integrity: sha512-cxHGvwMrH7lt+O24afEI2ljMbCOtTBCRwQU7Bia87nLkYNpysfFrrz+vUGZ1yi/7DOxhQShm1i4VGJJ8UhvEAg==} + /jsii-reflect/1.101.0: + resolution: {integrity: sha512-ZCFb+laktj/ekNadUYksf+jLZq4fjoQeNe344GwslJOaemGjgAeqy0atV2H8nvTYU8ubszFApUPpdoRvtxgdPw==} engines: {node: '>= 14.17.0'} hasBin: true dependencies: - '@jsii/check-node': 1.97.0 - '@jsii/spec': 1.97.0 - '@xmldom/xmldom': 0.8.10 - commonmark: 0.30.0 - fast-glob: 3.3.2 - jsii: 1.97.0 - semver: 7.6.0 - semver-intersect: 1.5.0 - stream-json: 1.8.0 - typescript: 3.9.10 - workerpool: 6.5.1 + '@jsii/check-node': 1.101.0 + '@jsii/spec': 1.101.0 + chalk: 4.1.2 + fs-extra: 10.1.0 + oo-ascii-tree: 1.101.0 yargs: 16.2.0 - transitivePeerDependencies: - - supports-color - /jsii-rosetta/5.4.2: - resolution: {integrity: sha512-Bo+8lLuRQ0YiXiNImJ6XLrmAY/GzildnYd1B5MLlc+IpjbgFbynhFIyGjYAVf4+/VLFJRoOCJtZ40sM+ua8Ecw==} + /jsii-rosetta/5.4.24: + resolution: {integrity: sha512-KFeyqpIqbA6eDfmC9DdsG13kSANev47amXrH+ngx8WhXTre8D11V65BiSWlyBdvuUFvmGaN8eUd66+dyPcxndA==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: - '@jsii/check-node': 1.97.0 - '@jsii/spec': 1.97.0 + '@jsii/check-node': 1.101.0 + '@jsii/spec': 1.101.0 '@xmldom/xmldom': 0.8.10 chalk: 4.1.2 commonmark: 0.31.0 fast-glob: 3.3.2 - jsii: 5.4.3 - semver: 7.6.0 + jsii: 5.4.25 + semver: 7.6.2 semver-intersect: 1.5.0 stream-json: 1.8.0 typescript: 5.4.5 @@ -8516,73 +8528,32 @@ packages: transitivePeerDependencies: - supports-color - /jsii-srcmak/0.1.1039: - resolution: {integrity: sha512-3lBjyxBy5UpPGK8bXFmVRzaoK6caDQ5DO40Qbyv3LOWtrsuUQmuVI2/5wRwNtfg6sFzOFD3+kE3LZuNXo7QE/Q==} + /jsii-srcmak/0.1.1173: + resolution: {integrity: sha512-UvrCJwRZyaW0mQg3Ky5utH31dngKMfKJetfh4JSLsKJM7AM+gJ+UvEbqd18ikMgD72KS3VQKgrwmLVF34GEu+g==} hasBin: true dependencies: fs-extra: 9.1.0 - jsii: 5.3.34 - jsii-pacmak: 1.97.0 + jsii: 5.4.25 + jsii-pacmak: 1.101.0_jsii-rosetta@5.4.24 + jsii-rosetta: 5.4.24 ncp: 2.0.0 - yargs: 15.4.1 - transitivePeerDependencies: - - supports-color - - /jsii/1.97.0: - resolution: {integrity: sha512-C3GA2Q50DkHnFozg7HKel7ZaBMCUKb/dzgH2ykfrbuJ/C/KebkPkqY/XRf95zGB42mzagPfawSLDFQiGGueQ9w==} - engines: {node: '>= 14.17.0'} - hasBin: true - dependencies: - '@jsii/check-node': 1.97.0 - '@jsii/spec': 1.97.0 - case: 1.6.3 - chalk: 4.1.2 - fast-deep-equal: 3.1.3 - fs-extra: 10.1.0 - log4js: 6.9.1 - semver: 7.6.0 - semver-intersect: 1.5.0 - sort-json: 2.0.1 - spdx-license-list: 6.9.0 - typescript: 3.9.10 - yargs: 16.2.0 - transitivePeerDependencies: - - supports-color - - /jsii/5.3.34: - resolution: {integrity: sha512-vJc+DwAdkr1k66vn2YlybJyyv7fiCV8jOccXmdazZ7Ob+lbED0UTYZDTGFwnqj2feP17maIj1R0MaiDqxjsjKw==} - engines: {node: '>= 18.12.0'} - hasBin: true - dependencies: - '@jsii/check-node': 1.96.0 - '@jsii/spec': 1.97.0 - case: 1.6.3 - chalk: 4.1.2 - downlevel-dts: 0.11.0 - fast-deep-equal: 3.1.3 - log4js: 6.9.1 - semver: 7.6.0 - semver-intersect: 1.5.0 - sort-json: 2.0.1 - spdx-license-list: 6.9.0 - typescript: 5.3.3 yargs: 17.7.2 transitivePeerDependencies: - supports-color - /jsii/5.4.3: - resolution: {integrity: sha512-+alxW2wfBQBCjesy2kvMl6yML8m7hD/buIkVVQNSGt0R0ObhsLvlanS2lRWpNkdfVtDnNk/ke5UFmMSfJ/vy0Q==} + /jsii/5.4.25: + resolution: {integrity: sha512-taEVKh+SWtg0nNGzk5YrLGjWRxSnVaVfxgec4BtthwBgmaUH+QMKIIT/AM84s1WRVMWBG+GnZKgKFv+L4jKLig==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: - '@jsii/check-node': 1.97.0 - '@jsii/spec': 1.97.0 + '@jsii/check-node': 1.101.0 + '@jsii/spec': 1.101.0 case: 1.6.3 chalk: 4.1.2 downlevel-dts: 0.11.0 fast-deep-equal: 3.1.3 log4js: 6.9.1 - semver: 7.6.0 + semver: 7.6.2 semver-intersect: 1.5.0 sort-json: 2.0.1 spdx-license-list: 6.9.0 @@ -8629,15 +8600,6 @@ packages: /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - /json-stable-stringify/1.1.1: - resolution: {integrity: sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - isarray: 2.0.5 - jsonify: 0.0.1 - object-keys: 1.1.1 - /json-stringify-safe/5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true @@ -8666,13 +8628,6 @@ packages: optionalDependencies: graceful-fs: 4.2.11 - /jsonify/0.0.1: - resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} - - /jsonschema/1.4.1: - resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} - dev: false - /jsonwebtoken/8.5.1: resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} engines: {node: '>=4', npm: '>=1.4.28'} @@ -8696,7 +8651,7 @@ packages: jws: 3.2.2 lodash: 4.17.21 ms: 2.1.3 - semver: 7.6.0 + semver: 7.6.2 /jssha/3.3.1: resolution: {integrity: sha512-VCMZj12FCFMQYcFLPRm/0lOBbLi8uM2BhXPTqw3U4YAfs4AZfiApOoBLoN8cQE60Z50m1MYMTQVCfgF/KaCVhQ==} @@ -8739,10 +8694,10 @@ packages: dependencies: '@types/express': 4.17.21 '@types/jsonwebtoken': 9.0.1 - debug: 4.3.4 - jose: 4.15.5 + debug: 4.3.5 + jose: 4.15.9 limiter: 1.1.5 - lru-memoizer: 2.2.0 + lru-memoizer: 2.3.0 transitivePeerDependencies: - supports-color @@ -8833,6 +8788,7 @@ packages: engines: {node: '>=8'} dependencies: p-locate: 4.1.0 + dev: true /locate-path/6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} @@ -8914,9 +8870,9 @@ packages: d: 1.0.2 es5-ext: 0.10.64 log: 6.3.1 - sprintf-kit: 2.0.1 + sprintf-kit: 2.0.2 supports-color: 8.1.1 - type: 2.7.2 + type: 2.7.3 dev: true /log-symbols/2.2.0: @@ -8941,8 +8897,8 @@ packages: duration: 0.2.2 es5-ext: 0.10.64 event-emitter: 0.3.5 - sprintf-kit: 2.0.1 - type: 2.7.2 + sprintf-kit: 2.0.2 + type: 2.7.3 uni-global: 1.0.0 dev: true @@ -8951,9 +8907,9 @@ packages: engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 4.3.4 + debug: 4.3.5 flatted: 3.3.1 - rfdc: 1.3.1 + rfdc: 1.4.1 streamroller: 3.1.5 transitivePeerDependencies: - supports-color @@ -8979,16 +8935,10 @@ packages: engines: {node: '>=8'} dev: true - /lru-cache/10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + /lru-cache/10.3.0: + resolution: {integrity: sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==} engines: {node: 14 || >=16.14} - /lru-cache/4.0.2: - resolution: {integrity: sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==} - dependencies: - pseudomap: 1.0.2 - yallist: 2.1.2 - /lru-cache/4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} dependencies: @@ -9007,11 +8957,11 @@ packages: dependencies: yallist: 4.0.0 - /lru-memoizer/2.2.0: - resolution: {integrity: sha512-QfOZ6jNkxCcM/BkIPnFsqDhtrazLRsghi9mBwFAzol5GCvj4EkFT899Za3+QwikCg5sRX8JstioBDwOxEyzaNw==} + /lru-memoizer/2.3.0: + resolution: {integrity: sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==} dependencies: lodash.clonedeep: 4.5.0 - lru-cache: 4.0.2 + lru-cache: 6.0.0 /lru-queue/0.1.0: resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} @@ -9042,7 +8992,7 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.6.0 + semver: 7.6.2 dev: true /make-error/1.3.6: @@ -9063,8 +9013,9 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} - /memoizee/0.4.15: - resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==} + /memoizee/0.4.17: + resolution: {integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==} + engines: {node: '>=0.12'} dependencies: d: 1.0.2 es5-ext: 0.10.64 @@ -9073,7 +9024,7 @@ packages: is-promise: 2.2.2 lru-queue: 0.1.0 next-tick: 1.1.0 - timers-ext: 0.1.7 + timers-ext: 0.1.8 dev: true /merge-descriptors/1.0.1: @@ -9090,11 +9041,11 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} - /micromatch/4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + /micromatch/4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 /mime-db/1.52.0: @@ -9171,8 +9122,8 @@ packages: brace-expansion: 2.0.1 dev: false - /minimatch/9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + /minimatch/9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -9192,8 +9143,8 @@ packages: engines: {node: '>=8'} dev: true - /minipass/7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + /minipass/7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} /minizlib/2.1.2: @@ -9282,8 +9233,8 @@ packages: /ms/2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /multipasta/0.2.0: - resolution: {integrity: sha512-MNAym1D9GTpY0/CKYJFDmaJ3TfhblfsQyyipCCSsgasMZCAyR2fCNDJhR7lACfJ0YMwQSDi5RHeIdJcsze6WMg==} + /multipasta/0.2.2: + resolution: {integrity: sha512-KKGdmXIJUmt9BV45LsbUdMnju8eCNSyF9KpbyqK2E3wQXjpPQOg52/Hc+nsmBacmEkNxLVT5h1y3ZgEXB4prXg==} dev: false /mustache/4.1.0: @@ -9298,8 +9249,8 @@ packages: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - /nan/2.19.0: - resolution: {integrity: sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==} + /nan/2.20.0: + resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==} /nanoid/2.1.11: resolution: {integrity: sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==} @@ -9337,7 +9288,7 @@ packages: ext: 1.7.0 find-requires: 1.0.0 fs2: 0.3.9 - type: 2.7.2 + type: 2.7.3 dev: true /ncp/2.0.0: @@ -9351,7 +9302,7 @@ packages: dependencies: debug: 3.2.7 iconv-lite: 0.4.24 - sax: 1.3.0 + sax: 1.4.1 dev: false /negotiator/0.6.3: @@ -9389,7 +9340,7 @@ packages: resolution: {integrity: sha512-udrFXJ/aqPM9NmrKOcNJ67lvrs/zroNq2sbumhaMPW5JLNy/6LsWiZEwU9DiQIUHOcOCR4MPeqIG7uQNbDGExA==} engines: {node: '>= 8.0'} dependencies: - debug: 4.3.4 + debug: 4.3.5 json-stringify-safe: 5.0.1 lodash: 4.17.21 mkdirp: 0.5.6 @@ -9402,18 +9353,18 @@ packages: resolution: {integrity: sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==} engines: {node: '>= 10.13'} dependencies: - debug: 4.3.4 + debug: 4.3.5 json-stringify-safe: 5.0.1 propagate: 2.0.1 transitivePeerDependencies: - supports-color dev: true - /node-abi/3.57.0: - resolution: {integrity: sha512-Dp+A9JWxRaKuHP35H77I4kCKesDy5HUDEmScia2FyncMTOXASMyg251F5PhFoDA5uqBrDDffiLpbqnrZmNXW+g==} + /node-abi/3.65.0: + resolution: {integrity: sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==} engines: {node: '>=10'} dependencies: - semver: 7.6.0 + semver: 7.6.2 /node-abort-controller/3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} @@ -9518,10 +9469,10 @@ packages: dependencies: ext: 1.7.0 fs2: 0.3.9 - memoizee: 0.4.15 + memoizee: 0.4.17 node-fetch: 2.7.0 - semver: 7.6.0 - type: 2.7.2 + semver: 7.6.2 + type: 2.7.3 validate-npm-package-name: 3.0.0 transitivePeerDependencies: - encoding @@ -9584,8 +9535,9 @@ packages: resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} engines: {node: '>= 6'} - /object-inspect/1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + /object-inspect/1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} /object-is/1.1.6: resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} @@ -9663,8 +9615,8 @@ packages: dependencies: mimic-fn: 2.1.0 - /oo-ascii-tree/1.97.0: - resolution: {integrity: sha512-LVwQ1J6icSJ2buccnLCWdDtxxTwB0HXoB7PLPap4u90T9pAs2HqE35DpV6nV/6O1aVEO4OzwDeE2gLCUCkoGWQ==} + /oo-ascii-tree/1.101.0: + resolution: {integrity: sha512-hNE9Nfvo4HLa9/dAiaiXUm64KHUvgBa7jPftsb8gZdTv1G1wSMMnd9j7SMcRzaMbDEqi+0cfgeBSIcsKy+k0vA==} engines: {node: '>= 14.17.0'} /open/7.4.2: @@ -9700,16 +9652,16 @@ packages: word-wrap: 1.2.5 dev: true - /optionator/0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + /optionator/0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 + word-wrap: 1.2.5 /ora/3.4.0: resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==} @@ -9787,6 +9739,7 @@ packages: engines: {node: '>=8'} dependencies: p-limit: 2.3.0 + dev: true /p-locate/5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} @@ -9822,6 +9775,9 @@ packages: release-zalgo: 1.0.0 dev: true + /package-json-from-dist/1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + /pako/1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} dev: true @@ -9840,7 +9796,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -9897,12 +9853,12 @@ packages: /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - /path-scurry/1.10.2: - resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} - engines: {node: '>=16 || 14 >=14.17'} + /path-scurry/1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} dependencies: - lru-cache: 10.2.0 - minipass: 7.0.4 + lru-cache: 10.3.0 + minipass: 7.1.2 /path-to-regexp/0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} @@ -9935,8 +9891,8 @@ packages: /pend/1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - /picocolors/1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + /picocolors/1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -10008,7 +9964,7 @@ packages: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 3.57.0 + node-abi: 3.65.0 pump: 3.0.0 rc: 1.2.8 simple-get: 4.0.1 @@ -10060,8 +10016,8 @@ packages: dependencies: ext: 1.7.0 fs2: 0.3.9 - memoizee: 0.4.15 - type: 2.7.2 + memoizee: 0.4.17 + type: 2.7.3 dev: true /process/0.11.10: @@ -10136,8 +10092,8 @@ packages: dependencies: side-channel: 1.0.6 - /qs/6.12.1: - resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} + /qs/6.12.2: + resolution: {integrity: sha512-x+NLUpx9SYrcwXtX7ob1gnkSems4i/mGZX5SlYxwIau6RrUSODO89TR/XDGGpn5RPWSYIB+aSfuSlV5+CmbTBg==} engines: {node: '>=0.6'} dependencies: side-channel: 1.0.6 @@ -10194,7 +10150,7 @@ packages: resolution: {integrity: sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==} dependencies: shell-quote: 1.8.1 - ws: 7.5.9 + ws: 7.5.10 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -10345,6 +10301,7 @@ packages: /require-main-filename/2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: true /reserved-words/0.1.2: resolution: {integrity: sha512-0S5SrIUJ9LfpbVl4Yzij6VipUdafHrOTzvmfazSw/jeZrZtQK303OPZW+obtkaw7jQlTQppy0UvZWm9872PbRw==} @@ -10366,7 +10323,7 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: - is-core-module: 2.13.1 + is-core-module: 2.14.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -10407,15 +10364,15 @@ packages: - supports-color dev: true - /rfdc/1.3.1: - resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} + /rfdc/1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - /rhea-promise/3.0.1: - resolution: {integrity: sha512-Fcqgml7lgoyi7fH1ClsSyFr/xwToijEN3rULFgrIcL+7EHeduxkWogFxNHjFzHf2YGScAckJDaDxS1RdlTUQYw==} + /rhea-promise/3.0.3: + resolution: {integrity: sha512-a875P5YcMkePSTEWMsnmCQS7Y4v/XvIw7ZoMtJxqtQRZsqSA6PsZxuz4vktyRykPuUgdNsA6F84dS3iEXZoYnQ==} dependencies: - debug: 3.2.7 + debug: 4.3.5 rhea: 3.0.2 - tslib: 2.6.2 + tslib: 2.6.3 transitivePeerDependencies: - supports-color dev: false @@ -10423,13 +10380,14 @@ packages: /rhea/3.0.2: resolution: {integrity: sha512-0G1ZNM9yWin8VLvTxyISKH6KfR6gl1TW/1+5yMKPf2r1efhkzTLze09iFtT2vpDjuWIVtSmXz8r18lk/dO8qwQ==} dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color dev: false /rimraf/2.6.3: resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 @@ -10437,6 +10395,7 @@ packages: /rimraf/2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 @@ -10444,16 +10403,17 @@ packages: /rimraf/3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 - /rimraf/5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} + /rimraf/5.0.7: + resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} + engines: {node: '>=14.18'} hasBin: true dependencies: - glob: 10.3.12 + glob: 10.4.2 dev: true /run-async/2.4.1: @@ -10484,7 +10444,7 @@ packages: /rxjs/7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 dev: true /safe-array-concat/1.1.2: @@ -10522,8 +10482,8 @@ packages: /sax/1.2.1: resolution: {integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==} - /sax/1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + /sax/1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} /scheduler/0.20.2: resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} @@ -10557,12 +10517,10 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - /semver/7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + /semver/7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} engines: {node: '>=10'} hasBin: true - dependencies: - lru-cache: 6.0.0 /send/0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} @@ -10625,10 +10583,10 @@ packages: '@serverless/dashboard-plugin': 6.4.0_supports-color@8.1.1 '@serverless/platform-client': 4.5.1_supports-color@8.1.1 '@serverless/utils': 6.15.0 - ajv: 8.12.0 + ajv: 8.16.0 ajv-formats: 2.1.1 archiver: 5.3.0 - aws-sdk: 2.1599.0 + aws-sdk: 2.1654.0 bluebird: 3.7.2 cachedir: 2.4.0 chalk: 4.1.2 @@ -10636,7 +10594,7 @@ packages: ci-info: 3.9.0 cli-progress-footer: 2.3.3 d: 1.0.2 - dayjs: 1.11.10 + dayjs: 1.11.11 decompress: 4.2.1 dotenv: 10.0.0 dotenv-expand: 5.1.0 @@ -10655,8 +10613,8 @@ packages: json-cycle: 1.5.0 json-refs: 3.0.15_supports-color@8.1.1 lodash: 4.17.21 - memoizee: 0.4.15 - micromatch: 4.0.5 + memoizee: 0.4.17 + micromatch: 4.0.7 node-fetch: 2.7.0 npm-registry-utilities: 1.0.0 object-hash: 2.2.0 @@ -10665,13 +10623,13 @@ packages: process-utils: 4.0.0 promise-queue: 2.2.5 require-from-string: 2.0.2 - semver: 7.6.0 + semver: 7.6.2 signal-exit: 3.0.7 strip-ansi: 6.0.1 supports-color: 8.1.1 tar: 6.2.1 - timers-ext: 0.1.7 - type: 2.7.2 + timers-ext: 0.1.8 + type: 2.7.3 untildify: 4.0.0 uuid: 8.3.2 yaml-ast-parser: 0.0.43 @@ -10684,6 +10642,7 @@ packages: /set-blocking/2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: true /set-function-length/1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} @@ -10760,7 +10719,7 @@ packages: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.1 + object-inspect: 1.13.2 /signal-exit/3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -10779,12 +10738,12 @@ packages: once: 1.4.0 simple-concat: 1.0.1 - /simple-git/3.24.0_supports-color@8.1.1: - resolution: {integrity: sha512-QqAKee9Twv+3k8IFOFfPB2hnk6as6Y6ACUpwCtQvRYBAes23Wv3SZlHVobAzqcE8gfsisCvPw3HGW3HYM+VYYw==} + /simple-git/3.25.0_supports-color@8.1.1: + resolution: {integrity: sha512-KIY5sBnzc4yEcJXW7Tdv4viEz8KyG+nU0hay+DWZasvdFOYKeUZ6Xc25LUHHjw0tinPT7O1eY6pzX7pRT1K8rw==} dependencies: '@kwsites/file-exists': 1.1.1_supports-color@8.1.1 '@kwsites/promise-deferred': 1.1.1 - debug: 4.3.4_supports-color@8.1.1 + debug: 4.3.5_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true @@ -10913,7 +10872,7 @@ packages: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.17 + spdx-license-ids: 3.0.18 dev: true /spdx-exceptions/2.5.0: @@ -10924,11 +10883,11 @@ packages: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.17 + spdx-license-ids: 3.0.18 dev: true - /spdx-license-ids/3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + /spdx-license-ids/3.0.18: + resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} dev: true /spdx-license-list/6.9.0: @@ -10944,8 +10903,9 @@ packages: /sprintf-js/1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - /sprintf-kit/2.0.1: - resolution: {integrity: sha512-2PNlcs3j5JflQKcg4wpdqpZ+AjhQJ2OZEo34NXDtlB0tIPG84xaaXhpA8XFacFiwjKA4m49UOYG83y3hbMn/gQ==} + /sprintf-kit/2.0.2: + resolution: {integrity: sha512-lnapdj6W4LflHZGKvl9eVkz5YF0xaTrqpRWVA4cNVOTedwqifIP8ooGImldzT/4IAN5KXFQAyXTdLidYVQdyag==} + engines: {node: '>=0.12'} dependencies: es5-ext: 0.10.64 dev: true @@ -10968,7 +10928,7 @@ packages: resolution: {integrity: sha512-Xnt9/HHHYfjZ7NeQLvuQDyL1LnbsbddgMFKCuaQKwGCdJm8LnstZIXop+uOY36UR1UXXoHXfMbC1KlVdVd2JLA==} engines: {node: '>=8.0.0'} dependencies: - debug: 4.3.4 + debug: 4.3.5 strip-ansi: 6.0.1 transitivePeerDependencies: - supports-color @@ -10985,8 +10945,8 @@ packages: engines: {node: '>=4', npm: '>=6'} dev: false - /stream-buffers/3.0.2: - resolution: {integrity: sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==} + /stream-buffers/3.0.3: + resolution: {integrity: sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw==} engines: {node: '>= 0.10.0'} /stream-chain/2.2.5: @@ -11010,7 +10970,7 @@ packages: engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 4.3.4 + debug: 4.3.5 fs-extra: 8.1.0 transitivePeerDependencies: - supports-color @@ -11040,9 +11000,6 @@ packages: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - /string.prototype.repeat/0.2.0: - resolution: {integrity: sha512-1BH+X+1hSthZFW+X+JaUkjkkUPwIlLEMJBLANN3hOob3RhEk5snLWNECDnYbgn/m5c5JV7Ersu1Yubaf+05cIA==} - /string.prototype.repeat/1.0.0: resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} dependencies: @@ -11153,7 +11110,7 @@ packages: peek-readable: 4.1.0 dev: true - /subscriptions-transport-ws/0.11.0_graphql@16.8.1: + /subscriptions-transport-ws/0.11.0_graphql@16.9.0: resolution: {integrity: sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ==} deprecated: The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md peerDependencies: @@ -11161,10 +11118,10 @@ packages: dependencies: backo2: 1.0.2 eventemitter3: 3.1.2 - graphql: 16.8.1 + graphql: 16.9.0 iterall: 1.3.0 symbol-observable: 1.2.0 - ws: 7.5.9 + ws: 7.5.10 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -11172,19 +11129,19 @@ packages: /superagent/7.1.6_supports-color@8.1.1: resolution: {integrity: sha512-gZkVCQR1gy/oUXr+kxJMLDjla434KmSOKbx5iGD30Ql+AkJQ/YlPKECJy2nhqOsHLjGHzoDTXNSjhnvWhzKk7g==} engines: {node: '>=6.4.0 <13 || >=14'} - deprecated: Please downgrade to v7.1.5 if you need IE/ActiveXObject support OR upgrade to v8.0.0 as we no longer support IE and published an incorrect patch version (see https://github.com/visionmedia/superagent/issues/1731) + deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net dependencies: component-emitter: 1.3.1 cookiejar: 2.1.4 - debug: 4.3.4_supports-color@8.1.1 + debug: 4.3.5_supports-color@8.1.1 fast-safe-stringify: 2.1.1 form-data: 4.0.0 formidable: 2.1.2 methods: 1.1.2 mime: 2.6.0 - qs: 6.12.1 + qs: 6.12.2 readable-stream: 3.6.2 - semver: 7.6.0 + semver: 7.6.2 transitivePeerDependencies: - supports-color dev: true @@ -11247,7 +11204,7 @@ packages: resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} engines: {node: '>=10.0.0'} dependencies: - ajv: 8.12.0 + ajv: 8.16.0 lodash.truncate: 4.4.2 slice-ansi: 4.0.0 string-width: 4.2.3 @@ -11322,8 +11279,9 @@ packages: readable-stream: 2.3.8 xtend: 4.0.2 - /timers-ext/0.1.7: - resolution: {integrity: sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==} + /timers-ext/0.1.8: + resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==} + engines: {node: '>=0.12'} dependencies: es5-ext: 0.10.64 next-tick: 1.1.0 @@ -11393,7 +11351,7 @@ packages: resolution: {integrity: sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==} engines: {node: '>=8'} dependencies: - tslib: 2.6.2 + tslib: 2.6.3 /ts-morph/19.0.0: resolution: {integrity: sha512-D6qcpiJdn46tUqV45vr5UGM2dnIEuTGNxVhg0sk5NX11orcouwj6i1bMqZIz2mZTZB1Hcgy7C3oEVhAT+f6mbQ==} @@ -11402,7 +11360,7 @@ packages: code-block-writer: 12.0.0 dev: false - /ts-node/10.9.2_cwiqw7fmejhb47wvqtchhjxme4: + /ts-node/10.9.2_qtieencaeb6d72le3lfodyl2z4: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -11421,9 +11379,9 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.31 - acorn: 8.11.3 - acorn-walk: 8.3.2 + '@types/node': 18.19.39 + acorn: 8.12.1 + acorn-walk: 8.3.3 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -11440,12 +11398,12 @@ packages: global-prefix: 3.0.0 minimist: 1.2.8 resolve: 1.22.8 - semver: 7.6.0 + semver: 7.6.2 strip-ansi: 6.0.1 dev: true - /tsconfck/3.0.3_typescript@5.1.6: - resolution: {integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==} + /tsconfck/3.1.1_typescript@5.1.6: + resolution: {integrity: sha512-00eoI6WY57SvZEVjm13stEVE90VkEdJAFGgpFLTsZbJyW/LwFQ7uQxJHWpZ2hzSWgCPKc9AnBnNP+0X7o3hAmQ==} engines: {node: ^18 || >=20} hasBin: true peerDependencies: @@ -11468,8 +11426,8 @@ packages: /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - /tslib/2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + /tslib/2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} /tsutils/3.21.0_typescript@5.1.6: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -11531,8 +11489,8 @@ packages: media-typer: 0.3.0 mime-types: 2.1.35 - /type/2.7.2: - resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} + /type/2.7.3: + resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} dev: true /typed-array-buffer/1.0.2: @@ -11593,28 +11551,18 @@ packages: typed-array-byte-offset: 1.0.2 dev: true - /typescript/3.9.10: - resolution: {integrity: sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==} - engines: {node: '>=4.2.0'} - hasBin: true - /typescript/5.1.6: resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} engines: {node: '>=14.17'} hasBin: true - /typescript/5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} - engines: {node: '>=14.17'} - hasBin: true - /typescript/5.4.5: resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} engines: {node: '>=14.17'} hasBin: true - /typescript/5.6.0-dev.20240604: - resolution: {integrity: sha512-uwpkMy5U51ERVvVtQmDZwjYllREGrqP35JcdR5yWIoZ7ZE2I1oDsDs3mtLiiiccyHspCZ54Z741ibuP3NbACtg==} + /typescript/5.6.0-dev.20240705: + resolution: {integrity: sha512-Z1GBiSYZqdb2B4kkFvX6sDIFZzCGD7+RtHI2/ci9IIZA1CPS6qzbiB/D2RmPupSCXpQ8FRqax1RU0tlD/n70oA==} engines: {node: '>=14.17'} hasBin: true @@ -11636,15 +11584,15 @@ packages: /undici-types/5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - /undici/6.13.0: - resolution: {integrity: sha512-Q2rtqmZWrbP8nePMq7mOJIN98M0fYvSgV89vwl/BQRT4mDOeY2GXZngfGpcBBhtky3woM7G24wZV3Q304Bv6cw==} - engines: {node: '>=18.0'} + /undici/6.19.2: + resolution: {integrity: sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==} + engines: {node: '>=18.17'} dev: false /uni-global/1.0.0: resolution: {integrity: sha512-WWM3HP+siTxzIWPNUg7hZ4XO8clKi6NoCAJJWnuRL+BAqyFXF8gC03WNyTefGoUXYc47uYgXxpKLIEvo65PEHw==} dependencies: - type: 2.7.2 + type: 2.7.3 dev: true /universal-user-agent/6.0.1: @@ -11667,15 +11615,15 @@ packages: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} - /update-browserslist-db/1.0.13_browserslist@4.23.0: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + /update-browserslist-db/1.1.0_browserslist@4.23.1: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.23.0 + browserslist: 4.23.1 escalade: 3.1.2 - picocolors: 1.0.0 + picocolors: 1.0.1 dev: true /uri-js/4.4.1: @@ -11756,7 +11704,7 @@ packages: engines: {node: '>=0.8.0'} hasBin: true dependencies: - debug: 4.3.4 + debug: 4.3.5 transitivePeerDependencies: - supports-color dev: true @@ -11800,6 +11748,7 @@ packages: /which-module/2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + dev: true /which-typed-array/1.1.15: resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} @@ -11833,7 +11782,6 @@ packages: /word-wrap/1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - dev: true /wordwrap/1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} @@ -11905,8 +11853,8 @@ packages: mkdirp: 0.5.6 dev: true - /ws/7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + /ws/7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -11930,8 +11878,8 @@ packages: optional: true dev: false - /ws/8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + /ws/8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -11947,7 +11895,7 @@ packages: resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} hasBin: true dependencies: - sax: 1.3.0 + sax: 1.4.1 /xml2js/0.4.19: resolution: {integrity: sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==} @@ -11983,6 +11931,7 @@ packages: /y18n/4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: true /y18n/5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} @@ -12007,8 +11956,8 @@ packages: engines: {node: '>= 6'} dev: false - /yaml/2.4.1: - resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} + /yaml/2.4.5: + resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} engines: {node: '>= 14'} hasBin: true dev: false @@ -12034,6 +11983,7 @@ packages: dependencies: camelcase: 5.3.1 decamelize: 1.2.0 + dev: true /yargs-parser/20.2.4: resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} @@ -12083,6 +12033,7 @@ packages: which-module: 2.0.1 y18n: 4.0.3 yargs-parser: 18.1.3 + dev: true /yargs/16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} @@ -12144,5 +12095,5 @@ packages: compress-commons: 4.1.2 readable-stream: 3.6.2 - /zod/3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + /zod/3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} diff --git a/packages/cli/test/commands/stub/publish.test.ts b/packages/cli/test/commands/stub/publish.test.ts index 1cb913ad3..a5c5a9061 100644 --- a/packages/cli/test/commands/stub/publish.test.ts +++ b/packages/cli/test/commands/stub/publish.test.ts @@ -19,6 +19,7 @@ describe('stub', async () => { { name: 'fake-command.stub', path: '/someDir', + parentPath: '/someDir', isFile: () => true, isDirectory: () => false, isBlockDevice: () => false, @@ -30,6 +31,7 @@ describe('stub', async () => { { name: 'fake-event.stub', path: '/someDir', + parentPath: '/someDir', isFile: () => true, isDirectory: () => false, isBlockDevice: () => false, @@ -41,6 +43,7 @@ describe('stub', async () => { { name: 'fake-directory', path: '/someDir', + parentPath: '/someDir', isFile: () => false, isDirectory: () => true, isBlockDevice: () => false, diff --git a/packages/cli/test/services/stub-publisher.test.ts b/packages/cli/test/services/stub-publisher.test.ts index c85ab84da..73a96ff27 100644 --- a/packages/cli/test/services/stub-publisher.test.ts +++ b/packages/cli/test/services/stub-publisher.test.ts @@ -19,6 +19,7 @@ describe('stub publisher', () => { { name: 'fake-command.stub', path: '/someDir', + parentPath: '/someDir', isFile: () => true, isDirectory: () => false, isBlockDevice: () => false, @@ -30,6 +31,7 @@ describe('stub publisher', () => { { name: 'fake-event.stub', path: '/someDir', + parentPath: '/someDir', isFile: () => true, isDirectory: () => false, isBlockDevice: () => false, @@ -41,6 +43,7 @@ describe('stub publisher', () => { { name: 'fake-stub.ts', path: '/someDir', + parentPath: '/someDir', isFile: () => true, isDirectory: () => false, isBlockDevice: () => false, @@ -52,6 +55,7 @@ describe('stub publisher', () => { { name: 'fake-directory-1', path: '/someDir', + parentPath: '/someDir', isFile: () => false, isDirectory: () => true, isBlockDevice: () => false, @@ -63,6 +67,7 @@ describe('stub publisher', () => { { name: 'fake-directory-2', path: '/someDir', + parentPath: '/someDir', isFile: () => false, isDirectory: () => true, isBlockDevice: () => false, @@ -160,6 +165,7 @@ describe('stub publisher', () => { { name: 'fake-file-1.stub', path: '/someDir', + parentPath: '/someDir', isFile: () => true, isDirectory: () => false, isBlockDevice: () => false, @@ -171,6 +177,7 @@ describe('stub publisher', () => { { name: 'fake-file-2.stub', path: '/someDir', + parentPath: '/someDir', isFile: () => true, isDirectory: () => false, isBlockDevice: () => false, @@ -195,6 +202,7 @@ describe('stub publisher', () => { { name: 'fake-directory', path: '/someDir', + parentPath: '/someDir', isFile: () => false, isDirectory: () => true, isBlockDevice: () => false, @@ -213,6 +221,7 @@ describe('stub publisher', () => { { name: 'fake-stub.ts', path: '/someDir', + parentPath: '/someDir', isFile: () => true, isDirectory: () => false, isBlockDevice: () => false, diff --git a/packages/framework-common-helpers/package.json b/packages/framework-common-helpers/package.json index 0009ed83b..3a20a6f45 100644 --- a/packages/framework-common-helpers/package.json +++ b/packages/framework-common-helpers/package.json @@ -70,7 +70,9 @@ "sinon-chai": "3.5.0", "ts-node": "^10.9.1", "typescript": "5.1.6", - "eslint-plugin-unicorn": "~44.0.2" + "eslint-plugin-unicorn": "~44.0.2", + "faker": "5.1.0", + "@types/faker": "5.1.5" }, "pnpm": { "overrides": { diff --git a/packages/framework-common-helpers/src/instances.ts b/packages/framework-common-helpers/src/instances.ts index 71c01efb3..8b2fafe7d 100644 --- a/packages/framework-common-helpers/src/instances.ts +++ b/packages/framework-common-helpers/src/instances.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import { Class } from '@boostercloud/framework-types' +import { Class, ProjectionFor, ReadModelInterface } from '@boostercloud/framework-types' /** * Creates an instance of the given class from the given raw object. @@ -43,3 +43,98 @@ export function createInstance(instanceClass: Class, rawObject: Record(instanceClass: Class, rawObjects: Array>): T[] { return rawObjects.map((rawObject) => createInstance(instanceClass, rawObject)) } + +/** + * Creates an instance of the read model class with the calculated properties included + * @param instanceClass The read model class + * @param raw The raw read model data + * @param propertiesToInclude The properties to include in the response + * @private + */ +export async function createInstanceWithCalculatedProperties( + instanceClass: Class, + raw: Partial, + propertiesToInclude: ProjectionFor +): Promise { + const instance = new instanceClass() + Object.assign(instance, raw) + const result: T = {} as T + + const propertiesMap = buildPropertiesMap(propertiesToInclude) + + await processProperties(instance, result, propertiesMap) + + return result +} + +/** + * Builds a map of properties to include in the response + * @param properties The properties to include in the response + * @private + */ +function buildPropertiesMap(properties: ProjectionFor): any { + const map: any = {} + properties.forEach((property) => { + const parts = property.split('.') + let current = map + parts.forEach((part) => { + const isArray = part.endsWith('[]') + const key = isArray ? part.slice(0, -2) : part + if (!Object.prototype.hasOwnProperty.call(current, key)) { + current[key] = isArray ? { __isArray: true, __children: {} } : {} + } + current = isArray ? current[key].__children : current[key] + }) + }) + return map +} + +/** + * Processes the properties of the source object and adds them to the result object + * @param source The source object + * @param result The result object + * @param propertiesMap The map of properties to include in the response + * @private + */ +async function processProperties(source: any, result: any, propertiesMap: any): Promise { + for (const key of Object.keys(propertiesMap)) { + if (key === '__isArray' || key === '__children') continue + + if (source[key] !== undefined) { + if (propertiesMap[key].__isArray) { + result[key] = [] + for (const item of source[key]) { + const newItem: any = {} + await processProperties(item, newItem, propertiesMap[key].__children) + if (Object.keys(newItem).length > 0) { + result[key].push(newItem) + } + } + } else if (typeof propertiesMap[key] === 'object' && Object.keys(propertiesMap[key]).length > 0) { + const value = source[key] + const resolvedValue = isPromise(value) ? await value : value + if (resolvedValue === undefined || resolvedValue === null) { + result[key] = null + } else { + result[key] = {} + await processProperties(resolvedValue, result[key], propertiesMap[key]) + if (Object.keys(result[key]).length === 0) { + result[key] = null + } + } + } else { + const value = source[key] + result[key] = isPromise(value) ? await value : value + } + } else { + // Handle the case when the source property is undefined + if (typeof propertiesMap[key] === 'object' && Object.keys(propertiesMap[key]).length > 0) { + result[key] = null + } + } + } +} + +function isPromise(obj: any): obj is Promise { + return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function' +} diff --git a/packages/framework-common-helpers/test/instances.test.ts b/packages/framework-common-helpers/test/instances.test.ts new file mode 100644 index 000000000..144feb739 --- /dev/null +++ b/packages/framework-common-helpers/test/instances.test.ts @@ -0,0 +1,59 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { createInstanceWithCalculatedProperties } from '../src' +import { ProjectionFor, ReadModelInterface, UUID } from '@boostercloud/framework-types' +import { expect } from './helpers/expect' +import { random } from 'faker' + +describe('the `Instances` helper', () => { + class PersonReadModel implements ReadModelInterface { + public constructor( + readonly id: UUID, + readonly firstName: string, + readonly lastName: string, + readonly friends: Array + ) {} + + public get fullName(): Promise { + return Promise.resolve(`${this.firstName} ${this.lastName}`) + } + } + + let rawObject: any + + beforeEach(() => { + rawObject = { + id: random.uuid(), + firstName: random.word(), + lastName: random.word(), + friends: [ + { id: random.uuid(), firstName: random.word(), lastName: random.word() }, + { id: random.uuid(), firstName: random.word(), lastName: random.word() }, + ], + } + }) + + describe('the createInstanceWithCalculatedProperties method', () => { + it('creates an instance of the read model class with the calculated properties included', async () => { + const propertiesToInclude = ['id', 'fullName'] as ProjectionFor + + const instance = await createInstanceWithCalculatedProperties(PersonReadModel, rawObject, propertiesToInclude) + + expect(instance).to.deep.equal({ + id: rawObject.id, + fullName: `${rawObject.firstName} ${rawObject.lastName}`, + }) + }) + + it('correctly supports arrays and nested objects in `propertiesToInclude`', async () => { + const propertiesToInclude = ['id', 'fullName', 'friends[].id'] as ProjectionFor + + const instance = await createInstanceWithCalculatedProperties(PersonReadModel, rawObject, propertiesToInclude) + + expect(instance).to.deep.equal({ + id: rawObject.id, + fullName: `${rawObject.firstName} ${rawObject.lastName}`, + friends: [{ id: rawObject.friends[0].id }, { id: rawObject.friends[1].id }], + }) + }) + }) +}) diff --git a/packages/framework-core/src/booster-read-models-reader.ts b/packages/framework-core/src/booster-read-models-reader.ts index 079206952..d0ea51fe0 100644 --- a/packages/framework-core/src/booster-read-models-reader.ts +++ b/packages/framework-core/src/booster-read-models-reader.ts @@ -1,25 +1,32 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { - TraceActionTypes, AnyClass, BoosterConfig, FilterFor, GraphQLOperation, InvalidParameterError, NotFoundError, + ProjectionFor, ReadModelInterface, ReadModelListResult, + ReadModelMetadata, ReadModelRequestEnvelope, ReadOnlyNonEmptyArray, SortFor, SubscriptionEnvelope, - ProjectionFor, + TraceActionTypes, } from '@boostercloud/framework-types' -import { createInstance, createInstances, getLogger } from '@boostercloud/framework-common-helpers' +import { + createInstance, + createInstances, + createInstanceWithCalculatedProperties, + getLogger, +} from '@boostercloud/framework-common-helpers' import { Booster } from './booster' import { applyReadModelRequestBeforeFunctions } from './services/filter-helpers' import { ReadModelSchemaMigrator } from './read-model-schema-migrator' import { Trace } from './instrumentation' +import { PropertyMetadata } from '@boostercloud/metadata-booster' export class BoosterReadModelsReader { public constructor(readonly config: BoosterConfig) {} @@ -88,6 +95,23 @@ export class BoosterReadModelsReader { select?: ProjectionFor ): Promise | ReadModelListResult> { const readModelName = readModelClass.name + + let selectWithDependencies: ProjectionFor | undefined = undefined + const calculatedFieldsDependencies = this.getCalculatedFieldsDependencies(readModelClass) + + if (select && Object.keys(calculatedFieldsDependencies).length > 0) { + const extendedSelect = new Set(select) + + select.forEach((field: any) => { + const topLevelField = field.split('.')[0].replace('[]', '') + if (calculatedFieldsDependencies[topLevelField]) { + calculatedFieldsDependencies[topLevelField].map((dependency) => extendedSelect.add(dependency)) + } + }) + + selectWithDependencies = Array.from(extendedSelect) as ProjectionFor + } + const searchResult = await this.config.provider.readModels.search( this.config, readModelName, @@ -96,13 +120,13 @@ export class BoosterReadModelsReader { limit, afterCursor, paginatedVersion ?? false, - select + selectWithDependencies ?? select ) + const readModels = this.createReadModelInstances(searchResult, readModelClass) if (select) { - return searchResult + return this.createReadModelInstancesWithCalculatedProperties(searchResult, readModelClass, select ?? []) } - const readModels = this.createReadModelInstances(searchResult, readModelClass) return this.migrateReadModels(readModels, readModelName) } @@ -133,6 +157,34 @@ export class BoosterReadModelsReader { } } + /** + * Creates instances of the read model class with the calculated properties included + * @param searchResult The search result + * @param readModelClass The read model class + * @param propertiesToInclude The properties to include in the response + * @private + */ + private async createReadModelInstancesWithCalculatedProperties( + searchResult: Array | ReadModelListResult, + readModelClass: AnyClass, + propertiesToInclude: ProjectionFor + ): Promise | ReadModelListResult> { + const processInstance = async (raw: Partial): Promise => { + const instance = await createInstanceWithCalculatedProperties(readModelClass, raw, propertiesToInclude) + return instance as TReadModel + } + + if (Array.isArray(searchResult)) { + return await Promise.all(searchResult.map(processInstance)) + } else { + const processedItems = await Promise.all(searchResult.items.map(processInstance)) + return { + ...searchResult, + items: processedItems, + } + } + } + public async subscribe( connectionID: string, readModelRequest: ReadModelRequestEnvelope, @@ -216,4 +268,20 @@ export class BoosterReadModelsReader { } return this.config.provider.readModels.subscribe(this.config, subscription) } + + /** + * Returns the dependencies of the calculated fields of a read model + * @param readModelClass The read model class + * @private + */ + private getCalculatedFieldsDependencies(readModelClass: AnyClass): Record> { + const readModelMetadata: ReadModelMetadata = this.config.readModels[readModelClass.name] + + const dependenciesMap: Record> = {} + readModelMetadata?.properties.map((property: PropertyMetadata): void => { + dependenciesMap[property.name] = property.dependencies + }) + + return dependenciesMap + } } diff --git a/packages/framework-core/src/decorators/read-model.ts b/packages/framework-core/src/decorators/read-model.ts index 4c32dd1c1..6c9fbfee5 100644 --- a/packages/framework-core/src/decorators/read-model.ts +++ b/packages/framework-core/src/decorators/read-model.ts @@ -24,12 +24,39 @@ export function ReadModel( } const authorizer = BoosterAuthorizer.build(attributes) as ReadModelAuthorizer + const classMetadata = getClassMetadata(readModelClass) + const dynamicDependencies = Reflect.getMetadata('dynamic:dependencies', readModelClass) || {} + + // Combine properties with dynamic dependencies + const properties = classMetadata.fields.map((field: any) => { + return { + ...field, + dependencies: dynamicDependencies[field.name] || [], + } + }) + config.readModels[readModelClass.name] = { class: readModelClass, - properties: getClassMetadata(readModelClass).fields, + properties, authorizer, before: attributes.before ?? [], } }) } } + +interface CalculatedFieldOptions { + dependsOn: string[] +} + +/** + * Decorator to mark a property as a calculated field with dependencies. + * @param options - A `CalculatedFieldOptions` object indicating the dependencies. + */ +export function CalculatedField(options: CalculatedFieldOptions): PropertyDecorator { + return (target: object, propertyKey: string | symbol): void => { + const existingDependencies = Reflect.getMetadata('dynamic:dependencies', target.constructor) || {} + existingDependencies[propertyKey] = options.dependsOn + Reflect.defineMetadata('dynamic:dependencies', existingDependencies, target.constructor) + } +} diff --git a/packages/framework-core/test/booster-read-models-reader.test.ts b/packages/framework-core/test/booster-read-models-reader.test.ts index 52b0ebff7..24c2bef83 100644 --- a/packages/framework-core/test/booster-read-models-reader.test.ts +++ b/packages/framework-core/test/booster-read-models-reader.test.ts @@ -457,6 +457,7 @@ describe('BoosterReadModelReader', () => { filters, currentUser, select: ['id'], + skipInstance: false, } as any const expectedReadModels = [new TestReadModel(), new TestReadModel()] @@ -491,6 +492,7 @@ describe('BoosterReadModelReader', () => { filters, currentUser, select: ['id'], + skipInstance: false, } as any const expectedResult = [new TestReadModel(), new TestReadModel()] diff --git a/packages/framework-core/test/decorators/read-model.test.ts b/packages/framework-core/test/decorators/read-model.test.ts index fe998dd27..9cc70c422 100644 --- a/packages/framework-core/test/decorators/read-model.test.ts +++ b/packages/framework-core/test/decorators/read-model.test.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import { expect } from '../expect' import { describe } from 'mocha' -import { ReadModel, Booster, Entity, Projects, sequencedBy, Role } from '../../src' +import { ReadModel, Booster, Entity, Projects, sequencedBy, Role, CalculatedField } from '../../src' import { UUID, ProjectionResult, UserEnvelope } from '@boostercloud/framework-types' import { BoosterAuthorizer } from '../../src/booster-authorizer' import { fake, restore } from 'sinon' @@ -40,6 +40,7 @@ describe('the `ReadModel` decorator', () => { typeGroup: 'Class', typeName: 'UUID', }, + dependencies: [], }, { name: 'title', @@ -52,6 +53,7 @@ describe('the `ReadModel` decorator', () => { typeGroup: 'String', typeName: 'String', }, + dependencies: [], }, ], }) @@ -108,6 +110,7 @@ describe('the `ReadModel` decorator', () => { typeGroup: 'Class', typeName: 'UUID', }, + dependencies: [], }, { name: 'aStringProp', @@ -120,6 +123,7 @@ describe('the `ReadModel` decorator', () => { typeGroup: 'String', typeName: 'String', }, + dependencies: [], }, { name: 'aNumberProp', @@ -132,6 +136,7 @@ describe('the `ReadModel` decorator', () => { typeGroup: 'Number', typeName: 'Number', }, + dependencies: [], }, { name: 'aReadonlyArray', @@ -154,6 +159,7 @@ describe('the `ReadModel` decorator', () => { typeGroup: 'ReadonlyArray', typeName: 'ReadonlyArray', }, + dependencies: [], }, ], }) @@ -295,3 +301,89 @@ describe('the `Projects` decorator', () => { }) }) }) + +describe('the `CalculatedField` decorator', () => { + afterEach(() => { + restore() + Booster.configure('test', (config) => { + for (const propName in config.readModels) { + delete config.readModels[propName] + } + }) + }) + + it('adds calculated field metadata to the read model class', () => { + @ReadModel({ + authorize: 'all', + }) + class PersonReadModel { + public constructor(readonly id: UUID, readonly firstName: string, readonly lastName: string) {} + + @CalculatedField({ dependsOn: ['firstName', 'lastName'] }) + public get fullName(): string { + return `${this.firstName} ${this.lastName}` + } + } + + expect(Booster.config.readModels['PersonReadModel']).to.be.deep.equal({ + class: PersonReadModel, + authorizer: BoosterAuthorizer.allowAccess, + before: [], + properties: [ + { + name: 'id', + typeInfo: { + importPath: '@boostercloud/framework-types', + isNullable: false, + isGetAccessor: false, + name: 'UUID', + parameters: [], + type: UUID, + typeGroup: 'Class', + typeName: 'UUID', + }, + dependencies: [], + }, + { + name: 'firstName', + typeInfo: { + isNullable: false, + isGetAccessor: false, + name: 'string', + parameters: [], + type: String, + typeGroup: 'String', + typeName: 'String', + }, + dependencies: [], + }, + { + name: 'lastName', + typeInfo: { + isNullable: false, + isGetAccessor: false, + name: 'string', + parameters: [], + type: String, + typeGroup: 'String', + typeName: 'String', + }, + dependencies: [], + }, + { + name: 'fullName', + typeInfo: { + isNullable: false, + isGetAccessor: true, + name: 'string', + parameters: [], + type: String, + typeGroup: 'String', + typeName: 'String', + }, + dependencies: ['firstName', 'lastName'], + }, + ], + }) + }) +}) diff --git a/packages/framework-core/test/services/graphql/graphql-query-generator.test.ts b/packages/framework-core/test/services/graphql/graphql-query-generator.test.ts index 926def406..b7189363c 100644 --- a/packages/framework-core/test/services/graphql/graphql-query-generator.test.ts +++ b/packages/framework-core/test/services/graphql/graphql-query-generator.test.ts @@ -167,6 +167,7 @@ describe('GraphQLQueryGenerator', () => { isNullable: false, isGetAccessor: false, }, + dependencies: [], }, ], methods: [ @@ -181,6 +182,7 @@ describe('GraphQLQueryGenerator', () => { isNullable: false, isGetAccessor: false, }, + dependencies: [], }, ], } as ClassMetadata @@ -282,6 +284,7 @@ describe('GraphQLQueryGenerator', () => { isNullable: false, isGetAccessor: false, }, + dependencies: [], }, ], methods: [], @@ -371,6 +374,7 @@ describe('GraphQLQueryGenerator', () => { isNullable: false, isGetAccessor: false, }, + dependencies: [], }, ], methods: [], diff --git a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/read-models.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/read-models.integration.ts index 1505477fa..ab09a85ba 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/read-models.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/read-models.integration.ts @@ -1821,38 +1821,46 @@ describe('Read models end-to-end tests', () => { expect(currentPageCartData[0].cartItems[0].productId).to.equal(mockProductId) } }) + }) - it('should apply modified filter by before hooks', async () => { - // We create a cart with id 'before-fn-test-modified', but we query for - // 'before-fn-test', which will then change the filter after two "before" functions - // to return the original cart (id 'before-fn-test-modified') - const variables = { - cartId: 'before-fn-test-modified', - productId: beforeHookProductId, - quantity: 1, - } + context('projecting calculated fields', () => { + const mockCartId: string = random.uuid() + const mockProductId: string = random.uuid() + const mockQuantity: number = random.number({ min: 1 }) + const mockAddress = { + firstName: random.word(), + lastName: random.word(), + country: random.word(), + state: random.word(), + postalCode: random.word(), + address: random.word(), + } + + beforeEach(async () => { + // provisioning a cart await client.mutate({ - variables, + variables: { + cartId: mockCartId, + productId: mockProductId, + quantity: mockQuantity, + }, mutation: gql` mutation ChangeCartItem($cartId: ID!, $productId: ID!, $quantity: Float!) { ChangeCartItem(input: { cartId: $cartId, productId: $productId, quantity: $quantity }) } `, }) - const queryResult = await waitForIt( + + await waitForIt( () => { return client.query({ variables: { - cartId: 'before-fn-test', + cartId: mockCartId, }, query: gql` query CartReadModel($cartId: ID!) { CartReadModel(id: $cartId) { id - cartItems { - productId - quantity - } } } `, @@ -1861,38 +1869,122 @@ describe('Read models end-to-end tests', () => { (result) => result?.data?.CartReadModel != null ) - const cartData = queryResult.data.CartReadModel + // update shipping address + await client.mutate({ + variables: { + cartId: mockCartId, + address: mockAddress, + }, + mutation: gql` + mutation UpdateShippingAddress($cartId: ID!, $address: AddressInput!) { + UpdateShippingAddress(input: { cartId: $cartId, address: $address }) + } + `, + }) - expect(cartData.id).to.be.equal(variables.cartId) + await waitForIt( + () => { + return client.query({ + variables: { + cartId: mockCartId, + }, + query: gql` + query CartReadModel($cartId: ID!) { + CartReadModel(id: $cartId) { + id + shippingAddress { + firstName + } + } + } + `, + }) + }, + (result) => + result?.data?.CartReadModel != null && + result?.data?.CartReadModel?.shippingAddress?.firstName === mockAddress.firstName + ) }) - it('should return exceptions thrown by before functions', async () => { - try { - await waitForIt( - () => { - return client.query({ - variables: { - cartId: throwExceptionId, + it('should correctly fetch calculated fields via GraphQL query', async () => { + const queryResult = await waitForIt( + () => { + return client.query({ + variables: { + filter: { + id: { eq: mockCartId }, }, - query: gql` - query CartReadModel($cartId: ID!) { - CartReadModel(id: $cartId) { - id - cartItems { - productId - quantity - } + }, + query: gql` + query CartReadModels($filter: CartReadModelFilter) { + CartReadModels(filter: $filter) { + id + myAddress { + firstName + lastName + country + state + postalCode + address } } - `, - }) + } + `, + }) + }, + (result) => result?.data?.CartReadModels?.length >= 1 + ) + + const cartData = queryResult.data.CartReadModels + + expect(cartData).to.be.an('array') + expect(cartData.length).to.equal(1) + expect(cartData[0].id).to.be.equal(mockCartId) + expect(cartData[0].myAddress).to.deep.equal({ + ...mockAddress, + __typename: 'Address', + }) + }) + + it('should correctly fetch calculated fields via code', async () => { + const queryResult = await waitForIt( + () => { + return client.mutate({ + variables: { + cartId: mockCartId, + paginatedVersion: true, + }, + mutation: gql` + mutation CartMyAddress($cartId: ID!, $paginatedVersion: Boolean!) { + CartMyAddress(input: { cartId: $cartId, paginatedVersion: $paginatedVersion }) + } + `, + }) + }, + (result) => result?.data?.CartMyAddress != null + ) + + const cartMyAddress = queryResult.data.CartMyAddress + + expect(cartMyAddress).to.deep.equal({ + items: [ + { + id: mockCartId, + myAddress: { + firstName: mockAddress.firstName, + lastName: mockAddress.lastName, + country: mockAddress.country, + state: mockAddress.state, + postalCode: mockAddress.postalCode, + address: mockAddress.address, + }, }, - (_) => true - ) - } catch (e) { - expect(e.graphQLErrors[0].message).to.be.eq(beforeHookException) - expect(e.graphQLErrors[0].path).to.deep.eq(['CartReadModel']) - } + ], + count: 1, + cursor: { + id: '1', + }, + }) }) }) }) diff --git a/packages/framework-integration-tests/src/commands/cart-my-address.ts b/packages/framework-integration-tests/src/commands/cart-my-address.ts new file mode 100644 index 000000000..46312bd1f --- /dev/null +++ b/packages/framework-integration-tests/src/commands/cart-my-address.ts @@ -0,0 +1,22 @@ +import { Register, UUID } from '@boostercloud/framework-types' +import { Booster, Command } from '@boostercloud/framework-core' +import { CartReadModel } from '../read-models/cart-read-model' + +@Command({ + authorize: 'all', +}) +export class CartMyAddress { + public constructor(readonly cartId: UUID, readonly paginatedVersion: boolean) {} + + public static async handle(command: CartMyAddress, register: Register): Promise { + return (await Booster.readModel(CartReadModel) + .filter({ + id: { + eq: command.cartId, + }, + }) + .select(['id', 'myAddress']) + .paginatedVersion(command.paginatedVersion) + .search()) as Array + } +} diff --git a/packages/framework-integration-tests/src/read-models/cart-read-model.ts b/packages/framework-integration-tests/src/read-models/cart-read-model.ts index 7938f62cf..31cc2edd7 100644 --- a/packages/framework-integration-tests/src/read-models/cart-read-model.ts +++ b/packages/framework-integration-tests/src/read-models/cart-read-model.ts @@ -1,4 +1,4 @@ -import { Booster, NonExposed, Projects, ReadModel } from '@boostercloud/framework-core' +import { Booster, CalculatedField, NonExposed, Projects, ReadModel } from '@boostercloud/framework-core' import { ProjectionResult, ReadModelInterface, @@ -38,14 +38,17 @@ export class CartReadModel { return this.checks } + @CalculatedField({ dependsOn: ['cartItems'] }) public get cartItemsSize(): number | undefined { return this.cartItems ? this.cartItems.length : 0 } + @CalculatedField({ dependsOn: ['shippingAddress'] }) public get myAddress(): Promise
{ return Promise.resolve(this.shippingAddress || new Address('', '', '', '', '', '')) } + @CalculatedField({ dependsOn: ['cartItems'] }) public get lastProduct(): Promise { if (this.cartItemsSize === 0) { return Promise.resolve(undefined) diff --git a/packages/metadata-booster/src/metadata-types.ts b/packages/metadata-booster/src/metadata-types.ts index 24e9c3d60..131137256 100644 --- a/packages/metadata-booster/src/metadata-types.ts +++ b/packages/metadata-booster/src/metadata-types.ts @@ -31,6 +31,7 @@ export interface TypeMetadata { export interface PropertyMetadata { name: string typeInfo: TypeMetadata + dependencies: Array } export interface ClassMetadata { diff --git a/website/docs/03_architecture/06_read-model.mdx b/website/docs/03_architecture/06_read-model.mdx index afdbb919b..8221e10a4 100644 --- a/website/docs/03_architecture/06_read-model.mdx +++ b/website/docs/03_architecture/06_read-model.mdx @@ -151,7 +151,11 @@ Keeping the read model untouched higly recommended in favour of returning a new ## Nested queries and calculated values using getters -You can use TypeScript getters in your read models to allow nested queries and/or return calculated values. You can write arbitrary code in a getter, but you will tipically query for related read model objects or generate a value computed based on the current read model instance or context. This greatly improves the potential of customizing your read model responses. +You can use TypeScript getters in your read models to allow nested queries and/or return calculated values. You can write arbitrary code in a getter, but you will typically query for related read model objects or generate a value computed based on the current read model instance or context. This greatly improves the potential of customizing your read model responses. + +:::info +Starting version 2.13, getters for values which are calculated using other properties of the read model need to be annotated with the `@CalculatedField` decorator and a list of those properties as dependencies. +::: Here's an example of a getter in the `UserReadModel` class that returns all `PostReadModel`s that belong to a specific `UserReadModel`: @@ -160,6 +164,7 @@ Here's an example of a getter in the `UserReadModel` class that returns all `Pos export class UserReadModel { public constructor(readonly id: UUID, readonly name: string, private postIds: UUID[]) {} + @CalculatedField({ dependsOn: ['postIds'] }) public get posts(): Promise { return this.postIds.map((postId) => Booster.readModel(PostReadModel) .filter({ From 641ed082d4a92ebca30cc1814e296671dec32aa6 Mon Sep 17 00:00:00 2001 From: GITHUBACTION Date: Fri, 19 Jul 2024 16:36:39 +0000 Subject: [PATCH 04/47] Bump versions [skip ci] --- .../calculated_fields_2024-07-08-19-05.json | 10 ------- common/config/rush/version-policies.json | 2 +- packages/application-tester/package.json | 6 ++-- packages/cli/package.json | 10 +++---- .../framework-common-helpers/package.json | 6 ++-- packages/framework-core/CHANGELOG.json | 28 +++++++++++++++++++ packages/framework-core/CHANGELOG.md | 9 +++++- packages/framework-core/package.json | 10 +++---- .../framework-integration-tests/package.json | 28 +++++++++---------- .../package.json | 10 +++---- packages/framework-provider-aws/package.json | 8 +++--- .../package.json | 12 ++++---- .../framework-provider-azure/package.json | 8 +++--- .../package.json | 10 +++---- .../framework-provider-local/package.json | 8 +++--- packages/framework-types/package.json | 6 ++-- packages/metadata-booster/package.json | 4 +-- tools/eslint-config/package.json | 2 +- 18 files changed, 101 insertions(+), 76 deletions(-) delete mode 100644 common/changes/@boostercloud/framework-core/calculated_fields_2024-07-08-19-05.json diff --git a/common/changes/@boostercloud/framework-core/calculated_fields_2024-07-08-19-05.json b/common/changes/@boostercloud/framework-core/calculated_fields_2024-07-08-19-05.json deleted file mode 100644 index 643bf882e..000000000 --- a/common/changes/@boostercloud/framework-core/calculated_fields_2024-07-08-19-05.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@boostercloud/framework-core", - "comment": "Improve support for calculated fields and their dependencies on read models", - "type": "minor" - } - ], - "packageName": "@boostercloud/framework-core" -} \ No newline at end of file diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 60f7c00d6..59d28c106 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -103,6 +103,6 @@ "definitionName": "lockStepVersion", "policyName": "booster", "mainProject": "@boostercloud/framework-core", - "version": "2.12.1" + "version": "2.13.0" } ] diff --git a/packages/application-tester/package.json b/packages/application-tester/package.json index da61512cc..0485249fe 100644 --- a/packages/application-tester/package.json +++ b/packages/application-tester/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/application-tester", - "version": "2.12.1", + "version": "2.13.0", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "application-tester" @@ -36,7 +36,7 @@ }, "dependencies": { "@apollo/client": "3.7.13", - "@boostercloud/framework-types": "workspace:^2.12.1", + "@boostercloud/framework-types": "workspace:^2.13.0", "cross-fetch": "3.1.5", "graphql": "^16.6.0", "jsonwebtoken": "9.0.1", @@ -48,7 +48,7 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.12.1", + "@boostercloud/eslint-config": "workspace:^2.13.0", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", "eslint": "^8.23.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 0a44322b1..e8fa5dbdd 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/cli", "description": "CLI of the Booster Framework, the next level of abstraction for cloud-native applications", - "version": "2.12.1", + "version": "2.13.0", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -12,8 +12,8 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-core": "workspace:^2.12.1", - "@boostercloud/framework-types": "workspace:^2.12.1", + "@boostercloud/framework-core": "workspace:^2.13.0", + "@boostercloud/framework-types": "workspace:^2.13.0", "@oclif/core": "3.15.0", "@oclif/plugin-help": "^5", "chalk": "^2.4.2", @@ -30,8 +30,8 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.12.1", - "@boostercloud/application-tester": "workspace:^2.12.1", + "@boostercloud/eslint-config": "workspace:^2.13.0", + "@boostercloud/application-tester": "workspace:^2.13.0", "@oclif/test": "^3.0.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", diff --git a/packages/framework-common-helpers/package.json b/packages/framework-common-helpers/package.json index 3a20a6f45..8a2dce401 100644 --- a/packages/framework-common-helpers/package.json +++ b/packages/framework-common-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-common-helpers", - "version": "2.12.1", + "version": "2.13.0", "description": "Contains Booster common helpers used by the core and provider packages", "keywords": [ "framework-common-helpers" @@ -36,14 +36,14 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-types": "workspace:^2.12.1", + "@boostercloud/framework-types": "workspace:^2.13.0", "child-process-promise": "^2.2.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "class-transformer": "~0.5.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.12.1", + "@boostercloud/eslint-config": "workspace:^2.13.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/child-process-promise": "^2.2.1", diff --git a/packages/framework-core/CHANGELOG.json b/packages/framework-core/CHANGELOG.json index ff49243a7..f50804a1e 100644 --- a/packages/framework-core/CHANGELOG.json +++ b/packages/framework-core/CHANGELOG.json @@ -1,6 +1,34 @@ { "name": "@boostercloud/framework-core", "entries": [ + { + "version": "2.13.0", + "tag": "@boostercloud/framework-core_v2.13.0", + "date": "Fri, 19 Jul 2024 16:36:39 GMT", + "comments": { + "minor": [ + { + "comment": "Improve support for calculated fields and their dependencies on read models", + "author": "Mario Castro Squella ", + "commit": "177b0386069f6467a0fbe11857b403cc3cbc0f29" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@boostercloud/framework-common-helpers\" from `^2.12.1` to `^2.13.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/framework-types\" from `^2.12.1` to `^2.13.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/metadata-booster\" from `^2.12.1` to `^2.13.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/eslint-config\" from `^2.12.1` to `^2.13.0`" + } + ] + } + }, { "version": "2.12.1", "tag": "@boostercloud/framework-core_v2.12.1", diff --git a/packages/framework-core/CHANGELOG.md b/packages/framework-core/CHANGELOG.md index 2612b3ccf..5aaaaabf5 100644 --- a/packages/framework-core/CHANGELOG.md +++ b/packages/framework-core/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @boostercloud/framework-core -This log was last generated on Thu, 13 Jun 2024 16:17:26 GMT and should not be manually modified. +This log was last generated on Fri, 19 Jul 2024 16:36:39 GMT and should not be manually modified. + +## 2.13.0 +Fri, 19 Jul 2024 16:36:39 GMT + +### Minor changes + +- Improve support for calculated fields and their dependencies on read models ## 2.12.1 Thu, 13 Jun 2024 16:17:26 GMT diff --git a/packages/framework-core/package.json b/packages/framework-core/package.json index 6633a0c75..eb17cfc35 100644 --- a/packages/framework-core/package.json +++ b/packages/framework-core/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-core", - "version": "2.12.1", + "version": "2.13.0", "description": "Library for your Booster apps", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", @@ -37,8 +37,8 @@ "graphql": "^16.6.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.12.1", - "@boostercloud/framework-types": "workspace:^2.12.1", + "@boostercloud/framework-common-helpers": "workspace:^2.13.0", + "@boostercloud/framework-types": "workspace:^2.13.0", "fp-ts": "^2.11.0", "graphql-scalars": "^1.17.0", "graphql-subscriptions": "2.0.0", @@ -61,8 +61,8 @@ "ws": "8.12.0" }, "devDependencies": { - "@boostercloud/metadata-booster": "workspace:^2.12.1", - "@boostercloud/eslint-config": "workspace:^2.12.1", + "@boostercloud/metadata-booster": "workspace:^2.13.0", + "@boostercloud/eslint-config": "workspace:^2.13.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-integration-tests/package.json b/packages/framework-integration-tests/package.json index a0615f9d7..d77fe9eef 100644 --- a/packages/framework-integration-tests/package.json +++ b/packages/framework-integration-tests/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-integration-tests", "description": "Example project for Booster", - "version": "2.12.1", + "version": "2.13.0", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -9,12 +9,12 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.12.1", - "@boostercloud/framework-core": "workspace:^2.12.1", - "@boostercloud/framework-provider-aws": "workspace:^2.12.1", - "@boostercloud/framework-provider-azure": "workspace:^2.12.1", - "@boostercloud/framework-provider-local": "workspace:^2.12.1", - "@boostercloud/framework-types": "workspace:^2.12.1", + "@boostercloud/framework-common-helpers": "workspace:^2.13.0", + "@boostercloud/framework-core": "workspace:^2.13.0", + "@boostercloud/framework-provider-aws": "workspace:^2.13.0", + "@boostercloud/framework-provider-azure": "workspace:^2.13.0", + "@boostercloud/framework-provider-local": "workspace:^2.13.0", + "@boostercloud/framework-types": "workspace:^2.13.0", "aws-sdk": "2.853.0", "graphql": "^16.6.0", "tslib": "^2.4.0", @@ -33,13 +33,13 @@ "ws": "8.12.0" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.12.1", - "@boostercloud/application-tester": "workspace:^2.12.1", - "@boostercloud/cli": "workspace:^2.12.1", - "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.12.1", - "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.12.1", - "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.12.1", - "@boostercloud/metadata-booster": "workspace:^2.12.1", + "@boostercloud/eslint-config": "workspace:^2.13.0", + "@boostercloud/application-tester": "workspace:^2.13.0", + "@boostercloud/cli": "workspace:^2.13.0", + "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.13.0", + "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.13.0", + "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.13.0", + "@boostercloud/metadata-booster": "workspace:^2.13.0", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-aws-infrastructure/package.json b/packages/framework-provider-aws-infrastructure/package.json index 9962aa0dd..f43c04073 100644 --- a/packages/framework-provider-aws-infrastructure/package.json +++ b/packages/framework-provider-aws-infrastructure/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws-infrastructure", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.12.1", + "version": "2.13.0", "description": "Handle the Booster deployment process to AWS", "keywords": [ "framework-provider-aws-infrastructure" @@ -41,9 +41,9 @@ "@aws-cdk/aws-s3-deployment": "^1.170.0", "@aws-cdk/core": "^1.170.0", "@aws-cdk/cx-api": "^1.170.0", - "@boostercloud/framework-common-helpers": "workspace:^2.12.1", - "@boostercloud/framework-provider-aws": "workspace:^2.12.1", - "@boostercloud/framework-types": "workspace:^2.12.1", + "@boostercloud/framework-common-helpers": "workspace:^2.13.0", + "@boostercloud/framework-provider-aws": "workspace:^2.13.0", + "@boostercloud/framework-types": "workspace:^2.13.0", "constructs": "^3.3.69", "aws-cdk": "^1.170.0", "aws-sdk": "2.853.0", @@ -69,7 +69,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.12.1", + "@boostercloud/eslint-config": "workspace:^2.13.0", "@types/aws-lambda": "8.10.48", "@types/aws-sdk": "2.7.0", "@types/chai": "4.2.18", diff --git a/packages/framework-provider-aws/package.json b/packages/framework-provider-aws/package.json index ef3d182a1..c59fc84d6 100644 --- a/packages/framework-provider-aws/package.json +++ b/packages/framework-provider-aws/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.12.1", + "version": "2.13.0", "description": "Handle Booster's integration with AWS", "keywords": [ "framework-provider-aws" @@ -24,8 +24,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.12.1", - "@boostercloud/framework-types": "workspace:^2.12.1", + "@boostercloud/framework-common-helpers": "workspace:^2.13.0", + "@boostercloud/framework-types": "workspace:^2.13.0", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4" }, @@ -43,7 +43,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.12.1", + "@boostercloud/eslint-config": "workspace:^2.13.0", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-azure-infrastructure/package.json b/packages/framework-provider-azure-infrastructure/package.json index 37e7526cd..6f4f89fd0 100644 --- a/packages/framework-provider-azure-infrastructure/package.json +++ b/packages/framework-provider-azure-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure-infrastructure", - "version": "2.12.1", + "version": "2.13.0", "description": "Handle the Booster deployment process to Azure", "keywords": [ "framework-provider-azure-infrastructure" @@ -25,10 +25,10 @@ "dependencies": { "@azure/arm-appservice": "^13.0.0", "@azure/cosmos": "^4.0.0", - "@boostercloud/framework-common-helpers": "workspace:^2.12.1", - "@boostercloud/framework-core": "workspace:^2.12.1", - "@boostercloud/framework-provider-azure": "workspace:^2.12.1", - "@boostercloud/framework-types": "workspace:^2.12.1", + "@boostercloud/framework-common-helpers": "workspace:^2.13.0", + "@boostercloud/framework-core": "workspace:^2.13.0", + "@boostercloud/framework-provider-azure": "workspace:^2.13.0", + "@boostercloud/framework-types": "workspace:^2.13.0", "@cdktf/provider-azurerm": "11.2.0", "@cdktf/provider-time": "9.0.2", "@types/archiver": "5.1.0", @@ -67,7 +67,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.12.1", + "@boostercloud/eslint-config": "workspace:^2.13.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-azure/package.json b/packages/framework-provider-azure/package.json index e6ac34dff..ef1397d60 100644 --- a/packages/framework-provider-azure/package.json +++ b/packages/framework-provider-azure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure", - "version": "2.12.1", + "version": "2.13.0", "description": "Handle Booster's integration with Azure", "keywords": [ "framework-provider-azure" @@ -27,14 +27,14 @@ "@azure/functions": "^1.2.2", "@azure/identity": "~2.1.0", "@azure/event-hubs": "5.11.1", - "@boostercloud/framework-common-helpers": "workspace:^2.12.1", - "@boostercloud/framework-types": "workspace:^2.12.1", + "@boostercloud/framework-common-helpers": "workspace:^2.13.0", + "@boostercloud/framework-types": "workspace:^2.13.0", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "@azure/web-pubsub": "~1.1.0" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.12.1", + "@boostercloud/eslint-config": "workspace:^2.13.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-local-infrastructure/package.json b/packages/framework-provider-local-infrastructure/package.json index e528b0a19..28ffe3340 100644 --- a/packages/framework-provider-local-infrastructure/package.json +++ b/packages/framework-provider-local-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local-infrastructure", - "version": "2.12.1", + "version": "2.13.0", "description": "Handle the Booster running process of the local runtime", "keywords": [ "framework-provider-local-infrastructure" @@ -23,9 +23,9 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.12.1", - "@boostercloud/framework-provider-local": "workspace:^2.12.1", - "@boostercloud/framework-types": "workspace:^2.12.1", + "@boostercloud/framework-common-helpers": "workspace:^2.13.0", + "@boostercloud/framework-provider-local": "workspace:^2.13.0", + "@boostercloud/framework-types": "workspace:^2.13.0", "cors": "2.8.5", "express": "^4.19.2", "node-schedule": "^2.1.0", @@ -46,7 +46,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.12.1", + "@boostercloud/eslint-config": "workspace:^2.13.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/cors": "^2.8.12", diff --git a/packages/framework-provider-local/package.json b/packages/framework-provider-local/package.json index 0f2f8de8a..215ff32fc 100644 --- a/packages/framework-provider-local/package.json +++ b/packages/framework-provider-local/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local", - "version": "2.12.1", + "version": "2.13.0", "description": "Debug your Booster projects locally", "keywords": [ "framework-provider-local" @@ -23,8 +23,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.12.1", - "@boostercloud/framework-types": "workspace:^2.12.1", + "@boostercloud/framework-common-helpers": "workspace:^2.13.0", + "@boostercloud/framework-types": "workspace:^2.13.0", "@seald-io/nedb": "4.0.2", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", @@ -44,7 +44,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.12.1", + "@boostercloud/eslint-config": "workspace:^2.13.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/express": "^4.17.21", diff --git a/packages/framework-types/package.json b/packages/framework-types/package.json index dbfdb0907..45f8494ff 100644 --- a/packages/framework-types/package.json +++ b/packages/framework-types/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-types", - "version": "2.12.1", + "version": "2.13.0", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "framework-types" @@ -54,8 +54,8 @@ "ws": "8.12.0" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.12.1", - "@boostercloud/metadata-booster": "workspace:^2.12.1", + "@boostercloud/eslint-config": "workspace:^2.13.0", + "@boostercloud/metadata-booster": "workspace:^2.13.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/mocha": "10.0.1", diff --git a/packages/metadata-booster/package.json b/packages/metadata-booster/package.json index 06c80fb7b..483749d7b 100644 --- a/packages/metadata-booster/package.json +++ b/packages/metadata-booster/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/metadata-booster", - "version": "2.12.1", + "version": "2.13.0", "description": "Emits detailed metadata of your types. You can then get it in runtime to deal with schema-aware operation, like defining GraphQL schemas, ORM operations, etc.", "repository": "https://github.com/boostercloud/booster.git", "keywords": [ @@ -38,7 +38,7 @@ "eslint-config-prettier": "8.3.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "3.4.0", - "@boostercloud/eslint-config": "workspace:^2.12.1", + "@boostercloud/eslint-config": "workspace:^2.13.0", "@types/node": "^18.18.2", "ts-node": "^10.9.1", "ts-patch": "3.1.2", diff --git a/tools/eslint-config/package.json b/tools/eslint-config/package.json index 06f422031..c819bd2ae 100644 --- a/tools/eslint-config/package.json +++ b/tools/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/eslint-config", - "version": "2.12.1", + "version": "2.13.0", "description": "Shared eslint rules", "main": "index.js", "publishConfig": { From 229be3f7a4326f3abe8bd95841dc771008c169e9 Mon Sep 17 00:00:00 2001 From: Mario Castro Squella Date: Fri, 26 Jul 2024 04:48:49 -0400 Subject: [PATCH 05/47] fix: ws dependency vulnerability (#1543) * Bump ws version (fixes CVE-2024-37890) * Add rush change file --------- Co-authored-by: Castro, Mario --- .../ws_version_bump_2024-07-25-19-50.json | 10 + common/config/rush/pnpm-lock.yaml | 221 ++++++++++-------- packages/application-tester/package.json | 2 +- packages/framework-core/package.json | 2 +- .../framework-integration-tests/package.json | 2 +- .../framework-provider-local/package.json | 2 +- packages/framework-types/package.json | 2 +- 7 files changed, 137 insertions(+), 104 deletions(-) create mode 100644 common/changes/@boostercloud/framework-core/ws_version_bump_2024-07-25-19-50.json diff --git a/common/changes/@boostercloud/framework-core/ws_version_bump_2024-07-25-19-50.json b/common/changes/@boostercloud/framework-core/ws_version_bump_2024-07-25-19-50.json new file mode 100644 index 000000000..55b002408 --- /dev/null +++ b/common/changes/@boostercloud/framework-core/ws_version_bump_2024-07-25-19-50.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@boostercloud/framework-core", + "comment": "Bump ws version (fixes CVE-2024-37890)", + "type": "patch" + } + ], + "packageName": "@boostercloud/framework-core" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 62a076a2b..d066dcb0d 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,8 +8,8 @@ importers: ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^2.12.1 - '@boostercloud/framework-types': workspace:^2.12.1 + '@boostercloud/eslint-config': workspace:^2.13.0 + '@boostercloud/framework-types': workspace:^2.13.0 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.18.2 @@ -35,7 +35,7 @@ importers: subscriptions-transport-ws: 0.11.0 tslib: ^2.4.0 typescript: 5.1.6 - ws: 8.12.0 + ws: 8.17.1 dependencies: '@apollo/client': 3.7.13_pvbge6vplei5rx3k4pxg27es3y '@boostercloud/framework-types': link:../framework-types @@ -47,7 +47,7 @@ importers: sinon: 9.2.3 subscriptions-transport-ws: 0.11.0_graphql@16.9.0 tslib: 2.6.3 - ws: 8.12.0 + ws: 8.17.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/jsonwebtoken': 9.0.1 @@ -70,10 +70,10 @@ importers: ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^2.12.1 - '@boostercloud/eslint-config': workspace:^2.12.1 - '@boostercloud/framework-core': workspace:^2.12.1 - '@boostercloud/framework-types': workspace:^2.12.1 + '@boostercloud/application-tester': workspace:^2.13.0 + '@boostercloud/eslint-config': workspace:^2.13.0 + '@boostercloud/framework-core': workspace:^2.13.0 + '@boostercloud/framework-types': workspace:^2.13.0 '@effect-ts/core': ^0.60.4 '@oclif/core': 3.15.0 '@oclif/plugin-help': ^5 @@ -183,8 +183,8 @@ importers: ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^2.12.1 - '@boostercloud/framework-types': workspace:^2.12.1 + '@boostercloud/eslint-config': workspace:^2.13.0 + '@boostercloud/framework-types': workspace:^2.13.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -258,10 +258,10 @@ importers: ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^2.12.1 - '@boostercloud/framework-common-helpers': workspace:^2.12.1 - '@boostercloud/framework-types': workspace:^2.12.1 - '@boostercloud/metadata-booster': workspace:^2.12.1 + '@boostercloud/eslint-config': workspace:^2.13.0 + '@boostercloud/framework-common-helpers': workspace:^2.13.0 + '@boostercloud/framework-types': workspace:^2.13.0 + '@boostercloud/metadata-booster': workspace:^2.13.0 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 '@effect/platform-node': 0.45.26 @@ -314,12 +314,12 @@ importers: tslib: ^2.4.0 typescript: 5.1.6 validator: 13.7.0 - ws: 8.12.0 + ws: 8.17.1 dependencies: '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-types': link:../framework-types '@effect/cli': 0.35.26_q3uix5ylsud7xnsn3vpzgrghwu - '@effect/platform': 0.48.24_dyvpp6bxxcuou3trhs4x4ygr5y + '@effect/platform': 0.48.24_aixcdyfeuz2zct7jthaihye4ri '@effect/platform-node': 0.45.26_cahjalgelcnk6vcj6x2oc46m3a '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja @@ -337,7 +337,7 @@ importers: reflect-metadata: 0.1.13 tslib: 2.6.3 validator: 13.7.0 - ws: 8.12.0 + ws: 8.17.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@boostercloud/metadata-booster': link:../metadata-booster @@ -378,19 +378,19 @@ importers: ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^2.12.1 - '@boostercloud/cli': workspace:^2.12.1 - '@boostercloud/eslint-config': workspace:^2.12.1 - '@boostercloud/framework-common-helpers': workspace:^2.12.1 - '@boostercloud/framework-core': workspace:^2.12.1 - '@boostercloud/framework-provider-aws': workspace:^2.12.1 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.12.1 - '@boostercloud/framework-provider-azure': workspace:^2.12.1 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.12.1 - '@boostercloud/framework-provider-local': workspace:^2.12.1 - '@boostercloud/framework-provider-local-infrastructure': workspace:^2.12.1 - '@boostercloud/framework-types': workspace:^2.12.1 - '@boostercloud/metadata-booster': workspace:^2.12.1 + '@boostercloud/application-tester': workspace:^2.13.0 + '@boostercloud/cli': workspace:^2.13.0 + '@boostercloud/eslint-config': workspace:^2.13.0 + '@boostercloud/framework-common-helpers': workspace:^2.13.0 + '@boostercloud/framework-core': workspace:^2.13.0 + '@boostercloud/framework-provider-aws': workspace:^2.13.0 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.13.0 + '@boostercloud/framework-provider-azure': workspace:^2.13.0 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.13.0 + '@boostercloud/framework-provider-local': workspace:^2.13.0 + '@boostercloud/framework-provider-local-infrastructure': workspace:^2.13.0 + '@boostercloud/framework-types': workspace:^2.13.0 + '@boostercloud/metadata-booster': workspace:^2.13.0 '@effect-ts/core': ^0.60.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 @@ -453,7 +453,7 @@ importers: ts-patch: 3.1.2 tslib: ^2.4.0 typescript: 5.1.6 - ws: 8.12.0 + ws: 8.17.1 dependencies: '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-core': link:../framework-core @@ -463,7 +463,7 @@ importers: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@effect/cli': 0.35.26_q3uix5ylsud7xnsn3vpzgrghwu - '@effect/platform': 0.48.24_dyvpp6bxxcuou3trhs4x4ygr5y + '@effect/platform': 0.48.24_aixcdyfeuz2zct7jthaihye4ri '@effect/platform-node': 0.45.26_cahjalgelcnk6vcj6x2oc46m3a '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja @@ -476,7 +476,7 @@ importers: fast-check: 3.19.0 graphql: 16.9.0 tslib: 2.6.3 - ws: 8.12.0 + ws: 8.17.1 devDependencies: '@apollo/client': 3.7.13_jxorufveymi4xbrutgakjkp5wa '@boostercloud/application-tester': link:../application-tester @@ -536,9 +536,9 @@ importers: ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^2.12.1 - '@boostercloud/framework-common-helpers': workspace:^2.12.1 - '@boostercloud/framework-types': workspace:^2.12.1 + '@boostercloud/eslint-config': workspace:^2.13.0 + '@boostercloud/framework-common-helpers': workspace:^2.13.0 + '@boostercloud/framework-types': workspace:^2.13.0 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -632,10 +632,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^2.12.1 - '@boostercloud/framework-common-helpers': workspace:^2.12.1 - '@boostercloud/framework-provider-aws': workspace:^2.12.1 - '@boostercloud/framework-types': workspace:^2.12.1 + '@boostercloud/eslint-config': workspace:^2.13.0 + '@boostercloud/framework-common-helpers': workspace:^2.13.0 + '@boostercloud/framework-provider-aws': workspace:^2.13.0 + '@boostercloud/framework-types': workspace:^2.13.0 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -749,9 +749,9 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^2.12.1 - '@boostercloud/framework-common-helpers': workspace:^2.12.1 - '@boostercloud/framework-types': workspace:^2.12.1 + '@boostercloud/eslint-config': workspace:^2.13.0 + '@boostercloud/framework-common-helpers': workspace:^2.13.0 + '@boostercloud/framework-types': workspace:^2.13.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -823,11 +823,11 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^2.12.1 - '@boostercloud/framework-common-helpers': workspace:^2.12.1 - '@boostercloud/framework-core': workspace:^2.12.1 - '@boostercloud/framework-provider-azure': workspace:^2.12.1 - '@boostercloud/framework-types': workspace:^2.12.1 + '@boostercloud/eslint-config': workspace:^2.13.0 + '@boostercloud/framework-common-helpers': workspace:^2.13.0 + '@boostercloud/framework-core': workspace:^2.13.0 + '@boostercloud/framework-provider-azure': workspace:^2.13.0 + '@boostercloud/framework-types': workspace:^2.13.0 '@cdktf/provider-azurerm': 11.2.0 '@cdktf/provider-time': 9.0.2 '@effect-ts/core': ^0.60.4 @@ -934,9 +934,9 @@ importers: ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^2.12.1 - '@boostercloud/framework-common-helpers': workspace:^2.12.1 - '@boostercloud/framework-types': workspace:^2.12.1 + '@boostercloud/eslint-config': workspace:^2.13.0 + '@boostercloud/framework-common-helpers': workspace:^2.13.0 + '@boostercloud/framework-types': workspace:^2.13.0 '@effect-ts/core': ^0.60.4 '@seald-io/nedb': 4.0.2 '@types/chai': 4.2.18 @@ -970,14 +970,14 @@ importers: ts-node: ^10.9.1 tslib: ^2.4.0 typescript: 5.1.6 - ws: 8.12.0 + ws: 8.17.1 dependencies: '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@seald-io/nedb': 4.0.2 tslib: 2.6.3 - ws: 8.12.0 + ws: 8.17.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/chai': 4.2.18 @@ -1013,10 +1013,10 @@ importers: ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^2.12.1 - '@boostercloud/framework-common-helpers': workspace:^2.12.1 - '@boostercloud/framework-provider-local': workspace:^2.12.1 - '@boostercloud/framework-types': workspace:^2.12.1 + '@boostercloud/eslint-config': workspace:^2.13.0 + '@boostercloud/framework-common-helpers': workspace:^2.13.0 + '@boostercloud/framework-provider-local': workspace:^2.13.0 + '@boostercloud/framework-types': workspace:^2.13.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1096,8 +1096,8 @@ importers: ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^2.12.1 - '@boostercloud/metadata-booster': workspace:^2.12.1 + '@boostercloud/eslint-config': workspace:^2.13.0 + '@boostercloud/metadata-booster': workspace:^2.13.0 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@effect/cli': 0.35.26 @@ -1135,12 +1135,12 @@ importers: typescript: 5.1.6 uuid: 8.3.2 web-streams-polyfill: ~3.3.2 - ws: 8.12.0 + ws: 8.17.1 dependencies: '@effect-ts/core': 0.60.5 '@effect-ts/node': 0.39.0_@effect-ts+core@0.60.5 '@effect/cli': 0.35.26_q3uix5ylsud7xnsn3vpzgrghwu - '@effect/platform': 0.48.24_dyvpp6bxxcuou3trhs4x4ygr5y + '@effect/platform': 0.48.24_aixcdyfeuz2zct7jthaihye4ri '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye @@ -1149,7 +1149,7 @@ importers: tslib: 2.6.3 uuid: 8.3.2 web-streams-polyfill: 3.3.3 - ws: 8.12.0 + ws: 8.17.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@boostercloud/metadata-booster': link:../metadata-booster @@ -1181,7 +1181,7 @@ importers: ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/eslint-config': workspace:^2.13.0 '@effect-ts/core': ^0.60.4 '@types/node': ^18.18.2 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -1668,10 +1668,11 @@ packages: '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu - '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq + '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 + yaml: 1.10.2 transitivePeerDependencies: - '@aws-cdk/aws-lambda' - '@aws-cdk/cx-api' @@ -1787,6 +1788,7 @@ packages: '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/custom-resources': 1.204.0_c23kgzmvfhgnr6qpzzlbsfzuc4 constructs: 3.4.344 + punycode: 2.3.1 transitivePeerDependencies: - '@aws-cdk/aws-ec2' - '@aws-cdk/aws-logs' @@ -1941,7 +1943,7 @@ packages: '@aws-cdk/aws-route53-targets': 1.204.0_2eviprr3zwoouaslbumtdekrhi '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu - '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq + '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 '@aws-cdk/aws-servicediscovery': 1.204.0_nu23nesxfni464wb5cy4ehgagi '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -2242,7 +2244,7 @@ packages: '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-notifications': 1.204.0_xguspq3b5n56mo6dsez57f32qa - '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq + '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sns-subscriptions': 1.204.0_bpkznh2gsccwq6qpaogbkb4psu '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -2436,6 +2438,7 @@ packages: '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/lambda-layer-awscli': 1.204.0_e7ybiu4yrrtvf3zlvzrvcjkvyy + case: 1.6.3 constructs: 3.4.344 transitivePeerDependencies: - '@aws-cdk/assets' @@ -2511,7 +2514,7 @@ packages: constructs: 3.4.344 dev: false - /@aws-cdk/aws-secretsmanager/1.204.0_2o53qceqenzlpxe4mjswmsqfiq: + /@aws-cdk/aws-secretsmanager/1.204.0_336juigttbrwz7tyvm6a6wfpy4: resolution: {integrity: sha512-ykpjYmP6qVOFbHtkaQBu3Xk7xp2UTR0ouzk7pb+zrEHKGmRvzGq+8J0IU+qXBJgQIVwFAPf2IgOSTzj6FJPdyA==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -2526,18 +2529,12 @@ packages: '@aws-cdk/cx-api': 1.204.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu - '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-sam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/cx-api': 1.203.0 constructs: 3.4.344 - transitivePeerDependencies: - - '@aws-cdk/assets' - - '@aws-cdk/aws-logs' - - '@aws-cdk/aws-s3' dev: false /@aws-cdk/aws-servicediscovery/1.204.0_nu23nesxfni464wb5cy4ehgagi: @@ -2715,6 +2712,9 @@ packages: /@aws-cdk/cloud-assembly-schema/1.203.0: resolution: {integrity: sha512-r252InZ8Oh7q7ztriaA3n6F48QOFVfNcT/KO4XOlYyt1xDWRMENDYf+D+DVr6O5klcaa3ivvvDT7DRuW3xdVOQ==} engines: {node: '>= 14.15.0'} + dependencies: + jsonschema: 1.4.1 + semver: 7.6.2 dev: false bundledDependencies: - jsonschema @@ -2728,6 +2728,9 @@ packages: This package is no longer being updated, and users should migrate to AWS CDK v2. For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html + dependencies: + jsonschema: 1.4.1 + semver: 7.6.2 dev: false bundledDependencies: - jsonschema @@ -2736,6 +2739,9 @@ packages: /@aws-cdk/cloud-assembly-schema/2.39.1: resolution: {integrity: sha512-lSVaaedXWeK08uoq0IXDCspz9U/H4qIERemdsMQrMUDTiUe/JBby7vtmyMvOdEscE8GMAmiOzoPmAE0Uf+yw5A==} engines: {node: '>= 14.15.0'} + dependencies: + jsonschema: 1.4.1 + semver: 7.6.2 dev: false bundledDependencies: - jsonschema @@ -2769,7 +2775,11 @@ packages: '@aws-cdk/cloud-assembly-schema': 1.204.0 '@aws-cdk/cx-api': 1.203.0 '@aws-cdk/region-info': 1.204.0 + '@balena/dockerignore': 1.0.2 constructs: 3.4.344 + fs-extra: 9.1.0 + ignore: 5.3.1 + minimatch: 3.1.2 dev: false bundledDependencies: - fs-extra @@ -2812,6 +2822,7 @@ packages: engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 1.203.0 + semver: 7.6.2 dev: false bundledDependencies: - semver @@ -2826,6 +2837,7 @@ packages: For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html dependencies: '@aws-cdk/cloud-assembly-schema': 1.204.0 + semver: 7.6.2 dev: false bundledDependencies: - semver @@ -2835,6 +2847,7 @@ packages: engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 2.39.1 + semver: 7.6.2 dev: false bundledDependencies: - semver @@ -3322,6 +3335,10 @@ packages: '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 + /@balena/dockerignore/1.0.2: + resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} + dev: false + /@cdktf/cli-core/0.19.2_react@17.0.2: resolution: {integrity: sha512-kjgEUhrHx3kUPfL7KsTo6GrurVUPT77FmOUf7wWXt7ajNE5zCPvx/HKGmQruzt0n6eLZp1aKT+r/D6YRfXcIGA==} dependencies: @@ -3515,7 +3532,7 @@ packages: '@effect/schema': ^0.64.18 effect: ^2.4.17 dependencies: - '@effect/platform': 0.48.24_dyvpp6bxxcuou3trhs4x4ygr5y + '@effect/platform': 0.48.24_aixcdyfeuz2zct7jthaihye4ri '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye @@ -3531,7 +3548,7 @@ packages: '@effect/platform': ^0.48.29 effect: ^2.4.19 dependencies: - '@effect/platform': 0.48.24_dyvpp6bxxcuou3trhs4x4ygr5y + '@effect/platform': 0.48.24_aixcdyfeuz2zct7jthaihye4ri '@parcel/watcher': 2.4.1 effect: 2.4.17 multipasta: 0.2.2 @@ -3543,18 +3560,18 @@ packages: '@effect/platform': ^0.48.24 effect: ^2.4.17 dependencies: - '@effect/platform': 0.48.24_dyvpp6bxxcuou3trhs4x4ygr5y + '@effect/platform': 0.48.24_aixcdyfeuz2zct7jthaihye4ri '@effect/platform-node-shared': 0.3.29_cahjalgelcnk6vcj6x2oc46m3a effect: 2.4.17 mime: 3.0.0 undici: 6.19.2 - ws: 8.18.0 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - utf-8-validate dev: false - /@effect/platform/0.48.24_dyvpp6bxxcuou3trhs4x4ygr5y: + /@effect/platform/0.48.24_aixcdyfeuz2zct7jthaihye4ri: resolution: {integrity: sha512-3XQSYTNnaWZfhomBbwYlSlb0iVVwArN5ZZzJYRkm3gTDKjzhnlVD3oWbfvjeCdZ5OYCY5AAjjG/OEK8/EY7UXg==} peerDependencies: '@effect/schema': ^0.64.18 @@ -3563,7 +3580,7 @@ packages: '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye effect: 2.4.17 find-my-way-ts: 0.1.4 - isomorphic-ws: 5.0.0_ws@8.12.0 + isomorphic-ws: 5.0.0_ws@8.17.1 multipasta: 0.2.2 path-browserify: 1.0.1 transitivePeerDependencies: @@ -5524,7 +5541,10 @@ packages: peerDependencies: constructs: ^10.0.25 dependencies: + archiver: 5.3.2 constructs: 10.3.0 + json-stable-stringify: 1.1.1 + semver: 7.6.2 bundledDependencies: - archiver - json-stable-stringify @@ -6417,7 +6437,7 @@ packages: dependencies: semver: 7.6.2 shelljs: 0.8.5 - typescript: 5.6.0-dev.20240705 + typescript: 5.6.0-dev.20240725 /duration/0.2.2: resolution: {integrity: sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==} @@ -8325,12 +8345,12 @@ packages: ws: 7.5.10 dev: true - /isomorphic-ws/5.0.0_ws@8.12.0: + /isomorphic-ws/5.0.0_ws@8.17.1: resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} peerDependencies: ws: '*' dependencies: - ws: 8.12.0 + ws: 8.17.1 dev: false /istanbul-lib-coverage/3.2.2: @@ -8600,6 +8620,15 @@ packages: /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + /json-stable-stringify/1.1.1: + resolution: {integrity: sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + isarray: 2.0.5 + jsonify: 0.0.1 + object-keys: 1.1.1 + /json-stringify-safe/5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true @@ -8628,6 +8657,13 @@ packages: optionalDependencies: graceful-fs: 4.2.11 + /jsonify/0.0.1: + resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} + + /jsonschema/1.4.1: + resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} + dev: false + /jsonwebtoken/8.5.1: resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} engines: {node: '>=4', npm: '>=1.4.28'} @@ -11561,8 +11597,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript/5.6.0-dev.20240705: - resolution: {integrity: sha512-Z1GBiSYZqdb2B4kkFvX6sDIFZzCGD7+RtHI2/ci9IIZA1CPS6qzbiB/D2RmPupSCXpQ8FRqax1RU0tlD/n70oA==} + /typescript/5.6.0-dev.20240725: + resolution: {integrity: sha512-kgUK4mJogTfm3+NjdYSb7LIerXpAG8lyYSdPHdfGPaJyBRhMJARPENf0TeUxhEOrGRuxHTrIPKdrSOQX5xTsuw==} engines: {node: '>=14.17'} hasBin: true @@ -11865,21 +11901,8 @@ packages: utf-8-validate: optional: true - /ws/8.12.0: - resolution: {integrity: sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false - - /ws/8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + /ws/8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 diff --git a/packages/application-tester/package.json b/packages/application-tester/package.json index 0485249fe..61a3e5a71 100644 --- a/packages/application-tester/package.json +++ b/packages/application-tester/package.json @@ -42,7 +42,7 @@ "jsonwebtoken": "9.0.1", "subscriptions-transport-ws": "0.11.0", "tslib": "^2.4.0", - "ws": "8.12.0", + "ws": "8.17.1", "@types/sinon": "10.0.0", "sinon": "9.2.3", "@effect-ts/core": "^0.60.4" diff --git a/packages/framework-core/package.json b/packages/framework-core/package.json index eb17cfc35..5c13b6c3c 100644 --- a/packages/framework-core/package.json +++ b/packages/framework-core/package.json @@ -58,7 +58,7 @@ "@effect/typeclass": "0.23.17", "@effect/printer-ansi": "0.32.26", "@effect/platform-node": "0.45.26", - "ws": "8.12.0" + "ws": "8.17.1" }, "devDependencies": { "@boostercloud/metadata-booster": "workspace:^2.13.0", diff --git a/packages/framework-integration-tests/package.json b/packages/framework-integration-tests/package.json index d77fe9eef..79c9d3108 100644 --- a/packages/framework-integration-tests/package.json +++ b/packages/framework-integration-tests/package.json @@ -30,7 +30,7 @@ "@effect/printer-ansi": "0.32.26", "@effect/platform-node": "0.45.26", "fast-check": "^3.13.2", - "ws": "8.12.0" + "ws": "8.17.1" }, "devDependencies": { "@boostercloud/eslint-config": "workspace:^2.13.0", diff --git a/packages/framework-provider-local/package.json b/packages/framework-provider-local/package.json index 215ff32fc..487863507 100644 --- a/packages/framework-provider-local/package.json +++ b/packages/framework-provider-local/package.json @@ -28,7 +28,7 @@ "@seald-io/nedb": "4.0.2", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", - "ws": "8.12.0" + "ws": "8.17.1" }, "scripts": { "format": "prettier --write --ext '.js,.ts' **/*.ts **/*/*.ts", diff --git a/packages/framework-types/package.json b/packages/framework-types/package.json index 45f8494ff..d1328eb55 100644 --- a/packages/framework-types/package.json +++ b/packages/framework-types/package.json @@ -51,7 +51,7 @@ "@effect/schema": "0.64.18", "@effect/typeclass": "0.23.17", "web-streams-polyfill": "~3.3.2", - "ws": "8.12.0" + "ws": "8.17.1" }, "devDependencies": { "@boostercloud/eslint-config": "workspace:^2.13.0", From 37345cb11a8754a1c0d31752b8c910e06eb0130d Mon Sep 17 00:00:00 2001 From: GITHUBACTION Date: Fri, 26 Jul 2024 09:36:18 +0000 Subject: [PATCH 06/47] Bump versions [skip ci] --- .../ws_version_bump_2024-07-25-19-50.json | 10 ------- common/config/rush/version-policies.json | 2 +- packages/application-tester/package.json | 6 ++-- packages/cli/package.json | 10 +++---- .../framework-common-helpers/package.json | 6 ++-- packages/framework-core/CHANGELOG.json | 28 +++++++++++++++++++ packages/framework-core/CHANGELOG.md | 9 +++++- packages/framework-core/package.json | 10 +++---- .../framework-integration-tests/package.json | 28 +++++++++---------- .../package.json | 10 +++---- packages/framework-provider-aws/package.json | 8 +++--- .../package.json | 12 ++++---- .../framework-provider-azure/package.json | 8 +++--- .../package.json | 10 +++---- .../framework-provider-local/package.json | 8 +++--- packages/framework-types/package.json | 6 ++-- packages/metadata-booster/package.json | 4 +-- tools/eslint-config/package.json | 2 +- 18 files changed, 101 insertions(+), 76 deletions(-) delete mode 100644 common/changes/@boostercloud/framework-core/ws_version_bump_2024-07-25-19-50.json diff --git a/common/changes/@boostercloud/framework-core/ws_version_bump_2024-07-25-19-50.json b/common/changes/@boostercloud/framework-core/ws_version_bump_2024-07-25-19-50.json deleted file mode 100644 index 55b002408..000000000 --- a/common/changes/@boostercloud/framework-core/ws_version_bump_2024-07-25-19-50.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@boostercloud/framework-core", - "comment": "Bump ws version (fixes CVE-2024-37890)", - "type": "patch" - } - ], - "packageName": "@boostercloud/framework-core" -} \ No newline at end of file diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 59d28c106..8dce28259 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -103,6 +103,6 @@ "definitionName": "lockStepVersion", "policyName": "booster", "mainProject": "@boostercloud/framework-core", - "version": "2.13.0" + "version": "2.13.1" } ] diff --git a/packages/application-tester/package.json b/packages/application-tester/package.json index 61a3e5a71..8f071ad9c 100644 --- a/packages/application-tester/package.json +++ b/packages/application-tester/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/application-tester", - "version": "2.13.0", + "version": "2.13.1", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "application-tester" @@ -36,7 +36,7 @@ }, "dependencies": { "@apollo/client": "3.7.13", - "@boostercloud/framework-types": "workspace:^2.13.0", + "@boostercloud/framework-types": "workspace:^2.13.1", "cross-fetch": "3.1.5", "graphql": "^16.6.0", "jsonwebtoken": "9.0.1", @@ -48,7 +48,7 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.0", + "@boostercloud/eslint-config": "workspace:^2.13.1", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", "eslint": "^8.23.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index e8fa5dbdd..630ce91ab 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/cli", "description": "CLI of the Booster Framework, the next level of abstraction for cloud-native applications", - "version": "2.13.0", + "version": "2.13.1", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -12,8 +12,8 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-core": "workspace:^2.13.0", - "@boostercloud/framework-types": "workspace:^2.13.0", + "@boostercloud/framework-core": "workspace:^2.13.1", + "@boostercloud/framework-types": "workspace:^2.13.1", "@oclif/core": "3.15.0", "@oclif/plugin-help": "^5", "chalk": "^2.4.2", @@ -30,8 +30,8 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.0", - "@boostercloud/application-tester": "workspace:^2.13.0", + "@boostercloud/eslint-config": "workspace:^2.13.1", + "@boostercloud/application-tester": "workspace:^2.13.1", "@oclif/test": "^3.0.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", diff --git a/packages/framework-common-helpers/package.json b/packages/framework-common-helpers/package.json index 8a2dce401..de63120d3 100644 --- a/packages/framework-common-helpers/package.json +++ b/packages/framework-common-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-common-helpers", - "version": "2.13.0", + "version": "2.13.1", "description": "Contains Booster common helpers used by the core and provider packages", "keywords": [ "framework-common-helpers" @@ -36,14 +36,14 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-types": "workspace:^2.13.0", + "@boostercloud/framework-types": "workspace:^2.13.1", "child-process-promise": "^2.2.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "class-transformer": "~0.5.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.0", + "@boostercloud/eslint-config": "workspace:^2.13.1", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/child-process-promise": "^2.2.1", diff --git a/packages/framework-core/CHANGELOG.json b/packages/framework-core/CHANGELOG.json index f50804a1e..bb5359c9e 100644 --- a/packages/framework-core/CHANGELOG.json +++ b/packages/framework-core/CHANGELOG.json @@ -1,6 +1,34 @@ { "name": "@boostercloud/framework-core", "entries": [ + { + "version": "2.13.1", + "tag": "@boostercloud/framework-core_v2.13.1", + "date": "Fri, 26 Jul 2024 09:36:18 GMT", + "comments": { + "patch": [ + { + "comment": "Bump ws version (fixes CVE-2024-37890)", + "author": "Mario Castro Squella ", + "commit": "229be3f7a4326f3abe8bd95841dc771008c169e9" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@boostercloud/framework-common-helpers\" from `^2.13.0` to `^2.13.1`" + }, + { + "comment": "Updating dependency \"@boostercloud/framework-types\" from `^2.13.0` to `^2.13.1`" + }, + { + "comment": "Updating dependency \"@boostercloud/metadata-booster\" from `^2.13.0` to `^2.13.1`" + }, + { + "comment": "Updating dependency \"@boostercloud/eslint-config\" from `^2.13.0` to `^2.13.1`" + } + ] + } + }, { "version": "2.13.0", "tag": "@boostercloud/framework-core_v2.13.0", diff --git a/packages/framework-core/CHANGELOG.md b/packages/framework-core/CHANGELOG.md index 5aaaaabf5..5a1bd2ee6 100644 --- a/packages/framework-core/CHANGELOG.md +++ b/packages/framework-core/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @boostercloud/framework-core -This log was last generated on Fri, 19 Jul 2024 16:36:39 GMT and should not be manually modified. +This log was last generated on Fri, 26 Jul 2024 09:36:18 GMT and should not be manually modified. + +## 2.13.1 +Fri, 26 Jul 2024 09:36:18 GMT + +### Patches + +- Bump ws version (fixes CVE-2024-37890) ## 2.13.0 Fri, 19 Jul 2024 16:36:39 GMT diff --git a/packages/framework-core/package.json b/packages/framework-core/package.json index 5c13b6c3c..a7283e28d 100644 --- a/packages/framework-core/package.json +++ b/packages/framework-core/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-core", - "version": "2.13.0", + "version": "2.13.1", "description": "Library for your Booster apps", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", @@ -37,8 +37,8 @@ "graphql": "^16.6.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.13.0", - "@boostercloud/framework-types": "workspace:^2.13.0", + "@boostercloud/framework-common-helpers": "workspace:^2.13.1", + "@boostercloud/framework-types": "workspace:^2.13.1", "fp-ts": "^2.11.0", "graphql-scalars": "^1.17.0", "graphql-subscriptions": "2.0.0", @@ -61,8 +61,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/metadata-booster": "workspace:^2.13.0", - "@boostercloud/eslint-config": "workspace:^2.13.0", + "@boostercloud/metadata-booster": "workspace:^2.13.1", + "@boostercloud/eslint-config": "workspace:^2.13.1", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-integration-tests/package.json b/packages/framework-integration-tests/package.json index 79c9d3108..924251740 100644 --- a/packages/framework-integration-tests/package.json +++ b/packages/framework-integration-tests/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-integration-tests", "description": "Example project for Booster", - "version": "2.13.0", + "version": "2.13.1", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -9,12 +9,12 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.13.0", - "@boostercloud/framework-core": "workspace:^2.13.0", - "@boostercloud/framework-provider-aws": "workspace:^2.13.0", - "@boostercloud/framework-provider-azure": "workspace:^2.13.0", - "@boostercloud/framework-provider-local": "workspace:^2.13.0", - "@boostercloud/framework-types": "workspace:^2.13.0", + "@boostercloud/framework-common-helpers": "workspace:^2.13.1", + "@boostercloud/framework-core": "workspace:^2.13.1", + "@boostercloud/framework-provider-aws": "workspace:^2.13.1", + "@boostercloud/framework-provider-azure": "workspace:^2.13.1", + "@boostercloud/framework-provider-local": "workspace:^2.13.1", + "@boostercloud/framework-types": "workspace:^2.13.1", "aws-sdk": "2.853.0", "graphql": "^16.6.0", "tslib": "^2.4.0", @@ -33,13 +33,13 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.0", - "@boostercloud/application-tester": "workspace:^2.13.0", - "@boostercloud/cli": "workspace:^2.13.0", - "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.13.0", - "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.13.0", - "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.13.0", - "@boostercloud/metadata-booster": "workspace:^2.13.0", + "@boostercloud/eslint-config": "workspace:^2.13.1", + "@boostercloud/application-tester": "workspace:^2.13.1", + "@boostercloud/cli": "workspace:^2.13.1", + "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.13.1", + "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.13.1", + "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.13.1", + "@boostercloud/metadata-booster": "workspace:^2.13.1", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-aws-infrastructure/package.json b/packages/framework-provider-aws-infrastructure/package.json index f43c04073..a803d3a56 100644 --- a/packages/framework-provider-aws-infrastructure/package.json +++ b/packages/framework-provider-aws-infrastructure/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws-infrastructure", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.13.0", + "version": "2.13.1", "description": "Handle the Booster deployment process to AWS", "keywords": [ "framework-provider-aws-infrastructure" @@ -41,9 +41,9 @@ "@aws-cdk/aws-s3-deployment": "^1.170.0", "@aws-cdk/core": "^1.170.0", "@aws-cdk/cx-api": "^1.170.0", - "@boostercloud/framework-common-helpers": "workspace:^2.13.0", - "@boostercloud/framework-provider-aws": "workspace:^2.13.0", - "@boostercloud/framework-types": "workspace:^2.13.0", + "@boostercloud/framework-common-helpers": "workspace:^2.13.1", + "@boostercloud/framework-provider-aws": "workspace:^2.13.1", + "@boostercloud/framework-types": "workspace:^2.13.1", "constructs": "^3.3.69", "aws-cdk": "^1.170.0", "aws-sdk": "2.853.0", @@ -69,7 +69,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.0", + "@boostercloud/eslint-config": "workspace:^2.13.1", "@types/aws-lambda": "8.10.48", "@types/aws-sdk": "2.7.0", "@types/chai": "4.2.18", diff --git a/packages/framework-provider-aws/package.json b/packages/framework-provider-aws/package.json index c59fc84d6..d3f5c96ec 100644 --- a/packages/framework-provider-aws/package.json +++ b/packages/framework-provider-aws/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.13.0", + "version": "2.13.1", "description": "Handle Booster's integration with AWS", "keywords": [ "framework-provider-aws" @@ -24,8 +24,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.13.0", - "@boostercloud/framework-types": "workspace:^2.13.0", + "@boostercloud/framework-common-helpers": "workspace:^2.13.1", + "@boostercloud/framework-types": "workspace:^2.13.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4" }, @@ -43,7 +43,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.0", + "@boostercloud/eslint-config": "workspace:^2.13.1", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-azure-infrastructure/package.json b/packages/framework-provider-azure-infrastructure/package.json index 6f4f89fd0..54292160a 100644 --- a/packages/framework-provider-azure-infrastructure/package.json +++ b/packages/framework-provider-azure-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure-infrastructure", - "version": "2.13.0", + "version": "2.13.1", "description": "Handle the Booster deployment process to Azure", "keywords": [ "framework-provider-azure-infrastructure" @@ -25,10 +25,10 @@ "dependencies": { "@azure/arm-appservice": "^13.0.0", "@azure/cosmos": "^4.0.0", - "@boostercloud/framework-common-helpers": "workspace:^2.13.0", - "@boostercloud/framework-core": "workspace:^2.13.0", - "@boostercloud/framework-provider-azure": "workspace:^2.13.0", - "@boostercloud/framework-types": "workspace:^2.13.0", + "@boostercloud/framework-common-helpers": "workspace:^2.13.1", + "@boostercloud/framework-core": "workspace:^2.13.1", + "@boostercloud/framework-provider-azure": "workspace:^2.13.1", + "@boostercloud/framework-types": "workspace:^2.13.1", "@cdktf/provider-azurerm": "11.2.0", "@cdktf/provider-time": "9.0.2", "@types/archiver": "5.1.0", @@ -67,7 +67,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.0", + "@boostercloud/eslint-config": "workspace:^2.13.1", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-azure/package.json b/packages/framework-provider-azure/package.json index ef1397d60..4f0a622aa 100644 --- a/packages/framework-provider-azure/package.json +++ b/packages/framework-provider-azure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure", - "version": "2.13.0", + "version": "2.13.1", "description": "Handle Booster's integration with Azure", "keywords": [ "framework-provider-azure" @@ -27,14 +27,14 @@ "@azure/functions": "^1.2.2", "@azure/identity": "~2.1.0", "@azure/event-hubs": "5.11.1", - "@boostercloud/framework-common-helpers": "workspace:^2.13.0", - "@boostercloud/framework-types": "workspace:^2.13.0", + "@boostercloud/framework-common-helpers": "workspace:^2.13.1", + "@boostercloud/framework-types": "workspace:^2.13.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "@azure/web-pubsub": "~1.1.0" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.0", + "@boostercloud/eslint-config": "workspace:^2.13.1", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-local-infrastructure/package.json b/packages/framework-provider-local-infrastructure/package.json index 28ffe3340..f5a934749 100644 --- a/packages/framework-provider-local-infrastructure/package.json +++ b/packages/framework-provider-local-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local-infrastructure", - "version": "2.13.0", + "version": "2.13.1", "description": "Handle the Booster running process of the local runtime", "keywords": [ "framework-provider-local-infrastructure" @@ -23,9 +23,9 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.13.0", - "@boostercloud/framework-provider-local": "workspace:^2.13.0", - "@boostercloud/framework-types": "workspace:^2.13.0", + "@boostercloud/framework-common-helpers": "workspace:^2.13.1", + "@boostercloud/framework-provider-local": "workspace:^2.13.1", + "@boostercloud/framework-types": "workspace:^2.13.1", "cors": "2.8.5", "express": "^4.19.2", "node-schedule": "^2.1.0", @@ -46,7 +46,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.0", + "@boostercloud/eslint-config": "workspace:^2.13.1", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/cors": "^2.8.12", diff --git a/packages/framework-provider-local/package.json b/packages/framework-provider-local/package.json index 487863507..4a6c63ae1 100644 --- a/packages/framework-provider-local/package.json +++ b/packages/framework-provider-local/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local", - "version": "2.13.0", + "version": "2.13.1", "description": "Debug your Booster projects locally", "keywords": [ "framework-provider-local" @@ -23,8 +23,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.13.0", - "@boostercloud/framework-types": "workspace:^2.13.0", + "@boostercloud/framework-common-helpers": "workspace:^2.13.1", + "@boostercloud/framework-types": "workspace:^2.13.1", "@seald-io/nedb": "4.0.2", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", @@ -44,7 +44,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.0", + "@boostercloud/eslint-config": "workspace:^2.13.1", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/express": "^4.17.21", diff --git a/packages/framework-types/package.json b/packages/framework-types/package.json index d1328eb55..2072d74db 100644 --- a/packages/framework-types/package.json +++ b/packages/framework-types/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-types", - "version": "2.13.0", + "version": "2.13.1", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "framework-types" @@ -54,8 +54,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.0", - "@boostercloud/metadata-booster": "workspace:^2.13.0", + "@boostercloud/eslint-config": "workspace:^2.13.1", + "@boostercloud/metadata-booster": "workspace:^2.13.1", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/mocha": "10.0.1", diff --git a/packages/metadata-booster/package.json b/packages/metadata-booster/package.json index 483749d7b..580102d4d 100644 --- a/packages/metadata-booster/package.json +++ b/packages/metadata-booster/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/metadata-booster", - "version": "2.13.0", + "version": "2.13.1", "description": "Emits detailed metadata of your types. You can then get it in runtime to deal with schema-aware operation, like defining GraphQL schemas, ORM operations, etc.", "repository": "https://github.com/boostercloud/booster.git", "keywords": [ @@ -38,7 +38,7 @@ "eslint-config-prettier": "8.3.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "3.4.0", - "@boostercloud/eslint-config": "workspace:^2.13.0", + "@boostercloud/eslint-config": "workspace:^2.13.1", "@types/node": "^18.18.2", "ts-node": "^10.9.1", "ts-patch": "3.1.2", diff --git a/tools/eslint-config/package.json b/tools/eslint-config/package.json index c819bd2ae..431ca63f3 100644 --- a/tools/eslint-config/package.json +++ b/tools/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/eslint-config", - "version": "2.13.0", + "version": "2.13.1", "description": "Shared eslint rules", "main": "index.js", "publishConfig": { From 2abba631c47a71d6b886f752ade48c0efe57accf Mon Sep 17 00:00:00 2001 From: gonzalojaubert <111118818+gonzalojaubert@users.noreply.github.com> Date: Tue, 30 Jul 2024 17:27:45 +0100 Subject: [PATCH 07/47] Read Models projections by ReadModel query (#1469) * WIP - Read Models projections by ReadModel query * refactor * fix retries * fix tests * update documentation. minor refactor * Update pnpm-lock.yaml after merge * Add rush change file * Update pnpm-lock after merge * Post-merge updates * Update pnpm-lock after merge * Update pnpm-lock.yaml after merge * Refactor method names in integration test code and docs * Change access modifiers to methods in ReadModelStore and add some comments * Fix prettier formatting --------- Co-authored-by: Castro, Mario --- ...s_by_readmodel_query_2024-04-19-15-13.json | 10 + common/config/rush/pnpm-lock.yaml | 119 +-- .../framework-common-helpers/src/retrier.ts | 4 +- .../src/booster-event-dispatcher.ts | 2 +- .../src/booster-read-models-reader.ts | 14 + packages/framework-core/src/booster.ts | 24 +- .../framework-core/src/decorators/projects.ts | 55 +- .../src/services/read-model-searcher.ts | 22 + .../src/services/read-model-store.ts | 489 +++++++-- .../test/decorators/event-handler.test.ts | 3 + .../test/services/read-model-store.test.ts | 292 +++-- .../end-to-end/cart.integration.ts | 9 +- .../end-to-end/read-models.integration.ts | 997 +++++++++++++----- .../src/commands/add-car-model.ts | 14 + .../src/commands/add-car-owner.ts | 14 + .../src/commands/add-purchase-offer.ts | 14 + .../src/commands/buy-car.ts | 18 + .../src/commands/update-car-model-name.ts | 14 + .../src/commands/update-car-owner-name.ts | 14 + .../src/entities/car-model.ts | 27 + .../src/entities/car-offers.ts | 17 + .../src/entities/car-owner.ts | 27 + .../src/entities/car-purchase.ts | 19 + .../src/events/car-model-added.ts | 11 + .../src/events/car-model-name-updated.ts | 11 + .../src/events/car-offer-added.ts | 11 + .../src/events/car-owner-added.ts | 11 + .../src/events/car-owner-name-updated.ts | 11 + .../src/events/car-purchased.ts | 13 + .../src/read-models/car-model-read-model.ts | 15 + .../src/read-models/car-offer-read-model.ts | 15 + .../src/read-models/car-owner-read-model.ts | 15 + .../read-models/car-purchases-read-model.ts | 110 ++ .../src/helpers/query-helper.ts | 2 +- .../src/concepts/projection-metadata.ts | 11 +- packages/framework-types/src/config.ts | 3 +- .../docs/03_architecture/06_read-model.mdx | 36 + 37 files changed, 1844 insertions(+), 649 deletions(-) create mode 100644 common/changes/@boostercloud/framework-core/read_models_projections_by_readmodel_query_2024-04-19-15-13.json create mode 100644 packages/framework-core/src/services/read-model-searcher.ts create mode 100644 packages/framework-integration-tests/src/commands/add-car-model.ts create mode 100644 packages/framework-integration-tests/src/commands/add-car-owner.ts create mode 100644 packages/framework-integration-tests/src/commands/add-purchase-offer.ts create mode 100644 packages/framework-integration-tests/src/commands/buy-car.ts create mode 100644 packages/framework-integration-tests/src/commands/update-car-model-name.ts create mode 100644 packages/framework-integration-tests/src/commands/update-car-owner-name.ts create mode 100644 packages/framework-integration-tests/src/entities/car-model.ts create mode 100644 packages/framework-integration-tests/src/entities/car-offers.ts create mode 100644 packages/framework-integration-tests/src/entities/car-owner.ts create mode 100644 packages/framework-integration-tests/src/entities/car-purchase.ts create mode 100644 packages/framework-integration-tests/src/events/car-model-added.ts create mode 100644 packages/framework-integration-tests/src/events/car-model-name-updated.ts create mode 100644 packages/framework-integration-tests/src/events/car-offer-added.ts create mode 100644 packages/framework-integration-tests/src/events/car-owner-added.ts create mode 100644 packages/framework-integration-tests/src/events/car-owner-name-updated.ts create mode 100644 packages/framework-integration-tests/src/events/car-purchased.ts create mode 100644 packages/framework-integration-tests/src/read-models/car-model-read-model.ts create mode 100644 packages/framework-integration-tests/src/read-models/car-offer-read-model.ts create mode 100644 packages/framework-integration-tests/src/read-models/car-owner-read-model.ts create mode 100644 packages/framework-integration-tests/src/read-models/car-purchases-read-model.ts diff --git a/common/changes/@boostercloud/framework-core/read_models_projections_by_readmodel_query_2024-04-19-15-13.json b/common/changes/@boostercloud/framework-core/read_models_projections_by_readmodel_query_2024-04-19-15-13.json new file mode 100644 index 000000000..29a1bccb4 --- /dev/null +++ b/common/changes/@boostercloud/framework-core/read_models_projections_by_readmodel_query_2024-04-19-15-13.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@boostercloud/framework-core", + "comment": "Read Models projections by ReadModel query", + "type": "minor" + } + ], + "packageName": "@boostercloud/framework-core" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index d066dcb0d..ae65f491c 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,8 +8,8 @@ importers: ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^2.13.0 - '@boostercloud/framework-types': workspace:^2.13.0 + '@boostercloud/eslint-config': workspace:^2.13.1 + '@boostercloud/framework-types': workspace:^2.13.1 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.18.2 @@ -70,10 +70,10 @@ importers: ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^2.13.0 - '@boostercloud/eslint-config': workspace:^2.13.0 - '@boostercloud/framework-core': workspace:^2.13.0 - '@boostercloud/framework-types': workspace:^2.13.0 + '@boostercloud/application-tester': workspace:^2.13.1 + '@boostercloud/eslint-config': workspace:^2.13.1 + '@boostercloud/framework-core': workspace:^2.13.1 + '@boostercloud/framework-types': workspace:^2.13.1 '@effect-ts/core': ^0.60.4 '@oclif/core': 3.15.0 '@oclif/plugin-help': ^5 @@ -183,8 +183,8 @@ importers: ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^2.13.0 - '@boostercloud/framework-types': workspace:^2.13.0 + '@boostercloud/eslint-config': workspace:^2.13.1 + '@boostercloud/framework-types': workspace:^2.13.1 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -258,10 +258,10 @@ importers: ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^2.13.0 - '@boostercloud/framework-common-helpers': workspace:^2.13.0 - '@boostercloud/framework-types': workspace:^2.13.0 - '@boostercloud/metadata-booster': workspace:^2.13.0 + '@boostercloud/eslint-config': workspace:^2.13.1 + '@boostercloud/framework-common-helpers': workspace:^2.13.1 + '@boostercloud/framework-types': workspace:^2.13.1 + '@boostercloud/metadata-booster': workspace:^2.13.1 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 '@effect/platform-node': 0.45.26 @@ -378,19 +378,19 @@ importers: ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^2.13.0 - '@boostercloud/cli': workspace:^2.13.0 - '@boostercloud/eslint-config': workspace:^2.13.0 - '@boostercloud/framework-common-helpers': workspace:^2.13.0 - '@boostercloud/framework-core': workspace:^2.13.0 - '@boostercloud/framework-provider-aws': workspace:^2.13.0 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.13.0 - '@boostercloud/framework-provider-azure': workspace:^2.13.0 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.13.0 - '@boostercloud/framework-provider-local': workspace:^2.13.0 - '@boostercloud/framework-provider-local-infrastructure': workspace:^2.13.0 - '@boostercloud/framework-types': workspace:^2.13.0 - '@boostercloud/metadata-booster': workspace:^2.13.0 + '@boostercloud/application-tester': workspace:^2.13.1 + '@boostercloud/cli': workspace:^2.13.1 + '@boostercloud/eslint-config': workspace:^2.13.1 + '@boostercloud/framework-common-helpers': workspace:^2.13.1 + '@boostercloud/framework-core': workspace:^2.13.1 + '@boostercloud/framework-provider-aws': workspace:^2.13.1 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.13.1 + '@boostercloud/framework-provider-azure': workspace:^2.13.1 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.13.1 + '@boostercloud/framework-provider-local': workspace:^2.13.1 + '@boostercloud/framework-provider-local-infrastructure': workspace:^2.13.1 + '@boostercloud/framework-types': workspace:^2.13.1 + '@boostercloud/metadata-booster': workspace:^2.13.1 '@effect-ts/core': ^0.60.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 @@ -536,9 +536,9 @@ importers: ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^2.13.0 - '@boostercloud/framework-common-helpers': workspace:^2.13.0 - '@boostercloud/framework-types': workspace:^2.13.0 + '@boostercloud/eslint-config': workspace:^2.13.1 + '@boostercloud/framework-common-helpers': workspace:^2.13.1 + '@boostercloud/framework-types': workspace:^2.13.1 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -632,10 +632,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^2.13.0 - '@boostercloud/framework-common-helpers': workspace:^2.13.0 - '@boostercloud/framework-provider-aws': workspace:^2.13.0 - '@boostercloud/framework-types': workspace:^2.13.0 + '@boostercloud/eslint-config': workspace:^2.13.1 + '@boostercloud/framework-common-helpers': workspace:^2.13.1 + '@boostercloud/framework-provider-aws': workspace:^2.13.1 + '@boostercloud/framework-types': workspace:^2.13.1 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -749,9 +749,9 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^2.13.0 - '@boostercloud/framework-common-helpers': workspace:^2.13.0 - '@boostercloud/framework-types': workspace:^2.13.0 + '@boostercloud/eslint-config': workspace:^2.13.1 + '@boostercloud/framework-common-helpers': workspace:^2.13.1 + '@boostercloud/framework-types': workspace:^2.13.1 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -823,11 +823,11 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^2.13.0 - '@boostercloud/framework-common-helpers': workspace:^2.13.0 - '@boostercloud/framework-core': workspace:^2.13.0 - '@boostercloud/framework-provider-azure': workspace:^2.13.0 - '@boostercloud/framework-types': workspace:^2.13.0 + '@boostercloud/eslint-config': workspace:^2.13.1 + '@boostercloud/framework-common-helpers': workspace:^2.13.1 + '@boostercloud/framework-core': workspace:^2.13.1 + '@boostercloud/framework-provider-azure': workspace:^2.13.1 + '@boostercloud/framework-types': workspace:^2.13.1 '@cdktf/provider-azurerm': 11.2.0 '@cdktf/provider-time': 9.0.2 '@effect-ts/core': ^0.60.4 @@ -934,9 +934,9 @@ importers: ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^2.13.0 - '@boostercloud/framework-common-helpers': workspace:^2.13.0 - '@boostercloud/framework-types': workspace:^2.13.0 + '@boostercloud/eslint-config': workspace:^2.13.1 + '@boostercloud/framework-common-helpers': workspace:^2.13.1 + '@boostercloud/framework-types': workspace:^2.13.1 '@effect-ts/core': ^0.60.4 '@seald-io/nedb': 4.0.2 '@types/chai': 4.2.18 @@ -1013,10 +1013,10 @@ importers: ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^2.13.0 - '@boostercloud/framework-common-helpers': workspace:^2.13.0 - '@boostercloud/framework-provider-local': workspace:^2.13.0 - '@boostercloud/framework-types': workspace:^2.13.0 + '@boostercloud/eslint-config': workspace:^2.13.1 + '@boostercloud/framework-common-helpers': workspace:^2.13.1 + '@boostercloud/framework-provider-local': workspace:^2.13.1 + '@boostercloud/framework-types': workspace:^2.13.1 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1096,8 +1096,8 @@ importers: ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^2.13.0 - '@boostercloud/metadata-booster': workspace:^2.13.0 + '@boostercloud/eslint-config': workspace:^2.13.1 + '@boostercloud/metadata-booster': workspace:^2.13.1 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@effect/cli': 0.35.26 @@ -1181,7 +1181,7 @@ importers: ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^2.13.0 + '@boostercloud/eslint-config': workspace:^2.13.1 '@effect-ts/core': ^0.60.4 '@types/node': ^18.18.2 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -1660,7 +1660,7 @@ packages: '@aws-cdk/aws-codecommit': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-codestarnotifications': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu @@ -1875,7 +1875,7 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/assets': 1.204.0_uszt2j4mor3yrbm3tre3az4zvy - '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam @@ -1885,7 +1885,7 @@ packages: - '@aws-cdk/aws-events' dev: false - /@aws-cdk/aws-ecr/1.204.0_bi2u42js5xhxqcsg5gqefde4xi: + /@aws-cdk/aws-ecr/1.204.0_4bnk2gpayjo75fecjckge2dkni: resolution: {integrity: sha512-oCts9e+ackWoFHeyn/3oKm3X1lSizleWNNXHp5WGM38lpNVrtCLMKSShu5iXJBhqRH2Mz1AcA4fDMWhe8DvJFA==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -1901,11 +1901,8 @@ packages: dependencies: '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu - '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam constructs: 3.4.344 - transitivePeerDependencies: - - '@aws-cdk/cx-api' dev: false /@aws-cdk/aws-ecs/1.204.0_iu2vquo67t63xu6vdymsg3ufny: @@ -1931,7 +1928,7 @@ packages: '@aws-cdk/aws-certificatemanager': 1.204.0_xtqk4litqxecxsqs3sd6ajo2ja '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli @@ -2277,7 +2274,7 @@ packages: '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-codeguruprofiler': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-efs': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm @@ -6437,7 +6434,7 @@ packages: dependencies: semver: 7.6.2 shelljs: 0.8.5 - typescript: 5.6.0-dev.20240725 + typescript: 5.6.0-dev.20240726 /duration/0.2.2: resolution: {integrity: sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==} @@ -11597,8 +11594,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript/5.6.0-dev.20240725: - resolution: {integrity: sha512-kgUK4mJogTfm3+NjdYSb7LIerXpAG8lyYSdPHdfGPaJyBRhMJARPENf0TeUxhEOrGRuxHTrIPKdrSOQX5xTsuw==} + /typescript/5.6.0-dev.20240726: + resolution: {integrity: sha512-/KHI7WR6NxpuU91TJcSU18tTIIzpDzu5SWQBCt2yS09dGF6Hoys85rdggtSXlHybfTZ5ZT9B2sU7DwNaoW04Pw==} engines: {node: '>=14.17'} hasBin: true diff --git a/packages/framework-common-helpers/src/retrier.ts b/packages/framework-common-helpers/src/retrier.ts index f3ae7fece..f345b4aef 100644 --- a/packages/framework-common-helpers/src/retrier.ts +++ b/packages/framework-common-helpers/src/retrier.ts @@ -10,7 +10,7 @@ import { Class, Logger } from '@boostercloud/framework-types' * @returns The result of the first successful retry. */ export async function retryIfError( - logicToRetry: () => Promise, + logicToRetry: (tryNumber?: number) => Promise, errorClassThatRetries: Class, logger?: Logger, maxRetries = 1000 @@ -20,7 +20,7 @@ export async function retryIfError( for (tryNumber = 1; tryNumber <= maxRetries; tryNumber++) { try { logger?.debug(`[retryIfError] Try number ${tryNumber}`) - const result = await logicToRetry() + const result = await logicToRetry(tryNumber) logger?.debug(`[retryIfError] Succeeded after ${tryNumber} retries`) return result } catch (e) { diff --git a/packages/framework-core/src/booster-event-dispatcher.ts b/packages/framework-core/src/booster-event-dispatcher.ts index 7db977dda..4f9dd7709 100644 --- a/packages/framework-core/src/booster-event-dispatcher.ts +++ b/packages/framework-core/src/booster-event-dispatcher.ts @@ -1,8 +1,8 @@ import { BoosterConfig, TraceActionTypes } from '@boostercloud/framework-types' import { EventStore } from './services/event-store' import { RawEventsParser } from './services/raw-events-parser' -import { ReadModelStore } from './services/read-model-store' import { getLogger } from '@boostercloud/framework-common-helpers' +import { ReadModelStore } from './services/read-model-store' import { Trace } from './instrumentation' import { BoosterEventProcessor } from './booster-event-processor' diff --git a/packages/framework-core/src/booster-read-models-reader.ts b/packages/framework-core/src/booster-read-models-reader.ts index d0ea51fe0..0e9255871 100644 --- a/packages/framework-core/src/booster-read-models-reader.ts +++ b/packages/framework-core/src/booster-read-models-reader.ts @@ -12,9 +12,11 @@ import { ReadModelMetadata, ReadModelRequestEnvelope, ReadOnlyNonEmptyArray, + SequenceKey, SortFor, SubscriptionEnvelope, TraceActionTypes, + UUID, } from '@boostercloud/framework-types' import { createInstance, @@ -130,6 +132,18 @@ export class BoosterReadModelsReader { return this.migrateReadModels(readModels, readModelName) } + public async finderByIdFunction( + readModelClass: AnyClass, + id: UUID, + sequenceKey?: SequenceKey + ): Promise | TReadModel> { + const readModels = await this.config.provider.readModels.fetch(this.config, readModelClass.name, id, sequenceKey) + if (sequenceKey) { + return readModels as ReadOnlyNonEmptyArray + } + return readModels[0] as TReadModel + } + private async migrateReadModels( readModels: Array | ReadModelListResult, readModelName: string diff --git a/packages/framework-core/src/booster.ts b/packages/framework-core/src/booster.ts index 15fe1f26f..a21fa5665 100644 --- a/packages/framework-core/src/booster.ts +++ b/packages/framework-core/src/booster.ts @@ -1,19 +1,14 @@ import { createInstance } from '@boostercloud/framework-common-helpers' import { - AnyClass, BoosterConfig, BoosterConfigTag, Class, EntityInterface, EventSearchParameters, EventSearchResponse, - FinderByKeyFunction, PaginatedEntitiesIdsResult, ReadModelInterface, - ReadOnlyNonEmptyArray, Searcher, - SearcherFunction, - SequenceKey, UUID, } from '@boostercloud/framework-types' import { Importer } from './importer' @@ -24,8 +19,8 @@ import { BoosterDataMigrationStarted } from './core-concepts/data-migration/even import { BoosterDataMigrationFinished } from './core-concepts/data-migration/events/booster-data-migration-finished' import { JwksUriTokenVerifier, JWT_ENV_VARS } from './services/token-verifiers' import { BoosterAuthorizer } from './booster-authorizer' -import { BoosterReadModelsReader } from './booster-read-models-reader' import { BoosterEntityTouched } from './core-concepts/touch-entity/events/booster-entity-touched' +import { readModelSearcher } from './services/read-model-searcher' import { eventSearch } from './booster-event-search' import { Effect, pipe } from 'effect' import { Command } from '@effect/cli' @@ -107,22 +102,7 @@ export class Booster { public static readModel( readModelClass: Class ): Searcher { - const finderByIdFunction: FinderByKeyFunction = async ( - readModelClass: AnyClass, - id: UUID, - sequenceKey?: SequenceKey - ) => { - const readModels = await this.config.provider.readModels.fetch(this.config, readModelClass.name, id, sequenceKey) - if (sequenceKey) { - return readModels as ReadOnlyNonEmptyArray - } - return readModels[0] as TReadModel - } - const boosterReadModelsReader = new BoosterReadModelsReader(this.config) - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const searcherFunction: SearcherFunction = - boosterReadModelsReader.readModelSearch.bind(boosterReadModelsReader) - return new Searcher(readModelClass, searcherFunction, finderByIdFunction) + return readModelSearcher(this.config, readModelClass) } public static async events(request: EventSearchParameters): Promise> { diff --git a/packages/framework-core/src/decorators/projects.ts b/packages/framework-core/src/decorators/projects.ts index 477bacd12..11e5db474 100644 --- a/packages/framework-core/src/decorators/projects.ts +++ b/packages/framework-core/src/decorators/projects.ts @@ -5,36 +5,44 @@ import { ProjectionMetadata, ProjectionResult, ReadModelInterface, + ReadModelJoinKeyFunction, UUID, } from '@boostercloud/framework-types' -type PropType = TObj[TProp] +type PropertyType = TObj[TProp] +type JoinKeyType = + | keyof TEntity + | ReadModelJoinKeyFunction /** * Decorator to register a read model method as a projection * for a specific entity * * @param originEntity The entity that this method will react to + * @param joinKey */ -export function Projects( +export function Projects( originEntity: Class, - joinKey: TJoinKey -): ( - readModelClass: Class, + joinKey: JoinKeyType +): ( + readModelClass: Class, methodName: string, - methodDescriptor: ProjectionMethod> + methodDescriptor: ProjectionMethod> ) => void { return (readModelClass, methodName) => { const projectionMetadata = { - joinKey, + joinKey: joinKey, class: readModelClass, methodName: methodName, - } as ProjectionMetadata + } as ProjectionMetadata registerProjection(originEntity.name, projectionMetadata) } } -function registerProjection(originName: string, projectionMetadata: ProjectionMetadata): void { +function registerProjection( + originName: string, + projectionMetadata: ProjectionMetadata +): void { Booster.configureCurrentEnv((config): void => { const entityProjections = config.projections[originName] || [] if (entityProjections.indexOf(projectionMetadata) < 0) { @@ -45,6 +53,29 @@ function registerProjection(originName: string, projectionMetadata: ProjectionMe }) } -type ProjectionMethod = TPropType extends Array - ? TypedPropertyDescriptor<(_: TEntity, readModelID: UUID, readModel?: TReadModel) => ProjectionResult> - : TypedPropertyDescriptor<(_: TEntity, readModel?: TReadModel) => ProjectionResult> +type ProjectionMethod< + TEntity extends EntityInterface, + TReadModel extends ReadModelInterface, + TJoinKeyType extends JoinKeyType +> = TJoinKeyType extends ReadModelJoinKeyFunction + ? ProjectionMethodWithEntityConditionalReadModelIdAndReadModel + : TJoinKeyType extends keyof TEntity + ? PropertyType extends Array + ? ProjectionMethodWithEntityReadModelIdAndReadModel + : ProjectionMethodWithEntityAndReadModel + : never + +type ProjectionMethodWithEntityAndReadModel = + TypedPropertyDescriptor<(_: TEntity, readModel?: TReadModel) => ProjectionResult> + +type ProjectionMethodWithEntityConditionalReadModelIdAndReadModel< + TEntity extends EntityInterface, + TReadModel extends ReadModelInterface +> = TypedPropertyDescriptor< + (_: TEntity, readModelID: UUID | undefined, readModel?: TReadModel) => ProjectionResult +> + +type ProjectionMethodWithEntityReadModelIdAndReadModel< + TEntity extends EntityInterface, + TReadModel extends ReadModelInterface +> = TypedPropertyDescriptor<(_: TEntity, readModelID: UUID, readModel?: TReadModel) => ProjectionResult> diff --git a/packages/framework-core/src/services/read-model-searcher.ts b/packages/framework-core/src/services/read-model-searcher.ts new file mode 100644 index 000000000..1fae992d5 --- /dev/null +++ b/packages/framework-core/src/services/read-model-searcher.ts @@ -0,0 +1,22 @@ +import { + BoosterConfig, + Class, + FinderByKeyFunction, + ReadModelInterface, + Searcher, + SearcherFunction, +} from '@boostercloud/framework-types' +import { BoosterReadModelsReader } from '../booster-read-models-reader' + +export function readModelSearcher( + config: BoosterConfig, + readModelClass: Class +): Searcher { + const boosterReadModelsReader = new BoosterReadModelsReader(config) + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const searcherFunction: SearcherFunction = + boosterReadModelsReader.readModelSearch.bind(boosterReadModelsReader) + const finderByIdFunction: FinderByKeyFunction = + boosterReadModelsReader.finderByIdFunction.bind(boosterReadModelsReader) + return new Searcher(readModelClass, searcherFunction, finderByIdFunction) +} diff --git a/packages/framework-core/src/services/read-model-store.ts b/packages/framework-core/src/services/read-model-store.ts index d01d2b199..b0edbc39f 100644 --- a/packages/framework-core/src/services/read-model-store.ts +++ b/packages/framework-core/src/services/read-model-store.ts @@ -1,20 +1,25 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { BoosterConfig, - ReadModelInterface, - ProjectionMetadata, - UUID, + BoosterMetadata, EntityInterface, - ReadModelAction, + EntityMetadata, + EntitySnapshotEnvelope, + FilterFor, OptimisticConcurrencyUnexpectedVersionError, - SequenceKey, ProjectionGlobalError, - EntitySnapshotEnvelope, - BoosterMetadata, + ProjectionMetadata, + ProjectionResult, + ReadModelAction, + ReadModelInterface, + ReadModelJoinKeyFunction, + SequenceKey, + UUID, } from '@boostercloud/framework-types' -import { Promises, retryIfError, createInstance, getLogger } from '@boostercloud/framework-common-helpers' -import { BoosterGlobalErrorDispatcher } from '../booster-global-error-dispatcher' +import { createInstance, getLogger, Promises, retryIfError } from '@boostercloud/framework-common-helpers' +import { readModelSearcher } from './read-model-searcher' import { ReadModelSchemaMigrator } from '../read-model-schema-migrator' +import { BoosterGlobalErrorDispatcher } from '../booster-global-error-dispatcher' export class ReadModelStore { public constructor(readonly config: BoosterConfig) {} @@ -23,65 +28,113 @@ export class ReadModelStore { const logger = getLogger(this.config, 'ReadModelStore#project') const projections = this.config.projections[entitySnapshotEnvelope.entityTypeName] if (!projections) { - logger.debug( - `[ReadModelStore#project] No projections found for entity ${entitySnapshotEnvelope.entityTypeName}. Skipping...` - ) + logger.debug(`No projections found for entity ${entitySnapshotEnvelope.entityTypeName}. Skipping...`) return } + logger.debug( + `Projections found for entity ${entitySnapshotEnvelope.entityTypeName}: ${JSON.stringify(projections)}` + ) const entityMetadata = this.config.entities[entitySnapshotEnvelope.entityTypeName] - await Promises.allSettledAndFulfilled( - projections.flatMap((projectionMetadata: ProjectionMetadata) => { + const entityInstance = createInstance(entityMetadata.class, entitySnapshotEnvelope.value) + const projectReadModelPromises = projections.flatMap( + (projectionMetadata: ProjectionMetadata) => { + logger.debug( + `Projecting entity snapshot ${entitySnapshotEnvelope} to build new state of read model with projectionMetadata ${JSON.stringify( + projectionMetadata + )}` + ) const readModelName = projectionMetadata.class.name - const entityInstance = createInstance(entityMetadata.class, entitySnapshotEnvelope.value) - const readModelIDList = this.joinKeyForProjection(entityInstance, projectionMetadata) const sequenceKey = this.sequenceKeyForProjection(entityInstance, projectionMetadata) - if (!readModelIDList) { - logger.warn( - `Couldn't find the joinKey named ${projectionMetadata.joinKey} in entity snapshot of ${entityMetadata.class.name}. Skipping...` - ) - return - } - - return readModelIDList.map((readModelID: UUID) => { - logger.debug( - '[ReadModelStore#project] Projecting entity snapshot ', - entitySnapshotEnvelope, - ` to build new state of read model ${readModelName} with ID ${readModelID}`, - sequenceKey ? ` sequencing by ${sequenceKey.name} with value ${sequenceKey.value}` : '' - ) + return this.projectEntity( + entityInstance, + projectionMetadata, + entityMetadata, + entitySnapshotEnvelope, + readModelName, + sequenceKey + ) + } + ) + await Promises.allSettledAndFulfilled(projectReadModelPromises) + } - return retryIfError( - () => - this.applyProjectionToReadModel( - entityInstance, - projectionMetadata, - readModelName, - readModelID, - sequenceKey, - entitySnapshotEnvelope - ), - OptimisticConcurrencyUnexpectedVersionError, - logger - ) - }) - }) + /** + * Gets the read models for a given entity instance using the projection metadata + * @param {EntityInterface} entityInstance The entity instance to get the read models for + * @param {ProjectionMetadata} projectionMetadata The projection metadata to use to get the read models + * @param {EntityMetadata} entityMetadata The entity metadata for the entity instance + * @returns {Promise>} The read models for the entity instance + */ + public async getReadModels( + entityInstance: EntityInterface, + projectionMetadata: ProjectionMetadata, + entityMetadata: EntityMetadata + ): Promise> { + const logger = getLogger(this.config, 'ReadModelStore#getReadModels') + logger.debug( + `Looking for ReadModels for entity ${JSON.stringify(entityInstance)} using Filter ${projectionMetadata.joinKey}` ) + const readModelName = projectionMetadata.class.name + const readModelMetadata = this.config.readModels[readModelName] + const filter = this.filterForProjection(entityInstance, projectionMetadata, entityMetadata) + if (!filter) { + return [] + } + logger.debug( + `Calling ReadModelSearcher searching for ReadModels for entity ${readModelMetadata.class.name} using Filter ${filter}` + ) + const rawReadModels = (await readModelSearcher(this.config, readModelMetadata.class) + .filter(filter) + .paginatedVersion(false) + .search()) as Array + return this.instanceReadModels(readModelName, rawReadModels) } - private joinKeyForProjection( - entity: EntityInterface, - projectionMetadata: ProjectionMetadata - ): Array | undefined { - const joinKey = (entity as any)[projectionMetadata.joinKey] - if (!joinKey) { + /** + * Gets a specific read model instance referencing it by ID when it's a regular read model + * or by ID + sequenceKey when it's a sequenced read model + * @param {string} readModelName The name of the read model class + * @param {UUID | undefined} readModelID The ID of the read model instance + * @param {SequenceKey} sequenceKey The sequence key of the read model instance + * @returns {Promise} The read model instance or undefined if it doesn't exist + */ + async fetchReadModel( + readModelName: string, + readModelID: UUID | undefined, + sequenceKey?: SequenceKey + ): Promise { + if (!readModelID) { return undefined } - return Array.isArray(joinKey) ? joinKey : [joinKey] + const rawReadModels = await this.config.provider.readModels.fetch( + this.config, + readModelName, + readModelID, + sequenceKey + ) + if (rawReadModels?.length) { + if (rawReadModels.length > 1) { + throw 'Got multiple objects for a request by Id. If this is a sequenced read model you should also specify the sequenceKey field.' + } else if (rawReadModels.length === 1 && rawReadModels[0]) { + const readModelMetadata = this.config.readModels[readModelName] + return createInstance(readModelMetadata.class, rawReadModels[0]) + } + } + return undefined + } + + // eslint-disable-next-line @typescript-eslint/ban-types + getProjectionFunction(projectionMetadata: ProjectionMetadata): Function { + try { + return (projectionMetadata.class as any)[projectionMetadata.methodName] + } catch { + throw new Error(`Couldn't load the ReadModel class ${projectionMetadata.class.name}`) + } } private sequenceKeyForProjection( entity: EntityInterface, - projectionMetadata: ProjectionMetadata + projectionMetadata: ProjectionMetadata ): SequenceKey | undefined { const sequenceKeyName = this.config.readModelSequenceKeys[projectionMetadata.class.name] const sequenceKeyValue = (entity as any)[sequenceKeyName] @@ -91,27 +144,181 @@ export class ReadModelStore { return undefined } + private async projectEntity( + entityInstance: EntityInterface, + projectionMetadata: ProjectionMetadata, + entityMetadata: EntityMetadata, + entitySnapshotEnvelope: EntitySnapshotEnvelope, + readModelName: string, + sequenceKey?: SequenceKey + ): Promise> | undefined> { + const currentReadModels: Array = await this.getReadModels( + entityInstance, + projectionMetadata, + entityMetadata + ) + if (currentReadModels && currentReadModels.length > 0) { + const existingReadModelsProjections: Array> = [] + for (const currentReadModel of currentReadModels) { + const newProjections: Array> = await this.projectionsForReadModels( + entitySnapshotEnvelope, + readModelName, + sequenceKey, + projectionMetadata, + entityInstance, + entityMetadata, + currentReadModel + ) + existingReadModelsProjections.push(...newProjections) + } + return Promises.allSettledAndFulfilled(existingReadModelsProjections) + } + const newProjections: Array> = await this.projectionsForReadModels( + entitySnapshotEnvelope, + readModelName, + sequenceKey, + projectionMetadata, + entityInstance, + entityMetadata + ) + return Promises.allSettledAndFulfilled(newProjections) + } + + private async projectionsForReadModels( + entitySnapshotEnvelope: EntitySnapshotEnvelope, + readModelName: string, + sequenceKey: any, + projectionMetadata: ProjectionMetadata, + entityInstance: EntityInterface, + entityMetadata: EntityMetadata, + currentReadModel?: ReadModelInterface + ): Promise>> { + const projections: Array> = [] + const logger = getLogger(this.config, 'ReadModelStore#projectionsForReadModels') + if (this.isJoinKeyByEntity(projectionMetadata.joinKey)) { + const entityJoinKey = (entityInstance as any)[projectionMetadata.joinKey] + if (!entityJoinKey) { + logger.warn( + `Couldn't find the joinKey named ${projectionMetadata} in entity snapshot of ${entityMetadata.class.name}. Skipping...` + ) + return [] + } + const entitiesJoinKeys: Array = Array.isArray(entityJoinKey) ? entityJoinKey : [entityJoinKey] + // A new Read Model with JoinKey by entity needs to be projected using a JoinKey with an entity query. We don't have a previous read model, but we have the new id from the entity + for (const readModelId of entitiesJoinKeys) { + const readModel = currentReadModel?.id === readModelId ? currentReadModel : undefined + projections.push( + this.projectAndStoreReadModelWithRetry( + entitySnapshotEnvelope, + readModelName, + sequenceKey, + entityInstance, + projectionMetadata, + readModelId, + readModel + ) + ) + } + } else { + // A new Read Model with JoinKey by ReadModel needs to be projected using a JoinKey with a read model query. We don't have a previous read model nor the new id as we don't have an entity field + projections.push( + this.projectAndStoreReadModelWithRetry( + entitySnapshotEnvelope, + readModelName, + sequenceKey, + entityInstance, + projectionMetadata, + currentReadModel?.id, + currentReadModel + ) + ) + } + return projections + } + + private async projectAndStoreReadModelWithRetry( + entitySnapshotEnvelope: EntitySnapshotEnvelope, + readModelName: string, + sequenceKey: SequenceKey | undefined, + entityInstance: EntityInterface, + projectionMetadata: ProjectionMetadata, + readModelId?: UUID, + currentReadModel?: ReadModelInterface + ): Promise { + const logger = getLogger(this.config, 'ReadModelStore#projectAndStoreReadModelWithRetry') + logger.debug( + 'Projecting entity snapshot ', + entitySnapshotEnvelope, + ` to build new state of read model ${readModelName} with ID ${currentReadModel?.id || readModelId}`, + sequenceKey ? ` sequencing by ${sequenceKey.name} with value ${sequenceKey.value}` : '' + ) + + return retryIfError( + (tryNumber?: number) => + this.applyProjectionToReadModel( + entityInstance, + projectionMetadata, + currentReadModel, + entitySnapshotEnvelope, + readModelId, + sequenceKey, + tryNumber + ), + OptimisticConcurrencyUnexpectedVersionError, + logger + ) + } + + private instanceReadModels( + readModelName: string, + rawReadModels: Array | undefined + ): Array { + if (!rawReadModels?.length) { + return [] + } + const readModelMetadata = this.config.readModels[readModelName] + return rawReadModels.map((rawReadModel) => createInstance(readModelMetadata.class, rawReadModel)) + } + private async applyProjectionToReadModel( entity: EntityInterface, - projectionMetadata: ProjectionMetadata, - readModelName: string, - readModelID: UUID, + projectionMetadata: ProjectionMetadata, + currentReadModel?: ReadModelInterface, + lastProjectedEntity?: EntitySnapshotEnvelope, + currentReadModelID?: UUID, sequenceKey?: SequenceKey, - lastProjectedEntity?: EntitySnapshotEnvelope + tryNumber?: number ): Promise { const logger = getLogger(this.config, 'ReadModelStore#applyProjectionToReadModel') - const readModel = await this.fetchReadModel(readModelName, readModelID, sequenceKey) + const readModelName = projectionMetadata.class.name + const readModelID = currentReadModelID ?? currentReadModel?.id + + if (tryNumber && tryNumber > 1) { + // In case of optimistic concurrency error, we need to fetch the current read model version and retry + logger.debug( + `OptimisticConcurrencyUnexpectedVersionError (version=${ + currentReadModel?.boosterMetadata?.version + } and expectedDatabaseVersion=${ + currentReadModel?.boosterMetadata?.version ?? 0 + }). Looking for an updated version of read model ${readModelName} with ID = ${readModelID}` + + (sequenceKey ? ` and sequence key ${sequenceKey.name} = ${sequenceKey.value}` : '') + ) + + currentReadModel = await this.fetchReadModel(readModelName, readModelID, sequenceKey) + logger.debug( + `Current read model ${readModelName} with ID ${readModelID} updated with version = ${currentReadModel?.boosterMetadata?.version}` + + (sequenceKey ? ` and sequence key ${sequenceKey.name} = ${sequenceKey.value}` : '') + ) + } let migratedReadModel: ReadModelInterface | undefined - if (readModel) { - migratedReadModel = await new ReadModelSchemaMigrator(this.config).migrate(readModel, readModelName) + if (currentReadModel) { + migratedReadModel = await new ReadModelSchemaMigrator(this.config).migrate(currentReadModel, readModelName) } - const currentReadModelVersion: number = migratedReadModel?.boosterMetadata?.version ?? 0 + const currentDatabaseVersion: number = migratedReadModel?.boosterMetadata?.version ?? 0 let newReadModel: any try { - newReadModel = Array.isArray(entity[projectionMetadata.joinKey]) - ? this.projectionFunction(projectionMetadata)(entity, readModelID, migratedReadModel || null) - : this.projectionFunction(projectionMetadata)(entity, migratedReadModel || null) + newReadModel = await this.callProjectionFunction(projectionMetadata, entity, migratedReadModel, readModelID) } catch (e) { const globalErrorDispatcher = new BoosterGlobalErrorDispatcher(this.config) const error = await globalErrorDispatcher.dispatch(new ProjectionGlobalError(entity, migratedReadModel, e)) @@ -122,18 +329,40 @@ export class ReadModelStore { logger.debug(`Deleting read model ${readModelName} with ID ${readModelID}:`, migratedReadModel) return this.config.provider.readModels.delete(this.config, readModelName, migratedReadModel) } else if (newReadModel === ReadModelAction.Nothing) { - logger.debug( - `[ReadModelStore#project] Skipping actions for ${readModelName} with ID ${readModelID}:`, - newReadModel - ) + logger.debug(`Skipping actions for ${readModelName} with ID ${readModelID}:`, newReadModel) return } + + return await this.store( + entity, + projectionMetadata, + readModelID, + readModelName, + migratedReadModel, + newReadModel, + currentDatabaseVersion, + lastProjectedEntity + ) + } + + private async store( + entity: EntityInterface, + projectionMetadata: ProjectionMetadata, + readModelID: UUID | undefined, + readModelName: string, + migratedReadModel: ReadModelInterface | undefined, + newReadModel: any, + expectedCurrentDatabaseVersion: number, + lastProjectedEntity?: EntitySnapshotEnvelope + ): Promise { + const logger = getLogger(this.config, 'ReadModelStore#store') const schemaVersion: number = migratedReadModel?.boosterMetadata?.schemaVersion ?? this.config.currentVersionFor(readModelName) // Increment the read model version in 1 before storing + const newReadModelVersion = expectedCurrentDatabaseVersion + 1 newReadModel.boosterMetadata = { ...migratedReadModel?.boosterMetadata, - version: currentReadModelVersion + 1, + version: newReadModelVersion, schemaVersion: schemaVersion, lastUpdateAt: new Date().toISOString(), lastProjectionInfo: { @@ -144,50 +373,104 @@ export class ReadModelStore { }, } as BoosterMetadata logger.debug( - `[ReadModelStore#project] Storing new version of read model ${readModelName} with ID ${readModelID}:`, + `Storing new version of read model ${readModelName} with ID ${readModelID}, version ${newReadModel.boosterMetadata.version} and expected database version ${expectedCurrentDatabaseVersion}:`, newReadModel ) - - return this.config.provider.readModels.store(this.config, readModelName, newReadModel, currentReadModelVersion) - } - - /** - * Gets a specific read model instance referencing it by ID when it's a regular read model - * or by ID + sequenceKey when it's a sequenced read model - */ - public async fetchReadModel( - readModelName: string, - readModelID: UUID, - sequenceKey?: SequenceKey - ): Promise { - const logger = getLogger(this.config, 'ReadModelStore#fetchReadModel') - logger.debug( - `[ReadModelStore#fetchReadModel] Looking for existing version of read model ${readModelName} with ID = ${readModelID}` + - (sequenceKey ? ` and sequence key ${sequenceKey.name} = ${sequenceKey.value}` : '') - ) - const rawReadModels = await this.config.provider.readModels.fetch( + return this.config.provider.readModels.store( this.config, readModelName, - readModelID, - sequenceKey + newReadModel, + expectedCurrentDatabaseVersion ) - if (rawReadModels?.length) { - if (rawReadModels.length > 1) { - throw 'Got multiple objects for a request by Id. If this is a sequenced read model you should also specify the sequenceKey field.' - } else if (rawReadModels.length === 1 && rawReadModels[0]) { - const readModelMetadata = this.config.readModels[readModelName] - return createInstance(readModelMetadata.class, rawReadModels[0]) + } + + private async callProjectionFunction( + projectionMetadata: ProjectionMetadata, + entity: EntityInterface, + migratedReadModel: ReadModelInterface | undefined, + readModelID: UUID | undefined + ): Promise | undefined> { + try { + const projectionMetadataJoinKey = projectionMetadata.joinKey + const projectionFunction = this.getProjectionFunction(projectionMetadata) + if (this.isJoinKeyByEntity(projectionMetadataJoinKey)) { + return Array.isArray(entity[projectionMetadataJoinKey]) + ? projectionFunction(entity, readModelID, migratedReadModel || null) + : projectionFunction(entity, migratedReadModel || null) } + return projectionFunction(entity, readModelID, migratedReadModel || null) + } catch (e) { + const globalErrorDispatcher = new BoosterGlobalErrorDispatcher(this.config) + const error = await globalErrorDispatcher.dispatch(new ProjectionGlobalError(entity, migratedReadModel, e)) + if (error) throw error } return undefined } - // eslint-disable-next-line @typescript-eslint/ban-types - public projectionFunction(projectionMetadata: ProjectionMetadata): Function { - try { - return (projectionMetadata.class as any)[projectionMetadata.methodName] - } catch { - throw new Error(`Couldn't load the ReadModel class ${projectionMetadata.class.name}`) + private filterForProjection( + entity: EntityInterface, + projectionMetadata: ProjectionMetadata, + entityMetadata: EntityMetadata + ): FilterFor | undefined { + const logger = getLogger(this.config, 'ReadModelStore#filterForProjection') + const projectionMetadataJoinKey = projectionMetadata.joinKey + logger.debug(`Calculating filter for projection for ReadModels using Filter ${projectionMetadataJoinKey}`) + if (this.isJoinKeyByEntity(projectionMetadataJoinKey)) { + return this.filterForEntityProjection(entity, projectionMetadata, entityMetadata) + } + + return this.filterForReadModelProjection(entity, projectionMetadata, entityMetadata) + } + + private filterForEntityProjection( + entity: EntityInterface, + projectionMetadata: ProjectionMetadata, + entityMetadata: EntityMetadata + ): FilterFor | undefined { + const logger = getLogger(this.config, 'ReadModelStore#filterForEntityProjection') + const projectionMetadataJoinKey = projectionMetadata.joinKey as keyof TEntity + const entityJoinKey = (entity as any)[projectionMetadataJoinKey] + if (!entityJoinKey) { + logger.warn( + `Couldn't find the joinKey ${projectionMetadata.joinKey} in entity snapshot of ${entityMetadata.class.name}. Skipping...` + ) + return + } + const ids = Array.isArray(entityJoinKey) ? entityJoinKey : [entityJoinKey] + if (!ids || ids.length === 0) { + logger.debug('No ids found for entity projection. Skipping...') + return undefined } + logger.debug(`Filtering for entity projection with ids ${ids}`) + return { + id: { + in: ids, + }, + } + } + + private filterForReadModelProjection( + entity: EntityInterface, + projectionMetadata: ProjectionMetadata, + entityMetadata: EntityMetadata + ): FilterFor | undefined { + const logger = getLogger(this.config, 'ReadModelStore#filterForReadModelProjection') + const joinKeyForProjection = projectionMetadata.joinKey as ReadModelJoinKeyFunction< + EntityInterface, + ReadModelInterface + > + if (!joinKeyForProjection) { + logger.warn( + `Couldn't find the joinKey ${projectionMetadata.joinKey} in entity snapshot of ${entityMetadata.class.name}. Skipping...` + ) + return + } + return joinKeyForProjection(entity) + } + + private isJoinKeyByEntity( + projectionMetadataJoinKey: keyof TEntity | ReadModelJoinKeyFunction + ): projectionMetadataJoinKey is keyof TEntity { + return typeof projectionMetadataJoinKey === 'string' } } diff --git a/packages/framework-core/test/decorators/event-handler.test.ts b/packages/framework-core/test/decorators/event-handler.test.ts index 42789afbe..3ed8ea809 100644 --- a/packages/framework-core/test/decorators/event-handler.test.ts +++ b/packages/framework-core/test/decorators/event-handler.test.ts @@ -9,6 +9,9 @@ import { UUID, Register, BoosterConfig } from '@boostercloud/framework-types' describe('the `EventHandler` decorator', () => { afterEach(() => { Booster.configureCurrentEnv((config: BoosterConfig) => { + for (const propName in config.events) { + delete config.events[propName] + } for (const propName in config.eventHandlers) { delete config.eventHandlers[propName] } diff --git a/packages/framework-core/test/services/read-model-store.test.ts b/packages/framework-core/test/services/read-model-store.test.ts index 2dea5faf9..c3a14635b 100644 --- a/packages/framework-core/test/services/read-model-store.test.ts +++ b/packages/framework-core/test/services/read-model-store.test.ts @@ -1,6 +1,5 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { beforeEach, describe } from 'mocha' -import { fake, replace, restore, SinonFakeTimers, spy, useFakeTimers } from 'sinon' import { ReadModelStore } from '../../src/services/read-model-store' import { createInstance } from '@boostercloud/framework-common-helpers' import { @@ -17,6 +16,8 @@ import { } from '@boostercloud/framework-types' import { expect } from '../expect' import { BoosterAuthorizer } from '../../src/booster-authorizer' +import { fake, match, replace, restore, SinonFakeTimers, spy, useFakeTimers } from 'sinon' +import { Booster } from '../../src/booster' describe('ReadModelStore', () => { afterEach(() => { @@ -47,14 +48,14 @@ describe('ReadModelStore', () => { } class SomeReadModel { - public constructor(readonly id: UUID) {} + public constructor(readonly id: UUID, readonly count: number) {} - public static someObserver(entity: AnImportantEntity, obj: any): any { + public static someObserver(entity: AnImportantEntity, obj: SomeReadModel): any { const count = (obj?.count || 0) + entity.count return { id: entity.someKey, kind: 'some', count: count } } - public static someObserverArray(entity: AnImportantEntity, readModelID: UUID, obj: any): any { + public static someObserverArray(entity: AnImportantEntity, readModelID: UUID, obj: SomeReadModel): any { const count = (obj?.count || 0) + entity.count return { id: readModelID, kind: 'some', count: count } } @@ -82,9 +83,9 @@ describe('ReadModelStore', () => { } class AnotherReadModel { - public constructor(readonly id: UUID) {} + public constructor(readonly id: UUID, readonly count: number) {} - public static anotherObserver(entity: AnImportantEntity, obj: any): any { + public static anotherObserver(entity: AnImportantEntity, obj: AnotherReadModel): any { const count = (obj?.count || 0) + entity.count return { id: entity.someKey, kind: 'another', count: count } } @@ -96,6 +97,7 @@ describe('ReadModelStore', () => { store: () => {}, delete: () => {}, fetch: () => {}, + search: () => {}, }, } as unknown as ProviderLibrary config.entities[AnImportantEntity.name] = { @@ -127,31 +129,31 @@ describe('ReadModelStore', () => { class: SomeReadModel, methodName: 'someObserver', joinKey: 'someKey', - } as ProjectionMetadata, + } as ProjectionMetadata, { class: SomeReadModel, methodName: 'projectionThatCallsEntityMethod', joinKey: 'someKey', - } as ProjectionMetadata, + } as ProjectionMetadata, { class: AnotherReadModel, methodName: 'anotherObserver', joinKey: 'someKey', - } as ProjectionMetadata, + } as ProjectionMetadata, ] config.projections[AnImportantEntityWithArray.name] = [ { class: SomeReadModel, methodName: 'someObserverArray', joinKey: 'someKey', - } as ProjectionMetadata, + } as ProjectionMetadata, ] config.projections['AnEntity'] = [ { class: SomeReadModel, methodName: 'projectionThatCallsReadModelMethod', joinKey: 'someKey', - } as ProjectionMetadata, + } as ProjectionMetadata, ] function entitySnapshotEnvelopeFor(entityName: string): EntitySnapshotEnvelope { @@ -212,9 +214,11 @@ describe('ReadModelStore', () => { it('deletes the associated read model', async () => { replace(config.provider.readModels, 'store', fake()) replace(config.provider.readModels, 'delete', fake()) + replace(Booster, 'config', config) // Needed because the function `Booster.readModel` references `this.config` from `searchFunction` + replace(config.provider.readModels, 'search', fake.returns([])) replace( ReadModelStore.prototype, - 'projectionFunction', + 'getProjectionFunction', fake.returns(() => ReadModelAction.Delete) ) const readModelStore = new ReadModelStore(config) @@ -222,6 +226,7 @@ describe('ReadModelStore', () => { await readModelStore.project(entitySnapshotEnvelopeFor(AnImportantEntity.name)) expect(config.provider.readModels.store).not.to.have.been.called expect(config.provider.readModels.delete).to.have.been.calledThrice + expect(config.provider.readModels.search).to.have.been.called }) }) @@ -229,9 +234,11 @@ describe('ReadModelStore', () => { it('ignores the read model', async () => { replace(config.provider.readModels, 'store', fake()) replace(config.provider.readModels, 'delete', fake()) + replace(Booster, 'config', config) // Needed because the function `Booster.readModel` references `this.config` from `searchFunction` + replace(config.provider.readModels, 'search', fake.returns([])) replace( ReadModelStore.prototype, - 'projectionFunction', + 'getProjectionFunction', fake.returns(() => ReadModelAction.Nothing) ) const readModelStore = new ReadModelStore(config) @@ -239,6 +246,7 @@ describe('ReadModelStore', () => { await readModelStore.project(entitySnapshotEnvelopeFor(AnImportantEntity.name)) expect(config.provider.readModels.store).not.to.have.been.called expect(config.provider.readModels.delete).not.to.have.been.called + expect(config.provider.readModels.search).to.have.been.called }) }) @@ -254,6 +262,8 @@ describe('ReadModelStore', () => { it('creates new instances of the read models', async () => { replace(config.provider.readModels, 'store', fake()) + replace(Booster, 'config', config) // Needed because the function `Booster.readModel` references `this.config` from `searchFunction` + replace(config.provider.readModels, 'search', fake.returns([])) const readModelStore = new ReadModelStore(config) replace(readModelStore, 'fetchReadModel', fake.returns(null)) spy(SomeReadModel, 'someObserver') @@ -263,9 +273,6 @@ describe('ReadModelStore', () => { await readModelStore.project(entitySnapshotEnvelopeFor(AnImportantEntity.name)) - expect(readModelStore.fetchReadModel).to.have.been.calledThrice - expect(readModelStore.fetchReadModel).to.have.been.calledWith(SomeReadModel.name, 'joinColumnID') - expect(readModelStore.fetchReadModel).to.have.been.calledWith(AnotherReadModel.name, 'joinColumnID') expect(SomeReadModel.someObserver).to.have.been.calledOnceWith(anEntityInstance, null) expect(SomeReadModel.someObserver).to.have.returned({ id: 'joinColumnID', @@ -361,42 +368,47 @@ describe('ReadModelStore', () => { const readModelStore = new ReadModelStore(config) const someReadModelStoredVersion = 10 const anotherReadModelStoredVersion = 32 + replace(Booster, 'config', config) // Needed because the function `Booster.readModel` references `this.config` from `searchFunction` replace( - readModelStore, - 'fetchReadModel', - fake((className: string, id: UUID) => { + config.provider.readModels, + 'search', + fake((config: BoosterConfig, className: string) => { if (className == SomeReadModel.name) { - return { - id: id, - kind: 'some', - count: 77, - boosterMetadata: { - version: someReadModelStoredVersion, - lastUpdateAt: '1970-01-01T00:00:00.000Z', - lastProjectionInfo: { - entityId: 'importantEntityID', - entityName: 'AnImportantEntity', - entityUpdatedAt: '1970-01-01T00:00:00.000Z', - projectionMethod: 'SomeReadModel.someObserver', + return [ + { + id: 'joinColumnID', + kind: 'some', + count: 77, + boosterMetadata: { + version: someReadModelStoredVersion, + lastUpdateAt: '1970-01-01T00:00:00.000Z', + lastProjectionInfo: { + entityId: 'importantEntityID', + entityName: 'AnImportantEntity', + entityUpdatedAt: '1970-01-01T00:00:00.000Z', + projectionMethod: 'SomeReadModel.someObserver', + }, }, }, - } + ] } else { - return { - id: id, - kind: 'another', - count: 177, - boosterMetadata: { - version: anotherReadModelStoredVersion, - lastUpdateAt: '1970-01-01T00:00:00.000Z', - lastProjectionInfo: { - entityId: 'importantEntityID', - entityName: 'AnImportantEntity', - entityUpdatedAt: '1970-01-01T00:00:00.000Z', - projectionMethod: 'AnotherReadModel.anotherObserver', + return [ + { + id: 'joinColumnID', + kind: 'another', + count: 177, + boosterMetadata: { + version: anotherReadModelStoredVersion, + lastUpdateAt: '1970-01-01T00:00:00.000Z', + lastProjectionInfo: { + entityId: 'importantEntityID', + entityName: 'AnImportantEntity', + entityUpdatedAt: '1970-01-01T00:00:00.000Z', + projectionMethod: 'AnotherReadModel.anotherObserver', + }, }, }, - } + ] } }) ) @@ -407,24 +419,24 @@ describe('ReadModelStore', () => { const anEntityInstance = new AnImportantEntity(entityValue.id, entityValue.someKey, entityValue.count) await readModelStore.project(anEntitySnapshot) - expect(readModelStore.fetchReadModel).to.have.been.calledThrice - expect(readModelStore.fetchReadModel).to.have.been.calledWith(SomeReadModel.name, 'joinColumnID') - expect(readModelStore.fetchReadModel).to.have.been.calledWith(AnotherReadModel.name, 'joinColumnID') - expect(SomeReadModel.someObserver).to.have.been.calledOnceWith(anEntityInstance, { - id: 'joinColumnID', - kind: 'some', - count: 77, - boosterMetadata: { - version: someReadModelStoredVersion, - lastUpdateAt: '1970-01-01T00:00:00.000Z', - lastProjectionInfo: { - entityId: 'importantEntityID', - entityName: 'AnImportantEntity', - entityUpdatedAt: '1970-01-01T00:00:00.000Z', - projectionMethod: 'SomeReadModel.someObserver', + expect(SomeReadModel.someObserver).to.have.been.calledOnceWith( + anEntityInstance, + match({ + id: 'joinColumnID', + count: 77, + kind: 'some', + boosterMetadata: { + version: someReadModelStoredVersion, + lastUpdateAt: '1970-01-01T00:00:00.000Z', + lastProjectionInfo: { + entityId: 'importantEntityID', + entityName: 'AnImportantEntity', + entityUpdatedAt: '1970-01-01T00:00:00.000Z', + projectionMethod: 'SomeReadModel.someObserver', + }, }, - }, - }) + }) + ) expect(SomeReadModel.someObserver).to.have.returned({ id: 'joinColumnID', kind: 'some', @@ -441,21 +453,24 @@ describe('ReadModelStore', () => { }, }, }) - expect(AnotherReadModel.anotherObserver).to.have.been.calledOnceWith(anEntityInstance, { - id: 'joinColumnID', - kind: 'another', - count: 177, - boosterMetadata: { - version: anotherReadModelStoredVersion, - lastUpdateAt: '1970-01-01T00:00:00.000Z', - lastProjectionInfo: { - entityId: 'importantEntityID', - entityName: 'AnImportantEntity', - entityUpdatedAt: '1970-01-01T00:00:00.000Z', - projectionMethod: 'AnotherReadModel.anotherObserver', + expect(AnotherReadModel.anotherObserver).to.have.been.calledOnceWith( + anEntityInstance, + match({ + id: 'joinColumnID', + count: 177, + kind: 'another', + boosterMetadata: { + version: anotherReadModelStoredVersion, + lastUpdateAt: '1970-01-01T00:00:00.000Z', + lastProjectionInfo: { + entityId: 'importantEntityID', + entityName: 'AnImportantEntity', + entityUpdatedAt: '1970-01-01T00:00:00.000Z', + projectionMethod: 'AnotherReadModel.anotherObserver', + }, }, - }, - }) + }) + ) expect(AnotherReadModel.anotherObserver).to.have.returned({ id: 'joinColumnID', kind: 'another', @@ -521,6 +536,8 @@ describe('ReadModelStore', () => { context('when the projection calls an instance method in the entity', () => { it('is executed without failing', async () => { const readModelStore = new ReadModelStore(config) + replace(Booster, 'config', config) // Needed because the function `Booster.readModel` references `this.config` from `searchFunction` + replace(config.provider.readModels, 'search', fake.returns([])) const getPrefixedKeyFake = fake() replace(AnImportantEntity.prototype, 'getPrefixedKey', getPrefixedKeyFake) await readModelStore.project(entitySnapshotEnvelopeFor(AnImportantEntity.name)) @@ -531,7 +548,8 @@ describe('ReadModelStore', () => { context('when the projection calls an instance method in the read model', () => { it('is executed without failing', async () => { const readModelStore = new ReadModelStore(config) - replace(config.provider.readModels, 'fetch', fake.returns([{ id: 'joinColumnID', count: 31415 }])) + replace(Booster, 'config', config) // Needed because the function `Booster.readModel` references `this.config` from `searchFunction` + replace(config.provider.readModels, 'search', fake.returns([{ id: 'joinColumnID', count: 31415 }])) const getIdFake = fake() replace(SomeReadModel.prototype, 'getId', getIdFake) await readModelStore.project(entitySnapshotEnvelopeFor(AnEntity.name)) @@ -559,6 +577,8 @@ describe('ReadModelStore', () => { } return Promise.resolve() }) + replace(Booster, 'config', config) // Needed because the function `Booster.readModel` references `this.config` from `searchFunction` + replace(config.provider.readModels, 'search', fake.returns([])) replace(config.provider.readModels, 'store', fakeStore) const readModelStore = new ReadModelStore(config) await readModelStore.project(entitySnapshotEnvelopeFor(AnImportantEntity.name)) @@ -605,34 +625,29 @@ describe('ReadModelStore', () => { replace(config.provider.readModels, 'store', fake()) const readModelStore = new ReadModelStore(config) const someReadModelStoredVersion = 10 + replace(Booster, 'config', config) // Needed because the function `Booster.readModel` references `this.config` from `searchFunction` replace( - readModelStore, - 'fetchReadModel', - fake((className: string, id: UUID) => { - if (className == SomeReadModel.name) { - if (id == 'anotherJoinColumnID') { - return null - } else { - return { - id: id, - kind: 'some', - count: 77, - boosterMetadata: { - version: someReadModelStoredVersion, - lastUpdateAt: '1970-01-01T00:00:00.000Z', - lastProjectionInfo: { - entityId: 'importantEntityID', - entityName: 'AnImportantEntityWithArray', - entityUpdatedAt: '1970-01-01T00:00:00.000Z', - projectionMethod: 'SomeReadModel.someObserverArray', - }, - }, - } - } - } - return null - }) + config.provider.readModels, + 'search', + fake.returns([ + { + id: 'joinColumnID', + kind: 'some', + count: 77, + boosterMetadata: { + version: someReadModelStoredVersion, + lastUpdateAt: '1970-01-01T00:00:00.000Z', + lastProjectionInfo: { + entityId: 'importantEntityID', + entityName: 'AnImportantEntityWithArray', + entityUpdatedAt: '1970-01-01T00:00:00.000Z', + projectionMethod: 'SomeReadModel.someObserverArray', + }, + }, + }, + ]) ) + spy(SomeReadModel, 'someObserver') spy(SomeReadModel, 'someObserverArray') const anEntitySnapshot = entitySnapshotEnvelopeFor(AnImportantEntityWithArray.name) @@ -640,24 +655,25 @@ describe('ReadModelStore', () => { const anEntityInstance = new AnImportantEntityWithArray(entityValue.id, entityValue.someKey, entityValue.count) await readModelStore.project(anEntitySnapshot) - expect(readModelStore.fetchReadModel).to.have.been.calledTwice - expect(readModelStore.fetchReadModel).to.have.been.calledWith(SomeReadModel.name, 'joinColumnID') - expect(readModelStore.fetchReadModel).to.have.been.calledWith(SomeReadModel.name, 'anotherJoinColumnID') - expect(SomeReadModel.someObserverArray).to.have.been.calledWithMatch(anEntityInstance, 'joinColumnID', { - id: 'joinColumnID', - kind: 'some', - count: 77, - boosterMetadata: { - version: someReadModelStoredVersion, - lastUpdateAt: '1970-01-01T00:00:00.000Z', - lastProjectionInfo: { - entityId: 'importantEntityID', - entityName: 'AnImportantEntityWithArray', - entityUpdatedAt: '1970-01-01T00:00:00.000Z', - projectionMethod: 'SomeReadModel.someObserverArray', + expect(SomeReadModel.someObserverArray).to.have.been.calledWithMatch( + anEntityInstance, + 'joinColumnID', + match({ + id: 'joinColumnID', + kind: 'some', + count: 77, + boosterMetadata: { + version: someReadModelStoredVersion, + lastUpdateAt: '1970-01-01T00:00:00.000Z', + lastProjectionInfo: { + entityId: 'importantEntityID', + entityName: 'AnImportantEntityWithArray', + entityUpdatedAt: '1970-01-01T00:00:00.000Z', + projectionMethod: 'SomeReadModel.someObserverArray', + }, }, - }, - }) + }) + ) expect(SomeReadModel.someObserverArray).to.have.returned({ id: 'joinColumnID', kind: 'some', @@ -759,6 +775,8 @@ describe('ReadModelStore', () => { } ) replace(config.provider.readModels, 'store', fakeStore) + replace(Booster, 'config', config) // Needed because the function `Booster.readModel` references `this.config` from `searchFunction` + replace(config.provider.readModels, 'search', fake.returns([])) const readModelStore = new ReadModelStore(config) await readModelStore.project(entitySnapshotEnvelopeFor(AnImportantEntityWithArray.name)) @@ -813,6 +831,8 @@ describe('ReadModelStore', () => { const readModelStore = new ReadModelStore(config) const fakeApplyProjectionToReadModel = fake() replace(readModelStore as any, 'applyProjectionToReadModel', fakeApplyProjectionToReadModel) + replace(Booster, 'config', config) // Needed because the function `Booster.readModel` references `this.config` from `searchFunction` + replace(config.provider.readModels, 'search', fake.returns([])) await readModelStore.project(anEntitySnapshot) @@ -822,8 +842,9 @@ describe('ReadModelStore', () => { expect(fakeApplyProjectionToReadModel).to.have.been.calledWith( anEntityInstance, projectionMetadata, - readModelClassName, - anEntityInstance[projectionMetadata.joinKey], + undefined, + anEntitySnapshot, + 'joinColumnID', readModelClassName === 'AnotherReadModel' ? { name: 'count', value: 123 } : undefined ) } @@ -864,7 +885,7 @@ describe('ReadModelStore', () => { }) it('returns an instance of the current read model value when it exists', async () => { - replace(config.provider.readModels, 'fetch', fake.returns([{ id: 'joinColumnID' }])) + replace(config.provider.readModels, 'fetch', fake.returns([{ id: 'joinColumnID', count: 0 }])) const readModelStore = new ReadModelStore(config) const result = await readModelStore.fetchReadModel(SomeReadModel.name, 'joinColumnID') @@ -875,7 +896,7 @@ describe('ReadModelStore', () => { 'joinColumnID', undefined ) - expect(result).to.be.deep.equal(new SomeReadModel('joinColumnID')) + expect(result).to.be.deep.equal(new SomeReadModel('joinColumnID', 0)) }) }) @@ -899,29 +920,6 @@ describe('ReadModelStore', () => { }) }) - describe('the `joinKeyForProjection` private method', () => { - context('when the joinKey exists', () => { - it('returns the joinKey value', () => { - const anEntitySnapshot = entitySnapshotEnvelopeFor(AnImportantEntity.name) - const anEntityInstance = createInstance(AnImportantEntity, anEntitySnapshot.value) as any - const readModelStore = new ReadModelStore(config) as any - - expect(readModelStore.joinKeyForProjection(anEntityInstance, { joinKey: 'someKey' })).to.be.deep.equal([ - 'joinColumnID', - ]) - }) - }) - - context('when the joinkey does not exist', () => { - it('should not throw and error an skip', () => { - const anEntitySnapshot = entitySnapshotEnvelopeFor(AnImportantEntity.name) - const anEntityInstance = createInstance(AnImportantEntity, anEntitySnapshot.value) as any - const readModelStore = new ReadModelStore(config) as any - expect(readModelStore.joinKeyForProjection(anEntityInstance, { joinKey: 'whatever' })).to.be.undefined - }) - }) - }) - describe('the `sequenceKeyForProjection` private method', () => { context('when there is no sequence key for the read model in the config', () => { it('returns undefined', () => { diff --git a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/cart.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/cart.integration.ts index 480b228d1..71ba10447 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/cart.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/cart.integration.ts @@ -3,7 +3,7 @@ import { random, commerce, finance, lorem, internet } from 'faker' import { expect } from 'chai' import { CartItem } from '../../../src/common/cart-item' import { ProductType } from '../../../src/entities/product' -import { sleep, waitForIt } from '../../helper/sleep' +import { waitForIt } from '../../helper/sleep' import { applicationUnderTest } from './setup' import { beforeHookException, @@ -13,8 +13,6 @@ import { throwExceptionId, } from '../../../src/constants' -const secs = 10 - describe('Cart end-to-end tests', () => { let client: ApolloClient @@ -377,9 +375,6 @@ describe('Cart end-to-end tests', () => { `, }) - console.log(`Waiting ${secs} second${secs > 1 ? 's' : ''} for deletion to complete...`) - await sleep(secs * 1000) - client = applicationUnderTest.graphql.client(authToken) // Retrieve updated entity const queryResult = await waitForIt( @@ -406,7 +401,7 @@ describe('Cart end-to-end tests', () => { `, }) }, - () => true + (result) => !result?.data?.ProductReadModel ) const productData = queryResult.data.ProductReadModel diff --git a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/read-models.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/read-models.integration.ts index ab09a85ba..a04bbd32d 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/read-models.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/read-models.integration.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/ban-ts-comment */ -import { ApolloClient, gql, NormalizedCacheObject } from '@apollo/client' +import { ApolloClient, ApolloQueryResult, gql, NormalizedCacheObject } from '@apollo/client' import { commerce, finance, internet, lorem, random } from 'faker' import { expect } from '../../helper/expect' import { waitForIt } from '../../helper/sleep' @@ -8,9 +8,9 @@ import { applicationUnderTest } from './setup' import { beforeHookException, beforeHookProductId, throwExceptionId } from '../../../src/constants' import { UUID } from '@boostercloud/framework-types' -describe('Read models end-to-end tests', () => { - let client: ApolloClient +let client: ApolloClient +describe('Read models end-to-end tests', () => { before(async () => { client = applicationUnderTest.graphql.client() }) @@ -148,7 +148,10 @@ describe('Read models end-to-end tests', () => { context('several cart items', () => { let mockCartId: string let mockCartItemsCount: number - const mockCartItems: Array<{ productId: string; quantity: number }> = [] + const mockCartItems: Array<{ + productId: string + quantity: number + }> = [] beforeEach(async () => { mockCartId = random.uuid() @@ -220,7 +223,10 @@ describe('Read models end-to-end tests', () => { context('query lists of carts', () => { let mockCartId: string - const mockCartItems: Array<{ productId: string; quantity: number }> = [] + const mockCartItems: Array<{ + productId: string + quantity: number + }> = [] let mockProductId: string let mockQuantity: number const mockConfirmationToken: string = random.alphaNumeric(10) @@ -376,7 +382,9 @@ describe('Read models end-to-end tests', () => { }) it('should retrieve a list of carts using nested filters', async () => { - const filter = { shippingAddress: { firstName: { eq: mockAddress.firstName } } } + const filter = { + and: [{ id: { eq: mockCartId } }, { shippingAddress: { firstName: { eq: mockAddress.firstName } } }], + } const queryResult = await waitForIt( () => { return client.query({ @@ -392,7 +400,7 @@ describe('Read models end-to-end tests', () => { `, }) }, - (result) => result?.data?.CartReadModels?.length >= 1 + (result) => result?.data?.CartReadModels?.length >= 1 && result?.data?.CartReadModels[0].id === mockCartId ) const cartData = queryResult.data.CartReadModels @@ -1012,6 +1020,7 @@ describe('Read models end-to-end tests', () => { }, (result) => result?.data?.ListCartReadModels?.items.length >= 1 && + result?.data?.ListCartReadModels?.items[0]?.id === mockCartId && result?.data?.ListCartReadModels?.items[0]?.payment?.id !== undefined ) @@ -1188,7 +1197,12 @@ describe('Read models end-to-end tests', () => { }) context('query sorted lists of carts', () => { - const mockCartItems: Array<{ id: string; productId: string; quantity: number; firstName: string }> = [] + const mockCartItems: Array<{ + id: string + productId: string + quantity: number + firstName: string + }> = [] const cartItems = 5 let mockAddress: { firstName: string @@ -1429,7 +1443,10 @@ describe('Read models end-to-end tests', () => { context('query using pagination', () => { const mockCartIds: Array = [] - const mockCartItems: Array<{ productId: string; quantity: number }> = [] + const mockCartItems: Array<{ + productId: string + quantity: number + }> = [] let mockProductId: string let mockQuantity: number const changeCartPromises: Array> = [] @@ -1989,323 +2006,424 @@ describe('Read models end-to-end tests', () => { }) }) - describe('projecting two entities', () => { - const mockCartId: string = random.uuid() - const mockPaymentId: string = random.uuid() - const mockProductId: string = random.uuid() - const mockQuantity: number = random.number({ min: 1 }) - const mockConfirmationToken: string = random.alphaNumeric(10) + describe('projections', () => { + describe('projecting two entities', () => { + const mockCartId: string = random.uuid() + const mockPaymentId: string = random.uuid() + const mockProductId: string = random.uuid() + const mockQuantity: number = random.number({ min: 1 }) + const mockConfirmationToken: string = random.alphaNumeric(10) - beforeEach(async () => { - // provisioning a cart - await client.mutate({ - variables: { - cartId: mockCartId, - productId: mockProductId, - quantity: mockQuantity, - }, - mutation: gql` - mutation ChangeCartItem($cartId: ID!, $productId: ID!, $quantity: Float!) { - ChangeCartItem(input: { cartId: $cartId, productId: $productId, quantity: $quantity }) - } - `, + beforeEach(async () => { + // provisioning a cart + await client.mutate({ + variables: { + cartId: mockCartId, + productId: mockProductId, + quantity: mockQuantity, + }, + mutation: gql` + mutation ChangeCartItem($cartId: ID!, $productId: ID!, $quantity: Float!) { + ChangeCartItem(input: { cartId: $cartId, productId: $productId, quantity: $quantity }) + } + `, + }) }) - }) - it('should project changes for both entities', async () => { - const queryResult = await waitForIt( - () => { - return client.query({ - variables: { - cartId: mockCartId, - }, - query: gql` - query CartReadModel($cartId: ID!) { - CartReadModel(id: $cartId) { - id - cartItems { - productId - quantity + it('should project changes for both entities', async () => { + const queryResult = await waitForIt( + () => { + return client.query({ + variables: { + cartId: mockCartId, + }, + query: gql` + query CartReadModel($cartId: ID!) { + CartReadModel(id: $cartId) { + id + cartItems { + productId + quantity + } } } - } - `, - }) - }, - (result) => result?.data?.CartReadModel != null - ) - - const cartData = queryResult.data.CartReadModel - const expectedResult = { - __typename: 'CartReadModel', - id: mockCartId, - cartItems: [ - { - __typename: 'CartItem', - productId: mockProductId, - quantity: mockQuantity, + `, + }) }, - ], - } + (result) => result?.data?.CartReadModel != null + ) - expect(cartData).to.be.deep.equal(expectedResult) + const cartData = queryResult.data.CartReadModel + const expectedResult = { + __typename: 'CartReadModel', + id: mockCartId, + cartItems: [ + { + __typename: 'CartItem', + productId: mockProductId, + quantity: mockQuantity, + }, + ], + } - // Make payment - await client.mutate({ - variables: { - paymentId: mockPaymentId, - cartId: mockCartId, - confirmationToken: mockConfirmationToken, - }, - mutation: gql` - mutation ConfirmPayment($paymentId: ID!, $cartId: ID!, $confirmationToken: String!) { - ConfirmPayment(input: { paymentId: $paymentId, cartId: $cartId, confirmationToken: $confirmationToken }) - } - `, - }) + expect(cartData).to.be.deep.equal(expectedResult) - // Retrieve updated read model - const updatedQueryResult = await waitForIt( - () => { - return client.query({ - variables: { - cartId: mockCartId, - }, - query: gql` - query CartReadModel($cartId: ID!) { - CartReadModel(id: $cartId) { - id - cartItems { - productId - quantity - } - payment { - confirmationToken + // Make payment + await client.mutate({ + variables: { + paymentId: mockPaymentId, + cartId: mockCartId, + confirmationToken: mockConfirmationToken, + }, + mutation: gql` + mutation ConfirmPayment($paymentId: ID!, $cartId: ID!, $confirmationToken: String!) { + ConfirmPayment(input: { paymentId: $paymentId, cartId: $cartId, confirmationToken: $confirmationToken }) + } + `, + }) + + // Retrieve updated read model + const updatedQueryResult = await waitForIt( + () => { + return client.query({ + variables: { + cartId: mockCartId, + }, + query: gql` + query CartReadModel($cartId: ID!) { + CartReadModel(id: $cartId) { id - cartId + cartItems { + productId + quantity + } + payment { + confirmationToken + id + cartId + } } } - } - `, - }) - }, - (result) => result?.data?.CartReadModel?.payment != null - ) - - const updatedCartData = updatedQueryResult.data.CartReadModel - const expectedUpdatedResult = { - __typename: 'CartReadModel', - id: mockCartId, - cartItems: [ - { - __typename: 'CartItem', - productId: mockProductId, - quantity: mockQuantity, + `, + }) }, - ], - payment: { - __typename: 'Payment', - confirmationToken: mockConfirmationToken, - id: mockPaymentId, - cartId: mockCartId, - }, - } - - expect(updatedCartData).to.be.deep.equal(expectedUpdatedResult) - }) - }) + (result) => result?.data?.CartReadModel?.payment != null + ) - describe('projecting two entities with array joinKey', () => { - let client: ApolloClient - let userToken: string + const updatedCartData = updatedQueryResult.data.CartReadModel + const expectedUpdatedResult = { + __typename: 'CartReadModel', + id: mockCartId, + cartItems: [ + { + __typename: 'CartItem', + productId: mockProductId, + quantity: mockQuantity, + }, + ], + payment: { + __typename: 'Payment', + confirmationToken: mockConfirmationToken, + id: mockPaymentId, + cartId: mockCartId, + }, + } - before(async () => { - const userEmail = internet.email() - userToken = applicationUnderTest.token.forUser(userEmail, 'UserWithEmail') - client = applicationUnderTest.graphql.client(userToken) + expect(updatedCartData).to.be.deep.equal(expectedUpdatedResult) + }) }) - const oneMockProductId: string = random.uuid() - const twoMockProductId: string = random.uuid() + describe('projecting two entities with array joinKey', () => { + let client: ApolloClient + let userToken: string - beforeEach(async () => { - // Add item one - await client.mutate({ - variables: { - productID: oneMockProductId, - sku: random.uuid(), - displayName: commerce.productName(), - description: lorem.paragraph(), - priceInCents: random.number({ min: 1 }), - currency: finance.currencyCode(), - }, - mutation: gql` - mutation CreateProduct( - $productID: ID! - $sku: String! - $displayName: String! - $description: String! - $priceInCents: Float! - $currency: String! - ) { - CreateProduct( - input: { - productID: $productID - sku: $sku - displayName: $displayName - description: $description - priceInCents: $priceInCents - currency: $currency - } - ) - } - `, + before(async () => { + const userEmail = internet.email() + userToken = applicationUnderTest.token.forUser(userEmail, 'UserWithEmail') + client = applicationUnderTest.graphql.client(userToken) }) - // Add item two - await client.mutate({ - variables: { - productID: twoMockProductId, - sku: random.uuid(), - displayName: commerce.productName(), - description: lorem.paragraph(), - priceInCents: random.number({ min: 1 }), - currency: finance.currencyCode(), - }, - mutation: gql` - mutation CreateProduct( - $productID: ID! - $sku: String! - $displayName: String! - $description: String! - $priceInCents: Float! - $currency: String! - ) { - CreateProduct( - input: { - productID: $productID - sku: $sku - displayName: $displayName - description: $description - priceInCents: $priceInCents - currency: $currency - } - ) - } - `, + const oneMockProductId: string = random.uuid() + const twoMockProductId: string = random.uuid() + + beforeEach(async () => { + // Add item one + await client.mutate({ + variables: { + productID: oneMockProductId, + sku: random.uuid(), + displayName: commerce.productName(), + description: lorem.paragraph(), + priceInCents: random.number({ min: 1 }), + currency: finance.currencyCode(), + }, + mutation: gql` + mutation CreateProduct( + $productID: ID! + $sku: String! + $displayName: String! + $description: String! + $priceInCents: Float! + $currency: String! + ) { + CreateProduct( + input: { + productID: $productID + sku: $sku + displayName: $displayName + description: $description + priceInCents: $priceInCents + currency: $currency + } + ) + } + `, + }) + + // Add item two + await client.mutate({ + variables: { + productID: twoMockProductId, + sku: random.uuid(), + displayName: commerce.productName(), + description: lorem.paragraph(), + priceInCents: random.number({ min: 1 }), + currency: finance.currencyCode(), + }, + mutation: gql` + mutation CreateProduct( + $productID: ID! + $sku: String! + $displayName: String! + $description: String! + $priceInCents: Float! + $currency: String! + ) { + CreateProduct( + input: { + productID: $productID + sku: $sku + displayName: $displayName + description: $description + priceInCents: $priceInCents + currency: $currency + } + ) + } + `, + }) }) - }) - it('should project changes for both entities', async () => { - // Check that new product is available in read model - const products = await waitForIt( - () => { - return client.query({ - variables: { - products: [oneMockProductId, twoMockProductId], - }, - query: gql` - query ProductReadModels($products: [ID!]!) { - ProductReadModels(filter: { id: { in: $products } }) { - id - sku - displayName - description - price { - cents - currency - } - availability - deleted - packs { + it('should project changes for both entities', async () => { + // Check that new product is available in read model + const products = await waitForIt( + () => { + return client.query({ + variables: { + products: [oneMockProductId, twoMockProductId], + }, + query: gql` + query ProductReadModels($products: [ID!]!) { + ProductReadModels(filter: { id: { in: $products } }) { id + sku + displayName + description + price { + cents + currency + } + availability + deleted + packs { + id + } + productDetails + productType } - productDetails - productType } - } - `, - }) - }, - (result) => - result?.data?.ProductReadModels?.length == 2 && - result?.data?.ProductReadModels?.every( - (product: any) => Array.isArray(product.packs) && product.packs.length == 0 - ) - ) + `, + }) + }, + (result) => + result?.data?.ProductReadModels?.length == 2 && + result?.data?.ProductReadModels?.every( + (product: any) => Array.isArray(product.packs) && product.packs.length == 0 + ) + ) - expect(products.data.ProductReadModels.length).to.be.equal(2) + expect(products.data.ProductReadModels.length).to.be.equal(2) - const mockPackId: string = random.uuid() - const mockPackName: string = commerce.productName() - const mockPackProducts: Array = [oneMockProductId, twoMockProductId] + const mockPackId: string = random.uuid() + const mockPackName: string = commerce.productName() + const mockPackProducts: Array = [oneMockProductId, twoMockProductId] - // Create Pack - await client.mutate({ - variables: { - packID: mockPackId, - name: mockPackName, - products: mockPackProducts, - }, - mutation: gql` - mutation CreatePack($packID: ID!, $name: String!, $products: [ID!]!) { - CreatePack(input: { packID: $packID, name: $name, products: $products }) - } - `, - }) + // Create Pack + await client.mutate({ + variables: { + packID: mockPackId, + name: mockPackName, + products: mockPackProducts, + }, + mutation: gql` + mutation CreatePack($packID: ID!, $name: String!, $products: [ID!]!) { + CreatePack(input: { packID: $packID, name: $name, products: $products }) + } + `, + }) - const updatedQueryResults = await waitForIt( - () => { - return client.query({ - variables: { - products: [oneMockProductId, twoMockProductId], - }, - query: gql` - query ProductReadModels($products: [ID!]!) { - ProductReadModels(filter: { id: { in: $products } }) { - id - sku - displayName - description - price { - cents - currency - } - availability - deleted - packs { + const updatedQueryResults = await waitForIt( + () => { + return client.query({ + variables: { + products: [oneMockProductId, twoMockProductId], + }, + query: gql` + query ProductReadModels($products: [ID!]!) { + ProductReadModels(filter: { id: { in: $products } }) { id - name - products + sku + displayName + description + price { + cents + currency + } + availability + deleted + packs { + id + name + products + } + productDetails + productType } - productDetails - productType } - } - `, - }) - }, - (result) => - result?.data?.ProductReadModels?.length == 2 && - result?.data?.ProductReadModels?.every( - (product: any) => Array.isArray(product.packs) && product.packs.length == 1 - ) - ) + `, + }) + }, + (result) => + result?.data?.ProductReadModels?.length == 2 && + result?.data?.ProductReadModels?.every( + (product: any) => Array.isArray(product.packs) && product.packs.length == 1 + ) + ) - const updatedProducts = updatedQueryResults.data.ProductReadModels - expect(updatedProducts.length).to.be.equal(2) + const updatedProducts = updatedQueryResults.data.ProductReadModels + expect(updatedProducts.length).to.be.equal(2) - updatedProducts.forEach((product: { packs: Array }) => { - expect(product.packs).to.be.deep.equal([ - { - __typename: 'Pack', - id: mockPackId, - name: mockPackName, - products: mockPackProducts, - }, - ]) + updatedProducts.forEach((product: { packs: Array }) => { + expect(product.packs).to.be.deep.equal([ + { + __typename: 'Pack', + id: mockPackId, + name: mockPackName, + products: mockPackProducts, + }, + ]) + }) }) }) + + it('should project with "entity joinkey" and create a new read model', async () => { + await addModel() + }) + + it('should project with "entity joinkey" and update an existing read model', async () => { + const fiatId = await addModel() + await updateModel(fiatId) + + const johnId = await addOwner() + await updateOwner(johnId) + }) + + it('should project with array "entity joinkey" and create a new read model', async () => { + const fiatId = await addModel() + const johnId = await addOwner() + const johnFiatId = await buy(fiatId, johnId) + const offer1Id = await addOffer([johnFiatId]) + const offer = await getCarOfferById(offer1Id) + const johnFiat = await getPurchaseById(johnFiatId) + expect(johnFiat.data.CarPurchasesReadModel.offers.length).to.be.eql(1) + expect(johnFiat.data.CarPurchasesReadModel.offers[0].id).to.be.eql(offer.data.CarOfferReadModel.id) + }) + + it('should project with array "entity joinkey" and update an existing read model', async () => { + const fiatId = await addModel() + const johnId = await addOwner() + const lucasId = await addOwner() + const johnFiatId = await buy(fiatId, johnId) + const lucasFiatId = await buy(fiatId, lucasId) + const offer1Id = await addOffer([johnFiatId]) + const offer1 = await getCarOfferById(offer1Id) + const offer2Id = await addOffer([johnFiatId, lucasFiatId]) + const offer2 = await getCarOfferById(offer2Id) + const johnFiat = await getPurchaseById(johnFiatId) + const lucasFiat = await getPurchaseById(lucasFiatId) + expect(johnFiat.data.CarPurchasesReadModel.offers.length).to.be.eql(2) + expect(johnFiat.data.CarPurchasesReadModel.offers[0].id).to.be.eql(offer1.data.CarOfferReadModel.id) + expect(johnFiat.data.CarPurchasesReadModel.offers[1].id).to.be.eql(offer2.data.CarOfferReadModel.id) + expect(lucasFiat.data.CarPurchasesReadModel.offers.length).to.be.eql(1) + expect(johnFiat.data.CarPurchasesReadModel.offers[0].id).to.be.eql(offer1.data.CarOfferReadModel.id) + }) + + it('should project with "read model joinkey" and create a new read model', async () => { + const fiatId = await addModel() + const johnId = await addOwner() + const johnFiatId = await buy(fiatId, johnId) + const allPurchaseIds = [johnFiatId] + const allPurchases = await purchasesByIds(allPurchaseIds) + expect(allPurchases).to.be.lengthOf(1) + }) + + it('should project with "read model joinkey" and update an existing read model', async () => { + const fiatId = await addModel() + const johnId = await addOwner() + const lucasId = await addOwner() + const aliceId = await addOwner() + const johnFiatId = await buy(fiatId, johnId) + const lucasFiatId = await buy(fiatId, lucasId) + const aliceFiatId = await buy(fiatId, aliceId) + const allPurchaseIds = [johnFiatId, lucasFiatId, aliceFiatId] + const allPurchases = await purchasesByIds(allPurchaseIds) + expect(allPurchases).to.be.lengthOf(allPurchaseIds.length) + + await updateModel(fiatId) + await updateOwner(johnId) + const updatedPurchases = await purchasesByIds(allPurchaseIds) + + // All MODELS name should be updated + expectModelNamesUpdated(allPurchases, johnFiatId, updatedPurchases) + expectModelNamesUpdated(allPurchases, lucasFiatId, updatedPurchases) + expectModelNamesUpdated(allPurchases, aliceFiatId, updatedPurchases) + // Only John OWNER name should be updated + expectFirstOwnerNamesUpdated(allPurchases, johnFiatId, updatedPurchases) + expectFirstOwnerNamesNotUpdated(allPurchases, lucasFiatId, updatedPurchases) + expectFirstOwnerNamesNotUpdated(allPurchases, aliceFiatId, updatedPurchases) + }) + + it('should NOT project when "read model joinkey" is undefined', async () => { + const fiatId = await addModel() + const johnId = await addOwner() + const originalJohnOwner = await waitForId(johnId.toString(), 'CarOwnerReadModel', undefined, 'name') + const johnFiatId = await buy(fiatId, johnId) + const purchases = await purchasesByIds([johnFiatId]) + expect(purchases).to.be.lengthOf(1) + await updateOwner(johnId, 'SKIP') + const all = await allPurchases() + + // Owner name was updated in the CarOwnerReadModel + const newJohnOwner = await waitForId(johnId.toString(), 'CarOwnerReadModel', undefined, 'name') + expect(originalJohnOwner.data.CarOwnerReadModel.name).to.not.be.eql(newJohnOwner.data.CarOwnerReadModel.name) + + // Owner name was NOT updated in the Purchases read model + all.map((p) => p.carOwner.name).forEach((name) => expect(name).to.not.eql('SKIP')) + const purchaseWithOriginalJohnOwner = all + .map((p) => p.carOwner.name) + .filter((name) => name === originalJohnOwner.data.CarOwnerReadModel.name) + expect(purchaseWithOriginalJohnOwner.length).to.be.eql(1) + }) }) describe('read model authorization', () => { @@ -2511,3 +2629,302 @@ describe('Read models end-to-end tests', () => { }) }) }) + +async function addModel(name?: string, brand?: string): Promise { + const mockModelId = random.uuid() + const mockName: string = name ?? random.alphaNumeric(10) + const mockBrand: string = brand ?? random.alphaNumeric(10) + + await client.mutate({ + variables: { + id: mockModelId, + name: mockName, + brand: mockBrand, + }, + mutation: gql` + mutation AddCarModel($id: ID!, $name: String!, $brand: String!) { + AddCarModel(input: { id: $id, name: $name, brand: $brand }) + } + `, + }) + await getCarModelByIdAndName(mockModelId, mockName) + return mockModelId +} + +async function addOwner(name?: string): Promise { + const mockOwnerId = random.uuid() + const mockName: string = name ?? random.alphaNumeric(10) + + await client.mutate({ + variables: { + id: mockOwnerId, + name: mockName, + }, + mutation: gql` + mutation AddCarOwner($id: ID!, $name: String!) { + AddCarOwner(input: { id: $id, name: $name }) + } + `, + }) + await getCarOwnerByIdAndName(mockOwnerId, mockName) + return mockOwnerId +} + +async function addOffer(purchaseIds: Array, name?: string): Promise { + const mockOfferId = random.uuid() + const mockName: string = name ?? random.alphaNumeric(10) + + await client.mutate({ + variables: { + id: mockOfferId, + name: mockName, + purchaseIds: purchaseIds, + }, + mutation: gql` + mutation AddPurchaseOffer($id: ID!, $name: String!, $purchaseIds: [String!]!) { + AddPurchaseOffer(input: { id: $id, name: $name, purchaseIds: $purchaseIds }) + } + `, + }) + await getCarOfferByIdAndName(mockOfferId, mockName) + return mockOfferId +} + +async function buy(modelId: UUID, ownerId: UUID) { + const mockBuyId = random.uuid() + await client.mutate({ + variables: { + id: mockBuyId, + modelId: modelId, + ownerId: ownerId, + }, + mutation: gql` + mutation BuyCar($id: ID!, $modelId: ID!, $ownerId: ID!) { + BuyCar(input: { id: $id, modelId: $modelId, ownerId: $ownerId }) + } + `, + }) + await waitForId(mockBuyId, 'CarPurchasesReadModel') + return mockBuyId +} + +async function purchasesByIds(ids: Array): Promise> { + const result = await waitForIt( + () => { + return client.query({ + variables: { + filter: { + id: { in: [...ids] }, + }, + }, + query: gql` + query ListCarPurchasesReadModels($filter: ListCarPurchasesReadModelFilter) { + ListCarPurchasesReadModels(filter: $filter) { + items { + id + carModel { + id + name + brand + } + carOwner { + id + name + } + } + } + } + `, + }) + }, + (result) => result?.data?.ListCarPurchasesReadModels.items.length == ids.length + ) + return result.data.ListCarPurchasesReadModels.items +} + +async function allPurchases(): Promise> { + const result = await client.query({ + variables: { + filter: {}, + }, + query: gql` + query ListCarPurchasesReadModels($filter: ListCarPurchasesReadModelFilter) { + ListCarPurchasesReadModels(filter: $filter) { + items { + id + carModel { + id + name + brand + } + carOwner { + id + name + } + } + } + } + `, + }) + + return result.data.ListCarPurchasesReadModels.items +} + +async function updateModel(id: UUID, name?: string): Promise { + const mockName: string = name ?? random.alphaNumeric(10) + + await client.mutate({ + variables: { + id: id, + name: mockName, + }, + mutation: gql` + mutation UpdateCarModelName($id: ID!, $name: String!) { + UpdateCarModelName(input: { id: $id, name: $name }) + } + `, + }) + await getCarModelByIdAndName(id, mockName) + return id +} + +async function updateOwner(id: UUID, name?: string): Promise { + const mockName: string = name ?? random.alphaNumeric(10) + + await client.mutate({ + variables: { + id: id, + name: mockName, + }, + mutation: gql` + mutation UpdateCarOwnerName($id: ID!, $name: String!) { + UpdateCarOwnerName(input: { id: $id, name: $name }) + } + `, + }) + await getCarOwnerByIdAndName(id, mockName) + return id +} + +async function getCarModelByIdAndName(id: UUID, modelName: string) { + return await waitForId( + id.toString(), + 'CarModelReadModel', + (result) => { + const readModel = result?.data.CarModelReadModel + return readModel && readModel.name === modelName + }, + 'name' + ) +} + +async function getCarOfferByIdAndName(id: UUID, offerName: string) { + return await waitForId( + id.toString(), + 'CarOfferReadModel', + (result) => { + const readModel = result?.data.CarOfferReadModel + return readModel && readModel.name === offerName + }, + 'name' + ) +} + +async function getCarOfferById(id: UUID) { + return await waitForId(id.toString(), 'CarOfferReadModel', undefined, 'name purchasesIds') +} + +async function getPurchaseById(id: UUID) { + return await waitForId( + id.toString(), + 'CarPurchasesReadModel', + undefined, + 'carModel { id name brand } carOwner { id name } offers { id name purchasesIds } ' + ) +} + +async function getCarOwnerByIdAndName(id: UUID, ownerName: string) { + return await waitForId( + id.toString(), + 'CarOwnerReadModel', + (result) => { + const readModel = result?.data.CarOwnerReadModel + return readModel && readModel.name === ownerName + }, + 'name' + ) +} + +async function waitForId( + expectedId: string, + readModelName: string, + extraCheck?: (result: ApolloQueryResult) => void, + extraField?: string +): Promise { + return await waitForIt( + () => { + return client.query({ + variables: { + id: expectedId, + }, + query: gql` + query ${readModelName}($id: ID!) { + ${readModelName}(id: $id) { + id + ${extraField ? extraField : ''} + } + } + `, + }) + }, + (result) => { + const readModel = result?.data[readModelName] + if (extraCheck) { + return readModel && readModel.id === expectedId && extraCheck(result) + } + return readModel && readModel.id === expectedId + } + ) +} + +function expectModelNamesUpdated(allPurchases: Array, purchaseId: string, updatedPurchases: Array): void { + const firstPurchase = getFirstPurchase(allPurchases, purchaseId) + const firstUpdatedPurchase = getFirstPurchase(updatedPurchases, purchaseId) + // ids are the same + expect(firstPurchase.id).to.be.eq(firstUpdatedPurchase.id, 'same ids') + expect(firstPurchase.carModel.id).to.be.eq(firstUpdatedPurchase.carModel.id, 'same carModel ids') + // and Names were updated + expect(firstPurchase.carModel.name).to.not.be.eq(firstUpdatedPurchase.carModel.name, 'distinct carModel names') +} + +function expectFirstOwnerNamesUpdated( + allPurchases: Array, + purchaseId: string, + updatedPurchases: Array +): void { + const firstPurchase = getFirstPurchase(allPurchases, purchaseId) + const firstUpdatedPurchase = getFirstPurchase(updatedPurchases, purchaseId) + // ids are the same + expect(firstPurchase.id).to.be.eq(firstUpdatedPurchase.id, 'same ids') + expect(firstPurchase.carOwner.id).to.be.eq(firstUpdatedPurchase.carOwner.id, 'same carOwner ids') + // and Names were updated + expect(firstPurchase.carOwner.name).to.not.be.eq(firstUpdatedPurchase.carOwner.name, 'distinct carOwner names') +} + +function expectFirstOwnerNamesNotUpdated( + allPurchases: Array, + purchaseId: string, + updatedPurchases: Array +): void { + const firstPurchase = getFirstPurchase(allPurchases, purchaseId) + const firstUpdatedPurchase = getFirstPurchase(updatedPurchases, purchaseId) + // ids are the same + expect(firstPurchase.id).to.be.eq(firstUpdatedPurchase.id, 'same ids') + expect(firstPurchase.carOwner.id).to.be.eq(firstUpdatedPurchase.carOwner.id, 'same carOwner ids') + // and Names were NOT updated + expect(firstPurchase.carOwner.name).to.be.eq(firstUpdatedPurchase.carOwner.name, 'same carOwner names') +} + +function getFirstPurchase(purchases: Array, purchaseId: string) { + return purchases.filter((purchase) => purchase.id === purchaseId)[0] +} diff --git a/packages/framework-integration-tests/src/commands/add-car-model.ts b/packages/framework-integration-tests/src/commands/add-car-model.ts new file mode 100644 index 000000000..ddb888cab --- /dev/null +++ b/packages/framework-integration-tests/src/commands/add-car-model.ts @@ -0,0 +1,14 @@ +import { Command } from '@boostercloud/framework-core' +import { Register, UUID } from '@boostercloud/framework-types' +import { CarModelAdded } from '../events/car-model-added' + +@Command({ + authorize: 'all', +}) +export class AddCarModel { + public constructor(readonly id: UUID, readonly name: string, readonly brand: string) {} + + public static async handle(command: AddCarModel, register: Register): Promise { + register.events(new CarModelAdded(command.id, command.name, command.brand)) + } +} diff --git a/packages/framework-integration-tests/src/commands/add-car-owner.ts b/packages/framework-integration-tests/src/commands/add-car-owner.ts new file mode 100644 index 000000000..af7eceec3 --- /dev/null +++ b/packages/framework-integration-tests/src/commands/add-car-owner.ts @@ -0,0 +1,14 @@ +import { Command } from '@boostercloud/framework-core' +import { Register, UUID } from '@boostercloud/framework-types' +import { CarOwnerAdded } from '../events/car-owner-added' + +@Command({ + authorize: 'all', +}) +export class AddCarOwner { + public constructor(readonly id: UUID, readonly name: string) {} + + public static async handle(command: AddCarOwner, register: Register): Promise { + register.events(new CarOwnerAdded(command.id, command.name)) + } +} diff --git a/packages/framework-integration-tests/src/commands/add-purchase-offer.ts b/packages/framework-integration-tests/src/commands/add-purchase-offer.ts new file mode 100644 index 000000000..2255e2b8f --- /dev/null +++ b/packages/framework-integration-tests/src/commands/add-purchase-offer.ts @@ -0,0 +1,14 @@ +import { Command } from '@boostercloud/framework-core' +import { Register, UUID } from '@boostercloud/framework-types' +import { CarOfferAdded } from '../events/car-offer-added' + +@Command({ + authorize: 'all', +}) +export class AddPurchaseOffer { + public constructor(readonly id: UUID, readonly name: string, readonly purchaseIds: Array) {} + + public static async handle(command: AddPurchaseOffer, register: Register): Promise { + register.events(new CarOfferAdded(command.id, command.name, command.purchaseIds)) + } +} diff --git a/packages/framework-integration-tests/src/commands/buy-car.ts b/packages/framework-integration-tests/src/commands/buy-car.ts new file mode 100644 index 000000000..0caca70e1 --- /dev/null +++ b/packages/framework-integration-tests/src/commands/buy-car.ts @@ -0,0 +1,18 @@ +import { Booster, Command } from '@boostercloud/framework-core' +import { Register, UUID } from '@boostercloud/framework-types' +import { CarPurchased } from '../events/car-purchased' +import { CarModel } from '../entities/car-model' +import { CarOwner } from '../entities/car-owner' + +@Command({ + authorize: 'all', +}) +export class BuyCar { + public constructor(readonly id: UUID, readonly modelId: UUID, readonly ownerId: UUID) {} + + public static async handle(command: BuyCar, register: Register): Promise { + const model = await Booster.entity(CarModel, command.modelId) + const owner = await Booster.entity(CarOwner, command.ownerId) + register.events(new CarPurchased(command.id, owner!, model!)) + } +} diff --git a/packages/framework-integration-tests/src/commands/update-car-model-name.ts b/packages/framework-integration-tests/src/commands/update-car-model-name.ts new file mode 100644 index 000000000..eef2f5b5d --- /dev/null +++ b/packages/framework-integration-tests/src/commands/update-car-model-name.ts @@ -0,0 +1,14 @@ +import { Command } from '@boostercloud/framework-core' +import { Register, UUID } from '@boostercloud/framework-types' +import { CarModelNameUpdated } from '../events/car-model-name-updated' + +@Command({ + authorize: 'all', +}) +export class UpdateCarModelName { + public constructor(readonly id: UUID, readonly name: string) {} + + public static async handle(command: UpdateCarModelName, register: Register): Promise { + register.events(new CarModelNameUpdated(command.id, command.name)) + } +} diff --git a/packages/framework-integration-tests/src/commands/update-car-owner-name.ts b/packages/framework-integration-tests/src/commands/update-car-owner-name.ts new file mode 100644 index 000000000..e73acced5 --- /dev/null +++ b/packages/framework-integration-tests/src/commands/update-car-owner-name.ts @@ -0,0 +1,14 @@ +import { Command } from '@boostercloud/framework-core' +import { Register, UUID } from '@boostercloud/framework-types' +import { CarOwnerNameUpdated } from '../events/car-owner-name-updated' + +@Command({ + authorize: 'all', +}) +export class UpdateCarOwnerName { + public constructor(readonly id: UUID, readonly name: string) {} + + public static async handle(command: UpdateCarOwnerName, register: Register): Promise { + register.events(new CarOwnerNameUpdated(command.id, command.name)) + } +} diff --git a/packages/framework-integration-tests/src/entities/car-model.ts b/packages/framework-integration-tests/src/entities/car-model.ts new file mode 100644 index 000000000..fe6dd3649 --- /dev/null +++ b/packages/framework-integration-tests/src/entities/car-model.ts @@ -0,0 +1,27 @@ +import { Entity, Reduces } from '@boostercloud/framework-core' +import { UUID } from '@boostercloud/framework-types' +import { CarModelAdded } from '../events/car-model-added' +import { CarModelNameUpdated } from '../events/car-model-name-updated' + +@Entity({ + authorizeReadEvents: 'all', +}) +export class CarModel { + public constructor(readonly id: UUID, public name: string, readonly brand: string) {} + public getId() { + return this.id + } + @Reduces(CarModelAdded) + public static reduceCarModelAdded(event: CarModelAdded, currentCarModel: CarModel): CarModel { + return new CarModel(event.id, event.name, event.brand) + } + + @Reduces(CarModelNameUpdated) + public static reduceCarModelNameUpdated(event: CarModelNameUpdated, currentCarModel: CarModel): CarModel { + if (!currentCarModel) { + throw new Error('CarModel not found') + } + currentCarModel.name = event.newModelName + return currentCarModel + } +} diff --git a/packages/framework-integration-tests/src/entities/car-offers.ts b/packages/framework-integration-tests/src/entities/car-offers.ts new file mode 100644 index 000000000..4a031f772 --- /dev/null +++ b/packages/framework-integration-tests/src/entities/car-offers.ts @@ -0,0 +1,17 @@ +import { Entity, Reduces } from '@boostercloud/framework-core' +import { UUID } from '@boostercloud/framework-types' +import { CarOfferAdded } from '../events/car-offer-added' + +@Entity({ + authorizeReadEvents: 'all', +}) +export class CarOffers { + public constructor(readonly id: UUID, readonly name: string, readonly purchasesIds: Array) {} + public getId() { + return this.id + } + @Reduces(CarOfferAdded) + public static reduceCarOfferAdded(event: CarOfferAdded, currentCarDriver: CarOffers): CarOffers { + return new CarOffers(event.id, event.name, event.purchasesIds) + } +} diff --git a/packages/framework-integration-tests/src/entities/car-owner.ts b/packages/framework-integration-tests/src/entities/car-owner.ts new file mode 100644 index 000000000..d72ff5e46 --- /dev/null +++ b/packages/framework-integration-tests/src/entities/car-owner.ts @@ -0,0 +1,27 @@ +import { Entity, Reduces } from '@boostercloud/framework-core' +import { UUID } from '@boostercloud/framework-types' +import { CarOwnerAdded } from '../events/car-owner-added' +import { CarOwnerNameUpdated } from '../events/car-owner-name-updated' + +@Entity({ + authorizeReadEvents: 'all', +}) +export class CarOwner { + public constructor(readonly id: UUID, public name: string) {} + public getId() { + return this.id + } + @Reduces(CarOwnerAdded) + public static reduceCarOwnerAdded(event: CarOwnerAdded, currentCarOwner: CarOwner): CarOwner { + return new CarOwner(event.id, event.name) + } + + @Reduces(CarOwnerNameUpdated) + public static reduceCarOwnerNameUpdated(event: CarOwnerNameUpdated, currentCarOwner: CarOwner): CarOwner { + if (!currentCarOwner) { + throw new Error('CarOwner not found') + } + currentCarOwner.name = event.newOwnerName + return currentCarOwner + } +} diff --git a/packages/framework-integration-tests/src/entities/car-purchase.ts b/packages/framework-integration-tests/src/entities/car-purchase.ts new file mode 100644 index 000000000..d2d09212a --- /dev/null +++ b/packages/framework-integration-tests/src/entities/car-purchase.ts @@ -0,0 +1,19 @@ +import { Entity, Reduces } from '@boostercloud/framework-core' +import { UUID } from '@boostercloud/framework-types' +import { CarPurchased } from '../events/car-purchased' +import { CarModel } from './car-model' +import { CarOwner } from './car-owner' + +@Entity({ + authorizeReadEvents: 'all', +}) +export class CarPurchase { + public constructor(readonly id: UUID, readonly model: CarModel, readonly owner: CarOwner) {} + public getId() { + return this.id + } + @Reduces(CarPurchased) + public static reduceCarPurchase(event: CarPurchased, currentCarPurchase: CarPurchase): CarPurchase { + return new CarPurchase(event.id, event.model, event.owner) + } +} diff --git a/packages/framework-integration-tests/src/events/car-model-added.ts b/packages/framework-integration-tests/src/events/car-model-added.ts new file mode 100644 index 000000000..9e2b650ca --- /dev/null +++ b/packages/framework-integration-tests/src/events/car-model-added.ts @@ -0,0 +1,11 @@ +import { Event } from '@boostercloud/framework-core' +import { UUID } from '@boostercloud/framework-types' + +@Event +export class CarModelAdded { + public constructor(readonly id: UUID, readonly name: string, readonly brand: string) {} + + public entityID(): UUID { + return this.id + } +} diff --git a/packages/framework-integration-tests/src/events/car-model-name-updated.ts b/packages/framework-integration-tests/src/events/car-model-name-updated.ts new file mode 100644 index 000000000..1cdb4bd38 --- /dev/null +++ b/packages/framework-integration-tests/src/events/car-model-name-updated.ts @@ -0,0 +1,11 @@ +import { Event } from '@boostercloud/framework-core' +import { UUID } from '@boostercloud/framework-types' + +@Event +export class CarModelNameUpdated { + public constructor(readonly carModelId: UUID, readonly newModelName: string) {} + + public entityID(): UUID { + return this.carModelId + } +} diff --git a/packages/framework-integration-tests/src/events/car-offer-added.ts b/packages/framework-integration-tests/src/events/car-offer-added.ts new file mode 100644 index 000000000..5a6d57f44 --- /dev/null +++ b/packages/framework-integration-tests/src/events/car-offer-added.ts @@ -0,0 +1,11 @@ +import { Event } from '@boostercloud/framework-core' +import { UUID } from '@boostercloud/framework-types' + +@Event +export class CarOfferAdded { + public constructor(readonly id: UUID, readonly name: string, readonly purchasesIds: Array) {} + + public entityID(): UUID { + return this.id + } +} diff --git a/packages/framework-integration-tests/src/events/car-owner-added.ts b/packages/framework-integration-tests/src/events/car-owner-added.ts new file mode 100644 index 000000000..2742bb311 --- /dev/null +++ b/packages/framework-integration-tests/src/events/car-owner-added.ts @@ -0,0 +1,11 @@ +import { Event } from '@boostercloud/framework-core' +import { UUID } from '@boostercloud/framework-types' + +@Event +export class CarOwnerAdded { + public constructor(readonly id: UUID, readonly name: string) {} + + public entityID(): UUID { + return this.id + } +} diff --git a/packages/framework-integration-tests/src/events/car-owner-name-updated.ts b/packages/framework-integration-tests/src/events/car-owner-name-updated.ts new file mode 100644 index 000000000..5b096919f --- /dev/null +++ b/packages/framework-integration-tests/src/events/car-owner-name-updated.ts @@ -0,0 +1,11 @@ +import { Event } from '@boostercloud/framework-core' +import { UUID } from '@boostercloud/framework-types' + +@Event +export class CarOwnerNameUpdated { + public constructor(readonly carOwnerId: UUID, readonly newOwnerName: string) {} + + public entityID(): UUID { + return this.carOwnerId + } +} diff --git a/packages/framework-integration-tests/src/events/car-purchased.ts b/packages/framework-integration-tests/src/events/car-purchased.ts new file mode 100644 index 000000000..ec6eab0a0 --- /dev/null +++ b/packages/framework-integration-tests/src/events/car-purchased.ts @@ -0,0 +1,13 @@ +import { Event } from '@boostercloud/framework-core' +import { UUID } from '@boostercloud/framework-types' +import { CarOwner } from '../entities/car-owner' +import { CarModel } from '../entities/car-model' + +@Event +export class CarPurchased { + public constructor(readonly id: UUID, readonly owner: CarOwner, readonly model: CarModel) {} + + public entityID(): UUID { + return this.id + } +} diff --git a/packages/framework-integration-tests/src/read-models/car-model-read-model.ts b/packages/framework-integration-tests/src/read-models/car-model-read-model.ts new file mode 100644 index 000000000..1fd509dc6 --- /dev/null +++ b/packages/framework-integration-tests/src/read-models/car-model-read-model.ts @@ -0,0 +1,15 @@ +import { Projects, ReadModel } from '@boostercloud/framework-core' +import { ProjectionResult, UUID } from '@boostercloud/framework-types' +import { CarModel } from '../entities/car-model' + +@ReadModel({ + authorize: 'all', +}) +export class CarModelReadModel { + public constructor(readonly id: UUID, readonly name: string, readonly brand: string) {} + + @Projects(CarModel, 'id') + public static projectCarModel(model: CarModel, old?: CarModelReadModel): ProjectionResult { + return new CarModelReadModel(model.id, model.name, model.brand) + } +} diff --git a/packages/framework-integration-tests/src/read-models/car-offer-read-model.ts b/packages/framework-integration-tests/src/read-models/car-offer-read-model.ts new file mode 100644 index 000000000..66c99dea2 --- /dev/null +++ b/packages/framework-integration-tests/src/read-models/car-offer-read-model.ts @@ -0,0 +1,15 @@ +import { Projects, ReadModel } from '@boostercloud/framework-core' +import { ProjectionResult, UUID } from '@boostercloud/framework-types' +import { CarOffers } from '../entities/car-offers' + +@ReadModel({ + authorize: 'all', +}) +export class CarOfferReadModel { + public constructor(readonly id: UUID, readonly name: string, readonly purchasesIds: Array) {} + + @Projects(CarOffers, 'id') + public static projectCarOffers(offer: CarOffers, old?: CarOfferReadModel): ProjectionResult { + return new CarOfferReadModel(offer.id, offer.name, offer.purchasesIds) + } +} diff --git a/packages/framework-integration-tests/src/read-models/car-owner-read-model.ts b/packages/framework-integration-tests/src/read-models/car-owner-read-model.ts new file mode 100644 index 000000000..3d3d4cd22 --- /dev/null +++ b/packages/framework-integration-tests/src/read-models/car-owner-read-model.ts @@ -0,0 +1,15 @@ +import { Projects, ReadModel } from '@boostercloud/framework-core' +import { ProjectionResult, UUID } from '@boostercloud/framework-types' +import { CarOwner } from '../entities/car-owner' + +@ReadModel({ + authorize: 'all', +}) +export class CarOwnerReadModel { + public constructor(readonly id: UUID, readonly name: string) {} + + @Projects(CarOwner, 'id') + public static projectCarOwner(owner: CarOwner, old?: CarOwnerReadModel): ProjectionResult { + return new CarOwnerReadModel(owner.id, owner.name) + } +} diff --git a/packages/framework-integration-tests/src/read-models/car-purchases-read-model.ts b/packages/framework-integration-tests/src/read-models/car-purchases-read-model.ts new file mode 100644 index 000000000..f68e37a5d --- /dev/null +++ b/packages/framework-integration-tests/src/read-models/car-purchases-read-model.ts @@ -0,0 +1,110 @@ +import { Projects, ReadModel } from '@boostercloud/framework-core' +import { FilterFor, ProjectionResult, ReadModelAction, UUID } from '@boostercloud/framework-types' +import { CarOwner } from '../entities/car-owner' +import { CarModel } from '../entities/car-model' +import { CarPurchase } from '../entities/car-purchase' +import { CarOffers } from '../entities/car-offers' + +/** + * CardModel neither CarOwner have the CarModelOwnerReadModel id as a field, + * so we need to use a ReadModel JoinKey to get all the CarOwnerModelReadModel instances for a given CarOwner or CarModel + */ +@ReadModel({ + authorize: 'all', +}) +export class CarPurchasesReadModel { + public constructor( + readonly id: UUID, + readonly carModel?: CarModel, + readonly carOwner?: CarOwner, + readonly offers?: Array + ) {} + + @Projects(CarPurchase, 'id') + public static projectWithPurchase( + purchase: CarPurchase, + oldCarPurchaseReadModel?: CarPurchasesReadModel + ): ProjectionResult { + return new CarPurchasesReadModel(purchase.id, purchase.model, purchase.owner, oldCarPurchaseReadModel?.offers) + } + + // A ReadModel JoinKey to get all the CarOwnerModelReadModel instances for a given CarOwner + @Projects(CarOwner, (carOwner: CarOwner): FilterFor | undefined => { + if (carOwner.name === 'SKIP') { + return + } + return { + carOwner: { + id: { + eq: carOwner.id, + }, + }, + } + }) + public static projectWithOwner( + owner: CarOwner, + readModelId: UUID | undefined, + oldCarPurchaseReadModel?: CarPurchasesReadModel + ): ProjectionResult { + if (!readModelId) { + return ReadModelAction.Nothing + } + return new CarPurchasesReadModel( + readModelId, + oldCarPurchaseReadModel?.carModel, + owner, + oldCarPurchaseReadModel?.offers + ) + } + + // A ReadModel JoinKey to get all the CarOwnerModelReadModel instances for a given CarModel + @Projects(CarModel, (carModel: CarModel): FilterFor => { + return { + carModel: { + id: { + eq: carModel.id, + }, + }, + } + }) + public static projectWithModel( + model: CarModel, + readModelId: UUID | undefined, + oldCarPurchaseReadModel?: CarPurchasesReadModel + ): ProjectionResult { + if (!readModelId) { + return ReadModelAction.Nothing + } + return new CarPurchasesReadModel( + readModelId, + model, + oldCarPurchaseReadModel?.carOwner, + oldCarPurchaseReadModel?.offers + ) + } + + @Projects(CarOffers, 'purchasesIds') + public static projectWithOffer( + carOffers: CarOffers, + readModelId: UUID, + oldCarPurchaseReadModel?: CarPurchasesReadModel + ): ProjectionResult { + if (!oldCarPurchaseReadModel) { + return ReadModelAction.Nothing + } + console.log(`Updating purchase ${readModelId} with offers ${JSON.stringify(carOffers)}`) + + let offers = oldCarPurchaseReadModel?.offers || [] + if (offers.find((existingOfferId) => existingOfferId.id == carOffers.id)) { + offers = offers.map((existingOffer) => (existingOffer.id == carOffers.id ? carOffers : existingOffer)) + } else { + offers.push(carOffers) + } + return new CarPurchasesReadModel( + oldCarPurchaseReadModel.id, + oldCarPurchaseReadModel?.carModel, + oldCarPurchaseReadModel?.carOwner, + offers + ) + } +} diff --git a/packages/framework-provider-azure/src/helpers/query-helper.ts b/packages/framework-provider-azure/src/helpers/query-helper.ts index 987fda33f..868d3c144 100644 --- a/packages/framework-provider-azure/src/helpers/query-helper.ts +++ b/packages/framework-provider-azure/src/helpers/query-helper.ts @@ -41,7 +41,7 @@ export async function search( parameters: buildExpressionAttributeValues(filters), } - logger.debug('Running search with the following params: \n', querySpec) + logger.debug('Running search with the following params: \n', JSON.stringify(querySpec)) let { resources } = await cosmosDb .database(config.resourceNames.applicationStack) .container(containerName) diff --git a/packages/framework-types/src/concepts/projection-metadata.ts b/packages/framework-types/src/concepts/projection-metadata.ts index 9a29439fe..5ce0b234a 100644 --- a/packages/framework-types/src/concepts/projection-metadata.ts +++ b/packages/framework-types/src/concepts/projection-metadata.ts @@ -1,9 +1,16 @@ import { AnyClass } from '../typelevel' +import { ReadModelInterface } from './read-model' +import { EntityInterface } from './entity' +import { FilterFor } from '../searcher' -export interface ProjectionMetadata { +export type ReadModelJoinKeyFunction = ( + entity: TEntity +) => FilterFor | undefined + +export interface ProjectionMetadata { class: AnyClass methodName: string - joinKey: keyof TEntity + joinKey: keyof TEntity | ReadModelJoinKeyFunction } export type ProjectionResult = TReadModel | ReadModelAction diff --git a/packages/framework-types/src/config.ts b/packages/framework-types/src/config.ts index 90fd762c7..224f939a2 100644 --- a/packages/framework-types/src/config.ts +++ b/packages/framework-types/src/config.ts @@ -10,6 +10,7 @@ import { NotificationMetadata, ProjectionMetadata, QueryMetadata, + ReadModelInterface, ReadModelMetadata, ReducerMetadata, RoleMetadata, @@ -83,7 +84,7 @@ export class BoosterConfig { public readonly queryHandlers: Record = {} public readonly eventHandlers: Record> = {} public readonly readModels: Record = {} - public readonly projections: Record>> = {} + public readonly projections: Record>> = {} public readonly readModelSequenceKeys: Record = {} public readonly roles: Record = {} public readonly schemaMigrations: Record> = {} diff --git a/website/docs/03_architecture/06_read-model.mdx b/website/docs/03_architecture/06_read-model.mdx index 8221e10a4..8da8aa271 100644 --- a/website/docs/03_architecture/06_read-model.mdx +++ b/website/docs/03_architecture/06_read-model.mdx @@ -101,6 +101,42 @@ You can even select arrays of UUIDs as `joinKey`. Booster get each value on the } ``` +#### ReadModel queries + +You can use a read model query as a join key to get all the ReadModels that matches the query. Example: + +```typescript + @Projects(CarModel, (carModel: CarModel): FilterFor => { + return { + carModel: { + id: { + eq: carModel.id, + }, + }, + } + }) + public static projectWithModel( + model: CarModel, + readModelId: UUID | undefined, + oldCarPurchaseReadModel?: CarPurchasesReadModel + ): ProjectionResult { + if (!readModelId) { + return ReadModelAction.Nothing + } + return new CarPurchasesReadModel( + readModelId, + model, + oldCarPurchaseReadModel?.carOwner, + oldCarPurchaseReadModel?.offers + ) + } +``` + +This projection uses a ReadModel query JoinKey to get all the CarOwnerModelReadModel instances for a given CarModel. In this case, the `projectWithModel` function +will be called for each CarOwnerModelReadModel instance that matches the query. The `readModelId` argument will be the id of the CarOwnerModelReadModel instance. + +> [!NOTE] If no read model matches the query, the `projectWithModel` function will be called with `readModelId` set to `undefined`. + ### Returning special values Projections usually return a new instance of the read model. However, there are some special cases where you may want to return a different value. From 9199bbb91f3925d858e420b1443630088d5409ed Mon Sep 17 00:00:00 2001 From: GITHUBACTION Date: Tue, 30 Jul 2024 18:43:55 +0000 Subject: [PATCH 08/47] Bump versions [skip ci] --- ...s_by_readmodel_query_2024-04-19-15-13.json | 10 ------- common/config/rush/version-policies.json | 2 +- packages/application-tester/package.json | 6 ++-- packages/cli/package.json | 10 +++---- .../framework-common-helpers/package.json | 6 ++-- packages/framework-core/CHANGELOG.json | 28 +++++++++++++++++++ packages/framework-core/CHANGELOG.md | 9 +++++- packages/framework-core/package.json | 10 +++---- .../framework-integration-tests/package.json | 28 +++++++++---------- .../package.json | 10 +++---- packages/framework-provider-aws/package.json | 8 +++--- .../package.json | 12 ++++---- .../framework-provider-azure/package.json | 8 +++--- .../package.json | 10 +++---- .../framework-provider-local/package.json | 8 +++--- packages/framework-types/package.json | 6 ++-- packages/metadata-booster/package.json | 4 +-- tools/eslint-config/package.json | 2 +- 18 files changed, 101 insertions(+), 76 deletions(-) delete mode 100644 common/changes/@boostercloud/framework-core/read_models_projections_by_readmodel_query_2024-04-19-15-13.json diff --git a/common/changes/@boostercloud/framework-core/read_models_projections_by_readmodel_query_2024-04-19-15-13.json b/common/changes/@boostercloud/framework-core/read_models_projections_by_readmodel_query_2024-04-19-15-13.json deleted file mode 100644 index 29a1bccb4..000000000 --- a/common/changes/@boostercloud/framework-core/read_models_projections_by_readmodel_query_2024-04-19-15-13.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@boostercloud/framework-core", - "comment": "Read Models projections by ReadModel query", - "type": "minor" - } - ], - "packageName": "@boostercloud/framework-core" -} \ No newline at end of file diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 8dce28259..249e895db 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -103,6 +103,6 @@ "definitionName": "lockStepVersion", "policyName": "booster", "mainProject": "@boostercloud/framework-core", - "version": "2.13.1" + "version": "2.14.0" } ] diff --git a/packages/application-tester/package.json b/packages/application-tester/package.json index 8f071ad9c..6e2100283 100644 --- a/packages/application-tester/package.json +++ b/packages/application-tester/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/application-tester", - "version": "2.13.1", + "version": "2.14.0", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "application-tester" @@ -36,7 +36,7 @@ }, "dependencies": { "@apollo/client": "3.7.13", - "@boostercloud/framework-types": "workspace:^2.13.1", + "@boostercloud/framework-types": "workspace:^2.14.0", "cross-fetch": "3.1.5", "graphql": "^16.6.0", "jsonwebtoken": "9.0.1", @@ -48,7 +48,7 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.1", + "@boostercloud/eslint-config": "workspace:^2.14.0", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", "eslint": "^8.23.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 630ce91ab..321ef40c3 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/cli", "description": "CLI of the Booster Framework, the next level of abstraction for cloud-native applications", - "version": "2.13.1", + "version": "2.14.0", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -12,8 +12,8 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-core": "workspace:^2.13.1", - "@boostercloud/framework-types": "workspace:^2.13.1", + "@boostercloud/framework-core": "workspace:^2.14.0", + "@boostercloud/framework-types": "workspace:^2.14.0", "@oclif/core": "3.15.0", "@oclif/plugin-help": "^5", "chalk": "^2.4.2", @@ -30,8 +30,8 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.1", - "@boostercloud/application-tester": "workspace:^2.13.1", + "@boostercloud/eslint-config": "workspace:^2.14.0", + "@boostercloud/application-tester": "workspace:^2.14.0", "@oclif/test": "^3.0.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", diff --git a/packages/framework-common-helpers/package.json b/packages/framework-common-helpers/package.json index de63120d3..0e0ba93fa 100644 --- a/packages/framework-common-helpers/package.json +++ b/packages/framework-common-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-common-helpers", - "version": "2.13.1", + "version": "2.14.0", "description": "Contains Booster common helpers used by the core and provider packages", "keywords": [ "framework-common-helpers" @@ -36,14 +36,14 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-types": "workspace:^2.13.1", + "@boostercloud/framework-types": "workspace:^2.14.0", "child-process-promise": "^2.2.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "class-transformer": "~0.5.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.1", + "@boostercloud/eslint-config": "workspace:^2.14.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/child-process-promise": "^2.2.1", diff --git a/packages/framework-core/CHANGELOG.json b/packages/framework-core/CHANGELOG.json index bb5359c9e..a024a63d4 100644 --- a/packages/framework-core/CHANGELOG.json +++ b/packages/framework-core/CHANGELOG.json @@ -1,6 +1,34 @@ { "name": "@boostercloud/framework-core", "entries": [ + { + "version": "2.14.0", + "tag": "@boostercloud/framework-core_v2.14.0", + "date": "Tue, 30 Jul 2024 18:43:55 GMT", + "comments": { + "minor": [ + { + "comment": "Read Models projections by ReadModel query", + "author": "gonzalojaubert <111118818+gonzalojaubert@users.noreply.github.com>", + "commit": "2abba631c47a71d6b886f752ade48c0efe57accf" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@boostercloud/framework-common-helpers\" from `^2.13.1` to `^2.14.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/framework-types\" from `^2.13.1` to `^2.14.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/metadata-booster\" from `^2.13.1` to `^2.14.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/eslint-config\" from `^2.13.1` to `^2.14.0`" + } + ] + } + }, { "version": "2.13.1", "tag": "@boostercloud/framework-core_v2.13.1", diff --git a/packages/framework-core/CHANGELOG.md b/packages/framework-core/CHANGELOG.md index 5a1bd2ee6..46da3771b 100644 --- a/packages/framework-core/CHANGELOG.md +++ b/packages/framework-core/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @boostercloud/framework-core -This log was last generated on Fri, 26 Jul 2024 09:36:18 GMT and should not be manually modified. +This log was last generated on Tue, 30 Jul 2024 18:43:55 GMT and should not be manually modified. + +## 2.14.0 +Tue, 30 Jul 2024 18:43:55 GMT + +### Minor changes + +- Read Models projections by ReadModel query ## 2.13.1 Fri, 26 Jul 2024 09:36:18 GMT diff --git a/packages/framework-core/package.json b/packages/framework-core/package.json index a7283e28d..b485d25c4 100644 --- a/packages/framework-core/package.json +++ b/packages/framework-core/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-core", - "version": "2.13.1", + "version": "2.14.0", "description": "Library for your Booster apps", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", @@ -37,8 +37,8 @@ "graphql": "^16.6.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.13.1", - "@boostercloud/framework-types": "workspace:^2.13.1", + "@boostercloud/framework-common-helpers": "workspace:^2.14.0", + "@boostercloud/framework-types": "workspace:^2.14.0", "fp-ts": "^2.11.0", "graphql-scalars": "^1.17.0", "graphql-subscriptions": "2.0.0", @@ -61,8 +61,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/metadata-booster": "workspace:^2.13.1", - "@boostercloud/eslint-config": "workspace:^2.13.1", + "@boostercloud/metadata-booster": "workspace:^2.14.0", + "@boostercloud/eslint-config": "workspace:^2.14.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-integration-tests/package.json b/packages/framework-integration-tests/package.json index 924251740..d74545fcd 100644 --- a/packages/framework-integration-tests/package.json +++ b/packages/framework-integration-tests/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-integration-tests", "description": "Example project for Booster", - "version": "2.13.1", + "version": "2.14.0", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -9,12 +9,12 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.13.1", - "@boostercloud/framework-core": "workspace:^2.13.1", - "@boostercloud/framework-provider-aws": "workspace:^2.13.1", - "@boostercloud/framework-provider-azure": "workspace:^2.13.1", - "@boostercloud/framework-provider-local": "workspace:^2.13.1", - "@boostercloud/framework-types": "workspace:^2.13.1", + "@boostercloud/framework-common-helpers": "workspace:^2.14.0", + "@boostercloud/framework-core": "workspace:^2.14.0", + "@boostercloud/framework-provider-aws": "workspace:^2.14.0", + "@boostercloud/framework-provider-azure": "workspace:^2.14.0", + "@boostercloud/framework-provider-local": "workspace:^2.14.0", + "@boostercloud/framework-types": "workspace:^2.14.0", "aws-sdk": "2.853.0", "graphql": "^16.6.0", "tslib": "^2.4.0", @@ -33,13 +33,13 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.1", - "@boostercloud/application-tester": "workspace:^2.13.1", - "@boostercloud/cli": "workspace:^2.13.1", - "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.13.1", - "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.13.1", - "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.13.1", - "@boostercloud/metadata-booster": "workspace:^2.13.1", + "@boostercloud/eslint-config": "workspace:^2.14.0", + "@boostercloud/application-tester": "workspace:^2.14.0", + "@boostercloud/cli": "workspace:^2.14.0", + "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.14.0", + "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.14.0", + "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.14.0", + "@boostercloud/metadata-booster": "workspace:^2.14.0", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-aws-infrastructure/package.json b/packages/framework-provider-aws-infrastructure/package.json index a803d3a56..736f06767 100644 --- a/packages/framework-provider-aws-infrastructure/package.json +++ b/packages/framework-provider-aws-infrastructure/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws-infrastructure", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.13.1", + "version": "2.14.0", "description": "Handle the Booster deployment process to AWS", "keywords": [ "framework-provider-aws-infrastructure" @@ -41,9 +41,9 @@ "@aws-cdk/aws-s3-deployment": "^1.170.0", "@aws-cdk/core": "^1.170.0", "@aws-cdk/cx-api": "^1.170.0", - "@boostercloud/framework-common-helpers": "workspace:^2.13.1", - "@boostercloud/framework-provider-aws": "workspace:^2.13.1", - "@boostercloud/framework-types": "workspace:^2.13.1", + "@boostercloud/framework-common-helpers": "workspace:^2.14.0", + "@boostercloud/framework-provider-aws": "workspace:^2.14.0", + "@boostercloud/framework-types": "workspace:^2.14.0", "constructs": "^3.3.69", "aws-cdk": "^1.170.0", "aws-sdk": "2.853.0", @@ -69,7 +69,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.1", + "@boostercloud/eslint-config": "workspace:^2.14.0", "@types/aws-lambda": "8.10.48", "@types/aws-sdk": "2.7.0", "@types/chai": "4.2.18", diff --git a/packages/framework-provider-aws/package.json b/packages/framework-provider-aws/package.json index d3f5c96ec..3214bd2be 100644 --- a/packages/framework-provider-aws/package.json +++ b/packages/framework-provider-aws/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.13.1", + "version": "2.14.0", "description": "Handle Booster's integration with AWS", "keywords": [ "framework-provider-aws" @@ -24,8 +24,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.13.1", - "@boostercloud/framework-types": "workspace:^2.13.1", + "@boostercloud/framework-common-helpers": "workspace:^2.14.0", + "@boostercloud/framework-types": "workspace:^2.14.0", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4" }, @@ -43,7 +43,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.1", + "@boostercloud/eslint-config": "workspace:^2.14.0", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-azure-infrastructure/package.json b/packages/framework-provider-azure-infrastructure/package.json index 54292160a..9c5787d39 100644 --- a/packages/framework-provider-azure-infrastructure/package.json +++ b/packages/framework-provider-azure-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure-infrastructure", - "version": "2.13.1", + "version": "2.14.0", "description": "Handle the Booster deployment process to Azure", "keywords": [ "framework-provider-azure-infrastructure" @@ -25,10 +25,10 @@ "dependencies": { "@azure/arm-appservice": "^13.0.0", "@azure/cosmos": "^4.0.0", - "@boostercloud/framework-common-helpers": "workspace:^2.13.1", - "@boostercloud/framework-core": "workspace:^2.13.1", - "@boostercloud/framework-provider-azure": "workspace:^2.13.1", - "@boostercloud/framework-types": "workspace:^2.13.1", + "@boostercloud/framework-common-helpers": "workspace:^2.14.0", + "@boostercloud/framework-core": "workspace:^2.14.0", + "@boostercloud/framework-provider-azure": "workspace:^2.14.0", + "@boostercloud/framework-types": "workspace:^2.14.0", "@cdktf/provider-azurerm": "11.2.0", "@cdktf/provider-time": "9.0.2", "@types/archiver": "5.1.0", @@ -67,7 +67,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.1", + "@boostercloud/eslint-config": "workspace:^2.14.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-azure/package.json b/packages/framework-provider-azure/package.json index 4f0a622aa..68f2af24f 100644 --- a/packages/framework-provider-azure/package.json +++ b/packages/framework-provider-azure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure", - "version": "2.13.1", + "version": "2.14.0", "description": "Handle Booster's integration with Azure", "keywords": [ "framework-provider-azure" @@ -27,14 +27,14 @@ "@azure/functions": "^1.2.2", "@azure/identity": "~2.1.0", "@azure/event-hubs": "5.11.1", - "@boostercloud/framework-common-helpers": "workspace:^2.13.1", - "@boostercloud/framework-types": "workspace:^2.13.1", + "@boostercloud/framework-common-helpers": "workspace:^2.14.0", + "@boostercloud/framework-types": "workspace:^2.14.0", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "@azure/web-pubsub": "~1.1.0" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.1", + "@boostercloud/eslint-config": "workspace:^2.14.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-local-infrastructure/package.json b/packages/framework-provider-local-infrastructure/package.json index f5a934749..405351adb 100644 --- a/packages/framework-provider-local-infrastructure/package.json +++ b/packages/framework-provider-local-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local-infrastructure", - "version": "2.13.1", + "version": "2.14.0", "description": "Handle the Booster running process of the local runtime", "keywords": [ "framework-provider-local-infrastructure" @@ -23,9 +23,9 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.13.1", - "@boostercloud/framework-provider-local": "workspace:^2.13.1", - "@boostercloud/framework-types": "workspace:^2.13.1", + "@boostercloud/framework-common-helpers": "workspace:^2.14.0", + "@boostercloud/framework-provider-local": "workspace:^2.14.0", + "@boostercloud/framework-types": "workspace:^2.14.0", "cors": "2.8.5", "express": "^4.19.2", "node-schedule": "^2.1.0", @@ -46,7 +46,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.1", + "@boostercloud/eslint-config": "workspace:^2.14.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/cors": "^2.8.12", diff --git a/packages/framework-provider-local/package.json b/packages/framework-provider-local/package.json index 4a6c63ae1..adf888c2e 100644 --- a/packages/framework-provider-local/package.json +++ b/packages/framework-provider-local/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local", - "version": "2.13.1", + "version": "2.14.0", "description": "Debug your Booster projects locally", "keywords": [ "framework-provider-local" @@ -23,8 +23,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.13.1", - "@boostercloud/framework-types": "workspace:^2.13.1", + "@boostercloud/framework-common-helpers": "workspace:^2.14.0", + "@boostercloud/framework-types": "workspace:^2.14.0", "@seald-io/nedb": "4.0.2", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", @@ -44,7 +44,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.1", + "@boostercloud/eslint-config": "workspace:^2.14.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/express": "^4.17.21", diff --git a/packages/framework-types/package.json b/packages/framework-types/package.json index 2072d74db..009fb61f2 100644 --- a/packages/framework-types/package.json +++ b/packages/framework-types/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-types", - "version": "2.13.1", + "version": "2.14.0", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "framework-types" @@ -54,8 +54,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.13.1", - "@boostercloud/metadata-booster": "workspace:^2.13.1", + "@boostercloud/eslint-config": "workspace:^2.14.0", + "@boostercloud/metadata-booster": "workspace:^2.14.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/mocha": "10.0.1", diff --git a/packages/metadata-booster/package.json b/packages/metadata-booster/package.json index 580102d4d..e2d6fc1bc 100644 --- a/packages/metadata-booster/package.json +++ b/packages/metadata-booster/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/metadata-booster", - "version": "2.13.1", + "version": "2.14.0", "description": "Emits detailed metadata of your types. You can then get it in runtime to deal with schema-aware operation, like defining GraphQL schemas, ORM operations, etc.", "repository": "https://github.com/boostercloud/booster.git", "keywords": [ @@ -38,7 +38,7 @@ "eslint-config-prettier": "8.3.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "3.4.0", - "@boostercloud/eslint-config": "workspace:^2.13.1", + "@boostercloud/eslint-config": "workspace:^2.14.0", "@types/node": "^18.18.2", "ts-node": "^10.9.1", "ts-patch": "3.1.2", diff --git a/tools/eslint-config/package.json b/tools/eslint-config/package.json index 431ca63f3..0fee9223a 100644 --- a/tools/eslint-config/package.json +++ b/tools/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/eslint-config", - "version": "2.13.1", + "version": "2.14.0", "description": "Shared eslint rules", "main": "index.js", "publishConfig": { From c474f64af3439b15339cd2a6cef31969f568d52c Mon Sep 17 00:00:00 2001 From: gonzalojaubert <111118818+gonzalojaubert@users.noreply.github.com> Date: Wed, 31 Jul 2024 15:02:43 +0100 Subject: [PATCH 09/47] Handle Unhandled events with global errors (#1488) * Handle Unhandled events with global errors * rush change * fix integration test * fix event store reduce super kind * Update pnpm-lock.yaml after merge --------- Co-authored-by: Castro, Mario --- ...events_global_errors_2023-10-30-14-52.json | 10 ++ common/config/rush/pnpm-lock.yaml | 119 +++++++------- .../src/booster-global-error-dispatcher.ts | 15 +- .../src/services/event-store.ts | 148 ++++++++++++------ .../src/common/app-error-handler.ts | 13 ++ .../src/constants.ts | 2 + .../concepts/global-error-handler-metadata.ts | 3 +- packages/framework-types/src/errors.ts | 14 ++ .../src/errors/event-global-error.ts | 8 + packages/framework-types/src/errors/index.ts | 1 + website/docs/03_features/05_error-handling.md | 21 ++- 11 files changed, 240 insertions(+), 114 deletions(-) create mode 100644 common/changes/@boostercloud/framework-core/unhandled_events_global_errors_2023-10-30-14-52.json create mode 100644 packages/framework-types/src/errors/event-global-error.ts diff --git a/common/changes/@boostercloud/framework-core/unhandled_events_global_errors_2023-10-30-14-52.json b/common/changes/@boostercloud/framework-core/unhandled_events_global_errors_2023-10-30-14-52.json new file mode 100644 index 000000000..52260cb31 --- /dev/null +++ b/common/changes/@boostercloud/framework-core/unhandled_events_global_errors_2023-10-30-14-52.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@boostercloud/framework-core", + "comment": "Handle non-found events with global error handler", + "type": "minor" + } + ], + "packageName": "@boostercloud/framework-core" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index ae65f491c..25ee27dc9 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,8 +8,8 @@ importers: ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^2.13.1 - '@boostercloud/framework-types': workspace:^2.13.1 + '@boostercloud/eslint-config': workspace:^2.14.0 + '@boostercloud/framework-types': workspace:^2.14.0 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.18.2 @@ -70,10 +70,10 @@ importers: ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^2.13.1 - '@boostercloud/eslint-config': workspace:^2.13.1 - '@boostercloud/framework-core': workspace:^2.13.1 - '@boostercloud/framework-types': workspace:^2.13.1 + '@boostercloud/application-tester': workspace:^2.14.0 + '@boostercloud/eslint-config': workspace:^2.14.0 + '@boostercloud/framework-core': workspace:^2.14.0 + '@boostercloud/framework-types': workspace:^2.14.0 '@effect-ts/core': ^0.60.4 '@oclif/core': 3.15.0 '@oclif/plugin-help': ^5 @@ -183,8 +183,8 @@ importers: ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^2.13.1 - '@boostercloud/framework-types': workspace:^2.13.1 + '@boostercloud/eslint-config': workspace:^2.14.0 + '@boostercloud/framework-types': workspace:^2.14.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -258,10 +258,10 @@ importers: ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^2.13.1 - '@boostercloud/framework-common-helpers': workspace:^2.13.1 - '@boostercloud/framework-types': workspace:^2.13.1 - '@boostercloud/metadata-booster': workspace:^2.13.1 + '@boostercloud/eslint-config': workspace:^2.14.0 + '@boostercloud/framework-common-helpers': workspace:^2.14.0 + '@boostercloud/framework-types': workspace:^2.14.0 + '@boostercloud/metadata-booster': workspace:^2.14.0 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 '@effect/platform-node': 0.45.26 @@ -378,19 +378,19 @@ importers: ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^2.13.1 - '@boostercloud/cli': workspace:^2.13.1 - '@boostercloud/eslint-config': workspace:^2.13.1 - '@boostercloud/framework-common-helpers': workspace:^2.13.1 - '@boostercloud/framework-core': workspace:^2.13.1 - '@boostercloud/framework-provider-aws': workspace:^2.13.1 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.13.1 - '@boostercloud/framework-provider-azure': workspace:^2.13.1 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.13.1 - '@boostercloud/framework-provider-local': workspace:^2.13.1 - '@boostercloud/framework-provider-local-infrastructure': workspace:^2.13.1 - '@boostercloud/framework-types': workspace:^2.13.1 - '@boostercloud/metadata-booster': workspace:^2.13.1 + '@boostercloud/application-tester': workspace:^2.14.0 + '@boostercloud/cli': workspace:^2.14.0 + '@boostercloud/eslint-config': workspace:^2.14.0 + '@boostercloud/framework-common-helpers': workspace:^2.14.0 + '@boostercloud/framework-core': workspace:^2.14.0 + '@boostercloud/framework-provider-aws': workspace:^2.14.0 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.14.0 + '@boostercloud/framework-provider-azure': workspace:^2.14.0 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.14.0 + '@boostercloud/framework-provider-local': workspace:^2.14.0 + '@boostercloud/framework-provider-local-infrastructure': workspace:^2.14.0 + '@boostercloud/framework-types': workspace:^2.14.0 + '@boostercloud/metadata-booster': workspace:^2.14.0 '@effect-ts/core': ^0.60.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 @@ -536,9 +536,9 @@ importers: ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^2.13.1 - '@boostercloud/framework-common-helpers': workspace:^2.13.1 - '@boostercloud/framework-types': workspace:^2.13.1 + '@boostercloud/eslint-config': workspace:^2.14.0 + '@boostercloud/framework-common-helpers': workspace:^2.14.0 + '@boostercloud/framework-types': workspace:^2.14.0 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -632,10 +632,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^2.13.1 - '@boostercloud/framework-common-helpers': workspace:^2.13.1 - '@boostercloud/framework-provider-aws': workspace:^2.13.1 - '@boostercloud/framework-types': workspace:^2.13.1 + '@boostercloud/eslint-config': workspace:^2.14.0 + '@boostercloud/framework-common-helpers': workspace:^2.14.0 + '@boostercloud/framework-provider-aws': workspace:^2.14.0 + '@boostercloud/framework-types': workspace:^2.14.0 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -749,9 +749,9 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^2.13.1 - '@boostercloud/framework-common-helpers': workspace:^2.13.1 - '@boostercloud/framework-types': workspace:^2.13.1 + '@boostercloud/eslint-config': workspace:^2.14.0 + '@boostercloud/framework-common-helpers': workspace:^2.14.0 + '@boostercloud/framework-types': workspace:^2.14.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -823,11 +823,11 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^2.13.1 - '@boostercloud/framework-common-helpers': workspace:^2.13.1 - '@boostercloud/framework-core': workspace:^2.13.1 - '@boostercloud/framework-provider-azure': workspace:^2.13.1 - '@boostercloud/framework-types': workspace:^2.13.1 + '@boostercloud/eslint-config': workspace:^2.14.0 + '@boostercloud/framework-common-helpers': workspace:^2.14.0 + '@boostercloud/framework-core': workspace:^2.14.0 + '@boostercloud/framework-provider-azure': workspace:^2.14.0 + '@boostercloud/framework-types': workspace:^2.14.0 '@cdktf/provider-azurerm': 11.2.0 '@cdktf/provider-time': 9.0.2 '@effect-ts/core': ^0.60.4 @@ -934,9 +934,9 @@ importers: ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^2.13.1 - '@boostercloud/framework-common-helpers': workspace:^2.13.1 - '@boostercloud/framework-types': workspace:^2.13.1 + '@boostercloud/eslint-config': workspace:^2.14.0 + '@boostercloud/framework-common-helpers': workspace:^2.14.0 + '@boostercloud/framework-types': workspace:^2.14.0 '@effect-ts/core': ^0.60.4 '@seald-io/nedb': 4.0.2 '@types/chai': 4.2.18 @@ -1013,10 +1013,10 @@ importers: ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^2.13.1 - '@boostercloud/framework-common-helpers': workspace:^2.13.1 - '@boostercloud/framework-provider-local': workspace:^2.13.1 - '@boostercloud/framework-types': workspace:^2.13.1 + '@boostercloud/eslint-config': workspace:^2.14.0 + '@boostercloud/framework-common-helpers': workspace:^2.14.0 + '@boostercloud/framework-provider-local': workspace:^2.14.0 + '@boostercloud/framework-types': workspace:^2.14.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1096,8 +1096,8 @@ importers: ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^2.13.1 - '@boostercloud/metadata-booster': workspace:^2.13.1 + '@boostercloud/eslint-config': workspace:^2.14.0 + '@boostercloud/metadata-booster': workspace:^2.14.0 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@effect/cli': 0.35.26 @@ -1181,7 +1181,7 @@ importers: ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^2.13.1 + '@boostercloud/eslint-config': workspace:^2.14.0 '@effect-ts/core': ^0.60.4 '@types/node': ^18.18.2 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -1660,7 +1660,7 @@ packages: '@aws-cdk/aws-codecommit': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-codestarnotifications': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni + '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu @@ -1875,7 +1875,7 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/assets': 1.204.0_uszt2j4mor3yrbm3tre3az4zvy - '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni + '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam @@ -1885,7 +1885,7 @@ packages: - '@aws-cdk/aws-events' dev: false - /@aws-cdk/aws-ecr/1.204.0_4bnk2gpayjo75fecjckge2dkni: + /@aws-cdk/aws-ecr/1.204.0_bi2u42js5xhxqcsg5gqefde4xi: resolution: {integrity: sha512-oCts9e+ackWoFHeyn/3oKm3X1lSizleWNNXHp5WGM38lpNVrtCLMKSShu5iXJBhqRH2Mz1AcA4fDMWhe8DvJFA==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -1901,8 +1901,11 @@ packages: dependencies: '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu + '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam constructs: 3.4.344 + transitivePeerDependencies: + - '@aws-cdk/cx-api' dev: false /@aws-cdk/aws-ecs/1.204.0_iu2vquo67t63xu6vdymsg3ufny: @@ -1928,7 +1931,7 @@ packages: '@aws-cdk/aws-certificatemanager': 1.204.0_xtqk4litqxecxsqs3sd6ajo2ja '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni + '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli @@ -2274,7 +2277,7 @@ packages: '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-codeguruprofiler': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni + '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-efs': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm @@ -6434,7 +6437,7 @@ packages: dependencies: semver: 7.6.2 shelljs: 0.8.5 - typescript: 5.6.0-dev.20240726 + typescript: 5.6.0-dev.20240730 /duration/0.2.2: resolution: {integrity: sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==} @@ -11594,8 +11597,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript/5.6.0-dev.20240726: - resolution: {integrity: sha512-/KHI7WR6NxpuU91TJcSU18tTIIzpDzu5SWQBCt2yS09dGF6Hoys85rdggtSXlHybfTZ5ZT9B2sU7DwNaoW04Pw==} + /typescript/5.6.0-dev.20240730: + resolution: {integrity: sha512-i0xbpbeqFm+j2FGOU9ghel5U2nK6FP9mKLbdvms41n1mIjh56sGdexxjHNUUCmQr1rHGZtChRhLkxDcHmj72EA==} engines: {node: '>=14.17'} hasBin: true diff --git a/packages/framework-core/src/booster-global-error-dispatcher.ts b/packages/framework-core/src/booster-global-error-dispatcher.ts index ed13ae7db..d8f0a04d6 100644 --- a/packages/framework-core/src/booster-global-error-dispatcher.ts +++ b/packages/framework-core/src/booster-global-error-dispatcher.ts @@ -9,6 +9,7 @@ import { ProjectionGlobalError, SnapshotPersistHandlerGlobalError, QueryHandlerGlobalError, + EventGlobalError, } from '@boostercloud/framework-types' import { getLogger } from '@boostercloud/framework-common-helpers' @@ -48,14 +49,14 @@ export class BoosterGlobalErrorDispatcher { case SnapshotPersistHandlerGlobalError: newError = await this.handleSnapshotPersistError(error) break + case EventGlobalError: + newError = await this.handleEventError(error) + break } newError = await this.handleGenericError(newError) } catch (e) { - logger.error( - `Unhandled error inside the global error handler. When handling error ${error.originalError}, another error occurred`, - e - ) + logger.error(`Unhandled error inside the global error handler. When handling error ${error.originalError}`, e) return e } if (newError) return newError @@ -112,6 +113,12 @@ export class BoosterGlobalErrorDispatcher { return this.errorHandler.onSnapshotPersistError(currentError.originalError, currentError.snapshot) } + private async handleEventError(error: GlobalErrorContainer): Promise { + if (!this.errorHandler || !this.errorHandler.onEventError) throw error.originalError + const currentError = error as EventGlobalError + return await this.errorHandler.onEventError(currentError.originalError, currentError.eventEnvelope) + } + private async handleGenericError(error: Error | undefined): Promise { if (!error) return undefined if (!this.errorHandler || !this.errorHandler.onError) throw error diff --git a/packages/framework-core/src/services/event-store.ts b/packages/framework-core/src/services/event-store.ts index abdbc50fd..dc16a2330 100644 --- a/packages/framework-core/src/services/event-store.ts +++ b/packages/framework-core/src/services/event-store.ts @@ -1,15 +1,20 @@ import { - TraceActionTypes, BOOSTER_SUPER_KIND, BoosterConfig, EntityInterface, EntitySnapshotEnvelope, EventEnvelope, + EventGlobalError, + EventInterface, + EventMetadata, Instance, + InvalidEventError, InvalidParameterError, + InvalidReducerError, NonPersistedEntitySnapshotEnvelope, ReducerGlobalError, SnapshotPersistHandlerGlobalError, + TraceActionTypes, UUID, } from '@boostercloud/framework-types' import { createInstance, getLogger } from '@boostercloud/framework-common-helpers' @@ -21,6 +26,8 @@ import { Trace } from '../instrumentation' const originOfTime = new Date(0).toISOString() // Unix epoch +const boosterReducibleEventsTypesNames: Array = [BoosterEntityMigrated.name, BoosterEntityTouched.name] + export class EventStore { public constructor(readonly config: BoosterConfig) {} @@ -48,9 +55,26 @@ export class EventStore { // In this assignment we discard the `createdAt` field because it's not needed in the reduction process let newEntitySnapshot: NonPersistedEntitySnapshotEnvelope | undefined = latestSnapshotEnvelope for (const pendingEvent of pendingEvents) { - // We double check that what we are reducing is an event + // We double-check that what we are reducing is an event if (pendingEvent.kind === 'event') { - newEntitySnapshot = await this.entityReducer(pendingEvent, newEntitySnapshot) + try { + newEntitySnapshot = await this.entityReducer(pendingEvent, newEntitySnapshot) + } catch (e) { + if (e instanceof InvalidEventError) { + const globalErrorDispatcher = new BoosterGlobalErrorDispatcher(this.config) + const error = await globalErrorDispatcher.dispatch(new EventGlobalError(pendingEvent, e)) + if (error) throw error + continue + } else if (e instanceof InvalidReducerError) { + const globalErrorDispatcher = new BoosterGlobalErrorDispatcher(this.config) + const error = await globalErrorDispatcher.dispatch( + new ReducerGlobalError(e.eventInstance, e.snapshotInstance, e) + ) + if (error) throw error + continue + } + throw e + } } } @@ -135,52 +159,74 @@ export class EventStore { eventEnvelope: EventEnvelope, latestSnapshot?: NonPersistedEntitySnapshotEnvelope ): Promise { - const logger = getLogger(this.config, 'EventStore#entityReducer') - try { - if (eventEnvelope.superKind && eventEnvelope.superKind === BOOSTER_SUPER_KIND) { - if (eventEnvelope.typeName === BoosterEntityTouched.name) { - return this.reduceEntityTouched(eventEnvelope, latestSnapshot) - } - if (eventEnvelope.typeName === BoosterEntityMigrated.name) { - return this.reduceEntityMigrated(eventEnvelope) - } - } + const logger = getLogger(this.config, 'entityReducer') + logger.debug('Calling reducer with event: ', eventEnvelope, ' and entity snapshot ', latestSnapshot) + if (this.shouldReduceBoosterSuperKind(eventEnvelope)) { + return this.reduceSuperKind(eventEnvelope, latestSnapshot) + } - logger.debug('Calling reducer with event: ', eventEnvelope, ' and entity snapshot ', latestSnapshot) - const eventMetadata = this.config.events[eventEnvelope.typeName] - if (!eventMetadata) { - logger.error(`No event registered for event ${eventEnvelope.typeName}`) - throw new InvalidParameterError(`No event registered for event ${eventEnvelope.typeName}`) - } - const migratedEventEnvelope = await new SchemaMigrator(this.config).migrate(eventEnvelope) - const eventInstance = createInstance(eventMetadata.class, migratedEventEnvelope.value) - const entityMetadata = this.config.entities[migratedEventEnvelope.entityTypeName] - const snapshotInstance = latestSnapshot ? createInstance(entityMetadata.class, latestSnapshot.value) : null - try { - const newEntity = this.reducerForEvent(migratedEventEnvelope.typeName)(eventInstance, snapshotInstance) - - const newSnapshot: NonPersistedEntitySnapshotEnvelope = { - version: this.config.currentVersionFor(eventEnvelope.entityTypeName), - kind: 'snapshot', - superKind: migratedEventEnvelope.superKind, - requestID: migratedEventEnvelope.requestID, - entityID: migratedEventEnvelope.entityID, - entityTypeName: migratedEventEnvelope.entityTypeName, - typeName: migratedEventEnvelope.entityTypeName, - value: newEntity, - snapshottedEventCreatedAt: migratedEventEnvelope.createdAt, - } - logger.debug('Reducer result: ', newSnapshot) - return newSnapshot - } catch (e) { - const globalErrorDispatcher = new BoosterGlobalErrorDispatcher(this.config) - const error = await globalErrorDispatcher.dispatch(new ReducerGlobalError(eventInstance, snapshotInstance, e)) - throw error - } - } catch (e) { - logger.error('Error when calling reducer', e) - throw e + const eventMetadata = this.eventMetadataFor(eventEnvelope) + const migratedEventEnvelope = await new SchemaMigrator(this.config).migrate(eventEnvelope) + const eventInstance = createInstance(eventMetadata.class, migratedEventEnvelope.value) + const entityMetadata = this.config.entities[migratedEventEnvelope.entityTypeName] + const snapshotInstance = latestSnapshot ? createInstance(entityMetadata.class, latestSnapshot.value) : null + return this.createNewSnapshot(migratedEventEnvelope, eventInstance, snapshotInstance, eventEnvelope) + } + + private shouldReduceBoosterSuperKind(eventEnvelope: EventEnvelope) { + const reducible = boosterReducibleEventsTypesNames.includes(eventEnvelope.typeName) + return eventEnvelope.superKind && eventEnvelope.superKind === BOOSTER_SUPER_KIND && reducible + } + + private eventMetadataFor(eventEnvelope: EventEnvelope): EventMetadata { + const logger = getLogger(this.config, 'eventMetadataFor') + const eventMetadata = this.config.events[eventEnvelope.typeName] + if (!eventMetadata) { + logger.error(`No event registered for event ${eventEnvelope.typeName}`) + throw new InvalidEventError(`No event registered for event ${eventEnvelope.typeName}`) + } + return eventMetadata + } + + private createNewSnapshot( + migratedEventEnvelope: EventEnvelope, + eventInstance: EventInterface, + snapshotInstance: EntityInterface | null, + eventEnvelope: EventEnvelope + ): NonPersistedEntitySnapshotEnvelope { + const logger = getLogger(this.config, 'createNewSnapshot') + const newEntity = this.reducerForEvent( + migratedEventEnvelope.typeName, + eventInstance, + snapshotInstance + )(eventInstance, snapshotInstance) + + const newSnapshot: NonPersistedEntitySnapshotEnvelope = { + version: this.config.currentVersionFor(eventEnvelope.entityTypeName), + kind: 'snapshot', + superKind: migratedEventEnvelope.superKind, + requestID: migratedEventEnvelope.requestID, + entityID: migratedEventEnvelope.entityID, + entityTypeName: migratedEventEnvelope.entityTypeName, + typeName: migratedEventEnvelope.entityTypeName, + value: newEntity, + snapshottedEventCreatedAt: migratedEventEnvelope.createdAt, + } + logger.debug('Reducer result: ', newSnapshot) + return newSnapshot + } + + private async reduceSuperKind( + eventEnvelope: EventEnvelope, + latestSnapshot?: NonPersistedEntitySnapshotEnvelope + ): Promise { + if (eventEnvelope.typeName === BoosterEntityTouched.name) { + return this.reduceEntityTouched(eventEnvelope, latestSnapshot) + } + if (eventEnvelope.typeName === BoosterEntityMigrated.name) { + return this.reduceEntityMigrated(eventEnvelope) } + throw new InvalidParameterError(`Unexpected super kind ${eventEnvelope.superKind} to be reduced`) } private reduceEntityMigrated(eventEnvelope: EventEnvelope): NonPersistedEntitySnapshotEnvelope { @@ -227,11 +273,15 @@ export class EventStore { } // eslint-disable-next-line @typescript-eslint/ban-types - private reducerForEvent(eventName: string): Function { + private reducerForEvent( + eventName: string, + eventInstance: EventInterface, + snapshotInstance: EntityInterface | null + ): Function { const logger = getLogger(this.config, 'EventStore#reducerForEvent') const reducerMetadata = this.config.reducers[eventName] if (!reducerMetadata) { - throw new InvalidParameterError(`No reducer registered for event ${eventName}`) + throw new InvalidReducerError(`No reducer registered for event ${eventName}`, eventInstance, snapshotInstance) } else { try { // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/packages/framework-integration-tests/src/common/app-error-handler.ts b/packages/framework-integration-tests/src/common/app-error-handler.ts index e62d62e86..7428ce3df 100644 --- a/packages/framework-integration-tests/src/common/app-error-handler.ts +++ b/packages/framework-integration-tests/src/common/app-error-handler.ts @@ -3,6 +3,7 @@ import { GlobalErrorHandler } from '@boostercloud/framework-core' import { CommandEnvelope, EntityInterface, + EventEnvelope, EventInterface, QueryEnvelope, ReadModelInterface, @@ -12,6 +13,8 @@ import { commandHandlerErrorCartId, commandHandlerErrorIgnoredCartId, dispatchEventErrorCartId, + eventErrorCartId, + ignoreEventErrorCartId, projectionErrorCartId, queryHandlerErrorCartId, reducerErrorCartId, @@ -78,6 +81,16 @@ export class AppErrorHandler { return error } + public static async onEventError(error: Error, eventEnvelope: EventEnvelope): Promise { + if (eventEnvelope.entityID === eventErrorCartId) { + return new Error(error.message + '-onEventError') + } + if (eventEnvelope.entityID === ignoreEventErrorCartId) { + return undefined + } + return error + } + public static async onError(error: Error | undefined): Promise { return new Error(error?.message + '-onError') } diff --git a/packages/framework-integration-tests/src/constants.ts b/packages/framework-integration-tests/src/constants.ts index 04b92b2d5..2b39ca8c5 100644 --- a/packages/framework-integration-tests/src/constants.ts +++ b/packages/framework-integration-tests/src/constants.ts @@ -19,6 +19,8 @@ export const dispatchErrorCartMessage = 'dispatchErrorCartMessage' export const projectionErrorCartId = 'projectionErrorCartId' export const projectionErrorCartMessage = 'projectionErrorCartMessage' export const reducerErrorCartId = 'reducerErrorCartId' +export const eventErrorCartId = 'eventErrorCartId' +export const ignoreEventErrorCartId = 'ignoreEventErrorCartId' export const reducerErrorCartMessage = 'reducerErrorCartMessage' export const QUANTITY_TO_MIGRATE_DATA = 1234 export const QUANTITY_AFTER_DATA_MIGRATION_V1 = 1234999 diff --git a/packages/framework-types/src/concepts/global-error-handler-metadata.ts b/packages/framework-types/src/concepts/global-error-handler-metadata.ts index 92bf1c3b1..732da0efe 100644 --- a/packages/framework-types/src/concepts/global-error-handler-metadata.ts +++ b/packages/framework-types/src/concepts/global-error-handler-metadata.ts @@ -1,5 +1,5 @@ import { AnyClass } from '../typelevel' -import { CommandEnvelope, NonPersistedEntitySnapshotEnvelope, QueryEnvelope } from '../envelope' +import { CommandEnvelope, EventEnvelope, NonPersistedEntitySnapshotEnvelope, QueryEnvelope } from '../envelope' import { EventInterface } from './event' import { ReadModelInterface } from './read-model' import { EntityInterface } from './entity' @@ -20,6 +20,7 @@ export interface GlobalErrorHandlerInterface extends AnyClass { readModel: ReadModelInterface | undefined ): Promise onSnapshotPersistError?(error: Error, snapshot: NonPersistedEntitySnapshotEnvelope): Promise + onEventError?(error: Error, eventEnvelope: EventEnvelope): Promise onError?(error: Error | undefined): Promise } diff --git a/packages/framework-types/src/errors.ts b/packages/framework-types/src/errors.ts index dbb81b1f3..e9f556924 100644 --- a/packages/framework-types/src/errors.ts +++ b/packages/framework-types/src/errors.ts @@ -1,3 +1,5 @@ +import { EntityInterface, EventInterface } from './concepts' + export class BoosterError extends Error { readonly code: string constructor(message: string, code?: string, readonly data?: Record) { @@ -15,6 +17,18 @@ export class NotFoundError extends BoosterError {} export class InvalidVersionError extends BoosterError {} export class OptimisticConcurrencyUnexpectedVersionError extends BoosterError {} +export class InvalidEventError extends BoosterError {} +export class InvalidReducerError extends BoosterError { + readonly eventInstance: EventInterface + readonly snapshotInstance: EntityInterface | null + + constructor(message: string, eventInstance: EventInterface, snapshotInstance: EntityInterface | null) { + super(message) + this.eventInstance = eventInstance + this.snapshotInstance = snapshotInstance + } +} + export function httpStatusCodeFor(error: Error): number { const errorToHTTPCode: Record = { [InvalidParameterError.name]: 400, diff --git a/packages/framework-types/src/errors/event-global-error.ts b/packages/framework-types/src/errors/event-global-error.ts new file mode 100644 index 000000000..d5f461ee1 --- /dev/null +++ b/packages/framework-types/src/errors/event-global-error.ts @@ -0,0 +1,8 @@ +import { GlobalErrorContainer } from './global-error-container' +import { EventEnvelope } from '../envelope' + +export class EventGlobalError extends GlobalErrorContainer { + constructor(readonly eventEnvelope: EventEnvelope, originalError: Error) { + super(originalError) + } +} diff --git a/packages/framework-types/src/errors/index.ts b/packages/framework-types/src/errors/index.ts index 6dd96c6f7..5463e2ade 100644 --- a/packages/framework-types/src/errors/index.ts +++ b/packages/framework-types/src/errors/index.ts @@ -7,3 +7,4 @@ export * from './read-model-global-error' export * from './reducer-global-error' export * from './schedule-command-global-error' export * from './snapshot-persist-handler-global-error' +export * from './event-global-error' diff --git a/website/docs/03_features/05_error-handling.md b/website/docs/03_features/05_error-handling.md index 0480e9973..8d93fb31c 100644 --- a/website/docs/03_features/05_error-handling.md +++ b/website/docs/03_features/05_error-handling.md @@ -23,7 +23,7 @@ export class MyErrorHandler { } ``` -Tis method receives the error that was thrown and the command that was being handled when the error occurred. +This method receives the error that was thrown and the command that was being handled when the error occurred. ### Scheduled command handle errors @@ -68,7 +68,20 @@ export class MyErrorHandler { } ``` -This method receives the error that was thrown, the name of the entity, the ID of the entity, and the name of the reducer. +### Event errors + +These are the errors that are thrown if the event doesn't exist. You can catch and return new errors in this function annotating a class with `@GlobalErrorHandler` and implementing the following method: + +```typescript +@GlobalErrorHandler() +export class MyErrorHandler { + public static async onEventError(error: Error, eventEnvelope: EventEnvelope): Promise { + // Do something with the error + } +} +``` + +This method receives the error that was thrown and the event received. ### Projection errors @@ -135,6 +148,10 @@ export class AppErrorHandler { return error } + public static async onEventError(error: Error, eventEnvelope: EventEnvelope): Promise { + return error + } + public static async onError(error: Error | undefined): Promise { return error } From 8825c84bf550526680ff439a3ef70963b0be4bb5 Mon Sep 17 00:00:00 2001 From: GITHUBACTION Date: Wed, 31 Jul 2024 14:54:27 +0000 Subject: [PATCH 10/47] Bump versions [skip ci] --- ...events_global_errors_2023-10-30-14-52.json | 10 ------- common/config/rush/version-policies.json | 2 +- packages/application-tester/package.json | 6 ++-- packages/cli/package.json | 10 +++---- .../framework-common-helpers/package.json | 6 ++-- packages/framework-core/CHANGELOG.json | 28 +++++++++++++++++++ packages/framework-core/CHANGELOG.md | 9 +++++- packages/framework-core/package.json | 10 +++---- .../framework-integration-tests/package.json | 28 +++++++++---------- .../package.json | 10 +++---- packages/framework-provider-aws/package.json | 8 +++--- .../package.json | 12 ++++---- .../framework-provider-azure/package.json | 8 +++--- .../package.json | 10 +++---- .../framework-provider-local/package.json | 8 +++--- packages/framework-types/package.json | 6 ++-- packages/metadata-booster/package.json | 4 +-- tools/eslint-config/package.json | 2 +- 18 files changed, 101 insertions(+), 76 deletions(-) delete mode 100644 common/changes/@boostercloud/framework-core/unhandled_events_global_errors_2023-10-30-14-52.json diff --git a/common/changes/@boostercloud/framework-core/unhandled_events_global_errors_2023-10-30-14-52.json b/common/changes/@boostercloud/framework-core/unhandled_events_global_errors_2023-10-30-14-52.json deleted file mode 100644 index 52260cb31..000000000 --- a/common/changes/@boostercloud/framework-core/unhandled_events_global_errors_2023-10-30-14-52.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@boostercloud/framework-core", - "comment": "Handle non-found events with global error handler", - "type": "minor" - } - ], - "packageName": "@boostercloud/framework-core" -} \ No newline at end of file diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 249e895db..b302d2eb1 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -103,6 +103,6 @@ "definitionName": "lockStepVersion", "policyName": "booster", "mainProject": "@boostercloud/framework-core", - "version": "2.14.0" + "version": "2.15.0" } ] diff --git a/packages/application-tester/package.json b/packages/application-tester/package.json index 6e2100283..f060f2965 100644 --- a/packages/application-tester/package.json +++ b/packages/application-tester/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/application-tester", - "version": "2.14.0", + "version": "2.15.0", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "application-tester" @@ -36,7 +36,7 @@ }, "dependencies": { "@apollo/client": "3.7.13", - "@boostercloud/framework-types": "workspace:^2.14.0", + "@boostercloud/framework-types": "workspace:^2.15.0", "cross-fetch": "3.1.5", "graphql": "^16.6.0", "jsonwebtoken": "9.0.1", @@ -48,7 +48,7 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.14.0", + "@boostercloud/eslint-config": "workspace:^2.15.0", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", "eslint": "^8.23.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 321ef40c3..5adb49170 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/cli", "description": "CLI of the Booster Framework, the next level of abstraction for cloud-native applications", - "version": "2.14.0", + "version": "2.15.0", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -12,8 +12,8 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-core": "workspace:^2.14.0", - "@boostercloud/framework-types": "workspace:^2.14.0", + "@boostercloud/framework-core": "workspace:^2.15.0", + "@boostercloud/framework-types": "workspace:^2.15.0", "@oclif/core": "3.15.0", "@oclif/plugin-help": "^5", "chalk": "^2.4.2", @@ -30,8 +30,8 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.14.0", - "@boostercloud/application-tester": "workspace:^2.14.0", + "@boostercloud/eslint-config": "workspace:^2.15.0", + "@boostercloud/application-tester": "workspace:^2.15.0", "@oclif/test": "^3.0.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", diff --git a/packages/framework-common-helpers/package.json b/packages/framework-common-helpers/package.json index 0e0ba93fa..84ffe10e6 100644 --- a/packages/framework-common-helpers/package.json +++ b/packages/framework-common-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-common-helpers", - "version": "2.14.0", + "version": "2.15.0", "description": "Contains Booster common helpers used by the core and provider packages", "keywords": [ "framework-common-helpers" @@ -36,14 +36,14 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-types": "workspace:^2.14.0", + "@boostercloud/framework-types": "workspace:^2.15.0", "child-process-promise": "^2.2.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "class-transformer": "~0.5.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.14.0", + "@boostercloud/eslint-config": "workspace:^2.15.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/child-process-promise": "^2.2.1", diff --git a/packages/framework-core/CHANGELOG.json b/packages/framework-core/CHANGELOG.json index a024a63d4..b91343e11 100644 --- a/packages/framework-core/CHANGELOG.json +++ b/packages/framework-core/CHANGELOG.json @@ -1,6 +1,34 @@ { "name": "@boostercloud/framework-core", "entries": [ + { + "version": "2.15.0", + "tag": "@boostercloud/framework-core_v2.15.0", + "date": "Wed, 31 Jul 2024 14:54:27 GMT", + "comments": { + "minor": [ + { + "comment": "Handle non-found events with global error handler", + "author": "gonzalojaubert <111118818+gonzalojaubert@users.noreply.github.com>", + "commit": "c474f64af3439b15339cd2a6cef31969f568d52c" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@boostercloud/framework-common-helpers\" from `^2.14.0` to `^2.15.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/framework-types\" from `^2.14.0` to `^2.15.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/metadata-booster\" from `^2.14.0` to `^2.15.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/eslint-config\" from `^2.14.0` to `^2.15.0`" + } + ] + } + }, { "version": "2.14.0", "tag": "@boostercloud/framework-core_v2.14.0", diff --git a/packages/framework-core/CHANGELOG.md b/packages/framework-core/CHANGELOG.md index 46da3771b..84b81a777 100644 --- a/packages/framework-core/CHANGELOG.md +++ b/packages/framework-core/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @boostercloud/framework-core -This log was last generated on Tue, 30 Jul 2024 18:43:55 GMT and should not be manually modified. +This log was last generated on Wed, 31 Jul 2024 14:54:27 GMT and should not be manually modified. + +## 2.15.0 +Wed, 31 Jul 2024 14:54:27 GMT + +### Minor changes + +- Handle non-found events with global error handler ## 2.14.0 Tue, 30 Jul 2024 18:43:55 GMT diff --git a/packages/framework-core/package.json b/packages/framework-core/package.json index b485d25c4..21508928f 100644 --- a/packages/framework-core/package.json +++ b/packages/framework-core/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-core", - "version": "2.14.0", + "version": "2.15.0", "description": "Library for your Booster apps", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", @@ -37,8 +37,8 @@ "graphql": "^16.6.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.14.0", - "@boostercloud/framework-types": "workspace:^2.14.0", + "@boostercloud/framework-common-helpers": "workspace:^2.15.0", + "@boostercloud/framework-types": "workspace:^2.15.0", "fp-ts": "^2.11.0", "graphql-scalars": "^1.17.0", "graphql-subscriptions": "2.0.0", @@ -61,8 +61,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/metadata-booster": "workspace:^2.14.0", - "@boostercloud/eslint-config": "workspace:^2.14.0", + "@boostercloud/metadata-booster": "workspace:^2.15.0", + "@boostercloud/eslint-config": "workspace:^2.15.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-integration-tests/package.json b/packages/framework-integration-tests/package.json index d74545fcd..785a0218f 100644 --- a/packages/framework-integration-tests/package.json +++ b/packages/framework-integration-tests/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-integration-tests", "description": "Example project for Booster", - "version": "2.14.0", + "version": "2.15.0", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -9,12 +9,12 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.14.0", - "@boostercloud/framework-core": "workspace:^2.14.0", - "@boostercloud/framework-provider-aws": "workspace:^2.14.0", - "@boostercloud/framework-provider-azure": "workspace:^2.14.0", - "@boostercloud/framework-provider-local": "workspace:^2.14.0", - "@boostercloud/framework-types": "workspace:^2.14.0", + "@boostercloud/framework-common-helpers": "workspace:^2.15.0", + "@boostercloud/framework-core": "workspace:^2.15.0", + "@boostercloud/framework-provider-aws": "workspace:^2.15.0", + "@boostercloud/framework-provider-azure": "workspace:^2.15.0", + "@boostercloud/framework-provider-local": "workspace:^2.15.0", + "@boostercloud/framework-types": "workspace:^2.15.0", "aws-sdk": "2.853.0", "graphql": "^16.6.0", "tslib": "^2.4.0", @@ -33,13 +33,13 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.14.0", - "@boostercloud/application-tester": "workspace:^2.14.0", - "@boostercloud/cli": "workspace:^2.14.0", - "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.14.0", - "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.14.0", - "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.14.0", - "@boostercloud/metadata-booster": "workspace:^2.14.0", + "@boostercloud/eslint-config": "workspace:^2.15.0", + "@boostercloud/application-tester": "workspace:^2.15.0", + "@boostercloud/cli": "workspace:^2.15.0", + "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.15.0", + "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.15.0", + "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.15.0", + "@boostercloud/metadata-booster": "workspace:^2.15.0", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-aws-infrastructure/package.json b/packages/framework-provider-aws-infrastructure/package.json index 736f06767..bf6874f80 100644 --- a/packages/framework-provider-aws-infrastructure/package.json +++ b/packages/framework-provider-aws-infrastructure/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws-infrastructure", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.14.0", + "version": "2.15.0", "description": "Handle the Booster deployment process to AWS", "keywords": [ "framework-provider-aws-infrastructure" @@ -41,9 +41,9 @@ "@aws-cdk/aws-s3-deployment": "^1.170.0", "@aws-cdk/core": "^1.170.0", "@aws-cdk/cx-api": "^1.170.0", - "@boostercloud/framework-common-helpers": "workspace:^2.14.0", - "@boostercloud/framework-provider-aws": "workspace:^2.14.0", - "@boostercloud/framework-types": "workspace:^2.14.0", + "@boostercloud/framework-common-helpers": "workspace:^2.15.0", + "@boostercloud/framework-provider-aws": "workspace:^2.15.0", + "@boostercloud/framework-types": "workspace:^2.15.0", "constructs": "^3.3.69", "aws-cdk": "^1.170.0", "aws-sdk": "2.853.0", @@ -69,7 +69,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.14.0", + "@boostercloud/eslint-config": "workspace:^2.15.0", "@types/aws-lambda": "8.10.48", "@types/aws-sdk": "2.7.0", "@types/chai": "4.2.18", diff --git a/packages/framework-provider-aws/package.json b/packages/framework-provider-aws/package.json index 3214bd2be..be9afeb16 100644 --- a/packages/framework-provider-aws/package.json +++ b/packages/framework-provider-aws/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.14.0", + "version": "2.15.0", "description": "Handle Booster's integration with AWS", "keywords": [ "framework-provider-aws" @@ -24,8 +24,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.14.0", - "@boostercloud/framework-types": "workspace:^2.14.0", + "@boostercloud/framework-common-helpers": "workspace:^2.15.0", + "@boostercloud/framework-types": "workspace:^2.15.0", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4" }, @@ -43,7 +43,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.14.0", + "@boostercloud/eslint-config": "workspace:^2.15.0", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-azure-infrastructure/package.json b/packages/framework-provider-azure-infrastructure/package.json index 9c5787d39..9f63a8a94 100644 --- a/packages/framework-provider-azure-infrastructure/package.json +++ b/packages/framework-provider-azure-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure-infrastructure", - "version": "2.14.0", + "version": "2.15.0", "description": "Handle the Booster deployment process to Azure", "keywords": [ "framework-provider-azure-infrastructure" @@ -25,10 +25,10 @@ "dependencies": { "@azure/arm-appservice": "^13.0.0", "@azure/cosmos": "^4.0.0", - "@boostercloud/framework-common-helpers": "workspace:^2.14.0", - "@boostercloud/framework-core": "workspace:^2.14.0", - "@boostercloud/framework-provider-azure": "workspace:^2.14.0", - "@boostercloud/framework-types": "workspace:^2.14.0", + "@boostercloud/framework-common-helpers": "workspace:^2.15.0", + "@boostercloud/framework-core": "workspace:^2.15.0", + "@boostercloud/framework-provider-azure": "workspace:^2.15.0", + "@boostercloud/framework-types": "workspace:^2.15.0", "@cdktf/provider-azurerm": "11.2.0", "@cdktf/provider-time": "9.0.2", "@types/archiver": "5.1.0", @@ -67,7 +67,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.14.0", + "@boostercloud/eslint-config": "workspace:^2.15.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-azure/package.json b/packages/framework-provider-azure/package.json index 68f2af24f..c335aa8a4 100644 --- a/packages/framework-provider-azure/package.json +++ b/packages/framework-provider-azure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure", - "version": "2.14.0", + "version": "2.15.0", "description": "Handle Booster's integration with Azure", "keywords": [ "framework-provider-azure" @@ -27,14 +27,14 @@ "@azure/functions": "^1.2.2", "@azure/identity": "~2.1.0", "@azure/event-hubs": "5.11.1", - "@boostercloud/framework-common-helpers": "workspace:^2.14.0", - "@boostercloud/framework-types": "workspace:^2.14.0", + "@boostercloud/framework-common-helpers": "workspace:^2.15.0", + "@boostercloud/framework-types": "workspace:^2.15.0", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "@azure/web-pubsub": "~1.1.0" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.14.0", + "@boostercloud/eslint-config": "workspace:^2.15.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-local-infrastructure/package.json b/packages/framework-provider-local-infrastructure/package.json index 405351adb..281f10481 100644 --- a/packages/framework-provider-local-infrastructure/package.json +++ b/packages/framework-provider-local-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local-infrastructure", - "version": "2.14.0", + "version": "2.15.0", "description": "Handle the Booster running process of the local runtime", "keywords": [ "framework-provider-local-infrastructure" @@ -23,9 +23,9 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.14.0", - "@boostercloud/framework-provider-local": "workspace:^2.14.0", - "@boostercloud/framework-types": "workspace:^2.14.0", + "@boostercloud/framework-common-helpers": "workspace:^2.15.0", + "@boostercloud/framework-provider-local": "workspace:^2.15.0", + "@boostercloud/framework-types": "workspace:^2.15.0", "cors": "2.8.5", "express": "^4.19.2", "node-schedule": "^2.1.0", @@ -46,7 +46,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.14.0", + "@boostercloud/eslint-config": "workspace:^2.15.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/cors": "^2.8.12", diff --git a/packages/framework-provider-local/package.json b/packages/framework-provider-local/package.json index adf888c2e..e99d8b187 100644 --- a/packages/framework-provider-local/package.json +++ b/packages/framework-provider-local/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local", - "version": "2.14.0", + "version": "2.15.0", "description": "Debug your Booster projects locally", "keywords": [ "framework-provider-local" @@ -23,8 +23,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.14.0", - "@boostercloud/framework-types": "workspace:^2.14.0", + "@boostercloud/framework-common-helpers": "workspace:^2.15.0", + "@boostercloud/framework-types": "workspace:^2.15.0", "@seald-io/nedb": "4.0.2", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", @@ -44,7 +44,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.14.0", + "@boostercloud/eslint-config": "workspace:^2.15.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/express": "^4.17.21", diff --git a/packages/framework-types/package.json b/packages/framework-types/package.json index 009fb61f2..075d755a8 100644 --- a/packages/framework-types/package.json +++ b/packages/framework-types/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-types", - "version": "2.14.0", + "version": "2.15.0", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "framework-types" @@ -54,8 +54,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.14.0", - "@boostercloud/metadata-booster": "workspace:^2.14.0", + "@boostercloud/eslint-config": "workspace:^2.15.0", + "@boostercloud/metadata-booster": "workspace:^2.15.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/mocha": "10.0.1", diff --git a/packages/metadata-booster/package.json b/packages/metadata-booster/package.json index e2d6fc1bc..ee7e508fa 100644 --- a/packages/metadata-booster/package.json +++ b/packages/metadata-booster/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/metadata-booster", - "version": "2.14.0", + "version": "2.15.0", "description": "Emits detailed metadata of your types. You can then get it in runtime to deal with schema-aware operation, like defining GraphQL schemas, ORM operations, etc.", "repository": "https://github.com/boostercloud/booster.git", "keywords": [ @@ -38,7 +38,7 @@ "eslint-config-prettier": "8.3.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "3.4.0", - "@boostercloud/eslint-config": "workspace:^2.14.0", + "@boostercloud/eslint-config": "workspace:^2.15.0", "@types/node": "^18.18.2", "ts-node": "^10.9.1", "ts-patch": "3.1.2", diff --git a/tools/eslint-config/package.json b/tools/eslint-config/package.json index 0fee9223a..964d46746 100644 --- a/tools/eslint-config/package.json +++ b/tools/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/eslint-config", - "version": "2.14.0", + "version": "2.15.0", "description": "Shared eslint rules", "main": "index.js", "publishConfig": { From 84b93bc513693f326b766678e423c2d669d18b94 Mon Sep 17 00:00:00 2001 From: gonzalojaubert <111118818+gonzalojaubert@users.noreply.github.com> Date: Tue, 6 Aug 2024 21:10:25 +0100 Subject: [PATCH 11/47] Improve global error handler (#1394) * improve GlobalErrorHandler * Add rush change file * Post-merge fixes * Update pnpm-lock.yaml --------- Co-authored-by: Castro Co-authored-by: Castro, Mario --- ...global_error_handler_2023-04-11-09-22.json | 10 + common/config/rush/pnpm-lock.yaml | 1048 ++++++++--------- .../src/booster-command-dispatcher.ts | 4 +- .../src/booster-event-processor.ts | 4 +- .../src/booster-global-error-dispatcher.ts | 25 +- .../booster-scheduled-command-dispatcher.ts | 4 +- .../src/services/event-store.ts | 77 +- .../src/services/read-model-store.ts | 19 +- .../booster-global-error-dispatcher.test.ts | 112 +- .../decorators/global-error-handler.test.ts | 33 +- .../test/services/event-store.test.ts | 17 +- .../test/services/read-model-store.test.ts | 1 + .../functionality/errors.integration.ts | 5 +- .../src/common/app-error-handler.ts | 69 +- .../concepts/global-error-handler-metadata.ts | 39 +- .../errors/command-handler-global-error.ts | 7 +- .../src/errors/event-handler-global-error.ts | 10 +- packages/framework-types/src/errors/index.ts | 1 - .../src/errors/projection-global-error.ts | 5 +- .../src/errors/read-model-global-error.ts | 3 - .../src/errors/reducer-global-error.ts | 5 +- .../errors/schedule-command-global-error.ts | 12 +- website/docs/03_features/05_error-handling.md | 70 +- 23 files changed, 882 insertions(+), 698 deletions(-) create mode 100644 common/changes/@boostercloud/framework-core/improve_global_error_handler_2023-04-11-09-22.json delete mode 100644 packages/framework-types/src/errors/read-model-global-error.ts diff --git a/common/changes/@boostercloud/framework-core/improve_global_error_handler_2023-04-11-09-22.json b/common/changes/@boostercloud/framework-core/improve_global_error_handler_2023-04-11-09-22.json new file mode 100644 index 000000000..0270d96c1 --- /dev/null +++ b/common/changes/@boostercloud/framework-core/improve_global_error_handler_2023-04-11-09-22.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@boostercloud/framework-core", + "comment": "Improve GlobalErrorHandler", + "type": "minor" + } + ], + "packageName": "@boostercloud/framework-core" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 25ee27dc9..cb6d01232 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,8 +8,8 @@ importers: ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^2.14.0 - '@boostercloud/framework-types': workspace:^2.14.0 + '@boostercloud/eslint-config': workspace:^2.15.0 + '@boostercloud/framework-types': workspace:^2.15.0 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.18.2 @@ -51,7 +51,7 @@ importers: devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/jsonwebtoken': 9.0.1 - '@types/node': 18.19.39 + '@types/node': 18.19.43 '@types/ws': 8.5.4 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry @@ -62,18 +62,18 @@ importers: eslint-plugin-import: 2.29.1_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 - fast-check: 3.19.0 + fast-check: 3.20.0 prettier: 2.3.0 - rimraf: 5.0.7 + rimraf: 5.0.10 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 typescript: 5.1.6 ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^2.14.0 - '@boostercloud/eslint-config': workspace:^2.14.0 - '@boostercloud/framework-core': workspace:^2.14.0 - '@boostercloud/framework-types': workspace:^2.14.0 + '@boostercloud/application-tester': workspace:^2.15.0 + '@boostercloud/eslint-config': workspace:^2.15.0 + '@boostercloud/framework-core': workspace:^2.15.0 + '@boostercloud/framework-types': workspace:^2.15.0 '@effect-ts/core': ^0.60.4 '@oclif/core': 3.15.0 '@oclif/plugin-help': ^5 @@ -129,11 +129,11 @@ importers: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@oclif/core': 3.15.0_typescript@5.1.6 - '@oclif/plugin-help': 5.2.20_qtieencaeb6d72le3lfodyl2z4 + '@oclif/plugin-help': 5.2.20_prqahbuxbjzfz737e746ioxvhu chalk: 2.4.2 child-process-promise: 2.2.1 execa: 2.1.0 - fp-ts: 2.16.7 + fp-ts: 2.16.9 fs-extra: 8.1.0 inflected: 2.1.0 inquirer: 7.3.3 @@ -154,7 +154,7 @@ importers: '@types/inquirer': 6.5.0 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.39 + '@types/node': 18.19.43 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -174,17 +174,17 @@ importers: nyc: 15.1.0 prettier: 2.3.0 rewire: 5.0.0 - rimraf: 5.0.7 + rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 + ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^2.14.0 - '@boostercloud/framework-types': workspace:^2.14.0 + '@boostercloud/eslint-config': workspace:^2.15.0 + '@boostercloud/framework-types': workspace:^2.15.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -231,7 +231,7 @@ importers: '@types/child-process-promise': 2.2.6 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.39 + '@types/node': 18.19.43 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -250,18 +250,18 @@ importers: nyc: 15.1.0 prettier: 2.3.0 rewire: 5.0.0 - rimraf: 5.0.7 + rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 + ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu typescript: 5.1.6 ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^2.14.0 - '@boostercloud/framework-common-helpers': workspace:^2.14.0 - '@boostercloud/framework-types': workspace:^2.14.0 - '@boostercloud/metadata-booster': workspace:^2.14.0 + '@boostercloud/eslint-config': workspace:^2.15.0 + '@boostercloud/framework-common-helpers': workspace:^2.15.0 + '@boostercloud/framework-types': workspace:^2.15.0 + '@boostercloud/metadata-booster': workspace:^2.15.0 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 '@effect/platform-node': 0.45.26 @@ -323,11 +323,11 @@ importers: '@effect/platform-node': 0.45.26_cahjalgelcnk6vcj6x2oc46m3a '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye + '@effect/schema': 0.64.18_snixcscoukgak74x66m47k3t4i '@effect/typeclass': 0.23.17_effect@2.4.17 effect: 2.4.17 - fast-check: 3.19.0 - fp-ts: 2.16.7 + fast-check: 3.20.0 + fp-ts: 2.16.9 graphql-scalars: 1.23.0_graphql@16.9.0 graphql-subscriptions: 2.0.0_graphql@16.9.0 inflected: 2.1.0 @@ -347,7 +347,7 @@ importers: '@types/inflected': 1.1.29 '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 - '@types/node': 18.19.39 + '@types/node': 18.19.43 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/validator': 13.1.3 @@ -368,29 +368,29 @@ importers: nock: 11.8.2 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.7 + rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 + ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^2.14.0 - '@boostercloud/cli': workspace:^2.14.0 - '@boostercloud/eslint-config': workspace:^2.14.0 - '@boostercloud/framework-common-helpers': workspace:^2.14.0 - '@boostercloud/framework-core': workspace:^2.14.0 - '@boostercloud/framework-provider-aws': workspace:^2.14.0 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.14.0 - '@boostercloud/framework-provider-azure': workspace:^2.14.0 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.14.0 - '@boostercloud/framework-provider-local': workspace:^2.14.0 - '@boostercloud/framework-provider-local-infrastructure': workspace:^2.14.0 - '@boostercloud/framework-types': workspace:^2.14.0 - '@boostercloud/metadata-booster': workspace:^2.14.0 + '@boostercloud/application-tester': workspace:^2.15.0 + '@boostercloud/cli': workspace:^2.15.0 + '@boostercloud/eslint-config': workspace:^2.15.0 + '@boostercloud/framework-common-helpers': workspace:^2.15.0 + '@boostercloud/framework-core': workspace:^2.15.0 + '@boostercloud/framework-provider-aws': workspace:^2.15.0 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.15.0 + '@boostercloud/framework-provider-azure': workspace:^2.15.0 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.15.0 + '@boostercloud/framework-provider-local': workspace:^2.15.0 + '@boostercloud/framework-provider-local-infrastructure': workspace:^2.15.0 + '@boostercloud/framework-types': workspace:^2.15.0 + '@boostercloud/metadata-booster': workspace:^2.15.0 '@effect-ts/core': ^0.60.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 @@ -467,13 +467,13 @@ importers: '@effect/platform-node': 0.45.26_cahjalgelcnk6vcj6x2oc46m3a '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye + '@effect/schema': 0.64.18_snixcscoukgak74x66m47k3t4i '@effect/typeclass': 0.23.17_effect@2.4.17 aws-sdk: 2.853.0 effect: 2.4.17 express: 4.19.2 express-unless: 2.1.3 - fast-check: 3.19.0 + fast-check: 3.20.0 graphql: 16.9.0 tslib: 2.6.3 ws: 8.17.1 @@ -496,7 +496,7 @@ importers: '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 '@types/nedb': 1.8.16 - '@types/node': 18.19.39 + '@types/node': 18.19.43 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 @@ -525,20 +525,20 @@ importers: prettier: 2.3.0 react: 17.0.2 reflect-metadata: 0.1.13 - rimraf: 5.0.7 + rimraf: 5.0.10 serverless: 3.8.0 serverless-artillery: 0.5.2 sinon: 9.2.3 subscriptions-transport-ws: 0.11.0_graphql@16.9.0 - ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 + ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^2.14.0 - '@boostercloud/framework-common-helpers': workspace:^2.14.0 - '@boostercloud/framework-types': workspace:^2.14.0 + '@boostercloud/eslint-config': workspace:^2.15.0 + '@boostercloud/framework-common-helpers': workspace:^2.15.0 + '@boostercloud/framework-types': workspace:^2.15.0 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -586,7 +586,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.39 + '@types/node': 18.19.43 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -606,10 +606,10 @@ importers: nyc: 15.1.0 prettier: 2.3.0 rewire: 5.0.0 - rimraf: 5.0.7 + rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 + ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu typescript: 5.1.6 velocityjs: 2.0.6 @@ -632,10 +632,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^2.14.0 - '@boostercloud/framework-common-helpers': workspace:^2.14.0 - '@boostercloud/framework-provider-aws': workspace:^2.14.0 - '@boostercloud/framework-types': workspace:^2.14.0 + '@boostercloud/eslint-config': workspace:^2.15.0 + '@boostercloud/framework-common-helpers': workspace:^2.15.0 + '@boostercloud/framework-provider-aws': workspace:^2.15.0 + '@boostercloud/framework-types': workspace:^2.15.0 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -717,7 +717,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.39 + '@types/node': 18.19.43 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -735,10 +735,10 @@ importers: nyc: 15.1.0 prettier: 2.3.0 rewire: 5.0.0 - rimraf: 5.0.7 + rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 + ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu typescript: 5.1.6 velocityjs: 2.0.6 @@ -749,9 +749,9 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^2.14.0 - '@boostercloud/framework-common-helpers': workspace:^2.14.0 - '@boostercloud/framework-types': workspace:^2.14.0 + '@boostercloud/eslint-config': workspace:^2.15.0 + '@boostercloud/framework-common-helpers': workspace:^2.15.0 + '@boostercloud/framework-types': workspace:^2.15.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -795,7 +795,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.39 + '@types/node': 18.19.43 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 @@ -811,10 +811,10 @@ importers: mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.7 + rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 + ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu typescript: 5.1.6 ../../packages/framework-provider-azure-infrastructure: @@ -823,11 +823,11 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^2.14.0 - '@boostercloud/framework-common-helpers': workspace:^2.14.0 - '@boostercloud/framework-core': workspace:^2.14.0 - '@boostercloud/framework-provider-azure': workspace:^2.14.0 - '@boostercloud/framework-types': workspace:^2.14.0 + '@boostercloud/eslint-config': workspace:^2.15.0 + '@boostercloud/framework-common-helpers': workspace:^2.15.0 + '@boostercloud/framework-core': workspace:^2.15.0 + '@boostercloud/framework-provider-azure': workspace:^2.15.0 + '@boostercloud/framework-types': workspace:^2.15.0 '@cdktf/provider-azurerm': 11.2.0 '@cdktf/provider-time': 9.0.2 '@effect-ts/core': ^0.60.4 @@ -912,7 +912,7 @@ importers: '@types/fs-extra': 9.0.13 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.39 + '@types/node': 18.19.43 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 @@ -927,16 +927,16 @@ importers: mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.7 + rimraf: 5.0.10 sinon: 9.2.3 - ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 + ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu typescript: 5.1.6 ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^2.14.0 - '@boostercloud/framework-common-helpers': workspace:^2.14.0 - '@boostercloud/framework-types': workspace:^2.14.0 + '@boostercloud/eslint-config': workspace:^2.15.0 + '@boostercloud/framework-common-helpers': workspace:^2.15.0 + '@boostercloud/framework-types': workspace:^2.15.0 '@effect-ts/core': ^0.60.4 '@seald-io/nedb': 4.0.2 '@types/chai': 4.2.18 @@ -985,7 +985,7 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.39 + '@types/node': 18.19.43 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/sinon-express-mock': 1.3.12 @@ -1004,19 +1004,19 @@ importers: mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.7 + rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 + ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu typescript: 5.1.6 ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^2.14.0 - '@boostercloud/framework-common-helpers': workspace:^2.14.0 - '@boostercloud/framework-provider-local': workspace:^2.14.0 - '@boostercloud/framework-types': workspace:^2.14.0 + '@boostercloud/eslint-config': workspace:^2.15.0 + '@boostercloud/framework-common-helpers': workspace:^2.15.0 + '@boostercloud/framework-provider-local': workspace:^2.15.0 + '@boostercloud/framework-types': workspace:^2.15.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1069,7 +1069,7 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.39 + '@types/node': 18.19.43 '@types/node-schedule': 1.3.2 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -1087,17 +1087,17 @@ importers: mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.7 + rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 + ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu typescript: 5.1.6 ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^2.14.0 - '@boostercloud/metadata-booster': workspace:^2.14.0 + '@boostercloud/eslint-config': workspace:^2.15.0 + '@boostercloud/metadata-booster': workspace:^2.15.0 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@effect/cli': 0.35.26 @@ -1143,7 +1143,7 @@ importers: '@effect/platform': 0.48.24_aixcdyfeuz2zct7jthaihye4ri '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye + '@effect/schema': 0.64.18_snixcscoukgak74x66m47k3t4i '@effect/typeclass': 0.23.17_effect@2.4.17 effect: 2.4.17 tslib: 2.6.3 @@ -1156,7 +1156,7 @@ importers: '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/mocha': 10.0.1 - '@types/node': 18.19.39 + '@types/node': 18.19.43 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 @@ -1169,19 +1169,19 @@ importers: eslint-plugin-import: 2.29.1_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 - fast-check: 3.19.0 + fast-check: 3.20.0 graphql: 16.9.0 mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 - rimraf: 5.0.7 + rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 typescript: 5.1.6 ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^2.14.0 + '@boostercloud/eslint-config': workspace:^2.15.0 '@effect-ts/core': ^0.60.4 '@types/node': ^18.18.2 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -1207,7 +1207,7 @@ importers: tslib: 2.6.3 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config - '@types/node': 18.19.39 + '@types/node': 18.19.43 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry eslint: 8.57.0 @@ -1216,9 +1216,9 @@ importers: eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 prettier: 2.3.0 - rimraf: 5.0.7 + rimraf: 5.0.10 sinon: 9.2.3 - ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 + ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu ts-patch: 3.1.2 typescript: 5.1.6 @@ -1668,11 +1668,10 @@ packages: '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu - '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 + '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 - yaml: 1.10.2 transitivePeerDependencies: - '@aws-cdk/aws-lambda' - '@aws-cdk/cx-api' @@ -1788,7 +1787,6 @@ packages: '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/custom-resources': 1.204.0_c23kgzmvfhgnr6qpzzlbsfzuc4 constructs: 3.4.344 - punycode: 2.3.1 transitivePeerDependencies: - '@aws-cdk/aws-ec2' - '@aws-cdk/aws-logs' @@ -1943,7 +1941,7 @@ packages: '@aws-cdk/aws-route53-targets': 1.204.0_2eviprr3zwoouaslbumtdekrhi '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu - '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 + '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq '@aws-cdk/aws-servicediscovery': 1.204.0_nu23nesxfni464wb5cy4ehgagi '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -2244,7 +2242,7 @@ packages: '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-notifications': 1.204.0_xguspq3b5n56mo6dsez57f32qa - '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 + '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sns-subscriptions': 1.204.0_bpkznh2gsccwq6qpaogbkb4psu '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -2438,7 +2436,6 @@ packages: '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/lambda-layer-awscli': 1.204.0_e7ybiu4yrrtvf3zlvzrvcjkvyy - case: 1.6.3 constructs: 3.4.344 transitivePeerDependencies: - '@aws-cdk/assets' @@ -2514,7 +2511,7 @@ packages: constructs: 3.4.344 dev: false - /@aws-cdk/aws-secretsmanager/1.204.0_336juigttbrwz7tyvm6a6wfpy4: + /@aws-cdk/aws-secretsmanager/1.204.0_2o53qceqenzlpxe4mjswmsqfiq: resolution: {integrity: sha512-ykpjYmP6qVOFbHtkaQBu3Xk7xp2UTR0ouzk7pb+zrEHKGmRvzGq+8J0IU+qXBJgQIVwFAPf2IgOSTzj6FJPdyA==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -2529,12 +2526,18 @@ packages: '@aws-cdk/cx-api': 1.204.0 constructs: ^3.3.69 dependencies: + '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu + '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-sam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/cx-api': 1.203.0 constructs: 3.4.344 + transitivePeerDependencies: + - '@aws-cdk/assets' + - '@aws-cdk/aws-logs' + - '@aws-cdk/aws-s3' dev: false /@aws-cdk/aws-servicediscovery/1.204.0_nu23nesxfni464wb5cy4ehgagi: @@ -2712,9 +2715,6 @@ packages: /@aws-cdk/cloud-assembly-schema/1.203.0: resolution: {integrity: sha512-r252InZ8Oh7q7ztriaA3n6F48QOFVfNcT/KO4XOlYyt1xDWRMENDYf+D+DVr6O5klcaa3ivvvDT7DRuW3xdVOQ==} engines: {node: '>= 14.15.0'} - dependencies: - jsonschema: 1.4.1 - semver: 7.6.2 dev: false bundledDependencies: - jsonschema @@ -2728,9 +2728,6 @@ packages: This package is no longer being updated, and users should migrate to AWS CDK v2. For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html - dependencies: - jsonschema: 1.4.1 - semver: 7.6.2 dev: false bundledDependencies: - jsonschema @@ -2739,9 +2736,6 @@ packages: /@aws-cdk/cloud-assembly-schema/2.39.1: resolution: {integrity: sha512-lSVaaedXWeK08uoq0IXDCspz9U/H4qIERemdsMQrMUDTiUe/JBby7vtmyMvOdEscE8GMAmiOzoPmAE0Uf+yw5A==} engines: {node: '>= 14.15.0'} - dependencies: - jsonschema: 1.4.1 - semver: 7.6.2 dev: false bundledDependencies: - jsonschema @@ -2775,11 +2769,7 @@ packages: '@aws-cdk/cloud-assembly-schema': 1.204.0 '@aws-cdk/cx-api': 1.203.0 '@aws-cdk/region-info': 1.204.0 - '@balena/dockerignore': 1.0.2 constructs: 3.4.344 - fs-extra: 9.1.0 - ignore: 5.3.1 - minimatch: 3.1.2 dev: false bundledDependencies: - fs-extra @@ -2822,7 +2812,6 @@ packages: engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 1.203.0 - semver: 7.6.2 dev: false bundledDependencies: - semver @@ -2837,7 +2826,6 @@ packages: For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html dependencies: '@aws-cdk/cloud-assembly-schema': 1.204.0 - semver: 7.6.2 dev: false bundledDependencies: - semver @@ -2847,7 +2835,6 @@ packages: engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 2.39.1 - semver: 7.6.2 dev: false bundledDependencies: - semver @@ -2903,7 +2890,7 @@ packages: '@azure/core-client': 1.9.2 '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.16.1 + '@azure/core-rest-pipeline': 1.16.3 tslib: 2.6.3 transitivePeerDependencies: - supports-color @@ -2918,7 +2905,7 @@ packages: '@azure/core-client': 1.9.2 '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.16.1 + '@azure/core-rest-pipeline': 1.16.3 tslib: 2.6.3 transitivePeerDependencies: - supports-color @@ -2930,8 +2917,8 @@ packages: dependencies: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.7.2 - '@azure/core-util': 1.9.0 - '@azure/logger': 1.1.2 + '@azure/core-util': 1.9.2 + '@azure/logger': 1.1.4 buffer: 6.0.3 events: 3.3.0 jssha: 3.3.1 @@ -2949,7 +2936,7 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 - '@azure/core-util': 1.9.0 + '@azure/core-util': 1.9.2 tslib: 2.6.3 dev: false @@ -2959,10 +2946,10 @@ packages: dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.7.2 - '@azure/core-rest-pipeline': 1.16.1 + '@azure/core-rest-pipeline': 1.16.3 '@azure/core-tracing': 1.1.2 - '@azure/core-util': 1.9.0 - '@azure/logger': 1.1.2 + '@azure/core-util': 1.9.2 + '@azure/logger': 1.1.4 tslib: 2.6.3 transitivePeerDependencies: - supports-color @@ -2973,8 +2960,8 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 - '@azure/core-util': 1.9.0 - '@azure/logger': 1.1.2 + '@azure/core-util': 1.9.2 + '@azure/logger': 1.1.4 tslib: 2.6.3 dev: false @@ -2985,15 +2972,15 @@ packages: tslib: 2.6.3 dev: false - /@azure/core-rest-pipeline/1.16.1: - resolution: {integrity: sha512-ExPSbgjwCoht6kB7B4MeZoBAxcQSIl29r/bPeazZJx50ej4JJCByimLOrZoIsurISNyJQQHf30b3JfqC3Hb88A==} + /@azure/core-rest-pipeline/1.16.3: + resolution: {integrity: sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==} engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.7.2 '@azure/core-tracing': 1.1.2 - '@azure/core-util': 1.9.0 - '@azure/logger': 1.1.2 + '@azure/core-util': 1.9.2 + '@azure/logger': 1.1.4 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 tslib: 2.6.3 @@ -3008,8 +2995,8 @@ packages: tslib: 2.6.3 dev: false - /@azure/core-util/1.9.0: - resolution: {integrity: sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==} + /@azure/core-util/1.9.2: + resolution: {integrity: sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ==} engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 @@ -3022,9 +3009,9 @@ packages: dependencies: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.7.2 - '@azure/core-rest-pipeline': 1.16.1 + '@azure/core-rest-pipeline': 1.16.3 '@azure/core-tracing': 1.1.2 - debug: 4.3.5 + debug: 4.3.6 fast-json-stable-stringify: 2.1.0 jsbi: 3.2.5 node-abort-controller: 3.1.1 @@ -3045,8 +3032,8 @@ packages: '@azure/core-amqp': 3.3.0 '@azure/core-auth': 1.7.2 '@azure/core-tracing': 1.1.2 - '@azure/core-util': 1.9.0 - '@azure/logger': 1.1.2 + '@azure/core-util': 1.9.2 + '@azure/logger': 1.1.4 buffer: 6.0.3 is-buffer: 2.0.5 jssha: 3.3.1 @@ -3068,10 +3055,10 @@ packages: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.7.2 '@azure/core-client': 1.9.2 - '@azure/core-rest-pipeline': 1.16.1 + '@azure/core-rest-pipeline': 1.16.3 '@azure/core-tracing': 1.1.2 - '@azure/core-util': 1.9.0 - '@azure/logger': 1.1.2 + '@azure/core-util': 1.9.2 + '@azure/logger': 1.1.4 '@azure/msal-browser': 2.39.0 '@azure/msal-common': 7.6.0 '@azure/msal-node': 1.18.4 @@ -3085,8 +3072,8 @@ packages: - supports-color dev: false - /@azure/logger/1.1.2: - resolution: {integrity: sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==} + /@azure/logger/1.1.4: + resolution: {integrity: sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==} engines: {node: '>=18.0.0'} dependencies: tslib: 2.6.3 @@ -3130,9 +3117,9 @@ packages: dependencies: '@azure/core-auth': 1.7.2 '@azure/core-client': 1.9.2 - '@azure/core-rest-pipeline': 1.16.1 + '@azure/core-rest-pipeline': 1.16.3 '@azure/core-tracing': 1.1.2 - '@azure/logger': 1.1.2 + '@azure/logger': 1.1.4 jsonwebtoken: 9.0.1 tslib: 2.6.3 transitivePeerDependencies: @@ -3146,27 +3133,27 @@ packages: '@babel/highlight': 7.24.7 picocolors: 1.0.1 - /@babel/compat-data/7.24.7: - resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} + /@babel/compat-data/7.25.2: + resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.24.7: - resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} + /@babel/core/7.25.2: + resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-module-transforms': 7.24.7_@babel+core@7.24.7 - '@babel/helpers': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/generator': 7.25.0 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-module-transforms': 7.25.2_@babel+core@7.25.2 + '@babel/helpers': 7.25.0 + '@babel/parser': 7.25.3 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 convert-source-map: 2.0.0 - debug: 4.3.5 + debug: 4.3.6 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -3174,70 +3161,47 @@ packages: - supports-color dev: true - /@babel/generator/7.24.7: - resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} + /@babel/generator/7.25.0: + resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.25.2 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - /@babel/helper-compilation-targets/7.24.7: - resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} + /@babel/helper-compilation-targets/7.25.2: + resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.24.7 - '@babel/helper-validator-option': 7.24.7 - browserslist: 4.23.1 + '@babel/compat-data': 7.25.2 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.3 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-environment-visitor/7.24.7: - resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.7 - dev: true - - /@babel/helper-function-name/7.24.7: - resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 - dev: true - - /@babel/helper-hoist-variables/7.24.7: - resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.7 - dev: true - /@babel/helper-module-imports/7.24.7: resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-module-transforms/7.24.7_@babel+core@7.24.7: - resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} + /@babel/helper-module-transforms/7.25.2_@babel+core@7.25.2: + resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 + '@babel/core': 7.25.2 '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.3 transitivePeerDependencies: - supports-color dev: true @@ -3246,38 +3210,31 @@ packages: resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-split-export-declaration/7.24.7: - resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.7 - dev: true - - /@babel/helper-string-parser/7.24.7: - resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} + /@babel/helper-string-parser/7.24.8: + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} /@babel/helper-validator-identifier/7.24.7: resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option/7.24.7: - resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} + /@babel/helper-validator-option/7.24.8: + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} dev: true - /@babel/helpers/7.24.7: - resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} + /@babel/helpers/7.25.0: + resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 + '@babel/template': 7.25.0 + '@babel/types': 7.25.2 dev: true /@babel/highlight/7.24.7: @@ -3289,56 +3246,51 @@ packages: js-tokens: 4.0.0 picocolors: 1.0.1 - /@babel/parser/7.24.7: - resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} + /@babel/parser/7.25.3: + resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==} engines: {node: '>=6.0.0'} hasBin: true + dependencies: + '@babel/types': 7.25.2 - /@babel/runtime/7.24.7: - resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} + /@babel/runtime/7.25.0: + resolution: {integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 dev: true - /@babel/template/7.24.7: - resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} + /@babel/template/7.25.0: + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 - /@babel/traverse/7.24.7: - resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} + /@babel/traverse/7.25.3: + resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 - debug: 4.3.5 + '@babel/generator': 7.25.0 + '@babel/parser': 7.25.3 + '@babel/template': 7.25.0 + '@babel/types': 7.25.2 + debug: 4.3.6 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types/7.24.7: - resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} + /@babel/types/7.25.2: + resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.24.7 + '@babel/helper-string-parser': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 - /@balena/dockerignore/1.0.2: - resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} - dev: false - /@cdktf/cli-core/0.19.2_react@17.0.2: resolution: {integrity: sha512-kjgEUhrHx3kUPfL7KsTo6GrurVUPT77FmOUf7wWXt7ajNE5zCPvx/HKGmQruzt0n6eLZp1aKT+r/D6YRfXcIGA==} dependencies: @@ -3353,7 +3305,7 @@ packages: chalk: 4.1.2 chokidar: 3.6.0 cli-spinners: 2.7.0 - codemaker: 1.101.0 + codemaker: 1.102.0 constructs: 10.3.0 cross-fetch: 3.1.5 cross-spawn: 7.0.3 @@ -3369,9 +3321,9 @@ packages: ink-spinner: 4.0.3_ink@3.2.0+react@17.0.2 ink-testing-library: 2.1.0 ink-use-stdout-dimensions: 1.0.5_ink@3.2.0+react@17.0.2 - jsii: 5.4.25 - jsii-pacmak: 1.101.0 - jsii-srcmak: 0.1.1173 + jsii: 5.4.31 + jsii-pacmak: 1.102.0 + jsii-srcmak: 0.1.1204 lodash.isequal: 4.5.0 log4js: 6.9.1 minimatch: 5.1.6 @@ -3379,7 +3331,7 @@ packages: open: 7.4.2 parse-gitignore: 1.0.1 pkg-up: 3.1.0 - semver: 7.6.2 + semver: 7.6.3 sscaff: 1.2.274 stream-buffers: 3.0.3 strip-ansi: 6.0.1 @@ -3406,7 +3358,7 @@ packages: '@sentry/node': 7.118.0 cdktf: 0.19.2_constructs@10.3.0 ci-info: 3.9.0 - codemaker: 1.101.0 + codemaker: 1.102.0 constructs: 10.3.0 cross-spawn: 7.0.3 follow-redirects: 1.15.6 @@ -3421,19 +3373,19 @@ packages: /@cdktf/hcl2cdk/0.19.2: resolution: {integrity: sha512-v0UNRvvzuCi3SnmSAgBFAnWavT0ybR1AzkK8ndgfbB5JLDoNm0iJV0MOTURZF+I0O3V9u4RZsw4DVNPdil2EEA==} dependencies: - '@babel/generator': 7.24.7 - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 + '@babel/generator': 7.25.0 + '@babel/template': 7.25.0 + '@babel/types': 7.25.2 '@cdktf/commons': 0.19.2 '@cdktf/hcl2json': 0.19.2 '@cdktf/provider-generator': 0.19.2 '@cdktf/provider-schema': 0.19.2 camelcase: 6.3.0 deep-equal: 2.2.3 - glob: 10.4.2 + glob: 10.4.5 graphology: 0.25.4_graphology-types@0.24.7 graphology-types: 0.24.7 - jsii-rosetta: 5.4.24 + jsii-rosetta: 5.4.29 prettier: 2.8.8 reserved-words: 0.1.2 zod: 3.23.8 @@ -3471,10 +3423,10 @@ packages: '@cdktf/hcl2json': 0.19.2 '@cdktf/provider-schema': 0.19.2 '@types/node': 18.18.8 - codemaker: 1.101.0 + codemaker: 1.102.0 deepmerge: 4.3.1 fs-extra: 8.1.0 - jsii-srcmak: 0.1.1173 + jsii-srcmak: 0.1.1204 transitivePeerDependencies: - debug - supports-color @@ -3535,11 +3487,11 @@ packages: '@effect/platform': 0.48.24_aixcdyfeuz2zct7jthaihye4ri '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye + '@effect/schema': 0.64.18_snixcscoukgak74x66m47k3t4i effect: 2.4.17 ini: 4.1.3 toml: 3.0.0 - yaml: 2.4.5 + yaml: 2.5.0 dev: false /@effect/platform-node-shared/0.3.29_cahjalgelcnk6vcj6x2oc46m3a: @@ -3551,7 +3503,7 @@ packages: '@effect/platform': 0.48.24_aixcdyfeuz2zct7jthaihye4ri '@parcel/watcher': 2.4.1 effect: 2.4.17 - multipasta: 0.2.2 + multipasta: 0.2.4 dev: false /@effect/platform-node/0.45.26_cahjalgelcnk6vcj6x2oc46m3a: @@ -3564,7 +3516,7 @@ packages: '@effect/platform-node-shared': 0.3.29_cahjalgelcnk6vcj6x2oc46m3a effect: 2.4.17 mime: 3.0.0 - undici: 6.19.2 + undici: 6.19.5 ws: 8.17.1 transitivePeerDependencies: - bufferutil @@ -3577,11 +3529,11 @@ packages: '@effect/schema': ^0.64.18 effect: ^2.4.17 dependencies: - '@effect/schema': 0.64.18_5wzfkogs2kowufbtxgyqyusxye + '@effect/schema': 0.64.18_snixcscoukgak74x66m47k3t4i effect: 2.4.17 - find-my-way-ts: 0.1.4 + find-my-way-ts: 0.1.5 isomorphic-ws: 5.0.0_ws@8.17.1 - multipasta: 0.2.2 + multipasta: 0.2.4 path-browserify: 1.0.1 transitivePeerDependencies: - ws @@ -3608,14 +3560,14 @@ packages: effect: 2.4.17 dev: false - /@effect/schema/0.64.18_5wzfkogs2kowufbtxgyqyusxye: + /@effect/schema/0.64.18_snixcscoukgak74x66m47k3t4i: resolution: {integrity: sha512-utMVAjcKqmNlkJ8hzdXf3FWBOsekKbe3xhYzWLLLFCpdbTMkCFeN52l1QRXTk7rla87sNTYdMA+xcES9maOEog==} peerDependencies: effect: ^2.4.17 fast-check: ^3.13.2 dependencies: effect: 2.4.17 - fast-check: 3.19.0 + fast-check: 3.20.0 dev: false /@effect/typeclass/0.23.17_effect@2.4.17: @@ -3644,7 +3596,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.3.6 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -3672,7 +3624,7 @@ packages: deprecated: Use @eslint/config-array instead dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 + debug: 4.3.6 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -3690,7 +3642,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.4.0 + '@inquirer/type': 1.5.2 ansi-escapes: 4.3.2 chalk: 4.1.2 figures: 3.2.0 @@ -3700,16 +3652,16 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.4.0 + '@inquirer/type': 1.5.2 chalk: 4.1.2 /@inquirer/core/2.3.1: resolution: {integrity: sha512-faYAYnIfdEuns3jGKykaog5oUqFiEVbCx9nXGZfUhyEEpKcHt5bpJfZTb3eOBQKo8I/v4sJkZeBHmFlSZQuBCw==} engines: {node: '>=14.18.0'} dependencies: - '@inquirer/type': 1.4.0 + '@inquirer/type': 1.5.2 '@types/mute-stream': 0.0.1 - '@types/node': 20.14.9 + '@types/node': 20.14.14 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3726,9 +3678,9 @@ packages: resolution: {integrity: sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==} engines: {node: '>=14.18.0'} dependencies: - '@inquirer/type': 1.4.0 + '@inquirer/type': 1.5.2 '@types/mute-stream': 0.0.4 - '@types/node': 20.14.9 + '@types/node': 20.14.14 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3746,7 +3698,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.4.0 + '@inquirer/type': 1.5.2 chalk: 4.1.2 external-editor: 3.1.0 @@ -3755,7 +3707,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.4.0 + '@inquirer/type': 1.5.2 chalk: 4.1.2 figures: 3.2.0 @@ -3764,7 +3716,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.4.0 + '@inquirer/type': 1.5.2 chalk: 4.1.2 /@inquirer/password/1.1.16: @@ -3772,7 +3724,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.4.0 + '@inquirer/type': 1.5.2 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3795,7 +3747,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.4.0 + '@inquirer/type': 1.5.2 chalk: 4.1.2 /@inquirer/select/1.3.3: @@ -3803,13 +3755,13 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.4.0 + '@inquirer/type': 1.5.2 ansi-escapes: 4.3.2 chalk: 4.1.2 figures: 3.2.0 - /@inquirer/type/1.4.0: - resolution: {integrity: sha512-AjOqykVyjdJQvtfkNDGUyMYGF8xN50VUxftCQWsOyIo4DFRLr6VQhW0VItGI1JIyQGCGgIpKa7hMMwNhZb4OIw==} + /@inquirer/type/1.5.2: + resolution: {integrity: sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==} engines: {node: '>=18'} dependencies: mute-stream: 1.0.0 @@ -3846,7 +3798,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 /@jridgewell/resolve-uri/3.1.2: @@ -3857,38 +3809,38 @@ packages: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - /@jridgewell/sourcemap-codec/1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + /@jridgewell/sourcemap-codec/1.5.0: + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} /@jridgewell/trace-mapping/0.3.25: resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 /@jridgewell/trace-mapping/0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 - /@jsii/check-node/1.101.0: - resolution: {integrity: sha512-io8u1GAF9XGp2crx0C/WGiJeUnHGw5X0du4fisbrNJHmVVFwcJbBMjbfXKWq+JSzl8fo/JV3F1LqtjsnawKA2A==} + /@jsii/check-node/1.102.0: + resolution: {integrity: sha512-uyKjxCe1ou11RJz6koBr5vXtyaGjTA45hF+H88GNW96vms7jKqmYdMm067Az1OKwl38h02lQRQ2tmoEzV7u74w==} engines: {node: '>= 14.17.0'} dependencies: chalk: 4.1.2 - semver: 7.6.2 + semver: 7.6.3 - /@jsii/spec/1.101.0: - resolution: {integrity: sha512-855OnjKm4RTzRA78GGTNBG/GLe6X/vHJYD58zg7Rw8rWS7sU6iB65TM/7P7R3cufVew8umjjPjvW7ygS6ZqITQ==} + /@jsii/spec/1.102.0: + resolution: {integrity: sha512-/VcmoEyp7HR0xoFz47/fiyZjAv+0gHG4ZwTbgB+umbB88bTbLZadnqBL7T9OIKQbK4w8HNOaRnHwjNBIYIPxWQ==} engines: {node: '>= 14.17.0'} dependencies: - ajv: 8.16.0 + ajv: 8.17.1 /@kwsites/file-exists/1.1.1_supports-color@8.1.1: resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} dependencies: - debug: 4.3.5_supports-color@8.1.1 + debug: 4.3.6_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true @@ -3915,18 +3867,18 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - /@oclif/core/2.16.0_qtieencaeb6d72le3lfodyl2z4: + /@oclif/core/2.16.0_prqahbuxbjzfz737e746ioxvhu: resolution: {integrity: sha512-dL6atBH0zCZl1A1IXCKJgLPrM/wR7K+Wi401E/IvqsK8m2iCHW+0TEOGrans/cuN3oTW+uxIyJFHJ8Im0k4qBw==} engines: {node: '>=14.0.0'} dependencies: - '@types/cli-progress': 3.11.5 + '@types/cli-progress': 3.11.6 ansi-escapes: 4.3.2 ansi-styles: 4.3.0 cardinal: 2.1.1 chalk: 4.1.2 clean-stack: 3.0.1 cli-progress: 3.12.0 - debug: 4.3.5_supports-color@8.1.1 + debug: 4.3.6_supports-color@8.1.1 ejs: 3.1.10 get-package-type: 0.1.0 globby: 11.1.0 @@ -3942,7 +3894,7 @@ packages: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - ts-node: 10.9.2_qtieencaeb6d72le3lfodyl2z4 + ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu tslib: 2.6.3 widest-line: 3.1.0 wordwrap: 1.0.0 @@ -3965,7 +3917,7 @@ packages: clean-stack: 3.0.1 cli-progress: 3.12.0 color: 4.2.3 - debug: 4.3.5_supports-color@8.1.1 + debug: 4.3.6_supports-color@8.1.1 ejs: 3.1.10 get-package-type: 0.1.0 globby: 11.1.0 @@ -3993,7 +3945,7 @@ packages: resolution: {integrity: sha512-Fg93aNFvXzBq5L7ztVHFP2nYwWU1oTCq48G0TjF/qC1UN36KWa2H5Hsm72kERd5x/sjy2M2Tn4kDEorUlpXOlw==} engines: {node: '>=18.0.0'} dependencies: - '@types/cli-progress': 3.11.5 + '@types/cli-progress': 3.11.6 ansi-escapes: 4.3.2 ansi-styles: 4.3.0 cardinal: 2.1.1 @@ -4001,7 +3953,7 @@ packages: clean-stack: 3.0.1 cli-progress: 3.12.0 color: 4.2.3 - debug: 4.3.5_supports-color@8.1.1 + debug: 4.3.6_supports-color@8.1.1 ejs: 3.1.10 get-package-type: 0.1.0 globby: 11.1.0 @@ -4023,11 +3975,11 @@ packages: wrap-ansi: 7.0.0 dev: true - /@oclif/plugin-help/5.2.20_qtieencaeb6d72le3lfodyl2z4: + /@oclif/plugin-help/5.2.20_prqahbuxbjzfz737e746ioxvhu: resolution: {integrity: sha512-u+GXX/KAGL9S10LxAwNUaWdzbEBARJ92ogmM7g3gDVud2HioCmvWQCDohNRVZ9GYV9oKwZ/M8xwd6a1d95rEKQ==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.16.0_qtieencaeb6d72le3lfodyl2z4 + '@oclif/core': 2.16.0_prqahbuxbjzfz737e746ioxvhu transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -4040,7 +3992,7 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@oclif/core': 3.27.0 - chai: 4.4.1 + chai: 4.5.0 fancy-test: 3.0.16 transitivePeerDependencies: - supports-color @@ -4161,7 +4113,7 @@ packages: detect-libc: 1.0.3 is-glob: 4.0.3 micromatch: 4.0.7 - node-addon-api: 7.1.0 + node-addon-api: 7.1.1 optionalDependencies: '@parcel/watcher-android-arm64': 2.4.1 '@parcel/watcher-darwin-arm64': 2.4.1 @@ -4256,7 +4208,7 @@ packages: node-dir: 0.1.17 node-fetch: 2.7.0 open: 7.4.2 - semver: 7.6.2 + semver: 7.6.3 simple-git: 3.25.0_supports-color@8.1.1 type: 2.7.3 uuid: 8.3.2 @@ -4272,7 +4224,7 @@ packages: /@serverless/event-mocks/1.1.1: resolution: {integrity: sha512-YAV5V/y+XIOfd+HEVeXfPWZb8C6QLruFk9tBivoX2roQLWVq145s4uxf8D0QioCueuRzkukHUS4JIj+KVoS34A==} dependencies: - '@types/lodash': 4.17.6 + '@types/lodash': 4.17.7 lodash: 4.17.21 dev: true @@ -4282,7 +4234,7 @@ packages: dependencies: adm-zip: 0.5.14 archiver: 5.3.0 - axios: 1.7.2 + axios: 1.7.3 fast-glob: 3.3.2 https-proxy-agent: 5.0.1_supports-color@8.1.1 ignore: 5.3.1 @@ -4392,14 +4344,14 @@ packages: dependencies: '@sinonjs/commons': 1.8.6 lodash.get: 4.4.2 - type-detect: 4.0.8 + type-detect: 4.1.0 /@sinonjs/samsam/8.0.0: resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} dependencies: '@sinonjs/commons': 2.0.0 lodash.get: 4.4.2 - type-detect: 4.0.8 + type-detect: 4.1.0 dev: true /@sinonjs/text-encoding/0.7.2: @@ -4457,14 +4409,14 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 18.19.39 + '@types/node': 18.19.43 /@types/cacheable-request/6.0.3: resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 18.19.39 + '@types/node': 18.19.43 '@types/responselike': 1.0.3 dev: true @@ -4487,29 +4439,29 @@ packages: /@types/child-process-promise/2.2.6: resolution: {integrity: sha512-g0pOHijr6Trug43D2bV0PLSIsSHa/xHEES2HeX5BAlduq1vW0nZcq27Zeud5lgmNB+kPYYVqiMap32EHGTco/w==} dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.43 dev: true - /@types/cli-progress/3.11.5: - resolution: {integrity: sha512-D4PbNRbviKyppS5ivBGyFO29POlySLmA2HyUFE4p5QGazAMM3CwkKWcvTl8gvElSuxRh6FPKL8XmidX873ou4g==} + /@types/cli-progress/3.11.6: + resolution: {integrity: sha512-cE3+jb9WRlu+uOSAugewNpITJDt1VF8dHOopPO4IABFc3SXYL5WE/+PTz/FCdZRRfIujiWW3n3aMbv1eIGVRWA==} dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.43 /@types/connect/3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.43 /@types/cors/2.8.17: resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.43 dev: true /@types/express-serve-static-core/4.19.5: resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.43 '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -4529,14 +4481,14 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.43 dev: true /@types/glob/8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.19.39 + '@types/node': 18.19.43 /@types/http-cache-semantics/4.0.4: resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} @@ -4565,16 +4517,16 @@ packages: /@types/jsonwebtoken/9.0.1: resolution: {integrity: sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==} dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.43 /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.43 dev: true - /@types/lodash/4.17.6: - resolution: {integrity: sha512-OpXEVoCKSS3lQqjx9GGGOapBeuW5eUboYHRlHP9urXPX25IKZ6AnP5ZRxtVf63iieUbsHxLn8NQ5Nlftc6yzAA==} + /@types/lodash/4.17.7: + resolution: {integrity: sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==} dev: true /@types/mime/1.3.5: @@ -4594,29 +4546,29 @@ packages: /@types/mute-stream/0.0.1: resolution: {integrity: sha512-0yQLzYhCqGz7CQPE3iDmYjhb7KMBFOP+tBkyw+/Y2YyDI5wpS7itXXxneN1zSsUwWx3Ji6YiVYrhAnpQGS/vkw==} dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.43 /@types/mute-stream/0.0.4: resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.43 /@types/nedb/1.8.16: resolution: {integrity: sha512-ND+uzwAZk7ZI9byOvHGOcZe2R9XUcLF698yDJKn00trFvh+GaemkX3gQKCSKtObjDpv8Uuou+k8v4x4scPr4TA==} dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.43 dev: true /@types/needle/2.5.3: resolution: {integrity: sha512-RwgTwMRaedfyCBe5SSWMpm1Yqzc5UPZEMw0eAd09OSyV93nLRj9/evMGZmgFeHKzUOd4xxtHvgtc+rjcBjI1Qg==} dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.43 dev: false /@types/node-schedule/1.3.2: resolution: {integrity: sha512-Y0CqdAr+lCpArT8CJJjJq4U2v8Bb5e7ru2nV/NhDdaptCMCRdOL3Y7tAhen39HluQMaIKWvPbDuiFBUQpg7Srw==} dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.43 dev: true /@types/node/10.17.60: @@ -4628,13 +4580,13 @@ packages: dependencies: undici-types: 5.26.5 - /@types/node/18.19.39: - resolution: {integrity: sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==} + /@types/node/18.19.43: + resolution: {integrity: sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==} dependencies: undici-types: 5.26.5 - /@types/node/20.14.9: - resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==} + /@types/node/20.14.14: + resolution: {integrity: sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==} dependencies: undici-types: 5.26.5 @@ -4651,7 +4603,7 @@ packages: /@types/responselike/1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.43 dev: true /@types/rewire/2.5.30: @@ -4665,13 +4617,13 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.39 + '@types/node': 18.19.43 /@types/serve-static/1.15.7: resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/node': 18.19.39 + '@types/node': 18.19.43 '@types/send': 0.17.4 /@types/sinon-chai/3.2.5: @@ -4696,7 +4648,7 @@ packages: /@types/through/0.0.33: resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.43 dev: true /@types/uuid/8.3.0: @@ -4713,14 +4665,14 @@ packages: /@types/ws/8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.43 dev: true /@types/yauzl/2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 18.19.39 + '@types/node': 18.19.43 optional: true /@types/yoga-layout/1.9.2: @@ -4742,12 +4694,12 @@ packages: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/type-utils': 5.62.0_trrslaohprr5r73nykufww5lry '@typescript-eslint/utils': 5.62.0_trrslaohprr5r73nykufww5lry - debug: 4.3.5 + debug: 4.3.6 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare-lite: 1.4.0 - semver: 7.6.2 + semver: 7.6.3 tsutils: 3.21.0_typescript@5.1.6 typescript: 5.1.6 transitivePeerDependencies: @@ -4766,7 +4718,7 @@ packages: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 - debug: 4.3.5 + debug: 4.3.6 eslint: 8.57.0 typescript: 5.1.6 transitivePeerDependencies: @@ -4791,7 +4743,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 '@typescript-eslint/utils': 5.62.0_trrslaohprr5r73nykufww5lry - debug: 4.3.5 + debug: 4.3.6 eslint: 8.57.0 tsutils: 3.21.0_typescript@5.1.6 typescript: 5.1.6 @@ -4813,10 +4765,10 @@ packages: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.5 + debug: 4.3.6 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.6.2 + semver: 7.6.3 tsutils: 3.21.0_typescript@5.1.6 typescript: 5.1.6 transitivePeerDependencies: @@ -4836,7 +4788,7 @@ packages: '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 eslint: 8.57.0 eslint-scope: 5.1.1 - semver: 7.6.2 + semver: 7.6.3 transitivePeerDependencies: - supports-color - typescript @@ -4925,7 +4877,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -4933,7 +4885,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.5_supports-color@8.1.1 + debug: 4.3.6_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true @@ -4942,7 +4894,7 @@ packages: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} dependencies: - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color dev: false @@ -4961,7 +4913,7 @@ packages: ajv: optional: true dependencies: - ajv: 8.16.0 + ajv: 8.17.1 dev: true /ajv/6.12.6: @@ -4972,13 +4924,13 @@ packages: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - /ajv/8.16.0: - resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} + /ajv/8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} dependencies: fast-deep-equal: 3.1.3 + fast-uri: 3.0.1 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - uri-js: 4.4.1 /ansi-colors/4.1.1: resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} @@ -5232,8 +5184,8 @@ packages: fsevents: 2.3.2 dev: false - /aws-sdk/2.1654.0: - resolution: {integrity: sha512-b5ryvXipBJod9Uh1GUfQNgi5tIIiluxJbyqr/hZ/mr5U8WxrrfjVq3nGnx5JjevFKYRqXIywhumsVyanfACzFA==} + /aws-sdk/2.1667.0: + resolution: {integrity: sha512-hE4FmdZRMc3bYeC5LUAAU/ryYpjhEm1xdi4aVtUiZ14rrfMd0li6XQIM00a9ctZwDJpwJppcSXfDj6bVBCzvXQ==} engines: {node: '>= 10.0.0'} requiresBuild: true dependencies: @@ -5262,8 +5214,8 @@ packages: uuid: 3.3.2 xml2js: 0.4.19 - /axios/1.7.2: - resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} + /axios/1.7.3: + resolution: {integrity: sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==} dependencies: follow-redirects: 1.15.6 form-data: 4.0.0 @@ -5346,15 +5298,15 @@ packages: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true - /browserslist/4.23.1: - resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} + /browserslist/4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001640 - electron-to-chromium: 1.4.816 - node-releases: 2.0.14 - update-browserslist-db: 1.1.0_browserslist@4.23.1 + caniuse-lite: 1.0.30001649 + electron-to-chromium: 1.5.4 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0_browserslist@4.23.3 dev: true /buffer-alloc-unsafe/1.1.0: @@ -5467,8 +5419,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - /caniuse-lite/1.0.30001640: - resolution: {integrity: sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==} + /caniuse-lite/1.0.30001649: + resolution: {integrity: sha512-fJegqZZ0ZX8HOWr6rcafGr72+xcgJKI9oWfDW5DrD7ExUtgZC7a7R7ZYmZqplh7XDocFdGeIFn7roAxhOeYrPQ==} dev: true /cardinal/2.1.1: @@ -5490,7 +5442,7 @@ packages: '@aws-cdk/cloud-assembly-schema': 2.39.1 '@aws-cdk/cx-api': 2.39.1 archiver: 5.3.2 - aws-sdk: 2.1654.0 + aws-sdk: 2.1667.0 glob: 7.2.3 mime: 2.6.0 yargs: 16.2.0 @@ -5508,14 +5460,14 @@ packages: '@sentry/node': 7.118.0 cdktf: 0.19.2_constructs@10.3.0 ci-info: 3.9.0 - codemaker: 1.101.0 + codemaker: 1.102.0 constructs: 10.3.0 cross-spawn: 7.0.3 https-proxy-agent: 5.0.1 ink-select-input: 4.2.2_ink@3.2.0+react@17.0.2 ink-table: 3.1.0_ink@3.2.0+react@17.0.2 - jsii: 5.4.25 - jsii-pacmak: 1.101.0 + jsii: 5.4.31 + jsii-pacmak: 1.102.0 minimatch: 5.1.6 node-fetch: 2.7.0 pidtree: 0.6.0 @@ -5541,10 +5493,7 @@ packages: peerDependencies: constructs: ^10.0.25 dependencies: - archiver: 5.3.2 constructs: 10.3.0 - json-stable-stringify: 1.1.1 - semver: 7.6.2 bundledDependencies: - archiver - json-stable-stringify @@ -5572,10 +5521,10 @@ packages: deep-eql: 3.0.1 get-func-name: 2.0.2 pathval: 1.1.1 - type-detect: 4.0.8 + type-detect: 4.1.0 - /chai/4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + /chai/4.5.0: + resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 @@ -5584,7 +5533,7 @@ packages: get-func-name: 2.0.2 loupe: 2.3.7 pathval: 1.1.1 - type-detect: 4.0.8 + type-detect: 4.1.0 dev: true /chalk/2.4.2: @@ -5843,8 +5792,8 @@ packages: dependencies: convert-to-spaces: 1.0.2 - /codemaker/1.101.0: - resolution: {integrity: sha512-bAg+N4PA8mniJrCpTYFdaFmJA+3fE1Vjgf4o1EnPc07nw6qRcJsr/D9ZZoutEsvw7UM8OmZp4qZxVzpCqRhhQQ==} + /codemaker/1.102.0: + resolution: {integrity: sha512-lxsbbcSMxCdT+9wUv1AvBH9791andoWDcQ6s7ZK6KsMZ+UkRLO3obzhi7Zm+RIA3lHecqzaGmOKyRnu0Dx/Zew==} engines: {node: '>= 14.17.0'} dependencies: camelcase: 6.3.0 @@ -5906,14 +5855,13 @@ packages: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true - /commonmark/0.31.0: - resolution: {integrity: sha512-nuDsQ34gjmgAqjyIz6mbRWBW/XPE9wsBempAMBk2V/AA88ekztjTM46oi07J6c6Y/2Y8TdYCZi9L0pIBt/oMZw==} + /commonmark/0.31.1: + resolution: {integrity: sha512-M6pbc3sRU96iiOK7rmjv/TNrXvTaOscvthUCq7YOrlvZWbqAA36fyEtBvyI3nCcEK4u+JAy9sAdtftIeXwIWig==} hasBin: true dependencies: entities: 3.0.1 mdurl: 1.0.1 minimist: 1.2.8 - string.prototype.repeat: 1.0.0 /component-emitter/1.3.1: resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} @@ -6031,7 +5979,7 @@ packages: resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==} engines: {node: '>=12.0.0'} dependencies: - luxon: 3.4.4 + luxon: 3.5.0 dev: false /cross-env/7.0.3: @@ -6114,15 +6062,15 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.24.7 + '@babel/runtime': 7.25.0 dev: true /date-format/4.0.14: resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} engines: {node: '>=4.0'} - /dayjs/1.11.11: - resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==} + /dayjs/1.11.12: + resolution: {integrity: sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==} dev: true /debug/2.6.9: @@ -6148,8 +6096,8 @@ packages: supports-color: 8.1.1 dev: true - /debug/4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + /debug/4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -6159,8 +6107,8 @@ packages: dependencies: ms: 2.1.2 - /debug/4.3.5_supports-color@8.1.1: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + /debug/4.3.6_supports-color@8.1.1: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -6248,13 +6196,13 @@ packages: resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==} engines: {node: '>=0.12'} dependencies: - type-detect: 4.0.8 + type-detect: 4.1.0 /deep-eql/4.1.4: resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} dependencies: - type-detect: 4.0.8 + type-detect: 4.1.0 dev: true /deep-equal/2.2.3: @@ -6375,7 +6323,7 @@ packages: hasBin: true dependencies: address: 1.2.2 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -6435,9 +6383,9 @@ packages: resolution: {integrity: sha512-vo835pntK7kzYStk7xUHDifiYJvXxVhUapt85uk2AI94gUUAQX9HNRtrcMHNSc3YHJUEHGbYIGsM99uIbgAtxw==} hasBin: true dependencies: - semver: 7.6.2 + semver: 7.6.3 shelljs: 0.8.5 - typescript: 5.6.0-dev.20240730 + typescript: 5.6.0-dev.20240805 /duration/0.2.2: resolution: {integrity: sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==} @@ -6466,10 +6414,10 @@ packages: engines: {node: '>=0.10.0'} hasBin: true dependencies: - jake: 10.9.1 + jake: 10.9.2 - /electron-to-chromium/1.4.816: - resolution: {integrity: sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==} + /electron-to-chromium/1.5.4: + resolution: {integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==} dev: true /emoji-regex/7.0.3: @@ -6685,7 +6633,7 @@ packages: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 - is-core-module: 2.14.0 + is-core-module: 2.15.0 resolve: 1.22.8 /eslint-module-utils/2.8.1_eslint@8.57.0: @@ -6716,7 +6664,7 @@ packages: eslint-import-resolver-node: 0.3.9 eslint-module-utils: 2.8.1_eslint@8.57.0 hasown: 2.0.2 - is-core-module: 2.14.0 + is-core-module: 2.15.0 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.8 @@ -6752,7 +6700,7 @@ packages: clean-regexp: 1.0.0 eslint: 8.57.0 eslint-utils: 3.0.0_eslint@8.57.0 - esquery: 1.5.0 + esquery: 1.6.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 lodash: 4.17.21 @@ -6760,7 +6708,7 @@ packages: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 safe-regex: 2.1.1 - semver: 7.6.2 + semver: 7.6.3 strip-indent: 3.0.0 dev: true @@ -6818,13 +6766,13 @@ packages: ajv: 6.12.6 chalk: 2.4.2 cross-spawn: 6.0.5 - debug: 4.3.5 + debug: 4.3.6 doctrine: 3.0.0 eslint-scope: 5.1.1 eslint-utils: 1.4.3 eslint-visitor-keys: 1.3.0 espree: 6.2.1 - esquery: 1.5.0 + esquery: 1.6.0 esutils: 2.0.3 file-entry-cache: 5.0.1 functional-red-black-tree: 1.0.1 @@ -6871,13 +6819,13 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5 + debug: 4.3.6 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - esquery: 1.5.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 @@ -6941,8 +6889,8 @@ packages: engines: {node: '>=4'} hasBin: true - /esquery/1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + /esquery/1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 @@ -7070,7 +7018,7 @@ packages: resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==} engines: {node: '>=0.10.0'} dependencies: - mime-db: 1.52.0 + mime-db: 1.53.0 dev: true /ext-name/5.0.0: @@ -7100,7 +7048,7 @@ packages: engines: {node: '>= 10.17.0'} hasBin: true dependencies: - debug: 4.3.5 + debug: 4.3.6 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -7118,8 +7066,8 @@ packages: deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. dependencies: '@types/chai': 4.2.18 - '@types/lodash': 4.17.6 - '@types/node': 18.19.39 + '@types/lodash': 4.17.7 + '@types/node': 18.19.43 '@types/sinon': 10.0.0 lodash: 4.17.21 mock-stdin: 1.0.0 @@ -7130,16 +7078,12 @@ packages: - supports-color dev: true - /fast-check/3.19.0: - resolution: {integrity: sha512-CO2JX/8/PT9bDGO1iXa5h5ey1skaKI1dvecERyhH4pp3PGjwd3KIjMAXEg79Ps9nclsdt4oPbfqiAnLU0EwrAQ==} + /fast-check/3.20.0: + resolution: {integrity: sha512-pZIjqLpOZgdSLecec4GKC3Zq5702MZ34upMKxojnNVSWA0K64V3pXOBT1Wdsrc3AphLtzRBbsi8bRWF4TUGmUg==} engines: {node: '>=8.0.0'} dependencies: pure-rand: 6.1.0 - /fast-decode-uri-component/1.0.1: - resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} - dev: false - /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -7162,16 +7106,13 @@ packages: /fast-levenshtein/2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - /fast-querystring/1.1.2: - resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} - dependencies: - fast-decode-uri-component: 1.0.1 - dev: false - /fast-safe-stringify/2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} dev: true + /fast-uri/3.0.1: + resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + /fastest-levenshtein/1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} @@ -7286,10 +7227,8 @@ packages: pkg-dir: 4.2.0 dev: true - /find-my-way-ts/0.1.4: - resolution: {integrity: sha512-naNl2YZ8m9LlYtPZathQBjXQQ8069uYBFq8We6w9AEGddJErVh0JZw8jd/C/2W9Ib3BjTnu+YN0/rR+ytWxNdw==} - dependencies: - fast-querystring: 1.1.2 + /find-my-way-ts/0.1.5: + resolution: {integrity: sha512-4GOTMrpGQVzsCH2ruUn2vmwzV/02zF4q+ybhCIrw/Rkt3L8KWcycdC6aJMctJzwN4fXD4SD5F/4B9Sksh5rE0A==} dev: false /find-requires/1.0.0: @@ -7394,15 +7333,15 @@ packages: dezalgo: 1.0.4 hexoid: 1.0.0 once: 1.4.0 - qs: 6.12.2 + qs: 6.13.0 dev: true /forwarded/0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} - /fp-ts/2.16.7: - resolution: {integrity: sha512-Xiux+4mHHPj32/mrqN3XIIqEKk/MousgoC2FIaCwehpPjBI4oDrLvQEyQ/2T1sbTe0s/YIQqF98z+uHJLVoS9Q==} + /fp-ts/2.16.9: + resolution: {integrity: sha512-+I2+FnVB+tVaxcYyQkHUq7ZdKScaBlX53A41mxQtpIccsfyv8PzdzP7fzp2AY832T4aoK6UZ5WRX/ebGd8uZuQ==} dev: false /fresh/0.5.2: @@ -7583,13 +7522,12 @@ packages: dependencies: is-glob: 4.0.3 - /glob/10.4.2: - resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} - engines: {node: '>=16 || 14 >=14.18'} + /glob/10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true dependencies: foreground-child: 3.2.1 - jackspeak: 3.4.0 + jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 package-json-from-dist: 1.0.0 @@ -7597,6 +7535,7 @@ packages: /glob/7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -7826,7 +7765,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color dev: false @@ -7844,7 +7783,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -7853,7 +7792,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2_supports-color@8.1.1 - debug: 4.3.5_supports-color@8.1.1 + debug: 4.3.6_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true @@ -7863,7 +7802,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color dev: false @@ -8147,8 +8086,8 @@ packages: dependencies: ci-info: 2.0.0 - /is-core-module/2.14.0: - resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} + /is-core-module/2.15.0: + resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} engines: {node: '>= 0.4'} dependencies: hasown: 2.0.2 @@ -8369,7 +8308,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.25.2 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -8402,7 +8341,7 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: - debug: 4.3.5 + debug: 4.3.6 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -8420,16 +8359,15 @@ packages: /iterall/1.3.0: resolution: {integrity: sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==} - /jackspeak/3.4.0: - resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} - engines: {node: '>=14'} + /jackspeak/3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - /jake/10.9.1: - resolution: {integrity: sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==} + /jake/10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -8474,72 +8412,72 @@ packages: engines: {node: '>=4'} hasBin: true - /jsii-pacmak/1.101.0: - resolution: {integrity: sha512-07a04KtOj+Kmx+5XQVD1JG6QOh6JNqFWh4bbzMDKiFx7JoHhQnLq07b/OlUpCuP7J7Q9WaXXYM59EUQpXO07wg==} + /jsii-pacmak/1.102.0: + resolution: {integrity: sha512-3/nqBYNH8n/5IWI0sBFBYl1yATokEDUDQtYFLjzk7oXNWpUJ23/encI78Cs55ZS6UXcfWN3xczGLqCWnsgEpnw==} engines: {node: '>= 14.17.0'} hasBin: true peerDependencies: - jsii-rosetta: ^1.101.0 || ~5.2.0 || ~5.3.0 || ~5.4.0 + jsii-rosetta: ^1.102.0 || ~5.2.0 || ~5.3.0 || ~5.4.0 dependencies: - '@jsii/check-node': 1.101.0 - '@jsii/spec': 1.101.0 + '@jsii/check-node': 1.102.0 + '@jsii/spec': 1.102.0 clone: 2.1.2 - codemaker: 1.101.0 - commonmark: 0.31.0 + codemaker: 1.102.0 + commonmark: 0.31.1 escape-string-regexp: 4.0.0 fs-extra: 10.1.0 - jsii-reflect: 1.101.0 - semver: 7.6.2 + jsii-reflect: 1.102.0 + semver: 7.6.3 spdx-license-list: 6.9.0 xmlbuilder: 15.1.1 yargs: 16.2.0 - /jsii-pacmak/1.101.0_jsii-rosetta@5.4.24: - resolution: {integrity: sha512-07a04KtOj+Kmx+5XQVD1JG6QOh6JNqFWh4bbzMDKiFx7JoHhQnLq07b/OlUpCuP7J7Q9WaXXYM59EUQpXO07wg==} + /jsii-pacmak/1.102.0_jsii-rosetta@5.4.29: + resolution: {integrity: sha512-3/nqBYNH8n/5IWI0sBFBYl1yATokEDUDQtYFLjzk7oXNWpUJ23/encI78Cs55ZS6UXcfWN3xczGLqCWnsgEpnw==} engines: {node: '>= 14.17.0'} hasBin: true peerDependencies: - jsii-rosetta: ^1.101.0 || ~5.2.0 || ~5.3.0 || ~5.4.0 + jsii-rosetta: ^1.102.0 || ~5.2.0 || ~5.3.0 || ~5.4.0 dependencies: - '@jsii/check-node': 1.101.0 - '@jsii/spec': 1.101.0 + '@jsii/check-node': 1.102.0 + '@jsii/spec': 1.102.0 clone: 2.1.2 - codemaker: 1.101.0 - commonmark: 0.31.0 + codemaker: 1.102.0 + commonmark: 0.31.1 escape-string-regexp: 4.0.0 fs-extra: 10.1.0 - jsii-reflect: 1.101.0 - jsii-rosetta: 5.4.24 - semver: 7.6.2 + jsii-reflect: 1.102.0 + jsii-rosetta: 5.4.29 + semver: 7.6.3 spdx-license-list: 6.9.0 xmlbuilder: 15.1.1 yargs: 16.2.0 - /jsii-reflect/1.101.0: - resolution: {integrity: sha512-ZCFb+laktj/ekNadUYksf+jLZq4fjoQeNe344GwslJOaemGjgAeqy0atV2H8nvTYU8ubszFApUPpdoRvtxgdPw==} + /jsii-reflect/1.102.0: + resolution: {integrity: sha512-Lf2l8z3HSRSyouFGpDddfheP2LznKvFDKVlUWEzO+jDnQFOJOYTv4x617Yy5JIeIa9D8f70drRelOqove6hZtQ==} engines: {node: '>= 14.17.0'} hasBin: true dependencies: - '@jsii/check-node': 1.101.0 - '@jsii/spec': 1.101.0 + '@jsii/check-node': 1.102.0 + '@jsii/spec': 1.102.0 chalk: 4.1.2 fs-extra: 10.1.0 - oo-ascii-tree: 1.101.0 + oo-ascii-tree: 1.102.0 yargs: 16.2.0 - /jsii-rosetta/5.4.24: - resolution: {integrity: sha512-KFeyqpIqbA6eDfmC9DdsG13kSANev47amXrH+ngx8WhXTre8D11V65BiSWlyBdvuUFvmGaN8eUd66+dyPcxndA==} + /jsii-rosetta/5.4.29: + resolution: {integrity: sha512-6/eQFAS+O1szcdczogAn+P6yqjJu88kqZbpGPL0Ks9LxA94EbwNxiAPwsh1g3GvY+ETDVKfND7iEE0tiVpvTsA==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: - '@jsii/check-node': 1.101.0 - '@jsii/spec': 1.101.0 + '@jsii/check-node': 1.102.0 + '@jsii/spec': 1.102.0 '@xmldom/xmldom': 0.8.10 chalk: 4.1.2 - commonmark: 0.31.0 + commonmark: 0.31.1 fast-glob: 3.3.2 - jsii: 5.4.25 - semver: 7.6.2 + jsii: 5.4.31 + semver: 7.6.3 semver-intersect: 1.5.0 stream-json: 1.8.0 typescript: 5.4.5 @@ -8548,32 +8486,32 @@ packages: transitivePeerDependencies: - supports-color - /jsii-srcmak/0.1.1173: - resolution: {integrity: sha512-UvrCJwRZyaW0mQg3Ky5utH31dngKMfKJetfh4JSLsKJM7AM+gJ+UvEbqd18ikMgD72KS3VQKgrwmLVF34GEu+g==} + /jsii-srcmak/0.1.1204: + resolution: {integrity: sha512-mPVD+bEnikHP6ssZ5cRqx+DirjV9/LvnPiunMko5MQDrLeyVdGYLi6kQ4QDF4uMw08oPaXXkhL8EhlZwp4tTDg==} hasBin: true dependencies: fs-extra: 9.1.0 - jsii: 5.4.25 - jsii-pacmak: 1.101.0_jsii-rosetta@5.4.24 - jsii-rosetta: 5.4.24 + jsii: 5.4.31 + jsii-pacmak: 1.102.0_jsii-rosetta@5.4.29 + jsii-rosetta: 5.4.29 ncp: 2.0.0 yargs: 17.7.2 transitivePeerDependencies: - supports-color - /jsii/5.4.25: - resolution: {integrity: sha512-taEVKh+SWtg0nNGzk5YrLGjWRxSnVaVfxgec4BtthwBgmaUH+QMKIIT/AM84s1WRVMWBG+GnZKgKFv+L4jKLig==} + /jsii/5.4.31: + resolution: {integrity: sha512-qxiV/NMucgvHHupZJ36QACejcgZ3qY1FzjVHMOBmDHm+dISZ39p7dH7Hiq2ErMEwCDzdvQgR1OwCsUnrBH6oVQ==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: - '@jsii/check-node': 1.101.0 - '@jsii/spec': 1.101.0 + '@jsii/check-node': 1.102.0 + '@jsii/spec': 1.102.0 case: 1.6.3 chalk: 4.1.2 downlevel-dts: 0.11.0 fast-deep-equal: 3.1.3 log4js: 6.9.1 - semver: 7.6.2 + semver: 7.6.3 semver-intersect: 1.5.0 sort-json: 2.0.1 spdx-license-list: 6.9.0 @@ -8620,15 +8558,6 @@ packages: /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - /json-stable-stringify/1.1.1: - resolution: {integrity: sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - isarray: 2.0.5 - jsonify: 0.0.1 - object-keys: 1.1.1 - /json-stringify-safe/5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true @@ -8657,13 +8586,6 @@ packages: optionalDependencies: graceful-fs: 4.2.11 - /jsonify/0.0.1: - resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} - - /jsonschema/1.4.1: - resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} - dev: false - /jsonwebtoken/8.5.1: resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} engines: {node: '>=4', npm: '>=1.4.28'} @@ -8687,7 +8609,7 @@ packages: jws: 3.2.2 lodash: 4.17.21 ms: 2.1.3 - semver: 7.6.2 + semver: 7.6.3 /jssha/3.3.1: resolution: {integrity: sha512-VCMZj12FCFMQYcFLPRm/0lOBbLi8uM2BhXPTqw3U4YAfs4AZfiApOoBLoN8cQE60Z50m1MYMTQVCfgF/KaCVhQ==} @@ -8730,7 +8652,7 @@ packages: dependencies: '@types/express': 4.17.21 '@types/jsonwebtoken': 9.0.1 - debug: 4.3.5 + debug: 4.3.6 jose: 4.15.9 limiter: 1.1.5 lru-memoizer: 2.3.0 @@ -8943,7 +8865,7 @@ packages: engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 4.3.5 + debug: 4.3.6 flatted: 3.3.1 rfdc: 1.4.1 streamroller: 3.1.5 @@ -8971,9 +8893,8 @@ packages: engines: {node: '>=8'} dev: true - /lru-cache/10.3.0: - resolution: {integrity: sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==} - engines: {node: 14 || >=16.14} + /lru-cache/10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} /lru-cache/4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} @@ -9005,8 +8926,8 @@ packages: es5-ext: 0.10.64 dev: true - /luxon/3.4.4: - resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==} + /luxon/3.5.0: + resolution: {integrity: sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==} engines: {node: '>=12'} dev: false @@ -9028,7 +8949,7 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.6.2 + semver: 7.6.3 dev: true /make-error/1.3.6: @@ -9088,6 +9009,11 @@ packages: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + /mime-db/1.53.0: + resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} + engines: {node: '>= 0.6'} + dev: true + /mime-types/2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} @@ -9269,8 +9195,8 @@ packages: /ms/2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /multipasta/0.2.2: - resolution: {integrity: sha512-KKGdmXIJUmt9BV45LsbUdMnju8eCNSyF9KpbyqK2E3wQXjpPQOg52/Hc+nsmBacmEkNxLVT5h1y3ZgEXB4prXg==} + /multipasta/0.2.4: + resolution: {integrity: sha512-uS6VKZou4iDU4evtrNKGvRqgqkFtPdjG/ql9XDICfnzKEedgf0OZ+oEhM0ps0FL5IVFhkIzOBgLV/KpEEJMthw==} dev: false /mustache/4.1.0: @@ -9376,7 +9302,7 @@ packages: resolution: {integrity: sha512-udrFXJ/aqPM9NmrKOcNJ67lvrs/zroNq2sbumhaMPW5JLNy/6LsWiZEwU9DiQIUHOcOCR4MPeqIG7uQNbDGExA==} engines: {node: '>= 8.0'} dependencies: - debug: 4.3.5 + debug: 4.3.6 json-stringify-safe: 5.0.1 lodash: 4.17.21 mkdirp: 0.5.6 @@ -9389,7 +9315,7 @@ packages: resolution: {integrity: sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==} engines: {node: '>= 10.13'} dependencies: - debug: 4.3.5 + debug: 4.3.6 json-stringify-safe: 5.0.1 propagate: 2.0.1 transitivePeerDependencies: @@ -9400,15 +9326,14 @@ packages: resolution: {integrity: sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==} engines: {node: '>=10'} dependencies: - semver: 7.6.2 + semver: 7.6.3 /node-abort-controller/3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} dev: false - /node-addon-api/7.1.0: - resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} - engines: {node: ^16 || ^18 || >= 20} + /node-addon-api/7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} dev: false /node-dir/0.1.17: @@ -9452,8 +9377,8 @@ packages: process-on-spawn: 1.0.0 dev: true - /node-releases/2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + /node-releases/2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} dev: true /node-rsa/0.4.2: @@ -9507,7 +9432,7 @@ packages: fs2: 0.3.9 memoizee: 0.4.17 node-fetch: 2.7.0 - semver: 7.6.2 + semver: 7.6.3 type: 2.7.3 validate-npm-package-name: 3.0.0 transitivePeerDependencies: @@ -9651,8 +9576,8 @@ packages: dependencies: mimic-fn: 2.1.0 - /oo-ascii-tree/1.101.0: - resolution: {integrity: sha512-hNE9Nfvo4HLa9/dAiaiXUm64KHUvgBa7jPftsb8gZdTv1G1wSMMnd9j7SMcRzaMbDEqi+0cfgeBSIcsKy+k0vA==} + /oo-ascii-tree/1.102.0: + resolution: {integrity: sha512-SNcZNfqtov0Af+6hx+qnliUhTOIxPUfboX/zQnc2EdmGHLXKQ3eSPQ40NopCgv4canzl5EvKGlCJaMCvk2viCQ==} engines: {node: '>= 14.17.0'} /open/7.4.2: @@ -9893,7 +9818,7 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} dependencies: - lru-cache: 10.3.0 + lru-cache: 10.4.3 minipass: 7.1.2 /path-to-regexp/0.1.7: @@ -10128,8 +10053,8 @@ packages: dependencies: side-channel: 1.0.6 - /qs/6.12.2: - resolution: {integrity: sha512-x+NLUpx9SYrcwXtX7ob1gnkSems4i/mGZX5SlYxwIau6RrUSODO89TR/XDGGpn5RPWSYIB+aSfuSlV5+CmbTBg==} + /qs/6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} dependencies: side-channel: 1.0.6 @@ -10359,7 +10284,7 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: - is-core-module: 2.14.0 + is-core-module: 2.15.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -10406,7 +10331,7 @@ packages: /rhea-promise/3.0.3: resolution: {integrity: sha512-a875P5YcMkePSTEWMsnmCQS7Y4v/XvIw7ZoMtJxqtQRZsqSA6PsZxuz4vktyRykPuUgdNsA6F84dS3iEXZoYnQ==} dependencies: - debug: 4.3.5 + debug: 4.3.6 rhea: 3.0.2 tslib: 2.6.3 transitivePeerDependencies: @@ -10416,7 +10341,7 @@ packages: /rhea/3.0.2: resolution: {integrity: sha512-0G1ZNM9yWin8VLvTxyISKH6KfR6gl1TW/1+5yMKPf2r1efhkzTLze09iFtT2vpDjuWIVtSmXz8r18lk/dO8qwQ==} dependencies: - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color dev: false @@ -10444,12 +10369,11 @@ packages: dependencies: glob: 7.2.3 - /rimraf/5.0.7: - resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} - engines: {node: '>=14.18'} + /rimraf/5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true dependencies: - glob: 10.4.2 + glob: 10.4.5 dev: true /run-async/2.4.1: @@ -10553,8 +10477,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - /semver/7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + /semver/7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true @@ -10619,10 +10543,10 @@ packages: '@serverless/dashboard-plugin': 6.4.0_supports-color@8.1.1 '@serverless/platform-client': 4.5.1_supports-color@8.1.1 '@serverless/utils': 6.15.0 - ajv: 8.16.0 + ajv: 8.17.1 ajv-formats: 2.1.1 archiver: 5.3.0 - aws-sdk: 2.1654.0 + aws-sdk: 2.1667.0 bluebird: 3.7.2 cachedir: 2.4.0 chalk: 4.1.2 @@ -10630,7 +10554,7 @@ packages: ci-info: 3.9.0 cli-progress-footer: 2.3.3 d: 1.0.2 - dayjs: 1.11.11 + dayjs: 1.11.12 decompress: 4.2.1 dotenv: 10.0.0 dotenv-expand: 5.1.0 @@ -10659,7 +10583,7 @@ packages: process-utils: 4.0.0 promise-queue: 2.2.5 require-from-string: 2.0.2 - semver: 7.6.2 + semver: 7.6.3 signal-exit: 3.0.7 strip-ansi: 6.0.1 supports-color: 8.1.1 @@ -10779,7 +10703,7 @@ packages: dependencies: '@kwsites/file-exists': 1.1.1_supports-color@8.1.1 '@kwsites/promise-deferred': 1.1.1 - debug: 4.3.5_supports-color@8.1.1 + debug: 4.3.6_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true @@ -10964,7 +10888,7 @@ packages: resolution: {integrity: sha512-Xnt9/HHHYfjZ7NeQLvuQDyL1LnbsbddgMFKCuaQKwGCdJm8LnstZIXop+uOY36UR1UXXoHXfMbC1KlVdVd2JLA==} engines: {node: '>=8.0.0'} dependencies: - debug: 4.3.5 + debug: 4.3.6 strip-ansi: 6.0.1 transitivePeerDependencies: - supports-color @@ -11006,7 +10930,7 @@ packages: engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 4.3.5 + debug: 4.3.6 fs-extra: 8.1.0 transitivePeerDependencies: - supports-color @@ -11036,12 +10960,6 @@ packages: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - /string.prototype.repeat/1.0.0: - resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.3 - /string.prototype.trim/1.2.9: resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} @@ -11169,15 +11087,15 @@ packages: dependencies: component-emitter: 1.3.1 cookiejar: 2.1.4 - debug: 4.3.5_supports-color@8.1.1 + debug: 4.3.6_supports-color@8.1.1 fast-safe-stringify: 2.1.1 form-data: 4.0.0 formidable: 2.1.2 methods: 1.1.2 mime: 2.6.0 - qs: 6.12.2 + qs: 6.13.0 readable-stream: 3.6.2 - semver: 7.6.2 + semver: 7.6.3 transitivePeerDependencies: - supports-color dev: true @@ -11240,7 +11158,7 @@ packages: resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} engines: {node: '>=10.0.0'} dependencies: - ajv: 8.16.0 + ajv: 8.17.1 lodash.truncate: 4.4.2 slice-ansi: 4.0.0 string-width: 4.2.3 @@ -11396,7 +11314,7 @@ packages: code-block-writer: 12.0.0 dev: false - /ts-node/10.9.2_qtieencaeb6d72le3lfodyl2z4: + /ts-node/10.9.2_prqahbuxbjzfz737e746ioxvhu: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -11415,7 +11333,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.39 + '@types/node': 18.19.43 acorn: 8.12.1 acorn-walk: 8.3.3 arg: 4.1.3 @@ -11434,7 +11352,7 @@ packages: global-prefix: 3.0.0 minimist: 1.2.8 resolve: 1.22.8 - semver: 7.6.2 + semver: 7.6.3 strip-ansi: 6.0.1 dev: true @@ -11496,6 +11414,10 @@ packages: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} + /type-detect/4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + engines: {node: '>=4'} + /type-fest/0.12.0: resolution: {integrity: sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==} engines: {node: '>=10'} @@ -11597,8 +11519,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript/5.6.0-dev.20240730: - resolution: {integrity: sha512-i0xbpbeqFm+j2FGOU9ghel5U2nK6FP9mKLbdvms41n1mIjh56sGdexxjHNUUCmQr1rHGZtChRhLkxDcHmj72EA==} + /typescript/5.6.0-dev.20240805: + resolution: {integrity: sha512-M+pWeLKA2huCTB2GLE0/0U/ezJh51Wdmm6J3BS1UxieKcnx1Kz2/NivXOnmCZY40gY6ItpMlLjnJIMXprNG9UQ==} engines: {node: '>=14.17'} hasBin: true @@ -11620,8 +11542,8 @@ packages: /undici-types/5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - /undici/6.19.2: - resolution: {integrity: sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==} + /undici/6.19.5: + resolution: {integrity: sha512-LryC15SWzqQsREHIOUybavaIHF5IoL0dJ9aWWxL/PgT1KfqAW5225FZpDUFlt9xiDMS2/S7DOKhFWA7RLksWdg==} engines: {node: '>=18.17'} dev: false @@ -11651,13 +11573,13 @@ packages: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} - /update-browserslist-db/1.1.0_browserslist@4.23.1: + /update-browserslist-db/1.1.0_browserslist@4.23.3: resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.23.1 + browserslist: 4.23.3 escalade: 3.1.2 picocolors: 1.0.1 dev: true @@ -11740,7 +11662,7 @@ packages: engines: {node: '>=0.8.0'} hasBin: true dependencies: - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color dev: true @@ -11979,8 +11901,8 @@ packages: engines: {node: '>= 6'} dev: false - /yaml/2.4.5: - resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + /yaml/2.5.0: + resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} engines: {node: '>= 14'} hasBin: true dev: false diff --git a/packages/framework-core/src/booster-command-dispatcher.ts b/packages/framework-core/src/booster-command-dispatcher.ts index d36844480..cf7fdc3b0 100644 --- a/packages/framework-core/src/booster-command-dispatcher.ts +++ b/packages/framework-core/src/booster-command-dispatcher.ts @@ -63,7 +63,9 @@ export class BoosterCommandDispatcher { result = await commandClass.handle(commandInstance, register) } catch (err) { const e = err as Error - const error = await this.globalErrorDispatcher.dispatch(new CommandHandlerGlobalError(migratedCommandEnvelope, e)) + const error = await this.globalErrorDispatcher.dispatch( + new CommandHandlerGlobalError(migratedCommandEnvelope, commandMetadata, e) + ) if (error) throw error } logger.debug('Command dispatched with register: ', register) diff --git a/packages/framework-core/src/booster-event-processor.ts b/packages/framework-core/src/booster-event-processor.ts index 1bd71ec8e..79dbb2a36 100644 --- a/packages/framework-core/src/booster-event-processor.ts +++ b/packages/framework-core/src/booster-event-processor.ts @@ -130,7 +130,9 @@ export class BoosterEventProcessor { await eventHandler.handle(eventInstance, register) } catch (e) { const globalErrorDispatcher = new BoosterGlobalErrorDispatcher(config) - const error = await globalErrorDispatcher.dispatch(new EventHandlerGlobalError(eventInstance, e)) + const error = await globalErrorDispatcher.dispatch( + new EventHandlerGlobalError(eventEnvelope, eventInstance, e.eventHandlerMetadata, e) + ) if (error) throw error } await RegisterHandler.handle(config, register) diff --git a/packages/framework-core/src/booster-global-error-dispatcher.ts b/packages/framework-core/src/booster-global-error-dispatcher.ts index d8f0a04d6..5bec87a69 100644 --- a/packages/framework-core/src/booster-global-error-dispatcher.ts +++ b/packages/framework-core/src/booster-global-error-dispatcher.ts @@ -66,7 +66,11 @@ export class BoosterGlobalErrorDispatcher { private async handleCommandError(error: GlobalErrorContainer): Promise { if (!this.errorHandler || !this.errorHandler.onCommandHandlerError) throw error.originalError const currentError = error as CommandHandlerGlobalError - return await this.errorHandler.onCommandHandlerError(currentError.originalError, currentError.command) + return await this.errorHandler.onCommandHandlerError( + currentError.originalError, + currentError.commandEnvelope, + currentError.commandMetadata + ) } private async handleQueryError(error: GlobalErrorContainer): Promise { @@ -78,20 +82,31 @@ export class BoosterGlobalErrorDispatcher { private async handleScheduleError(error: GlobalErrorContainer): Promise { if (!this.errorHandler || !this.errorHandler.onScheduledCommandHandlerError) throw error.originalError const currentError = error as ScheduleCommandGlobalError - return await this.errorHandler.onScheduledCommandHandlerError(currentError.originalError) + return await this.errorHandler.onScheduledCommandHandlerError( + currentError.originalError, + currentError.scheduleCommandEnvelope, + currentError.scheduleCommandMetadata + ) } private async handleEventHandlerError(error: GlobalErrorContainer): Promise { if (!this.errorHandler || !this.errorHandler.onDispatchEventHandlerError) throw error.originalError const currentError = error as EventHandlerGlobalError - return await this.errorHandler.onDispatchEventHandlerError(currentError.originalError, currentError.eventInstance) + return await this.errorHandler.onDispatchEventHandlerError( + currentError.originalError, + currentError.eventEnvelope, + currentError.eventHandlerMetadata, + currentError.eventInstance + ) } - private async handleReducerError(error: GlobalErrorContainer): Promise { + private async handleReducerError(error: GlobalErrorContainer): Promise { if (!this.errorHandler || !this.errorHandler.onReducerError) throw error.originalError const currentError = error as ReducerGlobalError return await this.errorHandler.onReducerError( currentError.originalError, + currentError.eventEnvelope, + currentError.reducerMetadata, currentError.eventInstance, currentError.snapshotInstance ) @@ -102,6 +117,8 @@ export class BoosterGlobalErrorDispatcher { const currentError = error as ProjectionGlobalError return await this.errorHandler.onProjectionError( currentError.originalError, + currentError.entityEnvelope, + currentError.projectionMetadata, currentError.entity, currentError.readModel ) diff --git a/packages/framework-core/src/booster-scheduled-command-dispatcher.ts b/packages/framework-core/src/booster-scheduled-command-dispatcher.ts index 7d79e6586..3c953c8ea 100644 --- a/packages/framework-core/src/booster-scheduled-command-dispatcher.ts +++ b/packages/framework-core/src/booster-scheduled-command-dispatcher.ts @@ -43,7 +43,9 @@ export class BoosterScheduledCommandDispatcher { logger.debug('Calling "handle" method on command: ', command) await command.handle(register) } catch (e) { - const error = await this.globalErrorDispatcher.dispatch(new ScheduleCommandGlobalError(e)) + const error = await this.globalErrorDispatcher.dispatch( + new ScheduleCommandGlobalError(commandEnvelope, commandMetadata, e) + ) if (error) throw error } logger.debug('Command dispatched with register: ', register) diff --git a/packages/framework-core/src/services/event-store.ts b/packages/framework-core/src/services/event-store.ts index dc16a2330..32aff8fce 100644 --- a/packages/framework-core/src/services/event-store.ts +++ b/packages/framework-core/src/services/event-store.ts @@ -13,7 +13,6 @@ import { InvalidReducerError, NonPersistedEntitySnapshotEnvelope, ReducerGlobalError, - SnapshotPersistHandlerGlobalError, TraceActionTypes, UUID, } from '@boostercloud/framework-types' @@ -23,6 +22,7 @@ import { SchemaMigrator } from '../schema-migrator' import { BoosterEntityMigrated } from '../core-concepts/data-migration/events/booster-entity-migrated' import { BoosterEntityTouched } from '../core-concepts/touch-entity/events/booster-entity-touched' import { Trace } from '../instrumentation' +import { ReducerMetadata } from '../../../framework-types' const originOfTime = new Date(0).toISOString() // Unix epoch @@ -67,8 +67,9 @@ export class EventStore { continue } else if (e instanceof InvalidReducerError) { const globalErrorDispatcher = new BoosterGlobalErrorDispatcher(this.config) + const reducerMetadata = this.config.reducers[pendingEvent.typeName] const error = await globalErrorDispatcher.dispatch( - new ReducerGlobalError(e.eventInstance, e.snapshotInstance, e) + new ReducerGlobalError(pendingEvent, e.eventInstance, e.snapshotInstance, reducerMetadata, e) ) if (error) throw error continue @@ -104,7 +105,7 @@ export class EventStore { logger.debug('Storing event in the dispatched event store:', eventEnvelope) return await this.config.provider.events.storeDispatched(eventEnvelope, this.config) } catch (e) { - logger.debug('Could not store dispatched event. Continue its processing.', {error: e, eventEnvelope }) + logger.debug('Could not store dispatched event. Continue its processing.', { error: e, eventEnvelope }) return true } } @@ -118,15 +119,13 @@ export class EventStore { logger.debug('Storing snapshot in the event store:', snapshot) return await this.config.provider.events.storeSnapshot(snapshot, this.config) } catch (e) { - const globalErrorDispatcher = new BoosterGlobalErrorDispatcher(this.config) - const error = await globalErrorDispatcher.dispatch(new SnapshotPersistHandlerGlobalError(snapshot, e)) logger.error( `The snapshot for entity ${snapshot.typeName} with ID ${ snapshot.entityID } couldn't be stored (Tried on ${new Date()})`, snapshot, '\nError:', - error + e ) return } @@ -169,8 +168,15 @@ export class EventStore { const migratedEventEnvelope = await new SchemaMigrator(this.config).migrate(eventEnvelope) const eventInstance = createInstance(eventMetadata.class, migratedEventEnvelope.value) const entityMetadata = this.config.entities[migratedEventEnvelope.entityTypeName] + const reducerMetadata = this.config.reducers[eventEnvelope.typeName] const snapshotInstance = latestSnapshot ? createInstance(entityMetadata.class, latestSnapshot.value) : null - return this.createNewSnapshot(migratedEventEnvelope, eventInstance, snapshotInstance, eventEnvelope) + return this.createNewSnapshot( + migratedEventEnvelope, + eventInstance, + snapshotInstance, + eventEnvelope, + reducerMetadata + ) } private shouldReduceBoosterSuperKind(eventEnvelope: EventEnvelope) { @@ -188,32 +194,40 @@ export class EventStore { return eventMetadata } - private createNewSnapshot( + private async createNewSnapshot( migratedEventEnvelope: EventEnvelope, eventInstance: EventInterface, snapshotInstance: EntityInterface | null, - eventEnvelope: EventEnvelope - ): NonPersistedEntitySnapshotEnvelope { + eventEnvelope: EventEnvelope, + reducerMetadata: ReducerMetadata + ): Promise { const logger = getLogger(this.config, 'createNewSnapshot') - const newEntity = this.reducerForEvent( - migratedEventEnvelope.typeName, - eventInstance, - snapshotInstance - )(eventInstance, snapshotInstance) + try { + const newEntity = this.reducerForEvent( + migratedEventEnvelope.typeName, + eventInstance, + snapshotInstance + )(eventInstance, snapshotInstance) - const newSnapshot: NonPersistedEntitySnapshotEnvelope = { - version: this.config.currentVersionFor(eventEnvelope.entityTypeName), - kind: 'snapshot', - superKind: migratedEventEnvelope.superKind, - requestID: migratedEventEnvelope.requestID, - entityID: migratedEventEnvelope.entityID, - entityTypeName: migratedEventEnvelope.entityTypeName, - typeName: migratedEventEnvelope.entityTypeName, - value: newEntity, - snapshottedEventCreatedAt: migratedEventEnvelope.createdAt, + const newSnapshot: NonPersistedEntitySnapshotEnvelope = { + version: this.config.currentVersionFor(eventEnvelope.entityTypeName), + kind: 'snapshot', + superKind: migratedEventEnvelope.superKind, + requestID: migratedEventEnvelope.requestID, + entityID: migratedEventEnvelope.entityID, + entityTypeName: migratedEventEnvelope.entityTypeName, + typeName: migratedEventEnvelope.entityTypeName, + value: newEntity, + snapshottedEventCreatedAt: migratedEventEnvelope.createdAt, + } + logger.debug('Reducer result: ', newSnapshot) + return newSnapshot + } catch (e) { + const globalErrorDispatcher = new BoosterGlobalErrorDispatcher(this.config) + throw await globalErrorDispatcher.dispatch( + new ReducerGlobalError(migratedEventEnvelope, eventInstance, snapshotInstance, reducerMetadata, e) + ) } - logger.debug('Reducer result: ', newSnapshot) - return newSnapshot } private async reduceSuperKind( @@ -272,11 +286,11 @@ export class EventStore { return boosterMigratedSnapshot } - // eslint-disable-next-line @typescript-eslint/ban-types private reducerForEvent( eventName: string, eventInstance: EventInterface, snapshotInstance: EntityInterface | null + // eslint-disable-next-line @typescript-eslint/ban-types ): Function { const logger = getLogger(this.config, 'EventStore#reducerForEvent') const reducerMetadata = this.config.reducers[eventName] @@ -285,10 +299,9 @@ export class EventStore { } else { try { // eslint-disable-next-line @typescript-eslint/no-explicit-any - const reducer = (reducerMetadata.class as any)[reducerMetadata.methodName] - logger.debug( - `Found reducer for event ${eventName}: "${reducerMetadata.class.name}.${reducerMetadata.methodName}"` - ) + const methodName = reducerMetadata.methodName + const reducer = (reducerMetadata.class as any)[methodName] + logger.debug(`Found reducer for event ${eventName}: "${reducerMetadata.class.name}.${methodName}"`) return reducer } catch { throw new Error(`Couldn't load the Entity class ${reducerMetadata.class.name}`) diff --git a/packages/framework-core/src/services/read-model-store.ts b/packages/framework-core/src/services/read-model-store.ts index b0edbc39f..d83e5b323 100644 --- a/packages/framework-core/src/services/read-model-store.ts +++ b/packages/framework-core/src/services/read-model-store.ts @@ -256,6 +256,7 @@ export class ReadModelStore { return retryIfError( (tryNumber?: number) => this.applyProjectionToReadModel( + entitySnapshotEnvelope, entityInstance, projectionMetadata, currentReadModel, @@ -281,6 +282,7 @@ export class ReadModelStore { } private async applyProjectionToReadModel( + entitySnapshotEnvelope: EntitySnapshotEnvelope, entity: EntityInterface, projectionMetadata: ProjectionMetadata, currentReadModel?: ReadModelInterface, @@ -318,10 +320,18 @@ export class ReadModelStore { let newReadModel: any try { - newReadModel = await this.callProjectionFunction(projectionMetadata, entity, migratedReadModel, readModelID) + newReadModel = await this.callProjectionFunction( + entitySnapshotEnvelope, + projectionMetadata, + entity, + migratedReadModel, + readModelID + ) } catch (e) { const globalErrorDispatcher = new BoosterGlobalErrorDispatcher(this.config) - const error = await globalErrorDispatcher.dispatch(new ProjectionGlobalError(entity, migratedReadModel, e)) + const error = await globalErrorDispatcher.dispatch( + new ProjectionGlobalError(entitySnapshotEnvelope, entity, migratedReadModel, projectionMetadata, e) + ) if (error) throw error } @@ -385,6 +395,7 @@ export class ReadModelStore { } private async callProjectionFunction( + entitySnapshotEnvelope: EntitySnapshotEnvelope, projectionMetadata: ProjectionMetadata, entity: EntityInterface, migratedReadModel: ReadModelInterface | undefined, @@ -401,7 +412,9 @@ export class ReadModelStore { return projectionFunction(entity, readModelID, migratedReadModel || null) } catch (e) { const globalErrorDispatcher = new BoosterGlobalErrorDispatcher(this.config) - const error = await globalErrorDispatcher.dispatch(new ProjectionGlobalError(entity, migratedReadModel, e)) + const error = await globalErrorDispatcher.dispatch( + new ProjectionGlobalError(entitySnapshotEnvelope, entity, migratedReadModel, projectionMetadata, e) + ) if (error) throw error } return undefined diff --git a/packages/framework-core/test/booster-global-error-dispatcher.test.ts b/packages/framework-core/test/booster-global-error-dispatcher.test.ts index 0ccc3a2a5..4c524c16f 100644 --- a/packages/framework-core/test/booster-global-error-dispatcher.test.ts +++ b/packages/framework-core/test/booster-global-error-dispatcher.test.ts @@ -3,22 +3,28 @@ import { BoosterConfig, CommandEnvelope, CommandHandlerGlobalError, + CommandMetadata, EntityInterface, EntitySnapshotEnvelope, + EventEnvelope, EventHandlerGlobalError, EventInterface, GlobalErrorContainer, GlobalErrorHandlerMetadata, ProjectionGlobalError, + ProjectionMetadata, ReadModelInterface, ReducerGlobalError, + ReducerMetadata, ScheduleCommandGlobalError, - SnapshotPersistHandlerGlobalError, + ScheduledCommandEnvelope, + ScheduledCommandMetadata, } from '@boostercloud/framework-types' import { GlobalErrorHandler } from '../src' import { restore } from 'sinon' import { Booster } from '../src/booster' import { BoosterGlobalErrorDispatcher } from '../src/booster-global-error-dispatcher' +import 'mocha' describe('BoosterGlobalErrorDispatcher', () => { let config: BoosterConfig @@ -66,7 +72,11 @@ describe('BoosterGlobalErrorDispatcher', () => { it('should dispatch original error if there is an error processing them', async () => { @GlobalErrorHandler() class ErrorHandler { - public static async onScheduledCommandHandlerError(error: Error): Promise { + public static async onScheduledCommandHandlerError( + error: Error, + scheduledCommandEnvelope: ScheduledCommandEnvelope, + scheduledCommandMetadata: ScheduledCommandMetadata + ): Promise { throw new Error('failed') } @@ -75,7 +85,9 @@ describe('BoosterGlobalErrorDispatcher', () => { } } - const scheduleCommandGlobalError = new ScheduleCommandGlobalError(baseError) + const envelope: ScheduledCommandEnvelope = {} as ScheduledCommandEnvelope + const metadata: ScheduledCommandMetadata = {} as ScheduledCommandMetadata + const scheduleCommandGlobalError = new ScheduleCommandGlobalError(envelope, metadata, baseError) config.globalErrorsHandler = { class: ErrorHandler } as GlobalErrorHandlerMetadata const errorDispatcher = new BoosterGlobalErrorDispatcher(config) const result = await errorDispatcher.dispatch(scheduleCommandGlobalError) @@ -85,7 +97,11 @@ describe('BoosterGlobalErrorDispatcher', () => { it('should dispatch specific and generic handler if both are defined for a specific error', async () => { @GlobalErrorHandler() class ErrorHandler { - public static async onScheduledCommandHandlerError(error: Error): Promise { + public static async onScheduledCommandHandlerError( + error: Error, + scheduledCommandEnvelope: ScheduledCommandEnvelope, + scheduledCommandMetadata: ScheduledCommandMetadata + ): Promise { return new Error(`${error}.onScheduledCommandHandlerError`) } @@ -94,7 +110,9 @@ describe('BoosterGlobalErrorDispatcher', () => { } } - const scheduleCommandGlobalError = new ScheduleCommandGlobalError(baseError) + const envelope: ScheduledCommandEnvelope = {} as ScheduledCommandEnvelope + const metadata: ScheduledCommandMetadata = {} as ScheduledCommandMetadata + const scheduleCommandGlobalError = new ScheduleCommandGlobalError(envelope, metadata, baseError) config.globalErrorsHandler = { class: ErrorHandler } as GlobalErrorHandlerMetadata const errorDispatcher = new BoosterGlobalErrorDispatcher(config) const result = await errorDispatcher.dispatch(scheduleCommandGlobalError) @@ -111,7 +129,8 @@ describe('BoosterGlobalErrorDispatcher', () => { } } const mockCommand = {} as CommandEnvelope - const commandHandlerGlobalError = new CommandHandlerGlobalError(mockCommand, baseError) + const mockMetadata: CommandMetadata = {} as CommandMetadata + const commandHandlerGlobalError = new CommandHandlerGlobalError(mockCommand, mockMetadata, baseError) config.globalErrorsHandler = { class: ErrorHandler } as GlobalErrorHandlerMetadata const errorDispatcher = new BoosterGlobalErrorDispatcher(config) const result = await errorDispatcher.dispatch(commandHandlerGlobalError) @@ -129,7 +148,14 @@ describe('BoosterGlobalErrorDispatcher', () => { } } const mockEventInstance = {} as EventInterface - const eventHandlerGlobalError = new EventHandlerGlobalError(mockEventInstance, baseError) + const mockEventEnvelope: EventEnvelope = {} as EventEnvelope + const mockEventHandlerMetadata = {} + const eventHandlerGlobalError = new EventHandlerGlobalError( + mockEventEnvelope, + mockEventInstance, + mockEventHandlerMetadata, + baseError + ) config.globalErrorsHandler = { class: ErrorHandler } as GlobalErrorHandlerMetadata const errorDispatcher = new BoosterGlobalErrorDispatcher(config) const result = await errorDispatcher.dispatch(eventHandlerGlobalError) @@ -141,15 +167,25 @@ describe('BoosterGlobalErrorDispatcher', () => { class ErrorHandler { public static async onReducerError( error: Error, + eventEnvelope: EventEnvelope, + reducerMetadata: ReducerMetadata, eventInstance: EventInterface, snapshotInstance: EntityInterface | null - ): Promise { + ): Promise { return new Error(`${error}.onReducerError`) } } + const mockEventEnvelope: EventEnvelope = {} as EventEnvelope const mockEventInstance = {} as EventInterface const mockSnapshotInstance = {} as EntityInterface - const reducerGlobalError = new ReducerGlobalError(mockEventInstance, mockSnapshotInstance, baseError) + const reducerMetadata: ReducerMetadata = {} as ReducerMetadata + const reducerGlobalError = new ReducerGlobalError( + mockEventEnvelope, + mockEventInstance, + mockSnapshotInstance, + reducerMetadata, + baseError + ) config.globalErrorsHandler = { class: ErrorHandler } as GlobalErrorHandlerMetadata const errorDispatcher = new BoosterGlobalErrorDispatcher(config) const result = await errorDispatcher.dispatch(reducerGlobalError) @@ -161,53 +197,61 @@ describe('BoosterGlobalErrorDispatcher', () => { class ErrorHandler { public static async onProjectionError( error: Error, + entityEnvelope: EntitySnapshotEnvelope, + projectionMetadata: ProjectionMetadata, entity: EntityInterface, readModel: ReadModelInterface | undefined ): Promise { return new Error(`${error}.onProjectionError`) } } + const mockEntityEnvelope: EntitySnapshotEnvelope = {} as EntitySnapshotEnvelope const mockEntity = {} as EntityInterface const mockReadModel = {} as ReadModelInterface - const projectionGlobalError = new ProjectionGlobalError(mockEntity, mockReadModel, baseError) + const mockProjectionMetadata: ProjectionMetadata = {} as ProjectionMetadata< + EntityInterface, + ReadModelInterface + > + const projectionGlobalError = new ProjectionGlobalError( + mockEntityEnvelope, + mockEntity, + mockReadModel, + mockProjectionMetadata, + baseError + ) config.globalErrorsHandler = { class: ErrorHandler } as GlobalErrorHandlerMetadata const errorDispatcher = new BoosterGlobalErrorDispatcher(config) const result = await errorDispatcher.dispatch(projectionGlobalError) expect(result?.toString()).to.be.eq(`Error: Error: ${baseError.message}.onProjectionError`) }) - it('should dispatch SnapshotPersistHandlerGlobalError', async () => { - @GlobalErrorHandler() - class ErrorHandler { - public static async onSnapshotPersistError( - error: Error, - snapshot: EntitySnapshotEnvelope - ): Promise { - return new Error(`${error}.onSnapshotPersistError`) - } - } - const mockSnapshot = {} as EntitySnapshotEnvelope - const snapshotPersistHandlerGlobalError = new SnapshotPersistHandlerGlobalError(mockSnapshot, baseError) - config.globalErrorsHandler = { class: ErrorHandler } as GlobalErrorHandlerMetadata - const errorDispatcher = new BoosterGlobalErrorDispatcher(config) - const result = await errorDispatcher.dispatch(snapshotPersistHandlerGlobalError) - expect(result?.toString()).to.be.eq(`Error: Error: ${baseError.message}.onSnapshotPersistError`) - }) - it('should ignore errors on ProjectionGlobalError if undefined is returned', async () => { @GlobalErrorHandler() class ErrorHandler { public static async onProjectionError( error: Error, + entityEnvelope: EntitySnapshotEnvelope, + projectionMetadata: ProjectionMetadata, entity: EntityInterface, readModel: ReadModelInterface | undefined ): Promise { return undefined } } + const mockEntityEnvelope: EntitySnapshotEnvelope = {} as EntitySnapshotEnvelope const mockEntity = {} as EntityInterface const mockReadModel = {} as ReadModelInterface - const projectionGlobalError = new ProjectionGlobalError(mockEntity, mockReadModel, baseError) + const mockProjectionMetadata: ProjectionMetadata = {} as ProjectionMetadata< + EntityInterface, + ReadModelInterface + > + const projectionGlobalError = new ProjectionGlobalError( + mockEntityEnvelope, + mockEntity, + mockReadModel, + mockProjectionMetadata, + baseError + ) config.globalErrorsHandler = { class: ErrorHandler } as GlobalErrorHandlerMetadata const errorDispatcher = new BoosterGlobalErrorDispatcher(config) const result = await errorDispatcher.dispatch(projectionGlobalError) @@ -217,7 +261,11 @@ describe('BoosterGlobalErrorDispatcher', () => { it('should ignore erros if generic handler returns an undefined', async () => { @GlobalErrorHandler() class ErrorHandler { - public static async onScheduledCommandHandlerError(error: Error): Promise { + public static async onScheduledCommandHandlerError( + error: Error, + scheduledCommandEnvelope: ScheduledCommandEnvelope, + scheduledCommandMetadata: ScheduledCommandMetadata + ): Promise { return new Error(`${error}.onScheduledCommandHandlerError`) } @@ -226,7 +274,9 @@ describe('BoosterGlobalErrorDispatcher', () => { } } - const scheduleCommandGlobalError = new ScheduleCommandGlobalError(baseError) + const envelope: ScheduledCommandEnvelope = {} as ScheduledCommandEnvelope + const metadata: ScheduledCommandMetadata = {} as ScheduledCommandMetadata + const scheduleCommandGlobalError = new ScheduleCommandGlobalError(envelope, metadata, baseError) config.globalErrorsHandler = { class: ErrorHandler } as GlobalErrorHandlerMetadata const errorDispatcher = new BoosterGlobalErrorDispatcher(config) const result = await errorDispatcher.dispatch(scheduleCommandGlobalError) diff --git a/packages/framework-core/test/decorators/global-error-handler.test.ts b/packages/framework-core/test/decorators/global-error-handler.test.ts index 9a9ce5463..54d6a4557 100644 --- a/packages/framework-core/test/decorators/global-error-handler.test.ts +++ b/packages/framework-core/test/decorators/global-error-handler.test.ts @@ -2,7 +2,20 @@ /* eslint-disable @typescript-eslint/explicit-function-return-type */ import { expect } from '../expect' import { GlobalErrorHandler, Booster } from '../../src' -import { CommandEnvelope, EntityInterface, EventInterface, ReadModelInterface } from '@boostercloud/framework-types' +import { + CommandEnvelope, + CommandMetadata, + EntityInterface, + EntitySnapshotEnvelope, + EventEnvelope, + EventInterface, + NotificationInterface, + ProjectionMetadata, + ReadModelInterface, + ReducerMetadata, + ScheduledCommandEnvelope, + ScheduledCommandMetadata, +} from '@boostercloud/framework-types' describe('the `GlobalErrorHandler` decorator', () => { afterEach(() => { @@ -27,16 +40,26 @@ describe('the `GlobalErrorHandler` decorator', () => { // Register command @GlobalErrorHandler() class ErrorHandler { - public static async onCommandHandlerError(error: Error, command: CommandEnvelope): Promise { + public static async onCommandHandlerError( + error: Error, + commandEnvelope: CommandEnvelope, + commandMetadata: CommandMetadata + ): Promise { return new Error('') } - public static async onScheduledCommandHandlerError(error: Error): Promise { + public static async onScheduledCommandHandlerError( + error: Error, + scheduledCommandEnvelope: ScheduledCommandEnvelope, + scheduledCommandMetadata: ScheduledCommandMetadata + ): Promise { return new Error('') } public static async onDispatchEventHandlerError( error: Error, + eventEnvelope: EventEnvelope | NotificationInterface, + eventHandlerMetadata: unknown, eventInstance: EventInterface ): Promise { return new Error('') @@ -44,6 +67,8 @@ describe('the `GlobalErrorHandler` decorator', () => { public static async onProjectionError( error: Error, + entityEnvelope: EntitySnapshotEnvelope, + projectionMetadata: ProjectionMetadata, entity: EntityInterface, readModel: ReadModelInterface | undefined ): Promise { @@ -52,6 +77,8 @@ describe('the `GlobalErrorHandler` decorator', () => { public static async onReducerError( error: Error, + eventEnvelope: EventEnvelope, + reducerMetadata: ReducerMetadata, eventInstance: EventInterface, snapshotInstance: EntityInterface | null ): Promise { diff --git a/packages/framework-core/test/services/event-store.test.ts b/packages/framework-core/test/services/event-store.test.ts index 3d29352d3..4e773181b 100644 --- a/packages/framework-core/test/services/event-store.test.ts +++ b/packages/framework-core/test/services/event-store.test.ts @@ -801,7 +801,7 @@ describe('EventStore', () => { eventInstance.entityID = someEvent.entityID const entityInstance = new AnEntity(someEntity.id, someEntity.count) - expect(eventStore.reducerForEvent).to.have.been.calledOnceWith(AnEvent.name) + expect(eventStore.reducerForEvent).to.have.been.calledOnceWith(AnEvent.name, eventInstance) expect(fakeReducer).to.have.been.calledOnceWith(eventInstance, entityInstance) expect(newSnapshot).to.be.deep.equal({ @@ -837,7 +837,7 @@ describe('EventStore', () => { const eventInstance = new AnEvent(someEvent.id, someEvent.entityId, someEvent.delta) eventInstance.entityID = someEvent.entityID - expect(eventStore.reducerForEvent).to.have.been.calledOnceWith(AnEvent.name) + expect(eventStore.reducerForEvent).to.have.been.calledOnceWith(AnEvent.name, eventInstance) expect(fakeReducer).to.have.been.calledOnceWith(eventInstance, null) expect(newSnapshot).to.be.deep.equal({ @@ -926,20 +926,15 @@ describe('EventStore', () => { describe('reducerForEvent', () => { context('for an event with a registered reducer', () => { it('returns the proper reducer method for the event', () => { - const reducer = eventStore.reducerForEvent(AnEvent.name) + const reducer = eventStore.reducerForEvent(AnEvent.name, { + class: AnEntity, + methodName: 'reducerThatCallsEntityMethod', + }) expect(reducer).to.be.instanceOf(Function) expect(reducer).to.be.equal(eval('AnEntity')['reducerThatCallsEntityMethod']) }) }) - - context('for events without registered reducers', () => { - it('fails miserably', () => { - expect(() => eventStore.reducerForEvent('InventedEvent')).to.throw( - /No reducer registered for event InventedEvent/ - ) - }) - }) }) }) }) diff --git a/packages/framework-core/test/services/read-model-store.test.ts b/packages/framework-core/test/services/read-model-store.test.ts index c3a14635b..0987edb01 100644 --- a/packages/framework-core/test/services/read-model-store.test.ts +++ b/packages/framework-core/test/services/read-model-store.test.ts @@ -840,6 +840,7 @@ describe('ReadModelStore', () => { for (const projectionMetadata of config.projections[AnImportantEntity.name]) { const readModelClassName = projectionMetadata.class.name expect(fakeApplyProjectionToReadModel).to.have.been.calledWith( + anEntitySnapshot, anEntityInstance, projectionMetadata, undefined, diff --git a/packages/framework-integration-tests/integration/provider-unaware/functionality/errors.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/functionality/errors.integration.ts index e08bf3d9f..de8760f74 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/functionality/errors.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/functionality/errors.integration.ts @@ -11,6 +11,7 @@ import { queryHandlerErrorCartId, queryHandlerErrorCartMessage, } from '../../../src/constants' +import 'mocha' describe('Global error handler', async () => { let client: ApolloClient @@ -23,7 +24,7 @@ describe('Global error handler', async () => { context('CommandHandler', async () => { it('should update error object when handler fails', async () => { - const expectedErrorMessage = `${commandHandlerErrorCartMessage}-onCommandHandlerError-onError` + const expectedErrorMessage = `${commandHandlerErrorCartMessage}-onCommandHandlerError with metadata: {"before":[null,null],"properties":[{"name":"cartId","typeInfo":{"name":"UUID","typeGroup":"Class","isNullable":false,"isGetAccessor":false,"parameters":[],"importPath":"@boostercloud/framework-types","typeName":"UUID"}},{"name":"productId","typeInfo":{"name":"UUID","typeGroup":"Class","isNullable":false,"isGetAccessor":false,"parameters":[],"importPath":"@boostercloud/framework-types","typeName":"UUID"}},{"name":"quantity","typeInfo":{"name":"number","typeGroup":"Number","isNullable":false,"isGetAccessor":false,"parameters":[],"typeName":"Number"}},{"name":"test","typeInfo":{"name":"number","typeGroup":"Number","isNullable":false,"isGetAccessor":false,"parameters":[],"typeName":"Number"}}],"methods":[{"name":"beforeFn","typeInfo":{"name":"Promise","typeGroup":"Object","isNullable":false,"isGetAccessor":false,"parameters":[{"name":"CommandInput","typeGroup":"Type","isNullable":false,"isGetAccessor":false,"parameters":[]}],"typeName":"Promise"}},{"name":"beforeFnV2","typeInfo":{"name":"Promise","typeGroup":"Object","isNullable":false,"isGetAccessor":false,"parameters":[{"name":"CommandInput","typeGroup":"Type","isNullable":false,"isGetAccessor":false,"parameters":[]}],"typeName":"Promise"}},{"name":"handle","typeInfo":{"name":"Promise","typeGroup":"Object","isNullable":false,"isGetAccessor":false,"parameters":[{"name":"void","typeGroup":"Other","isNullable":false,"isGetAccessor":false,"parameters":[]}],"typeName":"Promise"}}]}-onError` await expect( client.mutate({ variables: { @@ -58,7 +59,7 @@ describe('Global error handler', async () => { }) it('should update error object when onBefore fails', async () => { - const expectedErrorMessage = `${commandHandlerBeforeErrorCartMessage}-onBeforeCommandHandlerError-onError` + const expectedErrorMessage = `${commandHandlerBeforeErrorCartMessage}-onBeforeCommandHandlerError with metadata: {"before":[null,null],"properties":[{"name":"cartId","typeInfo":{"name":"UUID","typeGroup":"Class","isNullable":false,"isGetAccessor":false,"parameters":[],"importPath":"@boostercloud/framework-types","typeName":"UUID"}},{"name":"productId","typeInfo":{"name":"UUID","typeGroup":"Class","isNullable":false,"isGetAccessor":false,"parameters":[],"importPath":"@boostercloud/framework-types","typeName":"UUID"}},{"name":"quantity","typeInfo":{"name":"number","typeGroup":"Number","isNullable":false,"isGetAccessor":false,"parameters":[],"typeName":"Number"}},{"name":"test","typeInfo":{"name":"number","typeGroup":"Number","isNullable":false,"isGetAccessor":false,"parameters":[],"typeName":"Number"}}],"methods":[{"name":"beforeFn","typeInfo":{"name":"Promise","typeGroup":"Object","isNullable":false,"isGetAccessor":false,"parameters":[{"name":"CommandInput","typeGroup":"Type","isNullable":false,"isGetAccessor":false,"parameters":[]}],"typeName":"Promise"}},{"name":"beforeFnV2","typeInfo":{"name":"Promise","typeGroup":"Object","isNullable":false,"isGetAccessor":false,"parameters":[{"name":"CommandInput","typeGroup":"Type","isNullable":false,"isGetAccessor":false,"parameters":[]}],"typeName":"Promise"}},{"name":"handle","typeInfo":{"name":"Promise","typeGroup":"Object","isNullable":false,"isGetAccessor":false,"parameters":[{"name":"void","typeGroup":"Other","isNullable":false,"isGetAccessor":false,"parameters":[]}],"typeName":"Promise"}}]}-onError` await expect( client.mutate({ variables: { diff --git a/packages/framework-integration-tests/src/common/app-error-handler.ts b/packages/framework-integration-tests/src/common/app-error-handler.ts index 7428ce3df..ffef06eac 100644 --- a/packages/framework-integration-tests/src/common/app-error-handler.ts +++ b/packages/framework-integration-tests/src/common/app-error-handler.ts @@ -2,11 +2,18 @@ import { GlobalErrorHandler } from '@boostercloud/framework-core' import { CommandEnvelope, + CommandMetadata, EntityInterface, + EntitySnapshotEnvelope, EventEnvelope, EventInterface, + NotificationInterface, + ProjectionMetadata, QueryEnvelope, ReadModelInterface, + ReducerMetadata, + ScheduledCommandEnvelope, + ScheduledCommandMetadata, } from '@boostercloud/framework-types' import { commandHandlerBeforeErrorCartId, @@ -22,15 +29,21 @@ import { @GlobalErrorHandler() export class AppErrorHandler { - public static async onCommandHandlerError(error: Error, command: CommandEnvelope): Promise { - if (command.value.cartId === commandHandlerErrorIgnoredCartId) { + public static async onCommandHandlerError( + error: Error, + commandEnvelope: CommandEnvelope, + commandMetadata: CommandMetadata + ): Promise { + console.log(commandEnvelope) + console.log(commandMetadata) + if (commandEnvelope.value.cartId === commandHandlerErrorIgnoredCartId) { return undefined } - if (command.value.cartId === commandHandlerErrorCartId) { - return new Error(error.message + '-onCommandHandlerError') + if (commandEnvelope.value.cartId === commandHandlerErrorCartId) { + return new Error(`${error.message}-onCommandHandlerError with metadata: ${JSON.stringify(commandMetadata)}`) } - if (command.value.cartId === commandHandlerBeforeErrorCartId) { - return new Error(error.message + '-onBeforeCommandHandlerError') + if (commandEnvelope.value.cartId === commandHandlerBeforeErrorCartId) { + return new Error(`${error.message}-onBeforeCommandHandlerError with metadata: ${JSON.stringify(commandMetadata)}`) } return error } @@ -42,41 +55,65 @@ export class AppErrorHandler { return error } - public static async onScheduledCommandHandlerError(error: Error): Promise { + public static async onScheduledCommandHandlerError( + error: Error, + scheduledCommandEnvelope: ScheduledCommandEnvelope, + scheduledCommandMetadata: ScheduledCommandMetadata + ): Promise { console.log('onScheduledCommandHandlerError') - return error + console.log(scheduledCommandEnvelope) + console.log(scheduledCommandMetadata) + return new Error( + `${error.message}-onScheduledCommandHandlerError with metadata: ${JSON.stringify(scheduledCommandMetadata)}` + ) } public static async onDispatchEventHandlerError( error: Error, + eventEnvelope: EventEnvelope | NotificationInterface, + eventHandlerMetadata: unknown, eventInstance: EventInterface ): Promise { - const getEntityID = eventInstance?.entityID ?? (() => '') - if (getEntityID() === dispatchEventErrorCartId) { - return new Error(error.message + '-onDispatchEventHandlerError') + console.log(eventEnvelope) + console.log(eventHandlerMetadata) + const entityId = eventInstance?.entityID ? eventInstance.entityID() : '' + if (entityId === dispatchEventErrorCartId) { + return new Error( + `${error.message}-onDispatchEventHandlerError with metadata: ${JSON.stringify(eventHandlerMetadata)}` + ) } return error } public static async onReducerError( error: Error, + eventEnvelope: EventEnvelope, + reducerMetadata: ReducerMetadata, eventInstance: EventInterface, snapshotInstance: EntityInterface | null - ): Promise { - const getEntityID = eventInstance?.entityID ?? (() => '') - if (getEntityID() === reducerErrorCartId) { - return new Error(error.message + '-onReducerError') + ): Promise { + console.log(eventEnvelope) + console.log(reducerMetadata) + console.log(snapshotInstance) + const entityId = eventInstance?.entityID ? eventInstance.entityID() : '' + if (entityId === reducerErrorCartId) { + return new Error(`${error.message}-onReducerError with metadata: ${JSON.stringify(reducerMetadata)}`) } return error } public static async onProjectionError( error: Error, + entityEnvelope: EntitySnapshotEnvelope, + projectionMetadata: ProjectionMetadata, entity: EntityInterface, readModel: ReadModelInterface | undefined ): Promise { + console.log(entityEnvelope) + console.log(projectionMetadata) + console.log(readModel) if (entity?.id === projectionErrorCartId) { - return new Error(error.message + '-onProjectionError') + return new Error(`${error.message}-onProjectionError with metadata: ${JSON.stringify(projectionMetadata)}`) } return error } diff --git a/packages/framework-types/src/concepts/global-error-handler-metadata.ts b/packages/framework-types/src/concepts/global-error-handler-metadata.ts index 732da0efe..876cf5e95 100644 --- a/packages/framework-types/src/concepts/global-error-handler-metadata.ts +++ b/packages/framework-types/src/concepts/global-error-handler-metadata.ts @@ -1,21 +1,50 @@ import { AnyClass } from '../typelevel' -import { CommandEnvelope, EventEnvelope, NonPersistedEntitySnapshotEnvelope, QueryEnvelope } from '../envelope' +import { + CommandEnvelope, + EntitySnapshotEnvelope, + EventEnvelope, + NonPersistedEntitySnapshotEnvelope, + QueryEnvelope, + ScheduledCommandEnvelope, +} from '../envelope' import { EventInterface } from './event' import { ReadModelInterface } from './read-model' import { EntityInterface } from './entity' +import { ReducerMetadata } from './reducer-metadata' +import { ScheduledCommandMetadata } from './scheduled-command' +import { CommandMetadata } from './command' +import { ProjectionMetadata } from './projection-metadata' +import { NotificationInterface } from './notification' export interface GlobalErrorHandlerInterface extends AnyClass { - onCommandHandlerError?(error: Error, command: CommandEnvelope): Promise + onCommandHandlerError?( + error: Error, + commandEnvelope: CommandEnvelope, + commandMetadata: CommandMetadata + ): Promise onQueryHandlerError?(error: Error, query: QueryEnvelope): Promise - onScheduledCommandHandlerError?(error: Error): Promise - onDispatchEventHandlerError?(error: Error, eventInstance: EventInterface): Promise + onScheduledCommandHandlerError?( + error: Error, + scheduledCommandEnvelope: ScheduledCommandEnvelope, + scheduledCommandMetadata: ScheduledCommandMetadata + ): Promise + onDispatchEventHandlerError?( + error: Error, + eventEnvelope: EventEnvelope | NotificationInterface, + eventHandlerMetadata: unknown, + eventInstance: EventInterface + ): Promise onReducerError?( error: Error, + eventEnvelope: EventEnvelope, + reducerMetadata: ReducerMetadata, eventInstance: EventInterface, snapshotInstance: EntityInterface | null - ): Promise + ): Promise onProjectionError?( error: Error, + entityEnvelope: EntitySnapshotEnvelope, + projectionMetadata: ProjectionMetadata, entity: EntityInterface, readModel: ReadModelInterface | undefined ): Promise diff --git a/packages/framework-types/src/errors/command-handler-global-error.ts b/packages/framework-types/src/errors/command-handler-global-error.ts index a95ca7000..04c148ff5 100644 --- a/packages/framework-types/src/errors/command-handler-global-error.ts +++ b/packages/framework-types/src/errors/command-handler-global-error.ts @@ -1,8 +1,13 @@ import { GlobalErrorContainer } from './global-error-container' import { CommandEnvelope } from '../envelope' +import { CommandMetadata } from '../concepts' export class CommandHandlerGlobalError extends GlobalErrorContainer { - constructor(readonly command: CommandEnvelope, originalError: Error) { + constructor( + readonly commandEnvelope: CommandEnvelope, + readonly commandMetadata: CommandMetadata, + originalError: Error + ) { super(originalError) } } diff --git a/packages/framework-types/src/errors/event-handler-global-error.ts b/packages/framework-types/src/errors/event-handler-global-error.ts index 5f413cec4..4d20839bf 100644 --- a/packages/framework-types/src/errors/event-handler-global-error.ts +++ b/packages/framework-types/src/errors/event-handler-global-error.ts @@ -1,8 +1,14 @@ import { GlobalErrorContainer } from './global-error-container' -import { EventInterface } from '../concepts' +import { EventInterface, NotificationInterface } from '../concepts' +import { EventEnvelope } from '../envelope' export class EventHandlerGlobalError extends GlobalErrorContainer { - constructor(readonly eventInstance: EventInterface, originalError: Error) { + constructor( + readonly eventEnvelope: EventEnvelope | NotificationInterface, + readonly eventInstance: EventInterface, + readonly eventHandlerMetadata: unknown, + originalError: Error + ) { super(originalError) } } diff --git a/packages/framework-types/src/errors/index.ts b/packages/framework-types/src/errors/index.ts index 5463e2ade..e9e67735f 100644 --- a/packages/framework-types/src/errors/index.ts +++ b/packages/framework-types/src/errors/index.ts @@ -3,7 +3,6 @@ export * from './query-handler-global-error' export * from './event-handler-global-error' export * from './global-error-container' export * from './projection-global-error' -export * from './read-model-global-error' export * from './reducer-global-error' export * from './schedule-command-global-error' export * from './snapshot-persist-handler-global-error' diff --git a/packages/framework-types/src/errors/projection-global-error.ts b/packages/framework-types/src/errors/projection-global-error.ts index 16e56735d..3da287444 100644 --- a/packages/framework-types/src/errors/projection-global-error.ts +++ b/packages/framework-types/src/errors/projection-global-error.ts @@ -1,10 +1,13 @@ import { GlobalErrorContainer } from './global-error-container' -import { EntityInterface, ReadModelInterface } from '../concepts' +import { EntityInterface, ProjectionMetadata, ReadModelInterface } from '../concepts' +import { EntitySnapshotEnvelope } from '../envelope' export class ProjectionGlobalError extends GlobalErrorContainer { constructor( + readonly entityEnvelope: EntitySnapshotEnvelope, readonly entity: EntityInterface, readonly readModel: ReadModelInterface | undefined, + readonly projectionMetadata: ProjectionMetadata, originalError: Error ) { super(originalError) diff --git a/packages/framework-types/src/errors/read-model-global-error.ts b/packages/framework-types/src/errors/read-model-global-error.ts deleted file mode 100644 index 24175f1d6..000000000 --- a/packages/framework-types/src/errors/read-model-global-error.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { GlobalErrorContainer } from './global-error-container' - -export class ReadModelGlobalError extends GlobalErrorContainer {} diff --git a/packages/framework-types/src/errors/reducer-global-error.ts b/packages/framework-types/src/errors/reducer-global-error.ts index 49f109ed5..7aed1ac05 100644 --- a/packages/framework-types/src/errors/reducer-global-error.ts +++ b/packages/framework-types/src/errors/reducer-global-error.ts @@ -1,10 +1,13 @@ import { GlobalErrorContainer } from './global-error-container' -import { EntityInterface, EventInterface } from '../concepts' +import { EntityInterface, EventInterface, ReducerMetadata } from '../concepts' +import { EventEnvelope } from '../envelope' export class ReducerGlobalError extends GlobalErrorContainer { constructor( + readonly eventEnvelope: EventEnvelope, readonly eventInstance: EventInterface, readonly snapshotInstance: EntityInterface | null, + readonly reducerMetadata: ReducerMetadata, originalError: Error ) { super(originalError) diff --git a/packages/framework-types/src/errors/schedule-command-global-error.ts b/packages/framework-types/src/errors/schedule-command-global-error.ts index db900b017..0c996e9cf 100644 --- a/packages/framework-types/src/errors/schedule-command-global-error.ts +++ b/packages/framework-types/src/errors/schedule-command-global-error.ts @@ -1,3 +1,13 @@ import { GlobalErrorContainer } from './global-error-container' +import { ScheduledCommandMetadata } from '../concepts' +import { ScheduledCommandEnvelope } from '../envelope' -export class ScheduleCommandGlobalError extends GlobalErrorContainer {} +export class ScheduleCommandGlobalError extends GlobalErrorContainer { + constructor( + readonly scheduleCommandEnvelope: ScheduledCommandEnvelope, + readonly scheduleCommandMetadata: ScheduledCommandMetadata, + originalError: Error + ) { + super(originalError) + } +} diff --git a/website/docs/03_features/05_error-handling.md b/website/docs/03_features/05_error-handling.md index 8d93fb31c..0899b07c1 100644 --- a/website/docs/03_features/05_error-handling.md +++ b/website/docs/03_features/05_error-handling.md @@ -2,13 +2,13 @@ ## Error handling in Booster -Booster provides a default error handling mechanism that will try to catch all the errors that are thrown in the application and will log them. This is useful for debugging purposes, but you may want to customize the error handling in your application. For example, you may want to send an email to the administrator when an error occurs. +Booster provides a default error handling mechanism that will try to catch all the errors that are thrown in the application and will log them. This is useful for debugging purposes, but you may want to customize the error handling in your application. For example, you may want to email the administrator when an error occurs. ### Custom error handling To customize the error handling, you need to create a class decorated with the `@GlobalErrorHandler` decorator. This class will contain the methods that will be called when an error is thrown. There is one method for each component in the application where an error can be thrown. All these functions receive the error that was thrown and the information about the component that was being executed when the error occurred. -They must return a promise that resolves to an `Error` object or `undefined`. If the promise resolves to `undefined`, the error will be ignored and the application will continue working. If the promise resolves to an `Error` object, the error will be thrown. +They must return a promise that resolves to an `Error` object or `undefined`. If the promise resolves to `undefined`, the error will be ignored and **Booster** will continue working. If the promise resolves to an `Error` object, the error will be thrown and **Booster** will handle it on a case-by-case basis in the default way. ### Command handle errors @@ -17,7 +17,11 @@ These are the errors that are thrown in the `handle` method of the `@Command`. Y ```typescript @GlobalErrorHandler() export class MyErrorHandler { - public onCommandHandlerError(error: Error, command: CommandEnvelope): Promise { + public static async onCommandHandlerError( + error: Error, + commandEnvelope: CommandEnvelope, + commandMetadata: CommandMetadata + ): Promise { // Do something with the error } } @@ -32,13 +36,17 @@ These are the errors that are thrown in the `handle` method of the `@ScheduledCo ```typescript @GlobalErrorHandler() export class MyErrorHandler { - public onScheduledCommandHandlerError(error: Error): Promise { + public static async onScheduledCommandHandlerError( + error: Error, + scheduledCommandEnvelope: ScheduledCommandEnvelope, + scheduledCommandMetadata: ScheduledCommandMetadata + ): Promise { // Do something with the error } } ``` -This method receives the error that was thrown. +Note that if an error is thrown on a ScheduleCommand, **Booster** will stop working. ### Event handler errors @@ -47,14 +55,17 @@ These are the errors that are thrown in the `handle` method of the `@Event`. You ```typescript @GlobalErrorHandler() export class MyErrorHandler { - public onEventHandlerError(error: Error, event: EventEnvelope): Promise { + public static async onDispatchEventHandlerError( + error: Error, + eventEnvelope: EventEnvelope | NotificationInterface, + eventHandlerMetadata: unknown, + eventInstance: EventInterface + ): Promise { // Do something with the error } } ``` -This method receives the error that was thrown and the event that was being handled when the error occurred. - ### Reducer errors These are the errors that are thrown in the `@Reduces` method of the `@Entity`. You can catch and return new errors in this function annotating a class with `@GlobalErrorHandler` and implementing the following method: @@ -62,12 +73,20 @@ These are the errors that are thrown in the `@Reduces` method of the `@Entity`. ```typescript @GlobalErrorHandler() export class MyErrorHandler { - public onReducerError(error: Error, entity: EntityInterface, snapshot: EntityInterface | null): Promise { + public static async onReducerError( + error: Error, + eventEnvelope: EventEnvelope, + reducerMetadata: ReducerMetadata, + eventInstance: EventInterface, + snapshotInstance: EntityInterface | null + ): Promise { // Do something with the error } } ``` +Note you can not ignore a Reducer error as the new entity could not be created + ### Event errors These are the errors that are thrown if the event doesn't exist. You can catch and return new errors in this function annotating a class with `@GlobalErrorHandler` and implementing the following method: @@ -90,14 +109,18 @@ These are the errors that are thrown in the `@Projects` method of the `@ReadMode ```typescript @GlobalErrorHandler() export class MyErrorHandler { - public onProjectionError(error: Error, readModel: ReadModelInterface, entity: EntityInterface): Promise { + public static async onProjectionError( + error: Error, + entityEnvelope: EntitySnapshotEnvelope, + projectionMetadata: ProjectionMetadata, + entity: EntityInterface, + readModel: ReadModelInterface | undefined + ): Promise { // Do something with the error } } ``` -This method receives the error that was thrown, the name of the read model, the ID of the read model, and the name of the projection. - ### All errors These are the errors that are thrown in any of the previous methods. You can catch and return new errors in this function annotating a class with `@GlobalErrorHandler` and implementing the following method: @@ -120,20 +143,35 @@ You can implement all error handling functions in the same class. Here is an exa ```typescript @GlobalErrorHandler() export class AppErrorHandler { - public static async onCommandHandlerError(error: Error, command: CommandEnvelope): Promise { + public static async onCommandHandlerError( + error: Error, + commandEnvelope: CommandEnvelope, + commandMetadata: CommandMetadata + ): Promise { return error } - public static async onScheduledCommandHandlerError(error: Error): Promise { + public static async onScheduledCommandHandlerError( + error: Error, + scheduledCommandEnvelope: ScheduledCommandEnvelope, + scheduledCommandMetadata: ScheduledCommandMetadata + ): Promise { return error } - public static async onDispatchEventHandlerError(error: Error, eventInstance: EventInterface): Promise { + public static async onDispatchEventHandlerError( + error: Error, + eventEnvelope: EventEnvelope | NotificationInterface, + eventHandlerMetadata: unknown, + eventInstance: EventInterface + ): Promise { return error } public static async onReducerError( error: Error, + eventEnvelope: EventEnvelope, + reducerMetadata: ReducerMetadata, eventInstance: EventInterface, snapshotInstance: EntityInterface | null ): Promise { @@ -142,6 +180,8 @@ export class AppErrorHandler { public static async onProjectionError( error: Error, + entityEnvelope: EntitySnapshotEnvelope, + projectionMetadata: ProjectionMetadata, entity: EntityInterface, readModel: ReadModelInterface | undefined ): Promise { From 8adf2eec97a0a212d4f7b8d1d8fd7aef6772b9f0 Mon Sep 17 00:00:00 2001 From: GITHUBACTION Date: Tue, 6 Aug 2024 20:59:53 +0000 Subject: [PATCH 12/47] Bump versions [skip ci] --- ...global_error_handler_2023-04-11-09-22.json | 10 ------- common/config/rush/version-policies.json | 2 +- packages/application-tester/package.json | 6 ++-- packages/cli/package.json | 10 +++---- .../framework-common-helpers/package.json | 6 ++-- packages/framework-core/CHANGELOG.json | 28 +++++++++++++++++++ packages/framework-core/CHANGELOG.md | 9 +++++- packages/framework-core/package.json | 10 +++---- .../framework-integration-tests/package.json | 28 +++++++++---------- .../package.json | 10 +++---- packages/framework-provider-aws/package.json | 8 +++--- .../package.json | 12 ++++---- .../framework-provider-azure/package.json | 8 +++--- .../package.json | 10 +++---- .../framework-provider-local/package.json | 8 +++--- packages/framework-types/package.json | 6 ++-- packages/metadata-booster/package.json | 4 +-- tools/eslint-config/package.json | 2 +- 18 files changed, 101 insertions(+), 76 deletions(-) delete mode 100644 common/changes/@boostercloud/framework-core/improve_global_error_handler_2023-04-11-09-22.json diff --git a/common/changes/@boostercloud/framework-core/improve_global_error_handler_2023-04-11-09-22.json b/common/changes/@boostercloud/framework-core/improve_global_error_handler_2023-04-11-09-22.json deleted file mode 100644 index 0270d96c1..000000000 --- a/common/changes/@boostercloud/framework-core/improve_global_error_handler_2023-04-11-09-22.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@boostercloud/framework-core", - "comment": "Improve GlobalErrorHandler", - "type": "minor" - } - ], - "packageName": "@boostercloud/framework-core" -} \ No newline at end of file diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index b302d2eb1..984c6d9b3 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -103,6 +103,6 @@ "definitionName": "lockStepVersion", "policyName": "booster", "mainProject": "@boostercloud/framework-core", - "version": "2.15.0" + "version": "2.16.0" } ] diff --git a/packages/application-tester/package.json b/packages/application-tester/package.json index f060f2965..e408c36c7 100644 --- a/packages/application-tester/package.json +++ b/packages/application-tester/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/application-tester", - "version": "2.15.0", + "version": "2.16.0", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "application-tester" @@ -36,7 +36,7 @@ }, "dependencies": { "@apollo/client": "3.7.13", - "@boostercloud/framework-types": "workspace:^2.15.0", + "@boostercloud/framework-types": "workspace:^2.16.0", "cross-fetch": "3.1.5", "graphql": "^16.6.0", "jsonwebtoken": "9.0.1", @@ -48,7 +48,7 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.15.0", + "@boostercloud/eslint-config": "workspace:^2.16.0", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", "eslint": "^8.23.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 5adb49170..e0e9a75bd 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/cli", "description": "CLI of the Booster Framework, the next level of abstraction for cloud-native applications", - "version": "2.15.0", + "version": "2.16.0", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -12,8 +12,8 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-core": "workspace:^2.15.0", - "@boostercloud/framework-types": "workspace:^2.15.0", + "@boostercloud/framework-core": "workspace:^2.16.0", + "@boostercloud/framework-types": "workspace:^2.16.0", "@oclif/core": "3.15.0", "@oclif/plugin-help": "^5", "chalk": "^2.4.2", @@ -30,8 +30,8 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.15.0", - "@boostercloud/application-tester": "workspace:^2.15.0", + "@boostercloud/eslint-config": "workspace:^2.16.0", + "@boostercloud/application-tester": "workspace:^2.16.0", "@oclif/test": "^3.0.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", diff --git a/packages/framework-common-helpers/package.json b/packages/framework-common-helpers/package.json index 84ffe10e6..91a49f9c9 100644 --- a/packages/framework-common-helpers/package.json +++ b/packages/framework-common-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-common-helpers", - "version": "2.15.0", + "version": "2.16.0", "description": "Contains Booster common helpers used by the core and provider packages", "keywords": [ "framework-common-helpers" @@ -36,14 +36,14 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-types": "workspace:^2.15.0", + "@boostercloud/framework-types": "workspace:^2.16.0", "child-process-promise": "^2.2.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "class-transformer": "~0.5.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.15.0", + "@boostercloud/eslint-config": "workspace:^2.16.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/child-process-promise": "^2.2.1", diff --git a/packages/framework-core/CHANGELOG.json b/packages/framework-core/CHANGELOG.json index b91343e11..e7299d4ef 100644 --- a/packages/framework-core/CHANGELOG.json +++ b/packages/framework-core/CHANGELOG.json @@ -1,6 +1,34 @@ { "name": "@boostercloud/framework-core", "entries": [ + { + "version": "2.16.0", + "tag": "@boostercloud/framework-core_v2.16.0", + "date": "Tue, 06 Aug 2024 20:59:53 GMT", + "comments": { + "minor": [ + { + "comment": "Improve GlobalErrorHandler", + "author": "gonzalojaubert <111118818+gonzalojaubert@users.noreply.github.com>", + "commit": "84b93bc513693f326b766678e423c2d669d18b94" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@boostercloud/framework-common-helpers\" from `^2.15.0` to `^2.16.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/framework-types\" from `^2.15.0` to `^2.16.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/metadata-booster\" from `^2.15.0` to `^2.16.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/eslint-config\" from `^2.15.0` to `^2.16.0`" + } + ] + } + }, { "version": "2.15.0", "tag": "@boostercloud/framework-core_v2.15.0", diff --git a/packages/framework-core/CHANGELOG.md b/packages/framework-core/CHANGELOG.md index 84b81a777..ad656aa1e 100644 --- a/packages/framework-core/CHANGELOG.md +++ b/packages/framework-core/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @boostercloud/framework-core -This log was last generated on Wed, 31 Jul 2024 14:54:27 GMT and should not be manually modified. +This log was last generated on Tue, 06 Aug 2024 20:59:53 GMT and should not be manually modified. + +## 2.16.0 +Tue, 06 Aug 2024 20:59:53 GMT + +### Minor changes + +- Improve GlobalErrorHandler ## 2.15.0 Wed, 31 Jul 2024 14:54:27 GMT diff --git a/packages/framework-core/package.json b/packages/framework-core/package.json index 21508928f..5dee161bc 100644 --- a/packages/framework-core/package.json +++ b/packages/framework-core/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-core", - "version": "2.15.0", + "version": "2.16.0", "description": "Library for your Booster apps", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", @@ -37,8 +37,8 @@ "graphql": "^16.6.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.15.0", - "@boostercloud/framework-types": "workspace:^2.15.0", + "@boostercloud/framework-common-helpers": "workspace:^2.16.0", + "@boostercloud/framework-types": "workspace:^2.16.0", "fp-ts": "^2.11.0", "graphql-scalars": "^1.17.0", "graphql-subscriptions": "2.0.0", @@ -61,8 +61,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/metadata-booster": "workspace:^2.15.0", - "@boostercloud/eslint-config": "workspace:^2.15.0", + "@boostercloud/metadata-booster": "workspace:^2.16.0", + "@boostercloud/eslint-config": "workspace:^2.16.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-integration-tests/package.json b/packages/framework-integration-tests/package.json index 785a0218f..1cb604a9f 100644 --- a/packages/framework-integration-tests/package.json +++ b/packages/framework-integration-tests/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-integration-tests", "description": "Example project for Booster", - "version": "2.15.0", + "version": "2.16.0", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -9,12 +9,12 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.15.0", - "@boostercloud/framework-core": "workspace:^2.15.0", - "@boostercloud/framework-provider-aws": "workspace:^2.15.0", - "@boostercloud/framework-provider-azure": "workspace:^2.15.0", - "@boostercloud/framework-provider-local": "workspace:^2.15.0", - "@boostercloud/framework-types": "workspace:^2.15.0", + "@boostercloud/framework-common-helpers": "workspace:^2.16.0", + "@boostercloud/framework-core": "workspace:^2.16.0", + "@boostercloud/framework-provider-aws": "workspace:^2.16.0", + "@boostercloud/framework-provider-azure": "workspace:^2.16.0", + "@boostercloud/framework-provider-local": "workspace:^2.16.0", + "@boostercloud/framework-types": "workspace:^2.16.0", "aws-sdk": "2.853.0", "graphql": "^16.6.0", "tslib": "^2.4.0", @@ -33,13 +33,13 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.15.0", - "@boostercloud/application-tester": "workspace:^2.15.0", - "@boostercloud/cli": "workspace:^2.15.0", - "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.15.0", - "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.15.0", - "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.15.0", - "@boostercloud/metadata-booster": "workspace:^2.15.0", + "@boostercloud/eslint-config": "workspace:^2.16.0", + "@boostercloud/application-tester": "workspace:^2.16.0", + "@boostercloud/cli": "workspace:^2.16.0", + "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.16.0", + "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.16.0", + "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.16.0", + "@boostercloud/metadata-booster": "workspace:^2.16.0", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-aws-infrastructure/package.json b/packages/framework-provider-aws-infrastructure/package.json index bf6874f80..fb32785a1 100644 --- a/packages/framework-provider-aws-infrastructure/package.json +++ b/packages/framework-provider-aws-infrastructure/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws-infrastructure", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.15.0", + "version": "2.16.0", "description": "Handle the Booster deployment process to AWS", "keywords": [ "framework-provider-aws-infrastructure" @@ -41,9 +41,9 @@ "@aws-cdk/aws-s3-deployment": "^1.170.0", "@aws-cdk/core": "^1.170.0", "@aws-cdk/cx-api": "^1.170.0", - "@boostercloud/framework-common-helpers": "workspace:^2.15.0", - "@boostercloud/framework-provider-aws": "workspace:^2.15.0", - "@boostercloud/framework-types": "workspace:^2.15.0", + "@boostercloud/framework-common-helpers": "workspace:^2.16.0", + "@boostercloud/framework-provider-aws": "workspace:^2.16.0", + "@boostercloud/framework-types": "workspace:^2.16.0", "constructs": "^3.3.69", "aws-cdk": "^1.170.0", "aws-sdk": "2.853.0", @@ -69,7 +69,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.15.0", + "@boostercloud/eslint-config": "workspace:^2.16.0", "@types/aws-lambda": "8.10.48", "@types/aws-sdk": "2.7.0", "@types/chai": "4.2.18", diff --git a/packages/framework-provider-aws/package.json b/packages/framework-provider-aws/package.json index be9afeb16..ddacc27a2 100644 --- a/packages/framework-provider-aws/package.json +++ b/packages/framework-provider-aws/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.15.0", + "version": "2.16.0", "description": "Handle Booster's integration with AWS", "keywords": [ "framework-provider-aws" @@ -24,8 +24,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.15.0", - "@boostercloud/framework-types": "workspace:^2.15.0", + "@boostercloud/framework-common-helpers": "workspace:^2.16.0", + "@boostercloud/framework-types": "workspace:^2.16.0", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4" }, @@ -43,7 +43,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.15.0", + "@boostercloud/eslint-config": "workspace:^2.16.0", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-azure-infrastructure/package.json b/packages/framework-provider-azure-infrastructure/package.json index 9f63a8a94..669ee33f9 100644 --- a/packages/framework-provider-azure-infrastructure/package.json +++ b/packages/framework-provider-azure-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure-infrastructure", - "version": "2.15.0", + "version": "2.16.0", "description": "Handle the Booster deployment process to Azure", "keywords": [ "framework-provider-azure-infrastructure" @@ -25,10 +25,10 @@ "dependencies": { "@azure/arm-appservice": "^13.0.0", "@azure/cosmos": "^4.0.0", - "@boostercloud/framework-common-helpers": "workspace:^2.15.0", - "@boostercloud/framework-core": "workspace:^2.15.0", - "@boostercloud/framework-provider-azure": "workspace:^2.15.0", - "@boostercloud/framework-types": "workspace:^2.15.0", + "@boostercloud/framework-common-helpers": "workspace:^2.16.0", + "@boostercloud/framework-core": "workspace:^2.16.0", + "@boostercloud/framework-provider-azure": "workspace:^2.16.0", + "@boostercloud/framework-types": "workspace:^2.16.0", "@cdktf/provider-azurerm": "11.2.0", "@cdktf/provider-time": "9.0.2", "@types/archiver": "5.1.0", @@ -67,7 +67,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.15.0", + "@boostercloud/eslint-config": "workspace:^2.16.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-azure/package.json b/packages/framework-provider-azure/package.json index c335aa8a4..7eef51f91 100644 --- a/packages/framework-provider-azure/package.json +++ b/packages/framework-provider-azure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure", - "version": "2.15.0", + "version": "2.16.0", "description": "Handle Booster's integration with Azure", "keywords": [ "framework-provider-azure" @@ -27,14 +27,14 @@ "@azure/functions": "^1.2.2", "@azure/identity": "~2.1.0", "@azure/event-hubs": "5.11.1", - "@boostercloud/framework-common-helpers": "workspace:^2.15.0", - "@boostercloud/framework-types": "workspace:^2.15.0", + "@boostercloud/framework-common-helpers": "workspace:^2.16.0", + "@boostercloud/framework-types": "workspace:^2.16.0", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "@azure/web-pubsub": "~1.1.0" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.15.0", + "@boostercloud/eslint-config": "workspace:^2.16.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-local-infrastructure/package.json b/packages/framework-provider-local-infrastructure/package.json index 281f10481..5e6425d21 100644 --- a/packages/framework-provider-local-infrastructure/package.json +++ b/packages/framework-provider-local-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local-infrastructure", - "version": "2.15.0", + "version": "2.16.0", "description": "Handle the Booster running process of the local runtime", "keywords": [ "framework-provider-local-infrastructure" @@ -23,9 +23,9 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.15.0", - "@boostercloud/framework-provider-local": "workspace:^2.15.0", - "@boostercloud/framework-types": "workspace:^2.15.0", + "@boostercloud/framework-common-helpers": "workspace:^2.16.0", + "@boostercloud/framework-provider-local": "workspace:^2.16.0", + "@boostercloud/framework-types": "workspace:^2.16.0", "cors": "2.8.5", "express": "^4.19.2", "node-schedule": "^2.1.0", @@ -46,7 +46,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.15.0", + "@boostercloud/eslint-config": "workspace:^2.16.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/cors": "^2.8.12", diff --git a/packages/framework-provider-local/package.json b/packages/framework-provider-local/package.json index e99d8b187..f6abde98d 100644 --- a/packages/framework-provider-local/package.json +++ b/packages/framework-provider-local/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local", - "version": "2.15.0", + "version": "2.16.0", "description": "Debug your Booster projects locally", "keywords": [ "framework-provider-local" @@ -23,8 +23,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.15.0", - "@boostercloud/framework-types": "workspace:^2.15.0", + "@boostercloud/framework-common-helpers": "workspace:^2.16.0", + "@boostercloud/framework-types": "workspace:^2.16.0", "@seald-io/nedb": "4.0.2", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", @@ -44,7 +44,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.15.0", + "@boostercloud/eslint-config": "workspace:^2.16.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/express": "^4.17.21", diff --git a/packages/framework-types/package.json b/packages/framework-types/package.json index 075d755a8..0194528ca 100644 --- a/packages/framework-types/package.json +++ b/packages/framework-types/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-types", - "version": "2.15.0", + "version": "2.16.0", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "framework-types" @@ -54,8 +54,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.15.0", - "@boostercloud/metadata-booster": "workspace:^2.15.0", + "@boostercloud/eslint-config": "workspace:^2.16.0", + "@boostercloud/metadata-booster": "workspace:^2.16.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/mocha": "10.0.1", diff --git a/packages/metadata-booster/package.json b/packages/metadata-booster/package.json index ee7e508fa..c6a141690 100644 --- a/packages/metadata-booster/package.json +++ b/packages/metadata-booster/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/metadata-booster", - "version": "2.15.0", + "version": "2.16.0", "description": "Emits detailed metadata of your types. You can then get it in runtime to deal with schema-aware operation, like defining GraphQL schemas, ORM operations, etc.", "repository": "https://github.com/boostercloud/booster.git", "keywords": [ @@ -38,7 +38,7 @@ "eslint-config-prettier": "8.3.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "3.4.0", - "@boostercloud/eslint-config": "workspace:^2.15.0", + "@boostercloud/eslint-config": "workspace:^2.16.0", "@types/node": "^18.18.2", "ts-node": "^10.9.1", "ts-patch": "3.1.2", diff --git a/tools/eslint-config/package.json b/tools/eslint-config/package.json index 964d46746..4e46f6303 100644 --- a/tools/eslint-config/package.json +++ b/tools/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/eslint-config", - "version": "2.15.0", + "version": "2.16.0", "description": "Shared eslint rules", "main": "index.js", "publishConfig": { From cb500c908e459897f7ab5f5d8acc46a71b310be6 Mon Sep 17 00:00:00 2001 From: Mario Castro Squella Date: Tue, 20 Aug 2024 18:12:27 -0400 Subject: [PATCH 13/47] Rocket health sensors (#1546) * Add rocket function app names to main function env vars * Add sensors for rockets * Correct app settings for event hub function app * Add rush change file * Update pnpm-lock.yaml * Update pnpm-lock.yaml * Update docs and English grammar corrections * Handle case for app that doesn't have any rockets --------- Co-authored-by: Castro, Mario --- ...ocket_health_sensors_2024-08-19-17-06.json | 10 + common/config/rush/pnpm-lock.yaml | 175 +++++++++++------- .../sensor/health/booster-health-service.ts | 8 +- .../default-booster-health-indicators.ts | 8 + .../rockets-health-indicator.ts | 52 ++++++ .../src/sensor/health/health-utils.ts | 2 +- .../health/booster-health-service.test.ts | 17 +- .../test/sensor/health/health-utils.test.ts | 12 +- packages/framework-provider-aws/src/setup.ts | 2 + .../src/infrastructure/application-builder.ts | 2 + .../src/infrastructure/azure-stack.ts | 29 ++- .../infrastructure/synth/application-synth.ts | 17 +- .../synth/terraform-function-app-settings.ts | 40 ++++ .../synth/terraform-function-app.ts | 32 +--- .../framework-provider-azure/src/constants.ts | 1 + .../framework-provider-azure/src/index.ts | 2 + .../src/library/health-adapter.ts | 27 +++ .../framework-provider-local/src/index.ts | 1 + packages/framework-types/src/provider.ts | 1 + .../sensor/health-indicator-configuration.ts | 4 + .../10_going-deeper/health/sensor-health.md | 18 +- 21 files changed, 325 insertions(+), 135 deletions(-) create mode 100644 common/changes/@boostercloud/framework-core/rocket_health_sensors_2024-08-19-17-06.json create mode 100644 packages/framework-core/src/sensor/health/health-indicators/rockets-health-indicator.ts create mode 100644 packages/framework-provider-azure-infrastructure/src/infrastructure/synth/terraform-function-app-settings.ts diff --git a/common/changes/@boostercloud/framework-core/rocket_health_sensors_2024-08-19-17-06.json b/common/changes/@boostercloud/framework-core/rocket_health_sensors_2024-08-19-17-06.json new file mode 100644 index 000000000..57c71392f --- /dev/null +++ b/common/changes/@boostercloud/framework-core/rocket_health_sensors_2024-08-19-17-06.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@boostercloud/framework-core", + "comment": "Health sensors for Rockets", + "type": "minor" + } + ], + "packageName": "@boostercloud/framework-core" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index cb6d01232..a867549d2 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,8 +8,8 @@ importers: ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^2.15.0 - '@boostercloud/framework-types': workspace:^2.15.0 + '@boostercloud/eslint-config': workspace:^2.16.0 + '@boostercloud/framework-types': workspace:^2.16.0 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.18.2 @@ -70,10 +70,10 @@ importers: ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^2.15.0 - '@boostercloud/eslint-config': workspace:^2.15.0 - '@boostercloud/framework-core': workspace:^2.15.0 - '@boostercloud/framework-types': workspace:^2.15.0 + '@boostercloud/application-tester': workspace:^2.16.0 + '@boostercloud/eslint-config': workspace:^2.16.0 + '@boostercloud/framework-core': workspace:^2.16.0 + '@boostercloud/framework-types': workspace:^2.16.0 '@effect-ts/core': ^0.60.4 '@oclif/core': 3.15.0 '@oclif/plugin-help': ^5 @@ -183,8 +183,8 @@ importers: ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^2.15.0 - '@boostercloud/framework-types': workspace:^2.15.0 + '@boostercloud/eslint-config': workspace:^2.16.0 + '@boostercloud/framework-types': workspace:^2.16.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -258,10 +258,10 @@ importers: ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^2.15.0 - '@boostercloud/framework-common-helpers': workspace:^2.15.0 - '@boostercloud/framework-types': workspace:^2.15.0 - '@boostercloud/metadata-booster': workspace:^2.15.0 + '@boostercloud/eslint-config': workspace:^2.16.0 + '@boostercloud/framework-common-helpers': workspace:^2.16.0 + '@boostercloud/framework-types': workspace:^2.16.0 + '@boostercloud/metadata-booster': workspace:^2.16.0 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 '@effect/platform-node': 0.45.26 @@ -378,19 +378,19 @@ importers: ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^2.15.0 - '@boostercloud/cli': workspace:^2.15.0 - '@boostercloud/eslint-config': workspace:^2.15.0 - '@boostercloud/framework-common-helpers': workspace:^2.15.0 - '@boostercloud/framework-core': workspace:^2.15.0 - '@boostercloud/framework-provider-aws': workspace:^2.15.0 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.15.0 - '@boostercloud/framework-provider-azure': workspace:^2.15.0 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.15.0 - '@boostercloud/framework-provider-local': workspace:^2.15.0 - '@boostercloud/framework-provider-local-infrastructure': workspace:^2.15.0 - '@boostercloud/framework-types': workspace:^2.15.0 - '@boostercloud/metadata-booster': workspace:^2.15.0 + '@boostercloud/application-tester': workspace:^2.16.0 + '@boostercloud/cli': workspace:^2.16.0 + '@boostercloud/eslint-config': workspace:^2.16.0 + '@boostercloud/framework-common-helpers': workspace:^2.16.0 + '@boostercloud/framework-core': workspace:^2.16.0 + '@boostercloud/framework-provider-aws': workspace:^2.16.0 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.16.0 + '@boostercloud/framework-provider-azure': workspace:^2.16.0 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.16.0 + '@boostercloud/framework-provider-local': workspace:^2.16.0 + '@boostercloud/framework-provider-local-infrastructure': workspace:^2.16.0 + '@boostercloud/framework-types': workspace:^2.16.0 + '@boostercloud/metadata-booster': workspace:^2.16.0 '@effect-ts/core': ^0.60.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 @@ -536,9 +536,9 @@ importers: ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^2.15.0 - '@boostercloud/framework-common-helpers': workspace:^2.15.0 - '@boostercloud/framework-types': workspace:^2.15.0 + '@boostercloud/eslint-config': workspace:^2.16.0 + '@boostercloud/framework-common-helpers': workspace:^2.16.0 + '@boostercloud/framework-types': workspace:^2.16.0 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -632,10 +632,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^2.15.0 - '@boostercloud/framework-common-helpers': workspace:^2.15.0 - '@boostercloud/framework-provider-aws': workspace:^2.15.0 - '@boostercloud/framework-types': workspace:^2.15.0 + '@boostercloud/eslint-config': workspace:^2.16.0 + '@boostercloud/framework-common-helpers': workspace:^2.16.0 + '@boostercloud/framework-provider-aws': workspace:^2.16.0 + '@boostercloud/framework-types': workspace:^2.16.0 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -749,9 +749,9 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^2.15.0 - '@boostercloud/framework-common-helpers': workspace:^2.15.0 - '@boostercloud/framework-types': workspace:^2.15.0 + '@boostercloud/eslint-config': workspace:^2.16.0 + '@boostercloud/framework-common-helpers': workspace:^2.16.0 + '@boostercloud/framework-types': workspace:^2.16.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -823,11 +823,11 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^2.15.0 - '@boostercloud/framework-common-helpers': workspace:^2.15.0 - '@boostercloud/framework-core': workspace:^2.15.0 - '@boostercloud/framework-provider-azure': workspace:^2.15.0 - '@boostercloud/framework-types': workspace:^2.15.0 + '@boostercloud/eslint-config': workspace:^2.16.0 + '@boostercloud/framework-common-helpers': workspace:^2.16.0 + '@boostercloud/framework-core': workspace:^2.16.0 + '@boostercloud/framework-provider-azure': workspace:^2.16.0 + '@boostercloud/framework-types': workspace:^2.16.0 '@cdktf/provider-azurerm': 11.2.0 '@cdktf/provider-time': 9.0.2 '@effect-ts/core': ^0.60.4 @@ -934,9 +934,9 @@ importers: ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^2.15.0 - '@boostercloud/framework-common-helpers': workspace:^2.15.0 - '@boostercloud/framework-types': workspace:^2.15.0 + '@boostercloud/eslint-config': workspace:^2.16.0 + '@boostercloud/framework-common-helpers': workspace:^2.16.0 + '@boostercloud/framework-types': workspace:^2.16.0 '@effect-ts/core': ^0.60.4 '@seald-io/nedb': 4.0.2 '@types/chai': 4.2.18 @@ -1013,10 +1013,10 @@ importers: ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^2.15.0 - '@boostercloud/framework-common-helpers': workspace:^2.15.0 - '@boostercloud/framework-provider-local': workspace:^2.15.0 - '@boostercloud/framework-types': workspace:^2.15.0 + '@boostercloud/eslint-config': workspace:^2.16.0 + '@boostercloud/framework-common-helpers': workspace:^2.16.0 + '@boostercloud/framework-provider-local': workspace:^2.16.0 + '@boostercloud/framework-types': workspace:^2.16.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1096,8 +1096,8 @@ importers: ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^2.15.0 - '@boostercloud/metadata-booster': workspace:^2.15.0 + '@boostercloud/eslint-config': workspace:^2.16.0 + '@boostercloud/metadata-booster': workspace:^2.16.0 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@effect/cli': 0.35.26 @@ -1181,7 +1181,7 @@ importers: ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^2.15.0 + '@boostercloud/eslint-config': workspace:^2.16.0 '@effect-ts/core': ^0.60.4 '@types/node': ^18.18.2 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -1660,7 +1660,7 @@ packages: '@aws-cdk/aws-codecommit': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-codestarnotifications': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu @@ -1668,10 +1668,11 @@ packages: '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu - '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq + '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 + yaml: 1.10.2 transitivePeerDependencies: - '@aws-cdk/aws-lambda' - '@aws-cdk/cx-api' @@ -1787,6 +1788,7 @@ packages: '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/custom-resources': 1.204.0_c23kgzmvfhgnr6qpzzlbsfzuc4 constructs: 3.4.344 + punycode: 2.3.1 transitivePeerDependencies: - '@aws-cdk/aws-ec2' - '@aws-cdk/aws-logs' @@ -1873,7 +1875,7 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/assets': 1.204.0_uszt2j4mor3yrbm3tre3az4zvy - '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam @@ -1883,7 +1885,7 @@ packages: - '@aws-cdk/aws-events' dev: false - /@aws-cdk/aws-ecr/1.204.0_bi2u42js5xhxqcsg5gqefde4xi: + /@aws-cdk/aws-ecr/1.204.0_4bnk2gpayjo75fecjckge2dkni: resolution: {integrity: sha512-oCts9e+ackWoFHeyn/3oKm3X1lSizleWNNXHp5WGM38lpNVrtCLMKSShu5iXJBhqRH2Mz1AcA4fDMWhe8DvJFA==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -1899,11 +1901,8 @@ packages: dependencies: '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu - '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam constructs: 3.4.344 - transitivePeerDependencies: - - '@aws-cdk/cx-api' dev: false /@aws-cdk/aws-ecs/1.204.0_iu2vquo67t63xu6vdymsg3ufny: @@ -1929,7 +1928,7 @@ packages: '@aws-cdk/aws-certificatemanager': 1.204.0_xtqk4litqxecxsqs3sd6ajo2ja '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli @@ -1941,7 +1940,7 @@ packages: '@aws-cdk/aws-route53-targets': 1.204.0_2eviprr3zwoouaslbumtdekrhi '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu - '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq + '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 '@aws-cdk/aws-servicediscovery': 1.204.0_nu23nesxfni464wb5cy4ehgagi '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -2242,7 +2241,7 @@ packages: '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-notifications': 1.204.0_xguspq3b5n56mo6dsez57f32qa - '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq + '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sns-subscriptions': 1.204.0_bpkznh2gsccwq6qpaogbkb4psu '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -2275,7 +2274,7 @@ packages: '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-codeguruprofiler': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-efs': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm @@ -2436,6 +2435,7 @@ packages: '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/lambda-layer-awscli': 1.204.0_e7ybiu4yrrtvf3zlvzrvcjkvyy + case: 1.6.3 constructs: 3.4.344 transitivePeerDependencies: - '@aws-cdk/assets' @@ -2511,7 +2511,7 @@ packages: constructs: 3.4.344 dev: false - /@aws-cdk/aws-secretsmanager/1.204.0_2o53qceqenzlpxe4mjswmsqfiq: + /@aws-cdk/aws-secretsmanager/1.204.0_336juigttbrwz7tyvm6a6wfpy4: resolution: {integrity: sha512-ykpjYmP6qVOFbHtkaQBu3Xk7xp2UTR0ouzk7pb+zrEHKGmRvzGq+8J0IU+qXBJgQIVwFAPf2IgOSTzj6FJPdyA==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -2526,18 +2526,12 @@ packages: '@aws-cdk/cx-api': 1.204.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu - '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-sam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/cx-api': 1.203.0 constructs: 3.4.344 - transitivePeerDependencies: - - '@aws-cdk/assets' - - '@aws-cdk/aws-logs' - - '@aws-cdk/aws-s3' dev: false /@aws-cdk/aws-servicediscovery/1.204.0_nu23nesxfni464wb5cy4ehgagi: @@ -2715,6 +2709,9 @@ packages: /@aws-cdk/cloud-assembly-schema/1.203.0: resolution: {integrity: sha512-r252InZ8Oh7q7ztriaA3n6F48QOFVfNcT/KO4XOlYyt1xDWRMENDYf+D+DVr6O5klcaa3ivvvDT7DRuW3xdVOQ==} engines: {node: '>= 14.15.0'} + dependencies: + jsonschema: 1.4.1 + semver: 7.6.3 dev: false bundledDependencies: - jsonschema @@ -2728,6 +2725,9 @@ packages: This package is no longer being updated, and users should migrate to AWS CDK v2. For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html + dependencies: + jsonschema: 1.4.1 + semver: 7.6.3 dev: false bundledDependencies: - jsonschema @@ -2736,6 +2736,9 @@ packages: /@aws-cdk/cloud-assembly-schema/2.39.1: resolution: {integrity: sha512-lSVaaedXWeK08uoq0IXDCspz9U/H4qIERemdsMQrMUDTiUe/JBby7vtmyMvOdEscE8GMAmiOzoPmAE0Uf+yw5A==} engines: {node: '>= 14.15.0'} + dependencies: + jsonschema: 1.4.1 + semver: 7.6.3 dev: false bundledDependencies: - jsonschema @@ -2769,7 +2772,11 @@ packages: '@aws-cdk/cloud-assembly-schema': 1.204.0 '@aws-cdk/cx-api': 1.203.0 '@aws-cdk/region-info': 1.204.0 + '@balena/dockerignore': 1.0.2 constructs: 3.4.344 + fs-extra: 9.1.0 + ignore: 5.3.1 + minimatch: 3.1.2 dev: false bundledDependencies: - fs-extra @@ -2812,6 +2819,7 @@ packages: engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 1.203.0 + semver: 7.6.3 dev: false bundledDependencies: - semver @@ -2826,6 +2834,7 @@ packages: For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html dependencies: '@aws-cdk/cloud-assembly-schema': 1.204.0 + semver: 7.6.3 dev: false bundledDependencies: - semver @@ -2835,6 +2844,7 @@ packages: engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 2.39.1 + semver: 7.6.3 dev: false bundledDependencies: - semver @@ -3291,6 +3301,10 @@ packages: '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 + /@balena/dockerignore/1.0.2: + resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} + dev: false + /@cdktf/cli-core/0.19.2_react@17.0.2: resolution: {integrity: sha512-kjgEUhrHx3kUPfL7KsTo6GrurVUPT77FmOUf7wWXt7ajNE5zCPvx/HKGmQruzt0n6eLZp1aKT+r/D6YRfXcIGA==} dependencies: @@ -5493,7 +5507,10 @@ packages: peerDependencies: constructs: ^10.0.25 dependencies: + archiver: 5.3.2 constructs: 10.3.0 + json-stable-stringify: 1.1.1 + semver: 7.6.3 bundledDependencies: - archiver - json-stable-stringify @@ -6385,7 +6402,7 @@ packages: dependencies: semver: 7.6.3 shelljs: 0.8.5 - typescript: 5.6.0-dev.20240805 + typescript: 5.6.0-dev.20240819 /duration/0.2.2: resolution: {integrity: sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==} @@ -8558,6 +8575,15 @@ packages: /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + /json-stable-stringify/1.1.1: + resolution: {integrity: sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + isarray: 2.0.5 + jsonify: 0.0.1 + object-keys: 1.1.1 + /json-stringify-safe/5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true @@ -8586,6 +8612,13 @@ packages: optionalDependencies: graceful-fs: 4.2.11 + /jsonify/0.0.1: + resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} + + /jsonschema/1.4.1: + resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} + dev: false + /jsonwebtoken/8.5.1: resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} engines: {node: '>=4', npm: '>=1.4.28'} @@ -11519,8 +11552,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript/5.6.0-dev.20240805: - resolution: {integrity: sha512-M+pWeLKA2huCTB2GLE0/0U/ezJh51Wdmm6J3BS1UxieKcnx1Kz2/NivXOnmCZY40gY6ItpMlLjnJIMXprNG9UQ==} + /typescript/5.6.0-dev.20240819: + resolution: {integrity: sha512-uNOMaNm8jBELjhuXZG5tSS6Pa6O/Wf89hawKkWaZcZvbkgkY2ykvNTNrkCP7QCQTSS3jwEVvd+pRhxJPxUeG4g==} engines: {node: '>=14.17'} hasBin: true diff --git a/packages/framework-core/src/sensor/health/booster-health-service.ts b/packages/framework-core/src/sensor/health/booster-health-service.ts index ad2e383a6..5bd68ac63 100644 --- a/packages/framework-core/src/sensor/health/booster-health-service.ts +++ b/packages/framework-core/src/sensor/health/booster-health-service.ts @@ -7,7 +7,7 @@ import { HealthIndicatorsResult, UserEnvelope, } from '@boostercloud/framework-types' -import { childrenHealthProviders, isEnabled, metadataFromId, rootHealthProviders } from './health-utils' +import { childHealthProviders, isEnabled, metadataFromId, rootHealthProviders } from './health-utils' import { createInstance } from '@boostercloud/framework-common-helpers' import { defaultBoosterHealthIndicators } from './health-indicators' import { BoosterTokenVerifier } from '../../booster-token-verifier' @@ -51,14 +51,14 @@ export class BoosterHealthService { if (!indicatorResult) { continue } - const childrens = childrenHealthProviders(current, healthProviders) + const children = childHealthProviders(current, healthProviders) const newResult: HealthIndicatorsResult = { ...indicatorResult, name: current.healthIndicatorConfiguration.name, id: current.healthIndicatorConfiguration.id, } - if (childrens && childrens?.length > 0) { - newResult.components = await this.boosterHealthProviderResolver(childrens, healthProviders) + if (children && children?.length > 0) { + newResult.components = await this.boosterHealthProviderResolver(children, healthProviders) } result.push(newResult) } diff --git a/packages/framework-core/src/sensor/health/health-indicators/default-booster-health-indicators.ts b/packages/framework-core/src/sensor/health/health-indicators/default-booster-health-indicators.ts index 05eca5611..3e2787cdd 100644 --- a/packages/framework-core/src/sensor/health/health-indicators/default-booster-health-indicators.ts +++ b/packages/framework-core/src/sensor/health/health-indicators/default-booster-health-indicators.ts @@ -10,6 +10,7 @@ import { BoosterDatabaseHealthIndicator } from './booster-database-health-indica import { BoosterDatabaseEventsHealthIndicator } from './booster-database-events-health-indicator' import { BoosterFunctionHealthIndicator } from './booster-function-health-indicator' import { BoosterDatabaseReadModelsHealthIndicator } from './booster-database-read-models-health-indicator' +import { RocketsHealthIndicator } from './rockets-health-indicator' function buildMetadata( config: BoosterConfig, @@ -59,11 +60,18 @@ export function defaultBoosterHealthIndicators(config: BoosterConfig): Record { + const results = await config.provider.sensor.areRocketFunctionsUp(config) + if (Object.keys(results).length === 0) { + return { + name: 'Rockets', + id: BOOSTER_HEALTH_INDICATORS_IDS.ROCKETS, + status: HealthStatus.UNKNOWN, + details: { + reason: 'No Rockets found', + }, + } + } + return { + name: 'Rockets', + id: BOOSTER_HEALTH_INDICATORS_IDS.ROCKETS, + status: this.getOverAllHealthStatus(results), + components: Object.entries(results).map(([rocketFunctionApp, status]) => { + return { + name: rocketFunctionApp, + id: rocketFunctionApp, // @TODO: put the rocket's id instead of its name + status: status ? HealthStatus.UP : HealthStatus.DOWN, + } + }), + } + } + + private getOverAllHealthStatus(results: { [key: string]: boolean }): HealthStatus { + const statusValues = Object.values(results) + + if (statusValues.every((status) => status)) { + return HealthStatus.UP + } + + if (statusValues.every((status) => !status)) { + return HealthStatus.DOWN + } + + return HealthStatus.PARTIALLY_UP + } +} diff --git a/packages/framework-core/src/sensor/health/health-utils.ts b/packages/framework-core/src/sensor/health/health-utils.ts index 40d74542e..a5373b566 100644 --- a/packages/framework-core/src/sensor/health/health-utils.ts +++ b/packages/framework-core/src/sensor/health/health-utils.ts @@ -27,7 +27,7 @@ export function rootHealthProviders( ) } -export function childrenHealthProviders( +export function childHealthProviders( healthIndicatorMetadata: HealthIndicatorMetadata, healthProviders: Record ): Array { diff --git a/packages/framework-core/test/sensor/health/booster-health-service.test.ts b/packages/framework-core/test/sensor/health/booster-health-service.test.ts index 2183b8eff..fcdc107d6 100644 --- a/packages/framework-core/test/sensor/health/booster-health-service.test.ts +++ b/packages/framework-core/test/sensor/health/booster-health-service.test.ts @@ -223,6 +223,7 @@ function defaultSensor(token?: string, url?: string) { rawRequestToHealthEnvelope: fake(() => { return { token: token, componentPath: url } }), + areRocketFunctionsUp: fake(() => ''), } } @@ -289,24 +290,12 @@ function expectDatabaseEventsWithDetails(databaseEvents: any, status: string, de } function expectDatabaseReadModels(databaseReadModels: any, status: string): void { - expectDefaultResult( - databaseReadModels, - status, - 'booster/database/readmodels', - 'Booster Database ReadModels', - 0 - ) + expectDefaultResult(databaseReadModels, status, 'booster/database/readmodels', 'Booster Database ReadModels', 0) expect(databaseReadModels.details).to.be.undefined } function expectDatabaseReadModelsWithDetails(databaseReadModels: any, status: string, details: any): void { - expectDefaultResult( - databaseReadModels, - status, - 'booster/database/readmodels', - 'Booster Database ReadModels', - 0 - ) + expectDefaultResult(databaseReadModels, status, 'booster/database/readmodels', 'Booster Database ReadModels', 0) expect(databaseReadModels.details).to.be.deep.eq(details) } diff --git a/packages/framework-core/test/sensor/health/health-utils.test.ts b/packages/framework-core/test/sensor/health/health-utils.test.ts index ec5bec1ab..360537f0f 100644 --- a/packages/framework-core/test/sensor/health/health-utils.test.ts +++ b/packages/framework-core/test/sensor/health/health-utils.test.ts @@ -1,7 +1,7 @@ import { HealthIndicatorMetadata } from '@boostercloud/framework-types' import 'mocha' import { - childrenHealthProviders, + childHealthProviders, isEnabled, metadataFromId, parentId, @@ -165,13 +165,13 @@ describe('Health utils', () => { }) it('childrenHealthProviders', () => { - expect(childrenHealthProviders(root, healthProviders)).to.be.deep.equal([rootChildren1, rootChildren2]) - expect(childrenHealthProviders(rootChildren1, healthProviders)).to.be.deep.equal([ + expect(childHealthProviders(root, healthProviders)).to.be.deep.equal([rootChildren1, rootChildren2]) + expect(childHealthProviders(rootChildren1, healthProviders)).to.be.deep.equal([ rootChildren1Children1, rootChildren1Children2, ]) - expect(childrenHealthProviders(rootChildren1Children1, healthProviders)).to.be.deep.equal([]) - expect(childrenHealthProviders(rootChildren1Children2, healthProviders)).to.be.deep.equal([]) - expect(childrenHealthProviders(rootChildren2, healthProviders)).to.be.deep.equal([]) + expect(childHealthProviders(rootChildren1Children1, healthProviders)).to.be.deep.equal([]) + expect(childHealthProviders(rootChildren1Children2, healthProviders)).to.be.deep.equal([]) + expect(childHealthProviders(rootChildren2, healthProviders)).to.be.deep.equal([]) }) }) diff --git a/packages/framework-provider-aws/src/setup.ts b/packages/framework-provider-aws/src/setup.ts index bd6cf1d18..2b30e45e7 100644 --- a/packages/framework-provider-aws/src/setup.ts +++ b/packages/framework-provider-aws/src/setup.ts @@ -124,6 +124,8 @@ export const Provider = (rockets?: RocketDescriptor[]): ProviderLibrary => { rawRequestToHealthEnvelope: (rawRequest: unknown): HealthEnvelope => { throw new Error('Not implemented') }, + areRocketFunctionsUp: async (config: BoosterConfig): Promise<{ [key: string]: boolean }> => + notImplementedResult(), }, // ProviderInfrastructureGetter infrastructure: () => { diff --git a/packages/framework-provider-azure-infrastructure/src/infrastructure/application-builder.ts b/packages/framework-provider-azure-infrastructure/src/infrastructure/application-builder.ts index 472ad84d5..2d08080b4 100644 --- a/packages/framework-provider-azure-infrastructure/src/infrastructure/application-builder.ts +++ b/packages/framework-provider-azure-infrastructure/src/infrastructure/application-builder.ts @@ -30,6 +30,8 @@ export class ApplicationBuilder { const azureStack = await this.synthApplication(app, webPubSubBaseFile) const rocketBuilder = new RocketBuilder(this.config, azureStack.applicationStack, this.rockets) await rocketBuilder.synthRocket() + // add rocket-related env vars to main function app settings + azureStack.addAppSettingsToFunctionApp(this.rockets) app.synth() azureStack.applicationStack.functionDefinitions = FunctionZip.buildAzureFunctions(this.config) diff --git a/packages/framework-provider-azure-infrastructure/src/infrastructure/azure-stack.ts b/packages/framework-provider-azure-infrastructure/src/infrastructure/azure-stack.ts index b3982b7b8..1fcfb9607 100644 --- a/packages/framework-provider-azure-infrastructure/src/infrastructure/azure-stack.ts +++ b/packages/framework-provider-azure-infrastructure/src/infrastructure/azure-stack.ts @@ -1,15 +1,42 @@ import { Construct } from 'constructs' -import { TerraformStack } from 'cdktf' +import { Fn, TerraformStack } from 'cdktf' import { ApplicationSynth } from './synth/application-synth' import { ApplicationSynthStack } from './types/application-synth-stack' +import { InfrastructureRocket } from './rockets/infrastructure-rocket' +import { environmentVarNames } from '@boostercloud/framework-provider-azure' export class AzureStack extends TerraformStack { readonly applicationStack: ApplicationSynthStack + readonly defaultApplicationSettings: { [key: string]: string } constructor(scope: Construct, name: string, zipFile?: string) { super(scope, name) const applicationSynth = new ApplicationSynth(this) this.applicationStack = applicationSynth.synth(zipFile) + this.defaultApplicationSettings = applicationSynth.buildDefaultAppSettings( + this.applicationStack, + this.applicationStack.storageAccount!, + 'func' + ) + } + + public addAppSettingsToFunctionApp(rockets?: InfrastructureRocket[]): void { + if (!this.applicationStack.functionApp) { + throw new Error('Function app not defined') + } + + const functionAppNames = rockets + ? rockets + .map((rocket: InfrastructureRocket) => + rocket.getFunctionAppName ? rocket.getFunctionAppName(this.applicationStack) : '' + ) + .join(',') + : '' + + this.applicationStack.functionApp.appSettings = Fn.merge([ + this.defaultApplicationSettings, + { [environmentVarNames.rocketFunctionAppNames]: functionAppNames }, + ]) } } diff --git a/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/application-synth.ts b/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/application-synth.ts index ab5cf63bd..0adec05c0 100644 --- a/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/application-synth.ts +++ b/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/application-synth.ts @@ -25,7 +25,7 @@ import { TerraformWebPubsubHub } from './terraform-web-pubsub-hub' import { TerraformWebPubSubExtensionKey } from './terraform-web-pub-sub-extension-key' import { TerraformEventHubNamespace } from './terraform-event-hub-namespace' import { TerraformEventHub } from './terraform-event-hub' -import { windowsFunctionApp } from '@cdktf/provider-azurerm' +import { storageAccount, windowsFunctionApp } from '@cdktf/provider-azurerm' import { TerraformNetworkSecurityGroup } from './gateway/terraform-network-security-group' import { TerraformVirtualNetwork } from './gateway/terraform-virtual-network' import { TerraformPublicIp } from './gateway/terraform-public-ip' @@ -33,6 +33,7 @@ import { TerraformPublicIpData } from './gateway/terraform-public-ip-data' import { TerraformSubnet } from './gateway/terraform-subnet' import { TerraformSubnetSecurity } from './gateway/terraform-subnet-security' import { BASIC_SERVICE_PLAN } from '../constants' +import { TerraformFunctionAppSettings } from './terraform-function-app-settings' export class ApplicationSynth { readonly config: BoosterConfig @@ -121,7 +122,6 @@ export class ApplicationSynth { ): windowsFunctionApp.WindowsFunctionApp { return TerraformFunctionApp.build( stack, - this.config, stack.applicationServicePlan!, stack.storageAccount!, 'func', @@ -139,11 +139,12 @@ export class ApplicationSynth { stack.eventConsumerStorageAccount = TerraformStorageAccount.build(stack, 'sc') stack.eventConsumerFunctionApp = TerraformFunctionApp.build( stack, - this.config, stack.eventConsumerServicePlan, stack.eventConsumerStorageAccount, 'fhub', - stack.streamFunctionAppName + stack.streamFunctionAppName, + undefined, + this.buildDefaultAppSettings(stack, stack.eventConsumerStorageAccount, 'fhub') ) if (!stack.containers) { stack.containers = [] @@ -164,4 +165,12 @@ export class ApplicationSynth { stack.webPubSubHub = TerraformWebPubsubHub.build(stack) } } + + public buildDefaultAppSettings( + stack: ApplicationSynthStack, + storageAccount: storageAccount.StorageAccount, + suffixName: string + ) { + return TerraformFunctionAppSettings.build(stack, this.config, storageAccount!, suffixName) + } } diff --git a/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/terraform-function-app-settings.ts b/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/terraform-function-app-settings.ts new file mode 100644 index 000000000..54907f464 --- /dev/null +++ b/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/terraform-function-app-settings.ts @@ -0,0 +1,40 @@ +import { environmentVarNames } from '@boostercloud/framework-provider-azure' +import { ApplicationSynthStack } from '../types/application-synth-stack' +import { toTerraformName } from '../helper/utils' +import { BoosterConfig } from '@boostercloud/framework-types' +import { storageAccount } from '@cdktf/provider-azurerm' + +export class TerraformFunctionAppSettings { + static build( + { appPrefix, cosmosdbDatabase, domainNameLabel, eventHubNamespace, eventHub, webPubSub }: ApplicationSynthStack, + config: BoosterConfig, + storageAccount: storageAccount.StorageAccount, + suffixName: string + ): { [key: string]: string } { + if (!cosmosdbDatabase) { + throw new Error('Undefined cosmosdbDatabase resource') + } + const id = toTerraformName(appPrefix, suffixName) + const eventHubConnectionString = + eventHubNamespace?.defaultPrimaryConnectionString && eventHub?.name + ? `${eventHubNamespace.defaultPrimaryConnectionString};EntityPath=${eventHub.name}` + : '' + const region = (process.env['REGION'] ?? '').toLowerCase().replace(/ /g, '') + return { + WEBSITE_RUN_FROM_PACKAGE: '1', + WEBSITE_CONTENTSHARE: id, + ...config.env, + WebPubSubConnectionString: webPubSub?.primaryConnectionString || '', + BOOSTER_ENV: config.environmentName, + [environmentVarNames.restAPIURL]: `http://${domainNameLabel}.${region}.cloudapp.azure.com/${config.environmentName}`, + [environmentVarNames.eventHubConnectionString]: eventHubConnectionString, + [environmentVarNames.eventHubName]: config.resourceNames.streamTopic, + [environmentVarNames.eventHubMaxRetries]: + config.eventStreamConfiguration.parameters?.maxRetries?.toString() || '5', + [environmentVarNames.eventHubMode]: config.eventStreamConfiguration.parameters?.mode || 'exponential', + COSMOSDB_CONNECTION_STRING: `AccountEndpoint=https://${cosmosdbDatabase.name}.documents.azure.com:443/;AccountKey=${cosmosdbDatabase.primaryKey};`, + WEBSITE_CONTENTAZUREFILECONNECTIONSTRING: storageAccount.primaryConnectionString, // Terraform bug: https://github.com/hashicorp/terraform-provider-azurerm/issues/16650 + BOOSTER_APP_NAME: process.env['BOOSTER_APP_NAME'] ?? '', + } + } +} diff --git a/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/terraform-function-app.ts b/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/terraform-function-app.ts index 8e0628f99..13bc112a7 100644 --- a/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/terraform-function-app.ts +++ b/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/terraform-function-app.ts @@ -1,8 +1,6 @@ import { servicePlan, storageAccount, windowsFunctionApp } from '@cdktf/provider-azurerm' import { toTerraformName } from '../helper/utils' -import { BoosterConfig } from '@boostercloud/framework-types' import { ApplicationSynthStack } from '../types/application-synth-stack' -import { environmentVarNames } from '@boostercloud/framework-provider-azure' import { WindowsFunctionAppConfig } from '@cdktf/provider-azurerm/lib/windows-function-app' export class TerraformFunctionApp { @@ -14,17 +12,13 @@ export class TerraformFunctionApp { resourceGroup, resourceGroupName, cosmosdbDatabase, - domainNameLabel, - eventHubNamespace, - eventHub, - webPubSub, }: ApplicationSynthStack, - config: BoosterConfig, applicationServicePlan: servicePlan.ServicePlan, storageAccount: storageAccount.StorageAccount, suffixName: string, functionAppName: string, - zipFile?: string + zipFile?: string, + appSettings?: { [key: string]: string } ): windowsFunctionApp.WindowsFunctionApp { if (!cosmosdbDatabase) { throw new Error('Undefined cosmosdbDatabase resource') @@ -33,32 +27,12 @@ export class TerraformFunctionApp { throw new Error('Undefined applicationServicePlan resource') } const id = toTerraformName(appPrefix, suffixName) - const eventHubConnectionString = - eventHubNamespace?.defaultPrimaryConnectionString && eventHub?.name - ? `${eventHubNamespace.defaultPrimaryConnectionString};EntityPath=${eventHub.name}` - : '' - const region = (process.env['REGION'] ?? '').toLowerCase().replace(/ /g, '') const functionConfig: Exclude = { name: functionAppName, location: resourceGroup.location, resourceGroupName: resourceGroupName, servicePlanId: applicationServicePlan.id, - appSettings: { - WEBSITE_RUN_FROM_PACKAGE: '1', - WEBSITE_CONTENTSHARE: id, - ...config.env, - WebPubSubConnectionString: webPubSub?.primaryConnectionString || '', - BOOSTER_ENV: config.environmentName, - [environmentVarNames.restAPIURL]: `http://${domainNameLabel}.${region}.cloudapp.azure.com/${config.environmentName}`, - [environmentVarNames.eventHubConnectionString]: eventHubConnectionString, - [environmentVarNames.eventHubName]: config.resourceNames.streamTopic, - [environmentVarNames.eventHubMaxRetries]: - config.eventStreamConfiguration.parameters?.maxRetries?.toString() || '5', - [environmentVarNames.eventHubMode]: config.eventStreamConfiguration.parameters?.mode || 'exponential', - COSMOSDB_CONNECTION_STRING: `AccountEndpoint=https://${cosmosdbDatabase.name}.documents.azure.com:443/;AccountKey=${cosmosdbDatabase.primaryKey};`, - WEBSITE_CONTENTAZUREFILECONNECTIONSTRING: storageAccount.primaryConnectionString, // Terraform bug: https://github.com/hashicorp/terraform-provider-azurerm/issues/16650 - BOOSTER_APP_NAME: process.env['BOOSTER_APP_NAME'] ?? '', - }, + appSettings: appSettings ?? {}, storageAccountName: storageAccount.name, storageAccountAccessKey: storageAccount.primaryAccessKey, dependsOn: [resourceGroup], diff --git a/packages/framework-provider-azure/src/constants.ts b/packages/framework-provider-azure/src/constants.ts index 8ef6c28ca..f3e6f5d0e 100644 --- a/packages/framework-provider-azure/src/constants.ts +++ b/packages/framework-provider-azure/src/constants.ts @@ -32,6 +32,7 @@ export const environmentVarNames = { eventHubName: 'EVENTHUB_NAME', eventHubMaxRetries: 'EVENTHUB_MAX_RETRIES', eventHubMode: 'EVENTHUB_MODE', + rocketFunctionAppNames: 'ROCKET_FUNCTION_APP_NAMES', } as const // Azure special error codes diff --git a/packages/framework-provider-azure/src/index.ts b/packages/framework-provider-azure/src/index.ts index b40afbe10..0e402c6d6 100644 --- a/packages/framework-provider-azure/src/index.ts +++ b/packages/framework-provider-azure/src/index.ts @@ -38,6 +38,7 @@ import { EventHubProducerClient, RetryMode } from '@azure/event-hubs' import { dedupEventStream, rawEventsStreamToEnvelopes } from './library/events-stream-consumer-adapter' import { areDatabaseReadModelsUp, + areRocketFunctionsUp, databaseEventsHealthDetails, databaseReadModelsHealthDetails, databaseUrl, @@ -151,6 +152,7 @@ export const Provider = (rockets?: RocketDescriptor[]): ProviderLibrary => ({ graphQLFunctionUrl: graphqlFunctionUrl, isGraphQLFunctionUp: isGraphQLFunctionUp, rawRequestToHealthEnvelope: rawRequestToSensorHealth, + areRocketFunctionsUp: areRocketFunctionsUp, }, // ProviderInfrastructureGetter infrastructure: () => { diff --git a/packages/framework-provider-azure/src/library/health-adapter.ts b/packages/framework-provider-azure/src/library/health-adapter.ts index 1b87c3ebe..c983d9738 100644 --- a/packages/framework-provider-azure/src/library/health-adapter.ts +++ b/packages/framework-provider-azure/src/library/health-adapter.ts @@ -47,6 +47,10 @@ export async function graphqlFunctionUrl(): Promise { } } +export async function rocketFunctionAppUrl(functionAppName: string): Promise { + return `https://${functionAppName}.azurewebsites.net` +} + export async function isDatabaseEventUp(cosmosDb: CosmosClient, config: BoosterConfig): Promise { return await isContainerUp(cosmosDb, config, config.resourceNames.eventsStore) } @@ -71,6 +75,29 @@ export async function isGraphQLFunctionUp(): Promise { } } +export async function isRocketFunctionUp(rocketFunctionAppName: string): Promise { + try { + const functionAppUrl = await rocketFunctionAppUrl(rocketFunctionAppName) + const response = await request(functionAppUrl, 'GET') + return response.status === 200 + } catch (e) { + return false + } +} + +export async function areRocketFunctionsUp(): Promise<{ [key: string]: boolean }> { + const functionAppNames = + process.env[environmentVarNames.rocketFunctionAppNames]?.split(',').filter((str) => str.trim() !== '') || [] + const results = await Promise.all( + functionAppNames.map(async (functionAppName: string) => { + const isUp = await isRocketFunctionUp(functionAppName) + return { [functionAppName]: isUp } + }) + ) + + return results.reduce((acc, result) => ({ ...acc, ...result }), {}) +} + export function rawRequestToSensorHealthComponentPath(rawRequest: Context): string { const parameters = rawRequest.req?.url.replace(/^.*sensor\/health\/?/, '') return parameters ?? '' diff --git a/packages/framework-provider-local/src/index.ts b/packages/framework-provider-local/src/index.ts index eb1aec9a3..3676d89d3 100644 --- a/packages/framework-provider-local/src/index.ts +++ b/packages/framework-provider-local/src/index.ts @@ -127,6 +127,7 @@ export const Provider = (rocketDescriptors?: RocketDescriptor[]): ProviderLibrar isGraphQLFunctionUp: isGraphQLFunctionUp, graphQLFunctionUrl: graphqlFunctionUrl, rawRequestToHealthEnvelope: rawRequestToSensorHealth, + areRocketFunctionsUp: notImplemented as any, }, // ProviderInfrastructureGetter infrastructure: () => { diff --git a/packages/framework-types/src/provider.ts b/packages/framework-types/src/provider.ts index 24dd61816..efb2efae0 100644 --- a/packages/framework-types/src/provider.ts +++ b/packages/framework-types/src/provider.ts @@ -47,6 +47,7 @@ export interface ProviderSensorLibrary { isGraphQLFunctionUp(config: BoosterConfig): Promise graphQLFunctionUrl(config: BoosterConfig): Promise rawRequestToHealthEnvelope(rawRequest: unknown): HealthEnvelope + areRocketFunctionsUp(config: BoosterConfig): Promise<{ [key: string]: boolean }> } export interface ProviderEventsLibrary { diff --git a/packages/framework-types/src/sensor/health-indicator-configuration.ts b/packages/framework-types/src/sensor/health-indicator-configuration.ts index 3556a8aa0..351753cb7 100644 --- a/packages/framework-types/src/sensor/health-indicator-configuration.ts +++ b/packages/framework-types/src/sensor/health-indicator-configuration.ts @@ -4,6 +4,7 @@ import { Class } from '../typelevel' export enum HealthStatus { UP = 'UP', // The component or subsystem is working as expected + PARTIALLY_UP = 'PARTIALLY_UP', // The component is partially working or has reduced functionality DOWN = 'DOWN', // The component is not working OUT_OF_SERVICE = 'OUT_OF_SERVICE', // The component is out of service temporarily UNKNOWN = 'UNKNOWN', // The component state is unknown @@ -28,6 +29,7 @@ export enum BOOSTER_HEALTH_INDICATORS_IDS { DATABASE = 'booster/database', DATABASE_EVENTS = 'booster/database/events', DATABASE_READ_MODELS = 'booster/database/readmodels', + ROCKETS = 'rockets', } export const DEFAULT_HEALTH_CONFIGURATION_BOOSTER: SensorBoosterHealthConfigurationDetails = { @@ -45,6 +47,7 @@ export const DEFAULT_SENSOR_HEALTH_BOOSTER_CONFIGURATIONS: Record< [BOOSTER_HEALTH_INDICATORS_IDS.DATABASE]: { ...DEFAULT_HEALTH_CONFIGURATION_BOOSTER }, [BOOSTER_HEALTH_INDICATORS_IDS.DATABASE_EVENTS]: { ...DEFAULT_HEALTH_CONFIGURATION_BOOSTER }, [BOOSTER_HEALTH_INDICATORS_IDS.DATABASE_READ_MODELS]: { ...DEFAULT_HEALTH_CONFIGURATION_BOOSTER }, + [BOOSTER_HEALTH_INDICATORS_IDS.ROCKETS]: { ...DEFAULT_HEALTH_CONFIGURATION_BOOSTER }, } export type SensorBoosterHealthConfigurationDetails = HealthIndicatorConfigurationBase @@ -57,6 +60,7 @@ export interface SensorBoosterHealthConfiguration { [BOOSTER_HEALTH_INDICATORS_IDS.DATABASE]: SensorBoosterHealthConfigurationDetails [BOOSTER_HEALTH_INDICATORS_IDS.DATABASE_EVENTS]: SensorBoosterHealthConfigurationDetails [BOOSTER_HEALTH_INDICATORS_IDS.DATABASE_READ_MODELS]: SensorBoosterHealthConfigurationDetails + [BOOSTER_HEALTH_INDICATORS_IDS.ROCKETS]: SensorBoosterHealthConfigurationDetails } } diff --git a/website/docs/10_going-deeper/health/sensor-health.md b/website/docs/10_going-deeper/health/sensor-health.md index bdf4eb8af..3a769a538 100644 --- a/website/docs/10_going-deeper/health/sensor-health.md +++ b/website/docs/10_going-deeper/health/sensor-health.md @@ -87,10 +87,11 @@ Booster provides the following endpoints to retrieve the enabled components: * https://your-application-url/sensor/health/booster/database/events: Events status * https://your-application-url/sensor/health/booster/database/readmodels: ReadModels status * https://your-application-url/sensor/health/booster/function: Functions status +* https://your-application-url/sensor/health/rockets: Rockets status * https://your-application-url/sensor/health/your-component-id: User defined status * https://your-application-url/sensor/health/your-component-id/your-component-child-id: User child component status -Depending on the `showChildren` configuration, children components will be included or not. +Depending on the `showChildren` configuration, child components will be included or not. ### Health Status Response @@ -100,7 +101,7 @@ Each component response will contain the following information: * name: component description * id: string. unique component identifier. You can request a component status using the id in the url * details: optional object. If `details` is true, specific details about this component. -* components: optional object. If `showChildren` is true, children components health status. +* components: optional object. If `showChildren` is true, child components health status. Example: @@ -150,6 +151,7 @@ Use the `id` field to get specific component health information. Booster provide * booster/database * booster/database/events * booster/database/readmodels +* rockets You can provide new components: ```typescript @@ -189,8 +191,8 @@ Health components are fully configurable, allowing you to display the informatio Configuration options: * enabled: If false, this indicator and the components of this indicator will be skipped * details: If false, the indicator will not include the details -* showChildren: If false, this indicator will not include children components in the tree. - * Children components will be shown through children urls +* showChildren: If false, this indicator will not include child components in the tree. + * Child components will be shown through child urls * authorize: Authorize configuration. [See security documentation](https://docs.boosterframework.com/security/security) #### Booster components default configuration @@ -316,12 +318,18 @@ export class ApplicationHealthIndicator { > **Note**: details will be included only if `details` is enabled +#### rockets + +* status: UP if and only if all rockets are UP, PARTIALLY_UP if not all rockets are UP + +> **Note**: sensors for rockets is only available for the Azure provider ### Health status Available status are * UP: The component or subsystem is working as expected +* PARTIALLY_UP: The component is partially working or has reduced functionality * DOWN: The component is not working * OUT_OF_SERVICE: The component is out of service temporarily * UNKNOWN: The component state is unknown @@ -370,7 +378,7 @@ If the request url is https://your-application-url/sensor/health/database, the c [Empty] ``` -And the children components will be disabled too using direct url https://your-application-url/sensor/health/database/events +And the child components will be disabled too using direct url https://your-application-url/sensor/health/database/events ```text [Empty] From 459325b4b1d5386b11a1c130731040497822fa0f Mon Sep 17 00:00:00 2001 From: GITHUBACTION Date: Wed, 21 Aug 2024 00:15:44 +0000 Subject: [PATCH 14/47] Bump versions [skip ci] --- ...ocket_health_sensors_2024-08-19-17-06.json | 10 ------- common/config/rush/version-policies.json | 2 +- packages/application-tester/package.json | 6 ++-- packages/cli/package.json | 10 +++---- .../framework-common-helpers/package.json | 6 ++-- packages/framework-core/CHANGELOG.json | 28 +++++++++++++++++++ packages/framework-core/CHANGELOG.md | 9 +++++- packages/framework-core/package.json | 10 +++---- .../framework-integration-tests/package.json | 28 +++++++++---------- .../package.json | 10 +++---- packages/framework-provider-aws/package.json | 8 +++--- .../package.json | 12 ++++---- .../framework-provider-azure/package.json | 8 +++--- .../package.json | 10 +++---- .../framework-provider-local/package.json | 8 +++--- packages/framework-types/package.json | 6 ++-- packages/metadata-booster/package.json | 4 +-- tools/eslint-config/package.json | 2 +- 18 files changed, 101 insertions(+), 76 deletions(-) delete mode 100644 common/changes/@boostercloud/framework-core/rocket_health_sensors_2024-08-19-17-06.json diff --git a/common/changes/@boostercloud/framework-core/rocket_health_sensors_2024-08-19-17-06.json b/common/changes/@boostercloud/framework-core/rocket_health_sensors_2024-08-19-17-06.json deleted file mode 100644 index 57c71392f..000000000 --- a/common/changes/@boostercloud/framework-core/rocket_health_sensors_2024-08-19-17-06.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@boostercloud/framework-core", - "comment": "Health sensors for Rockets", - "type": "minor" - } - ], - "packageName": "@boostercloud/framework-core" -} \ No newline at end of file diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 984c6d9b3..9db6c6cfc 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -103,6 +103,6 @@ "definitionName": "lockStepVersion", "policyName": "booster", "mainProject": "@boostercloud/framework-core", - "version": "2.16.0" + "version": "2.17.0" } ] diff --git a/packages/application-tester/package.json b/packages/application-tester/package.json index e408c36c7..f1deab3ae 100644 --- a/packages/application-tester/package.json +++ b/packages/application-tester/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/application-tester", - "version": "2.16.0", + "version": "2.17.0", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "application-tester" @@ -36,7 +36,7 @@ }, "dependencies": { "@apollo/client": "3.7.13", - "@boostercloud/framework-types": "workspace:^2.16.0", + "@boostercloud/framework-types": "workspace:^2.17.0", "cross-fetch": "3.1.5", "graphql": "^16.6.0", "jsonwebtoken": "9.0.1", @@ -48,7 +48,7 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.16.0", + "@boostercloud/eslint-config": "workspace:^2.17.0", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", "eslint": "^8.23.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index e0e9a75bd..713b5eefb 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/cli", "description": "CLI of the Booster Framework, the next level of abstraction for cloud-native applications", - "version": "2.16.0", + "version": "2.17.0", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -12,8 +12,8 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-core": "workspace:^2.16.0", - "@boostercloud/framework-types": "workspace:^2.16.0", + "@boostercloud/framework-core": "workspace:^2.17.0", + "@boostercloud/framework-types": "workspace:^2.17.0", "@oclif/core": "3.15.0", "@oclif/plugin-help": "^5", "chalk": "^2.4.2", @@ -30,8 +30,8 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.16.0", - "@boostercloud/application-tester": "workspace:^2.16.0", + "@boostercloud/eslint-config": "workspace:^2.17.0", + "@boostercloud/application-tester": "workspace:^2.17.0", "@oclif/test": "^3.0.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", diff --git a/packages/framework-common-helpers/package.json b/packages/framework-common-helpers/package.json index 91a49f9c9..9ac4f2e4a 100644 --- a/packages/framework-common-helpers/package.json +++ b/packages/framework-common-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-common-helpers", - "version": "2.16.0", + "version": "2.17.0", "description": "Contains Booster common helpers used by the core and provider packages", "keywords": [ "framework-common-helpers" @@ -36,14 +36,14 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-types": "workspace:^2.16.0", + "@boostercloud/framework-types": "workspace:^2.17.0", "child-process-promise": "^2.2.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "class-transformer": "~0.5.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.16.0", + "@boostercloud/eslint-config": "workspace:^2.17.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/child-process-promise": "^2.2.1", diff --git a/packages/framework-core/CHANGELOG.json b/packages/framework-core/CHANGELOG.json index e7299d4ef..558171ed5 100644 --- a/packages/framework-core/CHANGELOG.json +++ b/packages/framework-core/CHANGELOG.json @@ -1,6 +1,34 @@ { "name": "@boostercloud/framework-core", "entries": [ + { + "version": "2.17.0", + "tag": "@boostercloud/framework-core_v2.17.0", + "date": "Wed, 21 Aug 2024 00:15:44 GMT", + "comments": { + "minor": [ + { + "comment": "Health sensors for Rockets", + "author": "Mario Castro Squella ", + "commit": "cb500c908e459897f7ab5f5d8acc46a71b310be6" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@boostercloud/framework-common-helpers\" from `^2.16.0` to `^2.17.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/framework-types\" from `^2.16.0` to `^2.17.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/metadata-booster\" from `^2.16.0` to `^2.17.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/eslint-config\" from `^2.16.0` to `^2.17.0`" + } + ] + } + }, { "version": "2.16.0", "tag": "@boostercloud/framework-core_v2.16.0", diff --git a/packages/framework-core/CHANGELOG.md b/packages/framework-core/CHANGELOG.md index ad656aa1e..3c558a130 100644 --- a/packages/framework-core/CHANGELOG.md +++ b/packages/framework-core/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @boostercloud/framework-core -This log was last generated on Tue, 06 Aug 2024 20:59:53 GMT and should not be manually modified. +This log was last generated on Wed, 21 Aug 2024 00:15:44 GMT and should not be manually modified. + +## 2.17.0 +Wed, 21 Aug 2024 00:15:44 GMT + +### Minor changes + +- Health sensors for Rockets ## 2.16.0 Tue, 06 Aug 2024 20:59:53 GMT diff --git a/packages/framework-core/package.json b/packages/framework-core/package.json index 5dee161bc..e71f22d77 100644 --- a/packages/framework-core/package.json +++ b/packages/framework-core/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-core", - "version": "2.16.0", + "version": "2.17.0", "description": "Library for your Booster apps", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", @@ -37,8 +37,8 @@ "graphql": "^16.6.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.16.0", - "@boostercloud/framework-types": "workspace:^2.16.0", + "@boostercloud/framework-common-helpers": "workspace:^2.17.0", + "@boostercloud/framework-types": "workspace:^2.17.0", "fp-ts": "^2.11.0", "graphql-scalars": "^1.17.0", "graphql-subscriptions": "2.0.0", @@ -61,8 +61,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/metadata-booster": "workspace:^2.16.0", - "@boostercloud/eslint-config": "workspace:^2.16.0", + "@boostercloud/metadata-booster": "workspace:^2.17.0", + "@boostercloud/eslint-config": "workspace:^2.17.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-integration-tests/package.json b/packages/framework-integration-tests/package.json index 1cb604a9f..c15145849 100644 --- a/packages/framework-integration-tests/package.json +++ b/packages/framework-integration-tests/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-integration-tests", "description": "Example project for Booster", - "version": "2.16.0", + "version": "2.17.0", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -9,12 +9,12 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.16.0", - "@boostercloud/framework-core": "workspace:^2.16.0", - "@boostercloud/framework-provider-aws": "workspace:^2.16.0", - "@boostercloud/framework-provider-azure": "workspace:^2.16.0", - "@boostercloud/framework-provider-local": "workspace:^2.16.0", - "@boostercloud/framework-types": "workspace:^2.16.0", + "@boostercloud/framework-common-helpers": "workspace:^2.17.0", + "@boostercloud/framework-core": "workspace:^2.17.0", + "@boostercloud/framework-provider-aws": "workspace:^2.17.0", + "@boostercloud/framework-provider-azure": "workspace:^2.17.0", + "@boostercloud/framework-provider-local": "workspace:^2.17.0", + "@boostercloud/framework-types": "workspace:^2.17.0", "aws-sdk": "2.853.0", "graphql": "^16.6.0", "tslib": "^2.4.0", @@ -33,13 +33,13 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.16.0", - "@boostercloud/application-tester": "workspace:^2.16.0", - "@boostercloud/cli": "workspace:^2.16.0", - "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.16.0", - "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.16.0", - "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.16.0", - "@boostercloud/metadata-booster": "workspace:^2.16.0", + "@boostercloud/eslint-config": "workspace:^2.17.0", + "@boostercloud/application-tester": "workspace:^2.17.0", + "@boostercloud/cli": "workspace:^2.17.0", + "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.17.0", + "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.17.0", + "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.17.0", + "@boostercloud/metadata-booster": "workspace:^2.17.0", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-aws-infrastructure/package.json b/packages/framework-provider-aws-infrastructure/package.json index fb32785a1..7a2d8cdab 100644 --- a/packages/framework-provider-aws-infrastructure/package.json +++ b/packages/framework-provider-aws-infrastructure/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws-infrastructure", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.16.0", + "version": "2.17.0", "description": "Handle the Booster deployment process to AWS", "keywords": [ "framework-provider-aws-infrastructure" @@ -41,9 +41,9 @@ "@aws-cdk/aws-s3-deployment": "^1.170.0", "@aws-cdk/core": "^1.170.0", "@aws-cdk/cx-api": "^1.170.0", - "@boostercloud/framework-common-helpers": "workspace:^2.16.0", - "@boostercloud/framework-provider-aws": "workspace:^2.16.0", - "@boostercloud/framework-types": "workspace:^2.16.0", + "@boostercloud/framework-common-helpers": "workspace:^2.17.0", + "@boostercloud/framework-provider-aws": "workspace:^2.17.0", + "@boostercloud/framework-types": "workspace:^2.17.0", "constructs": "^3.3.69", "aws-cdk": "^1.170.0", "aws-sdk": "2.853.0", @@ -69,7 +69,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.16.0", + "@boostercloud/eslint-config": "workspace:^2.17.0", "@types/aws-lambda": "8.10.48", "@types/aws-sdk": "2.7.0", "@types/chai": "4.2.18", diff --git a/packages/framework-provider-aws/package.json b/packages/framework-provider-aws/package.json index ddacc27a2..0bb205ac8 100644 --- a/packages/framework-provider-aws/package.json +++ b/packages/framework-provider-aws/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.16.0", + "version": "2.17.0", "description": "Handle Booster's integration with AWS", "keywords": [ "framework-provider-aws" @@ -24,8 +24,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.16.0", - "@boostercloud/framework-types": "workspace:^2.16.0", + "@boostercloud/framework-common-helpers": "workspace:^2.17.0", + "@boostercloud/framework-types": "workspace:^2.17.0", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4" }, @@ -43,7 +43,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.16.0", + "@boostercloud/eslint-config": "workspace:^2.17.0", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-azure-infrastructure/package.json b/packages/framework-provider-azure-infrastructure/package.json index 669ee33f9..04baa2ea4 100644 --- a/packages/framework-provider-azure-infrastructure/package.json +++ b/packages/framework-provider-azure-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure-infrastructure", - "version": "2.16.0", + "version": "2.17.0", "description": "Handle the Booster deployment process to Azure", "keywords": [ "framework-provider-azure-infrastructure" @@ -25,10 +25,10 @@ "dependencies": { "@azure/arm-appservice": "^13.0.0", "@azure/cosmos": "^4.0.0", - "@boostercloud/framework-common-helpers": "workspace:^2.16.0", - "@boostercloud/framework-core": "workspace:^2.16.0", - "@boostercloud/framework-provider-azure": "workspace:^2.16.0", - "@boostercloud/framework-types": "workspace:^2.16.0", + "@boostercloud/framework-common-helpers": "workspace:^2.17.0", + "@boostercloud/framework-core": "workspace:^2.17.0", + "@boostercloud/framework-provider-azure": "workspace:^2.17.0", + "@boostercloud/framework-types": "workspace:^2.17.0", "@cdktf/provider-azurerm": "11.2.0", "@cdktf/provider-time": "9.0.2", "@types/archiver": "5.1.0", @@ -67,7 +67,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.16.0", + "@boostercloud/eslint-config": "workspace:^2.17.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-azure/package.json b/packages/framework-provider-azure/package.json index 7eef51f91..40b5830b3 100644 --- a/packages/framework-provider-azure/package.json +++ b/packages/framework-provider-azure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure", - "version": "2.16.0", + "version": "2.17.0", "description": "Handle Booster's integration with Azure", "keywords": [ "framework-provider-azure" @@ -27,14 +27,14 @@ "@azure/functions": "^1.2.2", "@azure/identity": "~2.1.0", "@azure/event-hubs": "5.11.1", - "@boostercloud/framework-common-helpers": "workspace:^2.16.0", - "@boostercloud/framework-types": "workspace:^2.16.0", + "@boostercloud/framework-common-helpers": "workspace:^2.17.0", + "@boostercloud/framework-types": "workspace:^2.17.0", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "@azure/web-pubsub": "~1.1.0" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.16.0", + "@boostercloud/eslint-config": "workspace:^2.17.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-local-infrastructure/package.json b/packages/framework-provider-local-infrastructure/package.json index 5e6425d21..ef8625301 100644 --- a/packages/framework-provider-local-infrastructure/package.json +++ b/packages/framework-provider-local-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local-infrastructure", - "version": "2.16.0", + "version": "2.17.0", "description": "Handle the Booster running process of the local runtime", "keywords": [ "framework-provider-local-infrastructure" @@ -23,9 +23,9 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.16.0", - "@boostercloud/framework-provider-local": "workspace:^2.16.0", - "@boostercloud/framework-types": "workspace:^2.16.0", + "@boostercloud/framework-common-helpers": "workspace:^2.17.0", + "@boostercloud/framework-provider-local": "workspace:^2.17.0", + "@boostercloud/framework-types": "workspace:^2.17.0", "cors": "2.8.5", "express": "^4.19.2", "node-schedule": "^2.1.0", @@ -46,7 +46,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.16.0", + "@boostercloud/eslint-config": "workspace:^2.17.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/cors": "^2.8.12", diff --git a/packages/framework-provider-local/package.json b/packages/framework-provider-local/package.json index f6abde98d..d4b5a5f73 100644 --- a/packages/framework-provider-local/package.json +++ b/packages/framework-provider-local/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local", - "version": "2.16.0", + "version": "2.17.0", "description": "Debug your Booster projects locally", "keywords": [ "framework-provider-local" @@ -23,8 +23,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.16.0", - "@boostercloud/framework-types": "workspace:^2.16.0", + "@boostercloud/framework-common-helpers": "workspace:^2.17.0", + "@boostercloud/framework-types": "workspace:^2.17.0", "@seald-io/nedb": "4.0.2", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", @@ -44,7 +44,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.16.0", + "@boostercloud/eslint-config": "workspace:^2.17.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/express": "^4.17.21", diff --git a/packages/framework-types/package.json b/packages/framework-types/package.json index 0194528ca..596a225fd 100644 --- a/packages/framework-types/package.json +++ b/packages/framework-types/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-types", - "version": "2.16.0", + "version": "2.17.0", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "framework-types" @@ -54,8 +54,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.16.0", - "@boostercloud/metadata-booster": "workspace:^2.16.0", + "@boostercloud/eslint-config": "workspace:^2.17.0", + "@boostercloud/metadata-booster": "workspace:^2.17.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/mocha": "10.0.1", diff --git a/packages/metadata-booster/package.json b/packages/metadata-booster/package.json index c6a141690..bbfd4dc84 100644 --- a/packages/metadata-booster/package.json +++ b/packages/metadata-booster/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/metadata-booster", - "version": "2.16.0", + "version": "2.17.0", "description": "Emits detailed metadata of your types. You can then get it in runtime to deal with schema-aware operation, like defining GraphQL schemas, ORM operations, etc.", "repository": "https://github.com/boostercloud/booster.git", "keywords": [ @@ -38,7 +38,7 @@ "eslint-config-prettier": "8.3.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "3.4.0", - "@boostercloud/eslint-config": "workspace:^2.16.0", + "@boostercloud/eslint-config": "workspace:^2.17.0", "@types/node": "^18.18.2", "ts-node": "^10.9.1", "ts-patch": "3.1.2", diff --git a/tools/eslint-config/package.json b/tools/eslint-config/package.json index 4e46f6303..0eb9de9f2 100644 --- a/tools/eslint-config/package.json +++ b/tools/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/eslint-config", - "version": "2.16.0", + "version": "2.17.0", "description": "Shared eslint rules", "main": "index.js", "publishConfig": { From b791d832afddb29f65ee07ebb6b54b16d835810b Mon Sep 17 00:00:00 2001 From: gonzalojaubert <111118818+gonzalojaubert@users.noreply.github.com> Date: Thu, 29 Aug 2024 21:27:39 +0100 Subject: [PATCH 15/47] Remove events (#1416) * Remove events * fix doc * rush change * linter fix * fix rebase * fix rebase * Post-merge fixes * pnpm-lock.yaml update * Refactor configuration method in Projects decorator * Revert "Refactor configuration method in Projects decorator" This reverts commit 7b4b1e420ef147ef471750d5e1b1af4379987a98. * Refactor configuration method in Projects decorator * Refactor getProjections method in read-model-store.ts --------- Co-authored-by: Castro, Mario --- .../remove_events_2023-06-14-10-02.json | 10 + common/config/rush/pnpm-lock.yaml | 767 +++++++++--------- .../src/booster-delete-event-dispatcher.ts | 21 + .../src/booster-event-processor.ts | 2 + packages/framework-core/src/booster.ts | 6 + .../framework-core/src/decorators/projects.ts | 65 +- .../graphql-query-events-generator.ts | 1 + .../src/services/raw-events-parser.ts | 9 +- .../src/services/read-model-store.ts | 86 +- .../graphql/graphql-query-generator.test.ts | 2 +- .../test/services/read-model-store.test.ts | 4 +- .../end-to-end/delete.events.integration.ts | 485 +++++++++++ .../src/commands/hard-delete.ts | 18 + .../src/read-models/product-read-model.ts | 26 +- .../read-models/product-updates-read-model.ts | 16 +- .../src/read-models/products-by-sku.ts | 19 +- .../read-models/special-reports-read-model.ts | 17 +- .../src/library/events-adapter.ts | 6 +- .../src/library/events-searcher-adapter.ts | 1 + packages/framework-provider-aws/src/setup.ts | 4 + .../library/events-search-adapter.test.ts | 11 +- .../src/helpers/query-helper.ts | 21 +- .../framework-provider-azure/src/index.ts | 5 + .../src/library/event-delete-adapter.ts | 135 +++ .../src/library/events-adapter.ts | 6 +- .../src/library/events-searcher-adapter.ts | 6 +- .../src/library/events-searcher-builder.ts | 1 + .../src/library/read-model-adapter.ts | 18 +- .../test/library/events-adapter.test.ts | 2 +- .../library/events-searcher-adapter.test.ts | 4 +- .../framework-provider-local/src/index.ts | 5 + .../src/library/event-delete-adapter.ts | 133 +++ .../src/library/events-adapter.ts | 1 + .../src/library/events-search-adapter.ts | 6 +- .../src/library/events-searcher-builder.ts | 1 + .../src/library/read-model-adapter.ts | 8 +- .../src/library/searcher-adapter.ts | 4 +- .../src/services/event-registry.ts | 19 + .../test/library/events-adapter.test.ts | 6 + .../library/events-search-adapter.test.ts | 22 +- packages/framework-types/src/booster-app.ts | 2 + .../src/concepts/read-model.ts | 9 + packages/framework-types/src/config.ts | 1 + packages/framework-types/src/envelope.ts | 15 + packages/framework-types/src/provider.ts | 42 + .../docs/10_going-deeper/remove-events.mdx | 91 +++ website/sidebars.js | 1 + 47 files changed, 1677 insertions(+), 463 deletions(-) create mode 100644 common/changes/@boostercloud/framework-core/remove_events_2023-06-14-10-02.json create mode 100644 packages/framework-core/src/booster-delete-event-dispatcher.ts create mode 100644 packages/framework-integration-tests/integration/provider-unaware/end-to-end/delete.events.integration.ts create mode 100644 packages/framework-integration-tests/src/commands/hard-delete.ts create mode 100644 packages/framework-provider-azure/src/library/event-delete-adapter.ts create mode 100644 packages/framework-provider-local/src/library/event-delete-adapter.ts create mode 100644 website/docs/10_going-deeper/remove-events.mdx diff --git a/common/changes/@boostercloud/framework-core/remove_events_2023-06-14-10-02.json b/common/changes/@boostercloud/framework-core/remove_events_2023-06-14-10-02.json new file mode 100644 index 000000000..987865687 --- /dev/null +++ b/common/changes/@boostercloud/framework-core/remove_events_2023-06-14-10-02.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@boostercloud/framework-core", + "comment": "Add remove events", + "type": "minor" + } + ], + "packageName": "@boostercloud/framework-core" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index a867549d2..79c6adadc 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,8 +8,8 @@ importers: ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^2.16.0 - '@boostercloud/framework-types': workspace:^2.16.0 + '@boostercloud/eslint-config': workspace:^2.17.0 + '@boostercloud/framework-types': workspace:^2.17.0 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.18.2 @@ -46,12 +46,12 @@ importers: jsonwebtoken: 9.0.1 sinon: 9.2.3 subscriptions-transport-ws: 0.11.0_graphql@16.9.0 - tslib: 2.6.3 + tslib: 2.7.0 ws: 8.17.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/jsonwebtoken': 9.0.1 - '@types/node': 18.19.43 + '@types/node': 18.19.46 '@types/ws': 8.5.4 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry @@ -62,7 +62,7 @@ importers: eslint-plugin-import: 2.29.1_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 - fast-check: 3.20.0 + fast-check: 3.22.0 prettier: 2.3.0 rimraf: 5.0.10 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 @@ -70,10 +70,10 @@ importers: ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^2.16.0 - '@boostercloud/eslint-config': workspace:^2.16.0 - '@boostercloud/framework-core': workspace:^2.16.0 - '@boostercloud/framework-types': workspace:^2.16.0 + '@boostercloud/application-tester': workspace:^2.17.0 + '@boostercloud/eslint-config': workspace:^2.17.0 + '@boostercloud/framework-core': workspace:^2.17.0 + '@boostercloud/framework-types': workspace:^2.17.0 '@effect-ts/core': ^0.60.4 '@oclif/core': 3.15.0 '@oclif/plugin-help': ^5 @@ -129,7 +129,7 @@ importers: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@oclif/core': 3.15.0_typescript@5.1.6 - '@oclif/plugin-help': 5.2.20_prqahbuxbjzfz737e746ioxvhu + '@oclif/plugin-help': 5.2.20_lkkcy4kiv3gczc6zag7kwihdkm chalk: 2.4.2 child-process-promise: 2.2.1 execa: 2.1.0 @@ -140,7 +140,7 @@ importers: mustache: 4.1.0 ora: 3.4.0 ts-morph: 19.0.0 - tslib: 2.6.3 + tslib: 2.7.0 devDependencies: '@boostercloud/application-tester': link:../application-tester '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -154,7 +154,7 @@ importers: '@types/inquirer': 6.5.0 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.43 + '@types/node': 18.19.46 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -177,14 +177,14 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu + ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^2.16.0 - '@boostercloud/framework-types': workspace:^2.16.0 + '@boostercloud/eslint-config': workspace:^2.17.0 + '@boostercloud/framework-types': workspace:^2.17.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -223,7 +223,7 @@ importers: '@effect-ts/core': 0.60.5 child-process-promise: 2.2.1 class-transformer: 0.5.1 - tslib: 2.6.3 + tslib: 2.7.0 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/chai': 4.2.18 @@ -231,7 +231,7 @@ importers: '@types/child-process-promise': 2.2.6 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.43 + '@types/node': 18.19.46 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -253,15 +253,15 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu + ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm typescript: 5.1.6 ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^2.16.0 - '@boostercloud/framework-common-helpers': workspace:^2.16.0 - '@boostercloud/framework-types': workspace:^2.16.0 - '@boostercloud/metadata-booster': workspace:^2.16.0 + '@boostercloud/eslint-config': workspace:^2.17.0 + '@boostercloud/framework-common-helpers': workspace:^2.17.0 + '@boostercloud/framework-types': workspace:^2.17.0 + '@boostercloud/metadata-booster': workspace:^2.17.0 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 '@effect/platform-node': 0.45.26 @@ -323,10 +323,10 @@ importers: '@effect/platform-node': 0.45.26_cahjalgelcnk6vcj6x2oc46m3a '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_snixcscoukgak74x66m47k3t4i + '@effect/schema': 0.64.18_lr76zgfnixwkqlplfmwtcihp7a '@effect/typeclass': 0.23.17_effect@2.4.17 effect: 2.4.17 - fast-check: 3.20.0 + fast-check: 3.22.0 fp-ts: 2.16.9 graphql-scalars: 1.23.0_graphql@16.9.0 graphql-subscriptions: 2.0.0_graphql@16.9.0 @@ -335,7 +335,7 @@ importers: jsonwebtoken: 9.0.1 jwks-rsa: 3.0.1 reflect-metadata: 0.1.13 - tslib: 2.6.3 + tslib: 2.7.0 validator: 13.7.0 ws: 8.17.1 devDependencies: @@ -347,7 +347,7 @@ importers: '@types/inflected': 1.1.29 '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 - '@types/node': 18.19.43 + '@types/node': 18.19.46 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/validator': 13.1.3 @@ -371,26 +371,26 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu + ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^2.16.0 - '@boostercloud/cli': workspace:^2.16.0 - '@boostercloud/eslint-config': workspace:^2.16.0 - '@boostercloud/framework-common-helpers': workspace:^2.16.0 - '@boostercloud/framework-core': workspace:^2.16.0 - '@boostercloud/framework-provider-aws': workspace:^2.16.0 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.16.0 - '@boostercloud/framework-provider-azure': workspace:^2.16.0 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.16.0 - '@boostercloud/framework-provider-local': workspace:^2.16.0 - '@boostercloud/framework-provider-local-infrastructure': workspace:^2.16.0 - '@boostercloud/framework-types': workspace:^2.16.0 - '@boostercloud/metadata-booster': workspace:^2.16.0 + '@boostercloud/application-tester': workspace:^2.17.0 + '@boostercloud/cli': workspace:^2.17.0 + '@boostercloud/eslint-config': workspace:^2.17.0 + '@boostercloud/framework-common-helpers': workspace:^2.17.0 + '@boostercloud/framework-core': workspace:^2.17.0 + '@boostercloud/framework-provider-aws': workspace:^2.17.0 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.17.0 + '@boostercloud/framework-provider-azure': workspace:^2.17.0 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.17.0 + '@boostercloud/framework-provider-local': workspace:^2.17.0 + '@boostercloud/framework-provider-local-infrastructure': workspace:^2.17.0 + '@boostercloud/framework-types': workspace:^2.17.0 + '@boostercloud/metadata-booster': workspace:^2.17.0 '@effect-ts/core': ^0.60.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 @@ -467,15 +467,15 @@ importers: '@effect/platform-node': 0.45.26_cahjalgelcnk6vcj6x2oc46m3a '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_snixcscoukgak74x66m47k3t4i + '@effect/schema': 0.64.18_lr76zgfnixwkqlplfmwtcihp7a '@effect/typeclass': 0.23.17_effect@2.4.17 aws-sdk: 2.853.0 effect: 2.4.17 express: 4.19.2 express-unless: 2.1.3 - fast-check: 3.20.0 + fast-check: 3.22.0 graphql: 16.9.0 - tslib: 2.6.3 + tslib: 2.7.0 ws: 8.17.1 devDependencies: '@apollo/client': 3.7.13_jxorufveymi4xbrutgakjkp5wa @@ -496,7 +496,7 @@ importers: '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 '@types/nedb': 1.8.16 - '@types/node': 18.19.43 + '@types/node': 18.19.46 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 @@ -530,15 +530,15 @@ importers: serverless-artillery: 0.5.2 sinon: 9.2.3 subscriptions-transport-ws: 0.11.0_graphql@16.9.0 - ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu + ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^2.16.0 - '@boostercloud/framework-common-helpers': workspace:^2.16.0 - '@boostercloud/framework-types': workspace:^2.16.0 + '@boostercloud/eslint-config': workspace:^2.17.0 + '@boostercloud/framework-common-helpers': workspace:^2.17.0 + '@boostercloud/framework-types': workspace:^2.17.0 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -577,7 +577,7 @@ importers: '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 - tslib: 2.6.3 + tslib: 2.7.0 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/aws-lambda': 8.10.48 @@ -586,7 +586,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.43 + '@types/node': 18.19.46 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -609,7 +609,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu + ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm typescript: 5.1.6 velocityjs: 2.0.6 @@ -632,10 +632,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^2.16.0 - '@boostercloud/framework-common-helpers': workspace:^2.16.0 - '@boostercloud/framework-provider-aws': workspace:^2.16.0 - '@boostercloud/framework-types': workspace:^2.16.0 + '@boostercloud/eslint-config': workspace:^2.17.0 + '@boostercloud/framework-common-helpers': workspace:^2.17.0 + '@boostercloud/framework-provider-aws': workspace:^2.17.0 + '@boostercloud/framework-types': workspace:^2.17.0 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -706,7 +706,7 @@ importers: colors: 1.4.0 constructs: 3.4.344 promptly: 3.2.0 - tslib: 2.6.3 + tslib: 2.7.0 yaml: 1.10.2 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -717,7 +717,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.43 + '@types/node': 18.19.46 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -738,7 +738,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu + ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm typescript: 5.1.6 velocityjs: 2.0.6 @@ -749,9 +749,9 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^2.16.0 - '@boostercloud/framework-common-helpers': workspace:^2.16.0 - '@boostercloud/framework-types': workspace:^2.16.0 + '@boostercloud/eslint-config': workspace:^2.17.0 + '@boostercloud/framework-common-helpers': workspace:^2.17.0 + '@boostercloud/framework-types': workspace:^2.17.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -780,22 +780,22 @@ importers: tslib: ^2.4.0 typescript: 5.1.6 dependencies: - '@azure/cosmos': 4.0.0 + '@azure/cosmos': 4.1.0 '@azure/event-hubs': 5.11.1 '@azure/functions': 1.2.3 '@azure/identity': 2.1.0 - '@azure/web-pubsub': 1.1.1 + '@azure/web-pubsub': 1.1.3 '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 - tslib: 2.6.3 + tslib: 2.7.0 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.43 + '@types/node': 18.19.46 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 @@ -814,7 +814,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu + ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm typescript: 5.1.6 ../../packages/framework-provider-azure-infrastructure: @@ -823,11 +823,11 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^2.16.0 - '@boostercloud/framework-common-helpers': workspace:^2.16.0 - '@boostercloud/framework-core': workspace:^2.16.0 - '@boostercloud/framework-provider-azure': workspace:^2.16.0 - '@boostercloud/framework-types': workspace:^2.16.0 + '@boostercloud/eslint-config': workspace:^2.17.0 + '@boostercloud/framework-common-helpers': workspace:^2.17.0 + '@boostercloud/framework-core': workspace:^2.17.0 + '@boostercloud/framework-provider-azure': workspace:^2.17.0 + '@boostercloud/framework-types': workspace:^2.17.0 '@cdktf/provider-azurerm': 11.2.0 '@cdktf/provider-time': 9.0.2 '@effect-ts/core': ^0.60.4 @@ -877,7 +877,7 @@ importers: dependencies: '@azure/arm-appservice': 13.0.3 '@azure/arm-resources': 5.2.0 - '@azure/cosmos': 4.0.0 + '@azure/cosmos': 4.1.0 '@azure/identity': 2.1.0 '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-core': link:../framework-core @@ -902,7 +902,7 @@ importers: ora: 3.4.0 react: 17.0.2 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - tslib: 2.6.3 + tslib: 2.7.0 uuid: 8.3.2 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -912,7 +912,7 @@ importers: '@types/fs-extra': 9.0.13 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.43 + '@types/node': 18.19.46 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 @@ -929,14 +929,14 @@ importers: prettier: 2.3.0 rimraf: 5.0.10 sinon: 9.2.3 - ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu + ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm typescript: 5.1.6 ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^2.16.0 - '@boostercloud/framework-common-helpers': workspace:^2.16.0 - '@boostercloud/framework-types': workspace:^2.16.0 + '@boostercloud/eslint-config': workspace:^2.17.0 + '@boostercloud/framework-common-helpers': workspace:^2.17.0 + '@boostercloud/framework-types': workspace:^2.17.0 '@effect-ts/core': ^0.60.4 '@seald-io/nedb': 4.0.2 '@types/chai': 4.2.18 @@ -976,7 +976,7 @@ importers: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@seald-io/nedb': 4.0.2 - tslib: 2.6.3 + tslib: 2.7.0 ws: 8.17.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -985,7 +985,7 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.43 + '@types/node': 18.19.46 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/sinon-express-mock': 1.3.12 @@ -1008,15 +1008,15 @@ importers: sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu + ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm typescript: 5.1.6 ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^2.16.0 - '@boostercloud/framework-common-helpers': workspace:^2.16.0 - '@boostercloud/framework-provider-local': workspace:^2.16.0 - '@boostercloud/framework-types': workspace:^2.16.0 + '@boostercloud/eslint-config': workspace:^2.17.0 + '@boostercloud/framework-common-helpers': workspace:^2.17.0 + '@boostercloud/framework-provider-local': workspace:^2.17.0 + '@boostercloud/framework-types': workspace:^2.17.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1060,7 +1060,7 @@ importers: cors: 2.8.5 express: 4.19.2 node-schedule: 2.1.1 - tslib: 2.6.3 + tslib: 2.7.0 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/chai': 4.2.18 @@ -1069,7 +1069,7 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.43 + '@types/node': 18.19.46 '@types/node-schedule': 1.3.2 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -1091,13 +1091,13 @@ importers: sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu + ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm typescript: 5.1.6 ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^2.16.0 - '@boostercloud/metadata-booster': workspace:^2.16.0 + '@boostercloud/eslint-config': workspace:^2.17.0 + '@boostercloud/metadata-booster': workspace:^2.17.0 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@effect/cli': 0.35.26 @@ -1143,10 +1143,10 @@ importers: '@effect/platform': 0.48.24_aixcdyfeuz2zct7jthaihye4ri '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_snixcscoukgak74x66m47k3t4i + '@effect/schema': 0.64.18_lr76zgfnixwkqlplfmwtcihp7a '@effect/typeclass': 0.23.17_effect@2.4.17 effect: 2.4.17 - tslib: 2.6.3 + tslib: 2.7.0 uuid: 8.3.2 web-streams-polyfill: 3.3.3 ws: 8.17.1 @@ -1156,7 +1156,7 @@ importers: '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/mocha': 10.0.1 - '@types/node': 18.19.43 + '@types/node': 18.19.46 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 @@ -1169,7 +1169,7 @@ importers: eslint-plugin-import: 2.29.1_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 - fast-check: 3.20.0 + fast-check: 3.22.0 graphql: 16.9.0 mocha: 10.2.0 nyc: 15.1.0 @@ -1181,7 +1181,7 @@ importers: ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^2.16.0 + '@boostercloud/eslint-config': workspace:^2.17.0 '@effect-ts/core': ^0.60.4 '@types/node': ^18.18.2 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -1204,10 +1204,10 @@ importers: '@effect-ts/core': 0.60.5 reflect-metadata: 0.1.13 ts-morph: 19.0.0 - tslib: 2.6.3 + tslib: 2.7.0 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config - '@types/node': 18.19.43 + '@types/node': 18.19.46 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry eslint: 8.57.0 @@ -1218,7 +1218,7 @@ importers: prettier: 2.3.0 rimraf: 5.0.10 sinon: 9.2.3 - ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu + ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm ts-patch: 3.1.2 typescript: 5.1.6 @@ -1294,7 +1294,7 @@ packages: subscriptions-transport-ws: 0.11.0_graphql@16.9.0 symbol-observable: 4.0.0 ts-invariant: 0.10.3 - tslib: 2.6.3 + tslib: 2.7.0 zen-observable-ts: 1.2.5 dev: true @@ -1329,7 +1329,7 @@ packages: subscriptions-transport-ws: 0.11.0_graphql@16.9.0 symbol-observable: 4.0.0 ts-invariant: 0.10.3 - tslib: 2.6.3 + tslib: 2.7.0 zen-observable-ts: 1.2.5 dev: false @@ -1660,7 +1660,7 @@ packages: '@aws-cdk/aws-codecommit': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-codestarnotifications': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni + '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu @@ -1668,11 +1668,10 @@ packages: '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu - '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 + '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 - yaml: 1.10.2 transitivePeerDependencies: - '@aws-cdk/aws-lambda' - '@aws-cdk/cx-api' @@ -1788,7 +1787,6 @@ packages: '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/custom-resources': 1.204.0_c23kgzmvfhgnr6qpzzlbsfzuc4 constructs: 3.4.344 - punycode: 2.3.1 transitivePeerDependencies: - '@aws-cdk/aws-ec2' - '@aws-cdk/aws-logs' @@ -1875,7 +1873,7 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/assets': 1.204.0_uszt2j4mor3yrbm3tre3az4zvy - '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni + '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam @@ -1885,7 +1883,7 @@ packages: - '@aws-cdk/aws-events' dev: false - /@aws-cdk/aws-ecr/1.204.0_4bnk2gpayjo75fecjckge2dkni: + /@aws-cdk/aws-ecr/1.204.0_bi2u42js5xhxqcsg5gqefde4xi: resolution: {integrity: sha512-oCts9e+ackWoFHeyn/3oKm3X1lSizleWNNXHp5WGM38lpNVrtCLMKSShu5iXJBhqRH2Mz1AcA4fDMWhe8DvJFA==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -1901,8 +1899,11 @@ packages: dependencies: '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu + '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam constructs: 3.4.344 + transitivePeerDependencies: + - '@aws-cdk/cx-api' dev: false /@aws-cdk/aws-ecs/1.204.0_iu2vquo67t63xu6vdymsg3ufny: @@ -1928,7 +1929,7 @@ packages: '@aws-cdk/aws-certificatemanager': 1.204.0_xtqk4litqxecxsqs3sd6ajo2ja '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni + '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli @@ -1940,7 +1941,7 @@ packages: '@aws-cdk/aws-route53-targets': 1.204.0_2eviprr3zwoouaslbumtdekrhi '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu - '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 + '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq '@aws-cdk/aws-servicediscovery': 1.204.0_nu23nesxfni464wb5cy4ehgagi '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -2241,7 +2242,7 @@ packages: '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-notifications': 1.204.0_xguspq3b5n56mo6dsez57f32qa - '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 + '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sns-subscriptions': 1.204.0_bpkznh2gsccwq6qpaogbkb4psu '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -2274,7 +2275,7 @@ packages: '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-codeguruprofiler': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni + '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-efs': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm @@ -2435,7 +2436,6 @@ packages: '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/lambda-layer-awscli': 1.204.0_e7ybiu4yrrtvf3zlvzrvcjkvyy - case: 1.6.3 constructs: 3.4.344 transitivePeerDependencies: - '@aws-cdk/assets' @@ -2511,7 +2511,7 @@ packages: constructs: 3.4.344 dev: false - /@aws-cdk/aws-secretsmanager/1.204.0_336juigttbrwz7tyvm6a6wfpy4: + /@aws-cdk/aws-secretsmanager/1.204.0_2o53qceqenzlpxe4mjswmsqfiq: resolution: {integrity: sha512-ykpjYmP6qVOFbHtkaQBu3Xk7xp2UTR0ouzk7pb+zrEHKGmRvzGq+8J0IU+qXBJgQIVwFAPf2IgOSTzj6FJPdyA==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -2526,12 +2526,18 @@ packages: '@aws-cdk/cx-api': 1.204.0 constructs: ^3.3.69 dependencies: + '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu + '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-sam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/cx-api': 1.203.0 constructs: 3.4.344 + transitivePeerDependencies: + - '@aws-cdk/assets' + - '@aws-cdk/aws-logs' + - '@aws-cdk/aws-s3' dev: false /@aws-cdk/aws-servicediscovery/1.204.0_nu23nesxfni464wb5cy4ehgagi: @@ -2709,9 +2715,6 @@ packages: /@aws-cdk/cloud-assembly-schema/1.203.0: resolution: {integrity: sha512-r252InZ8Oh7q7ztriaA3n6F48QOFVfNcT/KO4XOlYyt1xDWRMENDYf+D+DVr6O5klcaa3ivvvDT7DRuW3xdVOQ==} engines: {node: '>= 14.15.0'} - dependencies: - jsonschema: 1.4.1 - semver: 7.6.3 dev: false bundledDependencies: - jsonschema @@ -2725,9 +2728,6 @@ packages: This package is no longer being updated, and users should migrate to AWS CDK v2. For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html - dependencies: - jsonschema: 1.4.1 - semver: 7.6.3 dev: false bundledDependencies: - jsonschema @@ -2736,9 +2736,6 @@ packages: /@aws-cdk/cloud-assembly-schema/2.39.1: resolution: {integrity: sha512-lSVaaedXWeK08uoq0IXDCspz9U/H4qIERemdsMQrMUDTiUe/JBby7vtmyMvOdEscE8GMAmiOzoPmAE0Uf+yw5A==} engines: {node: '>= 14.15.0'} - dependencies: - jsonschema: 1.4.1 - semver: 7.6.3 dev: false bundledDependencies: - jsonschema @@ -2772,11 +2769,7 @@ packages: '@aws-cdk/cloud-assembly-schema': 1.204.0 '@aws-cdk/cx-api': 1.203.0 '@aws-cdk/region-info': 1.204.0 - '@balena/dockerignore': 1.0.2 constructs: 3.4.344 - fs-extra: 9.1.0 - ignore: 5.3.1 - minimatch: 3.1.2 dev: false bundledDependencies: - fs-extra @@ -2819,7 +2812,6 @@ packages: engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 1.203.0 - semver: 7.6.3 dev: false bundledDependencies: - semver @@ -2834,7 +2826,6 @@ packages: For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html dependencies: '@aws-cdk/cloud-assembly-schema': 1.204.0 - semver: 7.6.3 dev: false bundledDependencies: - semver @@ -2844,7 +2835,6 @@ packages: engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 2.39.1 - semver: 7.6.3 dev: false bundledDependencies: - semver @@ -2881,14 +2871,14 @@ packages: resolution: {integrity: sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==} engines: {node: '>=12.0.0'} dependencies: - tslib: 2.6.3 + tslib: 2.7.0 dev: false /@azure/abort-controller/2.1.2: resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.3 + tslib: 2.7.0 dev: false /@azure/arm-appservice/13.0.3: @@ -2901,7 +2891,7 @@ packages: '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 '@azure/core-rest-pipeline': 1.16.3 - tslib: 2.6.3 + tslib: 2.7.0 transitivePeerDependencies: - supports-color dev: false @@ -2916,7 +2906,7 @@ packages: '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 '@azure/core-rest-pipeline': 1.16.3 - tslib: 2.6.3 + tslib: 2.7.0 transitivePeerDependencies: - supports-color dev: false @@ -2935,7 +2925,7 @@ packages: process: 0.11.10 rhea: 3.0.2 rhea-promise: 3.0.3 - tslib: 2.6.3 + tslib: 2.7.0 util: 0.12.5 transitivePeerDependencies: - supports-color @@ -2947,7 +2937,7 @@ packages: dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-util': 1.9.2 - tslib: 2.6.3 + tslib: 2.7.0 dev: false /@azure/core-client/1.9.2: @@ -2960,7 +2950,7 @@ packages: '@azure/core-tracing': 1.1.2 '@azure/core-util': 1.9.2 '@azure/logger': 1.1.4 - tslib: 2.6.3 + tslib: 2.7.0 transitivePeerDependencies: - supports-color dev: false @@ -2972,14 +2962,14 @@ packages: '@azure/abort-controller': 2.1.2 '@azure/core-util': 1.9.2 '@azure/logger': 1.1.4 - tslib: 2.6.3 + tslib: 2.7.0 dev: false /@azure/core-paging/1.6.2: resolution: {integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.3 + tslib: 2.7.0 dev: false /@azure/core-rest-pipeline/1.16.3: @@ -2993,7 +2983,7 @@ packages: '@azure/logger': 1.1.4 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 - tslib: 2.6.3 + tslib: 2.7.0 transitivePeerDependencies: - supports-color dev: false @@ -3002,7 +2992,7 @@ packages: resolution: {integrity: sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.3 + tslib: 2.7.0 dev: false /@azure/core-util/1.9.2: @@ -3010,26 +3000,23 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 - tslib: 2.6.3 + tslib: 2.7.0 dev: false - /@azure/cosmos/4.0.0: - resolution: {integrity: sha512-/Z27p1+FTkmjmm8jk90zi/HrczPHw2t8WecFnsnTe4xGocWl0Z4clP0YlLUTJPhRLWYa5upwD9rMvKJkS1f1kg==} - engines: {node: '>=14.0.0'} + /@azure/cosmos/4.1.0: + resolution: {integrity: sha512-+m085WKIGkf6wyw4vT85FFXl9j3U35u+LFFVwmLqfPbolnQAtoX24cowXz+vseW4BWKyx6Lamb+Zz+jl69zn6g==} + engines: {node: '>=18.0.0'} dependencies: - '@azure/abort-controller': 1.1.0 + '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.7.2 '@azure/core-rest-pipeline': 1.16.3 '@azure/core-tracing': 1.1.2 - debug: 4.3.6 + '@azure/core-util': 1.9.2 fast-json-stable-stringify: 2.1.0 - jsbi: 3.2.5 - node-abort-controller: 3.1.1 - priorityqueuejs: 1.0.0 + jsbi: 4.3.0 + priorityqueuejs: 2.0.0 semaphore: 1.1.0 - tslib: 2.6.3 - universal-user-agent: 6.0.1 - uuid: 8.3.2 + tslib: 2.7.0 transitivePeerDependencies: - supports-color dev: false @@ -3049,7 +3036,7 @@ packages: jssha: 3.3.1 process: 0.11.10 rhea-promise: 3.0.3 - tslib: 2.6.3 + tslib: 2.7.0 transitivePeerDependencies: - supports-color dev: false @@ -3076,7 +3063,7 @@ packages: jws: 4.0.0 open: 8.4.2 stoppable: 1.1.0 - tslib: 2.6.3 + tslib: 2.7.0 uuid: 8.3.2 transitivePeerDependencies: - supports-color @@ -3086,7 +3073,7 @@ packages: resolution: {integrity: sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.6.3 + tslib: 2.7.0 dev: false /@azure/msal-browser/2.39.0: @@ -3121,9 +3108,9 @@ packages: uuid: 8.3.2 dev: false - /@azure/web-pubsub/1.1.1: - resolution: {integrity: sha512-YqPVPv3KX36LIsboNOlF2qjTj1HMWExcFOOH1QIFpbv9ptXI2McIrr5goScgLTtDWO0JIFJjz0sKSWucWPgb1w==} - engines: {node: '>=14.0.0'} + /@azure/web-pubsub/1.1.3: + resolution: {integrity: sha512-l1HHPcFCRhZ8P6oQ8C/8A2eElHWqmG7CxVUlDcXi3Fs9SUr8GYKv5euYJWS5uboaokudjAiqJ6u/oM6h+pQ4+w==} + engines: {node: '>=18.0.0'} dependencies: '@azure/core-auth': 1.7.2 '@azure/core-client': 1.9.2 @@ -3131,7 +3118,7 @@ packages: '@azure/core-tracing': 1.1.2 '@azure/logger': 1.1.4 jsonwebtoken: 9.0.1 - tslib: 2.6.3 + tslib: 2.7.0 transitivePeerDependencies: - supports-color dev: false @@ -3143,8 +3130,8 @@ packages: '@babel/highlight': 7.24.7 picocolors: 1.0.1 - /@babel/compat-data/7.25.2: - resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==} + /@babel/compat-data/7.25.4: + resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} engines: {node: '>=6.9.0'} dev: true @@ -3154,14 +3141,14 @@ packages: dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.0 + '@babel/generator': 7.25.5 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-module-transforms': 7.25.2_@babel+core@7.25.2 '@babel/helpers': 7.25.0 - '@babel/parser': 7.25.3 + '@babel/parser': 7.25.4 '@babel/template': 7.25.0 - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.25.4 + '@babel/types': 7.25.4 convert-source-map: 2.0.0 debug: 4.3.6 gensync: 1.0.0-beta.2 @@ -3171,11 +3158,11 @@ packages: - supports-color dev: true - /@babel/generator/7.25.0: - resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} + /@babel/generator/7.25.5: + resolution: {integrity: sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.25.2 + '@babel/types': 7.25.4 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 @@ -3184,7 +3171,7 @@ packages: resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.25.2 + '@babel/compat-data': 7.25.4 '@babel/helper-validator-option': 7.24.8 browserslist: 4.23.3 lru-cache: 5.1.1 @@ -3195,8 +3182,8 @@ packages: resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.25.4 + '@babel/types': 7.25.4 transitivePeerDependencies: - supports-color dev: true @@ -3211,7 +3198,7 @@ packages: '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.3 + '@babel/traverse': 7.25.4 transitivePeerDependencies: - supports-color dev: true @@ -3220,8 +3207,8 @@ packages: resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.25.4 + '@babel/types': 7.25.4 transitivePeerDependencies: - supports-color dev: true @@ -3244,7 +3231,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.25.0 - '@babel/types': 7.25.2 + '@babel/types': 7.25.4 dev: true /@babel/highlight/7.24.7: @@ -3256,15 +3243,15 @@ packages: js-tokens: 4.0.0 picocolors: 1.0.1 - /@babel/parser/7.25.3: - resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==} + /@babel/parser/7.25.4: + resolution: {integrity: sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.25.2 + '@babel/types': 7.25.4 - /@babel/runtime/7.25.0: - resolution: {integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==} + /@babel/runtime/7.25.4: + resolution: {integrity: sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 @@ -3275,36 +3262,32 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.3 - '@babel/types': 7.25.2 + '@babel/parser': 7.25.4 + '@babel/types': 7.25.4 - /@babel/traverse/7.25.3: - resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==} + /@babel/traverse/7.25.4: + resolution: {integrity: sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.0 - '@babel/parser': 7.25.3 + '@babel/generator': 7.25.5 + '@babel/parser': 7.25.4 '@babel/template': 7.25.0 - '@babel/types': 7.25.2 + '@babel/types': 7.25.4 debug: 4.3.6 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types/7.25.2: - resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} + /@babel/types/7.25.4: + resolution: {integrity: sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 - /@balena/dockerignore/1.0.2: - resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} - dev: false - /@cdktf/cli-core/0.19.2_react@17.0.2: resolution: {integrity: sha512-kjgEUhrHx3kUPfL7KsTo6GrurVUPT77FmOUf7wWXt7ajNE5zCPvx/HKGmQruzt0n6eLZp1aKT+r/D6YRfXcIGA==} dependencies: @@ -3313,7 +3296,7 @@ packages: '@cdktf/hcl2json': 0.19.2 '@cdktf/node-pty-prebuilt-multiarch': 0.10.1-pre.11 '@cdktf/provider-schema': 0.19.2 - '@sentry/node': 7.118.0 + '@sentry/node': 7.119.0 archiver: 5.3.2 cdktf: 0.19.2_constructs@10.3.0 chalk: 4.1.2 @@ -3335,9 +3318,9 @@ packages: ink-spinner: 4.0.3_ink@3.2.0+react@17.0.2 ink-testing-library: 2.1.0 ink-use-stdout-dimensions: 1.0.5_ink@3.2.0+react@17.0.2 - jsii: 5.4.31 + jsii: 5.5.1 jsii-pacmak: 1.102.0 - jsii-srcmak: 0.1.1204 + jsii-srcmak: 0.1.1226 lodash.isequal: 4.5.0 log4js: 6.9.1 minimatch: 5.1.6 @@ -3369,7 +3352,7 @@ packages: /@cdktf/commons/0.19.2: resolution: {integrity: sha512-5rOeb0cSREHQa5XVsGFEV6Ce8Zwo2WxE8GIhmGd/JzeSAByhK8scHFlD3+eENl83W/8lwIkm/nSl9oDHEkENIg==} dependencies: - '@sentry/node': 7.118.0 + '@sentry/node': 7.119.0 cdktf: 0.19.2_constructs@10.3.0 ci-info: 3.9.0 codemaker: 1.102.0 @@ -3387,9 +3370,9 @@ packages: /@cdktf/hcl2cdk/0.19.2: resolution: {integrity: sha512-v0UNRvvzuCi3SnmSAgBFAnWavT0ybR1AzkK8ndgfbB5JLDoNm0iJV0MOTURZF+I0O3V9u4RZsw4DVNPdil2EEA==} dependencies: - '@babel/generator': 7.25.0 + '@babel/generator': 7.25.5 '@babel/template': 7.25.0 - '@babel/types': 7.25.2 + '@babel/types': 7.25.4 '@cdktf/commons': 0.19.2 '@cdktf/hcl2json': 0.19.2 '@cdktf/provider-generator': 0.19.2 @@ -3399,7 +3382,7 @@ packages: glob: 10.4.5 graphology: 0.25.4_graphology-types@0.24.7 graphology-types: 0.24.7 - jsii-rosetta: 5.4.29 + jsii-rosetta: 5.5.1 prettier: 2.8.8 reserved-words: 0.1.2 zod: 3.23.8 @@ -3440,7 +3423,7 @@ packages: codemaker: 1.102.0 deepmerge: 4.3.1 fs-extra: 8.1.0 - jsii-srcmak: 0.1.1204 + jsii-srcmak: 0.1.1226 transitivePeerDependencies: - debug - supports-color @@ -3501,7 +3484,7 @@ packages: '@effect/platform': 0.48.24_aixcdyfeuz2zct7jthaihye4ri '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_snixcscoukgak74x66m47k3t4i + '@effect/schema': 0.64.18_lr76zgfnixwkqlplfmwtcihp7a effect: 2.4.17 ini: 4.1.3 toml: 3.0.0 @@ -3517,7 +3500,7 @@ packages: '@effect/platform': 0.48.24_aixcdyfeuz2zct7jthaihye4ri '@parcel/watcher': 2.4.1 effect: 2.4.17 - multipasta: 0.2.4 + multipasta: 0.2.5 dev: false /@effect/platform-node/0.45.26_cahjalgelcnk6vcj6x2oc46m3a: @@ -3530,7 +3513,7 @@ packages: '@effect/platform-node-shared': 0.3.29_cahjalgelcnk6vcj6x2oc46m3a effect: 2.4.17 mime: 3.0.0 - undici: 6.19.5 + undici: 6.19.8 ws: 8.17.1 transitivePeerDependencies: - bufferutil @@ -3543,11 +3526,11 @@ packages: '@effect/schema': ^0.64.18 effect: ^2.4.17 dependencies: - '@effect/schema': 0.64.18_snixcscoukgak74x66m47k3t4i + '@effect/schema': 0.64.18_lr76zgfnixwkqlplfmwtcihp7a effect: 2.4.17 find-my-way-ts: 0.1.5 isomorphic-ws: 5.0.0_ws@8.17.1 - multipasta: 0.2.4 + multipasta: 0.2.5 path-browserify: 1.0.1 transitivePeerDependencies: - ws @@ -3574,14 +3557,14 @@ packages: effect: 2.4.17 dev: false - /@effect/schema/0.64.18_snixcscoukgak74x66m47k3t4i: + /@effect/schema/0.64.18_lr76zgfnixwkqlplfmwtcihp7a: resolution: {integrity: sha512-utMVAjcKqmNlkJ8hzdXf3FWBOsekKbe3xhYzWLLLFCpdbTMkCFeN52l1QRXTk7rla87sNTYdMA+xcES9maOEog==} peerDependencies: effect: ^2.4.17 fast-check: ^3.13.2 dependencies: effect: 2.4.17 - fast-check: 3.20.0 + fast-check: 3.22.0 dev: false /@effect/typeclass/0.23.17_effect@2.4.17: @@ -3613,7 +3596,7 @@ packages: debug: 4.3.6 espree: 9.6.1 globals: 13.24.0 - ignore: 5.3.1 + ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -3675,7 +3658,7 @@ packages: dependencies: '@inquirer/type': 1.5.2 '@types/mute-stream': 0.0.1 - '@types/node': 20.14.14 + '@types/node': 20.16.1 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3694,7 +3677,7 @@ packages: dependencies: '@inquirer/type': 1.5.2 '@types/mute-stream': 0.0.4 - '@types/node': 20.14.14 + '@types/node': 20.16.1 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3881,7 +3864,7 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - /@oclif/core/2.16.0_prqahbuxbjzfz737e746ioxvhu: + /@oclif/core/2.16.0_lkkcy4kiv3gczc6zag7kwihdkm: resolution: {integrity: sha512-dL6atBH0zCZl1A1IXCKJgLPrM/wR7K+Wi401E/IvqsK8m2iCHW+0TEOGrans/cuN3oTW+uxIyJFHJ8Im0k4qBw==} engines: {node: '>=14.0.0'} dependencies: @@ -3908,8 +3891,8 @@ packages: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - ts-node: 10.9.2_prqahbuxbjzfz737e746ioxvhu - tslib: 2.6.3 + ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm + tslib: 2.7.0 widest-line: 3.1.0 wordwrap: 1.0.0 wrap-ansi: 7.0.0 @@ -3989,11 +3972,11 @@ packages: wrap-ansi: 7.0.0 dev: true - /@oclif/plugin-help/5.2.20_prqahbuxbjzfz737e746ioxvhu: + /@oclif/plugin-help/5.2.20_lkkcy4kiv3gczc6zag7kwihdkm: resolution: {integrity: sha512-u+GXX/KAGL9S10LxAwNUaWdzbEBARJ92ogmM7g3gDVud2HioCmvWQCDohNRVZ9GYV9oKwZ/M8xwd6a1d95rEKQ==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.16.0_prqahbuxbjzfz737e746ioxvhu + '@oclif/core': 2.16.0_lkkcy4kiv3gczc6zag7kwihdkm transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -4126,7 +4109,7 @@ packages: dependencies: detect-libc: 1.0.3 is-glob: 4.0.3 - micromatch: 4.0.7 + micromatch: 4.0.8 node-addon-api: 7.1.1 optionalDependencies: '@parcel/watcher-android-arm64': 2.4.1 @@ -4159,49 +4142,49 @@ packages: localforage: 1.10.0 util: 0.12.5 - /@sentry-internal/tracing/7.118.0: - resolution: {integrity: sha512-dERAshKlQLrBscHSarhHyUeGsu652bDTUN1FK0m4e3X48M3I5/s+0N880Qjpe5MprNLcINlaIgdQ9jkisvxjfw==} + /@sentry-internal/tracing/7.119.0: + resolution: {integrity: sha512-oKdFJnn+56f0DHUADlL8o9l8jTib3VDLbWQBVkjD9EprxfaCwt2m8L5ACRBdQ8hmpxCEo4I8/6traZ7qAdBUqA==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.118.0 - '@sentry/types': 7.118.0 - '@sentry/utils': 7.118.0 + '@sentry/core': 7.119.0 + '@sentry/types': 7.119.0 + '@sentry/utils': 7.119.0 - /@sentry/core/7.118.0: - resolution: {integrity: sha512-ol0xBdp3/K11IMAYSQE0FMxBOOH9hMsb/rjxXWe0hfM5c72CqYWL3ol7voPci0GELJ5CZG+9ImEU1V9r6gK64g==} + /@sentry/core/7.119.0: + resolution: {integrity: sha512-CS2kUv9rAJJEjiRat6wle3JATHypB0SyD7pt4cpX5y0dN5dZ1JrF57oLHRMnga9fxRivydHz7tMTuBhSSwhzjw==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.118.0 - '@sentry/utils': 7.118.0 + '@sentry/types': 7.119.0 + '@sentry/utils': 7.119.0 - /@sentry/integrations/7.118.0: - resolution: {integrity: sha512-C2rR4NvIMjokF8jP5qzSf1o2zxDx7IeYnr8u15Kb2+HdZtX559owALR0hfgwnfeElqMhGlJBaKUWZ48lXJMzCQ==} + /@sentry/integrations/7.119.0: + resolution: {integrity: sha512-OHShvtsRW0A+ZL/ZbMnMqDEtJddPasndjq+1aQXw40mN+zeP7At/V1yPZyFaURy86iX7Ucxw5BtmzuNy7hLyTA==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.118.0 - '@sentry/types': 7.118.0 - '@sentry/utils': 7.118.0 + '@sentry/core': 7.119.0 + '@sentry/types': 7.119.0 + '@sentry/utils': 7.119.0 localforage: 1.10.0 - /@sentry/node/7.118.0: - resolution: {integrity: sha512-79N63DvYKkNPqzmc0cjO+vMZ/nU7+CbE3K3COQNiV7gk58+666G9mRZQJuZVOVebatq5wM5UR0G4LPkwD+J84g==} + /@sentry/node/7.119.0: + resolution: {integrity: sha512-9PFzN8xS6U0oZCflpVxS2SSIsHkCaj7qYBlsvHj4CTGWfao9ImwrU6+smy4qoG6oxwPfoVb5pOOMb4WpWOvXcQ==} engines: {node: '>=8'} dependencies: - '@sentry-internal/tracing': 7.118.0 - '@sentry/core': 7.118.0 - '@sentry/integrations': 7.118.0 - '@sentry/types': 7.118.0 - '@sentry/utils': 7.118.0 + '@sentry-internal/tracing': 7.119.0 + '@sentry/core': 7.119.0 + '@sentry/integrations': 7.119.0 + '@sentry/types': 7.119.0 + '@sentry/utils': 7.119.0 - /@sentry/types/7.118.0: - resolution: {integrity: sha512-2drqrD2+6kgeg+W/ycmiti3G4lJrV3hGjY9PpJ3bJeXrh6T2+LxKPzlgSEnKFaeQWkXdZ4eaUbtTXVebMjb5JA==} + /@sentry/types/7.119.0: + resolution: {integrity: sha512-27qQbutDBPKGbuJHROxhIWc1i0HJaGLA90tjMu11wt0E4UNxXRX+UQl4Twu68v4EV3CPvQcEpQfgsViYcXmq+w==} engines: {node: '>=8'} - /@sentry/utils/7.118.0: - resolution: {integrity: sha512-43qItc/ydxZV1Zb3Kn2M54RwL9XXFa3IAYBO8S82Qvq5YUYmU2AmJ1jgg7DabXlVSWgMA1HntwqnOV3JLaEnTQ==} + /@sentry/utils/7.119.0: + resolution: {integrity: sha512-ZwyXexWn2ZIe2bBoYnXJVPc2esCSbKpdc6+0WJa8eutXfHq3FRKg4ohkfCBpfxljQGEfP1+kfin945lA21Ka+A==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.118.0 + '@sentry/types': 7.119.0 /@serverless/dashboard-plugin/6.4.0_supports-color@8.1.1: resolution: {integrity: sha512-2yJQym94sXZhEFbcOVRMJgJ4a2H9Qly94UeUesPwf8bfWCxtiB4l5rxLnCB2aLTuUf/djcuD5/VrNPY1pRU7DA==} @@ -4246,12 +4229,12 @@ packages: resolution: {integrity: sha512-XltmO/029X76zi0LUFmhsnanhE2wnqH1xf+WBt5K8gumQA9LnrfwLgPxj+VA+mm6wQhy+PCp7H5SS0ZPu7F2Cw==} engines: {node: '>=10.0'} dependencies: - adm-zip: 0.5.14 + adm-zip: 0.5.15 archiver: 5.3.0 - axios: 1.7.3 + axios: 1.7.5 fast-glob: 3.3.2 https-proxy-agent: 5.0.1_supports-color@8.1.1 - ignore: 5.3.1 + ignore: 5.3.2 isomorphic-ws: 4.0.1_ws@7.5.10 js-yaml: 3.14.1 jwt-decode: 2.2.0 @@ -4337,8 +4320,8 @@ packages: '@sinonjs/commons': 3.0.1 dev: true - /@sinonjs/fake-timers/11.2.2: - resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==} + /@sinonjs/fake-timers/11.3.1: + resolution: {integrity: sha512-EVJO7nW5M/F5Tur0Rf2z/QoMo+1Ia963RiMtapiQrEWvY0iBUvADo8Beegwjpnle5BHkyHuoxSTW3jF43H1XRA==} dependencies: '@sinonjs/commons': 3.0.1 dev: true @@ -4368,8 +4351,8 @@ packages: type-detect: 4.1.0 dev: true - /@sinonjs/text-encoding/0.7.2: - resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} + /@sinonjs/text-encoding/0.7.3: + resolution: {integrity: sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==} /@szmarczak/http-timer/4.0.6: resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} @@ -4423,14 +4406,14 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 18.19.43 + '@types/node': 18.19.46 /@types/cacheable-request/6.0.3: resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 18.19.43 + '@types/node': 18.19.46 '@types/responselike': 1.0.3 dev: true @@ -4453,29 +4436,29 @@ packages: /@types/child-process-promise/2.2.6: resolution: {integrity: sha512-g0pOHijr6Trug43D2bV0PLSIsSHa/xHEES2HeX5BAlduq1vW0nZcq27Zeud5lgmNB+kPYYVqiMap32EHGTco/w==} dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.46 dev: true /@types/cli-progress/3.11.6: resolution: {integrity: sha512-cE3+jb9WRlu+uOSAugewNpITJDt1VF8dHOopPO4IABFc3SXYL5WE/+PTz/FCdZRRfIujiWW3n3aMbv1eIGVRWA==} dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.46 /@types/connect/3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.46 /@types/cors/2.8.17: resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.46 dev: true /@types/express-serve-static-core/4.19.5: resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.46 '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -4495,14 +4478,14 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.46 dev: true /@types/glob/8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.19.43 + '@types/node': 18.19.46 /@types/http-cache-semantics/4.0.4: resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} @@ -4531,12 +4514,12 @@ packages: /@types/jsonwebtoken/9.0.1: resolution: {integrity: sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==} dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.46 /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.46 dev: true /@types/lodash/4.17.7: @@ -4560,29 +4543,29 @@ packages: /@types/mute-stream/0.0.1: resolution: {integrity: sha512-0yQLzYhCqGz7CQPE3iDmYjhb7KMBFOP+tBkyw+/Y2YyDI5wpS7itXXxneN1zSsUwWx3Ji6YiVYrhAnpQGS/vkw==} dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.46 /@types/mute-stream/0.0.4: resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.46 /@types/nedb/1.8.16: resolution: {integrity: sha512-ND+uzwAZk7ZI9byOvHGOcZe2R9XUcLF698yDJKn00trFvh+GaemkX3gQKCSKtObjDpv8Uuou+k8v4x4scPr4TA==} dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.46 dev: true /@types/needle/2.5.3: resolution: {integrity: sha512-RwgTwMRaedfyCBe5SSWMpm1Yqzc5UPZEMw0eAd09OSyV93nLRj9/evMGZmgFeHKzUOd4xxtHvgtc+rjcBjI1Qg==} dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.46 dev: false /@types/node-schedule/1.3.2: resolution: {integrity: sha512-Y0CqdAr+lCpArT8CJJjJq4U2v8Bb5e7ru2nV/NhDdaptCMCRdOL3Y7tAhen39HluQMaIKWvPbDuiFBUQpg7Srw==} dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.46 dev: true /@types/node/10.17.60: @@ -4594,15 +4577,15 @@ packages: dependencies: undici-types: 5.26.5 - /@types/node/18.19.43: - resolution: {integrity: sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==} + /@types/node/18.19.46: + resolution: {integrity: sha512-vnRgMS7W6cKa1/0G3/DTtQYpVrZ8c0Xm6UkLaVFrb9jtcVC3okokW09Ki1Qdrj9ISokszD69nY4WDLRlvHlhAA==} dependencies: undici-types: 5.26.5 - /@types/node/20.14.14: - resolution: {integrity: sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==} + /@types/node/20.16.1: + resolution: {integrity: sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ==} dependencies: - undici-types: 5.26.5 + undici-types: 6.19.8 /@types/normalize-package-data/2.4.4: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -4617,7 +4600,7 @@ packages: /@types/responselike/1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.46 dev: true /@types/rewire/2.5.30: @@ -4631,13 +4614,13 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.43 + '@types/node': 18.19.46 /@types/serve-static/1.15.7: resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/node': 18.19.43 + '@types/node': 18.19.46 '@types/send': 0.17.4 /@types/sinon-chai/3.2.5: @@ -4662,7 +4645,7 @@ packages: /@types/through/0.0.33: resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.46 dev: true /@types/uuid/8.3.0: @@ -4679,14 +4662,14 @@ packages: /@types/ws/8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.46 dev: true /@types/yauzl/2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.46 optional: true /@types/yoga-layout/1.9.2: @@ -4711,7 +4694,7 @@ packages: debug: 4.3.6 eslint: 8.57.0 graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 natural-compare-lite: 1.4.0 semver: 7.6.3 tsutils: 3.21.0_typescript@5.1.6 @@ -4821,19 +4804,19 @@ packages: resolution: {integrity: sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==} engines: {node: '>=8'} dependencies: - tslib: 2.6.3 + tslib: 2.7.0 /@wry/equality/0.5.7: resolution: {integrity: sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==} engines: {node: '>=8'} dependencies: - tslib: 2.6.3 + tslib: 2.7.0 /@wry/trie/0.3.2: resolution: {integrity: sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==} engines: {node: '>=8'} dependencies: - tslib: 2.6.3 + tslib: 2.7.0 /@xmldom/xmldom/0.8.10: resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} @@ -4882,8 +4865,8 @@ packages: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} - /adm-zip/0.5.14: - resolution: {integrity: sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==} + /adm-zip/0.5.15: + resolution: {integrity: sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==} engines: {node: '>=12.0'} dev: true @@ -5044,7 +5027,7 @@ packages: engines: {node: '>= 10'} dependencies: archiver-utils: 2.1.0 - async: 3.2.5 + async: 3.2.6 buffer-crc32: 0.2.13 readable-stream: 3.6.2 readdir-glob: 1.1.3 @@ -5056,7 +5039,7 @@ packages: engines: {node: '>= 10'} dependencies: archiver-utils: 2.1.0 - async: 3.2.5 + async: 3.2.6 buffer-crc32: 0.2.13 readable-stream: 3.6.2 readdir-glob: 1.1.3 @@ -5169,8 +5152,8 @@ packages: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} - /async/3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + /async/3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} /asynckit/0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -5198,8 +5181,8 @@ packages: fsevents: 2.3.2 dev: false - /aws-sdk/2.1667.0: - resolution: {integrity: sha512-hE4FmdZRMc3bYeC5LUAAU/ryYpjhEm1xdi4aVtUiZ14rrfMd0li6XQIM00a9ctZwDJpwJppcSXfDj6bVBCzvXQ==} + /aws-sdk/2.1683.0: + resolution: {integrity: sha512-uy53mN2oHU0Jx5tkH7qG6h/42DeMAQD5jMi/6294hVgGCa29MK/ZiFIOdkEJNS9tbB03RTabg+5i4c6DxBpG8g==} engines: {node: '>= 10.0.0'} requiresBuild: true dependencies: @@ -5228,8 +5211,8 @@ packages: uuid: 3.3.2 xml2js: 0.4.19 - /axios/1.7.3: - resolution: {integrity: sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==} + /axios/1.7.5: + resolution: {integrity: sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==} dependencies: follow-redirects: 1.15.6 form-data: 4.0.0 @@ -5317,8 +5300,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001649 - electron-to-chromium: 1.5.4 + caniuse-lite: 1.0.30001653 + electron-to-chromium: 1.5.13 node-releases: 2.0.18 update-browserslist-db: 1.1.0_browserslist@4.23.3 dev: true @@ -5433,8 +5416,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - /caniuse-lite/1.0.30001649: - resolution: {integrity: sha512-fJegqZZ0ZX8HOWr6rcafGr72+xcgJKI9oWfDW5DrD7ExUtgZC7a7R7ZYmZqplh7XDocFdGeIFn7roAxhOeYrPQ==} + /caniuse-lite/1.0.30001653: + resolution: {integrity: sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==} dev: true /cardinal/2.1.1: @@ -5456,7 +5439,7 @@ packages: '@aws-cdk/cloud-assembly-schema': 2.39.1 '@aws-cdk/cx-api': 2.39.1 archiver: 5.3.2 - aws-sdk: 2.1667.0 + aws-sdk: 2.1683.0 glob: 7.2.3 mime: 2.6.0 yargs: 16.2.0 @@ -5471,7 +5454,7 @@ packages: '@cdktf/hcl2cdk': 0.19.2 '@cdktf/hcl2json': 0.19.2 '@inquirer/prompts': 2.3.1 - '@sentry/node': 7.118.0 + '@sentry/node': 7.119.0 cdktf: 0.19.2_constructs@10.3.0 ci-info: 3.9.0 codemaker: 1.102.0 @@ -5480,7 +5463,7 @@ packages: https-proxy-agent: 5.0.1 ink-select-input: 4.2.2_ink@3.2.0+react@17.0.2 ink-table: 3.1.0_ink@3.2.0+react@17.0.2 - jsii: 5.4.31 + jsii: 5.5.1 jsii-pacmak: 1.102.0 minimatch: 5.1.6 node-fetch: 2.7.0 @@ -5507,10 +5490,7 @@ packages: peerDependencies: constructs: ^10.0.25 dependencies: - archiver: 5.3.2 constructs: 10.3.0 - json-stable-stringify: 1.1.1 - semver: 7.6.3 bundledDependencies: - archiver - json-stable-stringify @@ -6079,15 +6059,15 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.25.0 + '@babel/runtime': 7.25.4 dev: true /date-format/4.0.14: resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} engines: {node: '>=4.0'} - /dayjs/1.11.12: - resolution: {integrity: sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==} + /dayjs/1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} dev: true /debug/2.6.9: @@ -6402,7 +6382,7 @@ packages: dependencies: semver: 7.6.3 shelljs: 0.8.5 - typescript: 5.6.0-dev.20240819 + typescript: 5.7.0-dev.20240827 /duration/0.2.2: resolution: {integrity: sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==} @@ -6433,8 +6413,8 @@ packages: dependencies: jake: 10.9.2 - /electron-to-chromium/1.5.4: - resolution: {integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==} + /electron-to-chromium/1.5.13: + resolution: {integrity: sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==} dev: true /emoji-regex/7.0.3: @@ -6650,11 +6630,11 @@ packages: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 - is-core-module: 2.15.0 + is-core-module: 2.15.1 resolve: 1.22.8 - /eslint-module-utils/2.8.1_eslint@8.57.0: - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + /eslint-module-utils/2.8.2_eslint@8.57.0: + resolution: {integrity: sha512-3XnC5fDyc8M4J2E8pt8pmSVRX2M+5yWMCfI/kDZwauQeFgzQOuhcRBFKjTeJagqgk4sFKxe1mvNVnaWwImx/Tg==} engines: {node: '>=4'} peerDependencies: eslint: '*' @@ -6679,9 +6659,9 @@ packages: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1_eslint@8.57.0 + eslint-module-utils: 2.8.2_eslint@8.57.0 hasown: 2.0.2 - is-core-module: 2.15.0 + is-core-module: 2.15.1 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.8 @@ -6850,7 +6830,7 @@ packages: glob-parent: 6.0.2 globals: 13.24.0 graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -7084,19 +7064,19 @@ packages: dependencies: '@types/chai': 4.2.18 '@types/lodash': 4.17.7 - '@types/node': 18.19.43 + '@types/node': 18.19.46 '@types/sinon': 10.0.0 lodash: 4.17.21 mock-stdin: 1.0.0 - nock: 13.5.4 + nock: 13.5.5 sinon: 16.1.3 stdout-stderr: 0.1.13 transitivePeerDependencies: - supports-color dev: true - /fast-check/3.20.0: - resolution: {integrity: sha512-pZIjqLpOZgdSLecec4GKC3Zq5702MZ34upMKxojnNVSWA0K64V3pXOBT1Wdsrc3AphLtzRBbsi8bRWF4TUGmUg==} + /fast-check/3.22.0: + resolution: {integrity: sha512-8HKz3qXqnHYp/VCNn2qfjHdAdcI8zcSqOyX64GOMukp7SL2bfzfeDKjSd+UyECtejccaZv3LcvZTm9YDD22iCQ==} engines: {node: '>=8.0.0'} dependencies: pure-rand: 6.1.0 @@ -7115,7 +7095,7 @@ packages: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.8 /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -7328,8 +7308,8 @@ packages: signal-exit: 3.0.7 dev: true - /foreground-child/3.2.1: - resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} + /foreground-child/3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 @@ -7423,7 +7403,7 @@ packages: deferred: 0.7.11 es5-ext: 0.10.64 event-emitter: 0.3.5 - ignore: 5.3.1 + ignore: 5.3.2 memoizee: 0.4.17 type: 2.7.3 dev: true @@ -7543,7 +7523,7 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true dependencies: - foreground-child: 3.2.1 + foreground-child: 3.3.0 jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 @@ -7614,7 +7594,7 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.1 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 @@ -7671,7 +7651,7 @@ packages: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: graphql: 16.9.0 - tslib: 2.6.3 + tslib: 2.7.0 dev: false /graphql-subscriptions/2.0.0_graphql@16.9.0: @@ -7690,7 +7670,7 @@ packages: graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: graphql: 16.9.0 - tslib: 2.6.3 + tslib: 2.7.0 /graphql/16.9.0: resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} @@ -7849,8 +7829,8 @@ packages: engines: {node: '>= 4'} dev: true - /ignore/5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + /ignore/5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} /immediate/3.0.6: @@ -8103,8 +8083,8 @@ packages: dependencies: ci-info: 2.0.0 - /is-core-module/2.15.0: - resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} + /is-core-module/2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} engines: {node: '>= 0.4'} dependencies: hasown: 2.0.2 @@ -8388,7 +8368,7 @@ packages: engines: {node: '>=10'} hasBin: true dependencies: - async: 3.2.5 + async: 3.2.6 chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 @@ -8420,8 +8400,8 @@ packages: dependencies: argparse: 2.0.1 - /jsbi/3.2.5: - resolution: {integrity: sha512-aBE4n43IPvjaddScbvWRA2YlTzKEynHzu7MqOyTipdHucf/VxS63ViCjxYRg86M8Rxwbt/GfzHl1kKERkt45fQ==} + /jsbi/4.3.0: + resolution: {integrity: sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==} dev: false /jsesc/2.5.2: @@ -8449,7 +8429,7 @@ packages: xmlbuilder: 15.1.1 yargs: 16.2.0 - /jsii-pacmak/1.102.0_jsii-rosetta@5.4.29: + /jsii-pacmak/1.102.0_jsii-rosetta@5.5.1: resolution: {integrity: sha512-3/nqBYNH8n/5IWI0sBFBYl1yATokEDUDQtYFLjzk7oXNWpUJ23/encI78Cs55ZS6UXcfWN3xczGLqCWnsgEpnw==} engines: {node: '>= 14.17.0'} hasBin: true @@ -8464,7 +8444,7 @@ packages: escape-string-regexp: 4.0.0 fs-extra: 10.1.0 jsii-reflect: 1.102.0 - jsii-rosetta: 5.4.29 + jsii-rosetta: 5.5.1 semver: 7.6.3 spdx-license-list: 6.9.0 xmlbuilder: 15.1.1 @@ -8482,8 +8462,8 @@ packages: oo-ascii-tree: 1.102.0 yargs: 16.2.0 - /jsii-rosetta/5.4.29: - resolution: {integrity: sha512-6/eQFAS+O1szcdczogAn+P6yqjJu88kqZbpGPL0Ks9LxA94EbwNxiAPwsh1g3GvY+ETDVKfND7iEE0tiVpvTsA==} + /jsii-rosetta/5.5.1: + resolution: {integrity: sha512-7rLkwjtEKZ/lgxgu53XIx42KzadKosx+tajMPqNKvBGT21XhV9+pr60uBJ/aX+wJ85S49dlF3D0P3ujKK3jgwg==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: @@ -8493,31 +8473,31 @@ packages: chalk: 4.1.2 commonmark: 0.31.1 fast-glob: 3.3.2 - jsii: 5.4.31 + jsii: 5.5.1 semver: 7.6.3 semver-intersect: 1.5.0 stream-json: 1.8.0 - typescript: 5.4.5 + typescript: 5.5.4 workerpool: 6.5.1 yargs: 17.7.2 transitivePeerDependencies: - supports-color - /jsii-srcmak/0.1.1204: - resolution: {integrity: sha512-mPVD+bEnikHP6ssZ5cRqx+DirjV9/LvnPiunMko5MQDrLeyVdGYLi6kQ4QDF4uMw08oPaXXkhL8EhlZwp4tTDg==} + /jsii-srcmak/0.1.1226: + resolution: {integrity: sha512-8cn7ws1rgc3B1ONT0Fsf7geowpdABVB1sNBa19x9NG8MiEGo/t1S4wG2EY6PGwYIEr5zwBnQyIY6uVyt26vbSg==} hasBin: true dependencies: fs-extra: 9.1.0 - jsii: 5.4.31 - jsii-pacmak: 1.102.0_jsii-rosetta@5.4.29 - jsii-rosetta: 5.4.29 + jsii: 5.5.1 + jsii-pacmak: 1.102.0_jsii-rosetta@5.5.1 + jsii-rosetta: 5.5.1 ncp: 2.0.0 yargs: 17.7.2 transitivePeerDependencies: - supports-color - /jsii/5.4.31: - resolution: {integrity: sha512-qxiV/NMucgvHHupZJ36QACejcgZ3qY1FzjVHMOBmDHm+dISZ39p7dH7Hiq2ErMEwCDzdvQgR1OwCsUnrBH6oVQ==} + /jsii/5.5.1: + resolution: {integrity: sha512-YEkXUyCLU97geGu0pv5l2gP1P1S0ZMvanYI4FKvmsSHCtNXV//jIBI0Q80yjdUi7k5XQL1ECs+m4+IZHAEb92w==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: @@ -8532,7 +8512,7 @@ packages: semver-intersect: 1.5.0 sort-json: 2.0.1 spdx-license-list: 6.9.0 - typescript: 5.4.5 + typescript: 5.5.4 yargs: 17.7.2 transitivePeerDependencies: - supports-color @@ -8575,15 +8555,6 @@ packages: /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - /json-stable-stringify/1.1.1: - resolution: {integrity: sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - isarray: 2.0.5 - jsonify: 0.0.1 - object-keys: 1.1.1 - /json-stringify-safe/5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true @@ -8612,13 +8583,6 @@ packages: optionalDependencies: graceful-fs: 4.2.11 - /jsonify/0.0.1: - resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} - - /jsonschema/1.4.1: - resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} - dev: false - /jsonwebtoken/8.5.1: resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} engines: {node: '>=4', npm: '>=1.4.28'} @@ -9031,8 +8995,8 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} - /micromatch/4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + /micromatch/4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} dependencies: braces: 3.0.3 @@ -9228,8 +9192,8 @@ packages: /ms/2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /multipasta/0.2.4: - resolution: {integrity: sha512-uS6VKZou4iDU4evtrNKGvRqgqkFtPdjG/ql9XDICfnzKEedgf0OZ+oEhM0ps0FL5IVFhkIzOBgLV/KpEEJMthw==} + /multipasta/0.2.5: + resolution: {integrity: sha512-c8eMDb1WwZcE02WVjHoOmUVk7fnKU/RmUcosHACglrWAuPQsEJv+E8430sXj6jNc1jHw0zrS16aCjQh4BcEb4A==} dev: false /mustache/4.1.0: @@ -9317,7 +9281,7 @@ packages: dependencies: '@sinonjs/commons': 1.8.6 '@sinonjs/fake-timers': 6.0.1 - '@sinonjs/text-encoding': 0.7.2 + '@sinonjs/text-encoding': 0.7.3 just-extend: 4.2.1 path-to-regexp: 1.8.0 @@ -9325,8 +9289,8 @@ packages: resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==} dependencies: '@sinonjs/commons': 3.0.1 - '@sinonjs/fake-timers': 11.2.2 - '@sinonjs/text-encoding': 0.7.2 + '@sinonjs/fake-timers': 11.3.1 + '@sinonjs/text-encoding': 0.7.3 just-extend: 6.2.0 path-to-regexp: 6.2.2 dev: true @@ -9344,8 +9308,8 @@ packages: - supports-color dev: true - /nock/13.5.4: - resolution: {integrity: sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==} + /nock/13.5.5: + resolution: {integrity: sha512-XKYnqUrCwXC8DGG1xX4YH5yNIrlh9c065uaMZZHUoeUUINTOyt+x/G+ezYk0Ft6ExSREVIs+qBJDK503viTfFA==} engines: {node: '>= 10.13'} dependencies: debug: 4.3.6 @@ -9355,16 +9319,12 @@ packages: - supports-color dev: true - /node-abi/3.65.0: - resolution: {integrity: sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==} + /node-abi/3.67.0: + resolution: {integrity: sha512-bLn/fU/ALVBE9wj+p4Y21ZJWYFjUXLXPi/IewyLZkx3ApxKDNBWCKdReeKOtD8dWpOdDCeMyLh6ZewzcLsG2Nw==} engines: {node: '>=10'} dependencies: semver: 7.6.3 - /node-abort-controller/3.1.1: - resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} - dev: false - /node-addon-api/7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} dev: false @@ -9958,7 +9918,7 @@ packages: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 3.65.0 + node-abi: 3.67.0 pump: 3.0.0 rc: 1.2.8 simple-get: 4.0.1 @@ -9990,8 +9950,8 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - /priorityqueuejs/1.0.0: - resolution: {integrity: sha512-lg++21mreCEOuGWTbO5DnJKAdxfjrdN0S9ysoW9SzdSJvbkWpkaDdpG/cdsPCsEnoLUwmd9m3WcZhngW7yKA2g==} + /priorityqueuejs/2.0.0: + resolution: {integrity: sha512-19BMarhgpq3x4ccvVi8k2QpJZcymo/iFUcrhPd4V96kYGovOdTsWwy7fxChYi4QY+m2EnGBWSX9Buakz+tWNQQ==} dev: false /process-nextick-args/2.0.1: @@ -10317,7 +10277,7 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: - is-core-module: 2.15.0 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -10366,7 +10326,7 @@ packages: dependencies: debug: 4.3.6 rhea: 3.0.2 - tslib: 2.6.3 + tslib: 2.7.0 transitivePeerDependencies: - supports-color dev: false @@ -10437,7 +10397,7 @@ packages: /rxjs/7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.6.3 + tslib: 2.7.0 dev: true /safe-array-concat/1.1.2: @@ -10579,7 +10539,7 @@ packages: ajv: 8.17.1 ajv-formats: 2.1.1 archiver: 5.3.0 - aws-sdk: 2.1667.0 + aws-sdk: 2.1683.0 bluebird: 3.7.2 cachedir: 2.4.0 chalk: 4.1.2 @@ -10587,7 +10547,7 @@ packages: ci-info: 3.9.0 cli-progress-footer: 2.3.3 d: 1.0.2 - dayjs: 1.11.12 + dayjs: 1.11.13 decompress: 4.2.1 dotenv: 10.0.0 dotenv-expand: 5.1.0 @@ -10607,7 +10567,7 @@ packages: json-refs: 3.0.15_supports-color@8.1.1 lodash: 4.17.21 memoizee: 0.4.17 - micromatch: 4.0.7 + micromatch: 4.0.8 node-fetch: 2.7.0 npm-registry-utilities: 1.0.0 object-hash: 2.2.0 @@ -10865,7 +10825,7 @@ packages: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.18 + spdx-license-ids: 3.0.20 dev: true /spdx-exceptions/2.5.0: @@ -10876,11 +10836,11 @@ packages: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.18 + spdx-license-ids: 3.0.20 dev: true - /spdx-license-ids/3.0.18: - resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} + /spdx-license-ids/3.0.20: + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} dev: true /spdx-license-list/6.9.0: @@ -11338,7 +11298,7 @@ packages: resolution: {integrity: sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==} engines: {node: '>=8'} dependencies: - tslib: 2.6.3 + tslib: 2.7.0 /ts-morph/19.0.0: resolution: {integrity: sha512-D6qcpiJdn46tUqV45vr5UGM2dnIEuTGNxVhg0sk5NX11orcouwj6i1bMqZIz2mZTZB1Hcgy7C3oEVhAT+f6mbQ==} @@ -11347,7 +11307,7 @@ packages: code-block-writer: 12.0.0 dev: false - /ts-node/10.9.2_prqahbuxbjzfz737e746ioxvhu: + /ts-node/10.9.2_lkkcy4kiv3gczc6zag7kwihdkm: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -11366,7 +11326,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.43 + '@types/node': 18.19.46 acorn: 8.12.1 acorn-walk: 8.3.3 arg: 4.1.3 @@ -11413,8 +11373,8 @@ packages: /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - /tslib/2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + /tslib/2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} /tsutils/3.21.0_typescript@5.1.6: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -11547,13 +11507,13 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript/5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + /typescript/5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} hasBin: true - /typescript/5.6.0-dev.20240819: - resolution: {integrity: sha512-uNOMaNm8jBELjhuXZG5tSS6Pa6O/Wf89hawKkWaZcZvbkgkY2ykvNTNrkCP7QCQTSS3jwEVvd+pRhxJPxUeG4g==} + /typescript/5.7.0-dev.20240827: + resolution: {integrity: sha512-qNwNQBg18O4Z5RRGb07O562OpDlAVlytNcKfqcx8JQRJcs3p/KLHXjr0FbUbJ3SKoxA2vaQ3Zt89YLWHuCXzUw==} engines: {node: '>=14.17'} hasBin: true @@ -11575,8 +11535,11 @@ packages: /undici-types/5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - /undici/6.19.5: - resolution: {integrity: sha512-LryC15SWzqQsREHIOUybavaIHF5IoL0dJ9aWWxL/PgT1KfqAW5225FZpDUFlt9xiDMS2/S7DOKhFWA7RLksWdg==} + /undici-types/6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + /undici/6.19.8: + resolution: {integrity: sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==} engines: {node: '>=18.17'} dev: false @@ -11586,10 +11549,6 @@ packages: type: 2.7.3 dev: true - /universal-user-agent/6.0.1: - resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - dev: false - /universalify/0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} diff --git a/packages/framework-core/src/booster-delete-event-dispatcher.ts b/packages/framework-core/src/booster-delete-event-dispatcher.ts new file mode 100644 index 000000000..2f92c7e54 --- /dev/null +++ b/packages/framework-core/src/booster-delete-event-dispatcher.ts @@ -0,0 +1,21 @@ +import { BoosterConfig, EventDeleteParameters } from '@boostercloud/framework-types' +import { ReadModelStore } from './services/read-model-store' + +export class BoosterDeleteEventDispatcher { + public static async deleteEvent(config: BoosterConfig, parameters: EventDeleteParameters): Promise { + const readModelStore = new ReadModelStore(config) + const events = await config.provider.events.findDeletableEvent(config, parameters) + if (!events || events.length === 0) { + return false + } + for (const event of events) { + const snapshots = await config.provider.events.findDeletableSnapshot(config, event) + for (const snapshot of snapshots) { + await readModelStore.project(snapshot, true) + } + await config.provider.events.deleteSnapshot(config, snapshots) + } + await config.provider.events.deleteEvent(config, events) + return true + } +} diff --git a/packages/framework-core/src/booster-event-processor.ts b/packages/framework-core/src/booster-event-processor.ts index 79dbb2a36..9abb8ec2d 100644 --- a/packages/framework-core/src/booster-event-processor.ts +++ b/packages/framework-core/src/booster-event-processor.ts @@ -127,6 +127,8 @@ export class BoosterEventProcessor { ): Promise { const register = new Register(eventEnvelope.requestID, {}, RegisterHandler.flush, eventEnvelope.currentUser) try { + const logger = getLogger(config, 'BoosterEventProcessor#handleEvent') + logger.debug('Calling "handle" method on event handler: ', eventHandler) await eventHandler.handle(eventInstance, register) } catch (e) { const globalErrorDispatcher = new BoosterGlobalErrorDispatcher(config) diff --git a/packages/framework-core/src/booster.ts b/packages/framework-core/src/booster.ts index a21fa5665..eec3dc0b4 100644 --- a/packages/framework-core/src/booster.ts +++ b/packages/framework-core/src/booster.ts @@ -4,6 +4,7 @@ import { BoosterConfigTag, Class, EntityInterface, + EventDeleteParameters, EventSearchParameters, EventSearchResponse, PaginatedEntitiesIdsResult, @@ -21,6 +22,7 @@ import { JwksUriTokenVerifier, JWT_ENV_VARS } from './services/token-verifiers' import { BoosterAuthorizer } from './booster-authorizer' import { BoosterEntityTouched } from './core-concepts/touch-entity/events/booster-entity-touched' import { readModelSearcher } from './services/read-model-searcher' +import { BoosterDeleteEventDispatcher } from './booster-delete-event-dispatcher' import { eventSearch } from './booster-event-search' import { Effect, pipe } from 'effect' import { Command } from '@effect/cli' @@ -117,6 +119,10 @@ export class Booster { return await this.config.provider.events.searchEntitiesIDs(this.config, limit, afterCursor, entityTypeName) } + public static async deleteEvent(parameters: EventDeleteParameters): Promise { + return await BoosterDeleteEventDispatcher.deleteEvent(this.config, parameters) + } + /** * Fetches the last known version of an entity * @param entityClass Name of the entity class diff --git a/packages/framework-core/src/decorators/projects.ts b/packages/framework-core/src/decorators/projects.ts index 11e5db474..55203f8ed 100644 --- a/packages/framework-core/src/decorators/projects.ts +++ b/packages/framework-core/src/decorators/projects.ts @@ -2,6 +2,7 @@ import { Booster } from '../booster' import { Class, EntityInterface, + ProjectionInfo, ProjectionMetadata, ProjectionResult, ReadModelInterface, @@ -20,10 +21,16 @@ type JoinKeyType( +export function Projects< + TEntity extends EntityInterface, + TJoinKey extends keyof TEntity, + TReadModel extends ReadModelInterface +>( originEntity: Class, - joinKey: JoinKeyType + joinKey: JoinKeyType, + unProject?: UnprojectionMethod> ): ( readModelClass: Class, methodName: string, @@ -36,6 +43,14 @@ export function Projects registerProjection(originEntity.name, projectionMetadata) + if (unProject) { + const unProjectionMetadata = { + joinKey, + class: readModelClass, + methodName: unProject.name, + } as ProjectionMetadata + registerUnProjection(originEntity.name, unProjectionMetadata) + } } } @@ -44,15 +59,45 @@ function registerProjection( projectionMetadata: ProjectionMetadata ): void { Booster.configureCurrentEnv((config): void => { - const entityProjections = config.projections[originName] || [] - if (entityProjections.indexOf(projectionMetadata) < 0) { - // Skip duplicate registrations - entityProjections.push(projectionMetadata) - config.projections[originName] = entityProjections - } + configure(originName, projectionMetadata, config.projections) }) } +function registerUnProjection( + originName: string, + projectionMetadata: ProjectionMetadata +): void { + Booster.configureCurrentEnv((config): void => { + configure(originName, projectionMetadata, config.unProjections) + }) +} + +function configure( + originName: string, + projectionMetadata: ProjectionMetadata, + configuration: Record>> +): void { + const entityProjections = configuration[originName] || [] + if (entityProjections.indexOf(projectionMetadata) < 0) { + // Skip duplicate registrations + entityProjections.push(projectionMetadata) + configuration[originName] = entityProjections + } +} + +type ProjectionMethodDefinitionForArray = ( + _: TEntity, + readModelID: UUID, + readModel?: TReadModel, + projectionInfo?: ProjectionInfo +) => ProjectionResult + +type ProjectionMethodDefinition = ( + _: TEntity, + readModel?: TReadModel, + projectionInfo?: ProjectionInfo +) => ProjectionResult + type ProjectionMethod< TEntity extends EntityInterface, TReadModel extends ReadModelInterface, @@ -79,3 +124,7 @@ type ProjectionMethodWithEntityReadModelIdAndReadModel< TEntity extends EntityInterface, TReadModel extends ReadModelInterface > = TypedPropertyDescriptor<(_: TEntity, readModelID: UUID, readModel?: TReadModel) => ProjectionResult> + +type UnprojectionMethod = TPropType extends Array + ? ProjectionMethodDefinitionForArray + : ProjectionMethodDefinition diff --git a/packages/framework-core/src/services/graphql/query-generators/graphql-query-events-generator.ts b/packages/framework-core/src/services/graphql/query-generators/graphql-query-events-generator.ts index 7c2013c3a..1c7e2ed37 100644 --- a/packages/framework-core/src/services/graphql/query-generators/graphql-query-events-generator.ts +++ b/packages/framework-core/src/services/graphql/query-generators/graphql-query-events-generator.ts @@ -72,6 +72,7 @@ export class GraphqlQueryEventsGenerator { }, createdAt: { type: new GraphQLNonNull(GraphQLString) }, value: { type: new GraphQLNonNull(GraphQLJSON) }, + deletedAt: { type: GraphQLString }, }, }) ) diff --git a/packages/framework-core/src/services/raw-events-parser.ts b/packages/framework-core/src/services/raw-events-parser.ts index 1a470351e..0715b2349 100644 --- a/packages/framework-core/src/services/raw-events-parser.ts +++ b/packages/framework-core/src/services/raw-events-parser.ts @@ -16,7 +16,10 @@ export class RawEventsParser { callbackFn: EventsStreamingCallback ): Promise { const logger = getLogger(config, 'RawEventsParser#streamPerEntityEvents') - const eventEnvelopesPerEntity = eventEnvelopes.filter(isEventKind).reduce(groupByEntity, {}) + const eventEnvelopesPerEntity = eventEnvelopes + .filter(isEventKind) + .filter(isNotDeleted) + .reduce(groupByEntity, {}) const processes = Object.values(eventEnvelopesPerEntity).map(async (entityEnvelopes) => { // All envelopes are for the same entity type/ID, so we get the first one to get those values @@ -43,6 +46,10 @@ function isEventKind(envelope: EventEnvelope): boolean { return envelope.kind == 'event' } +function isNotDeleted(envelope: EventEnvelope): boolean { + return !envelope?.deletedAt +} + function groupByEntity(envelopesPerEntity: EnvelopesPerEntity, envelope: EventEnvelope): EnvelopesPerEntity { const entityKey = `${envelope.entityTypeName}-${envelope.entityID}` if (!envelopesPerEntity[entityKey]) { diff --git a/packages/framework-core/src/services/read-model-store.ts b/packages/framework-core/src/services/read-model-store.ts index d83e5b323..2fbbf7f05 100644 --- a/packages/framework-core/src/services/read-model-store.ts +++ b/packages/framework-core/src/services/read-model-store.ts @@ -8,6 +8,8 @@ import { FilterFor, OptimisticConcurrencyUnexpectedVersionError, ProjectionGlobalError, + ProjectionInfo, + ProjectionInfoReason, ProjectionMetadata, ProjectionResult, ReadModelAction, @@ -17,16 +19,18 @@ import { UUID, } from '@boostercloud/framework-types' import { createInstance, getLogger, Promises, retryIfError } from '@boostercloud/framework-common-helpers' +import { BoosterGlobalErrorDispatcher } from '../booster-global-error-dispatcher' import { readModelSearcher } from './read-model-searcher' import { ReadModelSchemaMigrator } from '../read-model-schema-migrator' -import { BoosterGlobalErrorDispatcher } from '../booster-global-error-dispatcher' export class ReadModelStore { public constructor(readonly config: BoosterConfig) {} - public async project(entitySnapshotEnvelope: EntitySnapshotEnvelope): Promise { + public async project(entitySnapshotEnvelope: EntitySnapshotEnvelope, deleteEvent = false): Promise { const logger = getLogger(this.config, 'ReadModelStore#project') - const projections = this.config.projections[entitySnapshotEnvelope.entityTypeName] + const projections = deleteEvent + ? this.getUnProjections(entitySnapshotEnvelope) + : this.entityProjections(entitySnapshotEnvelope) if (!projections) { logger.debug(`No projections found for entity ${entitySnapshotEnvelope.entityTypeName}. Skipping...`) return @@ -51,6 +55,7 @@ export class ReadModelStore { entityMetadata, entitySnapshotEnvelope, readModelName, + deleteEvent, sequenceKey ) } @@ -132,6 +137,57 @@ export class ReadModelStore { } } + private getUnProjections( + entitySnapshotEnvelope: EntitySnapshotEnvelope + ): Array> { + const unProjections: Array> = + this.entityUnProjections(entitySnapshotEnvelope) + const projections: Array> = + this.entityProjections(entitySnapshotEnvelope) + if (projections?.length > 0) { + if (!unProjections) { + throw new Error(`Missing UnProjections for entity ${entitySnapshotEnvelope.entityTypeName}`) + } + const missingProjection = this.findFirstMissingProjection(projections, unProjections) + if (missingProjection) { + throw new Error( + `Missing UnProjection for ReadModel ${missingProjection.class.name} with joinKey ${missingProjection.joinKey} for entity ${entitySnapshotEnvelope.entityTypeName}` + ) + } + } + return unProjections + } + + private entityProjections( + entitySnapshotEnvelope: EntitySnapshotEnvelope + ): Array> { + return this.config.projections[entitySnapshotEnvelope.entityTypeName] + } + + private entityUnProjections( + entitySnapshotEnvelope: EntitySnapshotEnvelope + ): Array> { + return this.config.unProjections[entitySnapshotEnvelope.entityTypeName] + } + + private findFirstMissingProjection( + sources: Array>, + to: Array> + ): ProjectionMetadata | undefined { + return sources.find( + (source: ProjectionMetadata) => !this.someProjection(to, source) + ) + } + + private someProjection( + sources: Array>, + to: ProjectionMetadata + ): boolean { + const contains = (source: ProjectionMetadata) => + source.class.name === to.class.name && source.joinKey.toString() === to.joinKey.toString() + return sources.some(contains) + } + private sequenceKeyForProjection( entity: EntityInterface, projectionMetadata: ProjectionMetadata @@ -150,6 +206,7 @@ export class ReadModelStore { entityMetadata: EntityMetadata, entitySnapshotEnvelope: EntitySnapshotEnvelope, readModelName: string, + deleteEvent: boolean, sequenceKey?: SequenceKey ): Promise> | undefined> { const currentReadModels: Array = await this.getReadModels( @@ -167,6 +224,7 @@ export class ReadModelStore { projectionMetadata, entityInstance, entityMetadata, + deleteEvent, currentReadModel ) existingReadModelsProjections.push(...newProjections) @@ -179,7 +237,8 @@ export class ReadModelStore { sequenceKey, projectionMetadata, entityInstance, - entityMetadata + entityMetadata, + deleteEvent ) return Promises.allSettledAndFulfilled(newProjections) } @@ -191,6 +250,7 @@ export class ReadModelStore { projectionMetadata: ProjectionMetadata, entityInstance: EntityInterface, entityMetadata: EntityMetadata, + deleteEvent: boolean, currentReadModel?: ReadModelInterface ): Promise>> { const projections: Array> = [] @@ -214,6 +274,7 @@ export class ReadModelStore { sequenceKey, entityInstance, projectionMetadata, + deleteEvent, readModelId, readModel ) @@ -228,6 +289,7 @@ export class ReadModelStore { sequenceKey, entityInstance, projectionMetadata, + deleteEvent, currentReadModel?.id, currentReadModel ) @@ -242,6 +304,7 @@ export class ReadModelStore { sequenceKey: SequenceKey | undefined, entityInstance: EntityInterface, projectionMetadata: ProjectionMetadata, + deleteEvent: boolean, readModelId?: UUID, currentReadModel?: ReadModelInterface ): Promise { @@ -259,6 +322,7 @@ export class ReadModelStore { entitySnapshotEnvelope, entityInstance, projectionMetadata, + deleteEvent, currentReadModel, entitySnapshotEnvelope, readModelId, @@ -285,6 +349,7 @@ export class ReadModelStore { entitySnapshotEnvelope: EntitySnapshotEnvelope, entity: EntityInterface, projectionMetadata: ProjectionMetadata, + deleteEvent: boolean, currentReadModel?: ReadModelInterface, lastProjectedEntity?: EntitySnapshotEnvelope, currentReadModelID?: UUID, @@ -319,13 +384,17 @@ export class ReadModelStore { const currentDatabaseVersion: number = migratedReadModel?.boosterMetadata?.version ?? 0 let newReadModel: any + const projectionInfo: ProjectionInfo = { + reason: deleteEvent ? ProjectionInfoReason.ENTITY_DELETED : ProjectionInfoReason.ENTITY_PROJECTED, + } try { newReadModel = await this.callProjectionFunction( entitySnapshotEnvelope, projectionMetadata, entity, migratedReadModel, - readModelID + readModelID, + projectionInfo ) } catch (e) { const globalErrorDispatcher = new BoosterGlobalErrorDispatcher(this.config) @@ -399,15 +468,16 @@ export class ReadModelStore { projectionMetadata: ProjectionMetadata, entity: EntityInterface, migratedReadModel: ReadModelInterface | undefined, - readModelID: UUID | undefined + readModelID: UUID | undefined, + projectionInfo: ProjectionInfo ): Promise | undefined> { try { const projectionMetadataJoinKey = projectionMetadata.joinKey const projectionFunction = this.getProjectionFunction(projectionMetadata) if (this.isJoinKeyByEntity(projectionMetadataJoinKey)) { return Array.isArray(entity[projectionMetadataJoinKey]) - ? projectionFunction(entity, readModelID, migratedReadModel || null) - : projectionFunction(entity, migratedReadModel || null) + ? projectionFunction(entity, readModelID, migratedReadModel || null, projectionInfo) + : projectionFunction(entity, migratedReadModel || null, projectionInfo) } return projectionFunction(entity, readModelID, migratedReadModel || null) } catch (e) { diff --git a/packages/framework-core/test/services/graphql/graphql-query-generator.test.ts b/packages/framework-core/test/services/graphql/graphql-query-generator.test.ts index b7189363c..eb9071369 100644 --- a/packages/framework-core/test/services/graphql/graphql-query-generator.test.ts +++ b/packages/framework-core/test/services/graphql/graphql-query-generator.test.ts @@ -527,7 +527,7 @@ describe('GraphQLQueryGenerator', () => { const returnElementType = (queryReturnType as GraphQLList).ofType expect(returnElementType.name).to.be.equal('EventQueryResponse') expect(new Set(Object.keys(returnElementType.getFields()))).to.be.deep.equal( - new Set(['type', 'entity', 'requestID', 'entityID', 'user', 'createdAt', 'value']) + new Set(['type', 'entity', 'requestID', 'entityID', 'user', 'createdAt', 'value', 'deletedAt']) ) const userType = returnElementType.getFields()['user'].type as GraphQLObjectType expect(new Set(Object.keys(userType.getFields()))).to.be.deep.equal(new Set(['id', 'username', 'roles'])) diff --git a/packages/framework-core/test/services/read-model-store.test.ts b/packages/framework-core/test/services/read-model-store.test.ts index 0987edb01..cb7969206 100644 --- a/packages/framework-core/test/services/read-model-store.test.ts +++ b/packages/framework-core/test/services/read-model-store.test.ts @@ -843,10 +843,12 @@ describe('ReadModelStore', () => { anEntitySnapshot, anEntityInstance, projectionMetadata, + false, undefined, anEntitySnapshot, 'joinColumnID', - readModelClassName === 'AnotherReadModel' ? { name: 'count', value: 123 } : undefined + readModelClassName === 'AnotherReadModel' ? { name: 'count', value: 123 } : undefined, + 1 ) } }) diff --git a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/delete.events.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/delete.events.integration.ts new file mode 100644 index 000000000..62b8e3e2c --- /dev/null +++ b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/delete.events.integration.ts @@ -0,0 +1,485 @@ +import { ApolloClient, ApolloQueryResult, gql, NormalizedCacheObject } from '@apollo/client' +import { internet, random } from 'faker' +import { expect } from '../../helper/expect' +import { waitForIt } from '../../helper/sleep' +import { applicationUnderTest } from './setup' +import { + EventSearchResponse, + EventTimeParameterFilter, + PaginatedEntitiesIdsResult, +} from '@boostercloud/framework-types' +import 'mocha' + +describe('Remove Events end-to-end tests', async () => { + if (process.env.TESTED_PROVIDER === 'AWS') { + console.log('****************** Warning **********************') + console.log('AWS provider does not support remove events so these tests are skipped for AWS') + console.log('*************************************************') + return + } + let anonymousClient: ApolloClient + let loggedClient: ApolloClient + let adminTokenClient: ApolloClient + let specialTokenClient: ApolloClient + const firstCartId = random.uuid() + const firstProductId = random.uuid() + const firstProductSku = random.uuid() + const secondProductId = random.uuid() + const secondProductSku = random.uuid() + + before(async () => { + anonymousClient = applicationUnderTest.graphql.client() + const userEmail = internet.email() + const userToken = applicationUnderTest.token.forUser(userEmail, 'UserWithEmail') + loggedClient = applicationUnderTest.graphql.client(userToken) + const adminToken = applicationUnderTest.token.forUser('admin@example.com', 'Admin') + adminTokenClient = applicationUnderTest.graphql.client(adminToken) + const tokenWithSpecialAccess = applicationUnderTest.token.forUser(userEmail, undefined, { + customClaims: { + specialReportAccess: 'true', + }, + }) + specialTokenClient = applicationUnderTest.graphql.client(tokenWithSpecialAccess) + }) + + it('When there are not events to delete', async () => { + const deleted = await deleteEvent(anonymousClient, '1', 'Product', '') + expect(deleted).to.be.false + }) + + describe('When there are events to delete', async () => { + let firstCartReadModel + let firstProduct + let firstProductBySkuReadModel + let firstProductUpdatesReadModel + let firstSpecialReportsReadModel + let secondProduct + let secondProductBySkuReadModel + let secondProductUpdatesReadModel + let secondSpecialReportsReadModel + let events: Array + let productEvent + let firstProductEvent: any + let secondProductEvent: any + let firstCartEvent: any + + it('Create a cart', async () => { + await createCart(anonymousClient, firstCartId, firstProductId) + firstCartReadModel = await getCart(anonymousClient, firstCartId) + expect(firstCartReadModel.id).to.be.eq(firstCartId) + }) + + it('and create a first product', async () => { + await createProduct(loggedClient, firstProductId, firstProductSku) + }) + + it('then the related ReadModels are created', async () => { + firstProduct = await getProduct(loggedClient, firstProductId) + expect(firstProduct.id).to.be.eq(firstProductId) + const firstProductBySkuReadModel = await getProductBySku(loggedClient, firstProductSku) + expect(firstProductBySkuReadModel.id).to.be.eq(firstProductSku) + const firstProductUpdatesReadModel = await getProductUpdates(adminTokenClient, firstProductId) + expect(firstProductUpdatesReadModel.id).to.be.eq(firstProductId) + const firstSpecialReportsReadModel = await getSpecialReportsReadModel(specialTokenClient, firstProductId) + expect(firstSpecialReportsReadModel.id).to.be.eq(firstProductId) + }) + + it('when a second product is created', async () => { + await createProduct(loggedClient, secondProductId, secondProductSku) + }) + + it('then the related ReadModels for the second product are created', async () => { + secondProduct = await getProduct(loggedClient, secondProductId) + expect(secondProduct.id).to.be.eq(secondProductId) + const secondProductBySkuReadModel = await getProductBySku(loggedClient, secondProductSku) + expect(secondProductBySkuReadModel.id).to.be.eq(secondProductSku) + const secondProductUpdatesReadModel = await getProductUpdates(adminTokenClient, secondProductId) + expect(secondProductUpdatesReadModel.id).to.be.eq(secondProductId) + const secondSpecialReportsReadModel = await getSpecialReportsReadModel(specialTokenClient, secondProductId) + expect(secondSpecialReportsReadModel.id).to.be.eq(secondProductId) + }) + + it('when find the event for the first product', async () => { + events = await queryProductByEntity(loggedClient, firstProductId) + productEvent = events.filter((event) => event.entityID === firstProductId) + firstProductEvent = productEvent[0] + }) + + it('and delete it', async () => { + const deleted = await deleteEvent( + anonymousClient, + firstProductEvent.entityID.toString(), + firstProductEvent.entity, + firstProductEvent.createdAt + ) + expect(deleted).to.be.true + }) + + it('when find the event for the first product after delete', async () => { + events = await queryProductByEntity(loggedClient, firstProductId) + productEvent = events.filter((event) => event.entityID === firstProductId) + firstProductEvent = productEvent[0] + }) + + it('then the first event is set as deleted', async () => { + expect(firstProductEvent.deletedAt).not.to.be.undefined + expect(firstProductEvent.value.productId).to.be.undefined + }) + + it('and there are not ReadModels for first product id', async () => { + firstProduct = await getProductUndefined(loggedClient, firstProductId) + expect(firstProduct).to.be.null + firstProductBySkuReadModel = await getProductBySkuUndefined(loggedClient, firstProductSku) + expect(firstProductBySkuReadModel).to.be.null + firstProductUpdatesReadModel = await getProductUpdatesUndefined(adminTokenClient, firstProductId) + expect(firstProductUpdatesReadModel).to.be.null + firstSpecialReportsReadModel = await getSpecialReportsReadModelUndefined(specialTokenClient, firstProductId) + expect(firstSpecialReportsReadModel).to.be.null + }) + + it('when find the event for the second product', async () => { + events = await queryProductByEntity(loggedClient, secondProductId) + productEvent = events.filter((event) => event.entityID === secondProductId) + secondProductEvent = productEvent[0] + }) + + it('then the second event is not changed', async () => { + expect(secondProductEvent.deletedAt).to.be.null + expect(secondProductEvent.value.productId).to.be.eq(secondProductId) + }) + + it('and ReadModels for second product id are not deleted', async () => { + secondProduct = await getProduct(loggedClient, secondProductId) + expect(secondProduct.id).to.be.eq(secondProductId) + secondProductBySkuReadModel = await getProductBySku(loggedClient, secondProductSku) + expect(secondProductBySkuReadModel.id).to.be.eq(secondProductSku) + secondProductUpdatesReadModel = await getProductUpdates(adminTokenClient, secondProductId) + expect(secondProductUpdatesReadModel.id).to.be.eq(secondProductId) + secondSpecialReportsReadModel = await getSpecialReportsReadModel(specialTokenClient, secondProductId) + expect(secondSpecialReportsReadModel.id).to.be.eq(secondProductId) + }) + + it('and there are not entities for first product but for product 2', async () => { + const productsEntities = await findEntities(loggedClient, 'Product') + expect(productsEntities.items.some((product) => product.entityID === firstProductId)).to.be.false + expect(productsEntities.items.some((product) => product.entityID === secondProductId)).to.be.true + }) + + it('when find the event for the cart', async () => { + events = await queryCartByEntity(loggedClient, firstCartId) + const cartEvent = events.filter((event) => event.entityID === firstCartId) + firstCartEvent = cartEvent[0] + }) + + it('then the cart event is not changed', async () => { + expect(firstCartEvent.deletedAt).to.be.null + expect(firstCartEvent.value.cartId).to.be.eq(firstCartId) + }) + + it('and ReadModels for the cart id are not deleted', async () => { + firstCartReadModel = await getCart(loggedClient, firstCartId) + expect(firstCartReadModel.id).to.be.eq(firstCartId) + }) + }) +}) + +async function createCart(client: ApolloClient, cartId: string, productId: string): Promise { + await client.mutate({ + variables: { + cartId: cartId, + productId: productId, + }, + mutation: gql` + mutation ChangeCartItem($cartId: ID!, $productId: ID!) { + ChangeCartItem(input: { cartId: $cartId, productId: $productId, quantity: 1 }) + } + `, + }) +} + +async function createProduct(client: ApolloClient, productId: string, sku: string): Promise { + await client.mutate({ + variables: { + productId: productId, + sku: sku, + }, + mutation: gql` + mutation CreateProduct($productId: ID!, $sku: String!) { + CreateProduct( + input: { + productID: $productId + sku: $sku + displayName: "any" + description: "any" + currency: "any" + priceInCents: 1 + } + ) + } + `, + }) +} + +async function getCart(client: ApolloClient, id: string): Promise { + const result = await waitForIt( + () => { + return client.query({ + variables: { + id: id, + }, + query: gql` + query CartReadModel($id: ID!) { + CartReadModel(id: $id) { + id + } + } + `, + }) + }, + (result) => { + const resultId = result?.data?.CartReadModel?.id + return resultId === id + } + ) + return result.data.CartReadModel +} + +async function waitForProduct( + client: ApolloClient, + id: string, + checkFunction: (result: any) => boolean | string +): Promise { + return await waitForIt(() => { + return client.query({ + variables: { + id: id, + }, + query: gql` + query ProductReadModel($id: ID!) { + ProductReadModel(id: $id) { + id + } + } + `, + }) + }, checkFunction) +} + +async function getProduct(client: ApolloClient, id: string): Promise { + const product = await waitForProduct(client, id, (result) => { + const resultId = result?.data?.ProductReadModel?.id + return resultId === id + }) + return product.data.ProductReadModel +} + +async function getProductUndefined(client: ApolloClient, id: string): Promise { + const product = await waitForProduct(client, id, (result) => { + const resultId = result?.data?.ProductReadModel + return resultId === null + }) + return product.data.ProductReadModel +} + +async function awaitForProductUpdates( + client: ApolloClient, + id: string, + checkResult: (result: any) => boolean | string +) { + return await waitForIt(() => { + return client.query({ + variables: { + id: id, + }, + query: gql` + query ProductUpdatesReadModel($id: ID!) { + ProductUpdatesReadModel(id: $id) { + id + } + } + `, + }) + }, checkResult) +} + +async function getProductUpdates(client: ApolloClient, id: string): Promise { + const result = await awaitForProductUpdates(client, id, (result) => { + const resultId = result?.data?.ProductUpdatesReadModel?.id + return resultId === id + }) + return result.data.ProductUpdatesReadModel +} + +async function getProductUpdatesUndefined(client: ApolloClient, id: string): Promise { + const result = await awaitForProductUpdates(client, id, (result) => { + const resultId = result?.data?.ProductUpdatesReadModel + return resultId === null + }) + return result.data.ProductUpdatesReadModel +} + +async function waitForProductBySku( + client: ApolloClient, + id: string, + checkResult: (result: any) => boolean | string +) { + return await waitForIt(() => { + return client.query({ + variables: { + id: id, + }, + query: gql` + query ProductsBySKU($id: ID!) { + ProductsBySKU(id: $id) { + id + } + } + `, + }) + }, checkResult) +} + +async function getProductBySku(client: ApolloClient, id: string): Promise { + const result = await waitForProductBySku(client, id, (result) => { + const resultId = result?.data?.ProductsBySKU?.id + return resultId === id + }) + return result.data.ProductsBySKU +} + +async function getProductBySkuUndefined(client: ApolloClient, id: string): Promise { + const result = await waitForProductBySku(client, id, (result) => { + const resultId = result?.data?.ProductsBySKU + return resultId === null + }) + return result.data.ProductsBySKU +} + +async function waitForSpecialReports( + client: ApolloClient, + id: string, + checkResult: (result: any) => boolean | string +) { + return await waitForIt(() => { + return client.query({ + variables: { + id: id, + }, + query: gql` + query SpecialReportsReadModel($id: ID!) { + SpecialReportsReadModel(id: $id) { + id + } + } + `, + }) + }, checkResult) +} + +async function getSpecialReportsReadModel(client: ApolloClient, id: string): Promise { + const result = await waitForSpecialReports(client, id, (result) => { + const resultId = result?.data?.SpecialReportsReadModel?.id + return resultId === id + }) + return result.data.SpecialReportsReadModel +} + +async function getSpecialReportsReadModelUndefined(client: ApolloClient, id: string): Promise { + const result = await waitForSpecialReports(client, id, (result) => { + const resultId = result?.data?.SpecialReportsReadModel + return resultId === null + }) + return result.data.SpecialReportsReadModel +} + +async function deleteEvent( + client: ApolloClient, + entityId: string, + entityTypeName: string, + createdAt: string +): Promise { + const result = await client.mutate({ + variables: { + entityId: entityId, + entityTypeName: entityTypeName, + createdAt: createdAt, + }, + mutation: gql` + mutation HardDelete($entityId: String!, $entityTypeName: String!, $createdAt: String!) { + HardDelete(input: { entityId: $entityId, entityTypeName: $entityTypeName, createdAt: $createdAt }) + } + `, + }) + return result?.data.HardDelete +} + +function queryByEntity( + client: ApolloClient, + entity: string, + timeFilters?: EventTimeParameterFilter, + entityID?: string, + limit?: number +): Promise> { + const queryTimeFilters = timeFilters ? `, from:"${timeFilters.from}" to:"${timeFilters.to}"` : '' + const queryEntityID = entityID ? `, entityID:"${entityID}"` : '' + const queryLimit = limit ? `, limit:${limit}` : '' + return client.query({ + query: gql` + query { + eventsByEntity(entity: ${entity}${queryEntityID}${queryTimeFilters}${queryLimit}) { + createdAt + entity + entityID + requestID + type + user { + id + roles + username + } + value + deletedAt + } + } + `, + }) +} + +async function queryProductByEntity(client: ApolloClient, entityID: string): Promise { + const result = await waitForIt( + () => queryByEntity(client, 'Product', undefined, entityID), + (result) => { + const events: Array = result.data['eventsByEntity'] + const found = events?.find((event) => event.entityID === entityID) + return found !== undefined + } + ) + return result.data['eventsByEntity'] +} + +async function queryCartByEntity(client: ApolloClient, entityID: string): Promise { + const result = await waitForIt( + () => queryByEntity(client, 'Cart', undefined, entityID), + (result) => { + const events: Array = result.data['eventsByEntity'] + const found = events?.find((event) => event.entityID === entityID) + return found !== undefined + } + ) + return result.data['eventsByEntity'] +} + +async function findEntities(client: ApolloClient, entityName: string): Promise { + const result = await client.mutate({ + variables: { + entityName: entityName, + limit: 99999, + }, + mutation: gql` + mutation EntitiesIdsFinder($entityName: String!, $limit: Float!) { + EntitiesIdsFinder(input: { entityName: $entityName, limit: $limit }) + } + `, + }) + return result?.data?.EntitiesIdsFinder +} diff --git a/packages/framework-integration-tests/src/commands/hard-delete.ts b/packages/framework-integration-tests/src/commands/hard-delete.ts new file mode 100644 index 000000000..405edbef3 --- /dev/null +++ b/packages/framework-integration-tests/src/commands/hard-delete.ts @@ -0,0 +1,18 @@ +import { Booster, Command } from '@boostercloud/framework-core' +import { EventDeleteParameters } from '@boostercloud/framework-types' + +@Command({ + authorize: 'all', +}) +export class HardDelete { + public constructor(readonly entityId: string, readonly entityTypeName: string, readonly createdAt: string) {} + + public static async handle(command: HardDelete): Promise { + const parameters: EventDeleteParameters = { + entityID: command.entityId, + entityTypeName: command.entityTypeName, + createdAt: command.createdAt, + } + return await Booster.deleteEvent(parameters) + } +} diff --git a/packages/framework-integration-tests/src/read-models/product-read-model.ts b/packages/framework-integration-tests/src/read-models/product-read-model.ts index 759e71db9..634dc6591 100644 --- a/packages/framework-integration-tests/src/read-models/product-read-model.ts +++ b/packages/framework-integration-tests/src/read-models/product-read-model.ts @@ -1,6 +1,12 @@ import { Projects, ReadModel } from '@boostercloud/framework-core' import { UserWithEmail } from '../roles' -import { ProjectionResult, ReadModelAction, UUID } from '@boostercloud/framework-types' +import { + ProjectionInfo, + ProjectionInfoReason, + ProjectionResult, + ReadModelAction, + UUID, +} from '@boostercloud/framework-types' import { Product, ProductType } from '../entities/product' import { Money } from '../common/money' import { Pack } from '../entities/pack' @@ -23,7 +29,7 @@ export class ProductReadModel { readonly packs?: Array ) {} - @Projects(Product, 'id') + @Projects(Product, 'id', ProductReadModel.unProjectWithProduct) public static updateWithProduct(product: Product): ProjectionResult { if (product.deleted) { return ReadModelAction.Delete @@ -43,12 +49,24 @@ export class ProductReadModel { } } - @Projects(Pack, 'products') + public static unProjectWithProduct( + _product: Product, + _currentProductReadModel?: ProductReadModel, + _projectionInfo?: ProjectionInfo + ): ProjectionResult { + return ReadModelAction.Delete + } + + @Projects(Pack, 'products', ProductReadModel.updateWithPack) public static updateWithPack( pack: Pack, readModelID: UUID, - currentProductReadModel?: ProductReadModel + currentProductReadModel?: ProductReadModel, + projectionInfo?: ProjectionInfo ): ProjectionResult { + if (projectionInfo?.reason === ProjectionInfoReason.ENTITY_DELETED) { + return ReadModelAction.Delete + } if (!currentProductReadModel) { return ReadModelAction.Nothing } else { diff --git a/packages/framework-integration-tests/src/read-models/product-updates-read-model.ts b/packages/framework-integration-tests/src/read-models/product-updates-read-model.ts index 90229454a..085777012 100644 --- a/packages/framework-integration-tests/src/read-models/product-updates-read-model.ts +++ b/packages/framework-integration-tests/src/read-models/product-updates-read-model.ts @@ -1,6 +1,12 @@ import { ReadModel, Projects } from '@boostercloud/framework-core' import { Admin } from '../roles' -import { ProjectionResult, UUID } from '@boostercloud/framework-types' +import { + ProjectionInfo, + ProjectionInfoReason, + ProjectionResult, + ReadModelAction, + UUID, +} from '@boostercloud/framework-types' import { Product } from '../entities/product' // This is an example read model for a possible admin-exclusive report to show last and previous updates to products @@ -15,11 +21,15 @@ export class ProductUpdatesReadModel { readonly previousUpdate?: Date ) {} - @Projects(Product, 'id') + @Projects(Product, 'id', ProductUpdatesReadModel.updateWithProduct) public static updateWithProduct( product: Product, - previous?: ProductUpdatesReadModel + previous?: ProductUpdatesReadModel, + projectionInfo?: ProjectionInfo ): ProjectionResult { + if (projectionInfo?.reason === ProjectionInfoReason.ENTITY_DELETED) { + return ReadModelAction.Delete + } return new ProductUpdatesReadModel(product.id, product.availability, new Date(), previous?.lastUpdate) } } diff --git a/packages/framework-integration-tests/src/read-models/products-by-sku.ts b/packages/framework-integration-tests/src/read-models/products-by-sku.ts index b19f610c0..a59ae8486 100644 --- a/packages/framework-integration-tests/src/read-models/products-by-sku.ts +++ b/packages/framework-integration-tests/src/read-models/products-by-sku.ts @@ -1,5 +1,11 @@ import { ReadModel, Projects } from '@boostercloud/framework-core' -import { UUID, ProjectionResult } from '@boostercloud/framework-types' +import { + UUID, + ProjectionResult, + ProjectionInfoReason, + ReadModelAction, + ProjectionInfo, +} from '@boostercloud/framework-types' import { Product } from '../entities/product' interface ProductIDWithPrice { @@ -18,8 +24,15 @@ export class ProductsBySKU { readonly record?: Record ) {} - @Projects(Product, 'sku') - public static projectProduct(entity: Product, currentProductsBySKU?: ProductsBySKU): ProjectionResult { + @Projects(Product, 'sku', ProductsBySKU.projectProduct) + public static projectProduct( + entity: Product, + currentProductsBySKU?: ProductsBySKU, + projectionInfo?: ProjectionInfo + ): ProjectionResult { + if (projectionInfo?.reason === ProjectionInfoReason.ENTITY_DELETED) { + return ReadModelAction.Delete + } // The purpose of this projection is to test the Optimistic concurrency. We have a read model that accumulates entities // with different IDs. One instance of this read model (with id == product sku) will be updated when multiple instances // of the product entity (with the same SKU but different id) are changed. diff --git a/packages/framework-integration-tests/src/read-models/special-reports-read-model.ts b/packages/framework-integration-tests/src/read-models/special-reports-read-model.ts index 78e9b9e79..8499d4f87 100644 --- a/packages/framework-integration-tests/src/read-models/special-reports-read-model.ts +++ b/packages/framework-integration-tests/src/read-models/special-reports-read-model.ts @@ -1,5 +1,12 @@ import { Projects, ReadModel } from '@boostercloud/framework-core' -import { ProjectionResult, UserEnvelope, UUID } from '@boostercloud/framework-types' +import { + ProjectionInfo, + ProjectionInfoReason, + ProjectionResult, + ReadModelAction, + UserEnvelope, + UUID, +} from '@boostercloud/framework-types' import { Product } from '../entities/product' @ReadModel({ @@ -13,12 +20,16 @@ import { Product } from '../entities/product' export class SpecialReportsReadModel { public constructor(readonly id: UUID, readonly luck: number) {} - @Projects(Product, 'id') + @Projects(Product, 'id', SpecialReportsReadModel.updateCounter) public static updateCounter( product: Product, // eslint-disable-next-line @typescript-eslint/no-unused-vars - _oldCounterReadModel?: SpecialReportsReadModel + _oldCounterReadModel?: SpecialReportsReadModel, + projectionInfo?: ProjectionInfo ): ProjectionResult { + if (projectionInfo?.reason === ProjectionInfoReason.ENTITY_DELETED) { + return ReadModelAction.Delete + } const luck = product.description.length + product.displayName.length + Math.random() return new SpecialReportsReadModel(product.id, luck) } diff --git a/packages/framework-provider-aws/src/library/events-adapter.ts b/packages/framework-provider-aws/src/library/events-adapter.ts index 0ef0781e7..b9c8be791 100644 --- a/packages/framework-provider-aws/src/library/events-adapter.ts +++ b/packages/framework-provider-aws/src/library/events-adapter.ts @@ -48,11 +48,13 @@ export async function readEntityEventsSince( ScanIndexForward: true, // Ascending order (older timestamps first) }) .promise() + const resultItems: Array = result.Items as Array + const validEvents = resultItems.filter((item) => !item.deletedAt) logger.debug( `[EventsAdapter#readEntityEventsSince] Loaded events for entity ${entityTypeName} with ID ${entityID} with result:`, - result.Items + validEvents ) - return result.Items as Array + return validEvents } export async function readEntityLatestSnapshot( diff --git a/packages/framework-provider-aws/src/library/events-searcher-adapter.ts b/packages/framework-provider-aws/src/library/events-searcher-adapter.ts index 23a5419a1..5008ce751 100644 --- a/packages/framework-provider-aws/src/library/events-searcher-adapter.ts +++ b/packages/framework-provider-aws/src/library/events-searcher-adapter.ts @@ -240,6 +240,7 @@ function convertToSearchResult(eventEnvelopes: Array): Array { diff --git a/packages/framework-provider-aws/src/setup.ts b/packages/framework-provider-aws/src/setup.ts index 2b30e45e7..afaf3b809 100644 --- a/packages/framework-provider-aws/src/setup.ts +++ b/packages/framework-provider-aws/src/setup.ts @@ -77,6 +77,10 @@ export const Provider = (rockets?: RocketDescriptor[]): ProviderLibrary => { store: storeEvents.bind(null, dynamoDB), storeSnapshot: storeSnapshot.bind(null, dynamoDB), storeDispatched: storeDispatchedEvent, + findDeletableEvent: notImplementedResult as any, + findDeletableSnapshot: notImplementedResult as any, + deleteEvent: notImplementedResult as any, + deleteSnapshot: notImplementedResult as any, }, // ProviderReadModelsLibrary readModels: { diff --git a/packages/framework-provider-aws/test/library/events-search-adapter.test.ts b/packages/framework-provider-aws/test/library/events-search-adapter.test.ts index 0883b9497..5ae7c5a07 100644 --- a/packages/framework-provider-aws/test/library/events-search-adapter.test.ts +++ b/packages/framework-provider-aws/test/library/events-search-adapter.test.ts @@ -291,7 +291,16 @@ describe('Events searcher adapter', () => { expect(res.map((item) => item.entityID)).to.be.deep.equal([occurredThirdID, occurredSecondID, occurredFirstID]) // Check they have the right structure for (const item of res) { - expect(item).to.have.keys(['type', 'entity', 'entityID', 'requestID', 'user', 'createdAt', 'value']) + expect(item).to.have.keys([ + 'type', + 'entity', + 'entityID', + 'requestID', + 'user', + 'createdAt', + 'value', + 'deletedAt', + ]) } }) }) diff --git a/packages/framework-provider-azure/src/helpers/query-helper.ts b/packages/framework-provider-azure/src/helpers/query-helper.ts index 868d3c144..98eb30a07 100644 --- a/packages/framework-provider-azure/src/helpers/query-helper.ts +++ b/packages/framework-provider-azure/src/helpers/query-helper.ts @@ -1,4 +1,4 @@ -import { CosmosClient, SqlParameter, SqlQuerySpec } from '@azure/cosmos' +import { CosmosClient, ItemDefinition, SqlParameter, SqlQuerySpec } from '@azure/cosmos' import { BoosterConfig, FilterFor, @@ -10,6 +10,25 @@ import { } from '@boostercloud/framework-types' import { getLogger } from '@boostercloud/framework-common-helpers' +export async function replaceOrDeleteItem( + cosmosDb: CosmosClient, + container: string, + config: BoosterConfig, + id: string, + partitionKey: string, + newValue?: ItemDefinition +): Promise { + if (newValue) { + await cosmosDb + .database(config.resourceNames.applicationStack) + .container(container) + .item(id, partitionKey) + .replace(newValue) + } else { + await cosmosDb.database(config.resourceNames.applicationStack).container(container).item(id, partitionKey).delete() + } +} + export async function search( cosmosDb: CosmosClient, config: BoosterConfig, diff --git a/packages/framework-provider-azure/src/index.ts b/packages/framework-provider-azure/src/index.ts index 0e402c6d6..cb7e653ad 100644 --- a/packages/framework-provider-azure/src/index.ts +++ b/packages/framework-provider-azure/src/index.ts @@ -47,6 +47,7 @@ import { isGraphQLFunctionUp, rawRequestToSensorHealth, } from './library/health-adapter' +import { deleteEvent, deleteSnapshot, findDeletableEvent, findDeletableSnapshot } from './library/event-delete-adapter' import { storeEvents } from './library/events-store-adapter' let cosmosClient: CosmosClient @@ -107,6 +108,10 @@ export const Provider = (rockets?: RocketDescriptor[]): ProviderLibrary => ({ search: searchEvents.bind(null, cosmosClient), searchEntitiesIDs: searchEntitiesIds.bind(null, cosmosClient), storeDispatched: storeDispatchedEvent.bind(null, cosmosClient), + findDeletableEvent: findDeletableEvent.bind(null, cosmosClient), + findDeletableSnapshot: findDeletableSnapshot.bind(null, cosmosClient), + deleteEvent: deleteEvent.bind(null, cosmosClient), + deleteSnapshot: deleteSnapshot.bind(null, cosmosClient), }, // ProviderReadModelsLibrary readModels: { diff --git a/packages/framework-provider-azure/src/library/event-delete-adapter.ts b/packages/framework-provider-azure/src/library/event-delete-adapter.ts new file mode 100644 index 000000000..31058c5f4 --- /dev/null +++ b/packages/framework-provider-azure/src/library/event-delete-adapter.ts @@ -0,0 +1,135 @@ +import { + BoosterConfig, + EventEnvelope, + EventDeleteParameters, + FilterFor, + SnapshotDeleteParameters, + UUID, + EventEnvelopeFromDatabase, + EntitySnapshotEnvelopeFromDatabase, +} from '@boostercloud/framework-types' +import { getLogger } from '@boostercloud/framework-common-helpers' +import { CosmosClient } from '@azure/cosmos' +import { replaceOrDeleteItem, search } from '../helpers/query-helper' + +export async function findDeletableEvent( + cosmosDb: CosmosClient, + config: BoosterConfig, + parameters: EventDeleteParameters +): Promise> { + const logger = getLogger(config, 'events-delete-adapter#findDeletableEvent') + const stringifyParameters = JSON.stringify(parameters) + logger.debug(`Initiating a deletable event search for ${stringifyParameters}`) + + const eventStore = config.resourceNames.eventsStore + const filter = buildDeleteEventFilter(parameters.entityTypeName, parameters.entityID, parameters.createdAt) + const result = (await search(cosmosDb, config, eventStore, filter)) as Array + logger.debug(`Finished deletable event search for ${stringifyParameters}`) + return result +} + +export async function findDeletableSnapshot( + cosmosDb: CosmosClient, + config: BoosterConfig, + parameters: SnapshotDeleteParameters +): Promise> { + const logger = getLogger(config, 'events-delete-adapter#findDeletableSnapshot') + const stringifyParameters = JSON.stringify(parameters) + logger.debug(`Initiating a deletable snapshot search for ${stringifyParameters}`) + + const eventStore = config.resourceNames.eventsStore + const filter = buildDeleteEntityFilter(parameters.entityTypeName, parameters.entityID, parameters.createdAt) + const result = (await search(cosmosDb, config, eventStore, filter)) as Array + logger.debug(`Finished deletable snapshot search for ${stringifyParameters}`) + return result +} + +export async function deleteEvent( + cosmosDb: CosmosClient, + config: BoosterConfig, + events: Array +): Promise { + const logger = getLogger(config, 'events-delete-adapter#deleteEvent') + const stringifyParameters = JSON.stringify(events) + logger.debug(`Initiating an event delete for ${stringifyParameters}`) + + const eventStore = config.resourceNames.eventsStore + if (!events || events.length === 0) { + logger.warn('Could not find events to delete') + return + } + for (const event of events) { + const newEvent = buildNewEvent(event) + const partitionKey = partitionKeyBuilder(event.entityTypeName, event.entityID, 'event') + await replaceOrDeleteItem(cosmosDb, eventStore, config, event.id, partitionKey, newEvent) + } + logger.debug(`Finished event delete for ${stringifyParameters}`) +} + +export async function deleteSnapshot( + cosmosDb: CosmosClient, + config: BoosterConfig, + snapshots: Array +): Promise { + const logger = getLogger(config, 'events-delete-adapter#deleteSnapshot') + const stringifyParameters = JSON.stringify(snapshots) + logger.debug(`Initiating a snapshot delete for ${stringifyParameters}`) + + const eventStore = config.resourceNames.eventsStore + if (!snapshots || snapshots.length === 0) { + logger.warn('Could not find snapshot to delete') + return + } + for (const snapshot of snapshots) { + const partitionKey = partitionKeyBuilder(snapshot.entityTypeName, snapshot.entityID, 'snapshot') + await replaceOrDeleteItem(cosmosDb, eventStore, config, snapshot.id, partitionKey) + } + logger.debug(`Finished snapshot delete for ${stringifyParameters}`) +} + +interface DeleteQueryFields { + createdAt: string + entityTypeName_entityID_kind: string + kind: string + deletedAt: string +} + +function buildNewEvent(existingEvent: EventEnvelopeFromDatabase): EventEnvelope { + return { + ...existingEvent, + deletedAt: new Date().toISOString(), + value: {}, + } +} + +function buildDeleteEventFilter( + entityTypeName: string, + entityId: UUID, + createdAt: string +): FilterFor { + const value = `${entityTypeName}-${entityId}-event` + return { + entityTypeName_entityID_kind: { eq: value }, + createdAt: { eq: createdAt }, + kind: { eq: 'event' }, + deletedAt: { isDefined: false }, + } +} + +function buildDeleteEntityFilter( + entityTypeName: string, + entityId: UUID, + createdAt: string +): FilterFor { + const value = `${entityTypeName}-${entityId}-snapshot` + return { + entityTypeName_entityID_kind: { eq: value }, + kind: { eq: 'snapshot' }, + createdAt: { eq: createdAt }, + deletedAt: { isDefined: false }, + } +} + +function partitionKeyBuilder(entityTypeName: string, entityID: UUID, kind: 'event' | 'snapshot'): string { + return `${entityTypeName}-${entityID}-${kind}` +} diff --git a/packages/framework-provider-azure/src/library/events-adapter.ts b/packages/framework-provider-azure/src/library/events-adapter.ts index 9ddf11886..3ab740f56 100644 --- a/packages/framework-provider-azure/src/library/events-adapter.ts +++ b/packages/framework-provider-azure/src/library/events-adapter.ts @@ -24,11 +24,14 @@ export async function readEntityEventsSince( entityID: UUID, since?: string ): Promise> { + const logger = getLogger(config, 'events-adapter#readEntityEventsSince') const fromTime = since ? since : originOfTime const querySpec: SqlQuerySpec = { query: `SELECT * FROM c WHERE c["${eventsStoreAttributes.partitionKey}"] = @partitionKey ` + - `AND c["${eventsStoreAttributes.sortKey}"] > @fromTime ORDER BY c["${eventsStoreAttributes.sortKey}"] ASC`, + `AND c["${eventsStoreAttributes.sortKey}"] > @fromTime ` + + 'AND NOT IS_DEFINED(c["deletedAt"]) ' + + `ORDER BY c["${eventsStoreAttributes.sortKey}"] ASC`, parameters: [ { name: '@partitionKey', @@ -45,6 +48,7 @@ export async function readEntityEventsSince( .container(config.resourceNames.eventsStore) .items.query(querySpec) .fetchAll() + logger.debug(`Loaded events for entity ${entityTypeName} with ID ${entityID} with result:`, resources) return resources as Array } diff --git a/packages/framework-provider-azure/src/library/events-searcher-adapter.ts b/packages/framework-provider-azure/src/library/events-searcher-adapter.ts index 00f585ce3..1d3872dab 100644 --- a/packages/framework-provider-azure/src/library/events-searcher-adapter.ts +++ b/packages/framework-provider-azure/src/library/events-searcher-adapter.ts @@ -42,7 +42,11 @@ export async function searchEntitiesIds( afterCursor )}, entityTypeName: ${entityTypeName}` ) - const filterQuery = { kind: { eq: 'event' }, entityTypeName: { eq: entityTypeName } } + const filterQuery = { + kind: { eq: 'event' }, + entityTypeName: { eq: entityTypeName }, + deletedAt: { isDefined: false }, + } const eventStore = config.resourceNames.eventsStore const result = (await search( diff --git a/packages/framework-provider-azure/src/library/events-searcher-builder.ts b/packages/framework-provider-azure/src/library/events-searcher-builder.ts index 052e57773..3b38d0fcb 100644 --- a/packages/framework-provider-azure/src/library/events-searcher-builder.ts +++ b/packages/framework-provider-azure/src/library/events-searcher-builder.ts @@ -57,6 +57,7 @@ export function resultToEventSearchResponse(result: any[]): Array { const logger = getLogger(config, 'read-model-adapter#deleteReadModel') - logger.debug(`[ReadModelAdapter#deleteReadModel] Entering to Read model deleted. ID = ${readModel.id}`) - await db - .database(config.resourceNames.applicationStack) - .container(config.resourceNames.forReadModel(readModelName)) - .item(readModel.id as string, readModel.id as string) - .delete() - logger.debug(`[ReadModelAdapter#deleteReadModel] Read model deleted. ID = ${readModel.id}`) + logger.debug(`Entering to Read model deleted. ${readModelName} ID = ${readModel.id}`) + try { + await db + .database(config.resourceNames.applicationStack) + .container(config.resourceNames.forReadModel(readModelName)) + .item(readModel.id as string, readModel.id as string) + .delete() + logger.debug(`Read model deleted. ${readModelName} ID = ${readModel.id}`) + } catch (e) { + logger.warn(`Read model to delete ${readModelName} ID = ${readModel.id} not found`) + } } export async function rawReadModelEventsToEnvelopes( diff --git a/packages/framework-provider-azure/test/library/events-adapter.test.ts b/packages/framework-provider-azure/test/library/events-adapter.test.ts index e58b285c2..47019c1ad 100644 --- a/packages/framework-provider-azure/test/library/events-adapter.test.ts +++ b/packages/framework-provider-azure/test/library/events-adapter.test.ts @@ -73,7 +73,7 @@ describe('Events adapter', () => { match({ query: `SELECT * FROM c WHERE c["${eventsStoreAttributes.partitionKey}"] = @partitionKey ` + - `AND c["${eventsStoreAttributes.sortKey}"] > @fromTime ORDER BY c["${eventsStoreAttributes.sortKey}"] ASC`, + `AND c["${eventsStoreAttributes.sortKey}"] > @fromTime AND NOT IS_DEFINED(c["deletedAt"]) ORDER BY c["${eventsStoreAttributes.sortKey}"] ASC`, parameters: [ { name: '@partitionKey', diff --git a/packages/framework-provider-azure/test/library/events-searcher-adapter.test.ts b/packages/framework-provider-azure/test/library/events-searcher-adapter.test.ts index 208028a1c..933a2fe97 100644 --- a/packages/framework-provider-azure/test/library/events-searcher-adapter.test.ts +++ b/packages/framework-provider-azure/test/library/events-searcher-adapter.test.ts @@ -205,7 +205,7 @@ describe('Events Searcher adapter', () => { mockCosmosDbClient, mockConfig, eventStoreName, - { kind: { eq: 'event' }, entityTypeName: { eq: 'entity' } }, + { kind: { eq: 'event' }, entityTypeName: { eq: 'entity' }, deletedAt: { isDefined: false } }, 1, { id: '1' }, true, @@ -225,7 +225,7 @@ describe('Events Searcher adapter', () => { mockCosmosDbClient, mockConfig, eventStoreName, - { kind: { eq: 'event' }, entityTypeName: { eq: 'entity' } }, + { kind: { eq: 'event' }, entityTypeName: { eq: 'entity' }, deletedAt: { isDefined: false } }, 1, undefined, true, diff --git a/packages/framework-provider-local/src/index.ts b/packages/framework-provider-local/src/index.ts index 3676d89d3..e7933d6f7 100644 --- a/packages/framework-provider-local/src/index.ts +++ b/packages/framework-provider-local/src/index.ts @@ -48,6 +48,7 @@ import { isGraphQLFunctionUp, rawRequestToSensorHealth, } from './library/health-adapter' +import { deleteEvent, deleteSnapshot, findDeletableEvent, findDeletableSnapshot } from './library/event-delete-adapter' import * as process from 'process' export * from './paths' @@ -82,6 +83,10 @@ export const Provider = (rocketDescriptors?: RocketDescriptor[]): ProviderLibrar search: searchEvents.bind(null, eventRegistry), searchEntitiesIDs: searchEntitiesIds.bind(null, eventRegistry), storeDispatched: storeDispatchedEvent, + findDeletableEvent: findDeletableEvent.bind(null, eventRegistry), + findDeletableSnapshot: findDeletableSnapshot.bind(null, eventRegistry), + deleteEvent: deleteEvent.bind(null, eventRegistry), + deleteSnapshot: deleteSnapshot.bind(null, eventRegistry), }, // ProviderReadModelsLibrary readModels: { diff --git a/packages/framework-provider-local/src/library/event-delete-adapter.ts b/packages/framework-provider-local/src/library/event-delete-adapter.ts new file mode 100644 index 000000000..b6258304b --- /dev/null +++ b/packages/framework-provider-local/src/library/event-delete-adapter.ts @@ -0,0 +1,133 @@ +import { + BoosterConfig, + EventEnvelope, + EventDeleteParameters, + SnapshotDeleteParameters, + UUID, + EventEnvelopeFromDatabase, + EntitySnapshotEnvelopeFromDatabase, + EntitySnapshotEnvelope, +} from '@boostercloud/framework-types' +import { getLogger } from '@boostercloud/framework-common-helpers' +import { EventRegistry } from '../services' +import { QueryOperation, QueryValue } from './searcher-adapter' + +type DatabaseEventEnvelopeWithId = EventEnvelope & { _id: string } +type DatabaseEntitySnapshotEnvelopeWithId = EntitySnapshotEnvelope & { _id: string } + +export async function findDeletableEvent( + eventRegistry: EventRegistry, + config: BoosterConfig, + parameters: EventDeleteParameters +): Promise> { + const logger = getLogger(config, 'events-delete-adapter#findDeletableEvent') + const stringifyParameters = JSON.stringify(parameters) + logger.debug(`Initiating a deletable event search for ${stringifyParameters}`) + + const filter = buildDeleteEventFilter(parameters.entityTypeName, parameters.entityID, parameters.createdAt) + const events = (await eventRegistry.query(filter)) as Array + const result = events.map((event) => { + return { + ...event, + id: event._id, + } + }) as Array + logger.debug(`Finished deletable event search for ${stringifyParameters}`) + return result +} + +export async function findDeletableSnapshot( + eventRegistry: EventRegistry, + config: BoosterConfig, + parameters: SnapshotDeleteParameters +): Promise> { + const logger = getLogger(config, 'events-delete-adapter#findDeletableSnapshot') + const stringifyParameters = JSON.stringify(parameters) + logger.debug(`Initiating a deletable snapshot search for ${stringifyParameters}`) + + const filter = buildDeleteEntityFilter(parameters.entityTypeName, parameters.entityID, parameters.createdAt) + const snapshots = (await eventRegistry.query(filter)) as Array + const result: Array = snapshots.map((snapshot) => { + return { + ...snapshot, + id: snapshot._id, + } + }) + logger.debug(`Finished deletable snapshot search for ${stringifyParameters}`) + return result +} + +export async function deleteEvent( + eventRegistry: EventRegistry, + config: BoosterConfig, + events: Array +): Promise { + const logger = getLogger(config, 'events-delete-adapter#deleteEvent') + const stringifyParameters = JSON.stringify(events) + logger.debug(`Initiating an event delete for ${stringifyParameters}`) + + if (!events || events.length === 0) { + logger.warn('Could not find events to delete') + return + } + for (const event of events) { + const newEvent = buildNewEvent(event) + await eventRegistry.replaceOrDeleteItem(event.id, newEvent) + } + logger.debug(`Finished event delete for ${stringifyParameters}`) +} + +export async function deleteSnapshot( + eventRegistry: EventRegistry, + config: BoosterConfig, + snapshots: Array +): Promise { + const logger = getLogger(config, 'events-delete-adapter#deleteSnapshot') + const stringifyParameters = JSON.stringify(snapshots) + logger.debug(`Initiating a snapshot delete for ${stringifyParameters}`) + + if (!snapshots || snapshots.length === 0) { + logger.warn('Could not find snapshot to delete') + return + } + for (const snapshot of snapshots) { + await eventRegistry.replaceOrDeleteItem(snapshot.id) + } + logger.debug(`Finished snapshot delete for ${stringifyParameters}`) +} + +function buildNewEvent(existingEvent: EventEnvelopeFromDatabase): EventEnvelope { + return { + ...existingEvent, + deletedAt: new Date().toISOString(), + value: {}, + } +} + +function buildDeleteEventFilter( + entityTypeName: string, + entityId: UUID, + createdAt: string +): Record> { + return { + entityID: entityId.toString(), + entityTypeName: entityTypeName, + createdAt: createdAt, + kind: 'event', + deletedAt: { $exists: false }, + } +} + +function buildDeleteEntityFilter( + entityTypeName: string, + entityId: UUID, + createdAt: string +): Record> { + return { + entityTypeName: entityTypeName, + entityID: entityId.toString(), + kind: 'snapshot', + createdAt: createdAt, + deletedAt: { $exists: false }, + } +} diff --git a/packages/framework-provider-local/src/library/events-adapter.ts b/packages/framework-provider-local/src/library/events-adapter.ts index f722ab6db..87fa1e0ec 100644 --- a/packages/framework-provider-local/src/library/events-adapter.ts +++ b/packages/framework-provider-local/src/library/events-adapter.ts @@ -35,6 +35,7 @@ export async function readEntityEventsSince( createdAt: { $gt: fromTime, }, + deletedAt: { $exists: false }, } const result = await eventRegistry.query(query) diff --git a/packages/framework-provider-local/src/library/events-search-adapter.ts b/packages/framework-provider-local/src/library/events-search-adapter.ts index b704fab99..d77ac8e65 100644 --- a/packages/framework-provider-local/src/library/events-search-adapter.ts +++ b/packages/framework-provider-local/src/library/events-search-adapter.ts @@ -46,7 +46,11 @@ export async function searchEntitiesIds( afterCursor )}, entityTypeName: ${entityTypeName}` ) - const filterQuery = { ...DEFAULT_KIND_FILTER, entityTypeName: entityTypeName } + const filterQuery = { + ...DEFAULT_KIND_FILTER, + entityTypeName: entityTypeName, + deletedAt: { $exists: false }, + } const result = (await eventRegistry.query(filterQuery, DEFAULT_CREATED_AT_SORT_ORDER, undefined, { entityID: 1, diff --git a/packages/framework-provider-local/src/library/events-searcher-builder.ts b/packages/framework-provider-local/src/library/events-searcher-builder.ts index 206cfcf6f..61f7a7038 100644 --- a/packages/framework-provider-local/src/library/events-searcher-builder.ts +++ b/packages/framework-provider-local/src/library/events-searcher-builder.ts @@ -56,6 +56,7 @@ export function resultToEventSearchResponse(result: Array | null) user: item.currentUser, createdAt: item.createdAt, value: item.value, + deletedAt: item.deletedAt, } as EventSearchResponse }) return eventSearchResult ?? [] diff --git a/packages/framework-provider-local/src/library/read-model-adapter.ts b/packages/framework-provider-local/src/library/read-model-adapter.ts index 819a23d0f..7dd32b848 100644 --- a/packages/framework-provider-local/src/library/read-model-adapter.ts +++ b/packages/framework-provider-local/src/library/read-model-adapter.ts @@ -114,6 +114,10 @@ export async function deleteReadModel( ): Promise { const logger = getLogger(config, 'read-model-adapter#deleteReadModel') logger.debug(`Entering to Read model deleted. ID=${readModel.id}.Name=${readModelName}`) - await db.deleteById(readModel.id, readModelName) - logger.debug(`Read model deleted. ID=${readModel.id}. Name=${readModelName}`) + try { + await db.deleteById(readModel.id, readModelName) + logger.debug(`Read model deleted. ${readModelName} ID = ${readModel.id}`) + } catch (e) { + logger.warn(`Read model to delete ${readModelName} ID = ${readModel.id} not found`) + } } diff --git a/packages/framework-provider-local/src/library/searcher-adapter.ts b/packages/framework-provider-local/src/library/searcher-adapter.ts index 90828a02b..05ac6e93d 100644 --- a/packages/framework-provider-local/src/library/searcher-adapter.ts +++ b/packages/framework-provider-local/src/library/searcher-adapter.ts @@ -49,8 +49,8 @@ function filterToQuery(filter: FilterFor): QueryOperation { return query } -type QueryValue = number | string | boolean -type QueryOperation = +export type QueryValue = number | string | boolean +export type QueryOperation = // In the case that the operation is `eq`, NeDB matches directly | TValue // For these, the value must be single as a result diff --git a/packages/framework-provider-local/src/services/event-registry.ts b/packages/framework-provider-local/src/services/event-registry.ts index 0a3f9f3e9..fd0284a00 100644 --- a/packages/framework-provider-local/src/services/event-registry.ts +++ b/packages/framework-provider-local/src/services/event-registry.ts @@ -1,6 +1,7 @@ /* eslint-disable @typescript-eslint/ban-types */ import { EntitySnapshotEnvelope, EventEnvelope, EventStoreEntryEnvelope } from '@boostercloud/framework-types' import { eventsDatabase } from '../paths' + const DataStore = require('@seald-io/nedb') export class EventRegistry { @@ -37,6 +38,24 @@ export class EventRegistry { return await cursor.execAsync() } + public async replaceOrDeleteItem(id: string, newValue?: EventEnvelope | EntitySnapshotEnvelope): Promise { + if (newValue) { + await new Promise((resolve, reject) => + this.events.update({ _id: id }, newValue, { multi: true }, (err: any, numRemoved: number) => { + if (err) reject(err) + else resolve(numRemoved) + }) + ) + } else { + await new Promise((resolve, reject) => + this.events.remove({ _id: id }, { multi: true }, (err: any, numRemoved: number) => { + if (err) reject(err) + else resolve(numRemoved) + }) + ) + } + } + public async queryLatestSnapshot(query: object): Promise { await this.loadDatabaseIfNeeded() const cursor = this.events.findAsync({ ...query, kind: 'snapshot' }).sort({ snapshottedEventCreatedAt: -1 }) // Sort in descending order (newer timestamps first) diff --git a/packages/framework-provider-local/test/library/events-adapter.test.ts b/packages/framework-provider-local/test/library/events-adapter.test.ts index 029499e01..e03dd0029 100644 --- a/packages/framework-provider-local/test/library/events-adapter.test.ts +++ b/packages/framework-provider-local/test/library/events-adapter.test.ts @@ -123,6 +123,9 @@ describe('events-adapter', () => { kind: 'event', entityID: mockEntityID, entityTypeName: mockEntityTypeName, + deletedAt: { + $exists: false, + }, }) }) @@ -149,6 +152,9 @@ describe('events-adapter', () => { kind: 'event', entityID: mockEntityID, entityTypeName: mockEntityTypeName, + deletedAt: { + $exists: false, + }, }) }) diff --git a/packages/framework-provider-local/test/library/events-search-adapter.test.ts b/packages/framework-provider-local/test/library/events-search-adapter.test.ts index a34b8fb0f..6f21b8bef 100644 --- a/packages/framework-provider-local/test/library/events-search-adapter.test.ts +++ b/packages/framework-provider-local/test/library/events-search-adapter.test.ts @@ -29,9 +29,14 @@ describe('The "searchEntitiesIDs" method', () => { const entityTypeName = 'entity' await searchEntitiesIds(mockEventRegistry as any, mockConfig, limit, afterCursor, entityTypeName) - expect(queryStub).to.have.been.calledWithExactly({ kind: 'event', entityTypeName: 'entity' }, -1, undefined, { - entityID: 1, - }) + expect(queryStub).to.have.been.calledWithExactly( + { kind: 'event', entityTypeName: 'entity', deletedAt: { $exists: false } }, + -1, + undefined, + { + entityID: 1, + } + ) }) it('Generate query for entityTypeName, limit has all fields', async () => { @@ -39,8 +44,13 @@ describe('The "searchEntitiesIDs" method', () => { const entityTypeName = 'entity' await searchEntitiesIds(mockEventRegistry as any, mockConfig, limit, undefined, entityTypeName) - expect(queryStub).to.have.been.calledWithExactly({ kind: 'event', entityTypeName: 'entity' }, -1, undefined, { - entityID: 1, - }) + expect(queryStub).to.have.been.calledWithExactly( + { kind: 'event', entityTypeName: 'entity', deletedAt: { $exists: false } }, + -1, + undefined, + { + entityID: 1, + } + ) }) }) diff --git a/packages/framework-types/src/booster-app.ts b/packages/framework-types/src/booster-app.ts index 4cc9218ce..b17fcaca4 100644 --- a/packages/framework-types/src/booster-app.ts +++ b/packages/framework-types/src/booster-app.ts @@ -8,6 +8,7 @@ import { EventSearchParameters, EventSearchResponse, PaginatedEntitiesIdsResult, + EventDeleteParameters, } from '.' /** @@ -27,5 +28,6 @@ export interface BoosterApp { limit: number, afterCursor: Record | undefined ): Promise + deleteEvent(parameters: EventDeleteParameters): Promise configuredEnvironments: Set } diff --git a/packages/framework-types/src/concepts/read-model.ts b/packages/framework-types/src/concepts/read-model.ts index e4b96f08e..3ee2e0977 100644 --- a/packages/framework-types/src/concepts/read-model.ts +++ b/packages/framework-types/src/concepts/read-model.ts @@ -28,3 +28,12 @@ export interface ReadModelMetadata['before']> } + +export enum ProjectionInfoReason { + ENTITY_PROJECTED, + ENTITY_DELETED, +} + +export interface ProjectionInfo { + reason: ProjectionInfoReason +} diff --git a/packages/framework-types/src/config.ts b/packages/framework-types/src/config.ts index 224f939a2..bc4bd8c72 100644 --- a/packages/framework-types/src/config.ts +++ b/packages/framework-types/src/config.ts @@ -85,6 +85,7 @@ export class BoosterConfig { public readonly eventHandlers: Record> = {} public readonly readModels: Record = {} public readonly projections: Record>> = {} + public readonly unProjections: Record>> = {} public readonly readModelSequenceKeys: Record = {} public readonly roles: Record = {} public readonly schemaMigrations: Record> = {} diff --git a/packages/framework-types/src/envelope.ts b/packages/framework-types/src/envelope.ts index 348fdf772..113088650 100644 --- a/packages/framework-types/src/envelope.ts +++ b/packages/framework-types/src/envelope.ts @@ -58,6 +58,7 @@ export interface NonPersistedEventEnvelope extends EventStoreEntryEnvelope { export interface EventEnvelope extends NonPersistedEventEnvelope { id?: string createdAt: string + deletedAt?: string } export interface NonPersistedEntitySnapshotEnvelope extends EventStoreEntryEnvelope { @@ -104,6 +105,7 @@ export interface EventSearchResponse { user?: UserEnvelope createdAt: string value: EventInterface | NotificationInterface + deletedAt?: string } export interface ReadModelEnvelope { @@ -214,3 +216,16 @@ export interface ContextEnvelope { /** Provider-dependent raw request context object */ rawContext: unknown } + +export type EventEnvelopeFromDatabase = EventEnvelope & { id: string } +export type EntitySnapshotEnvelopeFromDatabase = EntitySnapshotEnvelope & { id: string } +export interface EventDeleteParameters { + entityTypeName: string + entityID: string + createdAt: string +} +export interface SnapshotDeleteParameters { + entityID: UUID + entityTypeName: string + createdAt: string +} diff --git a/packages/framework-types/src/provider.ts b/packages/framework-types/src/provider.ts index efb2efae0..c5a96525b 100644 --- a/packages/framework-types/src/provider.ts +++ b/packages/framework-types/src/provider.ts @@ -3,7 +3,10 @@ import { BoosterConfig } from './config' import { ConnectionDataEnvelope, EntitySnapshotEnvelope, + EntitySnapshotEnvelopeFromDatabase, + EventDeleteParameters, EventEnvelope, + EventEnvelopeFromDatabase, EventSearchParameters, EventSearchResponse, GraphQLRequestEnvelope, @@ -15,6 +18,7 @@ import { ReadModelEnvelope, ReadModelListResult, ScheduledCommandEnvelope, + SnapshotDeleteParameters, SubscriptionEnvelope, } from './envelope' import { FilterFor, ProjectionFor, SortFor } from './searcher' @@ -155,6 +159,44 @@ export interface ProviderEventsLibrary { * table, throws an error on any other type of error. */ storeDispatched(eventEnvelope: EventEnvelope, config: BoosterConfig): Promise + + /** + * Find all events to be removed based on the parameters + * + * @param config + * @param parameters + */ + findDeletableEvent( + config: BoosterConfig, + parameters: EventDeleteParameters + ): Promise> + + /** + * Find all snapshots to be removed based on the parameters + * + * @param config + * @param parameters + */ + findDeletableSnapshot( + config: BoosterConfig, + parameters: SnapshotDeleteParameters + ): Promise> + + /** + * Delete events + * + * @param config + * @param events + */ + deleteEvent(config: BoosterConfig, events: Array): Promise + + /** + * Delete snapshots + * + * @param config + * @param snapshots + */ + deleteSnapshot(config: BoosterConfig, snapshots: Array): Promise } export interface ProviderReadModelsLibrary { diff --git a/website/docs/10_going-deeper/remove-events.mdx b/website/docs/10_going-deeper/remove-events.mdx new file mode 100644 index 000000000..e5e8ada01 --- /dev/null +++ b/website/docs/10_going-deeper/remove-events.mdx @@ -0,0 +1,91 @@ +# Remove events + +> **Warning**: This is an experimental functionality. Please note that this functionality is only supported by Azure and Local providers. + +Booster allows to delete past events and their related entities as to update the affected ReadModels. + +By using the `Booster.deleteEvent` command it is possible to indicate the event to be deleted. To do so, you must indicate: + +* entityID: The `id` of the entity of the event to be deleted +* entityTypeName: The entity type name of the event entity to be deleted +* createdAt: The date of creation of the event. + +Example: +```typescript +import { Booster, Command } from '@boostercloud/framework-core' +import { EventDeleteParameters } from '@boostercloud/framework-types' + +@Command({ + authorize: 'all', +}) +export class HardDelete { + public constructor(readonly entityId: string, readonly entityTypeName: string, readonly createdAt: string) {} + + public static async handle(command: HardDelete): Promise { + const parameters: EventDeleteParameters = { + entityID: command.entityId, + entityTypeName: command.entityTypeName, + createdAt: command.createdAt, + } + return await Booster.deleteEvent(parameters) + } +} +``` + +When executing this command, Booster will update the selected event in the corresponding database with an empty value and a deletion date. +This way, it will be reflected in the system that there was an event that was subsequently deleted. + +Deleted events are ignored by Booster, but they can be accessed using the corresponding methods (`eventsByEntity` and `eventsByType`). + +The entities associated with a deleted event will be permanently removed from the database. + +ReadModels are not automatically modified or deleted and it is up to the user to act accordingly. +To do so, the methods annotated with `@Project` of the ReadModels have a third parameter `unProject` which allows to define a +function that will be executed when the entity defined in the projection and with the `joinKey` defined in the projection is deleted. + +This third parameter will be a static function with the same parameters as the method we are projecting. + +It is possible to use the same method that is used for projecting to resolve the deletions by simply specifying this +method as `unProject`. + +Example: +```typescript + @Projects(Pack, 'products', ProductReadModel.updateWithPack) + public static updateWithPack( + pack: Pack, + readModelID: UUID, + currentProductReadModel?: ProductReadModel, + projectionInfo?: ProjectionInfo + ): ProjectionResult { + if (projectionInfo?.reason === ProjectionInfoReason.ENTITY_DELETED) { + return ReadModelAction.Delete + } + // ... other code + } +``` + +In this case, if the `Pack` entity with the joinKey `products` is deleted, the `updateWithPack` method will be executed and will include a last parameter called `projectionInfo`. +This parameter contains the `reason` field, which in this case will be set to `ENTITY_DELETED` to indicate that the entity is being deleted. + +Another option is to define your own deletion method independent of the projection method. In case of deletion the method +called will be the newly defined method. + +Example: +```typescript + @Projects(Product, 'id', ProductReadModel.unProjectWithProduct) + public static updateWithProduct(product: Product): ProjectionResult { + // ... other code + } + + public static unProjectWithProduct( + _product: Product, + _currentProductReadModel?: ProductReadModel, + _projectionInfo?: ProjectionInfo + ): ProjectionResult { + return ReadModelAction.Delete + } +``` + +([See more details about how to delete a ReadModel in the docs](https://docs.boosterframework.com/architecture/read-model/#deleting-read-models)) + +> **Warning**: Please note that these changes are final and it is not possible to retrieve the information once they have been made. diff --git a/website/sidebars.js b/website/sidebars.js index 335f534cf..377a95ca4 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -113,6 +113,7 @@ const sidebars = { 'going-deeper/custom-templates', 'going-deeper/framework-packages', 'going-deeper/instrumentation', + 'going-deeper/remove-events', 'going-deeper/azure-scale' ], }, From cf1bb201c8cbacf39ffc3f725ce1043d8a181698 Mon Sep 17 00:00:00 2001 From: GITHUBACTION Date: Thu, 29 Aug 2024 21:39:42 +0000 Subject: [PATCH 16/47] Bump versions [skip ci] --- .../remove_events_2023-06-14-10-02.json | 10 ------- common/config/rush/version-policies.json | 2 +- packages/application-tester/package.json | 6 ++-- packages/cli/package.json | 10 +++---- .../framework-common-helpers/package.json | 6 ++-- packages/framework-core/CHANGELOG.json | 28 +++++++++++++++++++ packages/framework-core/CHANGELOG.md | 9 +++++- packages/framework-core/package.json | 10 +++---- .../framework-integration-tests/package.json | 28 +++++++++---------- .../package.json | 10 +++---- packages/framework-provider-aws/package.json | 8 +++--- .../package.json | 12 ++++---- .../framework-provider-azure/package.json | 8 +++--- .../package.json | 10 +++---- .../framework-provider-local/package.json | 8 +++--- packages/framework-types/package.json | 6 ++-- packages/metadata-booster/package.json | 4 +-- tools/eslint-config/package.json | 2 +- 18 files changed, 101 insertions(+), 76 deletions(-) delete mode 100644 common/changes/@boostercloud/framework-core/remove_events_2023-06-14-10-02.json diff --git a/common/changes/@boostercloud/framework-core/remove_events_2023-06-14-10-02.json b/common/changes/@boostercloud/framework-core/remove_events_2023-06-14-10-02.json deleted file mode 100644 index 987865687..000000000 --- a/common/changes/@boostercloud/framework-core/remove_events_2023-06-14-10-02.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@boostercloud/framework-core", - "comment": "Add remove events", - "type": "minor" - } - ], - "packageName": "@boostercloud/framework-core" -} \ No newline at end of file diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 9db6c6cfc..9fa4273c6 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -103,6 +103,6 @@ "definitionName": "lockStepVersion", "policyName": "booster", "mainProject": "@boostercloud/framework-core", - "version": "2.17.0" + "version": "2.18.0" } ] diff --git a/packages/application-tester/package.json b/packages/application-tester/package.json index f1deab3ae..92c6ffd70 100644 --- a/packages/application-tester/package.json +++ b/packages/application-tester/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/application-tester", - "version": "2.17.0", + "version": "2.18.0", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "application-tester" @@ -36,7 +36,7 @@ }, "dependencies": { "@apollo/client": "3.7.13", - "@boostercloud/framework-types": "workspace:^2.17.0", + "@boostercloud/framework-types": "workspace:^2.18.0", "cross-fetch": "3.1.5", "graphql": "^16.6.0", "jsonwebtoken": "9.0.1", @@ -48,7 +48,7 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.17.0", + "@boostercloud/eslint-config": "workspace:^2.18.0", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", "eslint": "^8.23.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 713b5eefb..0cce5cf7e 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/cli", "description": "CLI of the Booster Framework, the next level of abstraction for cloud-native applications", - "version": "2.17.0", + "version": "2.18.0", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -12,8 +12,8 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-core": "workspace:^2.17.0", - "@boostercloud/framework-types": "workspace:^2.17.0", + "@boostercloud/framework-core": "workspace:^2.18.0", + "@boostercloud/framework-types": "workspace:^2.18.0", "@oclif/core": "3.15.0", "@oclif/plugin-help": "^5", "chalk": "^2.4.2", @@ -30,8 +30,8 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.17.0", - "@boostercloud/application-tester": "workspace:^2.17.0", + "@boostercloud/eslint-config": "workspace:^2.18.0", + "@boostercloud/application-tester": "workspace:^2.18.0", "@oclif/test": "^3.0.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", diff --git a/packages/framework-common-helpers/package.json b/packages/framework-common-helpers/package.json index 9ac4f2e4a..c65f65b78 100644 --- a/packages/framework-common-helpers/package.json +++ b/packages/framework-common-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-common-helpers", - "version": "2.17.0", + "version": "2.18.0", "description": "Contains Booster common helpers used by the core and provider packages", "keywords": [ "framework-common-helpers" @@ -36,14 +36,14 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-types": "workspace:^2.17.0", + "@boostercloud/framework-types": "workspace:^2.18.0", "child-process-promise": "^2.2.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "class-transformer": "~0.5.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.17.0", + "@boostercloud/eslint-config": "workspace:^2.18.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/child-process-promise": "^2.2.1", diff --git a/packages/framework-core/CHANGELOG.json b/packages/framework-core/CHANGELOG.json index 558171ed5..b114a13c2 100644 --- a/packages/framework-core/CHANGELOG.json +++ b/packages/framework-core/CHANGELOG.json @@ -1,6 +1,34 @@ { "name": "@boostercloud/framework-core", "entries": [ + { + "version": "2.18.0", + "tag": "@boostercloud/framework-core_v2.18.0", + "date": "Thu, 29 Aug 2024 21:39:42 GMT", + "comments": { + "minor": [ + { + "comment": "Add remove events", + "author": "gonzalojaubert <111118818+gonzalojaubert@users.noreply.github.com>", + "commit": "b791d832afddb29f65ee07ebb6b54b16d835810b" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@boostercloud/framework-common-helpers\" from `^2.17.0` to `^2.18.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/framework-types\" from `^2.17.0` to `^2.18.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/metadata-booster\" from `^2.17.0` to `^2.18.0`" + }, + { + "comment": "Updating dependency \"@boostercloud/eslint-config\" from `^2.17.0` to `^2.18.0`" + } + ] + } + }, { "version": "2.17.0", "tag": "@boostercloud/framework-core_v2.17.0", diff --git a/packages/framework-core/CHANGELOG.md b/packages/framework-core/CHANGELOG.md index 3c558a130..6592e212a 100644 --- a/packages/framework-core/CHANGELOG.md +++ b/packages/framework-core/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @boostercloud/framework-core -This log was last generated on Wed, 21 Aug 2024 00:15:44 GMT and should not be manually modified. +This log was last generated on Thu, 29 Aug 2024 21:39:42 GMT and should not be manually modified. + +## 2.18.0 +Thu, 29 Aug 2024 21:39:42 GMT + +### Minor changes + +- Add remove events ## 2.17.0 Wed, 21 Aug 2024 00:15:44 GMT diff --git a/packages/framework-core/package.json b/packages/framework-core/package.json index e71f22d77..e98ac3a5d 100644 --- a/packages/framework-core/package.json +++ b/packages/framework-core/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-core", - "version": "2.17.0", + "version": "2.18.0", "description": "Library for your Booster apps", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", @@ -37,8 +37,8 @@ "graphql": "^16.6.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.17.0", - "@boostercloud/framework-types": "workspace:^2.17.0", + "@boostercloud/framework-common-helpers": "workspace:^2.18.0", + "@boostercloud/framework-types": "workspace:^2.18.0", "fp-ts": "^2.11.0", "graphql-scalars": "^1.17.0", "graphql-subscriptions": "2.0.0", @@ -61,8 +61,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/metadata-booster": "workspace:^2.17.0", - "@boostercloud/eslint-config": "workspace:^2.17.0", + "@boostercloud/metadata-booster": "workspace:^2.18.0", + "@boostercloud/eslint-config": "workspace:^2.18.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-integration-tests/package.json b/packages/framework-integration-tests/package.json index c15145849..e6e588b4a 100644 --- a/packages/framework-integration-tests/package.json +++ b/packages/framework-integration-tests/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-integration-tests", "description": "Example project for Booster", - "version": "2.17.0", + "version": "2.18.0", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -9,12 +9,12 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.17.0", - "@boostercloud/framework-core": "workspace:^2.17.0", - "@boostercloud/framework-provider-aws": "workspace:^2.17.0", - "@boostercloud/framework-provider-azure": "workspace:^2.17.0", - "@boostercloud/framework-provider-local": "workspace:^2.17.0", - "@boostercloud/framework-types": "workspace:^2.17.0", + "@boostercloud/framework-common-helpers": "workspace:^2.18.0", + "@boostercloud/framework-core": "workspace:^2.18.0", + "@boostercloud/framework-provider-aws": "workspace:^2.18.0", + "@boostercloud/framework-provider-azure": "workspace:^2.18.0", + "@boostercloud/framework-provider-local": "workspace:^2.18.0", + "@boostercloud/framework-types": "workspace:^2.18.0", "aws-sdk": "2.853.0", "graphql": "^16.6.0", "tslib": "^2.4.0", @@ -33,13 +33,13 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.17.0", - "@boostercloud/application-tester": "workspace:^2.17.0", - "@boostercloud/cli": "workspace:^2.17.0", - "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.17.0", - "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.17.0", - "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.17.0", - "@boostercloud/metadata-booster": "workspace:^2.17.0", + "@boostercloud/eslint-config": "workspace:^2.18.0", + "@boostercloud/application-tester": "workspace:^2.18.0", + "@boostercloud/cli": "workspace:^2.18.0", + "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.18.0", + "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.18.0", + "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.18.0", + "@boostercloud/metadata-booster": "workspace:^2.18.0", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-aws-infrastructure/package.json b/packages/framework-provider-aws-infrastructure/package.json index 7a2d8cdab..72decc528 100644 --- a/packages/framework-provider-aws-infrastructure/package.json +++ b/packages/framework-provider-aws-infrastructure/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws-infrastructure", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.17.0", + "version": "2.18.0", "description": "Handle the Booster deployment process to AWS", "keywords": [ "framework-provider-aws-infrastructure" @@ -41,9 +41,9 @@ "@aws-cdk/aws-s3-deployment": "^1.170.0", "@aws-cdk/core": "^1.170.0", "@aws-cdk/cx-api": "^1.170.0", - "@boostercloud/framework-common-helpers": "workspace:^2.17.0", - "@boostercloud/framework-provider-aws": "workspace:^2.17.0", - "@boostercloud/framework-types": "workspace:^2.17.0", + "@boostercloud/framework-common-helpers": "workspace:^2.18.0", + "@boostercloud/framework-provider-aws": "workspace:^2.18.0", + "@boostercloud/framework-types": "workspace:^2.18.0", "constructs": "^3.3.69", "aws-cdk": "^1.170.0", "aws-sdk": "2.853.0", @@ -69,7 +69,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.17.0", + "@boostercloud/eslint-config": "workspace:^2.18.0", "@types/aws-lambda": "8.10.48", "@types/aws-sdk": "2.7.0", "@types/chai": "4.2.18", diff --git a/packages/framework-provider-aws/package.json b/packages/framework-provider-aws/package.json index 0bb205ac8..65f980e94 100644 --- a/packages/framework-provider-aws/package.json +++ b/packages/framework-provider-aws/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.17.0", + "version": "2.18.0", "description": "Handle Booster's integration with AWS", "keywords": [ "framework-provider-aws" @@ -24,8 +24,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.17.0", - "@boostercloud/framework-types": "workspace:^2.17.0", + "@boostercloud/framework-common-helpers": "workspace:^2.18.0", + "@boostercloud/framework-types": "workspace:^2.18.0", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4" }, @@ -43,7 +43,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.17.0", + "@boostercloud/eslint-config": "workspace:^2.18.0", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-azure-infrastructure/package.json b/packages/framework-provider-azure-infrastructure/package.json index 04baa2ea4..541db3782 100644 --- a/packages/framework-provider-azure-infrastructure/package.json +++ b/packages/framework-provider-azure-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure-infrastructure", - "version": "2.17.0", + "version": "2.18.0", "description": "Handle the Booster deployment process to Azure", "keywords": [ "framework-provider-azure-infrastructure" @@ -25,10 +25,10 @@ "dependencies": { "@azure/arm-appservice": "^13.0.0", "@azure/cosmos": "^4.0.0", - "@boostercloud/framework-common-helpers": "workspace:^2.17.0", - "@boostercloud/framework-core": "workspace:^2.17.0", - "@boostercloud/framework-provider-azure": "workspace:^2.17.0", - "@boostercloud/framework-types": "workspace:^2.17.0", + "@boostercloud/framework-common-helpers": "workspace:^2.18.0", + "@boostercloud/framework-core": "workspace:^2.18.0", + "@boostercloud/framework-provider-azure": "workspace:^2.18.0", + "@boostercloud/framework-types": "workspace:^2.18.0", "@cdktf/provider-azurerm": "11.2.0", "@cdktf/provider-time": "9.0.2", "@types/archiver": "5.1.0", @@ -67,7 +67,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.17.0", + "@boostercloud/eslint-config": "workspace:^2.18.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-azure/package.json b/packages/framework-provider-azure/package.json index 40b5830b3..d790f0a57 100644 --- a/packages/framework-provider-azure/package.json +++ b/packages/framework-provider-azure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure", - "version": "2.17.0", + "version": "2.18.0", "description": "Handle Booster's integration with Azure", "keywords": [ "framework-provider-azure" @@ -27,14 +27,14 @@ "@azure/functions": "^1.2.2", "@azure/identity": "~2.1.0", "@azure/event-hubs": "5.11.1", - "@boostercloud/framework-common-helpers": "workspace:^2.17.0", - "@boostercloud/framework-types": "workspace:^2.17.0", + "@boostercloud/framework-common-helpers": "workspace:^2.18.0", + "@boostercloud/framework-types": "workspace:^2.18.0", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "@azure/web-pubsub": "~1.1.0" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.17.0", + "@boostercloud/eslint-config": "workspace:^2.18.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-local-infrastructure/package.json b/packages/framework-provider-local-infrastructure/package.json index ef8625301..44dc98780 100644 --- a/packages/framework-provider-local-infrastructure/package.json +++ b/packages/framework-provider-local-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local-infrastructure", - "version": "2.17.0", + "version": "2.18.0", "description": "Handle the Booster running process of the local runtime", "keywords": [ "framework-provider-local-infrastructure" @@ -23,9 +23,9 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.17.0", - "@boostercloud/framework-provider-local": "workspace:^2.17.0", - "@boostercloud/framework-types": "workspace:^2.17.0", + "@boostercloud/framework-common-helpers": "workspace:^2.18.0", + "@boostercloud/framework-provider-local": "workspace:^2.18.0", + "@boostercloud/framework-types": "workspace:^2.18.0", "cors": "2.8.5", "express": "^4.19.2", "node-schedule": "^2.1.0", @@ -46,7 +46,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.17.0", + "@boostercloud/eslint-config": "workspace:^2.18.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/cors": "^2.8.12", diff --git a/packages/framework-provider-local/package.json b/packages/framework-provider-local/package.json index d4b5a5f73..637b6710d 100644 --- a/packages/framework-provider-local/package.json +++ b/packages/framework-provider-local/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local", - "version": "2.17.0", + "version": "2.18.0", "description": "Debug your Booster projects locally", "keywords": [ "framework-provider-local" @@ -23,8 +23,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.17.0", - "@boostercloud/framework-types": "workspace:^2.17.0", + "@boostercloud/framework-common-helpers": "workspace:^2.18.0", + "@boostercloud/framework-types": "workspace:^2.18.0", "@seald-io/nedb": "4.0.2", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", @@ -44,7 +44,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.17.0", + "@boostercloud/eslint-config": "workspace:^2.18.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/express": "^4.17.21", diff --git a/packages/framework-types/package.json b/packages/framework-types/package.json index 596a225fd..9bcaae298 100644 --- a/packages/framework-types/package.json +++ b/packages/framework-types/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-types", - "version": "2.17.0", + "version": "2.18.0", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "framework-types" @@ -54,8 +54,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.17.0", - "@boostercloud/metadata-booster": "workspace:^2.17.0", + "@boostercloud/eslint-config": "workspace:^2.18.0", + "@boostercloud/metadata-booster": "workspace:^2.18.0", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/mocha": "10.0.1", diff --git a/packages/metadata-booster/package.json b/packages/metadata-booster/package.json index bbfd4dc84..3c91d79b4 100644 --- a/packages/metadata-booster/package.json +++ b/packages/metadata-booster/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/metadata-booster", - "version": "2.17.0", + "version": "2.18.0", "description": "Emits detailed metadata of your types. You can then get it in runtime to deal with schema-aware operation, like defining GraphQL schemas, ORM operations, etc.", "repository": "https://github.com/boostercloud/booster.git", "keywords": [ @@ -38,7 +38,7 @@ "eslint-config-prettier": "8.3.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "3.4.0", - "@boostercloud/eslint-config": "workspace:^2.17.0", + "@boostercloud/eslint-config": "workspace:^2.18.0", "@types/node": "^18.18.2", "ts-node": "^10.9.1", "ts-patch": "3.1.2", diff --git a/tools/eslint-config/package.json b/tools/eslint-config/package.json index 0eb9de9f2..dd3d01ca4 100644 --- a/tools/eslint-config/package.json +++ b/tools/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/eslint-config", - "version": "2.17.0", + "version": "2.18.0", "description": "Shared eslint rules", "main": "index.js", "publishConfig": { From d88ea84e419507e55509b5860fbc34641ecfe16d Mon Sep 17 00:00:00 2001 From: Mario Castro Squella Date: Wed, 4 Sep 2024 10:56:54 -0400 Subject: [PATCH 17/47] Update re_test-integration-prepare.yml (#1548) --- .github/workflows/re_test-integration-prepare.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/re_test-integration-prepare.yml b/.github/workflows/re_test-integration-prepare.yml index bb1709f9d..0b2fa8a3b 100644 --- a/.github/workflows/re_test-integration-prepare.yml +++ b/.github/workflows/re_test-integration-prepare.yml @@ -58,6 +58,7 @@ jobs: name: integration-test-dependencies-${{ inputs.command_sha }} path: packages/framework-integration-tests/.booster retention-days: 1 + include-hidden-files: true - name: Upload integration test dependencies uses: actions/upload-artifact@v4 @@ -67,3 +68,4 @@ jobs: name: integration-test-dependencies-${{ github.sha }} path: packages/framework-integration-tests/.booster retention-days: 1 + include-hidden-files: true From adf2902a7c508aab6782e29fa8e24c4e5cb105a4 Mon Sep 17 00:00:00 2001 From: Mario Castro Squella Date: Wed, 4 Sep 2024 13:59:20 -0400 Subject: [PATCH 18/47] Fix projects decorator (#1547) --- ...x_projects_decorator_2024-09-04-11-50.json | 10 + common/config/rush/pnpm-lock.yaml | 553 +++++++++--------- .../framework-core/src/decorators/projects.ts | 3 +- 3 files changed, 294 insertions(+), 272 deletions(-) create mode 100644 common/changes/@boostercloud/framework-core/fix_projects_decorator_2024-09-04-11-50.json diff --git a/common/changes/@boostercloud/framework-core/fix_projects_decorator_2024-09-04-11-50.json b/common/changes/@boostercloud/framework-core/fix_projects_decorator_2024-09-04-11-50.json new file mode 100644 index 000000000..f5a86db9d --- /dev/null +++ b/common/changes/@boostercloud/framework-core/fix_projects_decorator_2024-09-04-11-50.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@boostercloud/framework-core", + "comment": "Fix types for Projects decorator", + "type": "patch" + } + ], + "packageName": "@boostercloud/framework-core" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 79c6adadc..6cd3a48f7 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,8 +8,8 @@ importers: ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^2.17.0 - '@boostercloud/framework-types': workspace:^2.17.0 + '@boostercloud/eslint-config': workspace:^2.18.0 + '@boostercloud/framework-types': workspace:^2.18.0 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.18.2 @@ -51,7 +51,7 @@ importers: devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/jsonwebtoken': 9.0.1 - '@types/node': 18.19.46 + '@types/node': 18.19.49 '@types/ws': 8.5.4 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry @@ -59,7 +59,7 @@ importers: chai-as-promised: 7.1.1_chai@4.2.0 eslint: 8.57.0 eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.29.1_eslint@8.57.0 + eslint-plugin-import: 2.30.0_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 fast-check: 3.22.0 @@ -70,10 +70,10 @@ importers: ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^2.17.0 - '@boostercloud/eslint-config': workspace:^2.17.0 - '@boostercloud/framework-core': workspace:^2.17.0 - '@boostercloud/framework-types': workspace:^2.17.0 + '@boostercloud/application-tester': workspace:^2.18.0 + '@boostercloud/eslint-config': workspace:^2.18.0 + '@boostercloud/framework-core': workspace:^2.18.0 + '@boostercloud/framework-types': workspace:^2.18.0 '@effect-ts/core': ^0.60.4 '@oclif/core': 3.15.0 '@oclif/plugin-help': ^5 @@ -129,7 +129,7 @@ importers: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@oclif/core': 3.15.0_typescript@5.1.6 - '@oclif/plugin-help': 5.2.20_lkkcy4kiv3gczc6zag7kwihdkm + '@oclif/plugin-help': 5.2.20_45rz2fqkboejwckriajjmu7obu chalk: 2.4.2 child-process-promise: 2.2.1 execa: 2.1.0 @@ -154,7 +154,7 @@ importers: '@types/inquirer': 6.5.0 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.46 + '@types/node': 18.19.49 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -165,7 +165,7 @@ importers: copyfiles: 2.4.1 eslint: 8.57.0 eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.29.1_eslint@8.57.0 + eslint-plugin-import: 2.30.0_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 faker: 5.1.0 @@ -177,14 +177,14 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm + ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^2.17.0 - '@boostercloud/framework-types': workspace:^2.17.0 + '@boostercloud/eslint-config': workspace:^2.18.0 + '@boostercloud/framework-types': workspace:^2.18.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -231,7 +231,7 @@ importers: '@types/child-process-promise': 2.2.6 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.46 + '@types/node': 18.19.49 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -242,7 +242,7 @@ importers: chai-as-promised: 7.1.1_chai@4.2.0 eslint: 8.57.0 eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.29.1_eslint@8.57.0 + eslint-plugin-import: 2.30.0_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 faker: 5.1.0 @@ -253,15 +253,15 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm + ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu typescript: 5.1.6 ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^2.17.0 - '@boostercloud/framework-common-helpers': workspace:^2.17.0 - '@boostercloud/framework-types': workspace:^2.17.0 - '@boostercloud/metadata-booster': workspace:^2.17.0 + '@boostercloud/eslint-config': workspace:^2.18.0 + '@boostercloud/framework-common-helpers': workspace:^2.18.0 + '@boostercloud/framework-types': workspace:^2.18.0 + '@boostercloud/metadata-booster': workspace:^2.18.0 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 '@effect/platform-node': 0.45.26 @@ -347,7 +347,7 @@ importers: '@types/inflected': 1.1.29 '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 - '@types/node': 18.19.46 + '@types/node': 18.19.49 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/validator': 13.1.3 @@ -358,7 +358,7 @@ importers: cross-env: 7.0.3 eslint: 8.57.0 eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.29.1_eslint@8.57.0 + eslint-plugin-import: 2.30.0_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 faker: 5.1.0 @@ -371,26 +371,26 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm + ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^2.17.0 - '@boostercloud/cli': workspace:^2.17.0 - '@boostercloud/eslint-config': workspace:^2.17.0 - '@boostercloud/framework-common-helpers': workspace:^2.17.0 - '@boostercloud/framework-core': workspace:^2.17.0 - '@boostercloud/framework-provider-aws': workspace:^2.17.0 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.17.0 - '@boostercloud/framework-provider-azure': workspace:^2.17.0 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.17.0 - '@boostercloud/framework-provider-local': workspace:^2.17.0 - '@boostercloud/framework-provider-local-infrastructure': workspace:^2.17.0 - '@boostercloud/framework-types': workspace:^2.17.0 - '@boostercloud/metadata-booster': workspace:^2.17.0 + '@boostercloud/application-tester': workspace:^2.18.0 + '@boostercloud/cli': workspace:^2.18.0 + '@boostercloud/eslint-config': workspace:^2.18.0 + '@boostercloud/framework-common-helpers': workspace:^2.18.0 + '@boostercloud/framework-core': workspace:^2.18.0 + '@boostercloud/framework-provider-aws': workspace:^2.18.0 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.18.0 + '@boostercloud/framework-provider-azure': workspace:^2.18.0 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.18.0 + '@boostercloud/framework-provider-local': workspace:^2.18.0 + '@boostercloud/framework-provider-local-infrastructure': workspace:^2.18.0 + '@boostercloud/framework-types': workspace:^2.18.0 + '@boostercloud/metadata-booster': workspace:^2.18.0 '@effect-ts/core': ^0.60.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 @@ -496,7 +496,7 @@ importers: '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 '@types/nedb': 1.8.16 - '@types/node': 18.19.46 + '@types/node': 18.19.49 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 @@ -511,7 +511,7 @@ importers: cross-fetch: 3.1.5 eslint: 8.57.0 eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.29.1_eslint@8.57.0 + eslint-plugin-import: 2.30.0_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 faker: 5.1.0 @@ -530,15 +530,15 @@ importers: serverless-artillery: 0.5.2 sinon: 9.2.3 subscriptions-transport-ws: 0.11.0_graphql@16.9.0 - ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm + ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^2.17.0 - '@boostercloud/framework-common-helpers': workspace:^2.17.0 - '@boostercloud/framework-types': workspace:^2.17.0 + '@boostercloud/eslint-config': workspace:^2.18.0 + '@boostercloud/framework-common-helpers': workspace:^2.18.0 + '@boostercloud/framework-types': workspace:^2.18.0 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -586,7 +586,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.46 + '@types/node': 18.19.49 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -598,7 +598,7 @@ importers: chai-as-promised: 7.1.1_chai@4.2.0 eslint: 8.57.0 eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.29.1_eslint@8.57.0 + eslint-plugin-import: 2.30.0_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 faker: 5.1.0 @@ -609,7 +609,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm + ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu typescript: 5.1.6 velocityjs: 2.0.6 @@ -632,10 +632,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^2.17.0 - '@boostercloud/framework-common-helpers': workspace:^2.17.0 - '@boostercloud/framework-provider-aws': workspace:^2.17.0 - '@boostercloud/framework-types': workspace:^2.17.0 + '@boostercloud/eslint-config': workspace:^2.18.0 + '@boostercloud/framework-common-helpers': workspace:^2.18.0 + '@boostercloud/framework-provider-aws': workspace:^2.18.0 + '@boostercloud/framework-types': workspace:^2.18.0 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -717,7 +717,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.46 + '@types/node': 18.19.49 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -727,7 +727,7 @@ importers: chai-as-promised: 7.1.1_chai@4.2.0 eslint: 8.57.0 eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.29.1_eslint@8.57.0 + eslint-plugin-import: 2.30.0_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 faker: 5.1.0 @@ -738,7 +738,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm + ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu typescript: 5.1.6 velocityjs: 2.0.6 @@ -749,9 +749,9 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^2.17.0 - '@boostercloud/framework-common-helpers': workspace:^2.17.0 - '@boostercloud/framework-types': workspace:^2.17.0 + '@boostercloud/eslint-config': workspace:^2.18.0 + '@boostercloud/framework-common-helpers': workspace:^2.18.0 + '@boostercloud/framework-types': workspace:^2.18.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -780,7 +780,7 @@ importers: tslib: ^2.4.0 typescript: 5.1.6 dependencies: - '@azure/cosmos': 4.1.0 + '@azure/cosmos': 4.1.1 '@azure/event-hubs': 5.11.1 '@azure/functions': 1.2.3 '@azure/identity': 2.1.0 @@ -795,7 +795,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.46 + '@types/node': 18.19.49 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 @@ -804,7 +804,7 @@ importers: chai-as-promised: 7.1.1_chai@4.2.0 eslint: 8.57.0 eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.29.1_eslint@8.57.0 + eslint-plugin-import: 2.30.0_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 faker: 5.1.0 @@ -814,7 +814,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm + ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu typescript: 5.1.6 ../../packages/framework-provider-azure-infrastructure: @@ -823,11 +823,11 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^2.17.0 - '@boostercloud/framework-common-helpers': workspace:^2.17.0 - '@boostercloud/framework-core': workspace:^2.17.0 - '@boostercloud/framework-provider-azure': workspace:^2.17.0 - '@boostercloud/framework-types': workspace:^2.17.0 + '@boostercloud/eslint-config': workspace:^2.18.0 + '@boostercloud/framework-common-helpers': workspace:^2.18.0 + '@boostercloud/framework-core': workspace:^2.18.0 + '@boostercloud/framework-provider-azure': workspace:^2.18.0 + '@boostercloud/framework-types': workspace:^2.18.0 '@cdktf/provider-azurerm': 11.2.0 '@cdktf/provider-time': 9.0.2 '@effect-ts/core': ^0.60.4 @@ -877,7 +877,7 @@ importers: dependencies: '@azure/arm-appservice': 13.0.3 '@azure/arm-resources': 5.2.0 - '@azure/cosmos': 4.1.0 + '@azure/cosmos': 4.1.1 '@azure/identity': 2.1.0 '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-core': link:../framework-core @@ -912,7 +912,7 @@ importers: '@types/fs-extra': 9.0.13 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.46 + '@types/node': 18.19.49 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 @@ -920,7 +920,7 @@ importers: '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry eslint: 8.57.0 eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.29.1_eslint@8.57.0 + eslint-plugin-import: 2.30.0_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 faker: 5.1.0 @@ -929,14 +929,14 @@ importers: prettier: 2.3.0 rimraf: 5.0.10 sinon: 9.2.3 - ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm + ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu typescript: 5.1.6 ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^2.17.0 - '@boostercloud/framework-common-helpers': workspace:^2.17.0 - '@boostercloud/framework-types': workspace:^2.17.0 + '@boostercloud/eslint-config': workspace:^2.18.0 + '@boostercloud/framework-common-helpers': workspace:^2.18.0 + '@boostercloud/framework-types': workspace:^2.18.0 '@effect-ts/core': ^0.60.4 '@seald-io/nedb': 4.0.2 '@types/chai': 4.2.18 @@ -985,7 +985,7 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.46 + '@types/node': 18.19.49 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/sinon-express-mock': 1.3.12 @@ -996,7 +996,7 @@ importers: chai-as-promised: 7.1.1_chai@4.2.0 eslint: 8.57.0 eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.29.1_eslint@8.57.0 + eslint-plugin-import: 2.30.0_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 express: 4.19.2 @@ -1008,15 +1008,15 @@ importers: sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm + ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu typescript: 5.1.6 ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^2.17.0 - '@boostercloud/framework-common-helpers': workspace:^2.17.0 - '@boostercloud/framework-provider-local': workspace:^2.17.0 - '@boostercloud/framework-types': workspace:^2.17.0 + '@boostercloud/eslint-config': workspace:^2.18.0 + '@boostercloud/framework-common-helpers': workspace:^2.18.0 + '@boostercloud/framework-provider-local': workspace:^2.18.0 + '@boostercloud/framework-types': workspace:^2.18.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1069,7 +1069,7 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.46 + '@types/node': 18.19.49 '@types/node-schedule': 1.3.2 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -1080,7 +1080,7 @@ importers: chai-as-promised: 7.1.1_chai@4.2.0 eslint: 8.57.0 eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.29.1_eslint@8.57.0 + eslint-plugin-import: 2.30.0_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 faker: 5.1.0 @@ -1091,13 +1091,13 @@ importers: sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm + ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu typescript: 5.1.6 ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^2.17.0 - '@boostercloud/metadata-booster': workspace:^2.17.0 + '@boostercloud/eslint-config': workspace:^2.18.0 + '@boostercloud/metadata-booster': workspace:^2.18.0 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@effect/cli': 0.35.26 @@ -1156,7 +1156,7 @@ importers: '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/mocha': 10.0.1 - '@types/node': 18.19.46 + '@types/node': 18.19.49 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 @@ -1166,7 +1166,7 @@ importers: chai-as-promised: 7.1.1_chai@4.2.0 eslint: 8.57.0 eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.29.1_eslint@8.57.0 + eslint-plugin-import: 2.30.0_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 fast-check: 3.22.0 @@ -1181,7 +1181,7 @@ importers: ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^2.17.0 + '@boostercloud/eslint-config': workspace:^2.18.0 '@effect-ts/core': ^0.60.4 '@types/node': ^18.18.2 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -1207,18 +1207,18 @@ importers: tslib: 2.7.0 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config - '@types/node': 18.19.46 + '@types/node': 18.19.49 '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry eslint: 8.57.0 eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.29.1_eslint@8.57.0 + eslint-plugin-import: 2.30.0_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 prettier: 2.3.0 rimraf: 5.0.10 sinon: 9.2.3 - ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm + ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu ts-patch: 3.1.2 typescript: 5.1.6 @@ -1238,7 +1238,7 @@ importers: '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry eslint: 8.57.0 eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.29.1_eslint@8.57.0 + eslint-plugin-import: 2.30.0_eslint@8.57.0 eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae devDependencies: eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 @@ -3003,8 +3003,8 @@ packages: tslib: 2.7.0 dev: false - /@azure/cosmos/4.1.0: - resolution: {integrity: sha512-+m085WKIGkf6wyw4vT85FFXl9j3U35u+LFFVwmLqfPbolnQAtoX24cowXz+vseW4BWKyx6Lamb+Zz+jl69zn6g==} + /@azure/cosmos/4.1.1: + resolution: {integrity: sha512-EKcRHZy3enhz7hU/qlwW2urcoF7haFkQRbLhR+rUaAtzDaN6+F/rH4xJtNc94NjOEoeHUI+bkze63ZA55Gca0A==} engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 @@ -3128,7 +3128,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.24.7 - picocolors: 1.0.1 + picocolors: 1.1.0 /@babel/compat-data/7.25.4: resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} @@ -3141,14 +3141,14 @@ packages: dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.5 + '@babel/generator': 7.25.6 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-module-transforms': 7.25.2_@babel+core@7.25.2 - '@babel/helpers': 7.25.0 - '@babel/parser': 7.25.4 + '@babel/helpers': 7.25.6 + '@babel/parser': 7.25.6 '@babel/template': 7.25.0 - '@babel/traverse': 7.25.4 - '@babel/types': 7.25.4 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 convert-source-map: 2.0.0 debug: 4.3.6 gensync: 1.0.0-beta.2 @@ -3158,11 +3158,11 @@ packages: - supports-color dev: true - /@babel/generator/7.25.5: - resolution: {integrity: sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w==} + /@babel/generator/7.25.6: + resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.25.4 + '@babel/types': 7.25.6 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 @@ -3182,8 +3182,8 @@ packages: resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.25.4 - '@babel/types': 7.25.4 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color dev: true @@ -3198,7 +3198,7 @@ packages: '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.4 + '@babel/traverse': 7.25.6 transitivePeerDependencies: - supports-color dev: true @@ -3207,8 +3207,8 @@ packages: resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.25.4 - '@babel/types': 7.25.4 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 transitivePeerDependencies: - supports-color dev: true @@ -3226,12 +3226,12 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helpers/7.25.0: - resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} + /@babel/helpers/7.25.6: + resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.25.0 - '@babel/types': 7.25.4 + '@babel/types': 7.25.6 dev: true /@babel/highlight/7.24.7: @@ -3241,17 +3241,17 @@ packages: '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.1 + picocolors: 1.1.0 - /@babel/parser/7.25.4: - resolution: {integrity: sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==} + /@babel/parser/7.25.6: + resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.25.4 + '@babel/types': 7.25.6 - /@babel/runtime/7.25.4: - resolution: {integrity: sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w==} + /@babel/runtime/7.25.6: + resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 @@ -3262,26 +3262,26 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.4 - '@babel/types': 7.25.4 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 - /@babel/traverse/7.25.4: - resolution: {integrity: sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==} + /@babel/traverse/7.25.6: + resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.5 - '@babel/parser': 7.25.4 + '@babel/generator': 7.25.6 + '@babel/parser': 7.25.6 '@babel/template': 7.25.0 - '@babel/types': 7.25.4 + '@babel/types': 7.25.6 debug: 4.3.6 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types/7.25.4: - resolution: {integrity: sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==} + /@babel/types/7.25.6: + resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.24.8 @@ -3302,14 +3302,14 @@ packages: chalk: 4.1.2 chokidar: 3.6.0 cli-spinners: 2.7.0 - codemaker: 1.102.0 + codemaker: 1.103.1 constructs: 10.3.0 cross-fetch: 3.1.5 cross-spawn: 7.0.3 detect-port: 1.6.1 execa: 5.1.1 extract-zip: 2.0.1 - follow-redirects: 1.15.6 + follow-redirects: 1.15.8 fs-extra: 8.1.0 https-proxy-agent: 5.0.1 indent-string: 4.0.0 @@ -3318,9 +3318,9 @@ packages: ink-spinner: 4.0.3_ink@3.2.0+react@17.0.2 ink-testing-library: 2.1.0 ink-use-stdout-dimensions: 1.0.5_ink@3.2.0+react@17.0.2 - jsii: 5.5.1 - jsii-pacmak: 1.102.0 - jsii-srcmak: 0.1.1226 + jsii: 5.5.2 + jsii-pacmak: 1.103.1 + jsii-srcmak: 0.1.1233 lodash.isequal: 4.5.0 log4js: 6.9.1 minimatch: 5.1.6 @@ -3355,10 +3355,10 @@ packages: '@sentry/node': 7.119.0 cdktf: 0.19.2_constructs@10.3.0 ci-info: 3.9.0 - codemaker: 1.102.0 + codemaker: 1.103.1 constructs: 10.3.0 cross-spawn: 7.0.3 - follow-redirects: 1.15.6 + follow-redirects: 1.15.8 fs-extra: 11.2.0 is-valid-domain: 0.1.6 log4js: 6.9.1 @@ -3370,9 +3370,9 @@ packages: /@cdktf/hcl2cdk/0.19.2: resolution: {integrity: sha512-v0UNRvvzuCi3SnmSAgBFAnWavT0ybR1AzkK8ndgfbB5JLDoNm0iJV0MOTURZF+I0O3V9u4RZsw4DVNPdil2EEA==} dependencies: - '@babel/generator': 7.25.5 + '@babel/generator': 7.25.6 '@babel/template': 7.25.0 - '@babel/types': 7.25.4 + '@babel/types': 7.25.6 '@cdktf/commons': 0.19.2 '@cdktf/hcl2json': 0.19.2 '@cdktf/provider-generator': 0.19.2 @@ -3382,7 +3382,7 @@ packages: glob: 10.4.5 graphology: 0.25.4_graphology-types@0.24.7 graphology-types: 0.24.7 - jsii-rosetta: 5.5.1 + jsii-rosetta: 5.5.4 prettier: 2.8.8 reserved-words: 0.1.2 zod: 3.23.8 @@ -3420,10 +3420,10 @@ packages: '@cdktf/hcl2json': 0.19.2 '@cdktf/provider-schema': 0.19.2 '@types/node': 18.18.8 - codemaker: 1.102.0 + codemaker: 1.103.1 deepmerge: 4.3.1 fs-extra: 8.1.0 - jsii-srcmak: 0.1.1226 + jsii-srcmak: 0.1.1233 transitivePeerDependencies: - debug - supports-color @@ -3488,7 +3488,7 @@ packages: effect: 2.4.17 ini: 4.1.3 toml: 3.0.0 - yaml: 2.5.0 + yaml: 2.5.1 dev: false /@effect/platform-node-shared/0.3.29_cahjalgelcnk6vcj6x2oc46m3a: @@ -3639,7 +3639,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.5.2 + '@inquirer/type': 1.5.3 ansi-escapes: 4.3.2 chalk: 4.1.2 figures: 3.2.0 @@ -3649,16 +3649,16 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.5.2 + '@inquirer/type': 1.5.3 chalk: 4.1.2 /@inquirer/core/2.3.1: resolution: {integrity: sha512-faYAYnIfdEuns3jGKykaog5oUqFiEVbCx9nXGZfUhyEEpKcHt5bpJfZTb3eOBQKo8I/v4sJkZeBHmFlSZQuBCw==} engines: {node: '>=14.18.0'} dependencies: - '@inquirer/type': 1.5.2 + '@inquirer/type': 1.5.3 '@types/mute-stream': 0.0.1 - '@types/node': 20.16.1 + '@types/node': 20.16.4 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3675,9 +3675,9 @@ packages: resolution: {integrity: sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==} engines: {node: '>=14.18.0'} dependencies: - '@inquirer/type': 1.5.2 + '@inquirer/type': 1.5.3 '@types/mute-stream': 0.0.4 - '@types/node': 20.16.1 + '@types/node': 20.16.4 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3695,7 +3695,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.5.2 + '@inquirer/type': 1.5.3 chalk: 4.1.2 external-editor: 3.1.0 @@ -3704,7 +3704,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.5.2 + '@inquirer/type': 1.5.3 chalk: 4.1.2 figures: 3.2.0 @@ -3713,7 +3713,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.5.2 + '@inquirer/type': 1.5.3 chalk: 4.1.2 /@inquirer/password/1.1.16: @@ -3721,7 +3721,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.5.2 + '@inquirer/type': 1.5.3 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3744,7 +3744,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.5.2 + '@inquirer/type': 1.5.3 chalk: 4.1.2 /@inquirer/select/1.3.3: @@ -3752,13 +3752,13 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.5.2 + '@inquirer/type': 1.5.3 ansi-escapes: 4.3.2 chalk: 4.1.2 figures: 3.2.0 - /@inquirer/type/1.5.2: - resolution: {integrity: sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==} + /@inquirer/type/1.5.3: + resolution: {integrity: sha512-xUQ14WQGR/HK5ei+2CvgcwoH9fQ4PgPGmVFSN0pc1+fVyDL3MREhyAY7nxEErSu6CkllBM3D7e3e+kOvtu+eIg==} engines: {node: '>=18'} dependencies: mute-stream: 1.0.0 @@ -3821,15 +3821,22 @@ packages: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - /@jsii/check-node/1.102.0: - resolution: {integrity: sha512-uyKjxCe1ou11RJz6koBr5vXtyaGjTA45hF+H88GNW96vms7jKqmYdMm067Az1OKwl38h02lQRQ2tmoEzV7u74w==} + /@jsii/check-node/1.103.0: + resolution: {integrity: sha512-fnlzGcQSJ5/SPSOoSv7qaJMSARz2MN7gER0ZKbkHhTrBQU3A/TNrLvTLzOtRnygx9xOlKZkgt05UXG5Ovr4iww==} engines: {node: '>= 14.17.0'} dependencies: chalk: 4.1.2 semver: 7.6.3 - /@jsii/spec/1.102.0: - resolution: {integrity: sha512-/VcmoEyp7HR0xoFz47/fiyZjAv+0gHG4ZwTbgB+umbB88bTbLZadnqBL7T9OIKQbK4w8HNOaRnHwjNBIYIPxWQ==} + /@jsii/check-node/1.103.1: + resolution: {integrity: sha512-Vi6ONm5WXEim98a2DJ6WMlrP/w5AGzXrrQBpGcfVV7cu86DPx1L0OAZnqzGAJE8ly0VfcSXkmxJ9LFcn3jylBQ==} + engines: {node: '>= 14.17.0'} + dependencies: + chalk: 4.1.2 + semver: 7.6.3 + + /@jsii/spec/1.103.1: + resolution: {integrity: sha512-14OGYM3DjEBjUOUaih+bwPgkhFnR8L9TSNSM0oE0L0hjWscTapvClqOgMDJ1ID52qkROCAgKl1d71Vmm4v0Buw==} engines: {node: '>= 14.17.0'} dependencies: ajv: 8.17.1 @@ -3864,7 +3871,7 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - /@oclif/core/2.16.0_lkkcy4kiv3gczc6zag7kwihdkm: + /@oclif/core/2.16.0_45rz2fqkboejwckriajjmu7obu: resolution: {integrity: sha512-dL6atBH0zCZl1A1IXCKJgLPrM/wR7K+Wi401E/IvqsK8m2iCHW+0TEOGrans/cuN3oTW+uxIyJFHJ8Im0k4qBw==} engines: {node: '>=14.0.0'} dependencies: @@ -3891,7 +3898,7 @@ packages: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - ts-node: 10.9.2_lkkcy4kiv3gczc6zag7kwihdkm + ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu tslib: 2.7.0 widest-line: 3.1.0 wordwrap: 1.0.0 @@ -3930,7 +3937,7 @@ packages: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - tsconfck: 3.1.1_typescript@5.1.6 + tsconfck: 3.1.3_typescript@5.1.6 widest-line: 3.1.0 wordwrap: 1.0.0 wrap-ansi: 7.0.0 @@ -3972,11 +3979,11 @@ packages: wrap-ansi: 7.0.0 dev: true - /@oclif/plugin-help/5.2.20_lkkcy4kiv3gczc6zag7kwihdkm: + /@oclif/plugin-help/5.2.20_45rz2fqkboejwckriajjmu7obu: resolution: {integrity: sha512-u+GXX/KAGL9S10LxAwNUaWdzbEBARJ92ogmM7g3gDVud2HioCmvWQCDohNRVZ9GYV9oKwZ/M8xwd6a1d95rEKQ==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.16.0_lkkcy4kiv3gczc6zag7kwihdkm + '@oclif/core': 2.16.0_45rz2fqkboejwckriajjmu7obu transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -4132,6 +4139,9 @@ packages: requiresBuild: true optional: true + /@rtsao/scc/1.1.0: + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + /@seald-io/binary-search-tree/1.0.3: resolution: {integrity: sha512-qv3jnwoakeax2razYaMsGI/luWdliBLHTdC6jU55hQt1hcFqzauH/HsBollQ7IR4ySTtYhT+xyHoijpA16C+tA==} @@ -4206,7 +4216,7 @@ packages: node-fetch: 2.7.0 open: 7.4.2 semver: 7.6.3 - simple-git: 3.25.0_supports-color@8.1.1 + simple-git: 3.26.0_supports-color@8.1.1 type: 2.7.3 uuid: 8.3.2 yamljs: 0.3.0 @@ -4229,9 +4239,9 @@ packages: resolution: {integrity: sha512-XltmO/029X76zi0LUFmhsnanhE2wnqH1xf+WBt5K8gumQA9LnrfwLgPxj+VA+mm6wQhy+PCp7H5SS0ZPu7F2Cw==} engines: {node: '>=10.0'} dependencies: - adm-zip: 0.5.15 + adm-zip: 0.5.16 archiver: 5.3.0 - axios: 1.7.5 + axios: 1.7.7 fast-glob: 3.3.2 https-proxy-agent: 5.0.1_supports-color@8.1.1 ignore: 5.3.2 @@ -4406,14 +4416,14 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 18.19.46 + '@types/node': 18.19.49 /@types/cacheable-request/6.0.3: resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 18.19.46 + '@types/node': 18.19.49 '@types/responselike': 1.0.3 dev: true @@ -4436,29 +4446,29 @@ packages: /@types/child-process-promise/2.2.6: resolution: {integrity: sha512-g0pOHijr6Trug43D2bV0PLSIsSHa/xHEES2HeX5BAlduq1vW0nZcq27Zeud5lgmNB+kPYYVqiMap32EHGTco/w==} dependencies: - '@types/node': 18.19.46 + '@types/node': 18.19.49 dev: true /@types/cli-progress/3.11.6: resolution: {integrity: sha512-cE3+jb9WRlu+uOSAugewNpITJDt1VF8dHOopPO4IABFc3SXYL5WE/+PTz/FCdZRRfIujiWW3n3aMbv1eIGVRWA==} dependencies: - '@types/node': 18.19.46 + '@types/node': 18.19.49 /@types/connect/3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 18.19.46 + '@types/node': 18.19.49 /@types/cors/2.8.17: resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 18.19.46 + '@types/node': 18.19.49 dev: true /@types/express-serve-static-core/4.19.5: resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} dependencies: - '@types/node': 18.19.46 + '@types/node': 18.19.49 '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -4478,14 +4488,14 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.19.46 + '@types/node': 18.19.49 dev: true /@types/glob/8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.19.46 + '@types/node': 18.19.49 /@types/http-cache-semantics/4.0.4: resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} @@ -4514,12 +4524,12 @@ packages: /@types/jsonwebtoken/9.0.1: resolution: {integrity: sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==} dependencies: - '@types/node': 18.19.46 + '@types/node': 18.19.49 /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 18.19.46 + '@types/node': 18.19.49 dev: true /@types/lodash/4.17.7: @@ -4543,29 +4553,29 @@ packages: /@types/mute-stream/0.0.1: resolution: {integrity: sha512-0yQLzYhCqGz7CQPE3iDmYjhb7KMBFOP+tBkyw+/Y2YyDI5wpS7itXXxneN1zSsUwWx3Ji6YiVYrhAnpQGS/vkw==} dependencies: - '@types/node': 18.19.46 + '@types/node': 18.19.49 /@types/mute-stream/0.0.4: resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} dependencies: - '@types/node': 18.19.46 + '@types/node': 18.19.49 /@types/nedb/1.8.16: resolution: {integrity: sha512-ND+uzwAZk7ZI9byOvHGOcZe2R9XUcLF698yDJKn00trFvh+GaemkX3gQKCSKtObjDpv8Uuou+k8v4x4scPr4TA==} dependencies: - '@types/node': 18.19.46 + '@types/node': 18.19.49 dev: true /@types/needle/2.5.3: resolution: {integrity: sha512-RwgTwMRaedfyCBe5SSWMpm1Yqzc5UPZEMw0eAd09OSyV93nLRj9/evMGZmgFeHKzUOd4xxtHvgtc+rjcBjI1Qg==} dependencies: - '@types/node': 18.19.46 + '@types/node': 18.19.49 dev: false /@types/node-schedule/1.3.2: resolution: {integrity: sha512-Y0CqdAr+lCpArT8CJJjJq4U2v8Bb5e7ru2nV/NhDdaptCMCRdOL3Y7tAhen39HluQMaIKWvPbDuiFBUQpg7Srw==} dependencies: - '@types/node': 18.19.46 + '@types/node': 18.19.49 dev: true /@types/node/10.17.60: @@ -4577,13 +4587,13 @@ packages: dependencies: undici-types: 5.26.5 - /@types/node/18.19.46: - resolution: {integrity: sha512-vnRgMS7W6cKa1/0G3/DTtQYpVrZ8c0Xm6UkLaVFrb9jtcVC3okokW09Ki1Qdrj9ISokszD69nY4WDLRlvHlhAA==} + /@types/node/18.19.49: + resolution: {integrity: sha512-ALCeIR6n0nQ7j0FUF1ycOhrp6+XutJWqEu/vtdEqXFUQwkBfgUA5cEg3ZNmjWGF/ZYA/FcF9QMkL55Ar0O6UrA==} dependencies: undici-types: 5.26.5 - /@types/node/20.16.1: - resolution: {integrity: sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ==} + /@types/node/20.16.4: + resolution: {integrity: sha512-ioyQ1zK9aGEomJ45zz8S8IdzElyxhvP1RVWnPrXDf6wFaUb+kk1tEcVVJkF7RPGM0VWI7cp5U57oCPIn5iN1qg==} dependencies: undici-types: 6.19.8 @@ -4600,7 +4610,7 @@ packages: /@types/responselike/1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 18.19.46 + '@types/node': 18.19.49 dev: true /@types/rewire/2.5.30: @@ -4614,13 +4624,13 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.46 + '@types/node': 18.19.49 /@types/serve-static/1.15.7: resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/node': 18.19.46 + '@types/node': 18.19.49 '@types/send': 0.17.4 /@types/sinon-chai/3.2.5: @@ -4645,7 +4655,7 @@ packages: /@types/through/0.0.33: resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} dependencies: - '@types/node': 18.19.46 + '@types/node': 18.19.49 dev: true /@types/uuid/8.3.0: @@ -4662,14 +4672,14 @@ packages: /@types/ws/8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 18.19.46 + '@types/node': 18.19.49 dev: true /@types/yauzl/2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 18.19.46 + '@types/node': 18.19.49 optional: true /@types/yoga-layout/1.9.2: @@ -4865,8 +4875,8 @@ packages: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} - /adm-zip/0.5.15: - resolution: {integrity: sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==} + /adm-zip/0.5.16: + resolution: {integrity: sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==} engines: {node: '>=12.0'} dev: true @@ -5181,8 +5191,8 @@ packages: fsevents: 2.3.2 dev: false - /aws-sdk/2.1683.0: - resolution: {integrity: sha512-uy53mN2oHU0Jx5tkH7qG6h/42DeMAQD5jMi/6294hVgGCa29MK/ZiFIOdkEJNS9tbB03RTabg+5i4c6DxBpG8g==} + /aws-sdk/2.1688.0: + resolution: {integrity: sha512-L7AWt2+09uDQQfNRUaxvKEM+qHJdwBOln7xiMZg1kE1iNSGSQlwDPGYSFXwdMJDKJkeitJvhFrDhxon3cQ3ppA==} engines: {node: '>= 10.0.0'} requiresBuild: true dependencies: @@ -5211,10 +5221,10 @@ packages: uuid: 3.3.2 xml2js: 0.4.19 - /axios/1.7.5: - resolution: {integrity: sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==} + /axios/1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} dependencies: - follow-redirects: 1.15.6 + follow-redirects: 1.15.8 form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -5300,7 +5310,7 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001653 + caniuse-lite: 1.0.30001655 electron-to-chromium: 1.5.13 node-releases: 2.0.18 update-browserslist-db: 1.1.0_browserslist@4.23.3 @@ -5416,8 +5426,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - /caniuse-lite/1.0.30001653: - resolution: {integrity: sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==} + /caniuse-lite/1.0.30001655: + resolution: {integrity: sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==} dev: true /cardinal/2.1.1: @@ -5439,7 +5449,7 @@ packages: '@aws-cdk/cloud-assembly-schema': 2.39.1 '@aws-cdk/cx-api': 2.39.1 archiver: 5.3.2 - aws-sdk: 2.1683.0 + aws-sdk: 2.1688.0 glob: 7.2.3 mime: 2.6.0 yargs: 16.2.0 @@ -5457,14 +5467,14 @@ packages: '@sentry/node': 7.119.0 cdktf: 0.19.2_constructs@10.3.0 ci-info: 3.9.0 - codemaker: 1.102.0 + codemaker: 1.103.1 constructs: 10.3.0 cross-spawn: 7.0.3 https-proxy-agent: 5.0.1 ink-select-input: 4.2.2_ink@3.2.0+react@17.0.2 ink-table: 3.1.0_ink@3.2.0+react@17.0.2 - jsii: 5.5.1 - jsii-pacmak: 1.102.0 + jsii: 5.5.2 + jsii-pacmak: 1.103.1 minimatch: 5.1.6 node-fetch: 2.7.0 pidtree: 0.6.0 @@ -5789,8 +5799,8 @@ packages: dependencies: convert-to-spaces: 1.0.2 - /codemaker/1.102.0: - resolution: {integrity: sha512-lxsbbcSMxCdT+9wUv1AvBH9791andoWDcQ6s7ZK6KsMZ+UkRLO3obzhi7Zm+RIA3lHecqzaGmOKyRnu0Dx/Zew==} + /codemaker/1.103.1: + resolution: {integrity: sha512-y3Ru0bZV6qiuPAt8c/Hik1dCI0dVb6lj/6gAIWckvNYVu5FS51avr3FU/mRtuPrY3b1bW/EA0pszGB/P54Bl5A==} engines: {node: '>= 14.17.0'} dependencies: camelcase: 6.3.0 @@ -6059,7 +6069,7 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.25.4 + '@babel/runtime': 7.25.6 dev: true /date-format/4.0.14: @@ -6382,7 +6392,7 @@ packages: dependencies: semver: 7.6.3 shelljs: 0.8.5 - typescript: 5.7.0-dev.20240827 + typescript: 5.7.0-dev.20240904 /duration/0.2.2: resolution: {integrity: sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==} @@ -6599,8 +6609,8 @@ packages: es6-symbol: 3.1.4 dev: true - /escalade/3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + /escalade/3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} /escape-html/1.0.3: @@ -6633,8 +6643,8 @@ packages: is-core-module: 2.15.1 resolve: 1.22.8 - /eslint-module-utils/2.8.2_eslint@8.57.0: - resolution: {integrity: sha512-3XnC5fDyc8M4J2E8pt8pmSVRX2M+5yWMCfI/kDZwauQeFgzQOuhcRBFKjTeJagqgk4sFKxe1mvNVnaWwImx/Tg==} + /eslint-module-utils/2.9.0_eslint@8.57.0: + resolution: {integrity: sha512-McVbYmwA3NEKwRQY5g4aWMdcZE5xZxV8i8l7CqJSrameuGSQJtSWaL/LxTEzSKKaCcOhlpDR8XEfYXWPrdo/ZQ==} engines: {node: '>=4'} peerDependencies: eslint: '*' @@ -6645,12 +6655,13 @@ packages: debug: 3.2.7 eslint: 8.57.0 - /eslint-plugin-import/2.29.1_eslint@8.57.0: - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + /eslint-plugin-import/2.30.0_eslint@8.57.0: + resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==} engines: {node: '>=4'} peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 dependencies: + '@rtsao/scc': 1.1.0 array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 @@ -6659,7 +6670,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.2_eslint@8.57.0 + eslint-module-utils: 2.9.0_eslint@8.57.0 hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -7064,7 +7075,7 @@ packages: dependencies: '@types/chai': 4.2.18 '@types/lodash': 4.17.7 - '@types/node': 18.19.46 + '@types/node': 18.19.49 '@types/sinon': 10.0.0 lodash: 4.17.21 mock-stdin: 1.0.0 @@ -7286,8 +7297,8 @@ packages: /flatted/3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - /follow-redirects/1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + /follow-redirects/1.15.8: + resolution: {integrity: sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -8409,71 +8420,71 @@ packages: engines: {node: '>=4'} hasBin: true - /jsii-pacmak/1.102.0: - resolution: {integrity: sha512-3/nqBYNH8n/5IWI0sBFBYl1yATokEDUDQtYFLjzk7oXNWpUJ23/encI78Cs55ZS6UXcfWN3xczGLqCWnsgEpnw==} + /jsii-pacmak/1.103.1: + resolution: {integrity: sha512-2zzm/OYsdbxcaYuq4n0o2lQAPQ5Fo+T+sQJPGFeMXD0kgDZTNqXv21FdsKBKuQ/DutxTATOaZ7gTXEDK1n7/RQ==} engines: {node: '>= 14.17.0'} hasBin: true peerDependencies: - jsii-rosetta: ^1.102.0 || ~5.2.0 || ~5.3.0 || ~5.4.0 + jsii-rosetta: ^1.103.1 || ~5.2.0 || ~5.3.0 || ~5.4.0 || ~5.5.0 dependencies: - '@jsii/check-node': 1.102.0 - '@jsii/spec': 1.102.0 + '@jsii/check-node': 1.103.1 + '@jsii/spec': 1.103.1 clone: 2.1.2 - codemaker: 1.102.0 + codemaker: 1.103.1 commonmark: 0.31.1 escape-string-regexp: 4.0.0 fs-extra: 10.1.0 - jsii-reflect: 1.102.0 + jsii-reflect: 1.103.1 semver: 7.6.3 spdx-license-list: 6.9.0 xmlbuilder: 15.1.1 yargs: 16.2.0 - /jsii-pacmak/1.102.0_jsii-rosetta@5.5.1: - resolution: {integrity: sha512-3/nqBYNH8n/5IWI0sBFBYl1yATokEDUDQtYFLjzk7oXNWpUJ23/encI78Cs55ZS6UXcfWN3xczGLqCWnsgEpnw==} + /jsii-pacmak/1.103.1_jsii-rosetta@5.5.4: + resolution: {integrity: sha512-2zzm/OYsdbxcaYuq4n0o2lQAPQ5Fo+T+sQJPGFeMXD0kgDZTNqXv21FdsKBKuQ/DutxTATOaZ7gTXEDK1n7/RQ==} engines: {node: '>= 14.17.0'} hasBin: true peerDependencies: - jsii-rosetta: ^1.102.0 || ~5.2.0 || ~5.3.0 || ~5.4.0 + jsii-rosetta: ^1.103.1 || ~5.2.0 || ~5.3.0 || ~5.4.0 || ~5.5.0 dependencies: - '@jsii/check-node': 1.102.0 - '@jsii/spec': 1.102.0 + '@jsii/check-node': 1.103.1 + '@jsii/spec': 1.103.1 clone: 2.1.2 - codemaker: 1.102.0 + codemaker: 1.103.1 commonmark: 0.31.1 escape-string-regexp: 4.0.0 fs-extra: 10.1.0 - jsii-reflect: 1.102.0 - jsii-rosetta: 5.5.1 + jsii-reflect: 1.103.1 + jsii-rosetta: 5.5.4 semver: 7.6.3 spdx-license-list: 6.9.0 xmlbuilder: 15.1.1 yargs: 16.2.0 - /jsii-reflect/1.102.0: - resolution: {integrity: sha512-Lf2l8z3HSRSyouFGpDddfheP2LznKvFDKVlUWEzO+jDnQFOJOYTv4x617Yy5JIeIa9D8f70drRelOqove6hZtQ==} + /jsii-reflect/1.103.1: + resolution: {integrity: sha512-kFm09KL9dlxyxesf7mtm12+4vVaRin5YI4Eca2OOa0X28HNVpr62/n21T3BuAAhFaI0nkiUoJuBWtdOz475BSQ==} engines: {node: '>= 14.17.0'} hasBin: true dependencies: - '@jsii/check-node': 1.102.0 - '@jsii/spec': 1.102.0 + '@jsii/check-node': 1.103.1 + '@jsii/spec': 1.103.1 chalk: 4.1.2 fs-extra: 10.1.0 - oo-ascii-tree: 1.102.0 + oo-ascii-tree: 1.103.1 yargs: 16.2.0 - /jsii-rosetta/5.5.1: - resolution: {integrity: sha512-7rLkwjtEKZ/lgxgu53XIx42KzadKosx+tajMPqNKvBGT21XhV9+pr60uBJ/aX+wJ85S49dlF3D0P3ujKK3jgwg==} + /jsii-rosetta/5.5.4: + resolution: {integrity: sha512-hTIjmP9KmOptBm881r1aFq7CLi4agNvy4GOgbupF/K4pAFBH1hTJ4xL9NBxQxhEuWi3rRFQA72Z6aYz1AHcuIg==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: - '@jsii/check-node': 1.102.0 - '@jsii/spec': 1.102.0 + '@jsii/check-node': 1.103.0 + '@jsii/spec': 1.103.1 '@xmldom/xmldom': 0.8.10 chalk: 4.1.2 commonmark: 0.31.1 fast-glob: 3.3.2 - jsii: 5.5.1 + jsii: 5.5.2 semver: 7.6.3 semver-intersect: 1.5.0 stream-json: 1.8.0 @@ -8483,26 +8494,26 @@ packages: transitivePeerDependencies: - supports-color - /jsii-srcmak/0.1.1226: - resolution: {integrity: sha512-8cn7ws1rgc3B1ONT0Fsf7geowpdABVB1sNBa19x9NG8MiEGo/t1S4wG2EY6PGwYIEr5zwBnQyIY6uVyt26vbSg==} + /jsii-srcmak/0.1.1233: + resolution: {integrity: sha512-KVJ1b7fc3oJLFjwsWqyP4/nzoJ+bl5IKs5LcjoMTEHm2hPUH8TZxWBVLWvZIKNtLeBQO24O4TvZZ6jwJtHwliQ==} hasBin: true dependencies: fs-extra: 9.1.0 - jsii: 5.5.1 - jsii-pacmak: 1.102.0_jsii-rosetta@5.5.1 - jsii-rosetta: 5.5.1 + jsii: 5.5.2 + jsii-pacmak: 1.103.1_jsii-rosetta@5.5.4 + jsii-rosetta: 5.5.4 ncp: 2.0.0 yargs: 17.7.2 transitivePeerDependencies: - supports-color - /jsii/5.5.1: - resolution: {integrity: sha512-YEkXUyCLU97geGu0pv5l2gP1P1S0ZMvanYI4FKvmsSHCtNXV//jIBI0Q80yjdUi7k5XQL1ECs+m4+IZHAEb92w==} + /jsii/5.5.2: + resolution: {integrity: sha512-pXvOPzn0pK4pvNF+vl9OjeI+49YDsKnx/CRgu5SoTYNh3HFsWhNg8OukEgW+vyKw6l1ohZQLZfikKnIehe4WZQ==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: - '@jsii/check-node': 1.102.0 - '@jsii/spec': 1.102.0 + '@jsii/check-node': 1.103.1 + '@jsii/spec': 1.103.1 case: 1.6.3 chalk: 4.1.2 downlevel-dts: 0.11.0 @@ -9569,8 +9580,8 @@ packages: dependencies: mimic-fn: 2.1.0 - /oo-ascii-tree/1.102.0: - resolution: {integrity: sha512-SNcZNfqtov0Af+6hx+qnliUhTOIxPUfboX/zQnc2EdmGHLXKQ3eSPQ40NopCgv4canzl5EvKGlCJaMCvk2viCQ==} + /oo-ascii-tree/1.103.1: + resolution: {integrity: sha512-X0nmbb8xUUi637JXzCxY/K4AtO/I0fB5b7iiGaHJHu8IXBWV8TnQ4xqa0Igb/NoAg3OP2uXNhSeiTsErETOA/g==} engines: {node: '>= 14.17.0'} /open/7.4.2: @@ -9845,8 +9856,8 @@ packages: /pend/1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - /picocolors/1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + /picocolors/1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -10539,7 +10550,7 @@ packages: ajv: 8.17.1 ajv-formats: 2.1.1 archiver: 5.3.0 - aws-sdk: 2.1683.0 + aws-sdk: 2.1688.0 bluebird: 3.7.2 cachedir: 2.4.0 chalk: 4.1.2 @@ -10691,8 +10702,8 @@ packages: once: 1.4.0 simple-concat: 1.0.1 - /simple-git/3.25.0_supports-color@8.1.1: - resolution: {integrity: sha512-KIY5sBnzc4yEcJXW7Tdv4viEz8KyG+nU0hay+DWZasvdFOYKeUZ6Xc25LUHHjw0tinPT7O1eY6pzX7pRT1K8rw==} + /simple-git/3.26.0_supports-color@8.1.1: + resolution: {integrity: sha512-5tbkCSzuskR6uA7uA23yjasmA0RzugVo8QM2bpsnxkrgP13eisFT7TMS4a+xKEJvbmr4qf+l0WT3eKa9IxxUyw==} dependencies: '@kwsites/file-exists': 1.1.1_supports-color@8.1.1 '@kwsites/promise-deferred': 1.1.1 @@ -11307,7 +11318,7 @@ packages: code-block-writer: 12.0.0 dev: false - /ts-node/10.9.2_lkkcy4kiv3gczc6zag7kwihdkm: + /ts-node/10.9.2_45rz2fqkboejwckriajjmu7obu: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -11326,7 +11337,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.46 + '@types/node': 18.19.49 acorn: 8.12.1 acorn-walk: 8.3.3 arg: 4.1.3 @@ -11349,8 +11360,8 @@ packages: strip-ansi: 6.0.1 dev: true - /tsconfck/3.1.1_typescript@5.1.6: - resolution: {integrity: sha512-00eoI6WY57SvZEVjm13stEVE90VkEdJAFGgpFLTsZbJyW/LwFQ7uQxJHWpZ2hzSWgCPKc9AnBnNP+0X7o3hAmQ==} + /tsconfck/3.1.3_typescript@5.1.6: + resolution: {integrity: sha512-ulNZP1SVpRDesxeMLON/LtWM8HIgAJEIVpVVhBM6gsmvQ8+Rh+ZG7FWGvHh7Ah3pRABwVJWklWCr/BTZSv0xnQ==} engines: {node: ^18 || >=20} hasBin: true peerDependencies: @@ -11512,8 +11523,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript/5.7.0-dev.20240827: - resolution: {integrity: sha512-qNwNQBg18O4Z5RRGb07O562OpDlAVlytNcKfqcx8JQRJcs3p/KLHXjr0FbUbJ3SKoxA2vaQ3Zt89YLWHuCXzUw==} + /typescript/5.7.0-dev.20240904: + resolution: {integrity: sha512-iGi6VWFGOuxPvDfwfK1/8C172NWzC5gtC4G2dxqCQehrr86WTfFkc9aWucynaxZdwQNMqG1Iu83bmXD7CNHCmg==} engines: {node: '>=14.17'} hasBin: true @@ -11572,8 +11583,8 @@ packages: browserslist: '>= 4.21.0' dependencies: browserslist: 4.23.3 - escalade: 3.1.2 - picocolors: 1.0.1 + escalade: 3.2.0 + picocolors: 1.1.0 dev: true /uri-js/4.4.1: @@ -11893,8 +11904,8 @@ packages: engines: {node: '>= 6'} dev: false - /yaml/2.5.0: - resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} + /yaml/2.5.1: + resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} engines: {node: '>= 14'} hasBin: true dev: false @@ -11977,7 +11988,7 @@ packages: engines: {node: '>=10'} dependencies: cliui: 7.0.4 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -11989,7 +12000,7 @@ packages: engines: {node: '>=12'} dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 diff --git a/packages/framework-core/src/decorators/projects.ts b/packages/framework-core/src/decorators/projects.ts index 55203f8ed..e14447016 100644 --- a/packages/framework-core/src/decorators/projects.ts +++ b/packages/framework-core/src/decorators/projects.ts @@ -14,6 +14,7 @@ type PropertyType = TObj[TProp] type JoinKeyType = | keyof TEntity | ReadModelJoinKeyFunction +type UUIDLike = string | UUID /** * Decorator to register a read model method as a projection @@ -105,7 +106,7 @@ type ProjectionMethod< > = TJoinKeyType extends ReadModelJoinKeyFunction ? ProjectionMethodWithEntityConditionalReadModelIdAndReadModel : TJoinKeyType extends keyof TEntity - ? PropertyType extends Array + ? NonNullable> extends Array ? ProjectionMethodWithEntityReadModelIdAndReadModel : ProjectionMethodWithEntityAndReadModel : never From 994ac46d5dc85b25318f755c5bff7de00b6476ef Mon Sep 17 00:00:00 2001 From: GITHUBACTION Date: Wed, 4 Sep 2024 18:51:47 +0000 Subject: [PATCH 19/47] Bump versions [skip ci] --- ...x_projects_decorator_2024-09-04-11-50.json | 10 ------- common/config/rush/version-policies.json | 2 +- packages/application-tester/package.json | 6 ++-- packages/cli/package.json | 10 +++---- .../framework-common-helpers/package.json | 6 ++-- packages/framework-core/CHANGELOG.json | 28 +++++++++++++++++++ packages/framework-core/CHANGELOG.md | 9 +++++- packages/framework-core/package.json | 10 +++---- .../framework-integration-tests/package.json | 28 +++++++++---------- .../package.json | 10 +++---- packages/framework-provider-aws/package.json | 8 +++--- .../package.json | 12 ++++---- .../framework-provider-azure/package.json | 8 +++--- .../package.json | 10 +++---- .../framework-provider-local/package.json | 8 +++--- packages/framework-types/package.json | 6 ++-- packages/metadata-booster/package.json | 4 +-- tools/eslint-config/package.json | 2 +- 18 files changed, 101 insertions(+), 76 deletions(-) delete mode 100644 common/changes/@boostercloud/framework-core/fix_projects_decorator_2024-09-04-11-50.json diff --git a/common/changes/@boostercloud/framework-core/fix_projects_decorator_2024-09-04-11-50.json b/common/changes/@boostercloud/framework-core/fix_projects_decorator_2024-09-04-11-50.json deleted file mode 100644 index f5a86db9d..000000000 --- a/common/changes/@boostercloud/framework-core/fix_projects_decorator_2024-09-04-11-50.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@boostercloud/framework-core", - "comment": "Fix types for Projects decorator", - "type": "patch" - } - ], - "packageName": "@boostercloud/framework-core" -} \ No newline at end of file diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 9fa4273c6..00243c72e 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -103,6 +103,6 @@ "definitionName": "lockStepVersion", "policyName": "booster", "mainProject": "@boostercloud/framework-core", - "version": "2.18.0" + "version": "2.18.1" } ] diff --git a/packages/application-tester/package.json b/packages/application-tester/package.json index 92c6ffd70..677de2aa8 100644 --- a/packages/application-tester/package.json +++ b/packages/application-tester/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/application-tester", - "version": "2.18.0", + "version": "2.18.1", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "application-tester" @@ -36,7 +36,7 @@ }, "dependencies": { "@apollo/client": "3.7.13", - "@boostercloud/framework-types": "workspace:^2.18.0", + "@boostercloud/framework-types": "workspace:^2.18.1", "cross-fetch": "3.1.5", "graphql": "^16.6.0", "jsonwebtoken": "9.0.1", @@ -48,7 +48,7 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.0", + "@boostercloud/eslint-config": "workspace:^2.18.1", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", "eslint": "^8.23.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 0cce5cf7e..c3c6faa4f 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/cli", "description": "CLI of the Booster Framework, the next level of abstraction for cloud-native applications", - "version": "2.18.0", + "version": "2.18.1", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -12,8 +12,8 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-core": "workspace:^2.18.0", - "@boostercloud/framework-types": "workspace:^2.18.0", + "@boostercloud/framework-core": "workspace:^2.18.1", + "@boostercloud/framework-types": "workspace:^2.18.1", "@oclif/core": "3.15.0", "@oclif/plugin-help": "^5", "chalk": "^2.4.2", @@ -30,8 +30,8 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.0", - "@boostercloud/application-tester": "workspace:^2.18.0", + "@boostercloud/eslint-config": "workspace:^2.18.1", + "@boostercloud/application-tester": "workspace:^2.18.1", "@oclif/test": "^3.0.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", diff --git a/packages/framework-common-helpers/package.json b/packages/framework-common-helpers/package.json index c65f65b78..57cf41a04 100644 --- a/packages/framework-common-helpers/package.json +++ b/packages/framework-common-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-common-helpers", - "version": "2.18.0", + "version": "2.18.1", "description": "Contains Booster common helpers used by the core and provider packages", "keywords": [ "framework-common-helpers" @@ -36,14 +36,14 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-types": "workspace:^2.18.0", + "@boostercloud/framework-types": "workspace:^2.18.1", "child-process-promise": "^2.2.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "class-transformer": "~0.5.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.0", + "@boostercloud/eslint-config": "workspace:^2.18.1", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/child-process-promise": "^2.2.1", diff --git a/packages/framework-core/CHANGELOG.json b/packages/framework-core/CHANGELOG.json index b114a13c2..05d403b71 100644 --- a/packages/framework-core/CHANGELOG.json +++ b/packages/framework-core/CHANGELOG.json @@ -1,6 +1,34 @@ { "name": "@boostercloud/framework-core", "entries": [ + { + "version": "2.18.1", + "tag": "@boostercloud/framework-core_v2.18.1", + "date": "Wed, 04 Sep 2024 18:51:46 GMT", + "comments": { + "patch": [ + { + "comment": "Fix types for Projects decorator", + "author": "Mario Castro Squella ", + "commit": "adf2902a7c508aab6782e29fa8e24c4e5cb105a4" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@boostercloud/framework-common-helpers\" from `^2.18.0` to `^2.18.1`" + }, + { + "comment": "Updating dependency \"@boostercloud/framework-types\" from `^2.18.0` to `^2.18.1`" + }, + { + "comment": "Updating dependency \"@boostercloud/metadata-booster\" from `^2.18.0` to `^2.18.1`" + }, + { + "comment": "Updating dependency \"@boostercloud/eslint-config\" from `^2.18.0` to `^2.18.1`" + } + ] + } + }, { "version": "2.18.0", "tag": "@boostercloud/framework-core_v2.18.0", diff --git a/packages/framework-core/CHANGELOG.md b/packages/framework-core/CHANGELOG.md index 6592e212a..b759a4d5c 100644 --- a/packages/framework-core/CHANGELOG.md +++ b/packages/framework-core/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @boostercloud/framework-core -This log was last generated on Thu, 29 Aug 2024 21:39:42 GMT and should not be manually modified. +This log was last generated on Wed, 04 Sep 2024 18:51:46 GMT and should not be manually modified. + +## 2.18.1 +Wed, 04 Sep 2024 18:51:46 GMT + +### Patches + +- Fix types for Projects decorator ## 2.18.0 Thu, 29 Aug 2024 21:39:42 GMT diff --git a/packages/framework-core/package.json b/packages/framework-core/package.json index e98ac3a5d..0101ef1a8 100644 --- a/packages/framework-core/package.json +++ b/packages/framework-core/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-core", - "version": "2.18.0", + "version": "2.18.1", "description": "Library for your Booster apps", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", @@ -37,8 +37,8 @@ "graphql": "^16.6.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.0", - "@boostercloud/framework-types": "workspace:^2.18.0", + "@boostercloud/framework-common-helpers": "workspace:^2.18.1", + "@boostercloud/framework-types": "workspace:^2.18.1", "fp-ts": "^2.11.0", "graphql-scalars": "^1.17.0", "graphql-subscriptions": "2.0.0", @@ -61,8 +61,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/metadata-booster": "workspace:^2.18.0", - "@boostercloud/eslint-config": "workspace:^2.18.0", + "@boostercloud/metadata-booster": "workspace:^2.18.1", + "@boostercloud/eslint-config": "workspace:^2.18.1", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-integration-tests/package.json b/packages/framework-integration-tests/package.json index e6e588b4a..b8a2eccad 100644 --- a/packages/framework-integration-tests/package.json +++ b/packages/framework-integration-tests/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-integration-tests", "description": "Example project for Booster", - "version": "2.18.0", + "version": "2.18.1", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -9,12 +9,12 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.0", - "@boostercloud/framework-core": "workspace:^2.18.0", - "@boostercloud/framework-provider-aws": "workspace:^2.18.0", - "@boostercloud/framework-provider-azure": "workspace:^2.18.0", - "@boostercloud/framework-provider-local": "workspace:^2.18.0", - "@boostercloud/framework-types": "workspace:^2.18.0", + "@boostercloud/framework-common-helpers": "workspace:^2.18.1", + "@boostercloud/framework-core": "workspace:^2.18.1", + "@boostercloud/framework-provider-aws": "workspace:^2.18.1", + "@boostercloud/framework-provider-azure": "workspace:^2.18.1", + "@boostercloud/framework-provider-local": "workspace:^2.18.1", + "@boostercloud/framework-types": "workspace:^2.18.1", "aws-sdk": "2.853.0", "graphql": "^16.6.0", "tslib": "^2.4.0", @@ -33,13 +33,13 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.0", - "@boostercloud/application-tester": "workspace:^2.18.0", - "@boostercloud/cli": "workspace:^2.18.0", - "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.18.0", - "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.18.0", - "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.18.0", - "@boostercloud/metadata-booster": "workspace:^2.18.0", + "@boostercloud/eslint-config": "workspace:^2.18.1", + "@boostercloud/application-tester": "workspace:^2.18.1", + "@boostercloud/cli": "workspace:^2.18.1", + "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.18.1", + "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.18.1", + "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.18.1", + "@boostercloud/metadata-booster": "workspace:^2.18.1", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-aws-infrastructure/package.json b/packages/framework-provider-aws-infrastructure/package.json index 72decc528..679965787 100644 --- a/packages/framework-provider-aws-infrastructure/package.json +++ b/packages/framework-provider-aws-infrastructure/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws-infrastructure", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.18.0", + "version": "2.18.1", "description": "Handle the Booster deployment process to AWS", "keywords": [ "framework-provider-aws-infrastructure" @@ -41,9 +41,9 @@ "@aws-cdk/aws-s3-deployment": "^1.170.0", "@aws-cdk/core": "^1.170.0", "@aws-cdk/cx-api": "^1.170.0", - "@boostercloud/framework-common-helpers": "workspace:^2.18.0", - "@boostercloud/framework-provider-aws": "workspace:^2.18.0", - "@boostercloud/framework-types": "workspace:^2.18.0", + "@boostercloud/framework-common-helpers": "workspace:^2.18.1", + "@boostercloud/framework-provider-aws": "workspace:^2.18.1", + "@boostercloud/framework-types": "workspace:^2.18.1", "constructs": "^3.3.69", "aws-cdk": "^1.170.0", "aws-sdk": "2.853.0", @@ -69,7 +69,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.0", + "@boostercloud/eslint-config": "workspace:^2.18.1", "@types/aws-lambda": "8.10.48", "@types/aws-sdk": "2.7.0", "@types/chai": "4.2.18", diff --git a/packages/framework-provider-aws/package.json b/packages/framework-provider-aws/package.json index 65f980e94..438d71a10 100644 --- a/packages/framework-provider-aws/package.json +++ b/packages/framework-provider-aws/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.18.0", + "version": "2.18.1", "description": "Handle Booster's integration with AWS", "keywords": [ "framework-provider-aws" @@ -24,8 +24,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.0", - "@boostercloud/framework-types": "workspace:^2.18.0", + "@boostercloud/framework-common-helpers": "workspace:^2.18.1", + "@boostercloud/framework-types": "workspace:^2.18.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4" }, @@ -43,7 +43,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.0", + "@boostercloud/eslint-config": "workspace:^2.18.1", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-azure-infrastructure/package.json b/packages/framework-provider-azure-infrastructure/package.json index 541db3782..1665549cb 100644 --- a/packages/framework-provider-azure-infrastructure/package.json +++ b/packages/framework-provider-azure-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure-infrastructure", - "version": "2.18.0", + "version": "2.18.1", "description": "Handle the Booster deployment process to Azure", "keywords": [ "framework-provider-azure-infrastructure" @@ -25,10 +25,10 @@ "dependencies": { "@azure/arm-appservice": "^13.0.0", "@azure/cosmos": "^4.0.0", - "@boostercloud/framework-common-helpers": "workspace:^2.18.0", - "@boostercloud/framework-core": "workspace:^2.18.0", - "@boostercloud/framework-provider-azure": "workspace:^2.18.0", - "@boostercloud/framework-types": "workspace:^2.18.0", + "@boostercloud/framework-common-helpers": "workspace:^2.18.1", + "@boostercloud/framework-core": "workspace:^2.18.1", + "@boostercloud/framework-provider-azure": "workspace:^2.18.1", + "@boostercloud/framework-types": "workspace:^2.18.1", "@cdktf/provider-azurerm": "11.2.0", "@cdktf/provider-time": "9.0.2", "@types/archiver": "5.1.0", @@ -67,7 +67,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.0", + "@boostercloud/eslint-config": "workspace:^2.18.1", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-azure/package.json b/packages/framework-provider-azure/package.json index d790f0a57..bb983de74 100644 --- a/packages/framework-provider-azure/package.json +++ b/packages/framework-provider-azure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure", - "version": "2.18.0", + "version": "2.18.1", "description": "Handle Booster's integration with Azure", "keywords": [ "framework-provider-azure" @@ -27,14 +27,14 @@ "@azure/functions": "^1.2.2", "@azure/identity": "~2.1.0", "@azure/event-hubs": "5.11.1", - "@boostercloud/framework-common-helpers": "workspace:^2.18.0", - "@boostercloud/framework-types": "workspace:^2.18.0", + "@boostercloud/framework-common-helpers": "workspace:^2.18.1", + "@boostercloud/framework-types": "workspace:^2.18.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "@azure/web-pubsub": "~1.1.0" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.0", + "@boostercloud/eslint-config": "workspace:^2.18.1", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-local-infrastructure/package.json b/packages/framework-provider-local-infrastructure/package.json index 44dc98780..f2e5d1b80 100644 --- a/packages/framework-provider-local-infrastructure/package.json +++ b/packages/framework-provider-local-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local-infrastructure", - "version": "2.18.0", + "version": "2.18.1", "description": "Handle the Booster running process of the local runtime", "keywords": [ "framework-provider-local-infrastructure" @@ -23,9 +23,9 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.0", - "@boostercloud/framework-provider-local": "workspace:^2.18.0", - "@boostercloud/framework-types": "workspace:^2.18.0", + "@boostercloud/framework-common-helpers": "workspace:^2.18.1", + "@boostercloud/framework-provider-local": "workspace:^2.18.1", + "@boostercloud/framework-types": "workspace:^2.18.1", "cors": "2.8.5", "express": "^4.19.2", "node-schedule": "^2.1.0", @@ -46,7 +46,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.0", + "@boostercloud/eslint-config": "workspace:^2.18.1", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/cors": "^2.8.12", diff --git a/packages/framework-provider-local/package.json b/packages/framework-provider-local/package.json index 637b6710d..cddfd4c94 100644 --- a/packages/framework-provider-local/package.json +++ b/packages/framework-provider-local/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local", - "version": "2.18.0", + "version": "2.18.1", "description": "Debug your Booster projects locally", "keywords": [ "framework-provider-local" @@ -23,8 +23,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.0", - "@boostercloud/framework-types": "workspace:^2.18.0", + "@boostercloud/framework-common-helpers": "workspace:^2.18.1", + "@boostercloud/framework-types": "workspace:^2.18.1", "@seald-io/nedb": "4.0.2", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", @@ -44,7 +44,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.0", + "@boostercloud/eslint-config": "workspace:^2.18.1", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/express": "^4.17.21", diff --git a/packages/framework-types/package.json b/packages/framework-types/package.json index 9bcaae298..25cb264bd 100644 --- a/packages/framework-types/package.json +++ b/packages/framework-types/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-types", - "version": "2.18.0", + "version": "2.18.1", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "framework-types" @@ -54,8 +54,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.0", - "@boostercloud/metadata-booster": "workspace:^2.18.0", + "@boostercloud/eslint-config": "workspace:^2.18.1", + "@boostercloud/metadata-booster": "workspace:^2.18.1", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/mocha": "10.0.1", diff --git a/packages/metadata-booster/package.json b/packages/metadata-booster/package.json index 3c91d79b4..820519084 100644 --- a/packages/metadata-booster/package.json +++ b/packages/metadata-booster/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/metadata-booster", - "version": "2.18.0", + "version": "2.18.1", "description": "Emits detailed metadata of your types. You can then get it in runtime to deal with schema-aware operation, like defining GraphQL schemas, ORM operations, etc.", "repository": "https://github.com/boostercloud/booster.git", "keywords": [ @@ -38,7 +38,7 @@ "eslint-config-prettier": "8.3.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "3.4.0", - "@boostercloud/eslint-config": "workspace:^2.18.0", + "@boostercloud/eslint-config": "workspace:^2.18.1", "@types/node": "^18.18.2", "ts-node": "^10.9.1", "ts-patch": "3.1.2", diff --git a/tools/eslint-config/package.json b/tools/eslint-config/package.json index dd3d01ca4..58fba5112 100644 --- a/tools/eslint-config/package.json +++ b/tools/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/eslint-config", - "version": "2.18.0", + "version": "2.18.1", "description": "Shared eslint rules", "main": "index.js", "publishConfig": { From c495c918b77dc22e8ddc6766fbece305b882d390 Mon Sep 17 00:00:00 2001 From: Mario Castro Squella Date: Tue, 10 Sep 2024 10:01:49 -0300 Subject: [PATCH 20/47] Documentation improvements (#1549) * Style improvements to docs * Edit section on read model query join keys * More edits to section on read model query join keys * More edits to section on read model query join keys --------- Co-authored-by: Castro, Mario --- .../docs/03_architecture/06_read-model.mdx | 43 +++++++++++++++++-- website/docs/03_architecture/08_queries.mdx | 4 +- website/docs/06_graphql.md | 20 ++++++--- website/docs/10_going-deeper/azure-scale.mdx | 4 +- .../10_going-deeper/health/sensor-health.md | 8 +++- .../docs/10_going-deeper/remove-events.mdx | 8 +++- website/docs/12_contributing.md | 4 +- 7 files changed, 75 insertions(+), 16 deletions(-) diff --git a/website/docs/03_architecture/06_read-model.mdx b/website/docs/03_architecture/06_read-model.mdx index 8da8aa271..e315359e5 100644 --- a/website/docs/03_architecture/06_read-model.mdx +++ b/website/docs/03_architecture/06_read-model.mdx @@ -103,9 +103,34 @@ You can even select arrays of UUIDs as `joinKey`. Booster get each value on the #### ReadModel queries -You can use a read model query as a join key to get all the ReadModels that matches the query. Example: +You can use a read model query as a join key to get all the read models that match the query. For example, consider the following read model for car purchases: ```typescript +@ReadModel +export class CarPurchasesReadModel { + public constructor( + readonly id: UUID, + readonly carModel?: string, + readonly carOwner?: string, + readonly offers?: Array + ) {} + + // rest of the code +} +``` + +If a car model changed its name (or any other property of such an entity that's projected in `CarPurchasesReadModel` changed its value) and there are many purchases associated to that model, then it would be necessary to update all read model instances associated to that specific model so that name change is reflected. The better alternative is to instead project a `CarModel` entity: + +```typescript +@ReadModel +export class CarPurchasesReadModel { + public constructor( + readonly id: UUID, + readonly carModel?: CarModel, + readonly carOwner?: CarOwner, + readonly offers?: Array + ) {} + @Projects(CarModel, (carModel: CarModel): FilterFor => { return { carModel: { @@ -130,12 +155,22 @@ You can use a read model query as a join key to get all the ReadModels that matc oldCarPurchaseReadModel?.offers ) } +} ``` -This projection uses a ReadModel query JoinKey to get all the CarOwnerModelReadModel instances for a given CarModel. In this case, the `projectWithModel` function -will be called for each CarOwnerModelReadModel instance that matches the query. The `readModelId` argument will be the id of the CarOwnerModelReadModel instance. +Since the `CarModel` entity doesn't have a field that matches the `id` field of `CarPurchasesReadModel`, this projection can use a read model query join key to get all the `CarPurchasesReadModel` instances for a given `CarModel`. + +In this case, the `projectWithModel` function will be called for each `CarPurchasesReadModel` instance that matches the query. The `readModelId` argument will be the `id` of the `CarPurchasesReadModel` instance. -> [!NOTE] If no read model matches the query, the `projectWithModel` function will be called with `readModelId` set to `undefined`. +With this approach, every time there's a change in the `CarModel` entity it will be reflected in the read model without the need to manually update all read model instances. + +:::note +If no read model matches the query, the `projectWithModel` function will be called with `readModelId` set to `undefined`. +::: + +:::note +Take a look at the [Getting, filtering and projecting read models data at code level](/graphql#getting-filtering-and-projecting-read-models-data-at-code-level) section for more information on how to filter read models. +::: ### Returning special values diff --git a/website/docs/03_architecture/08_queries.mdx b/website/docs/03_architecture/08_queries.mdx index 779f74979..97539c908 100644 --- a/website/docs/03_architecture/08_queries.mdx +++ b/website/docs/03_architecture/08_queries.mdx @@ -122,4 +122,6 @@ You will get the following GraphQL query and subscriptions: query CartTotalQuantityQuery($cartId: ID!): Float! ``` -> [!NOTE] Query subscriptions are not supported yet +:::note +Query subscriptions are not supported yet +::: diff --git a/website/docs/06_graphql.md b/website/docs/06_graphql.md index 89eb48063..841bc03df 100644 --- a/website/docs/06_graphql.md +++ b/website/docs/06_graphql.md @@ -882,13 +882,21 @@ export class GetCartItems { The above search will return an array of carts with their `id` property, as well as an array of the `cartItems` of each cart with only the `productId` for each item. -> **Warning**: Only available for Azure and Local Providers. `select` will be ignored for AWS Provider. +:::warning +Only available for Azure and Local Providers. `select` will be ignored for AWS Provider. +::: -> **Warning**: Using `select` will skip any Read Models migrations that need to be applied to the result. If you need to apply migrations to the result, don't use `select`. +:::warning +Using `select` will skip any Read Models migrations that need to be applied to the result. If you need to apply migrations to the result, don't use `select`. +::: -> **Warning**: Support for selecting fields from objects inside arrays is limited to arrays that are at most nested inside another property, e.g., `['category.relatedCategories[].name']`. Selecting fields from arrays that are nested deeper than that (e.g., `['foo.bar.items[].id']`) is not expected to yield the expected results. +:::warning +Support for selecting fields from objects inside arrays is limited to arrays that are at most nested inside another property, e.g., `['category.relatedCategories[].name']`. Selecting fields from arrays that are nested deeper than that (e.g., `['foo.bar.items[].id']`) is not expected to yield the expected results. +::: -> **Warning**: Notice that `ReadModel`s are eventually consistent objects that are calculated as all events in all entities that affect the read model are settled. You should not assume that a read model is a proper source of truth, so you shouldn't use this feature for data validations. If you need to query the most up-to-date current state, consider fetching your Entities, instead of ReadModels, with `Booster.entity` +:::warning +Notice that `ReadModel`s are eventually consistent objects that are calculated as all events in all entities that affect the read model are settled. You should not assume that a read model is a proper source of truth, so you shouldn't use this feature for data validations. If you need to query the most up-to-date current state, consider fetching your Entities, instead of ReadModels, with `Booster.entity` +::: ### Using sorting @@ -931,7 +939,9 @@ This is a preview feature available only for some Providers and with some limita - Nested fields supported. - Sort by more than one file: **unsupported**. -> **Warning**: It is not possible to sort by fields defined as Interface, only classes or primitives types. +:::warning +It is not possible to sort by fields defined as Interface, only classes or primitives types. +::: ### Using pagination diff --git a/website/docs/10_going-deeper/azure-scale.mdx b/website/docs/10_going-deeper/azure-scale.mdx index 91bf72a57..5a61b3dca 100644 --- a/website/docs/10_going-deeper/azure-scale.mdx +++ b/website/docs/10_going-deeper/azure-scale.mdx @@ -10,7 +10,9 @@ With Booster EventStream functionality, we could define the number of physical p To enable EventStream, set the `EventStreamConfiguration` in the configuration object: -> **Warning**: Currently, only available for Azure provider. +:::warning +Currently, only available for Azure provider. +::: ```typescript config.eventStreamConfiguration = { diff --git a/website/docs/10_going-deeper/health/sensor-health.md b/website/docs/10_going-deeper/health/sensor-health.md index 3a769a538..d10324b42 100644 --- a/website/docs/10_going-deeper/health/sensor-health.md +++ b/website/docs/10_going-deeper/health/sensor-health.md @@ -316,13 +316,17 @@ export class ApplicationHealthIndicator { * file: Read Models database file * count: number of total rows -> **Note**: details will be included only if `details` is enabled +:::note +Details will be included only if `details` is enabled +::: #### rockets * status: UP if and only if all rockets are UP, PARTIALLY_UP if not all rockets are UP -> **Note**: sensors for rockets is only available for the Azure provider +:::note +Sensors for rockets is only available for the Azure provider +::: ### Health status diff --git a/website/docs/10_going-deeper/remove-events.mdx b/website/docs/10_going-deeper/remove-events.mdx index e5e8ada01..96335bf40 100644 --- a/website/docs/10_going-deeper/remove-events.mdx +++ b/website/docs/10_going-deeper/remove-events.mdx @@ -1,6 +1,8 @@ # Remove events -> **Warning**: This is an experimental functionality. Please note that this functionality is only supported by Azure and Local providers. +:::warning +This is an experimental functionality. Please note that this functionality is only supported by Azure and Local providers. +::: Booster allows to delete past events and their related entities as to update the affected ReadModels. @@ -88,4 +90,6 @@ Example: ([See more details about how to delete a ReadModel in the docs](https://docs.boosterframework.com/architecture/read-model/#deleting-read-models)) -> **Warning**: Please note that these changes are final and it is not possible to retrieve the information once they have been made. +:::warning +Please note that these changes are final and it is not possible to retrieve the information once they have been made. +::: diff --git a/website/docs/12_contributing.md b/website/docs/12_contributing.md index 2a428f3c0..5992ef3ff 100644 --- a/website/docs/12_contributing.md +++ b/website/docs/12_contributing.md @@ -55,7 +55,9 @@ Contributing to an open source project is never just a matter of code, you can h Before creating a bug report, please search for similar issues to make sure that they're not already reported. If you don't find any, go ahead and create an issue including as many details as possible. Fill out the required template, the information requested helps us to resolve issues faster. -> **Note**: If you find a Closed issue that seems related to the issues that you're experiencing, make sure to reference it in the body of your new one by writing its number like this => #42 (Github will autolink it for you). +:::note +If you find a Closed issue that seems related to the issues that you're experiencing, make sure to reference it in the body of your new one by writing its number like this => #42 (Github will autolink it for you). +::: Bugs are tracked as GitHub issues. Explain the problem and include additional details to help maintainers reproduce the problem: From 7e0efb2a666584d8072269caca56a1a120a9109b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81ngel=20Guzm=C3=A1n=20Maeso?= Date: Sun, 15 Sep 2024 15:04:21 +0200 Subject: [PATCH 21/47] feat(docs): update twitter account username (#1551) --- website/docusaurus.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 6a92b582f..6e1565452 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -124,7 +124,7 @@ const config = { }, { label: 'Twitter', - to: 'https://twitter.com/boostthecloud', + to: 'https://twitter.com/theboosterway', }, { label: 'Linkedin', From d5ed5375fe31d8a9ee055700f09d293b03af6809 Mon Sep 17 00:00:00 2001 From: Mario Castro Squella Date: Wed, 25 Sep 2024 14:30:20 -0300 Subject: [PATCH 22/47] Fix read model queries when selecting deeply-nested arrays (#1552) * Fix handling of deeply-nested arrays of objects in read model queries * Handle case of top-level array property followed by sub array prop. * Add rush change file * Update docs * Refactor preprocessProjections * Update @cdktf/provider-azurerm version * Refactor some code due to changes in azurerm --------- Co-authored-by: Castro, Mario --- .../fix_nested_arrays_2024-09-24-21-22.json | 10 + common/config/rush/pnpm-lock.yaml | 195 +++++++++++------- .../package.json | 2 +- .../infrastructure/synth/application-synth.ts | 2 +- .../synth/terraform-containers.ts | 12 +- .../synth/terraform-cosmosdb-database.ts | 4 +- .../framework-provider-azure/package.json | 3 +- .../src/helpers/query-helper.ts | 50 ++++- .../test/helpers/query-helper.test.ts | 40 ++++ website/docs/06_graphql.md | 2 +- 10 files changed, 231 insertions(+), 89 deletions(-) create mode 100644 common/changes/@boostercloud/framework-core/fix_nested_arrays_2024-09-24-21-22.json diff --git a/common/changes/@boostercloud/framework-core/fix_nested_arrays_2024-09-24-21-22.json b/common/changes/@boostercloud/framework-core/fix_nested_arrays_2024-09-24-21-22.json new file mode 100644 index 000000000..2d2810562 --- /dev/null +++ b/common/changes/@boostercloud/framework-core/fix_nested_arrays_2024-09-24-21-22.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@boostercloud/framework-core", + "comment": "Correct handling of deeply-nested arrays and sub-array properties in Read Model queries", + "type": "patch" + } + ], + "packageName": "@boostercloud/framework-core" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 6cd3a48f7..f75e90281 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,8 +8,8 @@ importers: ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^2.18.0 - '@boostercloud/framework-types': workspace:^2.18.0 + '@boostercloud/eslint-config': workspace:^2.18.1 + '@boostercloud/framework-types': workspace:^2.18.1 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.18.2 @@ -70,10 +70,10 @@ importers: ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^2.18.0 - '@boostercloud/eslint-config': workspace:^2.18.0 - '@boostercloud/framework-core': workspace:^2.18.0 - '@boostercloud/framework-types': workspace:^2.18.0 + '@boostercloud/application-tester': workspace:^2.18.1 + '@boostercloud/eslint-config': workspace:^2.18.1 + '@boostercloud/framework-core': workspace:^2.18.1 + '@boostercloud/framework-types': workspace:^2.18.1 '@effect-ts/core': ^0.60.4 '@oclif/core': 3.15.0 '@oclif/plugin-help': ^5 @@ -183,8 +183,8 @@ importers: ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.0 - '@boostercloud/framework-types': workspace:^2.18.0 + '@boostercloud/eslint-config': workspace:^2.18.1 + '@boostercloud/framework-types': workspace:^2.18.1 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -258,10 +258,10 @@ importers: ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.0 - '@boostercloud/framework-common-helpers': workspace:^2.18.0 - '@boostercloud/framework-types': workspace:^2.18.0 - '@boostercloud/metadata-booster': workspace:^2.18.0 + '@boostercloud/eslint-config': workspace:^2.18.1 + '@boostercloud/framework-common-helpers': workspace:^2.18.1 + '@boostercloud/framework-types': workspace:^2.18.1 + '@boostercloud/metadata-booster': workspace:^2.18.1 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 '@effect/platform-node': 0.45.26 @@ -378,19 +378,19 @@ importers: ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^2.18.0 - '@boostercloud/cli': workspace:^2.18.0 - '@boostercloud/eslint-config': workspace:^2.18.0 - '@boostercloud/framework-common-helpers': workspace:^2.18.0 - '@boostercloud/framework-core': workspace:^2.18.0 - '@boostercloud/framework-provider-aws': workspace:^2.18.0 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.18.0 - '@boostercloud/framework-provider-azure': workspace:^2.18.0 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.18.0 - '@boostercloud/framework-provider-local': workspace:^2.18.0 - '@boostercloud/framework-provider-local-infrastructure': workspace:^2.18.0 - '@boostercloud/framework-types': workspace:^2.18.0 - '@boostercloud/metadata-booster': workspace:^2.18.0 + '@boostercloud/application-tester': workspace:^2.18.1 + '@boostercloud/cli': workspace:^2.18.1 + '@boostercloud/eslint-config': workspace:^2.18.1 + '@boostercloud/framework-common-helpers': workspace:^2.18.1 + '@boostercloud/framework-core': workspace:^2.18.1 + '@boostercloud/framework-provider-aws': workspace:^2.18.1 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.18.1 + '@boostercloud/framework-provider-azure': workspace:^2.18.1 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.18.1 + '@boostercloud/framework-provider-local': workspace:^2.18.1 + '@boostercloud/framework-provider-local-infrastructure': workspace:^2.18.1 + '@boostercloud/framework-types': workspace:^2.18.1 + '@boostercloud/metadata-booster': workspace:^2.18.1 '@effect-ts/core': ^0.60.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 @@ -536,9 +536,9 @@ importers: ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.0 - '@boostercloud/framework-common-helpers': workspace:^2.18.0 - '@boostercloud/framework-types': workspace:^2.18.0 + '@boostercloud/eslint-config': workspace:^2.18.1 + '@boostercloud/framework-common-helpers': workspace:^2.18.1 + '@boostercloud/framework-types': workspace:^2.18.1 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -632,10 +632,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^2.18.0 - '@boostercloud/framework-common-helpers': workspace:^2.18.0 - '@boostercloud/framework-provider-aws': workspace:^2.18.0 - '@boostercloud/framework-types': workspace:^2.18.0 + '@boostercloud/eslint-config': workspace:^2.18.1 + '@boostercloud/framework-common-helpers': workspace:^2.18.1 + '@boostercloud/framework-provider-aws': workspace:^2.18.1 + '@boostercloud/framework-types': workspace:^2.18.1 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -749,9 +749,10 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^2.18.0 - '@boostercloud/framework-common-helpers': workspace:^2.18.0 - '@boostercloud/framework-types': workspace:^2.18.0 + '@boostercloud/eslint-config': workspace:^2.18.1 + '@boostercloud/framework-common-helpers': workspace:^2.18.1 + '@boostercloud/framework-types': workspace:^2.18.1 + '@cdktf/provider-azurerm': 13.3.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -787,6 +788,7 @@ importers: '@azure/web-pubsub': 1.1.3 '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-types': link:../framework-types + '@cdktf/provider-azurerm': 13.3.0 '@effect-ts/core': 0.60.5 tslib: 2.7.0 devDependencies: @@ -823,12 +825,12 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^2.18.0 - '@boostercloud/framework-common-helpers': workspace:^2.18.0 - '@boostercloud/framework-core': workspace:^2.18.0 - '@boostercloud/framework-provider-azure': workspace:^2.18.0 - '@boostercloud/framework-types': workspace:^2.18.0 - '@cdktf/provider-azurerm': 11.2.0 + '@boostercloud/eslint-config': workspace:^2.18.1 + '@boostercloud/framework-common-helpers': workspace:^2.18.1 + '@boostercloud/framework-core': workspace:^2.18.1 + '@boostercloud/framework-provider-azure': workspace:^2.18.1 + '@boostercloud/framework-types': workspace:^2.18.1 + '@cdktf/provider-azurerm': 13.3.0 '@cdktf/provider-time': 9.0.2 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 @@ -883,7 +885,7 @@ importers: '@boostercloud/framework-core': link:../framework-core '@boostercloud/framework-provider-azure': link:../framework-provider-azure '@boostercloud/framework-types': link:../framework-types - '@cdktf/provider-azurerm': 11.2.0_5k7lg6pu6lyti4sdnvep4rdzly + '@cdktf/provider-azurerm': 13.3.0_5k7lg6pu6lyti4sdnvep4rdzly '@cdktf/provider-time': 9.0.2_5k7lg6pu6lyti4sdnvep4rdzly '@effect-ts/core': 0.60.5 '@types/archiver': 5.1.0 @@ -934,9 +936,9 @@ importers: ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.0 - '@boostercloud/framework-common-helpers': workspace:^2.18.0 - '@boostercloud/framework-types': workspace:^2.18.0 + '@boostercloud/eslint-config': workspace:^2.18.1 + '@boostercloud/framework-common-helpers': workspace:^2.18.1 + '@boostercloud/framework-types': workspace:^2.18.1 '@effect-ts/core': ^0.60.4 '@seald-io/nedb': 4.0.2 '@types/chai': 4.2.18 @@ -1013,10 +1015,10 @@ importers: ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.0 - '@boostercloud/framework-common-helpers': workspace:^2.18.0 - '@boostercloud/framework-provider-local': workspace:^2.18.0 - '@boostercloud/framework-types': workspace:^2.18.0 + '@boostercloud/eslint-config': workspace:^2.18.1 + '@boostercloud/framework-common-helpers': workspace:^2.18.1 + '@boostercloud/framework-provider-local': workspace:^2.18.1 + '@boostercloud/framework-types': workspace:^2.18.1 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1096,8 +1098,8 @@ importers: ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.0 - '@boostercloud/metadata-booster': workspace:^2.18.0 + '@boostercloud/eslint-config': workspace:^2.18.1 + '@boostercloud/metadata-booster': workspace:^2.18.1 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@effect/cli': 0.35.26 @@ -1181,7 +1183,7 @@ importers: ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.0 + '@boostercloud/eslint-config': workspace:^2.18.1 '@effect-ts/core': ^0.60.4 '@types/node': ^18.18.2 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -1660,7 +1662,7 @@ packages: '@aws-cdk/aws-codecommit': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-codestarnotifications': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu @@ -1668,10 +1670,11 @@ packages: '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu - '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq + '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 + yaml: 1.10.2 transitivePeerDependencies: - '@aws-cdk/aws-lambda' - '@aws-cdk/cx-api' @@ -1787,6 +1790,7 @@ packages: '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/custom-resources': 1.204.0_c23kgzmvfhgnr6qpzzlbsfzuc4 constructs: 3.4.344 + punycode: 2.3.1 transitivePeerDependencies: - '@aws-cdk/aws-ec2' - '@aws-cdk/aws-logs' @@ -1873,7 +1877,7 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/assets': 1.204.0_uszt2j4mor3yrbm3tre3az4zvy - '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam @@ -1883,7 +1887,7 @@ packages: - '@aws-cdk/aws-events' dev: false - /@aws-cdk/aws-ecr/1.204.0_bi2u42js5xhxqcsg5gqefde4xi: + /@aws-cdk/aws-ecr/1.204.0_4bnk2gpayjo75fecjckge2dkni: resolution: {integrity: sha512-oCts9e+ackWoFHeyn/3oKm3X1lSizleWNNXHp5WGM38lpNVrtCLMKSShu5iXJBhqRH2Mz1AcA4fDMWhe8DvJFA==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -1899,11 +1903,8 @@ packages: dependencies: '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu - '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam constructs: 3.4.344 - transitivePeerDependencies: - - '@aws-cdk/cx-api' dev: false /@aws-cdk/aws-ecs/1.204.0_iu2vquo67t63xu6vdymsg3ufny: @@ -1929,7 +1930,7 @@ packages: '@aws-cdk/aws-certificatemanager': 1.204.0_xtqk4litqxecxsqs3sd6ajo2ja '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli @@ -1941,7 +1942,7 @@ packages: '@aws-cdk/aws-route53-targets': 1.204.0_2eviprr3zwoouaslbumtdekrhi '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu - '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq + '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 '@aws-cdk/aws-servicediscovery': 1.204.0_nu23nesxfni464wb5cy4ehgagi '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -2242,7 +2243,7 @@ packages: '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-notifications': 1.204.0_xguspq3b5n56mo6dsez57f32qa - '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq + '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sns-subscriptions': 1.204.0_bpkznh2gsccwq6qpaogbkb4psu '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -2275,7 +2276,7 @@ packages: '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-codeguruprofiler': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-efs': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm @@ -2436,6 +2437,7 @@ packages: '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/lambda-layer-awscli': 1.204.0_e7ybiu4yrrtvf3zlvzrvcjkvyy + case: 1.6.3 constructs: 3.4.344 transitivePeerDependencies: - '@aws-cdk/assets' @@ -2511,7 +2513,7 @@ packages: constructs: 3.4.344 dev: false - /@aws-cdk/aws-secretsmanager/1.204.0_2o53qceqenzlpxe4mjswmsqfiq: + /@aws-cdk/aws-secretsmanager/1.204.0_336juigttbrwz7tyvm6a6wfpy4: resolution: {integrity: sha512-ykpjYmP6qVOFbHtkaQBu3Xk7xp2UTR0ouzk7pb+zrEHKGmRvzGq+8J0IU+qXBJgQIVwFAPf2IgOSTzj6FJPdyA==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -2526,18 +2528,12 @@ packages: '@aws-cdk/cx-api': 1.204.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu - '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-sam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/cx-api': 1.203.0 constructs: 3.4.344 - transitivePeerDependencies: - - '@aws-cdk/assets' - - '@aws-cdk/aws-logs' - - '@aws-cdk/aws-s3' dev: false /@aws-cdk/aws-servicediscovery/1.204.0_nu23nesxfni464wb5cy4ehgagi: @@ -2715,6 +2711,9 @@ packages: /@aws-cdk/cloud-assembly-schema/1.203.0: resolution: {integrity: sha512-r252InZ8Oh7q7ztriaA3n6F48QOFVfNcT/KO4XOlYyt1xDWRMENDYf+D+DVr6O5klcaa3ivvvDT7DRuW3xdVOQ==} engines: {node: '>= 14.15.0'} + dependencies: + jsonschema: 1.4.1 + semver: 7.6.3 dev: false bundledDependencies: - jsonschema @@ -2728,6 +2727,9 @@ packages: This package is no longer being updated, and users should migrate to AWS CDK v2. For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html + dependencies: + jsonschema: 1.4.1 + semver: 7.6.3 dev: false bundledDependencies: - jsonschema @@ -2736,6 +2738,9 @@ packages: /@aws-cdk/cloud-assembly-schema/2.39.1: resolution: {integrity: sha512-lSVaaedXWeK08uoq0IXDCspz9U/H4qIERemdsMQrMUDTiUe/JBby7vtmyMvOdEscE8GMAmiOzoPmAE0Uf+yw5A==} engines: {node: '>= 14.15.0'} + dependencies: + jsonschema: 1.4.1 + semver: 7.6.3 dev: false bundledDependencies: - jsonschema @@ -2769,7 +2774,11 @@ packages: '@aws-cdk/cloud-assembly-schema': 1.204.0 '@aws-cdk/cx-api': 1.203.0 '@aws-cdk/region-info': 1.204.0 + '@balena/dockerignore': 1.0.2 constructs: 3.4.344 + fs-extra: 9.1.0 + ignore: 5.3.2 + minimatch: 3.1.2 dev: false bundledDependencies: - fs-extra @@ -2812,6 +2821,7 @@ packages: engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 1.203.0 + semver: 7.6.3 dev: false bundledDependencies: - semver @@ -2826,6 +2836,7 @@ packages: For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html dependencies: '@aws-cdk/cloud-assembly-schema': 1.204.0 + semver: 7.6.3 dev: false bundledDependencies: - semver @@ -2835,6 +2846,7 @@ packages: engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 2.39.1 + semver: 7.6.3 dev: false bundledDependencies: - semver @@ -3288,6 +3300,10 @@ packages: '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 + /@balena/dockerignore/1.0.2: + resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} + dev: false + /@cdktf/cli-core/0.19.2_react@17.0.2: resolution: {integrity: sha512-kjgEUhrHx3kUPfL7KsTo6GrurVUPT77FmOUf7wWXt7ajNE5zCPvx/HKGmQruzt0n6eLZp1aKT+r/D6YRfXcIGA==} dependencies: @@ -3402,11 +3418,19 @@ packages: nan: 2.20.0 prebuild-install: 7.1.2 - /@cdktf/provider-azurerm/11.2.0_5k7lg6pu6lyti4sdnvep4rdzly: - resolution: {integrity: sha512-1YpDrScd4YckEVKBPnXUI9yGeRmv7SiQdAj6Mq9eBXWgP1bemRk4mkQlqGm2pe9h5BECLEMZyAg5Cv/JGJX0Uw==} + /@cdktf/provider-azurerm/13.3.0: + resolution: {integrity: sha512-gXxAJYTpEMwxSteqJvZEQ8WpCot+E58sW5u/za0drc5zgkrYO3vTEsOByj8Vcxn7MWXrZFacnktgtU1UkPZs4w==} engines: {node: '>= 18.12.0'} peerDependencies: - cdktf: ^0.19.0 + cdktf: ^0.20.0 + constructs: ^10.3.0 + dev: false + + /@cdktf/provider-azurerm/13.3.0_5k7lg6pu6lyti4sdnvep4rdzly: + resolution: {integrity: sha512-gXxAJYTpEMwxSteqJvZEQ8WpCot+E58sW5u/za0drc5zgkrYO3vTEsOByj8Vcxn7MWXrZFacnktgtU1UkPZs4w==} + engines: {node: '>= 18.12.0'} + peerDependencies: + cdktf: ^0.20.0 constructs: ^10.3.0 dependencies: cdktf: 0.19.2_constructs@10.3.0 @@ -5500,7 +5524,10 @@ packages: peerDependencies: constructs: ^10.0.25 dependencies: + archiver: 5.3.2 constructs: 10.3.0 + json-stable-stringify: 1.1.1 + semver: 7.6.3 bundledDependencies: - archiver - json-stable-stringify @@ -6392,7 +6419,7 @@ packages: dependencies: semver: 7.6.3 shelljs: 0.8.5 - typescript: 5.7.0-dev.20240904 + typescript: 5.7.0-dev.20240925 /duration/0.2.2: resolution: {integrity: sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==} @@ -8566,6 +8593,15 @@ packages: /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + /json-stable-stringify/1.1.1: + resolution: {integrity: sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + isarray: 2.0.5 + jsonify: 0.0.1 + object-keys: 1.1.1 + /json-stringify-safe/5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true @@ -8594,6 +8630,13 @@ packages: optionalDependencies: graceful-fs: 4.2.11 + /jsonify/0.0.1: + resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} + + /jsonschema/1.4.1: + resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} + dev: false + /jsonwebtoken/8.5.1: resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} engines: {node: '>=4', npm: '>=1.4.28'} @@ -11523,8 +11566,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript/5.7.0-dev.20240904: - resolution: {integrity: sha512-iGi6VWFGOuxPvDfwfK1/8C172NWzC5gtC4G2dxqCQehrr86WTfFkc9aWucynaxZdwQNMqG1Iu83bmXD7CNHCmg==} + /typescript/5.7.0-dev.20240925: + resolution: {integrity: sha512-k43Yzt0H2VwIvVJzSKaMUKSnAOWkAitSB+Zioc340LCsh4kSwCbyHCJSAJmAdFH0QuNIL3AuSybTfwOys8tqZw==} engines: {node: '>=14.17'} hasBin: true diff --git a/packages/framework-provider-azure-infrastructure/package.json b/packages/framework-provider-azure-infrastructure/package.json index 1665549cb..dec5f2377 100644 --- a/packages/framework-provider-azure-infrastructure/package.json +++ b/packages/framework-provider-azure-infrastructure/package.json @@ -29,7 +29,7 @@ "@boostercloud/framework-core": "workspace:^2.18.1", "@boostercloud/framework-provider-azure": "workspace:^2.18.1", "@boostercloud/framework-types": "workspace:^2.18.1", - "@cdktf/provider-azurerm": "11.2.0", + "@cdktf/provider-azurerm": "13.3.0", "@cdktf/provider-time": "9.0.2", "@types/archiver": "5.1.0", "@types/needle": "^2.0.4", diff --git a/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/application-synth.ts b/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/application-synth.ts index 0adec05c0..be4b1e867 100644 --- a/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/application-synth.ts +++ b/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/application-synth.ts @@ -52,7 +52,7 @@ export class ApplicationSynth { public constructor(terraformStack: TerraformStack) { this.config = readProjectConfig(process.cwd()) const azurermProvider = new AzurermProvider(terraformStack, 'azureFeature', { - features: {}, + features: [{}], }) const appPrefix = buildAppPrefix(this.config) const resourceGroupName = createResourceGroupName(this.config.appName, this.config.environmentName) diff --git a/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/terraform-containers.ts b/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/terraform-containers.ts index b2aa8e95f..249deee8b 100644 --- a/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/terraform-containers.ts +++ b/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/terraform-containers.ts @@ -85,7 +85,7 @@ export class TerraformContainers { resourceGroupName: cosmosdbDatabaseResource.resourceGroupName, accountName: cosmosdbDatabaseResource.name, databaseName: cosmosdbSqlDatabaseResource.name, - partitionKeyPath: `/${eventsStoreAttributes.partitionKey}`, + partitionKeyPaths: [`/${eventsStoreAttributes.partitionKey}`], partitionKeyVersion: 2, autoscaleSettings: { maxThroughput: MAX_CONTAINER_THROUGHPUT, @@ -108,7 +108,7 @@ export class TerraformContainers { resourceGroupName: cosmosdbDatabaseResource.resourceGroupName, accountName: cosmosdbDatabaseResource.name, databaseName: cosmosdbSqlDatabaseResource.name, - partitionKeyPath: '/eventId', + partitionKeyPaths: ['/eventId'], partitionKeyVersion: 2, uniqueKey: [{ paths: ['/eventId'] }], autoscaleSettings: { @@ -134,7 +134,7 @@ export class TerraformContainers { resourceGroupName: cosmosdbDatabaseResource.resourceGroupName, accountName: cosmosdbDatabaseResource.name, databaseName: cosmosdbSqlDatabaseResource.name, - partitionKeyPath: '/id', + partitionKeyPaths: ['/id'], partitionKeyVersion: 2, autoscaleSettings: { maxThroughput: MAX_CONTAINER_THROUGHPUT, @@ -157,7 +157,7 @@ export class TerraformContainers { resourceGroupName: cosmosdbDatabaseResource.resourceGroupName, accountName: cosmosdbDatabaseResource.name, databaseName: cosmosdbSqlDatabaseResource.name, - partitionKeyPath: `/${subscriptionsStoreAttributes.partitionKey}`, + partitionKeyPaths: [`/${subscriptionsStoreAttributes.partitionKey}`], partitionKeyVersion: 2, defaultTtl: -1, autoscaleSettings: { @@ -181,7 +181,7 @@ export class TerraformContainers { resourceGroupName: cosmosdbDatabaseResource.resourceGroupName, accountName: cosmosdbDatabaseResource.name, databaseName: cosmosdbSqlDatabaseResource.name, - partitionKeyPath: `/${connectionsStoreAttributes.partitionKey}`, + partitionKeyPaths: [`/${connectionsStoreAttributes.partitionKey}`], partitionKeyVersion: 2, defaultTtl: -1, autoscaleSettings: { @@ -207,7 +207,7 @@ export class TerraformContainers { resourceGroupName: cosmosdbDatabase.resourceGroupName, accountName: cosmosdbDatabase.name, databaseName: cosmosdbSqlDatabase.name, - partitionKeyPath: `/${dedupAttributes.partitionKey}`, + partitionKeyPaths: [`/${dedupAttributes.partitionKey}`], uniqueKey: [{ paths: [`/${dedupAttributes.partitionKey}`] }], partitionKeyVersion: 2, defaultTtl: -1, diff --git a/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/terraform-cosmosdb-database.ts b/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/terraform-cosmosdb-database.ts index f22ac7699..14b8e9231 100644 --- a/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/terraform-cosmosdb-database.ts +++ b/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/terraform-cosmosdb-database.ts @@ -17,9 +17,9 @@ export class TerraformCosmosdbDatabase { resourceGroupName: resourceGroupName, offerType: 'Standard', kind: 'GlobalDocumentDB', - enableMultipleWriteLocations: false, + multipleWriteLocationsEnabled: false, isVirtualNetworkFilterEnabled: false, - enableAutomaticFailover: true, + automaticFailoverEnabled: true, geoLocation: [ { location: resourceGroup.location, diff --git a/packages/framework-provider-azure/package.json b/packages/framework-provider-azure/package.json index bb983de74..09e584079 100644 --- a/packages/framework-provider-azure/package.json +++ b/packages/framework-provider-azure/package.json @@ -31,7 +31,8 @@ "@boostercloud/framework-types": "workspace:^2.18.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", - "@azure/web-pubsub": "~1.1.0" + "@azure/web-pubsub": "~1.1.0", + "@cdktf/provider-azurerm": "13.3.0" }, "devDependencies": { "@boostercloud/eslint-config": "workspace:^2.18.1", diff --git a/packages/framework-provider-azure/src/helpers/query-helper.ts b/packages/framework-provider-azure/src/helpers/query-helper.ts index 98eb30a07..7adb6683e 100644 --- a/packages/framework-provider-azure/src/helpers/query-helper.ts +++ b/packages/framework-provider-azure/src/helpers/query-helper.ts @@ -243,6 +243,9 @@ function buildProjections(projections: ProjectionFor | string = '*'): s return projections } + // Preprocess the projections + const preprocessedProjections = preprocessProjections(projections) + // Helper function to convert dot notation to square-bracket notation const toSquareBracketsNotation = (path: string): string => { return path @@ -253,7 +256,7 @@ function buildProjections(projections: ProjectionFor | string = '*'): s // Group fields by the root property const groupedFields: { [key: string]: string[] } = {} - Object.values(projections).forEach((field: string) => { + Object.values(preprocessedProjections).forEach((field: string) => { const root: string = field.split('.')[0] if (!groupedFields[root]) { groupedFields[root] = [] @@ -314,6 +317,51 @@ function buildProjections(projections: ProjectionFor | string = '*'): s .join(', ') } +/** + * Preprocesses the projections to handle nested arrays and objects. + * + * @param {ProjectionFor} projections - The projections to preprocess. + * @returns {ProjectionFor} - The preprocessed projections. + */ +function preprocessProjections(projections: ProjectionFor): ProjectionFor { + const processed = new Set() + + Object.values(projections).forEach((field: string) => { + const parts = field.split('.') + const arrayIndices = parts.reduce((acc, part, index) => { + if (part.endsWith('[]')) acc.push(index) + return acc + }, [] as number[]) + + if ( + arrayIndices.length === 0 || + (arrayIndices[0] === 0 && arrayIndices.length === 1) || + (arrayIndices[0] === 1 && arrayIndices.length === 1) + ) { + // This block is accessed when one of the following occurs: + // - No arrays in the projection + // - Top-level array not followed by another array + // - Array nested within a top-level property, no arrays follow + processed.add(field) + } else { + // Cases with nested arrays or arrays deeper in the structure + const processToIndex = arrayIndices[0] === 0 || arrayIndices[0] === 1 ? arrayIndices[1] : arrayIndices[0] + const processedField = parts.slice(0, processToIndex + 1).join('.') + processed.add(processedField.slice(0, -2)) // Remove the '[]' from the last part + } + }) + + // Convert the Set back to the original type of projections + if (Array.isArray(projections)) { + return Array.from(processed) as ProjectionFor + } else { + return Array.from(processed).reduce((acc, field) => { + ;(acc as any)[field] = field + return acc + }, {} as ProjectionFor) + } +} + /** * Transforms the flat properties returned by Cosmos DB into a nested structure. For example, the following object: * diff --git a/packages/framework-provider-azure/test/helpers/query-helper.test.ts b/packages/framework-provider-azure/test/helpers/query-helper.test.ts index 57e1ce761..723f358b9 100644 --- a/packages/framework-provider-azure/test/helpers/query-helper.test.ts +++ b/packages/framework-provider-azure/test/helpers/query-helper.test.ts @@ -169,6 +169,46 @@ describe('Query helper', () => { ) }) + it('Executes a SQL query with a projectionFor projection that has a deeply nested array of objects', async () => { + await search( + mockCosmosDbClient as any, + mockConfig, + mockReadModelName, + {}, + undefined, + undefined, + false, + undefined, + [ + 'id', + 'x.arr[].z', + 'foo.bar.items[].id', + 'foo.bar.baz.items[].id', + 'arr[].subArr[].id', + 'arr[].id', + ] as ProjectionFor + ) + + expect(mockCosmosDbClient.database).to.have.been.calledWithExactly(mockConfig.resourceNames.applicationStack) + expect( + mockCosmosDbClient.database(mockConfig.resourceNames.applicationStack).container + ).to.have.been.calledWithExactly(`${mockReadModelName}`) + expect( + mockCosmosDbClient.database(mockConfig.resourceNames.applicationStack).container(`${mockReadModelName}`).items + .query + ).to.have.been.calledWith( + match({ + query: + 'SELECT c["id"], ' + + 'ARRAY(SELECT item["z"] FROM item IN c["x"]["arr"]) AS "x.arr", ' + + 'c["foo"]["bar"]["items"] AS "foo.bar.items", c["foo"]["bar"]["baz"]["items"] AS "foo.bar.baz.items", ' + + 'ARRAY(SELECT item["subArr"], item["id"] FROM item IN c["arr"]) AS arr ' + + 'FROM c ', + parameters: [], + }) + ) + }) + it('Executes a SQL query with a star projection in the read model table', async () => { await search( mockCosmosDbClient as any, diff --git a/website/docs/06_graphql.md b/website/docs/06_graphql.md index 841bc03df..205ba4097 100644 --- a/website/docs/06_graphql.md +++ b/website/docs/06_graphql.md @@ -891,7 +891,7 @@ Using `select` will skip any Read Models migrations that need to be applied to t ::: :::warning -Support for selecting fields from objects inside arrays is limited to arrays that are at most nested inside another property, e.g., `['category.relatedCategories[].name']`. Selecting fields from arrays that are nested deeper than that (e.g., `['foo.bar.items[].id']`) is not expected to yield the expected results. +Support for selecting fields from objects inside arrays is limited to arrays that are at most nested inside another property, e.g., `['category.relatedCategories[].name']`. Selecting fields from arrays that are nested deeper than that (e.g., `['foo.bar.items[].id']`) will return the entire object. ::: :::warning From 1c60375d44c0dd77b5720f2ed85436f8c35a0ecf Mon Sep 17 00:00:00 2001 From: GITHUBACTION Date: Wed, 25 Sep 2024 18:23:11 +0000 Subject: [PATCH 23/47] Bump versions [skip ci] --- .../fix_nested_arrays_2024-09-24-21-22.json | 10 ------- common/config/rush/version-policies.json | 2 +- packages/application-tester/package.json | 6 ++-- packages/cli/package.json | 10 +++---- .../framework-common-helpers/package.json | 6 ++-- packages/framework-core/CHANGELOG.json | 28 +++++++++++++++++++ packages/framework-core/CHANGELOG.md | 9 +++++- packages/framework-core/package.json | 10 +++---- .../framework-integration-tests/package.json | 28 +++++++++---------- .../package.json | 10 +++---- packages/framework-provider-aws/package.json | 8 +++--- .../package.json | 12 ++++---- .../framework-provider-azure/package.json | 8 +++--- .../package.json | 10 +++---- .../framework-provider-local/package.json | 8 +++--- packages/framework-types/package.json | 6 ++-- packages/metadata-booster/package.json | 4 +-- tools/eslint-config/package.json | 2 +- 18 files changed, 101 insertions(+), 76 deletions(-) delete mode 100644 common/changes/@boostercloud/framework-core/fix_nested_arrays_2024-09-24-21-22.json diff --git a/common/changes/@boostercloud/framework-core/fix_nested_arrays_2024-09-24-21-22.json b/common/changes/@boostercloud/framework-core/fix_nested_arrays_2024-09-24-21-22.json deleted file mode 100644 index 2d2810562..000000000 --- a/common/changes/@boostercloud/framework-core/fix_nested_arrays_2024-09-24-21-22.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@boostercloud/framework-core", - "comment": "Correct handling of deeply-nested arrays and sub-array properties in Read Model queries", - "type": "patch" - } - ], - "packageName": "@boostercloud/framework-core" -} \ No newline at end of file diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 00243c72e..8fe1724d1 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -103,6 +103,6 @@ "definitionName": "lockStepVersion", "policyName": "booster", "mainProject": "@boostercloud/framework-core", - "version": "2.18.1" + "version": "2.18.2" } ] diff --git a/packages/application-tester/package.json b/packages/application-tester/package.json index 677de2aa8..d946399f7 100644 --- a/packages/application-tester/package.json +++ b/packages/application-tester/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/application-tester", - "version": "2.18.1", + "version": "2.18.2", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "application-tester" @@ -36,7 +36,7 @@ }, "dependencies": { "@apollo/client": "3.7.13", - "@boostercloud/framework-types": "workspace:^2.18.1", + "@boostercloud/framework-types": "workspace:^2.18.2", "cross-fetch": "3.1.5", "graphql": "^16.6.0", "jsonwebtoken": "9.0.1", @@ -48,7 +48,7 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.1", + "@boostercloud/eslint-config": "workspace:^2.18.2", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", "eslint": "^8.23.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index c3c6faa4f..c227fad77 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/cli", "description": "CLI of the Booster Framework, the next level of abstraction for cloud-native applications", - "version": "2.18.1", + "version": "2.18.2", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -12,8 +12,8 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-core": "workspace:^2.18.1", - "@boostercloud/framework-types": "workspace:^2.18.1", + "@boostercloud/framework-core": "workspace:^2.18.2", + "@boostercloud/framework-types": "workspace:^2.18.2", "@oclif/core": "3.15.0", "@oclif/plugin-help": "^5", "chalk": "^2.4.2", @@ -30,8 +30,8 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.1", - "@boostercloud/application-tester": "workspace:^2.18.1", + "@boostercloud/eslint-config": "workspace:^2.18.2", + "@boostercloud/application-tester": "workspace:^2.18.2", "@oclif/test": "^3.0.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", diff --git a/packages/framework-common-helpers/package.json b/packages/framework-common-helpers/package.json index 57cf41a04..131ece0ed 100644 --- a/packages/framework-common-helpers/package.json +++ b/packages/framework-common-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-common-helpers", - "version": "2.18.1", + "version": "2.18.2", "description": "Contains Booster common helpers used by the core and provider packages", "keywords": [ "framework-common-helpers" @@ -36,14 +36,14 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-types": "workspace:^2.18.1", + "@boostercloud/framework-types": "workspace:^2.18.2", "child-process-promise": "^2.2.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "class-transformer": "~0.5.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.1", + "@boostercloud/eslint-config": "workspace:^2.18.2", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/child-process-promise": "^2.2.1", diff --git a/packages/framework-core/CHANGELOG.json b/packages/framework-core/CHANGELOG.json index 05d403b71..2b4f3cb57 100644 --- a/packages/framework-core/CHANGELOG.json +++ b/packages/framework-core/CHANGELOG.json @@ -1,6 +1,34 @@ { "name": "@boostercloud/framework-core", "entries": [ + { + "version": "2.18.2", + "tag": "@boostercloud/framework-core_v2.18.2", + "date": "Wed, 25 Sep 2024 18:23:11 GMT", + "comments": { + "patch": [ + { + "comment": "Correct handling of deeply-nested arrays and sub-array properties in Read Model queries", + "author": "Mario Castro Squella ", + "commit": "d5ed5375fe31d8a9ee055700f09d293b03af6809" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@boostercloud/framework-common-helpers\" from `^2.18.1` to `^2.18.2`" + }, + { + "comment": "Updating dependency \"@boostercloud/framework-types\" from `^2.18.1` to `^2.18.2`" + }, + { + "comment": "Updating dependency \"@boostercloud/metadata-booster\" from `^2.18.1` to `^2.18.2`" + }, + { + "comment": "Updating dependency \"@boostercloud/eslint-config\" from `^2.18.1` to `^2.18.2`" + } + ] + } + }, { "version": "2.18.1", "tag": "@boostercloud/framework-core_v2.18.1", diff --git a/packages/framework-core/CHANGELOG.md b/packages/framework-core/CHANGELOG.md index b759a4d5c..3fdb7d5d1 100644 --- a/packages/framework-core/CHANGELOG.md +++ b/packages/framework-core/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @boostercloud/framework-core -This log was last generated on Wed, 04 Sep 2024 18:51:46 GMT and should not be manually modified. +This log was last generated on Wed, 25 Sep 2024 18:23:11 GMT and should not be manually modified. + +## 2.18.2 +Wed, 25 Sep 2024 18:23:11 GMT + +### Patches + +- Correct handling of deeply-nested arrays and sub-array properties in Read Model queries ## 2.18.1 Wed, 04 Sep 2024 18:51:46 GMT diff --git a/packages/framework-core/package.json b/packages/framework-core/package.json index 0101ef1a8..f17111fa9 100644 --- a/packages/framework-core/package.json +++ b/packages/framework-core/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-core", - "version": "2.18.1", + "version": "2.18.2", "description": "Library for your Booster apps", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", @@ -37,8 +37,8 @@ "graphql": "^16.6.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.1", - "@boostercloud/framework-types": "workspace:^2.18.1", + "@boostercloud/framework-common-helpers": "workspace:^2.18.2", + "@boostercloud/framework-types": "workspace:^2.18.2", "fp-ts": "^2.11.0", "graphql-scalars": "^1.17.0", "graphql-subscriptions": "2.0.0", @@ -61,8 +61,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/metadata-booster": "workspace:^2.18.1", - "@boostercloud/eslint-config": "workspace:^2.18.1", + "@boostercloud/metadata-booster": "workspace:^2.18.2", + "@boostercloud/eslint-config": "workspace:^2.18.2", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-integration-tests/package.json b/packages/framework-integration-tests/package.json index b8a2eccad..ca8c81a95 100644 --- a/packages/framework-integration-tests/package.json +++ b/packages/framework-integration-tests/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-integration-tests", "description": "Example project for Booster", - "version": "2.18.1", + "version": "2.18.2", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -9,12 +9,12 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.1", - "@boostercloud/framework-core": "workspace:^2.18.1", - "@boostercloud/framework-provider-aws": "workspace:^2.18.1", - "@boostercloud/framework-provider-azure": "workspace:^2.18.1", - "@boostercloud/framework-provider-local": "workspace:^2.18.1", - "@boostercloud/framework-types": "workspace:^2.18.1", + "@boostercloud/framework-common-helpers": "workspace:^2.18.2", + "@boostercloud/framework-core": "workspace:^2.18.2", + "@boostercloud/framework-provider-aws": "workspace:^2.18.2", + "@boostercloud/framework-provider-azure": "workspace:^2.18.2", + "@boostercloud/framework-provider-local": "workspace:^2.18.2", + "@boostercloud/framework-types": "workspace:^2.18.2", "aws-sdk": "2.853.0", "graphql": "^16.6.0", "tslib": "^2.4.0", @@ -33,13 +33,13 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.1", - "@boostercloud/application-tester": "workspace:^2.18.1", - "@boostercloud/cli": "workspace:^2.18.1", - "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.18.1", - "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.18.1", - "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.18.1", - "@boostercloud/metadata-booster": "workspace:^2.18.1", + "@boostercloud/eslint-config": "workspace:^2.18.2", + "@boostercloud/application-tester": "workspace:^2.18.2", + "@boostercloud/cli": "workspace:^2.18.2", + "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.18.2", + "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.18.2", + "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.18.2", + "@boostercloud/metadata-booster": "workspace:^2.18.2", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-aws-infrastructure/package.json b/packages/framework-provider-aws-infrastructure/package.json index 679965787..793405122 100644 --- a/packages/framework-provider-aws-infrastructure/package.json +++ b/packages/framework-provider-aws-infrastructure/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws-infrastructure", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.18.1", + "version": "2.18.2", "description": "Handle the Booster deployment process to AWS", "keywords": [ "framework-provider-aws-infrastructure" @@ -41,9 +41,9 @@ "@aws-cdk/aws-s3-deployment": "^1.170.0", "@aws-cdk/core": "^1.170.0", "@aws-cdk/cx-api": "^1.170.0", - "@boostercloud/framework-common-helpers": "workspace:^2.18.1", - "@boostercloud/framework-provider-aws": "workspace:^2.18.1", - "@boostercloud/framework-types": "workspace:^2.18.1", + "@boostercloud/framework-common-helpers": "workspace:^2.18.2", + "@boostercloud/framework-provider-aws": "workspace:^2.18.2", + "@boostercloud/framework-types": "workspace:^2.18.2", "constructs": "^3.3.69", "aws-cdk": "^1.170.0", "aws-sdk": "2.853.0", @@ -69,7 +69,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.1", + "@boostercloud/eslint-config": "workspace:^2.18.2", "@types/aws-lambda": "8.10.48", "@types/aws-sdk": "2.7.0", "@types/chai": "4.2.18", diff --git a/packages/framework-provider-aws/package.json b/packages/framework-provider-aws/package.json index 438d71a10..856e6a826 100644 --- a/packages/framework-provider-aws/package.json +++ b/packages/framework-provider-aws/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.18.1", + "version": "2.18.2", "description": "Handle Booster's integration with AWS", "keywords": [ "framework-provider-aws" @@ -24,8 +24,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.1", - "@boostercloud/framework-types": "workspace:^2.18.1", + "@boostercloud/framework-common-helpers": "workspace:^2.18.2", + "@boostercloud/framework-types": "workspace:^2.18.2", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4" }, @@ -43,7 +43,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.1", + "@boostercloud/eslint-config": "workspace:^2.18.2", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-azure-infrastructure/package.json b/packages/framework-provider-azure-infrastructure/package.json index dec5f2377..7d85f37b3 100644 --- a/packages/framework-provider-azure-infrastructure/package.json +++ b/packages/framework-provider-azure-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure-infrastructure", - "version": "2.18.1", + "version": "2.18.2", "description": "Handle the Booster deployment process to Azure", "keywords": [ "framework-provider-azure-infrastructure" @@ -25,10 +25,10 @@ "dependencies": { "@azure/arm-appservice": "^13.0.0", "@azure/cosmos": "^4.0.0", - "@boostercloud/framework-common-helpers": "workspace:^2.18.1", - "@boostercloud/framework-core": "workspace:^2.18.1", - "@boostercloud/framework-provider-azure": "workspace:^2.18.1", - "@boostercloud/framework-types": "workspace:^2.18.1", + "@boostercloud/framework-common-helpers": "workspace:^2.18.2", + "@boostercloud/framework-core": "workspace:^2.18.2", + "@boostercloud/framework-provider-azure": "workspace:^2.18.2", + "@boostercloud/framework-types": "workspace:^2.18.2", "@cdktf/provider-azurerm": "13.3.0", "@cdktf/provider-time": "9.0.2", "@types/archiver": "5.1.0", @@ -67,7 +67,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.1", + "@boostercloud/eslint-config": "workspace:^2.18.2", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-azure/package.json b/packages/framework-provider-azure/package.json index 09e584079..e5890a4c8 100644 --- a/packages/framework-provider-azure/package.json +++ b/packages/framework-provider-azure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure", - "version": "2.18.1", + "version": "2.18.2", "description": "Handle Booster's integration with Azure", "keywords": [ "framework-provider-azure" @@ -27,15 +27,15 @@ "@azure/functions": "^1.2.2", "@azure/identity": "~2.1.0", "@azure/event-hubs": "5.11.1", - "@boostercloud/framework-common-helpers": "workspace:^2.18.1", - "@boostercloud/framework-types": "workspace:^2.18.1", + "@boostercloud/framework-common-helpers": "workspace:^2.18.2", + "@boostercloud/framework-types": "workspace:^2.18.2", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "@azure/web-pubsub": "~1.1.0", "@cdktf/provider-azurerm": "13.3.0" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.1", + "@boostercloud/eslint-config": "workspace:^2.18.2", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-local-infrastructure/package.json b/packages/framework-provider-local-infrastructure/package.json index f2e5d1b80..fa0a2f0a3 100644 --- a/packages/framework-provider-local-infrastructure/package.json +++ b/packages/framework-provider-local-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local-infrastructure", - "version": "2.18.1", + "version": "2.18.2", "description": "Handle the Booster running process of the local runtime", "keywords": [ "framework-provider-local-infrastructure" @@ -23,9 +23,9 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.1", - "@boostercloud/framework-provider-local": "workspace:^2.18.1", - "@boostercloud/framework-types": "workspace:^2.18.1", + "@boostercloud/framework-common-helpers": "workspace:^2.18.2", + "@boostercloud/framework-provider-local": "workspace:^2.18.2", + "@boostercloud/framework-types": "workspace:^2.18.2", "cors": "2.8.5", "express": "^4.19.2", "node-schedule": "^2.1.0", @@ -46,7 +46,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.1", + "@boostercloud/eslint-config": "workspace:^2.18.2", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/cors": "^2.8.12", diff --git a/packages/framework-provider-local/package.json b/packages/framework-provider-local/package.json index cddfd4c94..625250bb0 100644 --- a/packages/framework-provider-local/package.json +++ b/packages/framework-provider-local/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local", - "version": "2.18.1", + "version": "2.18.2", "description": "Debug your Booster projects locally", "keywords": [ "framework-provider-local" @@ -23,8 +23,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.1", - "@boostercloud/framework-types": "workspace:^2.18.1", + "@boostercloud/framework-common-helpers": "workspace:^2.18.2", + "@boostercloud/framework-types": "workspace:^2.18.2", "@seald-io/nedb": "4.0.2", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", @@ -44,7 +44,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.1", + "@boostercloud/eslint-config": "workspace:^2.18.2", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/express": "^4.17.21", diff --git a/packages/framework-types/package.json b/packages/framework-types/package.json index 25cb264bd..880549182 100644 --- a/packages/framework-types/package.json +++ b/packages/framework-types/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-types", - "version": "2.18.1", + "version": "2.18.2", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "framework-types" @@ -54,8 +54,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.1", - "@boostercloud/metadata-booster": "workspace:^2.18.1", + "@boostercloud/eslint-config": "workspace:^2.18.2", + "@boostercloud/metadata-booster": "workspace:^2.18.2", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/mocha": "10.0.1", diff --git a/packages/metadata-booster/package.json b/packages/metadata-booster/package.json index 820519084..727712c98 100644 --- a/packages/metadata-booster/package.json +++ b/packages/metadata-booster/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/metadata-booster", - "version": "2.18.1", + "version": "2.18.2", "description": "Emits detailed metadata of your types. You can then get it in runtime to deal with schema-aware operation, like defining GraphQL schemas, ORM operations, etc.", "repository": "https://github.com/boostercloud/booster.git", "keywords": [ @@ -38,7 +38,7 @@ "eslint-config-prettier": "8.3.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "3.4.0", - "@boostercloud/eslint-config": "workspace:^2.18.1", + "@boostercloud/eslint-config": "workspace:^2.18.2", "@types/node": "^18.18.2", "ts-node": "^10.9.1", "ts-patch": "3.1.2", diff --git a/tools/eslint-config/package.json b/tools/eslint-config/package.json index 58fba5112..589dcc1cb 100644 --- a/tools/eslint-config/package.json +++ b/tools/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/eslint-config", - "version": "2.18.1", + "version": "2.18.2", "description": "Shared eslint rules", "main": "index.js", "publishConfig": { From 985272012a7183fb690ecdd7bcfafd42e3103539 Mon Sep 17 00:00:00 2001 From: Mario Castro Squella Date: Mon, 30 Sep 2024 15:17:10 -0300 Subject: [PATCH 24/47] Fix read model queries when selecting deeply-nested arrays (local provider) (#1553) --- .../fix_nested_arrays_2024-09-27-19-40.json | 10 ++ common/config/rush/pnpm-lock.yaml | 106 ++++++------- .../src/services/read-model-registry.ts | 149 ++++++------------ .../test/services/read-model-registry.test.ts | 68 ++++++++ 4 files changed, 180 insertions(+), 153 deletions(-) create mode 100644 common/changes/@boostercloud/framework-core/fix_nested_arrays_2024-09-27-19-40.json diff --git a/common/changes/@boostercloud/framework-core/fix_nested_arrays_2024-09-27-19-40.json b/common/changes/@boostercloud/framework-core/fix_nested_arrays_2024-09-27-19-40.json new file mode 100644 index 000000000..187424cd3 --- /dev/null +++ b/common/changes/@boostercloud/framework-core/fix_nested_arrays_2024-09-27-19-40.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@boostercloud/framework-core", + "comment": "Fix handling of deeply-nested arrays an sub-array properties in Read Model queries in local provider", + "type": "patch" + } + ], + "packageName": "@boostercloud/framework-core" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index f75e90281..38ceee7df 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,8 +8,8 @@ importers: ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^2.18.1 - '@boostercloud/framework-types': workspace:^2.18.1 + '@boostercloud/eslint-config': workspace:^2.18.2 + '@boostercloud/framework-types': workspace:^2.18.2 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.18.2 @@ -70,10 +70,10 @@ importers: ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^2.18.1 - '@boostercloud/eslint-config': workspace:^2.18.1 - '@boostercloud/framework-core': workspace:^2.18.1 - '@boostercloud/framework-types': workspace:^2.18.1 + '@boostercloud/application-tester': workspace:^2.18.2 + '@boostercloud/eslint-config': workspace:^2.18.2 + '@boostercloud/framework-core': workspace:^2.18.2 + '@boostercloud/framework-types': workspace:^2.18.2 '@effect-ts/core': ^0.60.4 '@oclif/core': 3.15.0 '@oclif/plugin-help': ^5 @@ -183,8 +183,8 @@ importers: ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.1 - '@boostercloud/framework-types': workspace:^2.18.1 + '@boostercloud/eslint-config': workspace:^2.18.2 + '@boostercloud/framework-types': workspace:^2.18.2 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -258,10 +258,10 @@ importers: ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.1 - '@boostercloud/framework-common-helpers': workspace:^2.18.1 - '@boostercloud/framework-types': workspace:^2.18.1 - '@boostercloud/metadata-booster': workspace:^2.18.1 + '@boostercloud/eslint-config': workspace:^2.18.2 + '@boostercloud/framework-common-helpers': workspace:^2.18.2 + '@boostercloud/framework-types': workspace:^2.18.2 + '@boostercloud/metadata-booster': workspace:^2.18.2 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 '@effect/platform-node': 0.45.26 @@ -378,19 +378,19 @@ importers: ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^2.18.1 - '@boostercloud/cli': workspace:^2.18.1 - '@boostercloud/eslint-config': workspace:^2.18.1 - '@boostercloud/framework-common-helpers': workspace:^2.18.1 - '@boostercloud/framework-core': workspace:^2.18.1 - '@boostercloud/framework-provider-aws': workspace:^2.18.1 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.18.1 - '@boostercloud/framework-provider-azure': workspace:^2.18.1 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.18.1 - '@boostercloud/framework-provider-local': workspace:^2.18.1 - '@boostercloud/framework-provider-local-infrastructure': workspace:^2.18.1 - '@boostercloud/framework-types': workspace:^2.18.1 - '@boostercloud/metadata-booster': workspace:^2.18.1 + '@boostercloud/application-tester': workspace:^2.18.2 + '@boostercloud/cli': workspace:^2.18.2 + '@boostercloud/eslint-config': workspace:^2.18.2 + '@boostercloud/framework-common-helpers': workspace:^2.18.2 + '@boostercloud/framework-core': workspace:^2.18.2 + '@boostercloud/framework-provider-aws': workspace:^2.18.2 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.18.2 + '@boostercloud/framework-provider-azure': workspace:^2.18.2 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.18.2 + '@boostercloud/framework-provider-local': workspace:^2.18.2 + '@boostercloud/framework-provider-local-infrastructure': workspace:^2.18.2 + '@boostercloud/framework-types': workspace:^2.18.2 + '@boostercloud/metadata-booster': workspace:^2.18.2 '@effect-ts/core': ^0.60.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 @@ -536,9 +536,9 @@ importers: ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.1 - '@boostercloud/framework-common-helpers': workspace:^2.18.1 - '@boostercloud/framework-types': workspace:^2.18.1 + '@boostercloud/eslint-config': workspace:^2.18.2 + '@boostercloud/framework-common-helpers': workspace:^2.18.2 + '@boostercloud/framework-types': workspace:^2.18.2 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -632,10 +632,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^2.18.1 - '@boostercloud/framework-common-helpers': workspace:^2.18.1 - '@boostercloud/framework-provider-aws': workspace:^2.18.1 - '@boostercloud/framework-types': workspace:^2.18.1 + '@boostercloud/eslint-config': workspace:^2.18.2 + '@boostercloud/framework-common-helpers': workspace:^2.18.2 + '@boostercloud/framework-provider-aws': workspace:^2.18.2 + '@boostercloud/framework-types': workspace:^2.18.2 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -749,9 +749,9 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^2.18.1 - '@boostercloud/framework-common-helpers': workspace:^2.18.1 - '@boostercloud/framework-types': workspace:^2.18.1 + '@boostercloud/eslint-config': workspace:^2.18.2 + '@boostercloud/framework-common-helpers': workspace:^2.18.2 + '@boostercloud/framework-types': workspace:^2.18.2 '@cdktf/provider-azurerm': 13.3.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 @@ -825,11 +825,11 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^2.18.1 - '@boostercloud/framework-common-helpers': workspace:^2.18.1 - '@boostercloud/framework-core': workspace:^2.18.1 - '@boostercloud/framework-provider-azure': workspace:^2.18.1 - '@boostercloud/framework-types': workspace:^2.18.1 + '@boostercloud/eslint-config': workspace:^2.18.2 + '@boostercloud/framework-common-helpers': workspace:^2.18.2 + '@boostercloud/framework-core': workspace:^2.18.2 + '@boostercloud/framework-provider-azure': workspace:^2.18.2 + '@boostercloud/framework-types': workspace:^2.18.2 '@cdktf/provider-azurerm': 13.3.0 '@cdktf/provider-time': 9.0.2 '@effect-ts/core': ^0.60.4 @@ -936,9 +936,9 @@ importers: ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.1 - '@boostercloud/framework-common-helpers': workspace:^2.18.1 - '@boostercloud/framework-types': workspace:^2.18.1 + '@boostercloud/eslint-config': workspace:^2.18.2 + '@boostercloud/framework-common-helpers': workspace:^2.18.2 + '@boostercloud/framework-types': workspace:^2.18.2 '@effect-ts/core': ^0.60.4 '@seald-io/nedb': 4.0.2 '@types/chai': 4.2.18 @@ -1015,10 +1015,10 @@ importers: ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.1 - '@boostercloud/framework-common-helpers': workspace:^2.18.1 - '@boostercloud/framework-provider-local': workspace:^2.18.1 - '@boostercloud/framework-types': workspace:^2.18.1 + '@boostercloud/eslint-config': workspace:^2.18.2 + '@boostercloud/framework-common-helpers': workspace:^2.18.2 + '@boostercloud/framework-provider-local': workspace:^2.18.2 + '@boostercloud/framework-types': workspace:^2.18.2 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1098,8 +1098,8 @@ importers: ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.1 - '@boostercloud/metadata-booster': workspace:^2.18.1 + '@boostercloud/eslint-config': workspace:^2.18.2 + '@boostercloud/metadata-booster': workspace:^2.18.2 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@effect/cli': 0.35.26 @@ -1183,7 +1183,7 @@ importers: ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.1 + '@boostercloud/eslint-config': workspace:^2.18.2 '@effect-ts/core': ^0.60.4 '@types/node': ^18.18.2 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -6419,7 +6419,7 @@ packages: dependencies: semver: 7.6.3 shelljs: 0.8.5 - typescript: 5.7.0-dev.20240925 + typescript: 5.7.0-dev.20240927 /duration/0.2.2: resolution: {integrity: sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==} @@ -11566,8 +11566,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript/5.7.0-dev.20240925: - resolution: {integrity: sha512-k43Yzt0H2VwIvVJzSKaMUKSnAOWkAitSB+Zioc340LCsh4kSwCbyHCJSAJmAdFH0QuNIL3AuSybTfwOys8tqZw==} + /typescript/5.7.0-dev.20240927: + resolution: {integrity: sha512-IWKZHTHAlS8BglLp8iM4rUHhy0h79B9r9vj6b6zpa8U38ofctFS1fLiKY7okZ3JYeG15kUHuOwsLwOmvc5+e1Q==} engines: {node: '>=14.17'} hasBin: true diff --git a/packages/framework-provider-local/src/services/read-model-registry.ts b/packages/framework-provider-local/src/services/read-model-registry.ts index c2e578497..68d9ff8dd 100644 --- a/packages/framework-provider-local/src/services/read-model-registry.ts +++ b/packages/framework-provider-local/src/services/read-model-registry.ts @@ -7,10 +7,6 @@ interface LocalSortedFor { [key: string]: number } -interface LocalSelectFor { - [key: string]: number -} - export type NedbError = Error & { [key: string | number | symbol]: unknown } export const UNIQUE_VIOLATED_ERROR_TYPE = 'uniqueViolated' @@ -39,7 +35,7 @@ export class ReadModelRegistry { select?: ProjectionFor ): Promise> { await this.loadDatabaseIfNeeded() - let cursor = this.readModels.find(query, this.toLocalSelectFor(select)) + let cursor = this.readModels.find(query) const sortByList = this.toLocalSortFor(sortBy) if (sortByList) { cursor = cursor.sort(sortByList) @@ -51,45 +47,15 @@ export class ReadModelRegistry { cursor = cursor.limit(limit) } - const arrayFields: { [key: string]: any } = {} - select?.forEach((field: string) => { - const parts = field.split('.') - let currentLevel = arrayFields - let isArrayField = false - for (let i = 0; i < parts.length; ++i) { - const part = parts[i] - if (part.endsWith('[]')) { - const arrayField = part.slice(0, -2) - if (!Object.prototype.hasOwnProperty.call(currentLevel, arrayField)) { - currentLevel[arrayField] = {} - } - currentLevel = currentLevel[arrayField] - isArrayField = true - } else { - if (i === parts.length - 1) { - if (isArrayField) { - if (!currentLevel['__fields']) { - currentLevel['__fields'] = [] - } - currentLevel['__fields'].push(part) - } - } else { - if (!Object.prototype.hasOwnProperty.call(currentLevel, part)) { - currentLevel[part] = {} - } - currentLevel = currentLevel[part] - } - } - } - }) - // Fetch results from the cursor const results = await cursor.execAsync() // Process each result to filter the array fields - results.forEach((result: any) => { - result.value = this.filterObjectByArrayFields(result.value, arrayFields) - }) + if (select && select.length > 0) { + results.forEach((result: any) => { + result.value = this.filterFields(result.value, select) + }) + } return results } @@ -139,7 +105,7 @@ export class ReadModelRegistry { toLocalSortFor( sortBy?: SortFor, parentKey = '', - sortedList: LocalSortedFor = {} + sortedList: LocalSortedFor = Object.create(null) ): undefined | LocalSortedFor { if (!sortBy || Object.keys(sortBy).length === 0) return const elements = sortBy! @@ -153,76 +119,59 @@ export class ReadModelRegistry { return sortedList } - toLocalSelectFor(select?: ProjectionFor): LocalSelectFor { - if (!select || select.length === 0) return {} + filterFields(obj: any, select: string[]): any { + const result: any = Object.create(null) - const result: LocalSelectFor = {} - const seenFields = new Set() - - select.forEach((field: string) => { + select.forEach((field) => { const parts = field.split('.') - const topLevelField = parts[0] - - if (topLevelField.endsWith('[]')) { - const arrayField = `value.${topLevelField.slice(0, -2)}` - if (!seenFields.has(arrayField)) { - seenFields.add(arrayField) - result[arrayField] = 1 - } - } else { - if (parts.some((part) => part.endsWith('[]'))) { - const arrayIndex = parts.findIndex((part) => part.endsWith('[]')) - const arrayField = `value.${parts - .slice(0, arrayIndex + 1) - .join('.') - .slice(0, -2)}` - if (!seenFields.has(arrayField)) { - seenFields.add(arrayField) - result[arrayField] = 1 - } - } else { - const fullPath = `value.${field}` - if (!seenFields.has(fullPath)) { - seenFields.add(fullPath) - result[fullPath] = 1 - } - } - } + this.setNestedValue(result, obj, parts) }) return result } - filterArrayFields(item: any, fields: { [key: string]: any; __fields?: string[] }): any { - const filteredItem: { [key: string]: any } = {} - if (fields.__fields) { - fields.__fields.forEach((field) => { - if (field in item) { - filteredItem[field] = item[field] - } - }) - } - Object.keys(fields).forEach((key) => { - if (key !== '__fields' && item[key] && Array.isArray(item[key])) { - filteredItem[key] = item[key].map((subItem: any) => this.filterArrayFields(subItem, fields[key])) - } - }) - return filteredItem - } + setNestedValue(result: any, source: any, parts: string[]): void { + let currentResult = result + let currentSource = source + + for (let i = 0; i < parts.length; i++) { + const part = parts[i] + const isLast = i === parts.length - 1 - filterObjectByArrayFields(obj: any, arrayFields: { [key: string]: any; __fields?: string[] }): any { - const filteredObj: { [key: string]: any } = {} - Object.keys(obj).forEach((key) => { - if (key in arrayFields) { - if (Array.isArray(obj[key])) { - filteredObj[key] = obj[key].map((item: any) => this.filterArrayFields(item, arrayFields[key])) + if (part.endsWith('[]')) { + const arrayField = part.slice(0, -2) + if (!Array.isArray(currentSource[arrayField])) { + return + } + if (!currentResult[arrayField]) { + currentResult[arrayField] = [] + } + if (isLast) { + currentResult[arrayField] = currentSource[arrayField] } else { - filteredObj[key] = this.filterObjectByArrayFields(obj[key], arrayFields[key]) + currentSource[arrayField].forEach((item: any, index: number) => { + if (!currentResult[arrayField][index]) { + currentResult[arrayField][index] = Object.create(null) + } + this.setNestedValue(currentResult[arrayField][index], item, parts.slice(i + 1)) + }) } } else { - filteredObj[key] = obj[key] + if (isLast) { + if (currentSource[part] !== undefined) { + currentResult[part] = currentSource[part] + } + } else { + if (!currentSource[part]) { + return + } + if (!currentResult[part]) { + currentResult[part] = Array.isArray(currentSource[part]) ? [] : Object.create(null) + } + currentResult = currentResult[part] + currentSource = currentSource[part] + } } - }) - return filteredObj + } } } diff --git a/packages/framework-provider-local/test/services/read-model-registry.test.ts b/packages/framework-provider-local/test/services/read-model-registry.test.ts index dbdadfda1..0c73e9500 100644 --- a/packages/framework-provider-local/test/services/read-model-registry.test.ts +++ b/packages/framework-provider-local/test/services/read-model-registry.test.ts @@ -225,6 +225,74 @@ describe('the read model registry', () => { } expect(result[0]).to.deep.include(expectedReadModel) }) + + it('should return only projected fields for complex read models', async () => { + const complexReadModel: ReadModelEnvelope = { + typeName: random.word(), + value: { + id: random.uuid(), + x: { + arr: [{ y: random.word(), z: random.number() }], + }, + foo: { + bar: { + items: [{ id: random.uuid(), name: random.word() }], + baz: { items: [{ id: random.uuid(), name: random.word() }] }, + }, + }, + arr: [ + { + id: random.uuid(), + subArr: [{ id: random.uuid(), name: random.word() }], + }, + ], + boosterMetadata: { + version: 1, + schemaVersion: 1, + }, + }, + } + + await readModelRegistry.store(complexReadModel, 1) + + const result = await readModelRegistry.query( + { + value: complexReadModel.value, + typeName: complexReadModel.typeName, + }, + undefined, + undefined, + undefined, + [ + 'id', + 'x.arr[].z', + 'foo.bar.items[].id', + 'foo.bar.baz.items[].id', + 'arr[].subArr[].id', + 'arr[].id', + ] as ProjectionFor + ) + + expect(result.length).to.be.equal(1) + const expectedReadModel = { + value: { + id: complexReadModel.value.id, + x: { + arr: complexReadModel.value.x.arr.map((item: any) => ({ z: item.z })), + }, + foo: { + bar: { + items: complexReadModel.value.foo.bar.items.map((item: any) => ({ id: item.id })), + baz: { items: complexReadModel.value.foo.bar.baz.items.map((item: any) => ({ id: item.id })) }, + }, + }, + arr: complexReadModel.value.arr.map((item: any) => { + return { id: item.id, subArr: item.subArr.map((subItem: any) => ({ id: subItem.id })) } + }), + }, + } + expect(result[0]).to.deep.include(expectedReadModel) + }) }) describe('delete by id', () => { From cd600de5a634049310c5167c48347326e73a8616 Mon Sep 17 00:00:00 2001 From: GITHUBACTION Date: Mon, 30 Sep 2024 19:09:52 +0000 Subject: [PATCH 25/47] Bump versions [skip ci] --- .../fix_nested_arrays_2024-09-27-19-40.json | 10 ------- common/config/rush/version-policies.json | 2 +- packages/application-tester/package.json | 6 ++-- packages/cli/package.json | 10 +++---- .../framework-common-helpers/package.json | 6 ++-- packages/framework-core/CHANGELOG.json | 28 +++++++++++++++++++ packages/framework-core/CHANGELOG.md | 9 +++++- packages/framework-core/package.json | 10 +++---- .../framework-integration-tests/package.json | 28 +++++++++---------- .../package.json | 10 +++---- packages/framework-provider-aws/package.json | 8 +++--- .../package.json | 12 ++++---- .../framework-provider-azure/package.json | 8 +++--- .../package.json | 10 +++---- .../framework-provider-local/package.json | 8 +++--- packages/framework-types/package.json | 6 ++-- packages/metadata-booster/package.json | 4 +-- tools/eslint-config/package.json | 2 +- 18 files changed, 101 insertions(+), 76 deletions(-) delete mode 100644 common/changes/@boostercloud/framework-core/fix_nested_arrays_2024-09-27-19-40.json diff --git a/common/changes/@boostercloud/framework-core/fix_nested_arrays_2024-09-27-19-40.json b/common/changes/@boostercloud/framework-core/fix_nested_arrays_2024-09-27-19-40.json deleted file mode 100644 index 187424cd3..000000000 --- a/common/changes/@boostercloud/framework-core/fix_nested_arrays_2024-09-27-19-40.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@boostercloud/framework-core", - "comment": "Fix handling of deeply-nested arrays an sub-array properties in Read Model queries in local provider", - "type": "patch" - } - ], - "packageName": "@boostercloud/framework-core" -} \ No newline at end of file diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 8fe1724d1..d07dbde40 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -103,6 +103,6 @@ "definitionName": "lockStepVersion", "policyName": "booster", "mainProject": "@boostercloud/framework-core", - "version": "2.18.2" + "version": "2.18.3" } ] diff --git a/packages/application-tester/package.json b/packages/application-tester/package.json index d946399f7..cb83c4ea0 100644 --- a/packages/application-tester/package.json +++ b/packages/application-tester/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/application-tester", - "version": "2.18.2", + "version": "2.18.3", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "application-tester" @@ -36,7 +36,7 @@ }, "dependencies": { "@apollo/client": "3.7.13", - "@boostercloud/framework-types": "workspace:^2.18.2", + "@boostercloud/framework-types": "workspace:^2.18.3", "cross-fetch": "3.1.5", "graphql": "^16.6.0", "jsonwebtoken": "9.0.1", @@ -48,7 +48,7 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.2", + "@boostercloud/eslint-config": "workspace:^2.18.3", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", "eslint": "^8.23.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index c227fad77..083c667c5 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/cli", "description": "CLI of the Booster Framework, the next level of abstraction for cloud-native applications", - "version": "2.18.2", + "version": "2.18.3", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -12,8 +12,8 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-core": "workspace:^2.18.2", - "@boostercloud/framework-types": "workspace:^2.18.2", + "@boostercloud/framework-core": "workspace:^2.18.3", + "@boostercloud/framework-types": "workspace:^2.18.3", "@oclif/core": "3.15.0", "@oclif/plugin-help": "^5", "chalk": "^2.4.2", @@ -30,8 +30,8 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.2", - "@boostercloud/application-tester": "workspace:^2.18.2", + "@boostercloud/eslint-config": "workspace:^2.18.3", + "@boostercloud/application-tester": "workspace:^2.18.3", "@oclif/test": "^3.0.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", diff --git a/packages/framework-common-helpers/package.json b/packages/framework-common-helpers/package.json index 131ece0ed..fba765351 100644 --- a/packages/framework-common-helpers/package.json +++ b/packages/framework-common-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-common-helpers", - "version": "2.18.2", + "version": "2.18.3", "description": "Contains Booster common helpers used by the core and provider packages", "keywords": [ "framework-common-helpers" @@ -36,14 +36,14 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-types": "workspace:^2.18.2", + "@boostercloud/framework-types": "workspace:^2.18.3", "child-process-promise": "^2.2.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "class-transformer": "~0.5.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.2", + "@boostercloud/eslint-config": "workspace:^2.18.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/child-process-promise": "^2.2.1", diff --git a/packages/framework-core/CHANGELOG.json b/packages/framework-core/CHANGELOG.json index 2b4f3cb57..e831f4af5 100644 --- a/packages/framework-core/CHANGELOG.json +++ b/packages/framework-core/CHANGELOG.json @@ -1,6 +1,34 @@ { "name": "@boostercloud/framework-core", "entries": [ + { + "version": "2.18.3", + "tag": "@boostercloud/framework-core_v2.18.3", + "date": "Mon, 30 Sep 2024 19:09:52 GMT", + "comments": { + "patch": [ + { + "comment": "Fix handling of deeply-nested arrays an sub-array properties in Read Model queries in local provider", + "author": "Mario Castro Squella ", + "commit": "985272012a7183fb690ecdd7bcfafd42e3103539" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@boostercloud/framework-common-helpers\" from `^2.18.2` to `^2.18.3`" + }, + { + "comment": "Updating dependency \"@boostercloud/framework-types\" from `^2.18.2` to `^2.18.3`" + }, + { + "comment": "Updating dependency \"@boostercloud/metadata-booster\" from `^2.18.2` to `^2.18.3`" + }, + { + "comment": "Updating dependency \"@boostercloud/eslint-config\" from `^2.18.2` to `^2.18.3`" + } + ] + } + }, { "version": "2.18.2", "tag": "@boostercloud/framework-core_v2.18.2", diff --git a/packages/framework-core/CHANGELOG.md b/packages/framework-core/CHANGELOG.md index 3fdb7d5d1..006cdb8b3 100644 --- a/packages/framework-core/CHANGELOG.md +++ b/packages/framework-core/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @boostercloud/framework-core -This log was last generated on Wed, 25 Sep 2024 18:23:11 GMT and should not be manually modified. +This log was last generated on Mon, 30 Sep 2024 19:09:52 GMT and should not be manually modified. + +## 2.18.3 +Mon, 30 Sep 2024 19:09:52 GMT + +### Patches + +- Fix handling of deeply-nested arrays an sub-array properties in Read Model queries in local provider ## 2.18.2 Wed, 25 Sep 2024 18:23:11 GMT diff --git a/packages/framework-core/package.json b/packages/framework-core/package.json index f17111fa9..885af74ca 100644 --- a/packages/framework-core/package.json +++ b/packages/framework-core/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-core", - "version": "2.18.2", + "version": "2.18.3", "description": "Library for your Booster apps", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", @@ -37,8 +37,8 @@ "graphql": "^16.6.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.2", - "@boostercloud/framework-types": "workspace:^2.18.2", + "@boostercloud/framework-common-helpers": "workspace:^2.18.3", + "@boostercloud/framework-types": "workspace:^2.18.3", "fp-ts": "^2.11.0", "graphql-scalars": "^1.17.0", "graphql-subscriptions": "2.0.0", @@ -61,8 +61,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/metadata-booster": "workspace:^2.18.2", - "@boostercloud/eslint-config": "workspace:^2.18.2", + "@boostercloud/metadata-booster": "workspace:^2.18.3", + "@boostercloud/eslint-config": "workspace:^2.18.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-integration-tests/package.json b/packages/framework-integration-tests/package.json index ca8c81a95..b98dd1b88 100644 --- a/packages/framework-integration-tests/package.json +++ b/packages/framework-integration-tests/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-integration-tests", "description": "Example project for Booster", - "version": "2.18.2", + "version": "2.18.3", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -9,12 +9,12 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.2", - "@boostercloud/framework-core": "workspace:^2.18.2", - "@boostercloud/framework-provider-aws": "workspace:^2.18.2", - "@boostercloud/framework-provider-azure": "workspace:^2.18.2", - "@boostercloud/framework-provider-local": "workspace:^2.18.2", - "@boostercloud/framework-types": "workspace:^2.18.2", + "@boostercloud/framework-common-helpers": "workspace:^2.18.3", + "@boostercloud/framework-core": "workspace:^2.18.3", + "@boostercloud/framework-provider-aws": "workspace:^2.18.3", + "@boostercloud/framework-provider-azure": "workspace:^2.18.3", + "@boostercloud/framework-provider-local": "workspace:^2.18.3", + "@boostercloud/framework-types": "workspace:^2.18.3", "aws-sdk": "2.853.0", "graphql": "^16.6.0", "tslib": "^2.4.0", @@ -33,13 +33,13 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.2", - "@boostercloud/application-tester": "workspace:^2.18.2", - "@boostercloud/cli": "workspace:^2.18.2", - "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.18.2", - "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.18.2", - "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.18.2", - "@boostercloud/metadata-booster": "workspace:^2.18.2", + "@boostercloud/eslint-config": "workspace:^2.18.3", + "@boostercloud/application-tester": "workspace:^2.18.3", + "@boostercloud/cli": "workspace:^2.18.3", + "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.18.3", + "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.18.3", + "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.18.3", + "@boostercloud/metadata-booster": "workspace:^2.18.3", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-aws-infrastructure/package.json b/packages/framework-provider-aws-infrastructure/package.json index 793405122..5fe59753c 100644 --- a/packages/framework-provider-aws-infrastructure/package.json +++ b/packages/framework-provider-aws-infrastructure/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws-infrastructure", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.18.2", + "version": "2.18.3", "description": "Handle the Booster deployment process to AWS", "keywords": [ "framework-provider-aws-infrastructure" @@ -41,9 +41,9 @@ "@aws-cdk/aws-s3-deployment": "^1.170.0", "@aws-cdk/core": "^1.170.0", "@aws-cdk/cx-api": "^1.170.0", - "@boostercloud/framework-common-helpers": "workspace:^2.18.2", - "@boostercloud/framework-provider-aws": "workspace:^2.18.2", - "@boostercloud/framework-types": "workspace:^2.18.2", + "@boostercloud/framework-common-helpers": "workspace:^2.18.3", + "@boostercloud/framework-provider-aws": "workspace:^2.18.3", + "@boostercloud/framework-types": "workspace:^2.18.3", "constructs": "^3.3.69", "aws-cdk": "^1.170.0", "aws-sdk": "2.853.0", @@ -69,7 +69,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.2", + "@boostercloud/eslint-config": "workspace:^2.18.3", "@types/aws-lambda": "8.10.48", "@types/aws-sdk": "2.7.0", "@types/chai": "4.2.18", diff --git a/packages/framework-provider-aws/package.json b/packages/framework-provider-aws/package.json index 856e6a826..700aebc30 100644 --- a/packages/framework-provider-aws/package.json +++ b/packages/framework-provider-aws/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.18.2", + "version": "2.18.3", "description": "Handle Booster's integration with AWS", "keywords": [ "framework-provider-aws" @@ -24,8 +24,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.2", - "@boostercloud/framework-types": "workspace:^2.18.2", + "@boostercloud/framework-common-helpers": "workspace:^2.18.3", + "@boostercloud/framework-types": "workspace:^2.18.3", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4" }, @@ -43,7 +43,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.2", + "@boostercloud/eslint-config": "workspace:^2.18.3", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-azure-infrastructure/package.json b/packages/framework-provider-azure-infrastructure/package.json index 7d85f37b3..5769d772f 100644 --- a/packages/framework-provider-azure-infrastructure/package.json +++ b/packages/framework-provider-azure-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure-infrastructure", - "version": "2.18.2", + "version": "2.18.3", "description": "Handle the Booster deployment process to Azure", "keywords": [ "framework-provider-azure-infrastructure" @@ -25,10 +25,10 @@ "dependencies": { "@azure/arm-appservice": "^13.0.0", "@azure/cosmos": "^4.0.0", - "@boostercloud/framework-common-helpers": "workspace:^2.18.2", - "@boostercloud/framework-core": "workspace:^2.18.2", - "@boostercloud/framework-provider-azure": "workspace:^2.18.2", - "@boostercloud/framework-types": "workspace:^2.18.2", + "@boostercloud/framework-common-helpers": "workspace:^2.18.3", + "@boostercloud/framework-core": "workspace:^2.18.3", + "@boostercloud/framework-provider-azure": "workspace:^2.18.3", + "@boostercloud/framework-types": "workspace:^2.18.3", "@cdktf/provider-azurerm": "13.3.0", "@cdktf/provider-time": "9.0.2", "@types/archiver": "5.1.0", @@ -67,7 +67,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.2", + "@boostercloud/eslint-config": "workspace:^2.18.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-azure/package.json b/packages/framework-provider-azure/package.json index e5890a4c8..24a8d533a 100644 --- a/packages/framework-provider-azure/package.json +++ b/packages/framework-provider-azure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure", - "version": "2.18.2", + "version": "2.18.3", "description": "Handle Booster's integration with Azure", "keywords": [ "framework-provider-azure" @@ -27,15 +27,15 @@ "@azure/functions": "^1.2.2", "@azure/identity": "~2.1.0", "@azure/event-hubs": "5.11.1", - "@boostercloud/framework-common-helpers": "workspace:^2.18.2", - "@boostercloud/framework-types": "workspace:^2.18.2", + "@boostercloud/framework-common-helpers": "workspace:^2.18.3", + "@boostercloud/framework-types": "workspace:^2.18.3", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "@azure/web-pubsub": "~1.1.0", "@cdktf/provider-azurerm": "13.3.0" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.2", + "@boostercloud/eslint-config": "workspace:^2.18.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-local-infrastructure/package.json b/packages/framework-provider-local-infrastructure/package.json index fa0a2f0a3..b9c38e670 100644 --- a/packages/framework-provider-local-infrastructure/package.json +++ b/packages/framework-provider-local-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local-infrastructure", - "version": "2.18.2", + "version": "2.18.3", "description": "Handle the Booster running process of the local runtime", "keywords": [ "framework-provider-local-infrastructure" @@ -23,9 +23,9 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.2", - "@boostercloud/framework-provider-local": "workspace:^2.18.2", - "@boostercloud/framework-types": "workspace:^2.18.2", + "@boostercloud/framework-common-helpers": "workspace:^2.18.3", + "@boostercloud/framework-provider-local": "workspace:^2.18.3", + "@boostercloud/framework-types": "workspace:^2.18.3", "cors": "2.8.5", "express": "^4.19.2", "node-schedule": "^2.1.0", @@ -46,7 +46,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.2", + "@boostercloud/eslint-config": "workspace:^2.18.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/cors": "^2.8.12", diff --git a/packages/framework-provider-local/package.json b/packages/framework-provider-local/package.json index 625250bb0..e20f37e9d 100644 --- a/packages/framework-provider-local/package.json +++ b/packages/framework-provider-local/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local", - "version": "2.18.2", + "version": "2.18.3", "description": "Debug your Booster projects locally", "keywords": [ "framework-provider-local" @@ -23,8 +23,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.2", - "@boostercloud/framework-types": "workspace:^2.18.2", + "@boostercloud/framework-common-helpers": "workspace:^2.18.3", + "@boostercloud/framework-types": "workspace:^2.18.3", "@seald-io/nedb": "4.0.2", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", @@ -44,7 +44,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.2", + "@boostercloud/eslint-config": "workspace:^2.18.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/express": "^4.17.21", diff --git a/packages/framework-types/package.json b/packages/framework-types/package.json index 880549182..0f231cf4d 100644 --- a/packages/framework-types/package.json +++ b/packages/framework-types/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-types", - "version": "2.18.2", + "version": "2.18.3", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "framework-types" @@ -54,8 +54,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.2", - "@boostercloud/metadata-booster": "workspace:^2.18.2", + "@boostercloud/eslint-config": "workspace:^2.18.3", + "@boostercloud/metadata-booster": "workspace:^2.18.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/mocha": "10.0.1", diff --git a/packages/metadata-booster/package.json b/packages/metadata-booster/package.json index 727712c98..42dbb0631 100644 --- a/packages/metadata-booster/package.json +++ b/packages/metadata-booster/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/metadata-booster", - "version": "2.18.2", + "version": "2.18.3", "description": "Emits detailed metadata of your types. You can then get it in runtime to deal with schema-aware operation, like defining GraphQL schemas, ORM operations, etc.", "repository": "https://github.com/boostercloud/booster.git", "keywords": [ @@ -38,7 +38,7 @@ "eslint-config-prettier": "8.3.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "3.4.0", - "@boostercloud/eslint-config": "workspace:^2.18.2", + "@boostercloud/eslint-config": "workspace:^2.18.3", "@types/node": "^18.18.2", "ts-node": "^10.9.1", "ts-patch": "3.1.2", diff --git a/tools/eslint-config/package.json b/tools/eslint-config/package.json index 589dcc1cb..42aefb26e 100644 --- a/tools/eslint-config/package.json +++ b/tools/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/eslint-config", - "version": "2.18.2", + "version": "2.18.3", "description": "Shared eslint rules", "main": "index.js", "publishConfig": { From 1c97d6dcef1799207e21a8368827f02f2a0e0b77 Mon Sep 17 00:00:00 2001 From: Mario Castro Squella Date: Tue, 8 Oct 2024 10:51:45 -0300 Subject: [PATCH 26/47] Remove unnecessary @cdktf/provider-azurerm dependency from Azure provider package (#1554) * Remove unnecessary @cdktf/provider-azurerm dependency from Azure provider package * Add rush change file --------- Co-authored-by: Castro, Mario --- ...ove_cdktf_dependency_2024-10-08-12-24.json | 10 ++ common/config/rush/pnpm-lock.yaml | 130 +++++++++--------- .../framework-provider-azure/package.json | 3 +- 3 files changed, 74 insertions(+), 69 deletions(-) create mode 100644 common/changes/@boostercloud/framework-core/remove_cdktf_dependency_2024-10-08-12-24.json diff --git a/common/changes/@boostercloud/framework-core/remove_cdktf_dependency_2024-10-08-12-24.json b/common/changes/@boostercloud/framework-core/remove_cdktf_dependency_2024-10-08-12-24.json new file mode 100644 index 000000000..c3e5d0f9e --- /dev/null +++ b/common/changes/@boostercloud/framework-core/remove_cdktf_dependency_2024-10-08-12-24.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@boostercloud/framework-core", + "comment": "Remove unnecessary @cdktf/provider-azurerm dependency from Azure provider package", + "type": "patch" + } + ], + "packageName": "@boostercloud/framework-core" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 38ceee7df..c90395116 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,8 +8,8 @@ importers: ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^2.18.2 - '@boostercloud/framework-types': workspace:^2.18.2 + '@boostercloud/eslint-config': workspace:^2.18.3 + '@boostercloud/framework-types': workspace:^2.18.3 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.18.2 @@ -70,10 +70,10 @@ importers: ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^2.18.2 - '@boostercloud/eslint-config': workspace:^2.18.2 - '@boostercloud/framework-core': workspace:^2.18.2 - '@boostercloud/framework-types': workspace:^2.18.2 + '@boostercloud/application-tester': workspace:^2.18.3 + '@boostercloud/eslint-config': workspace:^2.18.3 + '@boostercloud/framework-core': workspace:^2.18.3 + '@boostercloud/framework-types': workspace:^2.18.3 '@effect-ts/core': ^0.60.4 '@oclif/core': 3.15.0 '@oclif/plugin-help': ^5 @@ -183,8 +183,8 @@ importers: ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.2 - '@boostercloud/framework-types': workspace:^2.18.2 + '@boostercloud/eslint-config': workspace:^2.18.3 + '@boostercloud/framework-types': workspace:^2.18.3 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -258,10 +258,10 @@ importers: ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.2 - '@boostercloud/framework-common-helpers': workspace:^2.18.2 - '@boostercloud/framework-types': workspace:^2.18.2 - '@boostercloud/metadata-booster': workspace:^2.18.2 + '@boostercloud/eslint-config': workspace:^2.18.3 + '@boostercloud/framework-common-helpers': workspace:^2.18.3 + '@boostercloud/framework-types': workspace:^2.18.3 + '@boostercloud/metadata-booster': workspace:^2.18.3 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 '@effect/platform-node': 0.45.26 @@ -378,19 +378,19 @@ importers: ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^2.18.2 - '@boostercloud/cli': workspace:^2.18.2 - '@boostercloud/eslint-config': workspace:^2.18.2 - '@boostercloud/framework-common-helpers': workspace:^2.18.2 - '@boostercloud/framework-core': workspace:^2.18.2 - '@boostercloud/framework-provider-aws': workspace:^2.18.2 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.18.2 - '@boostercloud/framework-provider-azure': workspace:^2.18.2 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.18.2 - '@boostercloud/framework-provider-local': workspace:^2.18.2 - '@boostercloud/framework-provider-local-infrastructure': workspace:^2.18.2 - '@boostercloud/framework-types': workspace:^2.18.2 - '@boostercloud/metadata-booster': workspace:^2.18.2 + '@boostercloud/application-tester': workspace:^2.18.3 + '@boostercloud/cli': workspace:^2.18.3 + '@boostercloud/eslint-config': workspace:^2.18.3 + '@boostercloud/framework-common-helpers': workspace:^2.18.3 + '@boostercloud/framework-core': workspace:^2.18.3 + '@boostercloud/framework-provider-aws': workspace:^2.18.3 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.18.3 + '@boostercloud/framework-provider-azure': workspace:^2.18.3 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.18.3 + '@boostercloud/framework-provider-local': workspace:^2.18.3 + '@boostercloud/framework-provider-local-infrastructure': workspace:^2.18.3 + '@boostercloud/framework-types': workspace:^2.18.3 + '@boostercloud/metadata-booster': workspace:^2.18.3 '@effect-ts/core': ^0.60.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 @@ -536,9 +536,9 @@ importers: ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.2 - '@boostercloud/framework-common-helpers': workspace:^2.18.2 - '@boostercloud/framework-types': workspace:^2.18.2 + '@boostercloud/eslint-config': workspace:^2.18.3 + '@boostercloud/framework-common-helpers': workspace:^2.18.3 + '@boostercloud/framework-types': workspace:^2.18.3 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -632,10 +632,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^2.18.2 - '@boostercloud/framework-common-helpers': workspace:^2.18.2 - '@boostercloud/framework-provider-aws': workspace:^2.18.2 - '@boostercloud/framework-types': workspace:^2.18.2 + '@boostercloud/eslint-config': workspace:^2.18.3 + '@boostercloud/framework-common-helpers': workspace:^2.18.3 + '@boostercloud/framework-provider-aws': workspace:^2.18.3 + '@boostercloud/framework-types': workspace:^2.18.3 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -749,10 +749,9 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^2.18.2 - '@boostercloud/framework-common-helpers': workspace:^2.18.2 - '@boostercloud/framework-types': workspace:^2.18.2 - '@cdktf/provider-azurerm': 13.3.0 + '@boostercloud/eslint-config': workspace:^2.18.3 + '@boostercloud/framework-common-helpers': workspace:^2.18.3 + '@boostercloud/framework-types': workspace:^2.18.3 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -788,7 +787,6 @@ importers: '@azure/web-pubsub': 1.1.3 '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-types': link:../framework-types - '@cdktf/provider-azurerm': 13.3.0 '@effect-ts/core': 0.60.5 tslib: 2.7.0 devDependencies: @@ -825,11 +823,11 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^2.18.2 - '@boostercloud/framework-common-helpers': workspace:^2.18.2 - '@boostercloud/framework-core': workspace:^2.18.2 - '@boostercloud/framework-provider-azure': workspace:^2.18.2 - '@boostercloud/framework-types': workspace:^2.18.2 + '@boostercloud/eslint-config': workspace:^2.18.3 + '@boostercloud/framework-common-helpers': workspace:^2.18.3 + '@boostercloud/framework-core': workspace:^2.18.3 + '@boostercloud/framework-provider-azure': workspace:^2.18.3 + '@boostercloud/framework-types': workspace:^2.18.3 '@cdktf/provider-azurerm': 13.3.0 '@cdktf/provider-time': 9.0.2 '@effect-ts/core': ^0.60.4 @@ -936,9 +934,9 @@ importers: ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.2 - '@boostercloud/framework-common-helpers': workspace:^2.18.2 - '@boostercloud/framework-types': workspace:^2.18.2 + '@boostercloud/eslint-config': workspace:^2.18.3 + '@boostercloud/framework-common-helpers': workspace:^2.18.3 + '@boostercloud/framework-types': workspace:^2.18.3 '@effect-ts/core': ^0.60.4 '@seald-io/nedb': 4.0.2 '@types/chai': 4.2.18 @@ -1015,10 +1013,10 @@ importers: ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.2 - '@boostercloud/framework-common-helpers': workspace:^2.18.2 - '@boostercloud/framework-provider-local': workspace:^2.18.2 - '@boostercloud/framework-types': workspace:^2.18.2 + '@boostercloud/eslint-config': workspace:^2.18.3 + '@boostercloud/framework-common-helpers': workspace:^2.18.3 + '@boostercloud/framework-provider-local': workspace:^2.18.3 + '@boostercloud/framework-types': workspace:^2.18.3 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1098,8 +1096,8 @@ importers: ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.2 - '@boostercloud/metadata-booster': workspace:^2.18.2 + '@boostercloud/eslint-config': workspace:^2.18.3 + '@boostercloud/metadata-booster': workspace:^2.18.3 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@effect/cli': 0.35.26 @@ -1183,7 +1181,7 @@ importers: ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.2 + '@boostercloud/eslint-config': workspace:^2.18.3 '@effect-ts/core': ^0.60.4 '@types/node': ^18.18.2 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -1670,7 +1668,7 @@ packages: '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu - '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 + '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 @@ -1942,7 +1940,7 @@ packages: '@aws-cdk/aws-route53-targets': 1.204.0_2eviprr3zwoouaslbumtdekrhi '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu - '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 + '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq '@aws-cdk/aws-servicediscovery': 1.204.0_nu23nesxfni464wb5cy4ehgagi '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -2243,7 +2241,7 @@ packages: '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-notifications': 1.204.0_xguspq3b5n56mo6dsez57f32qa - '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 + '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sns-subscriptions': 1.204.0_bpkznh2gsccwq6qpaogbkb4psu '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -2513,7 +2511,7 @@ packages: constructs: 3.4.344 dev: false - /@aws-cdk/aws-secretsmanager/1.204.0_336juigttbrwz7tyvm6a6wfpy4: + /@aws-cdk/aws-secretsmanager/1.204.0_2o53qceqenzlpxe4mjswmsqfiq: resolution: {integrity: sha512-ykpjYmP6qVOFbHtkaQBu3Xk7xp2UTR0ouzk7pb+zrEHKGmRvzGq+8J0IU+qXBJgQIVwFAPf2IgOSTzj6FJPdyA==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -2528,12 +2526,18 @@ packages: '@aws-cdk/cx-api': 1.204.0 constructs: ^3.3.69 dependencies: + '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu + '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-sam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/cx-api': 1.203.0 constructs: 3.4.344 + transitivePeerDependencies: + - '@aws-cdk/assets' + - '@aws-cdk/aws-logs' + - '@aws-cdk/aws-s3' dev: false /@aws-cdk/aws-servicediscovery/1.204.0_nu23nesxfni464wb5cy4ehgagi: @@ -3418,14 +3422,6 @@ packages: nan: 2.20.0 prebuild-install: 7.1.2 - /@cdktf/provider-azurerm/13.3.0: - resolution: {integrity: sha512-gXxAJYTpEMwxSteqJvZEQ8WpCot+E58sW5u/za0drc5zgkrYO3vTEsOByj8Vcxn7MWXrZFacnktgtU1UkPZs4w==} - engines: {node: '>= 18.12.0'} - peerDependencies: - cdktf: ^0.20.0 - constructs: ^10.3.0 - dev: false - /@cdktf/provider-azurerm/13.3.0_5k7lg6pu6lyti4sdnvep4rdzly: resolution: {integrity: sha512-gXxAJYTpEMwxSteqJvZEQ8WpCot+E58sW5u/za0drc5zgkrYO3vTEsOByj8Vcxn7MWXrZFacnktgtU1UkPZs4w==} engines: {node: '>= 18.12.0'} @@ -6419,7 +6415,7 @@ packages: dependencies: semver: 7.6.3 shelljs: 0.8.5 - typescript: 5.7.0-dev.20240927 + typescript: 5.7.0-dev.20241008 /duration/0.2.2: resolution: {integrity: sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==} @@ -11566,8 +11562,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript/5.7.0-dev.20240927: - resolution: {integrity: sha512-IWKZHTHAlS8BglLp8iM4rUHhy0h79B9r9vj6b6zpa8U38ofctFS1fLiKY7okZ3JYeG15kUHuOwsLwOmvc5+e1Q==} + /typescript/5.7.0-dev.20241008: + resolution: {integrity: sha512-FZzeU/lVGUgdl8+Rl2MChV2+eD0ZciK1LuVeoL8+P8ePsJjduRhGrWGRBHvy5KQOhZpxm0QdjrcnGkGDQEphvQ==} engines: {node: '>=14.17'} hasBin: true diff --git a/packages/framework-provider-azure/package.json b/packages/framework-provider-azure/package.json index 24a8d533a..3006decdf 100644 --- a/packages/framework-provider-azure/package.json +++ b/packages/framework-provider-azure/package.json @@ -31,8 +31,7 @@ "@boostercloud/framework-types": "workspace:^2.18.3", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", - "@azure/web-pubsub": "~1.1.0", - "@cdktf/provider-azurerm": "13.3.0" + "@azure/web-pubsub": "~1.1.0" }, "devDependencies": { "@boostercloud/eslint-config": "workspace:^2.18.3", From 98b5b725c45c1af7a86b12532209dbfe67510d21 Mon Sep 17 00:00:00 2001 From: GITHUBACTION Date: Tue, 8 Oct 2024 15:06:52 +0000 Subject: [PATCH 27/47] Bump versions [skip ci] --- ...ove_cdktf_dependency_2024-10-08-12-24.json | 10 ------- common/config/rush/version-policies.json | 2 +- packages/application-tester/package.json | 6 ++-- packages/cli/package.json | 10 +++---- .../framework-common-helpers/package.json | 6 ++-- packages/framework-core/CHANGELOG.json | 28 +++++++++++++++++++ packages/framework-core/CHANGELOG.md | 9 +++++- packages/framework-core/package.json | 10 +++---- .../framework-integration-tests/package.json | 28 +++++++++---------- .../package.json | 10 +++---- packages/framework-provider-aws/package.json | 8 +++--- .../package.json | 12 ++++---- .../framework-provider-azure/package.json | 8 +++--- .../package.json | 10 +++---- .../framework-provider-local/package.json | 8 +++--- packages/framework-types/package.json | 6 ++-- packages/metadata-booster/package.json | 4 +-- tools/eslint-config/package.json | 2 +- 18 files changed, 101 insertions(+), 76 deletions(-) delete mode 100644 common/changes/@boostercloud/framework-core/remove_cdktf_dependency_2024-10-08-12-24.json diff --git a/common/changes/@boostercloud/framework-core/remove_cdktf_dependency_2024-10-08-12-24.json b/common/changes/@boostercloud/framework-core/remove_cdktf_dependency_2024-10-08-12-24.json deleted file mode 100644 index c3e5d0f9e..000000000 --- a/common/changes/@boostercloud/framework-core/remove_cdktf_dependency_2024-10-08-12-24.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@boostercloud/framework-core", - "comment": "Remove unnecessary @cdktf/provider-azurerm dependency from Azure provider package", - "type": "patch" - } - ], - "packageName": "@boostercloud/framework-core" -} \ No newline at end of file diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index d07dbde40..79733f20c 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -103,6 +103,6 @@ "definitionName": "lockStepVersion", "policyName": "booster", "mainProject": "@boostercloud/framework-core", - "version": "2.18.3" + "version": "2.18.4" } ] diff --git a/packages/application-tester/package.json b/packages/application-tester/package.json index cb83c4ea0..b2a727a69 100644 --- a/packages/application-tester/package.json +++ b/packages/application-tester/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/application-tester", - "version": "2.18.3", + "version": "2.18.4", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "application-tester" @@ -36,7 +36,7 @@ }, "dependencies": { "@apollo/client": "3.7.13", - "@boostercloud/framework-types": "workspace:^2.18.3", + "@boostercloud/framework-types": "workspace:^2.18.4", "cross-fetch": "3.1.5", "graphql": "^16.6.0", "jsonwebtoken": "9.0.1", @@ -48,7 +48,7 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.3", + "@boostercloud/eslint-config": "workspace:^2.18.4", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", "eslint": "^8.23.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index 083c667c5..ce2a32d42 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/cli", "description": "CLI of the Booster Framework, the next level of abstraction for cloud-native applications", - "version": "2.18.3", + "version": "2.18.4", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -12,8 +12,8 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-core": "workspace:^2.18.3", - "@boostercloud/framework-types": "workspace:^2.18.3", + "@boostercloud/framework-core": "workspace:^2.18.4", + "@boostercloud/framework-types": "workspace:^2.18.4", "@oclif/core": "3.15.0", "@oclif/plugin-help": "^5", "chalk": "^2.4.2", @@ -30,8 +30,8 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.3", - "@boostercloud/application-tester": "workspace:^2.18.3", + "@boostercloud/eslint-config": "workspace:^2.18.4", + "@boostercloud/application-tester": "workspace:^2.18.4", "@oclif/test": "^3.0.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", diff --git a/packages/framework-common-helpers/package.json b/packages/framework-common-helpers/package.json index fba765351..9102b223e 100644 --- a/packages/framework-common-helpers/package.json +++ b/packages/framework-common-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-common-helpers", - "version": "2.18.3", + "version": "2.18.4", "description": "Contains Booster common helpers used by the core and provider packages", "keywords": [ "framework-common-helpers" @@ -36,14 +36,14 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-types": "workspace:^2.18.3", + "@boostercloud/framework-types": "workspace:^2.18.4", "child-process-promise": "^2.2.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "class-transformer": "~0.5.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.3", + "@boostercloud/eslint-config": "workspace:^2.18.4", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/child-process-promise": "^2.2.1", diff --git a/packages/framework-core/CHANGELOG.json b/packages/framework-core/CHANGELOG.json index e831f4af5..98a6dc898 100644 --- a/packages/framework-core/CHANGELOG.json +++ b/packages/framework-core/CHANGELOG.json @@ -1,6 +1,34 @@ { "name": "@boostercloud/framework-core", "entries": [ + { + "version": "2.18.4", + "tag": "@boostercloud/framework-core_v2.18.4", + "date": "Tue, 08 Oct 2024 15:06:52 GMT", + "comments": { + "patch": [ + { + "comment": "Remove unnecessary @cdktf/provider-azurerm dependency from Azure provider package", + "author": "Mario Castro Squella ", + "commit": "1c97d6dcef1799207e21a8368827f02f2a0e0b77" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@boostercloud/framework-common-helpers\" from `^2.18.3` to `^2.18.4`" + }, + { + "comment": "Updating dependency \"@boostercloud/framework-types\" from `^2.18.3` to `^2.18.4`" + }, + { + "comment": "Updating dependency \"@boostercloud/metadata-booster\" from `^2.18.3` to `^2.18.4`" + }, + { + "comment": "Updating dependency \"@boostercloud/eslint-config\" from `^2.18.3` to `^2.18.4`" + } + ] + } + }, { "version": "2.18.3", "tag": "@boostercloud/framework-core_v2.18.3", diff --git a/packages/framework-core/CHANGELOG.md b/packages/framework-core/CHANGELOG.md index 006cdb8b3..a1f985969 100644 --- a/packages/framework-core/CHANGELOG.md +++ b/packages/framework-core/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @boostercloud/framework-core -This log was last generated on Mon, 30 Sep 2024 19:09:52 GMT and should not be manually modified. +This log was last generated on Tue, 08 Oct 2024 15:06:52 GMT and should not be manually modified. + +## 2.18.4 +Tue, 08 Oct 2024 15:06:52 GMT + +### Patches + +- Remove unnecessary @cdktf/provider-azurerm dependency from Azure provider package ## 2.18.3 Mon, 30 Sep 2024 19:09:52 GMT diff --git a/packages/framework-core/package.json b/packages/framework-core/package.json index 885af74ca..75a0af21e 100644 --- a/packages/framework-core/package.json +++ b/packages/framework-core/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-core", - "version": "2.18.3", + "version": "2.18.4", "description": "Library for your Booster apps", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", @@ -37,8 +37,8 @@ "graphql": "^16.6.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.3", - "@boostercloud/framework-types": "workspace:^2.18.3", + "@boostercloud/framework-common-helpers": "workspace:^2.18.4", + "@boostercloud/framework-types": "workspace:^2.18.4", "fp-ts": "^2.11.0", "graphql-scalars": "^1.17.0", "graphql-subscriptions": "2.0.0", @@ -61,8 +61,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/metadata-booster": "workspace:^2.18.3", - "@boostercloud/eslint-config": "workspace:^2.18.3", + "@boostercloud/metadata-booster": "workspace:^2.18.4", + "@boostercloud/eslint-config": "workspace:^2.18.4", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-integration-tests/package.json b/packages/framework-integration-tests/package.json index b98dd1b88..9e907d58c 100644 --- a/packages/framework-integration-tests/package.json +++ b/packages/framework-integration-tests/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-integration-tests", "description": "Example project for Booster", - "version": "2.18.3", + "version": "2.18.4", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -9,12 +9,12 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.3", - "@boostercloud/framework-core": "workspace:^2.18.3", - "@boostercloud/framework-provider-aws": "workspace:^2.18.3", - "@boostercloud/framework-provider-azure": "workspace:^2.18.3", - "@boostercloud/framework-provider-local": "workspace:^2.18.3", - "@boostercloud/framework-types": "workspace:^2.18.3", + "@boostercloud/framework-common-helpers": "workspace:^2.18.4", + "@boostercloud/framework-core": "workspace:^2.18.4", + "@boostercloud/framework-provider-aws": "workspace:^2.18.4", + "@boostercloud/framework-provider-azure": "workspace:^2.18.4", + "@boostercloud/framework-provider-local": "workspace:^2.18.4", + "@boostercloud/framework-types": "workspace:^2.18.4", "aws-sdk": "2.853.0", "graphql": "^16.6.0", "tslib": "^2.4.0", @@ -33,13 +33,13 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.3", - "@boostercloud/application-tester": "workspace:^2.18.3", - "@boostercloud/cli": "workspace:^2.18.3", - "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.18.3", - "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.18.3", - "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.18.3", - "@boostercloud/metadata-booster": "workspace:^2.18.3", + "@boostercloud/eslint-config": "workspace:^2.18.4", + "@boostercloud/application-tester": "workspace:^2.18.4", + "@boostercloud/cli": "workspace:^2.18.4", + "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.18.4", + "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.18.4", + "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.18.4", + "@boostercloud/metadata-booster": "workspace:^2.18.4", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-aws-infrastructure/package.json b/packages/framework-provider-aws-infrastructure/package.json index 5fe59753c..a6b531531 100644 --- a/packages/framework-provider-aws-infrastructure/package.json +++ b/packages/framework-provider-aws-infrastructure/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws-infrastructure", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.18.3", + "version": "2.18.4", "description": "Handle the Booster deployment process to AWS", "keywords": [ "framework-provider-aws-infrastructure" @@ -41,9 +41,9 @@ "@aws-cdk/aws-s3-deployment": "^1.170.0", "@aws-cdk/core": "^1.170.0", "@aws-cdk/cx-api": "^1.170.0", - "@boostercloud/framework-common-helpers": "workspace:^2.18.3", - "@boostercloud/framework-provider-aws": "workspace:^2.18.3", - "@boostercloud/framework-types": "workspace:^2.18.3", + "@boostercloud/framework-common-helpers": "workspace:^2.18.4", + "@boostercloud/framework-provider-aws": "workspace:^2.18.4", + "@boostercloud/framework-types": "workspace:^2.18.4", "constructs": "^3.3.69", "aws-cdk": "^1.170.0", "aws-sdk": "2.853.0", @@ -69,7 +69,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.3", + "@boostercloud/eslint-config": "workspace:^2.18.4", "@types/aws-lambda": "8.10.48", "@types/aws-sdk": "2.7.0", "@types/chai": "4.2.18", diff --git a/packages/framework-provider-aws/package.json b/packages/framework-provider-aws/package.json index 700aebc30..077df29ac 100644 --- a/packages/framework-provider-aws/package.json +++ b/packages/framework-provider-aws/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.18.3", + "version": "2.18.4", "description": "Handle Booster's integration with AWS", "keywords": [ "framework-provider-aws" @@ -24,8 +24,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.3", - "@boostercloud/framework-types": "workspace:^2.18.3", + "@boostercloud/framework-common-helpers": "workspace:^2.18.4", + "@boostercloud/framework-types": "workspace:^2.18.4", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4" }, @@ -43,7 +43,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.3", + "@boostercloud/eslint-config": "workspace:^2.18.4", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-azure-infrastructure/package.json b/packages/framework-provider-azure-infrastructure/package.json index 5769d772f..c5f4e0439 100644 --- a/packages/framework-provider-azure-infrastructure/package.json +++ b/packages/framework-provider-azure-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure-infrastructure", - "version": "2.18.3", + "version": "2.18.4", "description": "Handle the Booster deployment process to Azure", "keywords": [ "framework-provider-azure-infrastructure" @@ -25,10 +25,10 @@ "dependencies": { "@azure/arm-appservice": "^13.0.0", "@azure/cosmos": "^4.0.0", - "@boostercloud/framework-common-helpers": "workspace:^2.18.3", - "@boostercloud/framework-core": "workspace:^2.18.3", - "@boostercloud/framework-provider-azure": "workspace:^2.18.3", - "@boostercloud/framework-types": "workspace:^2.18.3", + "@boostercloud/framework-common-helpers": "workspace:^2.18.4", + "@boostercloud/framework-core": "workspace:^2.18.4", + "@boostercloud/framework-provider-azure": "workspace:^2.18.4", + "@boostercloud/framework-types": "workspace:^2.18.4", "@cdktf/provider-azurerm": "13.3.0", "@cdktf/provider-time": "9.0.2", "@types/archiver": "5.1.0", @@ -67,7 +67,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.3", + "@boostercloud/eslint-config": "workspace:^2.18.4", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-azure/package.json b/packages/framework-provider-azure/package.json index 3006decdf..f004b849d 100644 --- a/packages/framework-provider-azure/package.json +++ b/packages/framework-provider-azure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure", - "version": "2.18.3", + "version": "2.18.4", "description": "Handle Booster's integration with Azure", "keywords": [ "framework-provider-azure" @@ -27,14 +27,14 @@ "@azure/functions": "^1.2.2", "@azure/identity": "~2.1.0", "@azure/event-hubs": "5.11.1", - "@boostercloud/framework-common-helpers": "workspace:^2.18.3", - "@boostercloud/framework-types": "workspace:^2.18.3", + "@boostercloud/framework-common-helpers": "workspace:^2.18.4", + "@boostercloud/framework-types": "workspace:^2.18.4", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "@azure/web-pubsub": "~1.1.0" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.3", + "@boostercloud/eslint-config": "workspace:^2.18.4", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-local-infrastructure/package.json b/packages/framework-provider-local-infrastructure/package.json index b9c38e670..a9ca4b774 100644 --- a/packages/framework-provider-local-infrastructure/package.json +++ b/packages/framework-provider-local-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local-infrastructure", - "version": "2.18.3", + "version": "2.18.4", "description": "Handle the Booster running process of the local runtime", "keywords": [ "framework-provider-local-infrastructure" @@ -23,9 +23,9 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.3", - "@boostercloud/framework-provider-local": "workspace:^2.18.3", - "@boostercloud/framework-types": "workspace:^2.18.3", + "@boostercloud/framework-common-helpers": "workspace:^2.18.4", + "@boostercloud/framework-provider-local": "workspace:^2.18.4", + "@boostercloud/framework-types": "workspace:^2.18.4", "cors": "2.8.5", "express": "^4.19.2", "node-schedule": "^2.1.0", @@ -46,7 +46,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.3", + "@boostercloud/eslint-config": "workspace:^2.18.4", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/cors": "^2.8.12", diff --git a/packages/framework-provider-local/package.json b/packages/framework-provider-local/package.json index e20f37e9d..2d9cd3fd4 100644 --- a/packages/framework-provider-local/package.json +++ b/packages/framework-provider-local/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local", - "version": "2.18.3", + "version": "2.18.4", "description": "Debug your Booster projects locally", "keywords": [ "framework-provider-local" @@ -23,8 +23,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.3", - "@boostercloud/framework-types": "workspace:^2.18.3", + "@boostercloud/framework-common-helpers": "workspace:^2.18.4", + "@boostercloud/framework-types": "workspace:^2.18.4", "@seald-io/nedb": "4.0.2", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", @@ -44,7 +44,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.3", + "@boostercloud/eslint-config": "workspace:^2.18.4", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/express": "^4.17.21", diff --git a/packages/framework-types/package.json b/packages/framework-types/package.json index 0f231cf4d..ffabb24b3 100644 --- a/packages/framework-types/package.json +++ b/packages/framework-types/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-types", - "version": "2.18.3", + "version": "2.18.4", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "framework-types" @@ -54,8 +54,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.3", - "@boostercloud/metadata-booster": "workspace:^2.18.3", + "@boostercloud/eslint-config": "workspace:^2.18.4", + "@boostercloud/metadata-booster": "workspace:^2.18.4", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/mocha": "10.0.1", diff --git a/packages/metadata-booster/package.json b/packages/metadata-booster/package.json index 42dbb0631..a685662d2 100644 --- a/packages/metadata-booster/package.json +++ b/packages/metadata-booster/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/metadata-booster", - "version": "2.18.3", + "version": "2.18.4", "description": "Emits detailed metadata of your types. You can then get it in runtime to deal with schema-aware operation, like defining GraphQL schemas, ORM operations, etc.", "repository": "https://github.com/boostercloud/booster.git", "keywords": [ @@ -38,7 +38,7 @@ "eslint-config-prettier": "8.3.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "3.4.0", - "@boostercloud/eslint-config": "workspace:^2.18.3", + "@boostercloud/eslint-config": "workspace:^2.18.4", "@types/node": "^18.18.2", "ts-node": "^10.9.1", "ts-patch": "3.1.2", diff --git a/tools/eslint-config/package.json b/tools/eslint-config/package.json index 42aefb26e..8b0e9ca6b 100644 --- a/tools/eslint-config/package.json +++ b/tools/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/eslint-config", - "version": "2.18.3", + "version": "2.18.4", "description": "Shared eslint rules", "main": "index.js", "publishConfig": { From b61ba732753d7efd448f31a79da1408821f170b1 Mon Sep 17 00:00:00 2001 From: Nicolas Scheers Date: Wed, 9 Oct 2024 17:19:00 +0200 Subject: [PATCH 28/47] feat: test for union types --- common/config/rush/pnpm-lock.yaml | 169 +++++++++--------- .../end-to-end/queries.integration.ts | 44 +++++ .../src/commands/add-book.ts | 14 ++ .../src/commands/add-movie.ts | 14 ++ .../src/entities/book.ts | 19 ++ .../src/entities/movie.ts | 19 ++ .../src/events/book-added.ts | 11 ++ .../src/events/movie-added.ts | 11 ++ .../src/queries/search-media.ts | 39 ++++ .../src/read-models/book-read-model.ts | 18 ++ .../src/read-models/movie-read-model.ts | 18 ++ 11 files changed, 287 insertions(+), 89 deletions(-) create mode 100644 packages/framework-integration-tests/src/commands/add-book.ts create mode 100644 packages/framework-integration-tests/src/commands/add-movie.ts create mode 100644 packages/framework-integration-tests/src/entities/book.ts create mode 100644 packages/framework-integration-tests/src/entities/movie.ts create mode 100644 packages/framework-integration-tests/src/events/book-added.ts create mode 100644 packages/framework-integration-tests/src/events/movie-added.ts create mode 100644 packages/framework-integration-tests/src/queries/search-media.ts create mode 100644 packages/framework-integration-tests/src/read-models/book-read-model.ts create mode 100644 packages/framework-integration-tests/src/read-models/movie-read-model.ts diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 1cce552fa..19d209c53 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,8 +8,8 @@ importers: ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.18.2 @@ -70,10 +70,10 @@ importers: ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^2.11.0 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-core': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/application-tester': workspace:^2.12.1 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-core': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@oclif/core': 3.15.0 '@oclif/plugin-help': ^5 @@ -183,8 +183,8 @@ importers: ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -254,10 +254,10 @@ importers: ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 - '@boostercloud/metadata-booster': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 + '@boostercloud/metadata-booster': workspace:^2.12.1 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 '@effect/platform-node': 0.45.26 @@ -374,19 +374,19 @@ importers: ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^2.11.0 - '@boostercloud/cli': workspace:^2.11.0 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-core': workspace:^2.11.0 - '@boostercloud/framework-provider-aws': workspace:^2.11.0 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.11.0 - '@boostercloud/framework-provider-azure': workspace:^2.11.0 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.11.0 - '@boostercloud/framework-provider-local': workspace:^2.11.0 - '@boostercloud/framework-provider-local-infrastructure': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 - '@boostercloud/metadata-booster': workspace:^2.11.0 + '@boostercloud/application-tester': workspace:^2.12.1 + '@boostercloud/cli': workspace:^2.12.1 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-core': workspace:^2.12.1 + '@boostercloud/framework-provider-aws': workspace:^2.12.1 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.12.1 + '@boostercloud/framework-provider-azure': workspace:^2.12.1 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.12.1 + '@boostercloud/framework-provider-local': workspace:^2.12.1 + '@boostercloud/framework-provider-local-infrastructure': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 + '@boostercloud/metadata-booster': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 @@ -532,9 +532,9 @@ importers: ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -628,10 +628,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-provider-aws': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-provider-aws': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -745,9 +745,9 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -819,11 +819,11 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-core': workspace:^2.11.0 - '@boostercloud/framework-provider-azure': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-core': workspace:^2.12.1 + '@boostercloud/framework-provider-azure': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@cdktf/provider-azurerm': 11.2.0 '@cdktf/provider-time': 9.0.2 '@effect-ts/core': ^0.60.4 @@ -930,9 +930,9 @@ importers: ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@seald-io/nedb': 4.0.2 '@types/chai': 4.2.18 @@ -1009,10 +1009,10 @@ importers: ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/framework-common-helpers': workspace:^2.11.0 - '@boostercloud/framework-provider-local': workspace:^2.11.0 - '@boostercloud/framework-types': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/framework-common-helpers': workspace:^2.12.1 + '@boostercloud/framework-provider-local': workspace:^2.12.1 + '@boostercloud/framework-types': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1092,8 +1092,8 @@ importers: ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 - '@boostercloud/metadata-booster': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 + '@boostercloud/metadata-booster': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@effect/cli': 0.35.26 @@ -1177,7 +1177,7 @@ importers: ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^2.11.0 + '@boostercloud/eslint-config': workspace:^2.12.1 '@effect-ts/core': ^0.60.4 '@types/node': ^18.18.2 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -1388,7 +1388,7 @@ packages: '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-cognito': 1.204.0_jhanj7vnhseo3o4cwsyzgiowqa '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu @@ -1518,7 +1518,7 @@ packages: '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam @@ -1610,7 +1610,7 @@ packages: '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi - '@aws-cdk/aws-ssm': 1.204.0_cttdkzy7hngahjug7jmkfylr2y + '@aws-cdk/aws-ssm': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/cx-api': 1.203.0 constructs: 3.4.344 @@ -1660,7 +1660,7 @@ packages: '@aws-cdk/aws-codecommit': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-codestarnotifications': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu @@ -1668,7 +1668,7 @@ packages: '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu - '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq + '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 @@ -1848,7 +1848,7 @@ packages: '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu - '@aws-cdk/aws-ssm': 1.204.0_cttdkzy7hngahjug7jmkfylr2y + '@aws-cdk/aws-ssm': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/cloud-assembly-schema': 1.204.0 '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/cx-api': 1.203.0 @@ -1875,7 +1875,7 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/assets': 1.204.0_uszt2j4mor3yrbm3tre3az4zvy - '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam @@ -1885,7 +1885,7 @@ packages: - '@aws-cdk/aws-events' dev: false - /@aws-cdk/aws-ecr/1.204.0_bi2u42js5xhxqcsg5gqefde4xi: + /@aws-cdk/aws-ecr/1.204.0_4bnk2gpayjo75fecjckge2dkni: resolution: {integrity: sha512-oCts9e+ackWoFHeyn/3oKm3X1lSizleWNNXHp5WGM38lpNVrtCLMKSShu5iXJBhqRH2Mz1AcA4fDMWhe8DvJFA==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -1901,11 +1901,8 @@ packages: dependencies: '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu - '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam constructs: 3.4.344 - transitivePeerDependencies: - - '@aws-cdk/cx-api' dev: false /@aws-cdk/aws-ecs/1.204.0_iu2vquo67t63xu6vdymsg3ufny: @@ -1931,23 +1928,23 @@ packages: '@aws-cdk/aws-certificatemanager': 1.204.0_xtqk4litqxecxsqs3sd6ajo2ja '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/aws-route53': 1.204.0_i3vim6rlintxrbha4iep76yf5u - '@aws-cdk/aws-route53-targets': 1.204.0_yvzacxtkufuieelzdl2p47lu74 + '@aws-cdk/aws-route53-targets': 1.204.0_2eviprr3zwoouaslbumtdekrhi '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu - '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq - '@aws-cdk/aws-servicediscovery': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 + '@aws-cdk/aws-servicediscovery': 1.204.0_nu23nesxfni464wb5cy4ehgagi '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y - '@aws-cdk/aws-ssm': 1.204.0_cttdkzy7hngahjug7jmkfylr2y + '@aws-cdk/aws-ssm': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/cx-api': 1.203.0 constructs: 3.4.344 @@ -2005,7 +2002,7 @@ packages: constructs: 3.4.344 dev: false - /@aws-cdk/aws-elasticloadbalancingv2/1.204.0_duidta2ijoio5sg5x7jqysldja: + /@aws-cdk/aws-elasticloadbalancingv2/1.204.0_xbmlyikxd4zabyotfrt4oo4gli: resolution: {integrity: sha512-/43kzUTU3w9jimPuD5QZxoBN74+9QnOdhAcqIMVCFLPMkVLAxx3vg5g5MWWG+3j6rUoSecrtrP1AP7thZuo5wA==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -2023,6 +2020,7 @@ packages: dependencies: '@aws-cdk/aws-certificatemanager': 1.204.0_xtqk4litqxecxsqs3sd6ajo2ja '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm + '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-route53': 1.204.0_i3vim6rlintxrbha4iep76yf5u @@ -2033,7 +2031,7 @@ packages: '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 transitivePeerDependencies: - - '@aws-cdk/aws-ec2' + - '@aws-cdk/assets' - '@aws-cdk/aws-logs' - '@aws-cdk/custom-resources' dev: false @@ -2243,7 +2241,7 @@ packages: '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-notifications': 1.204.0_xguspq3b5n56mo6dsez57f32qa - '@aws-cdk/aws-secretsmanager': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq + '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sns-subscriptions': 1.204.0_bpkznh2gsccwq6qpaogbkb4psu '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -2276,7 +2274,7 @@ packages: '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-codeguruprofiler': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-efs': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm @@ -2322,7 +2320,7 @@ packages: - '@aws-cdk/aws-s3' dev: false - /@aws-cdk/aws-route53-targets/1.204.0_yvzacxtkufuieelzdl2p47lu74: + /@aws-cdk/aws-route53-targets/1.204.0_2eviprr3zwoouaslbumtdekrhi: resolution: {integrity: sha512-JyILJz/HGRMilpFxrDk/VXv+TN24DoG5Gfdfh8SJoJpptokowN8blaQ2ibf6N0JnFqWSBrs7gMMWB2dR/sXoTQ==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -2344,7 +2342,7 @@ packages: '@aws-cdk/aws-cognito': 1.204.0_jhanj7vnhseo3o4cwsyzgiowqa '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli '@aws-cdk/aws-globalaccelerator': 1.204.0_u3bt2hwm6nh6yzg6d6qalghehq '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-route53': 1.204.0_i3vim6rlintxrbha4iep76yf5u @@ -2353,6 +2351,7 @@ packages: '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 transitivePeerDependencies: + - '@aws-cdk/assets' - '@aws-cdk/aws-lambda' - '@aws-cdk/aws-logs' - '@aws-cdk/custom-resources' @@ -2512,7 +2511,7 @@ packages: constructs: 3.4.344 dev: false - /@aws-cdk/aws-secretsmanager/1.204.0_2o53qceqenzlpxe4mjswmsqfiq: + /@aws-cdk/aws-secretsmanager/1.204.0_336juigttbrwz7tyvm6a6wfpy4: resolution: {integrity: sha512-ykpjYmP6qVOFbHtkaQBu3Xk7xp2UTR0ouzk7pb+zrEHKGmRvzGq+8J0IU+qXBJgQIVwFAPf2IgOSTzj6FJPdyA==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -2527,21 +2526,15 @@ packages: '@aws-cdk/cx-api': 1.204.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu - '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-sam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/cx-api': 1.203.0 constructs: 3.4.344 - transitivePeerDependencies: - - '@aws-cdk/assets' - - '@aws-cdk/aws-logs' - - '@aws-cdk/aws-s3' dev: false - /@aws-cdk/aws-servicediscovery/1.204.0_duidta2ijoio5sg5x7jqysldja: + /@aws-cdk/aws-servicediscovery/1.204.0_nu23nesxfni464wb5cy4ehgagi: resolution: {integrity: sha512-K1ckza6oAj3DntEAYmolm2JafkxJ0ekWb+DCl9hkm9l+546j28Qpb4cm8VkgGteNBN4JYACxrIuIxVC2zBLsCg==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -2555,11 +2548,12 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_duidta2ijoio5sg5x7jqysldja + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli '@aws-cdk/aws-route53': 1.204.0_i3vim6rlintxrbha4iep76yf5u '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam constructs: 3.4.344 transitivePeerDependencies: + - '@aws-cdk/assets' - '@aws-cdk/aws-iam' - '@aws-cdk/aws-lambda' - '@aws-cdk/aws-logs' @@ -2658,7 +2652,7 @@ packages: - '@aws-cdk/cx-api' dev: false - /@aws-cdk/aws-ssm/1.204.0_cttdkzy7hngahjug7jmkfylr2y: + /@aws-cdk/aws-ssm/1.204.0_w2xl3dexbzdynnzeafah4cuzfm: resolution: {integrity: sha512-yYx7HZ8cWNXDAmX/99WkB477QhLoV2rcB8orei8aj7nRkNq5TMjeox0IJaZVgU+edNEDOi1fVX3flh0SAMiUrg==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -2672,12 +2666,9 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu - '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/cloud-assembly-schema': 1.204.0 '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam constructs: 3.4.344 - transitivePeerDependencies: - - '@aws-cdk/cx-api' dev: false /@aws-cdk/aws-stepfunctions/1.204.0_5s7psvfm6hmailsvkk6x3wncsq: @@ -6409,7 +6400,7 @@ packages: dependencies: semver: 7.6.0 shelljs: 0.8.5 - typescript: 5.6.0-dev.20240604 + typescript: 5.7.0-dev.20241009 /duration/0.2.2: resolution: {integrity: sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==} @@ -11613,8 +11604,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript/5.6.0-dev.20240604: - resolution: {integrity: sha512-uwpkMy5U51ERVvVtQmDZwjYllREGrqP35JcdR5yWIoZ7ZE2I1oDsDs3mtLiiiccyHspCZ54Z741ibuP3NbACtg==} + /typescript/5.7.0-dev.20241009: + resolution: {integrity: sha512-NhJGDOqw0Wef3qCmG1yVVOHfZu365OED2CQvqFRIR1AXSirHf2Z/uGKjACdmrvm97IQpuszvQL15yaXwydCIVg==} engines: {node: '>=14.17'} hasBin: true diff --git a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts index 8a000269d..b480b28f2 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts @@ -143,6 +143,50 @@ describe('Queries end-to-end tests', () => { expect(response).not.to.be.null expect(response?.data?.CartTotalQuantity).to.be.eq(beforeHookQueryMultiply * quantity) }) + + it('accepts a union type', async () => { + const bookId = random.uuid() + const movieId = random.uuid() + await client.mutate({ + variables: { + bookId: bookId, + title: 'The Life Of J Robert Oppenheimer', + }, + mutation: gql` + mutation AddBook($bookId: ID!, $title: String!) { + AddBook(input: { bookId: $bookId, title: $title }) + } + `, + }) + await client.mutate({ + variables: { + movieId: movieId, + title: 'Oppenheimer (2023)', + }, + mutation: gql` + mutation AddMovie($movieId: ID!, $title: String!) { + AddMovie(input: { movieId: $bookId, title: $title }) + } + `, + }) + + const response = await waitForIt( + () => + client.query({ + variables: { + search: 'Oppenheimer', + }, + query: gql` + query SearchMedia($title: string!) { + SearchMedia(input: { title: $title }) + } + `, + }), + (result) => result?.data?.SearchMedia != undefined + ) + + expect(response).not.to.be.null + }) }) context('when the query requires a specific role', () => { diff --git a/packages/framework-integration-tests/src/commands/add-book.ts b/packages/framework-integration-tests/src/commands/add-book.ts new file mode 100644 index 000000000..9febcb6f1 --- /dev/null +++ b/packages/framework-integration-tests/src/commands/add-book.ts @@ -0,0 +1,14 @@ +import { Command } from '@boostercloud/framework-core' +import { Register, UUID } from '@boostercloud/framework-types' +import { BookAdded } from '../events/book-added' + +@Command({ + authorize: 'all', +}) +export class AddBook { + public constructor(readonly id: UUID, readonly title: string) {} + + public static async handle(command: AddBook, register: Register): Promise { + register.events(new BookAdded(command.id, command.title)) + } +} diff --git a/packages/framework-integration-tests/src/commands/add-movie.ts b/packages/framework-integration-tests/src/commands/add-movie.ts new file mode 100644 index 000000000..97a3c3b1c --- /dev/null +++ b/packages/framework-integration-tests/src/commands/add-movie.ts @@ -0,0 +1,14 @@ +import { Command } from '@boostercloud/framework-core' +import { Register, UUID } from '@boostercloud/framework-types' +import { MovieAdded } from '../events/movie-added' + +@Command({ + authorize: 'all', +}) +export class AddMovie { + public constructor(readonly id: UUID, readonly title: string) {} + + public static async handle(command: AddMovie, register: Register): Promise { + register.events(new MovieAdded(command.id, command.title)) + } +} diff --git a/packages/framework-integration-tests/src/entities/book.ts b/packages/framework-integration-tests/src/entities/book.ts new file mode 100644 index 000000000..2046f2cdd --- /dev/null +++ b/packages/framework-integration-tests/src/entities/book.ts @@ -0,0 +1,19 @@ +import { Entity, Reduces } from '@boostercloud/framework-core' +import { UUID } from '@boostercloud/framework-types' +import { BookAdded } from '../events/book-added' + +@Entity({ + authorizeReadEvents: 'all', +}) +export class Book { + public constructor(readonly id: UUID, readonly title: string) {} + + public getId(): UUID { + return this.id + } + + @Reduces(BookAdded) + public static bookAdded(event: BookAdded, currentBook: Book): Book { + return currentBook + } +} diff --git a/packages/framework-integration-tests/src/entities/movie.ts b/packages/framework-integration-tests/src/entities/movie.ts new file mode 100644 index 000000000..ec6622655 --- /dev/null +++ b/packages/framework-integration-tests/src/entities/movie.ts @@ -0,0 +1,19 @@ +import { Entity, Reduces } from '@boostercloud/framework-core' +import { UUID } from '@boostercloud/framework-types' +import { MovieAdded } from '../events/movie-added' + +@Entity({ + authorizeReadEvents: 'all', +}) +export class Movie { + public constructor(readonly id: UUID, readonly title: string) {} + + public getId(): UUID { + return this.id + } + + @Reduces(MovieAdded) + public static movieAdded(event: MovieAdded, currentMovie: Movie): Movie { + return currentMovie + } +} diff --git a/packages/framework-integration-tests/src/events/book-added.ts b/packages/framework-integration-tests/src/events/book-added.ts new file mode 100644 index 000000000..ed76ed288 --- /dev/null +++ b/packages/framework-integration-tests/src/events/book-added.ts @@ -0,0 +1,11 @@ +import { Event } from '@boostercloud/framework-core' +import { UUID } from '@boostercloud/framework-types' + +@Event +export class BookAdded { + public constructor(readonly bookId: UUID, readonly title: string) {} + + public entityID(): UUID { + return this.bookId + } +} diff --git a/packages/framework-integration-tests/src/events/movie-added.ts b/packages/framework-integration-tests/src/events/movie-added.ts new file mode 100644 index 000000000..6b55d7fa7 --- /dev/null +++ b/packages/framework-integration-tests/src/events/movie-added.ts @@ -0,0 +1,11 @@ +import { Event } from '@boostercloud/framework-core' +import { UUID } from '@boostercloud/framework-types' + +@Event +export class MovieAdded { + public constructor(readonly movieId: UUID, readonly title: string) {} + + public entityID(): UUID { + return this.movieId + } +} diff --git a/packages/framework-integration-tests/src/queries/search-media.ts b/packages/framework-integration-tests/src/queries/search-media.ts new file mode 100644 index 000000000..1f0dd8740 --- /dev/null +++ b/packages/framework-integration-tests/src/queries/search-media.ts @@ -0,0 +1,39 @@ +import { Booster, Query } from '@boostercloud/framework-core' +import { QueryInfo } from '@boostercloud/framework-types' +import { BookReadModel } from '../read-models/book-read-model' +import { MovieReadModel } from '../read-models/movie-read-model' +@Query({ + authorize: 'all', +}) +export class SearchMedia { + public constructor(readonly searchword: string) {} + + public static async handle(query: SearchMedia, queryInfo: QueryInfo): Promise { + // const books: Array = (await Booster.readModel(BookReadModel) + // .filter({ + // title: { + // contains: query.searchword, + // }, + // }) + // .paginatedVersion(false) + // .search()) as Array + + const [books, movies] = await Promise.all([ + Booster.readModel(BookReadModel) + .filter({ + title: { + contains: query.searchword, + }, + }) + .search(), + Booster.readModel(MovieReadModel) + .filter({ + title: { + contains: query.searchword, + }, + }) + .search(), + ]) + return books.concat(movies)[0] + } +} diff --git a/packages/framework-integration-tests/src/read-models/book-read-model.ts b/packages/framework-integration-tests/src/read-models/book-read-model.ts new file mode 100644 index 000000000..cb7ec8f43 --- /dev/null +++ b/packages/framework-integration-tests/src/read-models/book-read-model.ts @@ -0,0 +1,18 @@ +import { Projects, ReadModel } from '@boostercloud/framework-core' +import { ProjectionResult, UUID } from '@boostercloud/framework-types' +import { Book } from '../entities/book' + +@ReadModel({ + authorize: 'all', +}) +export class BookReadModel { + public constructor(readonly id: UUID, readonly title: string) {} + + @Projects(Book, 'id') + public static updateBook(book: Book, oldBook?: BookReadModel): ProjectionResult { + // This method calls are here to ensure they work. More info: https://github.com/boostercloud/booster/issues/797 + book.getId() + + return new BookReadModel(book.id, book.title) + } +} diff --git a/packages/framework-integration-tests/src/read-models/movie-read-model.ts b/packages/framework-integration-tests/src/read-models/movie-read-model.ts new file mode 100644 index 000000000..b8d245287 --- /dev/null +++ b/packages/framework-integration-tests/src/read-models/movie-read-model.ts @@ -0,0 +1,18 @@ +import { Projects, ReadModel } from '@boostercloud/framework-core' +import { ProjectionResult, UUID } from '@boostercloud/framework-types' +import { Movie } from '../entities/movie' + +@ReadModel({ + authorize: 'all', +}) +export class MovieReadModel { + public constructor(readonly id: UUID, readonly title: string) {} + + @Projects(Movie, 'id') + public static updateMovie(movie: Movie, oldMovie?: MovieReadModel): ProjectionResult { + // This method calls are here to ensure they work. More info: https://github.com/boostercloud/booster/issues/797 + movie.getId() + + return new MovieReadModel(movie.id, movie.title) + } +} From e3830e557b3c5f2e0e0da90ab80c80f8118a76e9 Mon Sep 17 00:00:00 2001 From: Nicolas Scheers Date: Thu, 17 Oct 2024 13:43:41 +0200 Subject: [PATCH 29/47] fix: tests bookid naming --- .../provider-unaware/end-to-end/queries.integration.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts index b480b28f2..3c72625ba 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts @@ -154,7 +154,7 @@ describe('Queries end-to-end tests', () => { }, mutation: gql` mutation AddBook($bookId: ID!, $title: String!) { - AddBook(input: { bookId: $bookId, title: $title }) + AddBook(input: { id: $bookId, title: $title }) } `, }) @@ -165,7 +165,7 @@ describe('Queries end-to-end tests', () => { }, mutation: gql` mutation AddMovie($movieId: ID!, $title: String!) { - AddMovie(input: { movieId: $bookId, title: $title }) + AddMovie(input: { id: $bookId, title: $title }) } `, }) From 2fb4c515e00dce9a390a7801713d4edd16b5caae Mon Sep 17 00:00:00 2001 From: Nicolas Scheers Date: Fri, 18 Oct 2024 11:03:32 +0200 Subject: [PATCH 30/47] feat: todo union type --- .../services/graphql/graphql-type-informer.ts | 52 ++++++++++--------- .../end-to-end/queries.integration.ts | 27 +++++++--- .../src/commands/add-book.ts | 4 +- .../src/entities/book.ts | 4 +- .../src/entities/movie.ts | 2 +- .../src/events/book-added.ts | 4 +- .../src/events/movie-added.ts | 4 +- .../src/queries/search-media.ts | 31 +++++++---- .../src/read-models/book-read-model.ts | 4 +- 9 files changed, 78 insertions(+), 54 deletions(-) diff --git a/packages/framework-core/src/services/graphql/graphql-type-informer.ts b/packages/framework-core/src/services/graphql/graphql-type-informer.ts index 39fbc8347..8c77bbf77 100644 --- a/packages/framework-core/src/services/graphql/graphql-type-informer.ts +++ b/packages/framework-core/src/services/graphql/graphql-type-informer.ts @@ -87,16 +87,21 @@ export class GraphQLTypeInformer { const metadata = getClassMetadata(typeMetadata.type) return this.createObjectType(metadata, inputType) } - if (typeMetadata.typeGroup === 'Union' && typeMetadata.type && !isExternalType(typeMetadata)) { - const graphQLUnionClasses: GraphQLObjectType[] = this.getUnionClasses(typeMetadata, typeGroup, inputType); + if (typeMetadata.typeGroup === 'Union' && typeMetadata.type && !isExternalType(typeMetadata)) { + const graphQLUnionClasses: GraphQLObjectType[] = this.getUnionClasses(typeMetadata, typeGroup, inputType) return new GraphQLUnionType({ - name: typeMetadata.name, - types: graphQLUnionClasses, }); - } + name: typeMetadata.name, + types: graphQLUnionClasses, + }) + } return GraphQLJSON } - private getUnionClasses(typeMetadata: TypeMetadata, typeGroup: string, inputType: boolean): GraphQLObjectType[] { + private getUnionClasses( + typeMetadata: TypeMetadata, + typeGroup: string, + inputType: boolean + ): GraphQLObjectType[] { return typeMetadata.parameters.map((param: TypeMetadata) => { if (typeGroup === 'Class' && param.type && !isExternalType(typeMetadata) && !inputType) { const metadata = getClassMetadata(param.type) @@ -162,23 +167,20 @@ export class GraphQLTypeInformer { }) } - private createObjectTypeForUnion( - classMetadata: ClassMetadata, - excludeProps?: Array - ): GraphQLObjectType { - const finalFields: Array = nonExcludedFields(classMetadata.fields, excludeProps) - return new GraphQLObjectType({ - name: classMetadata.name, - isTypeOf: (value) => { - return value.constructor.name === classMetadata.type.name - }, - fields: finalFields?.reduce((obj, prop) => { - this.logger.debug(`Get or create GraphQL output type for property ${prop.name}`) - return { - ...obj, - [prop.name]: { type: this.getOrCreateGraphQLType(prop.typeInfo, false) }, - } - }, {}), - }) - } + private createObjectTypeForUnion(classMetadata: ClassMetadata, excludeProps?: Array): GraphQLObjectType { + const finalFields: Array = nonExcludedFields(classMetadata.fields, excludeProps) + return new GraphQLObjectType({ + name: classMetadata.name, + isTypeOf: (value) => { + return value.constructor.name === classMetadata.type.name + }, + fields: finalFields?.reduce((obj, prop) => { + this.logger.debug(`Get or create GraphQL output type for property ${prop.name}`) + return { + ...obj, + [prop.name]: { type: this.getOrCreateGraphQLType(prop.typeInfo, false) }, + } + }, {}), + }) + } } diff --git a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts index 3c72625ba..6ff1fcb5a 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts @@ -151,10 +151,11 @@ describe('Queries end-to-end tests', () => { variables: { bookId: bookId, title: 'The Life Of J Robert Oppenheimer', + pages: 42, }, mutation: gql` - mutation AddBook($bookId: ID!, $title: String!) { - AddBook(input: { id: $bookId, title: $title }) + mutation AddBook($bookId: ID!, $title: String!, $pages: Float!) { + AddBook(input: { id: $bookId, title: $title, pages: $pages }) } `, }) @@ -165,7 +166,7 @@ describe('Queries end-to-end tests', () => { }, mutation: gql` mutation AddMovie($movieId: ID!, $title: String!) { - AddMovie(input: { id: $bookId, title: $title }) + AddMovie(input: { id: $movieId, title: $title }) } `, }) @@ -174,17 +175,29 @@ describe('Queries end-to-end tests', () => { () => client.query({ variables: { - search: 'Oppenheimer', + searchword: 'Oppenheimer', }, query: gql` - query SearchMedia($title: string!) { - SearchMedia(input: { title: $title }) + query SearchMedia($searchword: String!) { + SearchMedia(input: { searchword: $searchword }) { + results + # { + # __typename + # ... on BookReadModel { + # title + # pages + # } + # ... on MovieReadModel { + # title + # } + # } + } } `, }), (result) => result?.data?.SearchMedia != undefined ) - + console.log(response) expect(response).not.to.be.null }) }) diff --git a/packages/framework-integration-tests/src/commands/add-book.ts b/packages/framework-integration-tests/src/commands/add-book.ts index 9febcb6f1..144a7a465 100644 --- a/packages/framework-integration-tests/src/commands/add-book.ts +++ b/packages/framework-integration-tests/src/commands/add-book.ts @@ -6,9 +6,9 @@ import { BookAdded } from '../events/book-added' authorize: 'all', }) export class AddBook { - public constructor(readonly id: UUID, readonly title: string) {} + public constructor(readonly id: UUID, readonly title: string, readonly pages: number) {} public static async handle(command: AddBook, register: Register): Promise { - register.events(new BookAdded(command.id, command.title)) + register.events(new BookAdded(command.id, command.title, command.pages)) } } diff --git a/packages/framework-integration-tests/src/entities/book.ts b/packages/framework-integration-tests/src/entities/book.ts index 2046f2cdd..ba1ab47d2 100644 --- a/packages/framework-integration-tests/src/entities/book.ts +++ b/packages/framework-integration-tests/src/entities/book.ts @@ -6,7 +6,7 @@ import { BookAdded } from '../events/book-added' authorizeReadEvents: 'all', }) export class Book { - public constructor(readonly id: UUID, readonly title: string) {} + public constructor(readonly id: UUID, readonly title: string, readonly pages: number) {} public getId(): UUID { return this.id @@ -14,6 +14,6 @@ export class Book { @Reduces(BookAdded) public static bookAdded(event: BookAdded, currentBook: Book): Book { - return currentBook + return new Book(event.id, event.title, event.pages) } } diff --git a/packages/framework-integration-tests/src/entities/movie.ts b/packages/framework-integration-tests/src/entities/movie.ts index ec6622655..347001ba6 100644 --- a/packages/framework-integration-tests/src/entities/movie.ts +++ b/packages/framework-integration-tests/src/entities/movie.ts @@ -14,6 +14,6 @@ export class Movie { @Reduces(MovieAdded) public static movieAdded(event: MovieAdded, currentMovie: Movie): Movie { - return currentMovie + return new Movie(event.id, event.title) } } diff --git a/packages/framework-integration-tests/src/events/book-added.ts b/packages/framework-integration-tests/src/events/book-added.ts index ed76ed288..80d8666df 100644 --- a/packages/framework-integration-tests/src/events/book-added.ts +++ b/packages/framework-integration-tests/src/events/book-added.ts @@ -3,9 +3,9 @@ import { UUID } from '@boostercloud/framework-types' @Event export class BookAdded { - public constructor(readonly bookId: UUID, readonly title: string) {} + public constructor(readonly id: UUID, readonly title: string, readonly pages: number) {} public entityID(): UUID { - return this.bookId + return this.id } } diff --git a/packages/framework-integration-tests/src/events/movie-added.ts b/packages/framework-integration-tests/src/events/movie-added.ts index 6b55d7fa7..6be7d0bd8 100644 --- a/packages/framework-integration-tests/src/events/movie-added.ts +++ b/packages/framework-integration-tests/src/events/movie-added.ts @@ -3,9 +3,9 @@ import { UUID } from '@boostercloud/framework-types' @Event export class MovieAdded { - public constructor(readonly movieId: UUID, readonly title: string) {} + public constructor(readonly id: UUID, readonly title: string) {} public entityID(): UUID { - return this.movieId + return this.id } } diff --git a/packages/framework-integration-tests/src/queries/search-media.ts b/packages/framework-integration-tests/src/queries/search-media.ts index 1f0dd8740..54e2c9e97 100644 --- a/packages/framework-integration-tests/src/queries/search-media.ts +++ b/packages/framework-integration-tests/src/queries/search-media.ts @@ -2,22 +2,25 @@ import { Booster, Query } from '@boostercloud/framework-core' import { QueryInfo } from '@boostercloud/framework-types' import { BookReadModel } from '../read-models/book-read-model' import { MovieReadModel } from '../read-models/movie-read-model' + +abstract class BaseConstruct> { + constructor(obj: M) { + Object.assign(this, obj) + } +} + +type Media = BookReadModel | MovieReadModel + +class SearchResult extends BaseConstruct { + readonly results!: Media[] +} @Query({ authorize: 'all', }) export class SearchMedia { public constructor(readonly searchword: string) {} - public static async handle(query: SearchMedia, queryInfo: QueryInfo): Promise { - // const books: Array = (await Booster.readModel(BookReadModel) - // .filter({ - // title: { - // contains: query.searchword, - // }, - // }) - // .paginatedVersion(false) - // .search()) as Array - + public static async handle(query: SearchMedia, queryInfo: QueryInfo): Promise { const [books, movies] = await Promise.all([ Booster.readModel(BookReadModel) .filter({ @@ -34,6 +37,12 @@ export class SearchMedia { }) .search(), ]) - return books.concat(movies)[0] + console.log(books, movies) + const response = [...books, ...movies] + const toReturn = new SearchResult({ + results: response, + }) + toReturn.results.map((media) => console.log(typeof media)) + return toReturn } } diff --git a/packages/framework-integration-tests/src/read-models/book-read-model.ts b/packages/framework-integration-tests/src/read-models/book-read-model.ts index cb7ec8f43..e135e8889 100644 --- a/packages/framework-integration-tests/src/read-models/book-read-model.ts +++ b/packages/framework-integration-tests/src/read-models/book-read-model.ts @@ -6,13 +6,13 @@ import { Book } from '../entities/book' authorize: 'all', }) export class BookReadModel { - public constructor(readonly id: UUID, readonly title: string) {} + public constructor(readonly id: UUID, readonly title: string, readonly pages: number) {} @Projects(Book, 'id') public static updateBook(book: Book, oldBook?: BookReadModel): ProjectionResult { // This method calls are here to ensure they work. More info: https://github.com/boostercloud/booster/issues/797 book.getId() - return new BookReadModel(book.id, book.title) + return new BookReadModel(book.id, book.title, book.pages) } } From 211097559291ba1a5684eb2a9761b9e4c5ea209e Mon Sep 17 00:00:00 2001 From: Nicolas Scheers Date: Fri, 18 Oct 2024 15:38:04 +0200 Subject: [PATCH 31/47] feat: seacrh media type --- .../src/queries/search-media.ts | 49 ++++++++++++++++--- 1 file changed, 41 insertions(+), 8 deletions(-) diff --git a/packages/framework-integration-tests/src/queries/search-media.ts b/packages/framework-integration-tests/src/queries/search-media.ts index 54e2c9e97..9c88b9e40 100644 --- a/packages/framework-integration-tests/src/queries/search-media.ts +++ b/packages/framework-integration-tests/src/queries/search-media.ts @@ -3,16 +3,38 @@ import { QueryInfo } from '@boostercloud/framework-types' import { BookReadModel } from '../read-models/book-read-model' import { MovieReadModel } from '../read-models/movie-read-model' -abstract class BaseConstruct> { +export abstract class BaseQuery> { constructor(obj: M) { Object.assign(this, obj) } } -type Media = BookReadModel | MovieReadModel +export class BookMedia extends BaseQuery { + title!: string + pages!: number +} + +export class MovieMedia extends BaseQuery { + title!: string +} + +export class Media extends BaseQuery { + mediaType!: MediaType + media!: MediaValue +} -class SearchResult extends BaseConstruct { +export type MediaValue = BookMedia | MovieMedia + +export enum MediaType { + BookMedia = 'BookMedia', + MovieMedia = 'MovieMedia', +} + +class SearchResult { readonly results!: Media[] + constructor(results: Media[]) { + this.results = results + } } @Query({ authorize: 'all', @@ -37,12 +59,23 @@ export class SearchMedia { }) .search(), ]) - console.log(books, movies) const response = [...books, ...movies] - const toReturn = new SearchResult({ - results: response, - }) - toReturn.results.map((media) => console.log(typeof media)) + const toReturn: SearchResult = { + results: response.map((media) => { + if (media instanceof BookReadModel) { + return new Media({ + mediaType: MediaType.BookMedia, + media: new BookMedia({ title: media.title, pages: media.pages }), + }) + } else { + return new Media({ + mediaType: MediaType.MovieMedia, + media: new MovieMedia({ title: media.title }), + }) + } + }), + } + return toReturn } } From 8229b846c8e30dc6f90ca74fc1d6f83147db1b14 Mon Sep 17 00:00:00 2001 From: Nicolas Scheers Date: Tue, 22 Oct 2024 00:08:59 +0200 Subject: [PATCH 32/47] fix: union types --- .../services/graphql/graphql-type-informer.ts | 25 ++++++++++--------- .../src/queries/search-media.ts | 15 +++-------- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/packages/framework-core/src/services/graphql/graphql-type-informer.ts b/packages/framework-core/src/services/graphql/graphql-type-informer.ts index 8c77bbf77..4754d35ff 100644 --- a/packages/framework-core/src/services/graphql/graphql-type-informer.ts +++ b/packages/framework-core/src/services/graphql/graphql-type-informer.ts @@ -69,6 +69,7 @@ export class GraphQLTypeInformer { if (typeMetadata.typeName && typeMetadata.typeGroup === 'Class') { return typeMetadata.typeName + (inputType ? 'Input' : '') } + if (typeMetadata.typeGroup === 'Union') return typeMetadata.name return typeMetadata.typeName || null } @@ -87,23 +88,23 @@ export class GraphQLTypeInformer { const metadata = getClassMetadata(typeMetadata.type) return this.createObjectType(metadata, inputType) } - if (typeMetadata.typeGroup === 'Union' && typeMetadata.type && !isExternalType(typeMetadata)) { - const graphQLUnionClasses: GraphQLObjectType[] = this.getUnionClasses(typeMetadata, typeGroup, inputType) - return new GraphQLUnionType({ - name: typeMetadata.name, - types: graphQLUnionClasses, - }) + if (typeMetadata.typeGroup === 'Union' && !isExternalType(typeMetadata)) { + try { + const graphQLUnionClasses: GraphQLObjectType[] = this.getUnionClasses(typeMetadata, inputType) + return new GraphQLUnionType({ + name: typeMetadata.name, + types: graphQLUnionClasses, + }) + } catch (e) { + console.error(e) //Todo dit is raar + } } return GraphQLJSON } - private getUnionClasses( - typeMetadata: TypeMetadata, - typeGroup: string, - inputType: boolean - ): GraphQLObjectType[] { + private getUnionClasses(typeMetadata: TypeMetadata, inputType: boolean): GraphQLObjectType[] { return typeMetadata.parameters.map((param: TypeMetadata) => { - if (typeGroup === 'Class' && param.type && !isExternalType(typeMetadata) && !inputType) { + if (param.typeGroup === 'Class' && param.type && !isExternalType(typeMetadata) && !inputType) { const metadata = getClassMetadata(param.type) return this.createObjectTypeForUnion(metadata) as GraphQLObjectType } else { diff --git a/packages/framework-integration-tests/src/queries/search-media.ts b/packages/framework-integration-tests/src/queries/search-media.ts index 9c88b9e40..f2985f2ce 100644 --- a/packages/framework-integration-tests/src/queries/search-media.ts +++ b/packages/framework-integration-tests/src/queries/search-media.ts @@ -20,7 +20,6 @@ export class MovieMedia extends BaseQuery { export class Media extends BaseQuery { mediaType!: MediaType - media!: MediaValue } export type MediaValue = BookMedia | MovieMedia @@ -31,8 +30,8 @@ export enum MediaType { } class SearchResult { - readonly results!: Media[] - constructor(results: Media[]) { + readonly results!: MediaValue[] + constructor(results: MediaValue[]) { this.results = results } } @@ -63,15 +62,9 @@ export class SearchMedia { const toReturn: SearchResult = { results: response.map((media) => { if (media instanceof BookReadModel) { - return new Media({ - mediaType: MediaType.BookMedia, - media: new BookMedia({ title: media.title, pages: media.pages }), - }) + return new BookMedia({ title: media.title, pages: media.pages }) } else { - return new Media({ - mediaType: MediaType.MovieMedia, - media: new MovieMedia({ title: media.title }), - }) + return new MovieMedia({ title: media.title }) } }), } From e3eadd38942157f08c7d15918e00501a1149a3d6 Mon Sep 17 00:00:00 2001 From: Nicolas Scheers Date: Tue, 22 Oct 2024 09:45:08 +0200 Subject: [PATCH 33/47] fix: search media test --- .../end-to-end/queries.integration.ts | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts index 6ff1fcb5a..7527cc649 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts @@ -180,17 +180,16 @@ describe('Queries end-to-end tests', () => { query: gql` query SearchMedia($searchword: String!) { SearchMedia(input: { searchword: $searchword }) { - results - # { - # __typename - # ... on BookReadModel { - # title - # pages - # } - # ... on MovieReadModel { - # title - # } - # } + results { + __typename + ... on BookMedia { + title + pages + } + ... on MovieMedia { + title + } + } } } `, From a76305e383952eac4e4c540fdb5ad0429e8bd97c Mon Sep 17 00:00:00 2001 From: Nicolas Scheers Date: Tue, 22 Oct 2024 10:03:15 +0200 Subject: [PATCH 34/47] fix: type check --- .../services/graphql/graphql-type-informer.ts | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/packages/framework-core/src/services/graphql/graphql-type-informer.ts b/packages/framework-core/src/services/graphql/graphql-type-informer.ts index 4754d35ff..1336ed725 100644 --- a/packages/framework-core/src/services/graphql/graphql-type-informer.ts +++ b/packages/framework-core/src/services/graphql/graphql-type-informer.ts @@ -88,23 +88,30 @@ export class GraphQLTypeInformer { const metadata = getClassMetadata(typeMetadata.type) return this.createObjectType(metadata, inputType) } - if (typeMetadata.typeGroup === 'Union' && !isExternalType(typeMetadata)) { - try { - const graphQLUnionClasses: GraphQLObjectType[] = this.getUnionClasses(typeMetadata, inputType) - return new GraphQLUnionType({ - name: typeMetadata.name, - types: graphQLUnionClasses, - }) - } catch (e) { - console.error(e) //Todo dit is raar - } + if ( + typeMetadata.typeGroup === 'Union' && + !isExternalType(typeMetadata) && + !inputType && + this.validateUnionClasses(typeMetadata.parameters) + ) { + const graphQLUnionClasses: GraphQLObjectType[] = this.getUnionClasses(typeMetadata) + return new GraphQLUnionType({ + name: typeMetadata.name, + types: graphQLUnionClasses, + }) } return GraphQLJSON } - private getUnionClasses(typeMetadata: TypeMetadata, inputType: boolean): GraphQLObjectType[] { + private validateUnionClasses(params: TypeMetadata[]): boolean { + return params.every( + (typeMetadata) => typeMetadata.typeGroup === 'Class' && typeMetadata.type && !isExternalType(typeMetadata) + ) + } + + private getUnionClasses(typeMetadata: TypeMetadata): GraphQLObjectType[] { return typeMetadata.parameters.map((param: TypeMetadata) => { - if (param.typeGroup === 'Class' && param.type && !isExternalType(typeMetadata) && !inputType) { + if (param.typeGroup === 'Class' && param.type && !isExternalType(typeMetadata)) { const metadata = getClassMetadata(param.type) return this.createObjectTypeForUnion(metadata) as GraphQLObjectType } else { From 4deb4374fc62d5dca7eab364ad924b9ef9ad98f8 Mon Sep 17 00:00:00 2001 From: Nicolas Scheers Date: Thu, 24 Oct 2024 11:33:22 +0200 Subject: [PATCH 35/47] fix: simplify query --- .../src/queries/search-media.ts | 26 ++++++------------- 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/packages/framework-integration-tests/src/queries/search-media.ts b/packages/framework-integration-tests/src/queries/search-media.ts index f2985f2ce..064100ae2 100644 --- a/packages/framework-integration-tests/src/queries/search-media.ts +++ b/packages/framework-integration-tests/src/queries/search-media.ts @@ -3,32 +3,22 @@ import { QueryInfo } from '@boostercloud/framework-types' import { BookReadModel } from '../read-models/book-read-model' import { MovieReadModel } from '../read-models/movie-read-model' -export abstract class BaseQuery> { - constructor(obj: M) { - Object.assign(this, obj) - } -} - -export class BookMedia extends BaseQuery { +export class BookMedia { title!: string pages!: number + constructor(book: BookMedia) { + ;(this.title = book.title), (this.pages = book.pages) + } } -export class MovieMedia extends BaseQuery { +export class MovieMedia { title!: string -} - -export class Media extends BaseQuery { - mediaType!: MediaType + constructor(movie: MovieMedia) { + this.title = movie.title + } } export type MediaValue = BookMedia | MovieMedia - -export enum MediaType { - BookMedia = 'BookMedia', - MovieMedia = 'MovieMedia', -} - class SearchResult { readonly results!: MediaValue[] constructor(results: MediaValue[]) { From ee357deb96329d7901673947cee5ed473dfe9bad Mon Sep 17 00:00:00 2001 From: Nicolas Scheers Date: Thu, 24 Oct 2024 11:43:03 +0200 Subject: [PATCH 36/47] feat: docs --- .../src/queries/search-media.ts | 5 +- website/docs/03_architecture/08_queries.mdx | 95 +++++++++++++++++++ 2 files changed, 97 insertions(+), 3 deletions(-) diff --git a/packages/framework-integration-tests/src/queries/search-media.ts b/packages/framework-integration-tests/src/queries/search-media.ts index 064100ae2..236ad087a 100644 --- a/packages/framework-integration-tests/src/queries/search-media.ts +++ b/packages/framework-integration-tests/src/queries/search-media.ts @@ -49,7 +49,8 @@ export class SearchMedia { .search(), ]) const response = [...books, ...movies] - const toReturn: SearchResult = { + + return { results: response.map((media) => { if (media instanceof BookReadModel) { return new BookMedia({ title: media.title, pages: media.pages }) @@ -58,7 +59,5 @@ export class SearchMedia { } }), } - - return toReturn } } diff --git a/website/docs/03_architecture/08_queries.mdx b/website/docs/03_architecture/08_queries.mdx index 779f74979..00406ff05 100644 --- a/website/docs/03_architecture/08_queries.mdx +++ b/website/docs/03_architecture/08_queries.mdx @@ -123,3 +123,98 @@ query CartTotalQuantityQuery($cartId: ID!): Float! ``` > [!NOTE] Query subscriptions are not supported yet + +### Returning union types +Booster supports returning graphql union types. For example, this `SearchMedia` query returning books and movies. + +:::info +The classes used in the union type must be uniquely named +::: + +```typescript +export class BookMedia { + title!: string + pages!: number + constructor(book: BookMedia) { + ;(this.title = book.title), (this.pages = book.pages) + } +} + +export class MovieMedia { + title!: string + constructor(movie: MovieMedia) { + this.title = movie.title + } +} + +export type MediaValue = BookMedia | MovieMedia +class SearchResult { + readonly results!: MediaValue[] + constructor(results: MediaValue[]) { + this.results = results + } +} +@Query({ + authorize: 'all', +}) +export class SearchMedia { + public constructor(readonly searchword: string) {} + + public static async handle(query: SearchMedia, queryInfo: QueryInfo): Promise { + const [books, movies] = await Promise.all([ + Booster.readModel(BookReadModel) + .filter({ + title: { + contains: query.searchword, + }, + }) + .search(), + Booster.readModel(MovieReadModel) + .filter({ + title: { + contains: query.searchword, + }, + }) + .search(), + ]) + const response = [...books, ...movies] + + return { + results: response.map((media) => { + if (media instanceof BookReadModel) { + return new BookMedia({ title: media.title, pages: media.pages }) + } else { + return new MovieMedia({ title: media.title }) + } + }), + } + } +} +``` + +This generates the following query + +```graphql +SearchMedia ( input SearchMediaInput! ) SearchResult! +``` + +The GraphQL union querying functionality can then be used. An example for the query above could be the following. + +```graphql +{ + SearchMedia(input: { searchword: "Oppenheimer" }) { + results { + __typename + + ... on BookMedia { + title + pages + } + ... on MovieMedia { + title + } + } + } +} + +``` \ No newline at end of file From bb5c5896bd9babcf8e70d299a1f2a3dfcf273e14 Mon Sep 17 00:00:00 2001 From: Nicolas Scheers Date: Thu, 24 Oct 2024 13:50:52 +0200 Subject: [PATCH 37/47] fix: generating union types for existing classes --- .../services/graphql/graphql-type-informer.ts | 10 +++++++- .../src/queries/search-media.ts | 25 ++----------------- 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/packages/framework-core/src/services/graphql/graphql-type-informer.ts b/packages/framework-core/src/services/graphql/graphql-type-informer.ts index 1336ed725..299d9cb1b 100644 --- a/packages/framework-core/src/services/graphql/graphql-type-informer.ts +++ b/packages/framework-core/src/services/graphql/graphql-type-informer.ts @@ -113,7 +113,7 @@ export class GraphQLTypeInformer { return typeMetadata.parameters.map((param: TypeMetadata) => { if (param.typeGroup === 'Class' && param.type && !isExternalType(typeMetadata)) { const metadata = getClassMetadata(param.type) - return this.createObjectTypeForUnion(metadata) as GraphQLObjectType + return this.getOrCreateObjectTypeForUnion(metadata) as GraphQLObjectType } else { throw new Error(`Union type ${typeMetadata.name} can only contain classes`) } @@ -175,6 +175,14 @@ export class GraphQLTypeInformer { }) } + private getOrCreateObjectTypeForUnion(classMetadata: ClassMetadata, excludeProps?: Array): GraphQLType { + const typeName = classMetadata.name + if (typeName && this.graphQLTypes[typeName]) return this.graphQLTypes[typeName] + const createdGraphQLType = this.createObjectTypeForUnion(classMetadata, excludeProps) + if (typeName) this.graphQLTypes[typeName] = createdGraphQLType + return createdGraphQLType + } + private createObjectTypeForUnion(classMetadata: ClassMetadata, excludeProps?: Array): GraphQLObjectType { const finalFields: Array = nonExcludedFields(classMetadata.fields, excludeProps) return new GraphQLObjectType({ diff --git a/packages/framework-integration-tests/src/queries/search-media.ts b/packages/framework-integration-tests/src/queries/search-media.ts index 236ad087a..12ca4298a 100644 --- a/packages/framework-integration-tests/src/queries/search-media.ts +++ b/packages/framework-integration-tests/src/queries/search-media.ts @@ -3,22 +3,7 @@ import { QueryInfo } from '@boostercloud/framework-types' import { BookReadModel } from '../read-models/book-read-model' import { MovieReadModel } from '../read-models/movie-read-model' -export class BookMedia { - title!: string - pages!: number - constructor(book: BookMedia) { - ;(this.title = book.title), (this.pages = book.pages) - } -} - -export class MovieMedia { - title!: string - constructor(movie: MovieMedia) { - this.title = movie.title - } -} - -export type MediaValue = BookMedia | MovieMedia +export type MediaValue = BookReadModel | MovieReadModel class SearchResult { readonly results!: MediaValue[] constructor(results: MediaValue[]) { @@ -51,13 +36,7 @@ export class SearchMedia { const response = [...books, ...movies] return { - results: response.map((media) => { - if (media instanceof BookReadModel) { - return new BookMedia({ title: media.title, pages: media.pages }) - } else { - return new MovieMedia({ title: media.title }) - } - }), + results: response, } } } From 93a8b22ebaba23ca948a89636993914a61452bdc Mon Sep 17 00:00:00 2001 From: Nicolas Scheers Date: Thu, 24 Oct 2024 16:46:52 +0200 Subject: [PATCH 38/47] fix: readmodels as union types --- .../services/graphql/graphql-type-informer.ts | 21 ++++++------------- .../end-to-end/queries.integration.ts | 5 ++--- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/packages/framework-core/src/services/graphql/graphql-type-informer.ts b/packages/framework-core/src/services/graphql/graphql-type-informer.ts index 299d9cb1b..1bd9fada1 100644 --- a/packages/framework-core/src/services/graphql/graphql-type-informer.ts +++ b/packages/framework-core/src/services/graphql/graphql-type-informer.ts @@ -98,6 +98,9 @@ export class GraphQLTypeInformer { return new GraphQLUnionType({ name: typeMetadata.name, types: graphQLUnionClasses, + resolveType(obj) { + return obj.constructor.name + }, }) } return GraphQLJSON @@ -163,33 +166,21 @@ export class GraphQLTypeInformer { }, {}), }) } - return new GraphQLObjectType({ - name: classMetadata.name, - fields: finalFields?.reduce((obj, prop) => { - this.logger.debug(`Get or create GraphQL output type for property ${prop.name}`) - return { - ...obj, - [prop.name]: { type: this.getOrCreateGraphQLType(prop.typeInfo, inputType) }, - } - }, {}), - }) + return this.createOutputObjectType(classMetadata, excludeProps) } private getOrCreateObjectTypeForUnion(classMetadata: ClassMetadata, excludeProps?: Array): GraphQLType { const typeName = classMetadata.name if (typeName && this.graphQLTypes[typeName]) return this.graphQLTypes[typeName] - const createdGraphQLType = this.createObjectTypeForUnion(classMetadata, excludeProps) + const createdGraphQLType = this.createOutputObjectType(classMetadata, excludeProps) if (typeName) this.graphQLTypes[typeName] = createdGraphQLType return createdGraphQLType } - private createObjectTypeForUnion(classMetadata: ClassMetadata, excludeProps?: Array): GraphQLObjectType { + private createOutputObjectType(classMetadata: ClassMetadata, excludeProps?: Array): GraphQLObjectType { const finalFields: Array = nonExcludedFields(classMetadata.fields, excludeProps) return new GraphQLObjectType({ name: classMetadata.name, - isTypeOf: (value) => { - return value.constructor.name === classMetadata.type.name - }, fields: finalFields?.reduce((obj, prop) => { this.logger.debug(`Get or create GraphQL output type for property ${prop.name}`) return { diff --git a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts index 7527cc649..d7337f522 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/end-to-end/queries.integration.ts @@ -182,11 +182,11 @@ describe('Queries end-to-end tests', () => { SearchMedia(input: { searchword: $searchword }) { results { __typename - ... on BookMedia { + ... on BookReadModel { title pages } - ... on MovieMedia { + ... on MovieReadModel { title } } @@ -196,7 +196,6 @@ describe('Queries end-to-end tests', () => { }), (result) => result?.data?.SearchMedia != undefined ) - console.log(response) expect(response).not.to.be.null }) }) From ab07fed13fc702036a45c62032c1e38aa6df4fac Mon Sep 17 00:00:00 2001 From: Nicolas Scheers Date: Thu, 24 Oct 2024 16:55:08 +0200 Subject: [PATCH 39/47] fix: docs --- website/docs/03_architecture/08_queries.mdx | 31 ++++----------------- 1 file changed, 5 insertions(+), 26 deletions(-) diff --git a/website/docs/03_architecture/08_queries.mdx b/website/docs/03_architecture/08_queries.mdx index 073791973..4f7f6a9a0 100644 --- a/website/docs/03_architecture/08_queries.mdx +++ b/website/docs/03_architecture/08_queries.mdx @@ -131,28 +131,15 @@ Booster supports returning graphql union types. For example, this `SearchMedia` ```typescript -export class BookMedia { - title!: string - pages!: number - constructor(book: BookMedia) { - ;(this.title = book.title), (this.pages = book.pages) - } -} - -export class MovieMedia { - title!: string - constructor(movie: MovieMedia) { - this.title = movie.title - } -} +export type MediaValue = BookReadModel | MovieReadModel -export type MediaValue = BookMedia | MovieMedia class SearchResult { readonly results!: MediaValue[] constructor(results: MediaValue[]) { this.results = results } } + @Query({ authorize: 'all', }) @@ -179,13 +166,7 @@ export class SearchMedia { const response = [...books, ...movies] return { - results: response.map((media) => { - if (media instanceof BookReadModel) { - return new BookMedia({ title: media.title, pages: media.pages }) - } else { - return new MovieMedia({ title: media.title }) - } - }), + results: response, } } } @@ -204,16 +185,14 @@ The GraphQL union querying functionality can then be used. An example for the qu SearchMedia(input: { searchword: "Oppenheimer" }) { results { __typename - - ... on BookMedia { + ... on BookReadModel { title pages } - ... on MovieMedia { + ... on MovieReadModel { title } } } } - ``` \ No newline at end of file From cedee762449c2443fcc29901cd6e5d7a35d48d61 Mon Sep 17 00:00:00 2001 From: Mario Castro Squella Date: Tue, 29 Oct 2024 10:38:21 -0300 Subject: [PATCH 40/47] Pass Azure subscription ID when instancing AzurermProvider object (#1556) * Add mandatory subscriptionId property * Add rush change file --------- Co-authored-by: Castro, Mario --- .../fix_azure_deploy_2024-10-25-15-07.json | 10 + common/config/rush/pnpm-lock.yaml | 1572 ++++++++--------- .../infrastructure/synth/application-synth.ts | 2 + 3 files changed, 765 insertions(+), 819 deletions(-) create mode 100644 common/changes/@boostercloud/framework-core/fix_azure_deploy_2024-10-25-15-07.json diff --git a/common/changes/@boostercloud/framework-core/fix_azure_deploy_2024-10-25-15-07.json b/common/changes/@boostercloud/framework-core/fix_azure_deploy_2024-10-25-15-07.json new file mode 100644 index 000000000..815a8b244 --- /dev/null +++ b/common/changes/@boostercloud/framework-core/fix_azure_deploy_2024-10-25-15-07.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@boostercloud/framework-core", + "comment": "Add mandatory subscriptionId property", + "type": "patch" + } + ], + "packageName": "@boostercloud/framework-core" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index c90395116..a75b8e4e0 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,8 +8,8 @@ importers: ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^2.18.3 - '@boostercloud/framework-types': workspace:^2.18.3 + '@boostercloud/eslint-config': workspace:^2.18.4 + '@boostercloud/framework-types': workspace:^2.18.4 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.18.2 @@ -46,22 +46,22 @@ importers: jsonwebtoken: 9.0.1 sinon: 9.2.3 subscriptions-transport-ws: 0.11.0_graphql@16.9.0 - tslib: 2.7.0 + tslib: 2.8.0 ws: 8.17.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/jsonwebtoken': 9.0.1 - '@types/node': 18.19.49 + '@types/node': 18.19.59 '@types/ws': 8.5.4 - '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 - '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry + '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay + '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi chai: 4.2.0 chai-as-promised: 7.1.1_chai@4.2.0 - eslint: 8.57.0 - eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.30.0_eslint@8.57.0 - eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae - eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 + eslint: 8.57.1 + eslint-config-prettier: 8.3.0_eslint@8.57.1 + eslint-plugin-import: 2.31.0_eslint@8.57.1 + eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y + eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 fast-check: 3.22.0 prettier: 2.3.0 rimraf: 5.0.10 @@ -70,10 +70,10 @@ importers: ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^2.18.3 - '@boostercloud/eslint-config': workspace:^2.18.3 - '@boostercloud/framework-core': workspace:^2.18.3 - '@boostercloud/framework-types': workspace:^2.18.3 + '@boostercloud/application-tester': workspace:^2.18.4 + '@boostercloud/eslint-config': workspace:^2.18.4 + '@boostercloud/framework-core': workspace:^2.18.4 + '@boostercloud/framework-types': workspace:^2.18.4 '@effect-ts/core': ^0.60.4 '@oclif/core': 3.15.0 '@oclif/plugin-help': ^5 @@ -129,7 +129,7 @@ importers: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@oclif/core': 3.15.0_typescript@5.1.6 - '@oclif/plugin-help': 5.2.20_45rz2fqkboejwckriajjmu7obu + '@oclif/plugin-help': 5.2.20_5aurqvvi2kcpaxpbv224uoiqwq chalk: 2.4.2 child-process-promise: 2.2.1 execa: 2.1.0 @@ -140,7 +140,7 @@ importers: mustache: 4.1.0 ora: 3.4.0 ts-morph: 19.0.0 - tslib: 2.7.0 + tslib: 2.8.0 devDependencies: '@boostercloud/application-tester': link:../application-tester '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -154,20 +154,20 @@ importers: '@types/inquirer': 6.5.0 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.49 + '@types/node': 18.19.59 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 - '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 - '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry + '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay + '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi chai: 4.2.0 chai-as-promised: 7.1.1_chai@4.2.0 copyfiles: 2.4.1 - eslint: 8.57.0 - eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.30.0_eslint@8.57.0 - eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae - eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 + eslint: 8.57.1 + eslint-config-prettier: 8.3.0_eslint@8.57.1 + eslint-plugin-import: 2.31.0_eslint@8.57.1 + eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y + eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 faker: 5.1.0 fancy-test: 3.0.16 mocha: 10.2.0 @@ -177,14 +177,14 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu + ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.3 - '@boostercloud/framework-types': workspace:^2.18.3 + '@boostercloud/eslint-config': workspace:^2.18.4 + '@boostercloud/framework-types': workspace:^2.18.4 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -223,7 +223,7 @@ importers: '@effect-ts/core': 0.60.5 child-process-promise: 2.2.1 class-transformer: 0.5.1 - tslib: 2.7.0 + tslib: 2.8.0 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/chai': 4.2.18 @@ -231,20 +231,20 @@ importers: '@types/child-process-promise': 2.2.6 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.49 + '@types/node': 18.19.59 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 - '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 - '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry + '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay + '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi chai: 4.2.0 chai-as-promised: 7.1.1_chai@4.2.0 - eslint: 8.57.0 - eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.30.0_eslint@8.57.0 - eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae - eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 + eslint: 8.57.1 + eslint-config-prettier: 8.3.0_eslint@8.57.1 + eslint-plugin-import: 2.31.0_eslint@8.57.1 + eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y + eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 faker: 5.1.0 mocha: 10.2.0 nyc: 15.1.0 @@ -253,15 +253,15 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu + ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq typescript: 5.1.6 ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.3 - '@boostercloud/framework-common-helpers': workspace:^2.18.3 - '@boostercloud/framework-types': workspace:^2.18.3 - '@boostercloud/metadata-booster': workspace:^2.18.3 + '@boostercloud/eslint-config': workspace:^2.18.4 + '@boostercloud/framework-common-helpers': workspace:^2.18.4 + '@boostercloud/framework-types': workspace:^2.18.4 + '@boostercloud/metadata-booster': workspace:^2.18.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 '@effect/platform-node': 0.45.26 @@ -335,7 +335,7 @@ importers: jsonwebtoken: 9.0.1 jwks-rsa: 3.0.1 reflect-metadata: 0.1.13 - tslib: 2.7.0 + tslib: 2.8.0 validator: 13.7.0 ws: 8.17.1 devDependencies: @@ -347,20 +347,20 @@ importers: '@types/inflected': 1.1.29 '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 - '@types/node': 18.19.49 + '@types/node': 18.19.59 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/validator': 13.1.3 - '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 - '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry + '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay + '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi chai: 4.2.0 chai-as-promised: 7.1.1_chai@4.2.0 cross-env: 7.0.3 - eslint: 8.57.0 - eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.30.0_eslint@8.57.0 - eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae - eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 + eslint: 8.57.1 + eslint-config-prettier: 8.3.0_eslint@8.57.1 + eslint-plugin-import: 2.31.0_eslint@8.57.1 + eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y + eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 faker: 5.1.0 graphql: 16.9.0 mocha: 10.2.0 @@ -371,26 +371,26 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu + ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^2.18.3 - '@boostercloud/cli': workspace:^2.18.3 - '@boostercloud/eslint-config': workspace:^2.18.3 - '@boostercloud/framework-common-helpers': workspace:^2.18.3 - '@boostercloud/framework-core': workspace:^2.18.3 - '@boostercloud/framework-provider-aws': workspace:^2.18.3 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.18.3 - '@boostercloud/framework-provider-azure': workspace:^2.18.3 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.18.3 - '@boostercloud/framework-provider-local': workspace:^2.18.3 - '@boostercloud/framework-provider-local-infrastructure': workspace:^2.18.3 - '@boostercloud/framework-types': workspace:^2.18.3 - '@boostercloud/metadata-booster': workspace:^2.18.3 + '@boostercloud/application-tester': workspace:^2.18.4 + '@boostercloud/cli': workspace:^2.18.4 + '@boostercloud/eslint-config': workspace:^2.18.4 + '@boostercloud/framework-common-helpers': workspace:^2.18.4 + '@boostercloud/framework-core': workspace:^2.18.4 + '@boostercloud/framework-provider-aws': workspace:^2.18.4 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.18.4 + '@boostercloud/framework-provider-azure': workspace:^2.18.4 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.18.4 + '@boostercloud/framework-provider-local': workspace:^2.18.4 + '@boostercloud/framework-provider-local-infrastructure': workspace:^2.18.4 + '@boostercloud/framework-types': workspace:^2.18.4 + '@boostercloud/metadata-booster': workspace:^2.18.4 '@effect-ts/core': ^0.60.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 @@ -471,11 +471,11 @@ importers: '@effect/typeclass': 0.23.17_effect@2.4.17 aws-sdk: 2.853.0 effect: 2.4.17 - express: 4.19.2 + express: 4.21.1 express-unless: 2.1.3 fast-check: 3.22.0 graphql: 16.9.0 - tslib: 2.7.0 + tslib: 2.8.0 ws: 8.17.1 devDependencies: '@apollo/client': 3.7.13_jxorufveymi4xbrutgakjkp5wa @@ -496,24 +496,24 @@ importers: '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 '@types/nedb': 1.8.16 - '@types/node': 18.19.49 + '@types/node': 18.19.59 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 - '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 - '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry - cdktf: 0.19.2_constructs@10.3.0 + '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay + '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi + cdktf: 0.19.2_constructs@10.4.2 cdktf-cli: 0.19.2_ink@3.2.0+react@17.0.2 chai: 4.2.0 chai-as-promised: 7.1.1_chai@4.2.0 child-process-promise: 2.2.1 concurrently: 8.2.2 - constructs: 10.3.0 + constructs: 10.4.2 cross-fetch: 3.1.5 - eslint: 8.57.0 - eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.30.0_eslint@8.57.0 - eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae - eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 + eslint: 8.57.1 + eslint-config-prettier: 8.3.0_eslint@8.57.1 + eslint-plugin-import: 2.31.0_eslint@8.57.1 + eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y + eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 faker: 5.1.0 graphology-types: 0.24.7 ink: 3.2.0_react@17.0.2 @@ -530,15 +530,15 @@ importers: serverless-artillery: 0.5.2 sinon: 9.2.3 subscriptions-transport-ws: 0.11.0_graphql@16.9.0 - ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu + ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.3 - '@boostercloud/framework-common-helpers': workspace:^2.18.3 - '@boostercloud/framework-types': workspace:^2.18.3 + '@boostercloud/eslint-config': workspace:^2.18.4 + '@boostercloud/framework-common-helpers': workspace:^2.18.4 + '@boostercloud/framework-types': workspace:^2.18.4 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -577,7 +577,7 @@ importers: '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 - tslib: 2.7.0 + tslib: 2.8.0 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/aws-lambda': 8.10.48 @@ -586,21 +586,21 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.49 + '@types/node': 18.19.59 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 - '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 - '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry + '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay + '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi aws-sdk: 2.853.0 chai: 4.2.0 chai-arrays: 2.2.0 chai-as-promised: 7.1.1_chai@4.2.0 - eslint: 8.57.0 - eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.30.0_eslint@8.57.0 - eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae - eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 + eslint: 8.57.1 + eslint-config-prettier: 8.3.0_eslint@8.57.1 + eslint-plugin-import: 2.31.0_eslint@8.57.1 + eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y + eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 faker: 5.1.0 mocha: 10.2.0 nyc: 15.1.0 @@ -609,7 +609,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu + ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq typescript: 5.1.6 velocityjs: 2.0.6 @@ -632,10 +632,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^2.18.3 - '@boostercloud/framework-common-helpers': workspace:^2.18.3 - '@boostercloud/framework-provider-aws': workspace:^2.18.3 - '@boostercloud/framework-types': workspace:^2.18.3 + '@boostercloud/eslint-config': workspace:^2.18.4 + '@boostercloud/framework-common-helpers': workspace:^2.18.4 + '@boostercloud/framework-provider-aws': workspace:^2.18.4 + '@boostercloud/framework-types': workspace:^2.18.4 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -706,7 +706,7 @@ importers: colors: 1.4.0 constructs: 3.4.344 promptly: 3.2.0 - tslib: 2.7.0 + tslib: 2.8.0 yaml: 1.10.2 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -717,19 +717,19 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.49 + '@types/node': 18.19.59 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 - '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 - '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry + '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay + '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi chai: 4.2.0 chai-as-promised: 7.1.1_chai@4.2.0 - eslint: 8.57.0 - eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.30.0_eslint@8.57.0 - eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae - eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 + eslint: 8.57.1 + eslint-config-prettier: 8.3.0_eslint@8.57.1 + eslint-plugin-import: 2.31.0_eslint@8.57.1 + eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y + eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 faker: 5.1.0 mocha: 10.2.0 nyc: 15.1.0 @@ -738,7 +738,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu + ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq typescript: 5.1.6 velocityjs: 2.0.6 @@ -749,9 +749,9 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^2.18.3 - '@boostercloud/framework-common-helpers': workspace:^2.18.3 - '@boostercloud/framework-types': workspace:^2.18.3 + '@boostercloud/eslint-config': workspace:^2.18.4 + '@boostercloud/framework-common-helpers': workspace:^2.18.4 + '@boostercloud/framework-types': workspace:^2.18.4 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -788,25 +788,25 @@ importers: '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 - tslib: 2.7.0 + tslib: 2.8.0 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.49 + '@types/node': 18.19.59 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 - '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 - '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry + '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay + '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi chai: 4.2.0 chai-as-promised: 7.1.1_chai@4.2.0 - eslint: 8.57.0 - eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.30.0_eslint@8.57.0 - eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae - eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 + eslint: 8.57.1 + eslint-config-prettier: 8.3.0_eslint@8.57.1 + eslint-plugin-import: 2.31.0_eslint@8.57.1 + eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y + eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 faker: 5.1.0 mocha: 10.2.0 nyc: 15.1.0 @@ -814,7 +814,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu + ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq typescript: 5.1.6 ../../packages/framework-provider-azure-infrastructure: @@ -823,11 +823,11 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^2.18.3 - '@boostercloud/framework-common-helpers': workspace:^2.18.3 - '@boostercloud/framework-core': workspace:^2.18.3 - '@boostercloud/framework-provider-azure': workspace:^2.18.3 - '@boostercloud/framework-types': workspace:^2.18.3 + '@boostercloud/eslint-config': workspace:^2.18.4 + '@boostercloud/framework-common-helpers': workspace:^2.18.4 + '@boostercloud/framework-core': workspace:^2.18.4 + '@boostercloud/framework-provider-azure': workspace:^2.18.4 + '@boostercloud/framework-types': workspace:^2.18.4 '@cdktf/provider-azurerm': 13.3.0 '@cdktf/provider-time': 9.0.2 '@effect-ts/core': ^0.60.4 @@ -883,17 +883,17 @@ importers: '@boostercloud/framework-core': link:../framework-core '@boostercloud/framework-provider-azure': link:../framework-provider-azure '@boostercloud/framework-types': link:../framework-types - '@cdktf/provider-azurerm': 13.3.0_5k7lg6pu6lyti4sdnvep4rdzly - '@cdktf/provider-time': 9.0.2_5k7lg6pu6lyti4sdnvep4rdzly + '@cdktf/provider-azurerm': 13.3.0_eykofocqnxaowlkqmvzbold3ry + '@cdktf/provider-time': 9.0.2_eykofocqnxaowlkqmvzbold3ry '@effect-ts/core': 0.60.5 '@types/archiver': 5.1.0 '@types/needle': 2.5.3 archiver: 5.3.0 - cdktf: 0.19.2_constructs@10.3.0 + cdktf: 0.19.2_constructs@10.4.2 cdktf-cli: 0.19.2_ink@3.2.0+react@17.0.2 chai: 4.2.0 chai-as-promised: 7.1.1_chai@4.2.0 - constructs: 10.3.0 + constructs: 10.4.2 copyfiles: 2.4.1 fs-extra: 8.1.0 ink: 3.2.0_react@17.0.2 @@ -902,7 +902,7 @@ importers: ora: 3.4.0 react: 17.0.2 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - tslib: 2.7.0 + tslib: 2.8.0 uuid: 8.3.2 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -912,31 +912,31 @@ importers: '@types/fs-extra': 9.0.13 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.49 + '@types/node': 18.19.59 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 - '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 - '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry - eslint: 8.57.0 - eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.30.0_eslint@8.57.0 - eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae - eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 + '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay + '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi + eslint: 8.57.1 + eslint-config-prettier: 8.3.0_eslint@8.57.1 + eslint-plugin-import: 2.31.0_eslint@8.57.1 + eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y + eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 faker: 5.1.0 mocha: 10.2.0 nyc: 15.1.0 prettier: 2.3.0 rimraf: 5.0.10 sinon: 9.2.3 - ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu + ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq typescript: 5.1.6 ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.3 - '@boostercloud/framework-common-helpers': workspace:^2.18.3 - '@boostercloud/framework-types': workspace:^2.18.3 + '@boostercloud/eslint-config': workspace:^2.18.4 + '@boostercloud/framework-common-helpers': workspace:^2.18.4 + '@boostercloud/framework-types': workspace:^2.18.4 '@effect-ts/core': ^0.60.4 '@seald-io/nedb': 4.0.2 '@types/chai': 4.2.18 @@ -976,7 +976,7 @@ importers: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@seald-io/nedb': 4.0.2 - tslib: 2.7.0 + tslib: 2.8.0 ws: 8.17.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -985,21 +985,21 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.49 + '@types/node': 18.19.59 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/sinon-express-mock': 1.3.12 '@types/ws': 8.5.4 - '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 - '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry + '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay + '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi chai: 4.2.0 chai-as-promised: 7.1.1_chai@4.2.0 - eslint: 8.57.0 - eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.30.0_eslint@8.57.0 - eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae - eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 - express: 4.19.2 + eslint: 8.57.1 + eslint-config-prettier: 8.3.0_eslint@8.57.1 + eslint-plugin-import: 2.31.0_eslint@8.57.1 + eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y + eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 + express: 4.21.1 faker: 5.1.0 mocha: 10.2.0 nyc: 15.1.0 @@ -1008,15 +1008,15 @@ importers: sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu + ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq typescript: 5.1.6 ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.3 - '@boostercloud/framework-common-helpers': workspace:^2.18.3 - '@boostercloud/framework-provider-local': workspace:^2.18.3 - '@boostercloud/framework-types': workspace:^2.18.3 + '@boostercloud/eslint-config': workspace:^2.18.4 + '@boostercloud/framework-common-helpers': workspace:^2.18.4 + '@boostercloud/framework-provider-local': workspace:^2.18.4 + '@boostercloud/framework-types': workspace:^2.18.4 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1058,9 +1058,9 @@ importers: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 cors: 2.8.5 - express: 4.19.2 + express: 4.21.1 node-schedule: 2.1.1 - tslib: 2.7.0 + tslib: 2.8.0 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/chai': 4.2.18 @@ -1069,20 +1069,20 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.49 + '@types/node': 18.19.59 '@types/node-schedule': 1.3.2 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/sinon-express-mock': 1.3.12 - '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 - '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry + '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay + '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi chai: 4.2.0 chai-as-promised: 7.1.1_chai@4.2.0 - eslint: 8.57.0 - eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.30.0_eslint@8.57.0 - eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae - eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 + eslint: 8.57.1 + eslint-config-prettier: 8.3.0_eslint@8.57.1 + eslint-plugin-import: 2.31.0_eslint@8.57.1 + eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y + eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 faker: 5.1.0 mocha: 10.2.0 nyc: 15.1.0 @@ -1091,13 +1091,13 @@ importers: sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu + ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq typescript: 5.1.6 ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.3 - '@boostercloud/metadata-booster': workspace:^2.18.3 + '@boostercloud/eslint-config': workspace:^2.18.4 + '@boostercloud/metadata-booster': workspace:^2.18.4 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@effect/cli': 0.35.26 @@ -1146,7 +1146,7 @@ importers: '@effect/schema': 0.64.18_lr76zgfnixwkqlplfmwtcihp7a '@effect/typeclass': 0.23.17_effect@2.4.17 effect: 2.4.17 - tslib: 2.7.0 + tslib: 2.8.0 uuid: 8.3.2 web-streams-polyfill: 3.3.3 ws: 8.17.1 @@ -1156,19 +1156,19 @@ importers: '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/mocha': 10.0.1 - '@types/node': 18.19.49 + '@types/node': 18.19.59 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 - '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 - '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry + '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay + '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi chai: 4.2.0 chai-as-promised: 7.1.1_chai@4.2.0 - eslint: 8.57.0 - eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.30.0_eslint@8.57.0 - eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae - eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 + eslint: 8.57.1 + eslint-config-prettier: 8.3.0_eslint@8.57.1 + eslint-plugin-import: 2.31.0_eslint@8.57.1 + eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y + eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 fast-check: 3.22.0 graphql: 16.9.0 mocha: 10.2.0 @@ -1181,7 +1181,7 @@ importers: ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.3 + '@boostercloud/eslint-config': workspace:^2.18.4 '@effect-ts/core': ^0.60.4 '@types/node': ^18.18.2 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -1204,21 +1204,21 @@ importers: '@effect-ts/core': 0.60.5 reflect-metadata: 0.1.13 ts-morph: 19.0.0 - tslib: 2.7.0 + tslib: 2.8.0 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config - '@types/node': 18.19.49 - '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 - '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry - eslint: 8.57.0 - eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.30.0_eslint@8.57.0 - eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae - eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 + '@types/node': 18.19.59 + '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay + '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi + eslint: 8.57.1 + eslint-config-prettier: 8.3.0_eslint@8.57.1 + eslint-plugin-import: 2.31.0_eslint@8.57.1 + eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y + eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 prettier: 2.3.0 rimraf: 5.0.10 sinon: 9.2.3 - ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu + ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq ts-patch: 3.1.2 typescript: 5.1.6 @@ -1234,14 +1234,14 @@ importers: prettier: 2.3.0 typescript: 5.1.6 dependencies: - '@typescript-eslint/eslint-plugin': 5.62.0_isoa4rovreaplj6y6c4wy6pss4 - '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry - eslint: 8.57.0 - eslint-config-prettier: 8.3.0_eslint@8.57.0 - eslint-plugin-import: 2.30.0_eslint@8.57.0 - eslint-plugin-prettier: 3.4.0_ddm2pio5nc2sobczsauzpxvcae + '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay + '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi + eslint: 8.57.1 + eslint-config-prettier: 8.3.0_eslint@8.57.1 + eslint-plugin-import: 2.31.0_eslint@8.57.1 + eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y devDependencies: - eslint-plugin-unicorn: 44.0.2_eslint@8.57.0 + eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 prettier: 2.3.0 typescript: 5.1.6 @@ -1294,7 +1294,7 @@ packages: subscriptions-transport-ws: 0.11.0_graphql@16.9.0 symbol-observable: 4.0.0 ts-invariant: 0.10.3 - tslib: 2.7.0 + tslib: 2.8.0 zen-observable-ts: 1.2.5 dev: true @@ -1329,7 +1329,7 @@ packages: subscriptions-transport-ws: 0.11.0_graphql@16.9.0 symbol-observable: 4.0.0 ts-invariant: 0.10.3 - tslib: 2.7.0 + tslib: 2.8.0 zen-observable-ts: 1.2.5 dev: false @@ -1660,7 +1660,7 @@ packages: '@aws-cdk/aws-codecommit': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-codestarnotifications': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni + '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu @@ -1672,7 +1672,6 @@ packages: '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 - yaml: 1.10.2 transitivePeerDependencies: - '@aws-cdk/aws-lambda' - '@aws-cdk/cx-api' @@ -1788,7 +1787,6 @@ packages: '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/custom-resources': 1.204.0_c23kgzmvfhgnr6qpzzlbsfzuc4 constructs: 3.4.344 - punycode: 2.3.1 transitivePeerDependencies: - '@aws-cdk/aws-ec2' - '@aws-cdk/aws-logs' @@ -1875,7 +1873,7 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/assets': 1.204.0_uszt2j4mor3yrbm3tre3az4zvy - '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni + '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam @@ -1885,7 +1883,7 @@ packages: - '@aws-cdk/aws-events' dev: false - /@aws-cdk/aws-ecr/1.204.0_4bnk2gpayjo75fecjckge2dkni: + /@aws-cdk/aws-ecr/1.204.0_bi2u42js5xhxqcsg5gqefde4xi: resolution: {integrity: sha512-oCts9e+ackWoFHeyn/3oKm3X1lSizleWNNXHp5WGM38lpNVrtCLMKSShu5iXJBhqRH2Mz1AcA4fDMWhe8DvJFA==} engines: {node: '>= 14.15.0'} deprecated: |- @@ -1901,8 +1899,11 @@ packages: dependencies: '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu + '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam constructs: 3.4.344 + transitivePeerDependencies: + - '@aws-cdk/cx-api' dev: false /@aws-cdk/aws-ecs/1.204.0_iu2vquo67t63xu6vdymsg3ufny: @@ -1928,7 +1929,7 @@ packages: '@aws-cdk/aws-certificatemanager': 1.204.0_xtqk4litqxecxsqs3sd6ajo2ja '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni + '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli @@ -2274,7 +2275,7 @@ packages: '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-codeguruprofiler': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-ecr': 1.204.0_4bnk2gpayjo75fecjckge2dkni + '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-efs': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm @@ -2435,7 +2436,6 @@ packages: '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/lambda-layer-awscli': 1.204.0_e7ybiu4yrrtvf3zlvzrvcjkvyy - case: 1.6.3 constructs: 3.4.344 transitivePeerDependencies: - '@aws-cdk/assets' @@ -2715,9 +2715,6 @@ packages: /@aws-cdk/cloud-assembly-schema/1.203.0: resolution: {integrity: sha512-r252InZ8Oh7q7ztriaA3n6F48QOFVfNcT/KO4XOlYyt1xDWRMENDYf+D+DVr6O5klcaa3ivvvDT7DRuW3xdVOQ==} engines: {node: '>= 14.15.0'} - dependencies: - jsonschema: 1.4.1 - semver: 7.6.3 dev: false bundledDependencies: - jsonschema @@ -2731,9 +2728,6 @@ packages: This package is no longer being updated, and users should migrate to AWS CDK v2. For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html - dependencies: - jsonschema: 1.4.1 - semver: 7.6.3 dev: false bundledDependencies: - jsonschema @@ -2742,9 +2736,6 @@ packages: /@aws-cdk/cloud-assembly-schema/2.39.1: resolution: {integrity: sha512-lSVaaedXWeK08uoq0IXDCspz9U/H4qIERemdsMQrMUDTiUe/JBby7vtmyMvOdEscE8GMAmiOzoPmAE0Uf+yw5A==} engines: {node: '>= 14.15.0'} - dependencies: - jsonschema: 1.4.1 - semver: 7.6.3 dev: false bundledDependencies: - jsonschema @@ -2778,11 +2769,7 @@ packages: '@aws-cdk/cloud-assembly-schema': 1.204.0 '@aws-cdk/cx-api': 1.203.0 '@aws-cdk/region-info': 1.204.0 - '@balena/dockerignore': 1.0.2 constructs: 3.4.344 - fs-extra: 9.1.0 - ignore: 5.3.2 - minimatch: 3.1.2 dev: false bundledDependencies: - fs-extra @@ -2825,7 +2812,6 @@ packages: engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 1.203.0 - semver: 7.6.3 dev: false bundledDependencies: - semver @@ -2840,7 +2826,6 @@ packages: For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html dependencies: '@aws-cdk/cloud-assembly-schema': 1.204.0 - semver: 7.6.3 dev: false bundledDependencies: - semver @@ -2850,7 +2835,6 @@ packages: engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 2.39.1 - semver: 7.6.3 dev: false bundledDependencies: - semver @@ -2887,14 +2871,14 @@ packages: resolution: {integrity: sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==} engines: {node: '>=12.0.0'} dependencies: - tslib: 2.7.0 + tslib: 2.8.0 dev: false /@azure/abort-controller/2.1.2: resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.7.0 + tslib: 2.8.0 dev: false /@azure/arm-appservice/13.0.3: @@ -2902,12 +2886,12 @@ packages: engines: {node: '>=14.0.0'} dependencies: '@azure/abort-controller': 1.1.0 - '@azure/core-auth': 1.7.2 + '@azure/core-auth': 1.9.0 '@azure/core-client': 1.9.2 '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.16.3 - tslib: 2.7.0 + '@azure/core-rest-pipeline': 1.17.0 + tslib: 2.8.0 transitivePeerDependencies: - supports-color dev: false @@ -2917,12 +2901,12 @@ packages: engines: {node: '>=14.0.0'} dependencies: '@azure/abort-controller': 1.1.0 - '@azure/core-auth': 1.7.2 + '@azure/core-auth': 1.9.0 '@azure/core-client': 1.9.2 '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.16.3 - tslib: 2.7.0 + '@azure/core-rest-pipeline': 1.17.0 + tslib: 2.8.0 transitivePeerDependencies: - supports-color dev: false @@ -2932,28 +2916,28 @@ packages: engines: {node: '>=14.0.0'} dependencies: '@azure/abort-controller': 1.1.0 - '@azure/core-auth': 1.7.2 - '@azure/core-util': 1.9.2 + '@azure/core-auth': 1.9.0 + '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 buffer: 6.0.3 events: 3.3.0 jssha: 3.3.1 process: 0.11.10 - rhea: 3.0.2 + rhea: 3.0.3 rhea-promise: 3.0.3 - tslib: 2.7.0 + tslib: 2.8.0 util: 0.12.5 transitivePeerDependencies: - supports-color dev: false - /@azure/core-auth/1.7.2: - resolution: {integrity: sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g==} + /@azure/core-auth/1.9.0: + resolution: {integrity: sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw==} engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 - '@azure/core-util': 1.9.2 - tslib: 2.7.0 + '@azure/core-util': 1.11.0 + tslib: 2.8.0 dev: false /@azure/core-client/1.9.2: @@ -2961,12 +2945,12 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 - '@azure/core-auth': 1.7.2 - '@azure/core-rest-pipeline': 1.16.3 - '@azure/core-tracing': 1.1.2 - '@azure/core-util': 1.9.2 + '@azure/core-auth': 1.9.0 + '@azure/core-rest-pipeline': 1.17.0 + '@azure/core-tracing': 1.2.0 + '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 - tslib: 2.7.0 + tslib: 2.8.0 transitivePeerDependencies: - supports-color dev: false @@ -2976,47 +2960,47 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 - '@azure/core-util': 1.9.2 + '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 - tslib: 2.7.0 + tslib: 2.8.0 dev: false /@azure/core-paging/1.6.2: resolution: {integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.7.0 + tslib: 2.8.0 dev: false - /@azure/core-rest-pipeline/1.16.3: - resolution: {integrity: sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==} + /@azure/core-rest-pipeline/1.17.0: + resolution: {integrity: sha512-62Vv8nC+uPId3j86XJ0WI+sBf0jlqTqPUFCBNrGtlaUeQUIXWV/D8GE5A1d+Qx8H7OQojn2WguC8kChD6v0shA==} engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 - '@azure/core-auth': 1.7.2 - '@azure/core-tracing': 1.1.2 - '@azure/core-util': 1.9.2 + '@azure/core-auth': 1.9.0 + '@azure/core-tracing': 1.2.0 + '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 - tslib: 2.7.0 + tslib: 2.8.0 transitivePeerDependencies: - supports-color dev: false - /@azure/core-tracing/1.1.2: - resolution: {integrity: sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA==} + /@azure/core-tracing/1.2.0: + resolution: {integrity: sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.7.0 + tslib: 2.8.0 dev: false - /@azure/core-util/1.9.2: - resolution: {integrity: sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ==} + /@azure/core-util/1.11.0: + resolution: {integrity: sha512-DxOSLua+NdpWoSqULhjDyAZTXFdP/LKkqtYuxxz1SCN289zk3OG8UOpnCQAz/tygyACBtWp/BoO72ptK7msY8g==} engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 - tslib: 2.7.0 + tslib: 2.8.0 dev: false /@azure/cosmos/4.1.1: @@ -3024,15 +3008,15 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 - '@azure/core-auth': 1.7.2 - '@azure/core-rest-pipeline': 1.16.3 - '@azure/core-tracing': 1.1.2 - '@azure/core-util': 1.9.2 + '@azure/core-auth': 1.9.0 + '@azure/core-rest-pipeline': 1.17.0 + '@azure/core-tracing': 1.2.0 + '@azure/core-util': 1.11.0 fast-json-stable-stringify: 2.1.0 jsbi: 4.3.0 priorityqueuejs: 2.0.0 semaphore: 1.1.0 - tslib: 2.7.0 + tslib: 2.8.0 transitivePeerDependencies: - supports-color dev: false @@ -3043,16 +3027,16 @@ packages: dependencies: '@azure/abort-controller': 1.1.0 '@azure/core-amqp': 3.3.0 - '@azure/core-auth': 1.7.2 - '@azure/core-tracing': 1.1.2 - '@azure/core-util': 1.9.2 + '@azure/core-auth': 1.9.0 + '@azure/core-tracing': 1.2.0 + '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 buffer: 6.0.3 is-buffer: 2.0.5 jssha: 3.3.1 process: 0.11.10 rhea-promise: 3.0.3 - tslib: 2.7.0 + tslib: 2.8.0 transitivePeerDependencies: - supports-color dev: false @@ -3066,11 +3050,11 @@ packages: engines: {node: '>=12.0.0'} dependencies: '@azure/abort-controller': 1.1.0 - '@azure/core-auth': 1.7.2 + '@azure/core-auth': 1.9.0 '@azure/core-client': 1.9.2 - '@azure/core-rest-pipeline': 1.16.3 - '@azure/core-tracing': 1.1.2 - '@azure/core-util': 1.9.2 + '@azure/core-rest-pipeline': 1.17.0 + '@azure/core-tracing': 1.2.0 + '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 '@azure/msal-browser': 2.39.0 '@azure/msal-common': 7.6.0 @@ -3079,7 +3063,7 @@ packages: jws: 4.0.0 open: 8.4.2 stoppable: 1.1.0 - tslib: 2.7.0 + tslib: 2.8.0 uuid: 8.3.2 transitivePeerDependencies: - supports-color @@ -3089,7 +3073,7 @@ packages: resolution: {integrity: sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.7.0 + tslib: 2.8.0 dev: false /@azure/msal-browser/2.39.0: @@ -3128,45 +3112,46 @@ packages: resolution: {integrity: sha512-l1HHPcFCRhZ8P6oQ8C/8A2eElHWqmG7CxVUlDcXi3Fs9SUr8GYKv5euYJWS5uboaokudjAiqJ6u/oM6h+pQ4+w==} engines: {node: '>=18.0.0'} dependencies: - '@azure/core-auth': 1.7.2 + '@azure/core-auth': 1.9.0 '@azure/core-client': 1.9.2 - '@azure/core-rest-pipeline': 1.16.3 - '@azure/core-tracing': 1.1.2 + '@azure/core-rest-pipeline': 1.17.0 + '@azure/core-tracing': 1.2.0 '@azure/logger': 1.1.4 jsonwebtoken: 9.0.1 - tslib: 2.7.0 + tslib: 2.8.0 transitivePeerDependencies: - supports-color dev: false - /@babel/code-frame/7.24.7: - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + /@babel/code-frame/7.26.0: + resolution: {integrity: sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.1.0 + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 - /@babel/compat-data/7.25.4: - resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} + /@babel/compat-data/7.26.0: + resolution: {integrity: sha512-qETICbZSLe7uXv9VE8T/RWOdIE5qqyTucOt4zLYMafj2MRO271VGgLd4RACJMeBO37UPWhXiKMBk7YlJ0fOzQA==} engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.25.2: - resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} + /@babel/core/7.26.0: + resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-module-transforms': 7.25.2_@babel+core@7.25.2 - '@babel/helpers': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.26.0 + '@babel/generator': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-module-transforms': 7.26.0_@babel+core@7.26.0 + '@babel/helpers': 7.26.0 + '@babel/parser': 7.26.0 + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 convert-source-map: 2.0.0 - debug: 4.3.6 + debug: 4.3.7 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -3174,139 +3159,115 @@ packages: - supports-color dev: true - /@babel/generator/7.25.6: - resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} + /@babel/generator/7.26.0: + resolution: {integrity: sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.25.6 + '@babel/parser': 7.26.0 + '@babel/types': 7.26.0 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 + jsesc: 3.0.2 - /@babel/helper-compilation-targets/7.25.2: - resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} + /@babel/helper-compilation-targets/7.25.9: + resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.25.4 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.3 + '@babel/compat-data': 7.26.0 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.2 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-module-imports/7.24.7: - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + /@babel/helper-module-imports/7.25.9: + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-module-transforms/7.25.2_@babel+core@7.25.2: - resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} + /@babel/helper-module-transforms/7.26.0_@babel+core@7.26.0: + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.6 + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-simple-access/7.24.7: - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + /@babel/helper-string-parser/7.25.9: + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/helper-string-parser/7.24.8: - resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + /@babel/helper-validator-identifier/7.25.9: + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier/7.24.7: - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} - engines: {node: '>=6.9.0'} - - /@babel/helper-validator-option/7.24.8: - resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} + /@babel/helper-validator-option/7.25.9: + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helpers/7.25.6: - resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} + /@babel/helpers/7.26.0: + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 dev: true - /@babel/highlight/7.24.7: - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.1.0 - - /@babel/parser/7.25.6: - resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} + /@babel/parser/7.26.0: + resolution: {integrity: sha512-aP8x5pIw3xvYr/sXT+SEUwyhrXT8rUJRZltK/qN3Db80dcKpTett8cJxHyjk+xYSVXvNnl2SfcJVjbwxpOSscA==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.26.0 - /@babel/runtime/7.25.6: - resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} + /@babel/runtime/7.26.0: + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 dev: true - /@babel/template/7.25.0: - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + /@babel/template/7.25.9: + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.26.0 + '@babel/parser': 7.26.0 + '@babel/types': 7.26.0 - /@babel/traverse/7.25.6: - resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} + /@babel/traverse/7.25.9: + resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 - debug: 4.3.6 + '@babel/code-frame': 7.26.0 + '@babel/generator': 7.26.0 + '@babel/parser': 7.26.0 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types/7.25.6: - resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} + /@babel/types/7.26.0: + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 - - /@balena/dockerignore/1.0.2: - resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} - dev: false + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 /@cdktf/cli-core/0.19.2_react@17.0.2: resolution: {integrity: sha512-kjgEUhrHx3kUPfL7KsTo6GrurVUPT77FmOUf7wWXt7ajNE5zCPvx/HKGmQruzt0n6eLZp1aKT+r/D6YRfXcIGA==} @@ -3316,20 +3277,20 @@ packages: '@cdktf/hcl2json': 0.19.2 '@cdktf/node-pty-prebuilt-multiarch': 0.10.1-pre.11 '@cdktf/provider-schema': 0.19.2 - '@sentry/node': 7.119.0 + '@sentry/node': 7.119.2 archiver: 5.3.2 - cdktf: 0.19.2_constructs@10.3.0 + cdktf: 0.19.2_constructs@10.4.2 chalk: 4.1.2 chokidar: 3.6.0 cli-spinners: 2.7.0 - codemaker: 1.103.1 - constructs: 10.3.0 + codemaker: 1.104.0 + constructs: 10.4.2 cross-fetch: 3.1.5 cross-spawn: 7.0.3 detect-port: 1.6.1 execa: 5.1.1 extract-zip: 2.0.1 - follow-redirects: 1.15.8 + follow-redirects: 1.15.9 fs-extra: 8.1.0 https-proxy-agent: 5.0.1 indent-string: 4.0.0 @@ -3338,9 +3299,9 @@ packages: ink-spinner: 4.0.3_ink@3.2.0+react@17.0.2 ink-testing-library: 2.1.0 ink-use-stdout-dimensions: 1.0.5_ink@3.2.0+react@17.0.2 - jsii: 5.5.2 - jsii-pacmak: 1.103.1 - jsii-srcmak: 0.1.1233 + jsii: 5.5.4 + jsii-pacmak: 1.104.0 + jsii-srcmak: 0.1.1280 lodash.isequal: 4.5.0 log4js: 6.9.1 minimatch: 5.1.6 @@ -3372,13 +3333,13 @@ packages: /@cdktf/commons/0.19.2: resolution: {integrity: sha512-5rOeb0cSREHQa5XVsGFEV6Ce8Zwo2WxE8GIhmGd/JzeSAByhK8scHFlD3+eENl83W/8lwIkm/nSl9oDHEkENIg==} dependencies: - '@sentry/node': 7.119.0 - cdktf: 0.19.2_constructs@10.3.0 + '@sentry/node': 7.119.2 + cdktf: 0.19.2_constructs@10.4.2 ci-info: 3.9.0 - codemaker: 1.103.1 - constructs: 10.3.0 + codemaker: 1.104.0 + constructs: 10.4.2 cross-spawn: 7.0.3 - follow-redirects: 1.15.8 + follow-redirects: 1.15.9 fs-extra: 11.2.0 is-valid-domain: 0.1.6 log4js: 6.9.1 @@ -3390,9 +3351,9 @@ packages: /@cdktf/hcl2cdk/0.19.2: resolution: {integrity: sha512-v0UNRvvzuCi3SnmSAgBFAnWavT0ybR1AzkK8ndgfbB5JLDoNm0iJV0MOTURZF+I0O3V9u4RZsw4DVNPdil2EEA==} dependencies: - '@babel/generator': 7.25.6 - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/generator': 7.26.0 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 '@cdktf/commons': 0.19.2 '@cdktf/hcl2json': 0.19.2 '@cdktf/provider-generator': 0.19.2 @@ -3402,7 +3363,7 @@ packages: glob: 10.4.5 graphology: 0.25.4_graphology-types@0.24.7 graphology-types: 0.24.7 - jsii-rosetta: 5.5.4 + jsii-rosetta: 5.5.5 prettier: 2.8.8 reserved-words: 0.1.2 zod: 3.23.8 @@ -3419,18 +3380,18 @@ packages: resolution: {integrity: sha512-qvga/nzEtdCJMu/6jJfDqpzbRejvXtNhWFnbubfuYyN5nMNORNXX+POT4j+mQSDQar5bIQ1a812szw/zr47cfw==} requiresBuild: true dependencies: - nan: 2.20.0 + nan: 2.22.0 prebuild-install: 7.1.2 - /@cdktf/provider-azurerm/13.3.0_5k7lg6pu6lyti4sdnvep4rdzly: + /@cdktf/provider-azurerm/13.3.0_eykofocqnxaowlkqmvzbold3ry: resolution: {integrity: sha512-gXxAJYTpEMwxSteqJvZEQ8WpCot+E58sW5u/za0drc5zgkrYO3vTEsOByj8Vcxn7MWXrZFacnktgtU1UkPZs4w==} engines: {node: '>= 18.12.0'} peerDependencies: cdktf: ^0.20.0 constructs: ^10.3.0 dependencies: - cdktf: 0.19.2_constructs@10.3.0 - constructs: 10.3.0 + cdktf: 0.19.2_constructs@10.4.2 + constructs: 10.4.2 dev: false /@cdktf/provider-generator/0.19.2: @@ -3440,10 +3401,10 @@ packages: '@cdktf/hcl2json': 0.19.2 '@cdktf/provider-schema': 0.19.2 '@types/node': 18.18.8 - codemaker: 1.103.1 + codemaker: 1.104.0 deepmerge: 4.3.1 fs-extra: 8.1.0 - jsii-srcmak: 0.1.1233 + jsii-srcmak: 0.1.1280 transitivePeerDependencies: - debug - supports-color @@ -3457,15 +3418,15 @@ packages: - debug - supports-color - /@cdktf/provider-time/9.0.2_5k7lg6pu6lyti4sdnvep4rdzly: + /@cdktf/provider-time/9.0.2_eykofocqnxaowlkqmvzbold3ry: resolution: {integrity: sha512-I0BS+/Gs/2fWXqGcmDsUvWqiCXDYcYH0OKvVvUf1RrGc8678uCeyqVqnwdy+UkIwjUGwk3L9pfJKX3dsun8OUQ==} engines: {node: '>= 18.12.0'} peerDependencies: cdktf: ^0.19.0 constructs: ^10.3.0 dependencies: - cdktf: 0.19.2_constructs@10.3.0 - constructs: 10.3.0 + cdktf: 0.19.2_constructs@10.4.2 + constructs: 10.4.2 dev: false /@cspotcode/source-map-support/0.8.1: @@ -3508,7 +3469,7 @@ packages: effect: 2.4.17 ini: 4.1.3 toml: 3.0.0 - yaml: 2.5.1 + yaml: 2.6.0 dev: false /@effect/platform-node-shared/0.3.29_cahjalgelcnk6vcj6x2oc46m3a: @@ -3533,7 +3494,7 @@ packages: '@effect/platform-node-shared': 0.3.29_cahjalgelcnk6vcj6x2oc46m3a effect: 2.4.17 mime: 3.0.0 - undici: 6.19.8 + undici: 6.20.1 ws: 8.17.1 transitivePeerDependencies: - bufferutil @@ -3595,17 +3556,17 @@ packages: effect: 2.4.17 dev: false - /@eslint-community/eslint-utils/4.4.0_eslint@8.57.0: + /@eslint-community/eslint-utils/4.4.0_eslint@8.57.1: resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.57.0 + eslint: 8.57.1 eslint-visitor-keys: 3.4.3 - /@eslint-community/regexpp/4.11.0: - resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + /@eslint-community/regexpp/4.11.1: + resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} /@eslint/eslintrc/2.1.4: @@ -3613,7 +3574,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.6 + debug: 4.3.7 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.2 @@ -3624,8 +3585,8 @@ packages: transitivePeerDependencies: - supports-color - /@eslint/js/8.57.0: - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + /@eslint/js/8.57.1: + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} /@graphql-typed-document-node/core/3.2.0_graphql@16.9.0: @@ -3635,13 +3596,13 @@ packages: dependencies: graphql: 16.9.0 - /@humanwhocodes/config-array/0.11.14: - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + /@humanwhocodes/config-array/0.13.0: + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} deprecated: Use @eslint/config-array instead dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.6 + debug: 4.3.7 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -3659,7 +3620,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.5.3 + '@inquirer/type': 1.5.5 ansi-escapes: 4.3.2 chalk: 4.1.2 figures: 3.2.0 @@ -3669,16 +3630,16 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.5.3 + '@inquirer/type': 1.5.5 chalk: 4.1.2 /@inquirer/core/2.3.1: resolution: {integrity: sha512-faYAYnIfdEuns3jGKykaog5oUqFiEVbCx9nXGZfUhyEEpKcHt5bpJfZTb3eOBQKo8I/v4sJkZeBHmFlSZQuBCw==} engines: {node: '>=14.18.0'} dependencies: - '@inquirer/type': 1.5.3 + '@inquirer/type': 1.5.5 '@types/mute-stream': 0.0.1 - '@types/node': 20.16.4 + '@types/node': 20.17.1 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3695,9 +3656,9 @@ packages: resolution: {integrity: sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==} engines: {node: '>=14.18.0'} dependencies: - '@inquirer/type': 1.5.3 + '@inquirer/type': 1.5.5 '@types/mute-stream': 0.0.4 - '@types/node': 20.16.4 + '@types/node': 20.17.1 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3715,7 +3676,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.5.3 + '@inquirer/type': 1.5.5 chalk: 4.1.2 external-editor: 3.1.0 @@ -3724,7 +3685,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.5.3 + '@inquirer/type': 1.5.5 chalk: 4.1.2 figures: 3.2.0 @@ -3733,7 +3694,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.5.3 + '@inquirer/type': 1.5.5 chalk: 4.1.2 /@inquirer/password/1.1.16: @@ -3741,7 +3702,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.5.3 + '@inquirer/type': 1.5.5 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3764,7 +3725,7 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.5.3 + '@inquirer/type': 1.5.5 chalk: 4.1.2 /@inquirer/select/1.3.3: @@ -3772,13 +3733,13 @@ packages: engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 - '@inquirer/type': 1.5.3 + '@inquirer/type': 1.5.5 ansi-escapes: 4.3.2 chalk: 4.1.2 figures: 3.2.0 - /@inquirer/type/1.5.3: - resolution: {integrity: sha512-xUQ14WQGR/HK5ei+2CvgcwoH9fQ4PgPGmVFSN0pc1+fVyDL3MREhyAY7nxEErSu6CkllBM3D7e3e+kOvtu+eIg==} + /@inquirer/type/1.5.5: + resolution: {integrity: sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==} engines: {node: '>=18'} dependencies: mute-stream: 1.0.0 @@ -3841,22 +3802,22 @@ packages: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - /@jsii/check-node/1.103.0: - resolution: {integrity: sha512-fnlzGcQSJ5/SPSOoSv7qaJMSARz2MN7gER0ZKbkHhTrBQU3A/TNrLvTLzOtRnygx9xOlKZkgt05UXG5Ovr4iww==} + /@jsii/check-node/1.103.1: + resolution: {integrity: sha512-Vi6ONm5WXEim98a2DJ6WMlrP/w5AGzXrrQBpGcfVV7cu86DPx1L0OAZnqzGAJE8ly0VfcSXkmxJ9LFcn3jylBQ==} engines: {node: '>= 14.17.0'} dependencies: chalk: 4.1.2 semver: 7.6.3 - /@jsii/check-node/1.103.1: - resolution: {integrity: sha512-Vi6ONm5WXEim98a2DJ6WMlrP/w5AGzXrrQBpGcfVV7cu86DPx1L0OAZnqzGAJE8ly0VfcSXkmxJ9LFcn3jylBQ==} + /@jsii/check-node/1.104.0: + resolution: {integrity: sha512-5rAn4y11APxq69DmTKtAACmDuOymcTiz29CE7s0AeWA5jzpxBRhkaj8xwixiSQtkoBFk+Vpoi2eNctCvwLdFaw==} engines: {node: '>= 14.17.0'} dependencies: chalk: 4.1.2 semver: 7.6.3 - /@jsii/spec/1.103.1: - resolution: {integrity: sha512-14OGYM3DjEBjUOUaih+bwPgkhFnR8L9TSNSM0oE0L0hjWscTapvClqOgMDJ1ID52qkROCAgKl1d71Vmm4v0Buw==} + /@jsii/spec/1.104.0: + resolution: {integrity: sha512-7jxU8iRowA3O7Dpn8XAsX8o4Y8Fy8plbEVg0CnjvIQsJh3puI3KFHspXur70OOccfGkoL1TWnXBZ+BwCcvhu1g==} engines: {node: '>= 14.17.0'} dependencies: ajv: 8.17.1 @@ -3864,7 +3825,7 @@ packages: /@kwsites/file-exists/1.1.1_supports-color@8.1.1: resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} dependencies: - debug: 4.3.6_supports-color@8.1.1 + debug: 4.3.7_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true @@ -3891,7 +3852,7 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - /@oclif/core/2.16.0_45rz2fqkboejwckriajjmu7obu: + /@oclif/core/2.16.0_5aurqvvi2kcpaxpbv224uoiqwq: resolution: {integrity: sha512-dL6atBH0zCZl1A1IXCKJgLPrM/wR7K+Wi401E/IvqsK8m2iCHW+0TEOGrans/cuN3oTW+uxIyJFHJ8Im0k4qBw==} engines: {node: '>=14.0.0'} dependencies: @@ -3902,7 +3863,7 @@ packages: chalk: 4.1.2 clean-stack: 3.0.1 cli-progress: 3.12.0 - debug: 4.3.6_supports-color@8.1.1 + debug: 4.3.7_supports-color@8.1.1 ejs: 3.1.10 get-package-type: 0.1.0 globby: 11.1.0 @@ -3918,8 +3879,8 @@ packages: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - ts-node: 10.9.2_45rz2fqkboejwckriajjmu7obu - tslib: 2.7.0 + ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq + tslib: 2.8.0 widest-line: 3.1.0 wordwrap: 1.0.0 wrap-ansi: 7.0.0 @@ -3941,7 +3902,7 @@ packages: clean-stack: 3.0.1 cli-progress: 3.12.0 color: 4.2.3 - debug: 4.3.6_supports-color@8.1.1 + debug: 4.3.7_supports-color@8.1.1 ejs: 3.1.10 get-package-type: 0.1.0 globby: 11.1.0 @@ -3957,7 +3918,7 @@ packages: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - tsconfck: 3.1.3_typescript@5.1.6 + tsconfck: 3.1.4_typescript@5.1.6 widest-line: 3.1.0 wordwrap: 1.0.0 wrap-ansi: 7.0.0 @@ -3977,7 +3938,7 @@ packages: clean-stack: 3.0.1 cli-progress: 3.12.0 color: 4.2.3 - debug: 4.3.6_supports-color@8.1.1 + debug: 4.3.7_supports-color@8.1.1 ejs: 3.1.10 get-package-type: 0.1.0 globby: 11.1.0 @@ -3999,11 +3960,11 @@ packages: wrap-ansi: 7.0.0 dev: true - /@oclif/plugin-help/5.2.20_45rz2fqkboejwckriajjmu7obu: + /@oclif/plugin-help/5.2.20_5aurqvvi2kcpaxpbv224uoiqwq: resolution: {integrity: sha512-u+GXX/KAGL9S10LxAwNUaWdzbEBARJ92ogmM7g3gDVud2HioCmvWQCDohNRVZ9GYV9oKwZ/M8xwd6a1d95rEKQ==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.16.0_45rz2fqkboejwckriajjmu7obu + '@oclif/core': 2.16.0_5aurqvvi2kcpaxpbv224uoiqwq transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -4172,49 +4133,49 @@ packages: localforage: 1.10.0 util: 0.12.5 - /@sentry-internal/tracing/7.119.0: - resolution: {integrity: sha512-oKdFJnn+56f0DHUADlL8o9l8jTib3VDLbWQBVkjD9EprxfaCwt2m8L5ACRBdQ8hmpxCEo4I8/6traZ7qAdBUqA==} + /@sentry-internal/tracing/7.119.2: + resolution: {integrity: sha512-V2W+STWrafyGJhQv3ulMFXYDwWHiU6wHQAQBShsHVACiFaDrJ2kPRet38FKv4dMLlLlP2xN+ss2e5zv3tYlTiQ==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.119.0 - '@sentry/types': 7.119.0 - '@sentry/utils': 7.119.0 + '@sentry/core': 7.119.2 + '@sentry/types': 7.119.2 + '@sentry/utils': 7.119.2 - /@sentry/core/7.119.0: - resolution: {integrity: sha512-CS2kUv9rAJJEjiRat6wle3JATHypB0SyD7pt4cpX5y0dN5dZ1JrF57oLHRMnga9fxRivydHz7tMTuBhSSwhzjw==} + /@sentry/core/7.119.2: + resolution: {integrity: sha512-hQr3d2yWq/2lMvoyBPOwXw1IHqTrCjOsU1vYKhAa6w9vGbJZFGhKGGE2KEi/92c3gqGn+gW/PC7cV6waCTDuVA==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.119.0 - '@sentry/utils': 7.119.0 + '@sentry/types': 7.119.2 + '@sentry/utils': 7.119.2 - /@sentry/integrations/7.119.0: - resolution: {integrity: sha512-OHShvtsRW0A+ZL/ZbMnMqDEtJddPasndjq+1aQXw40mN+zeP7At/V1yPZyFaURy86iX7Ucxw5BtmzuNy7hLyTA==} + /@sentry/integrations/7.119.2: + resolution: {integrity: sha512-dCuXKvbUE3gXVVa696SYMjlhSP6CxpMH/gl4Jk26naEB8Xjsn98z/hqEoXLg6Nab73rjR9c/9AdKqBbwVMHyrQ==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.119.0 - '@sentry/types': 7.119.0 - '@sentry/utils': 7.119.0 + '@sentry/core': 7.119.2 + '@sentry/types': 7.119.2 + '@sentry/utils': 7.119.2 localforage: 1.10.0 - /@sentry/node/7.119.0: - resolution: {integrity: sha512-9PFzN8xS6U0oZCflpVxS2SSIsHkCaj7qYBlsvHj4CTGWfao9ImwrU6+smy4qoG6oxwPfoVb5pOOMb4WpWOvXcQ==} + /@sentry/node/7.119.2: + resolution: {integrity: sha512-TPNnqxh+Myooe4jTyRiXrzrM2SH08R4+nrmBls4T7lKp2E5R/3mDSe/YTn5rRcUt1k1hPx1NgO/taG0DoS5cXA==} engines: {node: '>=8'} dependencies: - '@sentry-internal/tracing': 7.119.0 - '@sentry/core': 7.119.0 - '@sentry/integrations': 7.119.0 - '@sentry/types': 7.119.0 - '@sentry/utils': 7.119.0 + '@sentry-internal/tracing': 7.119.2 + '@sentry/core': 7.119.2 + '@sentry/integrations': 7.119.2 + '@sentry/types': 7.119.2 + '@sentry/utils': 7.119.2 - /@sentry/types/7.119.0: - resolution: {integrity: sha512-27qQbutDBPKGbuJHROxhIWc1i0HJaGLA90tjMu11wt0E4UNxXRX+UQl4Twu68v4EV3CPvQcEpQfgsViYcXmq+w==} + /@sentry/types/7.119.2: + resolution: {integrity: sha512-ydq1tWsdG7QW+yFaTp0gFaowMLNVikIqM70wxWNK+u98QzKnVY/3XTixxNLsUtnAB4Y+isAzFhrc6Vb5GFdFeg==} engines: {node: '>=8'} - /@sentry/utils/7.119.0: - resolution: {integrity: sha512-ZwyXexWn2ZIe2bBoYnXJVPc2esCSbKpdc6+0WJa8eutXfHq3FRKg4ohkfCBpfxljQGEfP1+kfin945lA21Ka+A==} + /@sentry/utils/7.119.2: + resolution: {integrity: sha512-TLdUCvcNgzKP0r9YD7tgCL1PEUp42TObISridsPJ5rhpVGQJvpr+Six0zIkfDUxerLYWZoK8QMm9KgFlPLNQzA==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.119.0 + '@sentry/types': 7.119.2 /@serverless/dashboard-plugin/6.4.0_supports-color@8.1.1: resolution: {integrity: sha512-2yJQym94sXZhEFbcOVRMJgJ4a2H9Qly94UeUesPwf8bfWCxtiB4l5rxLnCB2aLTuUf/djcuD5/VrNPY1pRU7DA==} @@ -4236,7 +4197,7 @@ packages: node-fetch: 2.7.0 open: 7.4.2 semver: 7.6.3 - simple-git: 3.26.0_supports-color@8.1.1 + simple-git: 3.27.0_supports-color@8.1.1 type: 2.7.3 uuid: 8.3.2 yamljs: 0.3.0 @@ -4251,7 +4212,7 @@ packages: /@serverless/event-mocks/1.1.1: resolution: {integrity: sha512-YAV5V/y+XIOfd+HEVeXfPWZb8C6QLruFk9tBivoX2roQLWVq145s4uxf8D0QioCueuRzkukHUS4JIj+KVoS34A==} dependencies: - '@types/lodash': 4.17.7 + '@types/lodash': 4.17.12 lodash: 4.17.21 dev: true @@ -4272,7 +4233,7 @@ packages: querystring: 0.2.1 run-parallel-limit: 1.1.0 throat: 5.0.0 - traverse: 0.6.9 + traverse: 0.6.10 ws: 7.5.10 transitivePeerDependencies: - bufferutil @@ -4303,8 +4264,8 @@ packages: js-yaml: 4.1.0 jwt-decode: 3.1.2 lodash: 4.17.21 - log: 6.3.1 - log-node: 8.0.3_log@6.3.1 + log: 6.3.2 + log-node: 8.0.3_log@6.3.2 make-dir: 4.0.0 memoizee: 0.4.17 ms: 2.1.3 @@ -4332,12 +4293,6 @@ packages: dependencies: type-detect: 4.0.8 - /@sinonjs/commons/2.0.0: - resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} - dependencies: - type-detect: 4.0.8 - dev: true - /@sinonjs/commons/3.0.1: resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} dependencies: @@ -4373,10 +4328,10 @@ packages: lodash.get: 4.4.2 type-detect: 4.1.0 - /@sinonjs/samsam/8.0.0: - resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} + /@sinonjs/samsam/8.0.2: + resolution: {integrity: sha512-v46t/fwnhejRSFTGqbpn9u+LQ9xJDse10gNnPgAcxgdoCDMXj/G2asWAC/8Qs+BAZDicX+MNZouXT1A7c83kVw==} dependencies: - '@sinonjs/commons': 2.0.0 + '@sinonjs/commons': 3.0.1 lodash.get: 4.4.2 type-detect: 4.1.0 dev: true @@ -4436,14 +4391,14 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 18.19.49 + '@types/node': 18.19.59 /@types/cacheable-request/6.0.3: resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 18.19.49 + '@types/node': 18.19.59 '@types/responselike': 1.0.3 dev: true @@ -4466,30 +4421,30 @@ packages: /@types/child-process-promise/2.2.6: resolution: {integrity: sha512-g0pOHijr6Trug43D2bV0PLSIsSHa/xHEES2HeX5BAlduq1vW0nZcq27Zeud5lgmNB+kPYYVqiMap32EHGTco/w==} dependencies: - '@types/node': 18.19.49 + '@types/node': 18.19.59 dev: true /@types/cli-progress/3.11.6: resolution: {integrity: sha512-cE3+jb9WRlu+uOSAugewNpITJDt1VF8dHOopPO4IABFc3SXYL5WE/+PTz/FCdZRRfIujiWW3n3aMbv1eIGVRWA==} dependencies: - '@types/node': 18.19.49 + '@types/node': 18.19.59 /@types/connect/3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 18.19.49 + '@types/node': 18.19.59 /@types/cors/2.8.17: resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 18.19.49 + '@types/node': 18.19.59 dev: true - /@types/express-serve-static-core/4.19.5: - resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} + /@types/express-serve-static-core/4.19.6: + resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} dependencies: - '@types/node': 18.19.49 - '@types/qs': 6.9.15 + '@types/node': 18.19.59 + '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -4497,8 +4452,8 @@ packages: resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.5 - '@types/qs': 6.9.15 + '@types/express-serve-static-core': 4.19.6 + '@types/qs': 6.9.16 '@types/serve-static': 1.15.7 /@types/faker/5.1.5: @@ -4508,14 +4463,14 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.19.49 + '@types/node': 18.19.59 dev: true /@types/glob/8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.19.49 + '@types/node': 18.19.59 /@types/http-cache-semantics/4.0.4: resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} @@ -4544,16 +4499,16 @@ packages: /@types/jsonwebtoken/9.0.1: resolution: {integrity: sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==} dependencies: - '@types/node': 18.19.49 + '@types/node': 18.19.59 /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 18.19.49 + '@types/node': 18.19.59 dev: true - /@types/lodash/4.17.7: - resolution: {integrity: sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==} + /@types/lodash/4.17.12: + resolution: {integrity: sha512-sviUmCE8AYdaF/KIHLDJBQgeYzPBI0vf/17NaYehBJfYD1j6/L95Slh07NlyK2iNyBNaEkb3En2jRt+a8y3xZQ==} dev: true /@types/mime/1.3.5: @@ -4573,29 +4528,29 @@ packages: /@types/mute-stream/0.0.1: resolution: {integrity: sha512-0yQLzYhCqGz7CQPE3iDmYjhb7KMBFOP+tBkyw+/Y2YyDI5wpS7itXXxneN1zSsUwWx3Ji6YiVYrhAnpQGS/vkw==} dependencies: - '@types/node': 18.19.49 + '@types/node': 18.19.59 /@types/mute-stream/0.0.4: resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} dependencies: - '@types/node': 18.19.49 + '@types/node': 18.19.59 /@types/nedb/1.8.16: resolution: {integrity: sha512-ND+uzwAZk7ZI9byOvHGOcZe2R9XUcLF698yDJKn00trFvh+GaemkX3gQKCSKtObjDpv8Uuou+k8v4x4scPr4TA==} dependencies: - '@types/node': 18.19.49 + '@types/node': 18.19.59 dev: true /@types/needle/2.5.3: resolution: {integrity: sha512-RwgTwMRaedfyCBe5SSWMpm1Yqzc5UPZEMw0eAd09OSyV93nLRj9/evMGZmgFeHKzUOd4xxtHvgtc+rjcBjI1Qg==} dependencies: - '@types/node': 18.19.49 + '@types/node': 18.19.59 dev: false /@types/node-schedule/1.3.2: resolution: {integrity: sha512-Y0CqdAr+lCpArT8CJJjJq4U2v8Bb5e7ru2nV/NhDdaptCMCRdOL3Y7tAhen39HluQMaIKWvPbDuiFBUQpg7Srw==} dependencies: - '@types/node': 18.19.49 + '@types/node': 18.19.59 dev: true /@types/node/10.17.60: @@ -4607,13 +4562,13 @@ packages: dependencies: undici-types: 5.26.5 - /@types/node/18.19.49: - resolution: {integrity: sha512-ALCeIR6n0nQ7j0FUF1ycOhrp6+XutJWqEu/vtdEqXFUQwkBfgUA5cEg3ZNmjWGF/ZYA/FcF9QMkL55Ar0O6UrA==} + /@types/node/18.19.59: + resolution: {integrity: sha512-vizm2EqwV/7Zay+A6J3tGl9Lhr7CjZe2HmWS988sefiEmsyP9CeXEleho6i4hJk/8UtZAo0bWN4QPZZr83RxvQ==} dependencies: undici-types: 5.26.5 - /@types/node/20.16.4: - resolution: {integrity: sha512-ioyQ1zK9aGEomJ45zz8S8IdzElyxhvP1RVWnPrXDf6wFaUb+kk1tEcVVJkF7RPGM0VWI7cp5U57oCPIn5iN1qg==} + /@types/node/20.17.1: + resolution: {integrity: sha512-j2VlPv1NnwPJbaCNv69FO/1z4lId0QmGvpT41YxitRtWlg96g/j8qcv2RKsLKe2F6OJgyXhupN1Xo17b2m139Q==} dependencies: undici-types: 6.19.8 @@ -4621,8 +4576,8 @@ packages: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true - /@types/qs/6.9.15: - resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + /@types/qs/6.9.16: + resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==} /@types/range-parser/1.2.7: resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} @@ -4630,7 +4585,7 @@ packages: /@types/responselike/1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 18.19.49 + '@types/node': 18.19.59 dev: true /@types/rewire/2.5.30: @@ -4644,13 +4599,13 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.49 + '@types/node': 18.19.59 /@types/serve-static/1.15.7: resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/node': 18.19.49 + '@types/node': 18.19.59 '@types/send': 0.17.4 /@types/sinon-chai/3.2.5: @@ -4675,7 +4630,7 @@ packages: /@types/through/0.0.33: resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} dependencies: - '@types/node': 18.19.49 + '@types/node': 18.19.59 dev: true /@types/uuid/8.3.0: @@ -4692,20 +4647,20 @@ packages: /@types/ws/8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 18.19.49 + '@types/node': 18.19.59 dev: true /@types/yauzl/2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 18.19.49 + '@types/node': 18.19.59 optional: true /@types/yoga-layout/1.9.2: resolution: {integrity: sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==} - /@typescript-eslint/eslint-plugin/5.62.0_isoa4rovreaplj6y6c4wy6pss4: + /@typescript-eslint/eslint-plugin/5.62.0_uve4wv4elfpx2l3zvshgwzvkay: resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -4716,13 +4671,13 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 5.62.0_trrslaohprr5r73nykufww5lry + '@eslint-community/regexpp': 4.11.1 + '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0_trrslaohprr5r73nykufww5lry - '@typescript-eslint/utils': 5.62.0_trrslaohprr5r73nykufww5lry - debug: 4.3.6 - eslint: 8.57.0 + '@typescript-eslint/type-utils': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi + '@typescript-eslint/utils': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi + debug: 4.3.7 + eslint: 8.57.1 graphemer: 1.4.0 ignore: 5.3.2 natural-compare-lite: 1.4.0 @@ -4732,7 +4687,7 @@ packages: transitivePeerDependencies: - supports-color - /@typescript-eslint/parser/5.62.0_trrslaohprr5r73nykufww5lry: + /@typescript-eslint/parser/5.62.0_cfup2jodhmurb5mm6vjw5usxmi: resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -4745,8 +4700,8 @@ packages: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 - debug: 4.3.6 - eslint: 8.57.0 + debug: 4.3.7 + eslint: 8.57.1 typescript: 5.1.6 transitivePeerDependencies: - supports-color @@ -4758,7 +4713,7 @@ packages: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - /@typescript-eslint/type-utils/5.62.0_trrslaohprr5r73nykufww5lry: + /@typescript-eslint/type-utils/5.62.0_cfup2jodhmurb5mm6vjw5usxmi: resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -4769,9 +4724,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 - '@typescript-eslint/utils': 5.62.0_trrslaohprr5r73nykufww5lry - debug: 4.3.6 - eslint: 8.57.0 + '@typescript-eslint/utils': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi + debug: 4.3.7 + eslint: 8.57.1 tsutils: 3.21.0_typescript@5.1.6 typescript: 5.1.6 transitivePeerDependencies: @@ -4792,7 +4747,7 @@ packages: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.6 + debug: 4.3.7 globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.3 @@ -4801,19 +4756,19 @@ packages: transitivePeerDependencies: - supports-color - /@typescript-eslint/utils/5.62.0_trrslaohprr5r73nykufww5lry: + /@typescript-eslint/utils/5.62.0_cfup2jodhmurb5mm6vjw5usxmi: resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.57.0 + '@eslint-community/eslint-utils': 4.4.0_eslint@8.57.1 '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 - eslint: 8.57.0 + eslint: 8.57.1 eslint-scope: 5.1.1 semver: 7.6.3 transitivePeerDependencies: @@ -4834,23 +4789,23 @@ packages: resolution: {integrity: sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==} engines: {node: '>=8'} dependencies: - tslib: 2.7.0 + tslib: 2.8.0 /@wry/equality/0.5.7: resolution: {integrity: sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==} engines: {node: '>=8'} dependencies: - tslib: 2.7.0 + tslib: 2.8.0 /@wry/trie/0.3.2: resolution: {integrity: sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==} engines: {node: '>=8'} dependencies: - tslib: 2.7.0 + tslib: 2.8.0 - /@xmldom/xmldom/0.8.10: - resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} - engines: {node: '>=10.0.0'} + /@xmldom/xmldom/0.9.4: + resolution: {integrity: sha512-zglELfWx7g1cEpVMRBZ0srIQO5nEvKvraJ6CVUC/c5Ky1GgX8OIjtUj5qOweTYULYZo5VnXs/LpUUUNiGpX/rA==} + engines: {node: '>=14.6'} /accepts/1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} @@ -4867,18 +4822,18 @@ packages: acorn: 7.4.1 dev: true - /acorn-jsx/5.3.2_acorn@8.12.1: + /acorn-jsx/5.3.2_acorn@8.13.0: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.12.1 + acorn: 8.13.0 - /acorn-walk/8.3.3: - resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} + /acorn-walk/8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} dependencies: - acorn: 8.12.1 + acorn: 8.13.0 /acorn/7.4.1: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} @@ -4886,8 +4841,8 @@ packages: hasBin: true dev: true - /acorn/8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + /acorn/8.13.0: + resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==} engines: {node: '>=0.4.0'} hasBin: true @@ -4904,7 +4859,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -4912,7 +4867,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.6_supports-color@8.1.1 + debug: 4.3.7_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true @@ -4921,7 +4876,7 @@ packages: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} dependencies: - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color dev: false @@ -4955,7 +4910,7 @@ packages: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.1 + fast-uri: 3.0.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -4978,8 +4933,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - /ansi-regex/6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + /ansi-regex/6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} /ansi-styles/3.2.1: @@ -5211,8 +5166,8 @@ packages: fsevents: 2.3.2 dev: false - /aws-sdk/2.1688.0: - resolution: {integrity: sha512-L7AWt2+09uDQQfNRUaxvKEM+qHJdwBOln7xiMZg1kE1iNSGSQlwDPGYSFXwdMJDKJkeitJvhFrDhxon3cQ3ppA==} + /aws-sdk/2.1691.0: + resolution: {integrity: sha512-/F2YC+DlsY3UBM2Bdnh5RLHOPNibS/+IcjUuhP8XuctyrN+MlL+fWDAiela32LTDk7hMy4rx8MTgvbJ+0blO5g==} engines: {node: '>= 10.0.0'} requiresBuild: true dependencies: @@ -5244,8 +5199,8 @@ packages: /axios/1.7.7: resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} dependencies: - follow-redirects: 1.15.8 - form-data: 4.0.0 + follow-redirects: 1.15.9 + form-data: 4.0.1 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug @@ -5287,8 +5242,8 @@ packages: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true - /body-parser/1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + /body-parser/1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: bytes: 3.1.2 @@ -5299,7 +5254,7 @@ packages: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.11.0 + qs: 6.13.0 raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 @@ -5325,15 +5280,15 @@ packages: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true - /browserslist/4.23.3: - resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + /browserslist/4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001655 - electron-to-chromium: 1.5.13 + caniuse-lite: 1.0.30001669 + electron-to-chromium: 1.5.45 node-releases: 2.0.18 - update-browserslist-db: 1.1.0_browserslist@4.23.3 + update-browserslist-db: 1.1.1_browserslist@4.24.2 dev: true /buffer-alloc-unsafe/1.1.0: @@ -5446,8 +5401,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - /caniuse-lite/1.0.30001655: - resolution: {integrity: sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==} + /caniuse-lite/1.0.30001669: + resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==} dev: true /cardinal/2.1.1: @@ -5469,7 +5424,7 @@ packages: '@aws-cdk/cloud-assembly-schema': 2.39.1 '@aws-cdk/cx-api': 2.39.1 archiver: 5.3.2 - aws-sdk: 2.1688.0 + aws-sdk: 2.1691.0 glob: 7.2.3 mime: 2.6.0 yargs: 16.2.0 @@ -5484,17 +5439,17 @@ packages: '@cdktf/hcl2cdk': 0.19.2 '@cdktf/hcl2json': 0.19.2 '@inquirer/prompts': 2.3.1 - '@sentry/node': 7.119.0 - cdktf: 0.19.2_constructs@10.3.0 + '@sentry/node': 7.119.2 + cdktf: 0.19.2_constructs@10.4.2 ci-info: 3.9.0 - codemaker: 1.103.1 - constructs: 10.3.0 + codemaker: 1.104.0 + constructs: 10.4.2 cross-spawn: 7.0.3 https-proxy-agent: 5.0.1 ink-select-input: 4.2.2_ink@3.2.0+react@17.0.2 ink-table: 3.1.0_ink@3.2.0+react@17.0.2 - jsii: 5.5.2 - jsii-pacmak: 1.103.1 + jsii: 5.5.4 + jsii-pacmak: 1.104.0 minimatch: 5.1.6 node-fetch: 2.7.0 pidtree: 0.6.0 @@ -5515,15 +5470,12 @@ packages: - supports-color - utf-8-validate - /cdktf/0.19.2_constructs@10.3.0: + /cdktf/0.19.2_constructs@10.4.2: resolution: {integrity: sha512-FHOERDO7i2g/+pUaaZCVDKsbXEBtWYOgELL1UKjNp37DyEmtFlltdsgutVfouoil0C7W5za2IydD6sSeoH5aUw==} peerDependencies: constructs: ^10.0.25 dependencies: - archiver: 5.3.2 - constructs: 10.3.0 - json-stable-stringify: 1.1.1 - semver: 7.6.3 + constructs: 10.4.2 bundledDependencies: - archiver - json-stable-stringify @@ -5598,7 +5550,7 @@ packages: dependencies: cross-spawn: 6.0.5 es5-ext: 0.10.64 - log: 6.3.1 + log: 6.3.2 split2: 3.2.2 stream-promise: 3.2.0 dev: true @@ -5609,7 +5561,7 @@ packages: dependencies: cross-spawn: 7.0.3 es5-ext: 0.10.64 - log: 6.3.1 + log: 6.3.2 split2: 3.2.2 stream-promise: 3.2.0 dev: true @@ -5822,8 +5774,8 @@ packages: dependencies: convert-to-spaces: 1.0.2 - /codemaker/1.103.1: - resolution: {integrity: sha512-y3Ru0bZV6qiuPAt8c/Hik1dCI0dVb6lj/6gAIWckvNYVu5FS51avr3FU/mRtuPrY3b1bW/EA0pszGB/P54Bl5A==} + /codemaker/1.104.0: + resolution: {integrity: sha512-BC95gULaPN4MMeWxeLXHGatkac6LOArHMAkPkl3wQdcVa7MO4OzST6e8tY71iqA3KrgamfP0vQ34N9rDkfDyGg==} engines: {node: '>= 14.17.0'} dependencies: camelcase: 6.3.0 @@ -5885,8 +5837,8 @@ packages: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true - /commonmark/0.31.1: - resolution: {integrity: sha512-M6pbc3sRU96iiOK7rmjv/TNrXvTaOscvthUCq7YOrlvZWbqAA36fyEtBvyI3nCcEK4u+JAy9sAdtftIeXwIWig==} + /commonmark/0.31.2: + resolution: {integrity: sha512-2fRLTyb9r/2835k5cwcAwOj0DEc44FARnMp5veGsJ+mEAZdi52sNopLu07ZyElQUz058H43whzlERDIaaSw4rg==} hasBin: true dependencies: entities: 3.0.1 @@ -5925,9 +5877,8 @@ packages: yargs: 17.7.2 dev: true - /constructs/10.3.0: - resolution: {integrity: sha512-vbK8i3rIb/xwZxSpTjz3SagHn1qq9BChLEfy5Hf6fB3/2eFbrwt2n9kHwQcS0CPTRBesreeAcsJfMq2229FnbQ==} - engines: {node: '>= 16.14.0'} + /constructs/10.4.2: + resolution: {integrity: sha512-wsNxBlAott2qg8Zv87q3eYZYgheb9lchtBfjHzzLHtXbttwSrHPs1NNQbBrmbb1YZvYg2+Vh0Dor76w4mFxJkA==} /constructs/3.4.344: resolution: {integrity: sha512-Qq3upn44oGdvgasHUKWVFsrynyYrtVRd9fd8ko9cJOrFzx9eCm3iI4bhBryQqaISdausbTYUOXmoEe/YSJ16Nw==} @@ -5959,8 +5910,8 @@ packages: /cookie-signature/1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - /cookie/0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + /cookie/0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} /cookiejar/2.1.4: @@ -6092,7 +6043,7 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.26.0 dev: true /date-format/4.0.14: @@ -6126,8 +6077,8 @@ packages: supports-color: 8.1.1 dev: true - /debug/4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + /debug/4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -6135,10 +6086,10 @@ packages: supports-color: optional: true dependencies: - ms: 2.1.2 + ms: 2.1.3 - /debug/4.3.6_supports-color@8.1.1: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + /debug/4.3.7_supports-color@8.1.1: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -6146,7 +6097,7 @@ packages: supports-color: optional: true dependencies: - ms: 2.1.2 + ms: 2.1.3 supports-color: 8.1.1 /decamelize/1.2.0: @@ -6252,7 +6203,7 @@ packages: object-is: 1.1.6 object-keys: 1.1.1 object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 + regexp.prototype.flags: 1.5.3 side-channel: 1.0.6 which-boxed-primitive: 1.0.2 which-collection: 1.0.2 @@ -6353,7 +6304,7 @@ packages: hasBin: true dependencies: address: 1.2.2 - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -6415,7 +6366,7 @@ packages: dependencies: semver: 7.6.3 shelljs: 0.8.5 - typescript: 5.7.0-dev.20241008 + typescript: 5.7.0-dev.20241025 /duration/0.2.2: resolution: {integrity: sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==} @@ -6446,8 +6397,8 @@ packages: dependencies: jake: 10.9.2 - /electron-to-chromium/1.5.13: - resolution: {integrity: sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==} + /electron-to-chromium/1.5.45: + resolution: {integrity: sha512-vOzZS6uZwhhbkZbcRyiy99Wg+pYFV5hk+5YaECvx0+Z31NR3Tt5zS6dze2OepT6PCTzVzT0dIJItti+uAW5zmw==} dev: true /emoji-regex/7.0.3: @@ -6464,6 +6415,10 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} + /encodeurl/2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + /end-of-stream/1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: @@ -6517,7 +6472,7 @@ packages: object-inspect: 1.13.2 object-keys: 1.1.1 object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 + regexp.prototype.flags: 1.5.3 safe-array-concat: 1.1.2 safe-regex-test: 1.0.3 string.prototype.trim: 1.2.9 @@ -6651,13 +6606,13 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - /eslint-config-prettier/8.3.0_eslint@8.57.0: + /eslint-config-prettier/8.3.0_eslint@8.57.1: resolution: {integrity: sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.57.0 + eslint: 8.57.1 /eslint-import-resolver-node/0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} @@ -6666,8 +6621,8 @@ packages: is-core-module: 2.15.1 resolve: 1.22.8 - /eslint-module-utils/2.9.0_eslint@8.57.0: - resolution: {integrity: sha512-McVbYmwA3NEKwRQY5g4aWMdcZE5xZxV8i8l7CqJSrameuGSQJtSWaL/LxTEzSKKaCcOhlpDR8XEfYXWPrdo/ZQ==} + /eslint-module-utils/2.12.0_eslint@8.57.1: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: eslint: '*' @@ -6676,13 +6631,13 @@ packages: optional: true dependencies: debug: 3.2.7 - eslint: 8.57.0 + eslint: 8.57.1 - /eslint-plugin-import/2.30.0_eslint@8.57.0: - resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==} + /eslint-plugin-import/2.31.0_eslint@8.57.1: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} engines: {node: '>=4'} peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -6691,9 +6646,9 @@ packages: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.57.0 + eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.9.0_eslint@8.57.0 + eslint-module-utils: 2.12.0_eslint@8.57.1 hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -6702,9 +6657,10 @@ packages: object.groupby: 1.0.3 object.values: 1.2.0 semver: 6.3.1 + string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 - /eslint-plugin-prettier/3.4.0_ddm2pio5nc2sobczsauzpxvcae: + /eslint-plugin-prettier/3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y: resolution: {integrity: sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw==} engines: {node: '>=6.0.0'} peerDependencies: @@ -6715,22 +6671,22 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.57.0 - eslint-config-prettier: 8.3.0_eslint@8.57.0 + eslint: 8.57.1 + eslint-config-prettier: 8.3.0_eslint@8.57.1 prettier: 2.3.0 prettier-linter-helpers: 1.0.0 - /eslint-plugin-unicorn/44.0.2_eslint@8.57.0: + /eslint-plugin-unicorn/44.0.2_eslint@8.57.1: resolution: {integrity: sha512-GLIDX1wmeEqpGaKcnMcqRvMVsoabeF0Ton0EX4Th5u6Kmf7RM9WBl705AXFEsns56ESkEs0uyelLuUTvz9Tr0w==} engines: {node: '>=14.18'} peerDependencies: eslint: '>=8.23.1' dependencies: - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-validator-identifier': 7.25.9 ci-info: 3.9.0 clean-regexp: 1.0.0 - eslint: 8.57.0 - eslint-utils: 3.0.0_eslint@8.57.0 + eslint: 8.57.1 + eslint-utils: 3.0.0_eslint@8.57.1 esquery: 1.6.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -6764,13 +6720,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.57.0: + /eslint-utils/3.0.0_eslint@8.57.1: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.57.0 + eslint: 8.57.1 eslint-visitor-keys: 2.1.0 dev: true @@ -6791,13 +6747,14 @@ packages: /eslint/6.8.0: resolution: {integrity: sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.26.0 ajv: 6.12.6 chalk: 2.4.2 cross-spawn: 6.0.5 - debug: 4.3.6 + debug: 4.3.7 doctrine: 3.0.0 eslint-scope: 5.1.1 eslint-utils: 1.4.3 @@ -6834,23 +6791,24 @@ packages: - supports-color dev: true - /eslint/8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + /eslint/8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.57.0 - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/eslint-utils': 4.4.0_eslint@8.57.1 + '@eslint-community/regexpp': 4.11.1 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.6 + debug: 4.3.7 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -6911,8 +6869,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2_acorn@8.12.1 + acorn: 8.13.0 + acorn-jsx: 5.3.2_acorn@8.13.0 eslint-visitor-keys: 3.4.3 /esprima/4.0.1: @@ -7009,36 +6967,36 @@ packages: resolution: {integrity: sha512-wj4tLMyCVYuIIKHGt0FhCtIViBcwzWejX0EjNxveAa6dG+0XBCQhMbx+PnkLkFCxLC69qoFrxds4pIyL88inaQ==} dev: false - /express/4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + /express/4.21.1: + resolution: {integrity: sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==} engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.2 + body-parser: 1.20.3 content-disposition: 0.5.4 content-type: 1.0.5 - cookie: 0.6.0 + cookie: 0.7.1 cookie-signature: 1.0.6 debug: 2.6.9 depd: 2.0.0 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 1.2.0 + finalhandler: 1.3.1 fresh: 0.5.2 http-errors: 2.0.0 - merge-descriptors: 1.0.1 + merge-descriptors: 1.0.3 methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 - path-to-regexp: 0.1.7 + path-to-regexp: 0.1.10 proxy-addr: 2.0.7 - qs: 6.11.0 + qs: 6.13.0 range-parser: 1.2.1 safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 + send: 0.19.0 + serve-static: 1.16.2 setprototypeof: 1.2.0 statuses: 2.0.1 type-is: 1.6.18 @@ -7079,7 +7037,7 @@ packages: engines: {node: '>= 10.17.0'} hasBin: true dependencies: - debug: 4.3.6 + debug: 4.3.7 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -7097,8 +7055,8 @@ packages: deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. dependencies: '@types/chai': 4.2.18 - '@types/lodash': 4.17.7 - '@types/node': 18.19.49 + '@types/lodash': 4.17.12 + '@types/node': 18.19.59 '@types/sinon': 10.0.0 lodash: 4.17.21 mock-stdin: 1.0.0 @@ -7141,8 +7099,8 @@ packages: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} dev: true - /fast-uri/3.0.1: - resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + /fast-uri/3.0.3: + resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} /fastest-levenshtein/1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} @@ -7237,12 +7195,12 @@ packages: dependencies: to-regex-range: 5.0.1 - /finalhandler/1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + /finalhandler/1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} dependencies: debug: 2.6.9 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 @@ -7320,8 +7278,8 @@ packages: /flatted/3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - /follow-redirects/1.15.8: - resolution: {integrity: sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig==} + /follow-redirects/1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -7349,8 +7307,8 @@ packages: cross-spawn: 7.0.3 signal-exit: 4.1.0 - /form-data/4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + /form-data/4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} dependencies: asynckit: 0.4.0 @@ -7429,14 +7387,15 @@ packages: /fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - /fs2/0.3.9: - resolution: {integrity: sha512-WsOqncODWRlkjwll+73bAxVW3JPChDgaPX3DT4iTTm73UmG4VgALa7LaFblP232/DN60itkOrPZ8kaP1feksGQ==} + /fs2/0.3.15: + resolution: {integrity: sha512-T684iG2bR/3g5byqXvYYnJyqkXA7MQdlJx5DvCe0BJ5CH9aMRRc4C11bl75D1MnypvERdJ7Cft5BFpU/eClCMw==} engines: {node: '>=6'} dependencies: d: 1.0.2 deferred: 0.7.11 es5-ext: 0.10.64 event-emitter: 0.3.5 + ext: 1.7.0 ignore: 5.3.2 memoizee: 0.4.17 type: 2.7.3 @@ -7524,7 +7483,7 @@ packages: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} dependencies: - pump: 3.0.0 + pump: 3.0.2 /get-stream/6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} @@ -7561,7 +7520,7 @@ packages: jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 - package-json-from-dist: 1.0.0 + package-json-from-dist: 1.0.1 path-scurry: 1.11.1 /glob/7.2.0: @@ -7685,7 +7644,7 @@ packages: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: graphql: 16.9.0 - tslib: 2.7.0 + tslib: 2.8.0 dev: false /graphql-subscriptions/2.0.0_graphql@16.9.0: @@ -7704,7 +7663,7 @@ packages: graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: graphql: 16.9.0 - tslib: 2.7.0 + tslib: 2.8.0 /graphql/16.9.0: resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} @@ -7796,7 +7755,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color dev: false @@ -7814,7 +7773,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -7823,7 +7782,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2_supports-color@8.1.1 - debug: 4.3.6_supports-color@8.1.1 + debug: 4.3.7_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true @@ -7833,7 +7792,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color dev: false @@ -8339,7 +8298,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.26.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -8372,7 +8331,7 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: - debug: 4.3.6 + debug: 4.3.7 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -8438,105 +8397,105 @@ packages: resolution: {integrity: sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==} dev: false - /jsesc/2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} + /jsesc/3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} hasBin: true - /jsii-pacmak/1.103.1: - resolution: {integrity: sha512-2zzm/OYsdbxcaYuq4n0o2lQAPQ5Fo+T+sQJPGFeMXD0kgDZTNqXv21FdsKBKuQ/DutxTATOaZ7gTXEDK1n7/RQ==} + /jsii-pacmak/1.104.0: + resolution: {integrity: sha512-KxdYOzpBSnixZ5VjKsWvVIaRAwW4L5JJS3GE0yn5pj6Antx2sjaMvy6XsbjI1MPiOe/W8xNlRDW/XgNE+Bzt6g==} engines: {node: '>= 14.17.0'} hasBin: true peerDependencies: - jsii-rosetta: ^1.103.1 || ~5.2.0 || ~5.3.0 || ~5.4.0 || ~5.5.0 + jsii-rosetta: ^1.104.0 || ~5.2.0 || ~5.3.0 || ~5.4.0 || ~5.5.0 dependencies: - '@jsii/check-node': 1.103.1 - '@jsii/spec': 1.103.1 + '@jsii/check-node': 1.104.0 + '@jsii/spec': 1.104.0 clone: 2.1.2 - codemaker: 1.103.1 - commonmark: 0.31.1 + codemaker: 1.104.0 + commonmark: 0.31.2 escape-string-regexp: 4.0.0 fs-extra: 10.1.0 - jsii-reflect: 1.103.1 + jsii-reflect: 1.104.0 semver: 7.6.3 spdx-license-list: 6.9.0 xmlbuilder: 15.1.1 yargs: 16.2.0 - /jsii-pacmak/1.103.1_jsii-rosetta@5.5.4: - resolution: {integrity: sha512-2zzm/OYsdbxcaYuq4n0o2lQAPQ5Fo+T+sQJPGFeMXD0kgDZTNqXv21FdsKBKuQ/DutxTATOaZ7gTXEDK1n7/RQ==} + /jsii-pacmak/1.104.0_jsii-rosetta@5.5.5: + resolution: {integrity: sha512-KxdYOzpBSnixZ5VjKsWvVIaRAwW4L5JJS3GE0yn5pj6Antx2sjaMvy6XsbjI1MPiOe/W8xNlRDW/XgNE+Bzt6g==} engines: {node: '>= 14.17.0'} hasBin: true peerDependencies: - jsii-rosetta: ^1.103.1 || ~5.2.0 || ~5.3.0 || ~5.4.0 || ~5.5.0 + jsii-rosetta: ^1.104.0 || ~5.2.0 || ~5.3.0 || ~5.4.0 || ~5.5.0 dependencies: - '@jsii/check-node': 1.103.1 - '@jsii/spec': 1.103.1 + '@jsii/check-node': 1.104.0 + '@jsii/spec': 1.104.0 clone: 2.1.2 - codemaker: 1.103.1 - commonmark: 0.31.1 + codemaker: 1.104.0 + commonmark: 0.31.2 escape-string-regexp: 4.0.0 fs-extra: 10.1.0 - jsii-reflect: 1.103.1 - jsii-rosetta: 5.5.4 + jsii-reflect: 1.104.0 + jsii-rosetta: 5.5.5 semver: 7.6.3 spdx-license-list: 6.9.0 xmlbuilder: 15.1.1 yargs: 16.2.0 - /jsii-reflect/1.103.1: - resolution: {integrity: sha512-kFm09KL9dlxyxesf7mtm12+4vVaRin5YI4Eca2OOa0X28HNVpr62/n21T3BuAAhFaI0nkiUoJuBWtdOz475BSQ==} + /jsii-reflect/1.104.0: + resolution: {integrity: sha512-tBdJvLPdfrlAI7ijKmuUv48Nkk0aC26VC/wtNjVqtJmpKsDOOG1JXKiIny690FnifhgpdoHnrVE12asSpFdPfA==} engines: {node: '>= 14.17.0'} hasBin: true dependencies: - '@jsii/check-node': 1.103.1 - '@jsii/spec': 1.103.1 + '@jsii/check-node': 1.104.0 + '@jsii/spec': 1.104.0 chalk: 4.1.2 fs-extra: 10.1.0 - oo-ascii-tree: 1.103.1 + oo-ascii-tree: 1.104.0 yargs: 16.2.0 - /jsii-rosetta/5.5.4: - resolution: {integrity: sha512-hTIjmP9KmOptBm881r1aFq7CLi4agNvy4GOgbupF/K4pAFBH1hTJ4xL9NBxQxhEuWi3rRFQA72Z6aYz1AHcuIg==} + /jsii-rosetta/5.5.5: + resolution: {integrity: sha512-eXkY5eJck2XPd+xk6f4uRQ1S1d5/on2GO1H1Rr6WkJW7E51FXltpsmPaXzrAtvNd6doBNd6/X1CM4otEt/nnBA==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: - '@jsii/check-node': 1.103.0 - '@jsii/spec': 1.103.1 - '@xmldom/xmldom': 0.8.10 + '@jsii/check-node': 1.103.1 + '@jsii/spec': 1.104.0 + '@xmldom/xmldom': 0.9.4 chalk: 4.1.2 - commonmark: 0.31.1 + commonmark: 0.31.2 fast-glob: 3.3.2 - jsii: 5.5.2 + jsii: 5.5.4 semver: 7.6.3 semver-intersect: 1.5.0 - stream-json: 1.8.0 + stream-json: 1.9.0 typescript: 5.5.4 workerpool: 6.5.1 yargs: 17.7.2 transitivePeerDependencies: - supports-color - /jsii-srcmak/0.1.1233: - resolution: {integrity: sha512-KVJ1b7fc3oJLFjwsWqyP4/nzoJ+bl5IKs5LcjoMTEHm2hPUH8TZxWBVLWvZIKNtLeBQO24O4TvZZ6jwJtHwliQ==} + /jsii-srcmak/0.1.1280: + resolution: {integrity: sha512-7+pTg7JBbKIIoWvZqe66EtM2SUxbPqd72n6WF90ax/exq3/rnaCd7inPwG+nDYB0du6ahKrZ/p8whBEysZvZ/Q==} hasBin: true dependencies: fs-extra: 9.1.0 - jsii: 5.5.2 - jsii-pacmak: 1.103.1_jsii-rosetta@5.5.4 - jsii-rosetta: 5.5.4 + jsii: 5.5.4 + jsii-pacmak: 1.104.0_jsii-rosetta@5.5.5 + jsii-rosetta: 5.5.5 ncp: 2.0.0 yargs: 17.7.2 transitivePeerDependencies: - supports-color - /jsii/5.5.2: - resolution: {integrity: sha512-pXvOPzn0pK4pvNF+vl9OjeI+49YDsKnx/CRgu5SoTYNh3HFsWhNg8OukEgW+vyKw6l1ohZQLZfikKnIehe4WZQ==} + /jsii/5.5.4: + resolution: {integrity: sha512-ftEKVacc0kLrxCJyCeVJ+C5JYpUY5GBpy4ckt1LgblYQWa1CDu+5qUn2MvD5k8AwnDp36Dm6iQKislhSTOxBkA==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: '@jsii/check-node': 1.103.1 - '@jsii/spec': 1.103.1 + '@jsii/spec': 1.104.0 case: 1.6.3 chalk: 4.1.2 downlevel-dts: 0.11.0 @@ -8589,15 +8548,6 @@ packages: /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - /json-stable-stringify/1.1.1: - resolution: {integrity: sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - isarray: 2.0.5 - jsonify: 0.0.1 - object-keys: 1.1.1 - /json-stringify-safe/5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true @@ -8626,13 +8576,6 @@ packages: optionalDependencies: graceful-fs: 4.2.11 - /jsonify/0.0.1: - resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} - - /jsonschema/1.4.1: - resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} - dev: false - /jsonwebtoken/8.5.1: resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} engines: {node: '>=4', npm: '>=1.4.28'} @@ -8699,7 +8642,7 @@ packages: dependencies: '@types/express': 4.17.21 '@types/jsonwebtoken': 9.0.1 - debug: 4.3.6 + debug: 4.3.7 jose: 4.15.9 limiter: 1.1.5 lru-memoizer: 2.3.0 @@ -8863,7 +8806,7 @@ packages: /lodash/4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - /log-node/8.0.3_log@6.3.1: + /log-node/8.0.3_log@6.3.2: resolution: {integrity: sha512-1UBwzgYiCIDFs8A0rM2QdBFo8Wd8UQ0HrSTu/MNI+/2zN3NoHRj2fhplurAyuxTYUXu3Oohugq1jAn5s05u1MQ==} engines: {node: '>=10.0'} peerDependencies: @@ -8874,7 +8817,7 @@ packages: cli-sprintf-format: 1.1.1 d: 1.0.2 es5-ext: 0.10.64 - log: 6.3.1 + log: 6.3.2 sprintf-kit: 2.0.2 supports-color: 8.1.1 type: 2.7.3 @@ -8895,8 +8838,9 @@ packages: is-unicode-supported: 0.1.0 dev: true - /log/6.3.1: - resolution: {integrity: sha512-McG47rJEWOkXTDioZzQNydAVvZNeEkSyLJ1VWkFwfW+o1knW+QSi8D1KjPn/TnctV+q99lkvJNe1f0E1IjfY2A==} + /log/6.3.2: + resolution: {integrity: sha512-ek8NRg/OPvS9ISOJNWNAz5vZcpYacWNFDWNJjj5OXsc6YuKacfey6wF04cXz/tOJIVrZ2nGSkHpAY5qKtF6ISg==} + engines: {node: '>=0.12'} dependencies: d: 1.0.2 duration: 0.2.2 @@ -8912,7 +8856,7 @@ packages: engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 4.3.6 + debug: 4.3.7 flatted: 3.3.1 rfdc: 1.4.1 streamroller: 3.1.5 @@ -9031,8 +8975,8 @@ packages: timers-ext: 0.1.8 dev: true - /merge-descriptors/1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + /merge-descriptors/1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} /merge-stream/2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -9238,6 +9182,7 @@ packages: /ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true /ms/2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -9258,8 +9203,8 @@ packages: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - /nan/2.20.0: - resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==} + /nan/2.22.0: + resolution: {integrity: sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==} /nanoid/2.1.11: resolution: {integrity: sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==} @@ -9296,7 +9241,7 @@ packages: es6-set: 0.1.6 ext: 1.7.0 find-requires: 1.0.0 - fs2: 0.3.9 + fs2: 0.3.15 type: 2.7.3 dev: true @@ -9333,7 +9278,7 @@ packages: '@sinonjs/fake-timers': 6.0.1 '@sinonjs/text-encoding': 0.7.3 just-extend: 4.2.1 - path-to-regexp: 1.8.0 + path-to-regexp: 1.9.0 /nise/5.1.9: resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==} @@ -9342,14 +9287,14 @@ packages: '@sinonjs/fake-timers': 11.3.1 '@sinonjs/text-encoding': 0.7.3 just-extend: 6.2.0 - path-to-regexp: 6.2.2 + path-to-regexp: 6.3.0 dev: true /nock/11.8.2: resolution: {integrity: sha512-udrFXJ/aqPM9NmrKOcNJ67lvrs/zroNq2sbumhaMPW5JLNy/6LsWiZEwU9DiQIUHOcOCR4MPeqIG7uQNbDGExA==} engines: {node: '>= 8.0'} dependencies: - debug: 4.3.6 + debug: 4.3.7 json-stringify-safe: 5.0.1 lodash: 4.17.21 mkdirp: 0.5.6 @@ -9362,15 +9307,15 @@ packages: resolution: {integrity: sha512-XKYnqUrCwXC8DGG1xX4YH5yNIrlh9c065uaMZZHUoeUUINTOyt+x/G+ezYk0Ft6ExSREVIs+qBJDK503viTfFA==} engines: {node: '>= 10.13'} dependencies: - debug: 4.3.6 + debug: 4.3.7 json-stringify-safe: 5.0.1 propagate: 2.0.1 transitivePeerDependencies: - supports-color dev: true - /node-abi/3.67.0: - resolution: {integrity: sha512-bLn/fU/ALVBE9wj+p4Y21ZJWYFjUXLXPi/IewyLZkx3ApxKDNBWCKdReeKOtD8dWpOdDCeMyLh6ZewzcLsG2Nw==} + /node-abi/3.71.0: + resolution: {integrity: sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==} engines: {node: '>=10'} dependencies: semver: 7.6.3 @@ -9472,7 +9417,7 @@ packages: engines: {node: '>=12.0'} dependencies: ext: 1.7.0 - fs2: 0.3.9 + fs2: 0.3.15 memoizee: 0.4.17 node-fetch: 2.7.0 semver: 7.6.3 @@ -9619,8 +9564,8 @@ packages: dependencies: mimic-fn: 2.1.0 - /oo-ascii-tree/1.103.1: - resolution: {integrity: sha512-X0nmbb8xUUi637JXzCxY/K4AtO/I0fB5b7iiGaHJHu8IXBWV8TnQ4xqa0Igb/NoAg3OP2uXNhSeiTsErETOA/g==} + /oo-ascii-tree/1.104.0: + resolution: {integrity: sha512-2cScXtwxt5WVIi3+vdkbKoHSeRepRcibnFhdV2ojGxVvj1KU0m0EHfBCsal6XEg1vBkMgTIxnxVd+E/l/Fam3w==} engines: {node: '>= 14.17.0'} /open/7.4.2: @@ -9779,8 +9724,8 @@ packages: release-zalgo: 1.0.0 dev: true - /package-json-from-dist/1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + /package-json-from-dist/1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} /pako/1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -9800,7 +9745,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.26.0 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -9864,16 +9809,16 @@ packages: lru-cache: 10.4.3 minipass: 7.1.2 - /path-to-regexp/0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + /path-to-regexp/0.1.10: + resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} - /path-to-regexp/1.8.0: - resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} + /path-to-regexp/1.9.0: + resolution: {integrity: sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==} dependencies: isarray: 0.0.1 - /path-to-regexp/6.2.2: - resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} + /path-to-regexp/6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} dev: true /path-type/4.0.0: @@ -9895,8 +9840,8 @@ packages: /pend/1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - /picocolors/1.1.0: - resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + /picocolors/1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -9968,8 +9913,8 @@ packages: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 3.67.0 - pump: 3.0.0 + node-abi: 3.71.0 + pump: 3.0.2 rc: 1.2.8 simple-get: 4.0.1 tar-fs: 2.1.1 @@ -10019,7 +9964,7 @@ packages: engines: {node: '>=10.0'} dependencies: ext: 1.7.0 - fs2: 0.3.9 + fs2: 0.3.15 memoizee: 0.4.17 type: 2.7.3 dev: true @@ -10074,8 +10019,8 @@ packages: /pseudomap/1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - /pump/3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + /pump/3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} dependencies: end-of-stream: 1.4.4 once: 1.4.0 @@ -10090,18 +10035,11 @@ packages: /pure-rand/6.1.0: resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - /qs/6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - dependencies: - side-channel: 1.0.6 - /qs/6.13.0: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} dependencies: side-channel: 1.0.6 - dev: true /querystring/0.2.0: resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} @@ -10274,8 +10212,8 @@ packages: hasBin: true dev: true - /regexp.prototype.flags/1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + /regexp.prototype.flags/1.5.3: + resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -10374,17 +10312,17 @@ packages: /rhea-promise/3.0.3: resolution: {integrity: sha512-a875P5YcMkePSTEWMsnmCQS7Y4v/XvIw7ZoMtJxqtQRZsqSA6PsZxuz4vktyRykPuUgdNsA6F84dS3iEXZoYnQ==} dependencies: - debug: 4.3.6 - rhea: 3.0.2 - tslib: 2.7.0 + debug: 4.3.7 + rhea: 3.0.3 + tslib: 2.8.0 transitivePeerDependencies: - supports-color dev: false - /rhea/3.0.2: - resolution: {integrity: sha512-0G1ZNM9yWin8VLvTxyISKH6KfR6gl1TW/1+5yMKPf2r1efhkzTLze09iFtT2vpDjuWIVtSmXz8r18lk/dO8qwQ==} + /rhea/3.0.3: + resolution: {integrity: sha512-Y7se0USZQu6dErWSZ7eCmSVTMscyVfz/0+jjhBF7f9PqYfEXdIoQpPkC9Strks6wF9WytuBhn8w8Nz/tmBWpgA==} dependencies: - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color dev: false @@ -10447,7 +10385,7 @@ packages: /rxjs/7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.7.0 + tslib: 2.8.0 dev: true /safe-array-concat/1.1.2: @@ -10525,8 +10463,8 @@ packages: engines: {node: '>=10'} hasBin: true - /send/0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + /send/0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} dependencies: debug: 2.6.9 @@ -10549,14 +10487,14 @@ packages: randombytes: 2.1.0 dev: true - /serve-static/1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + /serve-static/1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} dependencies: - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 0.18.0 + send: 0.19.0 /serverless-artillery/0.5.2: resolution: {integrity: sha512-RD3ezSJrleXbSOC4PV2WGXz0JfEvn7IWZuv010z7tzYwxohOe7ja3fju0xKnQfeo9MFa8bF+YWH87pnjg+qkTg==} @@ -10589,7 +10527,7 @@ packages: ajv: 8.17.1 ajv-formats: 2.1.1 archiver: 5.3.0 - aws-sdk: 2.1688.0 + aws-sdk: 2.1691.0 bluebird: 3.7.2 cachedir: 2.4.0 chalk: 4.1.2 @@ -10741,12 +10679,12 @@ packages: once: 1.4.0 simple-concat: 1.0.1 - /simple-git/3.26.0_supports-color@8.1.1: - resolution: {integrity: sha512-5tbkCSzuskR6uA7uA23yjasmA0RzugVo8QM2bpsnxkrgP13eisFT7TMS4a+xKEJvbmr4qf+l0WT3eKa9IxxUyw==} + /simple-git/3.27.0_supports-color@8.1.1: + resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==} dependencies: '@kwsites/file-exists': 1.1.1_supports-color@8.1.1 '@kwsites/promise-deferred': 1.1.1 - debug: 4.3.6_supports-color@8.1.1 + debug: 4.3.7_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true @@ -10778,7 +10716,7 @@ packages: dependencies: '@sinonjs/commons': 3.0.1 '@sinonjs/fake-timers': 10.3.0 - '@sinonjs/samsam': 8.0.0 + '@sinonjs/samsam': 8.0.2 diff: 5.2.0 nise: 5.1.9 supports-color: 7.2.0 @@ -10931,7 +10869,7 @@ packages: resolution: {integrity: sha512-Xnt9/HHHYfjZ7NeQLvuQDyL1LnbsbddgMFKCuaQKwGCdJm8LnstZIXop+uOY36UR1UXXoHXfMbC1KlVdVd2JLA==} engines: {node: '>=8.0.0'} dependencies: - debug: 4.3.6 + debug: 4.3.7 strip-ansi: 6.0.1 transitivePeerDependencies: - supports-color @@ -10955,8 +10893,8 @@ packages: /stream-chain/2.2.5: resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==} - /stream-json/1.8.0: - resolution: {integrity: sha512-HZfXngYHUAr1exT4fxlbc1IOce1RYxp2ldeaf97LYCOPSoOqY/1Psp7iGvpb+6JIOgkra9zDYnPX01hGAHzEPw==} + /stream-json/1.9.0: + resolution: {integrity: sha512-TqnfW7hRTKje7UobBzXZJ2qOEDJvdcSVgVIK/fopC03xINFuFqQs8RVjyDT4ry7TmOo2ueAXwpXXXG4tNgtvoQ==} dependencies: stream-chain: 2.2.5 @@ -10973,7 +10911,7 @@ packages: engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 4.3.6 + debug: 4.3.7 fs-extra: 8.1.0 transitivePeerDependencies: - supports-color @@ -11056,7 +10994,7 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} dependencies: - ansi-regex: 6.0.1 + ansi-regex: 6.1.0 /strip-bom/3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} @@ -11130,9 +11068,9 @@ packages: dependencies: component-emitter: 1.3.1 cookiejar: 2.1.4 - debug: 4.3.6_supports-color@8.1.1 + debug: 4.3.7_supports-color@8.1.1 fast-safe-stringify: 2.1.1 - form-data: 4.0.0 + form-data: 4.0.1 formidable: 2.1.2 methods: 1.1.2 mime: 2.6.0 @@ -11213,7 +11151,7 @@ packages: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 - pump: 3.0.0 + pump: 3.0.2 tar-stream: 2.2.0 /tar-stream/1.6.2: @@ -11294,10 +11232,6 @@ packages: resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} dev: true - /to-fast-properties/2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - /to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -11323,8 +11257,8 @@ packages: /tr46/0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - /traverse/0.6.9: - resolution: {integrity: sha512-7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg==} + /traverse/0.6.10: + resolution: {integrity: sha512-hN4uFRxbK+PX56DxYiGHsTn2dME3TVr9vbNqlQGcGcPhJAn+tdP126iA+TArMpI4YSgnTkMWyoLl5bf81Hi5TA==} engines: {node: '>= 0.4'} dependencies: gopd: 1.0.1 @@ -11348,7 +11282,7 @@ packages: resolution: {integrity: sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==} engines: {node: '>=8'} dependencies: - tslib: 2.7.0 + tslib: 2.8.0 /ts-morph/19.0.0: resolution: {integrity: sha512-D6qcpiJdn46tUqV45vr5UGM2dnIEuTGNxVhg0sk5NX11orcouwj6i1bMqZIz2mZTZB1Hcgy7C3oEVhAT+f6mbQ==} @@ -11357,7 +11291,7 @@ packages: code-block-writer: 12.0.0 dev: false - /ts-node/10.9.2_45rz2fqkboejwckriajjmu7obu: + /ts-node/10.9.2_5aurqvvi2kcpaxpbv224uoiqwq: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -11376,9 +11310,9 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.49 - acorn: 8.12.1 - acorn-walk: 8.3.3 + '@types/node': 18.19.59 + acorn: 8.13.0 + acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -11399,8 +11333,8 @@ packages: strip-ansi: 6.0.1 dev: true - /tsconfck/3.1.3_typescript@5.1.6: - resolution: {integrity: sha512-ulNZP1SVpRDesxeMLON/LtWM8HIgAJEIVpVVhBM6gsmvQ8+Rh+ZG7FWGvHh7Ah3pRABwVJWklWCr/BTZSv0xnQ==} + /tsconfck/3.1.4_typescript@5.1.6: + resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==} engines: {node: ^18 || >=20} hasBin: true peerDependencies: @@ -11423,8 +11357,8 @@ packages: /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - /tslib/2.7.0: - resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + /tslib/2.8.0: + resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} /tsutils/3.21.0_typescript@5.1.6: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -11562,8 +11496,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript/5.7.0-dev.20241008: - resolution: {integrity: sha512-FZzeU/lVGUgdl8+Rl2MChV2+eD0ZciK1LuVeoL8+P8ePsJjduRhGrWGRBHvy5KQOhZpxm0QdjrcnGkGDQEphvQ==} + /typescript/5.7.0-dev.20241025: + resolution: {integrity: sha512-2Byc/3ywylhhYPpag3uxhRxz6bZSKyS7jBsRkkFFhs0DeH3xlkQu+TElWOvhxtAfPNm7nB74xAqs++a3Iv18cg==} engines: {node: '>=14.17'} hasBin: true @@ -11588,8 +11522,8 @@ packages: /undici-types/6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - /undici/6.19.8: - resolution: {integrity: sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==} + /undici/6.20.1: + resolution: {integrity: sha512-AjQF1QsmqfJys+LXfGTNum+qw4S88CojRInG/6t31W/1fk6G59s92bnAvGz5Cmur+kQv2SURXEvvudLmbrE8QA==} engines: {node: '>=18.17'} dev: false @@ -11615,15 +11549,15 @@ packages: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} - /update-browserslist-db/1.1.0_browserslist@4.23.3: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + /update-browserslist-db/1.1.1_browserslist@4.24.2: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.23.3 + browserslist: 4.24.2 escalade: 3.2.0 - picocolors: 1.1.0 + picocolors: 1.1.1 dev: true /uri-js/4.4.1: @@ -11704,7 +11638,7 @@ packages: engines: {node: '>=0.8.0'} hasBin: true dependencies: - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color dev: true @@ -11943,8 +11877,8 @@ packages: engines: {node: '>= 6'} dev: false - /yaml/2.5.1: - resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} + /yaml/2.6.0: + resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} engines: {node: '>= 14'} hasBin: true dev: false diff --git a/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/application-synth.ts b/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/application-synth.ts index be4b1e867..ef13edd33 100644 --- a/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/application-synth.ts +++ b/packages/framework-provider-azure-infrastructure/src/infrastructure/synth/application-synth.ts @@ -34,6 +34,7 @@ import { TerraformSubnet } from './gateway/terraform-subnet' import { TerraformSubnetSecurity } from './gateway/terraform-subnet-security' import { BASIC_SERVICE_PLAN } from '../constants' import { TerraformFunctionAppSettings } from './terraform-function-app-settings' +import { configuration } from '../helper/params' export class ApplicationSynth { readonly config: BoosterConfig @@ -53,6 +54,7 @@ export class ApplicationSynth { this.config = readProjectConfig(process.cwd()) const azurermProvider = new AzurermProvider(terraformStack, 'azureFeature', { features: [{}], + subscriptionId: configuration.subscriptionId, }) const appPrefix = buildAppPrefix(this.config) const resourceGroupName = createResourceGroupName(this.config.appName, this.config.environmentName) From 184c5c2219b0560d09a61540ff01cacb603b205c Mon Sep 17 00:00:00 2001 From: GITHUBACTION Date: Tue, 29 Oct 2024 18:40:31 +0000 Subject: [PATCH 41/47] Bump versions [skip ci] --- .../fix_azure_deploy_2024-10-25-15-07.json | 10 ------- common/config/rush/version-policies.json | 2 +- packages/application-tester/package.json | 6 ++-- packages/cli/package.json | 10 +++---- .../framework-common-helpers/package.json | 6 ++-- packages/framework-core/CHANGELOG.json | 28 +++++++++++++++++++ packages/framework-core/CHANGELOG.md | 9 +++++- packages/framework-core/package.json | 10 +++---- .../framework-integration-tests/package.json | 28 +++++++++---------- .../package.json | 10 +++---- packages/framework-provider-aws/package.json | 8 +++--- .../package.json | 12 ++++---- .../framework-provider-azure/package.json | 8 +++--- .../package.json | 10 +++---- .../framework-provider-local/package.json | 8 +++--- packages/framework-types/package.json | 6 ++-- packages/metadata-booster/package.json | 4 +-- tools/eslint-config/package.json | 2 +- 18 files changed, 101 insertions(+), 76 deletions(-) delete mode 100644 common/changes/@boostercloud/framework-core/fix_azure_deploy_2024-10-25-15-07.json diff --git a/common/changes/@boostercloud/framework-core/fix_azure_deploy_2024-10-25-15-07.json b/common/changes/@boostercloud/framework-core/fix_azure_deploy_2024-10-25-15-07.json deleted file mode 100644 index 815a8b244..000000000 --- a/common/changes/@boostercloud/framework-core/fix_azure_deploy_2024-10-25-15-07.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@boostercloud/framework-core", - "comment": "Add mandatory subscriptionId property", - "type": "patch" - } - ], - "packageName": "@boostercloud/framework-core" -} \ No newline at end of file diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 79733f20c..99de11671 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -103,6 +103,6 @@ "definitionName": "lockStepVersion", "policyName": "booster", "mainProject": "@boostercloud/framework-core", - "version": "2.18.4" + "version": "2.18.5" } ] diff --git a/packages/application-tester/package.json b/packages/application-tester/package.json index b2a727a69..c8bc41d25 100644 --- a/packages/application-tester/package.json +++ b/packages/application-tester/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/application-tester", - "version": "2.18.4", + "version": "2.18.5", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "application-tester" @@ -36,7 +36,7 @@ }, "dependencies": { "@apollo/client": "3.7.13", - "@boostercloud/framework-types": "workspace:^2.18.4", + "@boostercloud/framework-types": "workspace:^2.18.5", "cross-fetch": "3.1.5", "graphql": "^16.6.0", "jsonwebtoken": "9.0.1", @@ -48,7 +48,7 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.4", + "@boostercloud/eslint-config": "workspace:^2.18.5", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", "eslint": "^8.23.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index ce2a32d42..f2978db56 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/cli", "description": "CLI of the Booster Framework, the next level of abstraction for cloud-native applications", - "version": "2.18.4", + "version": "2.18.5", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -12,8 +12,8 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-core": "workspace:^2.18.4", - "@boostercloud/framework-types": "workspace:^2.18.4", + "@boostercloud/framework-core": "workspace:^2.18.5", + "@boostercloud/framework-types": "workspace:^2.18.5", "@oclif/core": "3.15.0", "@oclif/plugin-help": "^5", "chalk": "^2.4.2", @@ -30,8 +30,8 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.4", - "@boostercloud/application-tester": "workspace:^2.18.4", + "@boostercloud/eslint-config": "workspace:^2.18.5", + "@boostercloud/application-tester": "workspace:^2.18.5", "@oclif/test": "^3.0.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", diff --git a/packages/framework-common-helpers/package.json b/packages/framework-common-helpers/package.json index 9102b223e..433592096 100644 --- a/packages/framework-common-helpers/package.json +++ b/packages/framework-common-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-common-helpers", - "version": "2.18.4", + "version": "2.18.5", "description": "Contains Booster common helpers used by the core and provider packages", "keywords": [ "framework-common-helpers" @@ -36,14 +36,14 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-types": "workspace:^2.18.4", + "@boostercloud/framework-types": "workspace:^2.18.5", "child-process-promise": "^2.2.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "class-transformer": "~0.5.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.4", + "@boostercloud/eslint-config": "workspace:^2.18.5", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/child-process-promise": "^2.2.1", diff --git a/packages/framework-core/CHANGELOG.json b/packages/framework-core/CHANGELOG.json index 98a6dc898..a4ac6ee61 100644 --- a/packages/framework-core/CHANGELOG.json +++ b/packages/framework-core/CHANGELOG.json @@ -1,6 +1,34 @@ { "name": "@boostercloud/framework-core", "entries": [ + { + "version": "2.18.5", + "tag": "@boostercloud/framework-core_v2.18.5", + "date": "Tue, 29 Oct 2024 18:40:31 GMT", + "comments": { + "patch": [ + { + "comment": "Add mandatory subscriptionId property", + "author": "Mario Castro Squella ", + "commit": "cedee762449c2443fcc29901cd6e5d7a35d48d61" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@boostercloud/framework-common-helpers\" from `^2.18.4` to `^2.18.5`" + }, + { + "comment": "Updating dependency \"@boostercloud/framework-types\" from `^2.18.4` to `^2.18.5`" + }, + { + "comment": "Updating dependency \"@boostercloud/metadata-booster\" from `^2.18.4` to `^2.18.5`" + }, + { + "comment": "Updating dependency \"@boostercloud/eslint-config\" from `^2.18.4` to `^2.18.5`" + } + ] + } + }, { "version": "2.18.4", "tag": "@boostercloud/framework-core_v2.18.4", diff --git a/packages/framework-core/CHANGELOG.md b/packages/framework-core/CHANGELOG.md index a1f985969..30801b25f 100644 --- a/packages/framework-core/CHANGELOG.md +++ b/packages/framework-core/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @boostercloud/framework-core -This log was last generated on Tue, 08 Oct 2024 15:06:52 GMT and should not be manually modified. +This log was last generated on Tue, 29 Oct 2024 18:40:31 GMT and should not be manually modified. + +## 2.18.5 +Tue, 29 Oct 2024 18:40:31 GMT + +### Patches + +- Add mandatory subscriptionId property ## 2.18.4 Tue, 08 Oct 2024 15:06:52 GMT diff --git a/packages/framework-core/package.json b/packages/framework-core/package.json index 75a0af21e..f01b03ac2 100644 --- a/packages/framework-core/package.json +++ b/packages/framework-core/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-core", - "version": "2.18.4", + "version": "2.18.5", "description": "Library for your Booster apps", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", @@ -37,8 +37,8 @@ "graphql": "^16.6.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.4", - "@boostercloud/framework-types": "workspace:^2.18.4", + "@boostercloud/framework-common-helpers": "workspace:^2.18.5", + "@boostercloud/framework-types": "workspace:^2.18.5", "fp-ts": "^2.11.0", "graphql-scalars": "^1.17.0", "graphql-subscriptions": "2.0.0", @@ -61,8 +61,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/metadata-booster": "workspace:^2.18.4", - "@boostercloud/eslint-config": "workspace:^2.18.4", + "@boostercloud/metadata-booster": "workspace:^2.18.5", + "@boostercloud/eslint-config": "workspace:^2.18.5", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-integration-tests/package.json b/packages/framework-integration-tests/package.json index 9e907d58c..f33d96796 100644 --- a/packages/framework-integration-tests/package.json +++ b/packages/framework-integration-tests/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-integration-tests", "description": "Example project for Booster", - "version": "2.18.4", + "version": "2.18.5", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -9,12 +9,12 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.4", - "@boostercloud/framework-core": "workspace:^2.18.4", - "@boostercloud/framework-provider-aws": "workspace:^2.18.4", - "@boostercloud/framework-provider-azure": "workspace:^2.18.4", - "@boostercloud/framework-provider-local": "workspace:^2.18.4", - "@boostercloud/framework-types": "workspace:^2.18.4", + "@boostercloud/framework-common-helpers": "workspace:^2.18.5", + "@boostercloud/framework-core": "workspace:^2.18.5", + "@boostercloud/framework-provider-aws": "workspace:^2.18.5", + "@boostercloud/framework-provider-azure": "workspace:^2.18.5", + "@boostercloud/framework-provider-local": "workspace:^2.18.5", + "@boostercloud/framework-types": "workspace:^2.18.5", "aws-sdk": "2.853.0", "graphql": "^16.6.0", "tslib": "^2.4.0", @@ -33,13 +33,13 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.4", - "@boostercloud/application-tester": "workspace:^2.18.4", - "@boostercloud/cli": "workspace:^2.18.4", - "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.18.4", - "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.18.4", - "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.18.4", - "@boostercloud/metadata-booster": "workspace:^2.18.4", + "@boostercloud/eslint-config": "workspace:^2.18.5", + "@boostercloud/application-tester": "workspace:^2.18.5", + "@boostercloud/cli": "workspace:^2.18.5", + "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.18.5", + "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.18.5", + "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.18.5", + "@boostercloud/metadata-booster": "workspace:^2.18.5", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-aws-infrastructure/package.json b/packages/framework-provider-aws-infrastructure/package.json index a6b531531..64c23d5cb 100644 --- a/packages/framework-provider-aws-infrastructure/package.json +++ b/packages/framework-provider-aws-infrastructure/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws-infrastructure", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.18.4", + "version": "2.18.5", "description": "Handle the Booster deployment process to AWS", "keywords": [ "framework-provider-aws-infrastructure" @@ -41,9 +41,9 @@ "@aws-cdk/aws-s3-deployment": "^1.170.0", "@aws-cdk/core": "^1.170.0", "@aws-cdk/cx-api": "^1.170.0", - "@boostercloud/framework-common-helpers": "workspace:^2.18.4", - "@boostercloud/framework-provider-aws": "workspace:^2.18.4", - "@boostercloud/framework-types": "workspace:^2.18.4", + "@boostercloud/framework-common-helpers": "workspace:^2.18.5", + "@boostercloud/framework-provider-aws": "workspace:^2.18.5", + "@boostercloud/framework-types": "workspace:^2.18.5", "constructs": "^3.3.69", "aws-cdk": "^1.170.0", "aws-sdk": "2.853.0", @@ -69,7 +69,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.4", + "@boostercloud/eslint-config": "workspace:^2.18.5", "@types/aws-lambda": "8.10.48", "@types/aws-sdk": "2.7.0", "@types/chai": "4.2.18", diff --git a/packages/framework-provider-aws/package.json b/packages/framework-provider-aws/package.json index 077df29ac..8a8d7f36a 100644 --- a/packages/framework-provider-aws/package.json +++ b/packages/framework-provider-aws/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.18.4", + "version": "2.18.5", "description": "Handle Booster's integration with AWS", "keywords": [ "framework-provider-aws" @@ -24,8 +24,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.4", - "@boostercloud/framework-types": "workspace:^2.18.4", + "@boostercloud/framework-common-helpers": "workspace:^2.18.5", + "@boostercloud/framework-types": "workspace:^2.18.5", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4" }, @@ -43,7 +43,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.4", + "@boostercloud/eslint-config": "workspace:^2.18.5", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-azure-infrastructure/package.json b/packages/framework-provider-azure-infrastructure/package.json index c5f4e0439..50eba1c10 100644 --- a/packages/framework-provider-azure-infrastructure/package.json +++ b/packages/framework-provider-azure-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure-infrastructure", - "version": "2.18.4", + "version": "2.18.5", "description": "Handle the Booster deployment process to Azure", "keywords": [ "framework-provider-azure-infrastructure" @@ -25,10 +25,10 @@ "dependencies": { "@azure/arm-appservice": "^13.0.0", "@azure/cosmos": "^4.0.0", - "@boostercloud/framework-common-helpers": "workspace:^2.18.4", - "@boostercloud/framework-core": "workspace:^2.18.4", - "@boostercloud/framework-provider-azure": "workspace:^2.18.4", - "@boostercloud/framework-types": "workspace:^2.18.4", + "@boostercloud/framework-common-helpers": "workspace:^2.18.5", + "@boostercloud/framework-core": "workspace:^2.18.5", + "@boostercloud/framework-provider-azure": "workspace:^2.18.5", + "@boostercloud/framework-types": "workspace:^2.18.5", "@cdktf/provider-azurerm": "13.3.0", "@cdktf/provider-time": "9.0.2", "@types/archiver": "5.1.0", @@ -67,7 +67,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.4", + "@boostercloud/eslint-config": "workspace:^2.18.5", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-azure/package.json b/packages/framework-provider-azure/package.json index f004b849d..a318914df 100644 --- a/packages/framework-provider-azure/package.json +++ b/packages/framework-provider-azure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure", - "version": "2.18.4", + "version": "2.18.5", "description": "Handle Booster's integration with Azure", "keywords": [ "framework-provider-azure" @@ -27,14 +27,14 @@ "@azure/functions": "^1.2.2", "@azure/identity": "~2.1.0", "@azure/event-hubs": "5.11.1", - "@boostercloud/framework-common-helpers": "workspace:^2.18.4", - "@boostercloud/framework-types": "workspace:^2.18.4", + "@boostercloud/framework-common-helpers": "workspace:^2.18.5", + "@boostercloud/framework-types": "workspace:^2.18.5", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "@azure/web-pubsub": "~1.1.0" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.4", + "@boostercloud/eslint-config": "workspace:^2.18.5", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-local-infrastructure/package.json b/packages/framework-provider-local-infrastructure/package.json index a9ca4b774..09c5bbdf2 100644 --- a/packages/framework-provider-local-infrastructure/package.json +++ b/packages/framework-provider-local-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local-infrastructure", - "version": "2.18.4", + "version": "2.18.5", "description": "Handle the Booster running process of the local runtime", "keywords": [ "framework-provider-local-infrastructure" @@ -23,9 +23,9 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.4", - "@boostercloud/framework-provider-local": "workspace:^2.18.4", - "@boostercloud/framework-types": "workspace:^2.18.4", + "@boostercloud/framework-common-helpers": "workspace:^2.18.5", + "@boostercloud/framework-provider-local": "workspace:^2.18.5", + "@boostercloud/framework-types": "workspace:^2.18.5", "cors": "2.8.5", "express": "^4.19.2", "node-schedule": "^2.1.0", @@ -46,7 +46,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.4", + "@boostercloud/eslint-config": "workspace:^2.18.5", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/cors": "^2.8.12", diff --git a/packages/framework-provider-local/package.json b/packages/framework-provider-local/package.json index 2d9cd3fd4..074b6a5fe 100644 --- a/packages/framework-provider-local/package.json +++ b/packages/framework-provider-local/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local", - "version": "2.18.4", + "version": "2.18.5", "description": "Debug your Booster projects locally", "keywords": [ "framework-provider-local" @@ -23,8 +23,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.4", - "@boostercloud/framework-types": "workspace:^2.18.4", + "@boostercloud/framework-common-helpers": "workspace:^2.18.5", + "@boostercloud/framework-types": "workspace:^2.18.5", "@seald-io/nedb": "4.0.2", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", @@ -44,7 +44,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.4", + "@boostercloud/eslint-config": "workspace:^2.18.5", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/express": "^4.17.21", diff --git a/packages/framework-types/package.json b/packages/framework-types/package.json index ffabb24b3..3c0354601 100644 --- a/packages/framework-types/package.json +++ b/packages/framework-types/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-types", - "version": "2.18.4", + "version": "2.18.5", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "framework-types" @@ -54,8 +54,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.4", - "@boostercloud/metadata-booster": "workspace:^2.18.4", + "@boostercloud/eslint-config": "workspace:^2.18.5", + "@boostercloud/metadata-booster": "workspace:^2.18.5", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/mocha": "10.0.1", diff --git a/packages/metadata-booster/package.json b/packages/metadata-booster/package.json index a685662d2..49f31dbb5 100644 --- a/packages/metadata-booster/package.json +++ b/packages/metadata-booster/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/metadata-booster", - "version": "2.18.4", + "version": "2.18.5", "description": "Emits detailed metadata of your types. You can then get it in runtime to deal with schema-aware operation, like defining GraphQL schemas, ORM operations, etc.", "repository": "https://github.com/boostercloud/booster.git", "keywords": [ @@ -38,7 +38,7 @@ "eslint-config-prettier": "8.3.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "3.4.0", - "@boostercloud/eslint-config": "workspace:^2.18.4", + "@boostercloud/eslint-config": "workspace:^2.18.5", "@types/node": "^18.18.2", "ts-node": "^10.9.1", "ts-patch": "3.1.2", diff --git a/tools/eslint-config/package.json b/tools/eslint-config/package.json index 8b0e9ca6b..f80da81f1 100644 --- a/tools/eslint-config/package.json +++ b/tools/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/eslint-config", - "version": "2.18.4", + "version": "2.18.5", "description": "Shared eslint rules", "main": "index.js", "publishConfig": { From 55cc944003d23a62fec52ee945fc2bcd693f52aa Mon Sep 17 00:00:00 2001 From: Mario Castro Squella Date: Mon, 25 Nov 2024 11:58:51 -0300 Subject: [PATCH 42/47] Fix optimistic concurrency issue with read model projections (#1558) * Add optimisticConcurrencyValue to boosterMetadata in search method * Add rush change file --------- Co-authored-by: Castro, Mario --- ...timistic_concurrency_2024-11-24-17-37.json | 10 + common/config/rush/pnpm-lock.yaml | 962 +++++++++--------- .../src/helpers/query-helper.ts | 7 + 3 files changed, 512 insertions(+), 467 deletions(-) create mode 100644 common/changes/@boostercloud/framework-core/fix_optimistic_concurrency_2024-11-24-17-37.json diff --git a/common/changes/@boostercloud/framework-core/fix_optimistic_concurrency_2024-11-24-17-37.json b/common/changes/@boostercloud/framework-core/fix_optimistic_concurrency_2024-11-24-17-37.json new file mode 100644 index 000000000..c839e37a6 --- /dev/null +++ b/common/changes/@boostercloud/framework-core/fix_optimistic_concurrency_2024-11-24-17-37.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@boostercloud/framework-core", + "comment": "Fixes optimistic concurrency issue found when projecting read models", + "type": "patch" + } + ], + "packageName": "@boostercloud/framework-core" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index a75b8e4e0..e855c03fe 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,8 +8,8 @@ importers: ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^2.18.4 - '@boostercloud/framework-types': workspace:^2.18.4 + '@boostercloud/eslint-config': workspace:^2.18.5 + '@boostercloud/framework-types': workspace:^2.18.5 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.18.2 @@ -46,12 +46,12 @@ importers: jsonwebtoken: 9.0.1 sinon: 9.2.3 subscriptions-transport-ws: 0.11.0_graphql@16.9.0 - tslib: 2.8.0 + tslib: 2.8.1 ws: 8.17.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/jsonwebtoken': 9.0.1 - '@types/node': 18.19.59 + '@types/node': 18.19.65 '@types/ws': 8.5.4 '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi @@ -62,7 +62,7 @@ importers: eslint-plugin-import: 2.31.0_eslint@8.57.1 eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 - fast-check: 3.22.0 + fast-check: 3.23.1 prettier: 2.3.0 rimraf: 5.0.10 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 @@ -70,10 +70,10 @@ importers: ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^2.18.4 - '@boostercloud/eslint-config': workspace:^2.18.4 - '@boostercloud/framework-core': workspace:^2.18.4 - '@boostercloud/framework-types': workspace:^2.18.4 + '@boostercloud/application-tester': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.5 + '@boostercloud/framework-core': workspace:^2.18.5 + '@boostercloud/framework-types': workspace:^2.18.5 '@effect-ts/core': ^0.60.4 '@oclif/core': 3.15.0 '@oclif/plugin-help': ^5 @@ -129,7 +129,7 @@ importers: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@oclif/core': 3.15.0_typescript@5.1.6 - '@oclif/plugin-help': 5.2.20_5aurqvvi2kcpaxpbv224uoiqwq + '@oclif/plugin-help': 5.2.20_jtknrvqdlvipgdxn6jbxe7dreq chalk: 2.4.2 child-process-promise: 2.2.1 execa: 2.1.0 @@ -140,7 +140,7 @@ importers: mustache: 4.1.0 ora: 3.4.0 ts-morph: 19.0.0 - tslib: 2.8.0 + tslib: 2.8.1 devDependencies: '@boostercloud/application-tester': link:../application-tester '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -154,7 +154,7 @@ importers: '@types/inquirer': 6.5.0 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.59 + '@types/node': 18.19.65 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -177,14 +177,14 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq + ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.4 - '@boostercloud/framework-types': workspace:^2.18.4 + '@boostercloud/eslint-config': workspace:^2.18.5 + '@boostercloud/framework-types': workspace:^2.18.5 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -223,7 +223,7 @@ importers: '@effect-ts/core': 0.60.5 child-process-promise: 2.2.1 class-transformer: 0.5.1 - tslib: 2.8.0 + tslib: 2.8.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/chai': 4.2.18 @@ -231,7 +231,7 @@ importers: '@types/child-process-promise': 2.2.6 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.59 + '@types/node': 18.19.65 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -253,15 +253,15 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq + ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq typescript: 5.1.6 ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.4 - '@boostercloud/framework-common-helpers': workspace:^2.18.4 - '@boostercloud/framework-types': workspace:^2.18.4 - '@boostercloud/metadata-booster': workspace:^2.18.4 + '@boostercloud/eslint-config': workspace:^2.18.5 + '@boostercloud/framework-common-helpers': workspace:^2.18.5 + '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/metadata-booster': workspace:^2.18.5 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 '@effect/platform-node': 0.45.26 @@ -323,10 +323,10 @@ importers: '@effect/platform-node': 0.45.26_cahjalgelcnk6vcj6x2oc46m3a '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_lr76zgfnixwkqlplfmwtcihp7a + '@effect/schema': 0.64.18_k5iqzw5vszbbtmhrto2doihvji '@effect/typeclass': 0.23.17_effect@2.4.17 effect: 2.4.17 - fast-check: 3.22.0 + fast-check: 3.23.1 fp-ts: 2.16.9 graphql-scalars: 1.23.0_graphql@16.9.0 graphql-subscriptions: 2.0.0_graphql@16.9.0 @@ -335,7 +335,7 @@ importers: jsonwebtoken: 9.0.1 jwks-rsa: 3.0.1 reflect-metadata: 0.1.13 - tslib: 2.8.0 + tslib: 2.8.1 validator: 13.7.0 ws: 8.17.1 devDependencies: @@ -347,7 +347,7 @@ importers: '@types/inflected': 1.1.29 '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 - '@types/node': 18.19.59 + '@types/node': 18.19.65 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/validator': 13.1.3 @@ -371,26 +371,26 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq + ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^2.18.4 - '@boostercloud/cli': workspace:^2.18.4 - '@boostercloud/eslint-config': workspace:^2.18.4 - '@boostercloud/framework-common-helpers': workspace:^2.18.4 - '@boostercloud/framework-core': workspace:^2.18.4 - '@boostercloud/framework-provider-aws': workspace:^2.18.4 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.18.4 - '@boostercloud/framework-provider-azure': workspace:^2.18.4 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.18.4 - '@boostercloud/framework-provider-local': workspace:^2.18.4 - '@boostercloud/framework-provider-local-infrastructure': workspace:^2.18.4 - '@boostercloud/framework-types': workspace:^2.18.4 - '@boostercloud/metadata-booster': workspace:^2.18.4 + '@boostercloud/application-tester': workspace:^2.18.5 + '@boostercloud/cli': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.5 + '@boostercloud/framework-common-helpers': workspace:^2.18.5 + '@boostercloud/framework-core': workspace:^2.18.5 + '@boostercloud/framework-provider-aws': workspace:^2.18.5 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.18.5 + '@boostercloud/framework-provider-azure': workspace:^2.18.5 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.18.5 + '@boostercloud/framework-provider-local': workspace:^2.18.5 + '@boostercloud/framework-provider-local-infrastructure': workspace:^2.18.5 + '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/metadata-booster': workspace:^2.18.5 '@effect-ts/core': ^0.60.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 @@ -467,15 +467,15 @@ importers: '@effect/platform-node': 0.45.26_cahjalgelcnk6vcj6x2oc46m3a '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_lr76zgfnixwkqlplfmwtcihp7a + '@effect/schema': 0.64.18_k5iqzw5vszbbtmhrto2doihvji '@effect/typeclass': 0.23.17_effect@2.4.17 aws-sdk: 2.853.0 effect: 2.4.17 express: 4.21.1 express-unless: 2.1.3 - fast-check: 3.22.0 + fast-check: 3.23.1 graphql: 16.9.0 - tslib: 2.8.0 + tslib: 2.8.1 ws: 8.17.1 devDependencies: '@apollo/client': 3.7.13_jxorufveymi4xbrutgakjkp5wa @@ -496,7 +496,7 @@ importers: '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 '@types/nedb': 1.8.16 - '@types/node': 18.19.59 + '@types/node': 18.19.65 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay @@ -515,7 +515,7 @@ importers: eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 faker: 5.1.0 - graphology-types: 0.24.7 + graphology-types: 0.24.8 ink: 3.2.0_react@17.0.2 jsonwebtoken: 9.0.1 jwks-rsa: 3.0.1 @@ -530,15 +530,15 @@ importers: serverless-artillery: 0.5.2 sinon: 9.2.3 subscriptions-transport-ws: 0.11.0_graphql@16.9.0 - ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq + ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.4 - '@boostercloud/framework-common-helpers': workspace:^2.18.4 - '@boostercloud/framework-types': workspace:^2.18.4 + '@boostercloud/eslint-config': workspace:^2.18.5 + '@boostercloud/framework-common-helpers': workspace:^2.18.5 + '@boostercloud/framework-types': workspace:^2.18.5 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -577,7 +577,7 @@ importers: '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 - tslib: 2.8.0 + tslib: 2.8.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/aws-lambda': 8.10.48 @@ -586,7 +586,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.59 + '@types/node': 18.19.65 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -609,7 +609,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq + ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq typescript: 5.1.6 velocityjs: 2.0.6 @@ -632,10 +632,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^2.18.4 - '@boostercloud/framework-common-helpers': workspace:^2.18.4 - '@boostercloud/framework-provider-aws': workspace:^2.18.4 - '@boostercloud/framework-types': workspace:^2.18.4 + '@boostercloud/eslint-config': workspace:^2.18.5 + '@boostercloud/framework-common-helpers': workspace:^2.18.5 + '@boostercloud/framework-provider-aws': workspace:^2.18.5 + '@boostercloud/framework-types': workspace:^2.18.5 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -706,7 +706,7 @@ importers: colors: 1.4.0 constructs: 3.4.344 promptly: 3.2.0 - tslib: 2.8.0 + tslib: 2.8.1 yaml: 1.10.2 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -717,7 +717,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.59 + '@types/node': 18.19.65 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -738,7 +738,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq + ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq typescript: 5.1.6 velocityjs: 2.0.6 @@ -749,9 +749,9 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^2.18.4 - '@boostercloud/framework-common-helpers': workspace:^2.18.4 - '@boostercloud/framework-types': workspace:^2.18.4 + '@boostercloud/eslint-config': workspace:^2.18.5 + '@boostercloud/framework-common-helpers': workspace:^2.18.5 + '@boostercloud/framework-types': workspace:^2.18.5 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -780,7 +780,7 @@ importers: tslib: ^2.4.0 typescript: 5.1.6 dependencies: - '@azure/cosmos': 4.1.1 + '@azure/cosmos': 4.2.0 '@azure/event-hubs': 5.11.1 '@azure/functions': 1.2.3 '@azure/identity': 2.1.0 @@ -788,14 +788,14 @@ importers: '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 - tslib: 2.8.0 + tslib: 2.8.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.59 + '@types/node': 18.19.65 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay @@ -814,7 +814,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq + ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq typescript: 5.1.6 ../../packages/framework-provider-azure-infrastructure: @@ -823,11 +823,11 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^2.18.4 - '@boostercloud/framework-common-helpers': workspace:^2.18.4 - '@boostercloud/framework-core': workspace:^2.18.4 - '@boostercloud/framework-provider-azure': workspace:^2.18.4 - '@boostercloud/framework-types': workspace:^2.18.4 + '@boostercloud/eslint-config': workspace:^2.18.5 + '@boostercloud/framework-common-helpers': workspace:^2.18.5 + '@boostercloud/framework-core': workspace:^2.18.5 + '@boostercloud/framework-provider-azure': workspace:^2.18.5 + '@boostercloud/framework-types': workspace:^2.18.5 '@cdktf/provider-azurerm': 13.3.0 '@cdktf/provider-time': 9.0.2 '@effect-ts/core': ^0.60.4 @@ -877,7 +877,7 @@ importers: dependencies: '@azure/arm-appservice': 13.0.3 '@azure/arm-resources': 5.2.0 - '@azure/cosmos': 4.1.1 + '@azure/cosmos': 4.2.0 '@azure/identity': 2.1.0 '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-core': link:../framework-core @@ -902,7 +902,7 @@ importers: ora: 3.4.0 react: 17.0.2 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - tslib: 2.8.0 + tslib: 2.8.1 uuid: 8.3.2 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -912,7 +912,7 @@ importers: '@types/fs-extra': 9.0.13 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.59 + '@types/node': 18.19.65 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 @@ -929,14 +929,14 @@ importers: prettier: 2.3.0 rimraf: 5.0.10 sinon: 9.2.3 - ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq + ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq typescript: 5.1.6 ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.4 - '@boostercloud/framework-common-helpers': workspace:^2.18.4 - '@boostercloud/framework-types': workspace:^2.18.4 + '@boostercloud/eslint-config': workspace:^2.18.5 + '@boostercloud/framework-common-helpers': workspace:^2.18.5 + '@boostercloud/framework-types': workspace:^2.18.5 '@effect-ts/core': ^0.60.4 '@seald-io/nedb': 4.0.2 '@types/chai': 4.2.18 @@ -976,7 +976,7 @@ importers: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@seald-io/nedb': 4.0.2 - tslib: 2.8.0 + tslib: 2.8.1 ws: 8.17.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config @@ -985,7 +985,7 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.59 + '@types/node': 18.19.65 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/sinon-express-mock': 1.3.12 @@ -1008,15 +1008,15 @@ importers: sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq + ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq typescript: 5.1.6 ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.4 - '@boostercloud/framework-common-helpers': workspace:^2.18.4 - '@boostercloud/framework-provider-local': workspace:^2.18.4 - '@boostercloud/framework-types': workspace:^2.18.4 + '@boostercloud/eslint-config': workspace:^2.18.5 + '@boostercloud/framework-common-helpers': workspace:^2.18.5 + '@boostercloud/framework-provider-local': workspace:^2.18.5 + '@boostercloud/framework-types': workspace:^2.18.5 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1060,7 +1060,7 @@ importers: cors: 2.8.5 express: 4.21.1 node-schedule: 2.1.1 - tslib: 2.8.0 + tslib: 2.8.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/chai': 4.2.18 @@ -1069,7 +1069,7 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.59 + '@types/node': 18.19.65 '@types/node-schedule': 1.3.2 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -1091,13 +1091,13 @@ importers: sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq + ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq typescript: 5.1.6 ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.4 - '@boostercloud/metadata-booster': workspace:^2.18.4 + '@boostercloud/eslint-config': workspace:^2.18.5 + '@boostercloud/metadata-booster': workspace:^2.18.5 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@effect/cli': 0.35.26 @@ -1143,10 +1143,10 @@ importers: '@effect/platform': 0.48.24_aixcdyfeuz2zct7jthaihye4ri '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_lr76zgfnixwkqlplfmwtcihp7a + '@effect/schema': 0.64.18_k5iqzw5vszbbtmhrto2doihvji '@effect/typeclass': 0.23.17_effect@2.4.17 effect: 2.4.17 - tslib: 2.8.0 + tslib: 2.8.1 uuid: 8.3.2 web-streams-polyfill: 3.3.3 ws: 8.17.1 @@ -1156,7 +1156,7 @@ importers: '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/mocha': 10.0.1 - '@types/node': 18.19.59 + '@types/node': 18.19.65 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 @@ -1169,7 +1169,7 @@ importers: eslint-plugin-import: 2.31.0_eslint@8.57.1 eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 - fast-check: 3.22.0 + fast-check: 3.23.1 graphql: 16.9.0 mocha: 10.2.0 nyc: 15.1.0 @@ -1181,7 +1181,7 @@ importers: ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.4 + '@boostercloud/eslint-config': workspace:^2.18.5 '@effect-ts/core': ^0.60.4 '@types/node': ^18.18.2 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -1204,10 +1204,10 @@ importers: '@effect-ts/core': 0.60.5 reflect-metadata: 0.1.13 ts-morph: 19.0.0 - tslib: 2.8.0 + tslib: 2.8.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config - '@types/node': 18.19.59 + '@types/node': 18.19.65 '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi eslint: 8.57.1 @@ -1218,7 +1218,7 @@ importers: prettier: 2.3.0 rimraf: 5.0.10 sinon: 9.2.3 - ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq + ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq ts-patch: 3.1.2 typescript: 5.1.6 @@ -1294,7 +1294,7 @@ packages: subscriptions-transport-ws: 0.11.0_graphql@16.9.0 symbol-observable: 4.0.0 ts-invariant: 0.10.3 - tslib: 2.8.0 + tslib: 2.8.1 zen-observable-ts: 1.2.5 dev: true @@ -1329,7 +1329,7 @@ packages: subscriptions-transport-ws: 0.11.0_graphql@16.9.0 symbol-observable: 4.0.0 ts-invariant: 0.10.3 - tslib: 2.8.0 + tslib: 2.8.1 zen-observable-ts: 1.2.5 dev: false @@ -2871,14 +2871,14 @@ packages: resolution: {integrity: sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==} engines: {node: '>=12.0.0'} dependencies: - tslib: 2.8.0 + tslib: 2.8.1 dev: false /@azure/abort-controller/2.1.2: resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.8.0 + tslib: 2.8.1 dev: false /@azure/arm-appservice/13.0.3: @@ -2890,8 +2890,8 @@ packages: '@azure/core-client': 1.9.2 '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.17.0 - tslib: 2.8.0 + '@azure/core-rest-pipeline': 1.18.0 + tslib: 2.8.1 transitivePeerDependencies: - supports-color dev: false @@ -2905,8 +2905,8 @@ packages: '@azure/core-client': 1.9.2 '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.17.0 - tslib: 2.8.0 + '@azure/core-rest-pipeline': 1.18.0 + tslib: 2.8.1 transitivePeerDependencies: - supports-color dev: false @@ -2925,7 +2925,7 @@ packages: process: 0.11.10 rhea: 3.0.3 rhea-promise: 3.0.3 - tslib: 2.8.0 + tslib: 2.8.1 util: 0.12.5 transitivePeerDependencies: - supports-color @@ -2937,7 +2937,7 @@ packages: dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-util': 1.11.0 - tslib: 2.8.0 + tslib: 2.8.1 dev: false /@azure/core-client/1.9.2: @@ -2946,11 +2946,11 @@ packages: dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.9.0 - '@azure/core-rest-pipeline': 1.17.0 + '@azure/core-rest-pipeline': 1.18.0 '@azure/core-tracing': 1.2.0 '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 - tslib: 2.8.0 + tslib: 2.8.1 transitivePeerDependencies: - supports-color dev: false @@ -2962,18 +2962,18 @@ packages: '@azure/abort-controller': 2.1.2 '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 - tslib: 2.8.0 + tslib: 2.8.1 dev: false /@azure/core-paging/1.6.2: resolution: {integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.8.0 + tslib: 2.8.1 dev: false - /@azure/core-rest-pipeline/1.17.0: - resolution: {integrity: sha512-62Vv8nC+uPId3j86XJ0WI+sBf0jlqTqPUFCBNrGtlaUeQUIXWV/D8GE5A1d+Qx8H7OQojn2WguC8kChD6v0shA==} + /@azure/core-rest-pipeline/1.18.0: + resolution: {integrity: sha512-QSoGUp4Eq/gohEFNJaUOwTN7BCc2nHTjjbm75JT0aD7W65PWM1H/tItz0GsABn22uaKyGxiMhWQLt2r+FGU89Q==} engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 @@ -2983,7 +2983,7 @@ packages: '@azure/logger': 1.1.4 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 - tslib: 2.8.0 + tslib: 2.8.1 transitivePeerDependencies: - supports-color dev: false @@ -2992,7 +2992,7 @@ packages: resolution: {integrity: sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.8.0 + tslib: 2.8.1 dev: false /@azure/core-util/1.11.0: @@ -3000,23 +3000,23 @@ packages: engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 - tslib: 2.8.0 + tslib: 2.8.1 dev: false - /@azure/cosmos/4.1.1: - resolution: {integrity: sha512-EKcRHZy3enhz7hU/qlwW2urcoF7haFkQRbLhR+rUaAtzDaN6+F/rH4xJtNc94NjOEoeHUI+bkze63ZA55Gca0A==} + /@azure/cosmos/4.2.0: + resolution: {integrity: sha512-acfAQTYLxgB/iZK7XvTVYe9NPk6DECEgcIXDQhyn7Uo4dGxeeW5D3YqLjLJrrzND5Iawer3eUQ5/iiLWvTGAxQ==} engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.9.0 - '@azure/core-rest-pipeline': 1.17.0 + '@azure/core-rest-pipeline': 1.18.0 '@azure/core-tracing': 1.2.0 '@azure/core-util': 1.11.0 fast-json-stable-stringify: 2.1.0 jsbi: 4.3.0 priorityqueuejs: 2.0.0 semaphore: 1.1.0 - tslib: 2.8.0 + tslib: 2.8.1 transitivePeerDependencies: - supports-color dev: false @@ -3036,7 +3036,7 @@ packages: jssha: 3.3.1 process: 0.11.10 rhea-promise: 3.0.3 - tslib: 2.8.0 + tslib: 2.8.1 transitivePeerDependencies: - supports-color dev: false @@ -3052,7 +3052,7 @@ packages: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.9.0 '@azure/core-client': 1.9.2 - '@azure/core-rest-pipeline': 1.17.0 + '@azure/core-rest-pipeline': 1.18.0 '@azure/core-tracing': 1.2.0 '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 @@ -3063,7 +3063,7 @@ packages: jws: 4.0.0 open: 8.4.2 stoppable: 1.1.0 - tslib: 2.8.0 + tslib: 2.8.1 uuid: 8.3.2 transitivePeerDependencies: - supports-color @@ -3073,7 +3073,7 @@ packages: resolution: {integrity: sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==} engines: {node: '>=18.0.0'} dependencies: - tslib: 2.8.0 + tslib: 2.8.1 dev: false /@azure/msal-browser/2.39.0: @@ -3114,25 +3114,25 @@ packages: dependencies: '@azure/core-auth': 1.9.0 '@azure/core-client': 1.9.2 - '@azure/core-rest-pipeline': 1.17.0 + '@azure/core-rest-pipeline': 1.18.0 '@azure/core-tracing': 1.2.0 '@azure/logger': 1.1.4 jsonwebtoken: 9.0.1 - tslib: 2.8.0 + tslib: 2.8.1 transitivePeerDependencies: - supports-color dev: false - /@babel/code-frame/7.26.0: - resolution: {integrity: sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g==} + /@babel/code-frame/7.26.2: + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.25.9 js-tokens: 4.0.0 picocolors: 1.1.1 - /@babel/compat-data/7.26.0: - resolution: {integrity: sha512-qETICbZSLe7uXv9VE8T/RWOdIE5qqyTucOt4zLYMafj2MRO271VGgLd4RACJMeBO37UPWhXiKMBk7YlJ0fOzQA==} + /@babel/compat-data/7.26.2: + resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} engines: {node: '>=6.9.0'} dev: true @@ -3141,12 +3141,12 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.0 - '@babel/generator': 7.26.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-module-transforms': 7.26.0_@babel+core@7.26.0 '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.0 + '@babel/parser': 7.26.2 '@babel/template': 7.25.9 '@babel/traverse': 7.25.9 '@babel/types': 7.26.0 @@ -3159,11 +3159,11 @@ packages: - supports-color dev: true - /@babel/generator/7.26.0: - resolution: {integrity: sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w==} + /@babel/generator/7.26.2: + resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/parser': 7.26.0 + '@babel/parser': 7.26.2 '@babel/types': 7.26.0 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 @@ -3173,7 +3173,7 @@ packages: resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.26.0 + '@babel/compat-data': 7.26.2 '@babel/helper-validator-option': 7.25.9 browserslist: 4.24.2 lru-cache: 5.1.1 @@ -3225,8 +3225,8 @@ packages: '@babel/types': 7.26.0 dev: true - /@babel/parser/7.26.0: - resolution: {integrity: sha512-aP8x5pIw3xvYr/sXT+SEUwyhrXT8rUJRZltK/qN3Db80dcKpTett8cJxHyjk+xYSVXvNnl2SfcJVjbwxpOSscA==} + /@babel/parser/7.26.2: + resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: @@ -3243,17 +3243,17 @@ packages: resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.26.0 - '@babel/parser': 7.26.0 + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.2 '@babel/types': 7.26.0 /@babel/traverse/7.25.9: resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.26.0 - '@babel/generator': 7.26.0 - '@babel/parser': 7.26.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/parser': 7.26.2 '@babel/template': 7.25.9 '@babel/types': 7.26.0 debug: 4.3.7 @@ -3277,16 +3277,16 @@ packages: '@cdktf/hcl2json': 0.19.2 '@cdktf/node-pty-prebuilt-multiarch': 0.10.1-pre.11 '@cdktf/provider-schema': 0.19.2 - '@sentry/node': 7.119.2 + '@sentry/node': 7.120.0 archiver: 5.3.2 cdktf: 0.19.2_constructs@10.4.2 chalk: 4.1.2 chokidar: 3.6.0 cli-spinners: 2.7.0 - codemaker: 1.104.0 + codemaker: 1.105.0 constructs: 10.4.2 cross-fetch: 3.1.5 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 detect-port: 1.6.1 execa: 5.1.1 extract-zip: 2.0.1 @@ -3299,9 +3299,9 @@ packages: ink-spinner: 4.0.3_ink@3.2.0+react@17.0.2 ink-testing-library: 2.1.0 ink-use-stdout-dimensions: 1.0.5_ink@3.2.0+react@17.0.2 - jsii: 5.5.4 - jsii-pacmak: 1.104.0 - jsii-srcmak: 0.1.1280 + jsii: 5.6.0 + jsii-pacmak: 1.105.0 + jsii-srcmak: 0.1.1304 lodash.isequal: 4.5.0 log4js: 6.9.1 minimatch: 5.1.6 @@ -3333,12 +3333,12 @@ packages: /@cdktf/commons/0.19.2: resolution: {integrity: sha512-5rOeb0cSREHQa5XVsGFEV6Ce8Zwo2WxE8GIhmGd/JzeSAByhK8scHFlD3+eENl83W/8lwIkm/nSl9oDHEkENIg==} dependencies: - '@sentry/node': 7.119.2 + '@sentry/node': 7.120.0 cdktf: 0.19.2_constructs@10.4.2 ci-info: 3.9.0 - codemaker: 1.104.0 + codemaker: 1.105.0 constructs: 10.4.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 follow-redirects: 1.15.9 fs-extra: 11.2.0 is-valid-domain: 0.1.6 @@ -3351,7 +3351,7 @@ packages: /@cdktf/hcl2cdk/0.19.2: resolution: {integrity: sha512-v0UNRvvzuCi3SnmSAgBFAnWavT0ybR1AzkK8ndgfbB5JLDoNm0iJV0MOTURZF+I0O3V9u4RZsw4DVNPdil2EEA==} dependencies: - '@babel/generator': 7.26.0 + '@babel/generator': 7.26.2 '@babel/template': 7.25.9 '@babel/types': 7.26.0 '@cdktf/commons': 0.19.2 @@ -3361,9 +3361,9 @@ packages: camelcase: 6.3.0 deep-equal: 2.2.3 glob: 10.4.5 - graphology: 0.25.4_graphology-types@0.24.7 - graphology-types: 0.24.7 - jsii-rosetta: 5.5.5 + graphology: 0.25.4_graphology-types@0.24.8 + graphology-types: 0.24.8 + jsii-rosetta: 5.6.0 prettier: 2.8.8 reserved-words: 0.1.2 zod: 3.23.8 @@ -3401,10 +3401,10 @@ packages: '@cdktf/hcl2json': 0.19.2 '@cdktf/provider-schema': 0.19.2 '@types/node': 18.18.8 - codemaker: 1.104.0 + codemaker: 1.105.0 deepmerge: 4.3.1 fs-extra: 8.1.0 - jsii-srcmak: 0.1.1280 + jsii-srcmak: 0.1.1304 transitivePeerDependencies: - debug - supports-color @@ -3465,11 +3465,11 @@ packages: '@effect/platform': 0.48.24_aixcdyfeuz2zct7jthaihye4ri '@effect/printer': 0.32.2_67ibgamlfqfgywvgecp7hwrxja '@effect/printer-ansi': 0.32.26_67ibgamlfqfgywvgecp7hwrxja - '@effect/schema': 0.64.18_lr76zgfnixwkqlplfmwtcihp7a + '@effect/schema': 0.64.18_k5iqzw5vszbbtmhrto2doihvji effect: 2.4.17 ini: 4.1.3 toml: 3.0.0 - yaml: 2.6.0 + yaml: 2.6.1 dev: false /@effect/platform-node-shared/0.3.29_cahjalgelcnk6vcj6x2oc46m3a: @@ -3479,7 +3479,7 @@ packages: effect: ^2.4.19 dependencies: '@effect/platform': 0.48.24_aixcdyfeuz2zct7jthaihye4ri - '@parcel/watcher': 2.4.1 + '@parcel/watcher': 2.5.0 effect: 2.4.17 multipasta: 0.2.5 dev: false @@ -3494,7 +3494,7 @@ packages: '@effect/platform-node-shared': 0.3.29_cahjalgelcnk6vcj6x2oc46m3a effect: 2.4.17 mime: 3.0.0 - undici: 6.20.1 + undici: 6.21.0 ws: 8.17.1 transitivePeerDependencies: - bufferutil @@ -3507,7 +3507,7 @@ packages: '@effect/schema': ^0.64.18 effect: ^2.4.17 dependencies: - '@effect/schema': 0.64.18_lr76zgfnixwkqlplfmwtcihp7a + '@effect/schema': 0.64.18_k5iqzw5vszbbtmhrto2doihvji effect: 2.4.17 find-my-way-ts: 0.1.5 isomorphic-ws: 5.0.0_ws@8.17.1 @@ -3538,14 +3538,14 @@ packages: effect: 2.4.17 dev: false - /@effect/schema/0.64.18_lr76zgfnixwkqlplfmwtcihp7a: + /@effect/schema/0.64.18_k5iqzw5vszbbtmhrto2doihvji: resolution: {integrity: sha512-utMVAjcKqmNlkJ8hzdXf3FWBOsekKbe3xhYzWLLLFCpdbTMkCFeN52l1QRXTk7rla87sNTYdMA+xcES9maOEog==} peerDependencies: effect: ^2.4.17 fast-check: ^3.13.2 dependencies: effect: 2.4.17 - fast-check: 3.22.0 + fast-check: 3.23.1 dev: false /@effect/typeclass/0.23.17_effect@2.4.17: @@ -3556,8 +3556,8 @@ packages: effect: 2.4.17 dev: false - /@eslint-community/eslint-utils/4.4.0_eslint@8.57.1: - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + /@eslint-community/eslint-utils/4.4.1_eslint@8.57.1: + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -3565,8 +3565,8 @@ packages: eslint: 8.57.1 eslint-visitor-keys: 3.4.3 - /@eslint-community/regexpp/4.11.1: - resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} + /@eslint-community/regexpp/4.12.1: + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} /@eslint/eslintrc/2.1.4: @@ -3639,7 +3639,7 @@ packages: dependencies: '@inquirer/type': 1.5.5 '@types/mute-stream': 0.0.1 - '@types/node': 20.17.1 + '@types/node': 20.17.7 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3658,7 +3658,7 @@ packages: dependencies: '@inquirer/type': 1.5.5 '@types/mute-stream': 0.0.4 - '@types/node': 20.17.1 + '@types/node': 20.17.7 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3802,22 +3802,22 @@ packages: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - /@jsii/check-node/1.103.1: - resolution: {integrity: sha512-Vi6ONm5WXEim98a2DJ6WMlrP/w5AGzXrrQBpGcfVV7cu86DPx1L0OAZnqzGAJE8ly0VfcSXkmxJ9LFcn3jylBQ==} + /@jsii/check-node/1.104.0: + resolution: {integrity: sha512-5rAn4y11APxq69DmTKtAACmDuOymcTiz29CE7s0AeWA5jzpxBRhkaj8xwixiSQtkoBFk+Vpoi2eNctCvwLdFaw==} engines: {node: '>= 14.17.0'} dependencies: chalk: 4.1.2 semver: 7.6.3 - /@jsii/check-node/1.104.0: - resolution: {integrity: sha512-5rAn4y11APxq69DmTKtAACmDuOymcTiz29CE7s0AeWA5jzpxBRhkaj8xwixiSQtkoBFk+Vpoi2eNctCvwLdFaw==} + /@jsii/check-node/1.105.0: + resolution: {integrity: sha512-7QIzioc9//TwRjLhGMllcTBfIvJ0h6OeGVUEYdXB1DpCNtMbr8Xcj5KaeKHRAF9iRjB1d0IGzKm4A8fRUzIf+Q==} engines: {node: '>= 14.17.0'} dependencies: chalk: 4.1.2 semver: 7.6.3 - /@jsii/spec/1.104.0: - resolution: {integrity: sha512-7jxU8iRowA3O7Dpn8XAsX8o4Y8Fy8plbEVg0CnjvIQsJh3puI3KFHspXur70OOccfGkoL1TWnXBZ+BwCcvhu1g==} + /@jsii/spec/1.105.0: + resolution: {integrity: sha512-pLy8JyPT9Vv5UTxtM4ZHm/iisWzU62m3/dn9TPW2oANI5TLiBpjLlJw/iF+KRjYAeQnFASUfXtWTXgbN4xp9Rw==} engines: {node: '>= 14.17.0'} dependencies: ajv: 8.17.1 @@ -3852,7 +3852,7 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - /@oclif/core/2.16.0_5aurqvvi2kcpaxpbv224uoiqwq: + /@oclif/core/2.16.0_jtknrvqdlvipgdxn6jbxe7dreq: resolution: {integrity: sha512-dL6atBH0zCZl1A1IXCKJgLPrM/wR7K+Wi401E/IvqsK8m2iCHW+0TEOGrans/cuN3oTW+uxIyJFHJ8Im0k4qBw==} engines: {node: '>=14.0.0'} dependencies: @@ -3879,8 +3879,8 @@ packages: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - ts-node: 10.9.2_5aurqvvi2kcpaxpbv224uoiqwq - tslib: 2.8.0 + ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + tslib: 2.8.1 widest-line: 3.1.0 wordwrap: 1.0.0 wrap-ansi: 7.0.0 @@ -3960,11 +3960,11 @@ packages: wrap-ansi: 7.0.0 dev: true - /@oclif/plugin-help/5.2.20_5aurqvvi2kcpaxpbv224uoiqwq: + /@oclif/plugin-help/5.2.20_jtknrvqdlvipgdxn6jbxe7dreq: resolution: {integrity: sha512-u+GXX/KAGL9S10LxAwNUaWdzbEBARJ92ogmM7g3gDVud2HioCmvWQCDohNRVZ9GYV9oKwZ/M8xwd6a1d95rEKQ==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.16.0_5aurqvvi2kcpaxpbv224uoiqwq + '@oclif/core': 2.16.0_jtknrvqdlvipgdxn6jbxe7dreq transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -3983,8 +3983,8 @@ packages: - supports-color dev: true - /@parcel/watcher-android-arm64/2.4.1: - resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} + /@parcel/watcher-android-arm64/2.5.0: + resolution: {integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [android] @@ -3992,8 +3992,8 @@ packages: dev: false optional: true - /@parcel/watcher-darwin-arm64/2.4.1: - resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} + /@parcel/watcher-darwin-arm64/2.5.0: + resolution: {integrity: sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [darwin] @@ -4001,8 +4001,8 @@ packages: dev: false optional: true - /@parcel/watcher-darwin-x64/2.4.1: - resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} + /@parcel/watcher-darwin-x64/2.5.0: + resolution: {integrity: sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [darwin] @@ -4010,8 +4010,8 @@ packages: dev: false optional: true - /@parcel/watcher-freebsd-x64/2.4.1: - resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} + /@parcel/watcher-freebsd-x64/2.5.0: + resolution: {integrity: sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [freebsd] @@ -4019,8 +4019,8 @@ packages: dev: false optional: true - /@parcel/watcher-linux-arm-glibc/2.4.1: - resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} + /@parcel/watcher-linux-arm-glibc/2.5.0: + resolution: {integrity: sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] @@ -4028,8 +4028,17 @@ packages: dev: false optional: true - /@parcel/watcher-linux-arm64-glibc/2.4.1: - resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} + /@parcel/watcher-linux-arm-musl/2.5.0: + resolution: {integrity: sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@parcel/watcher-linux-arm64-glibc/2.5.0: + resolution: {integrity: sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] @@ -4037,8 +4046,8 @@ packages: dev: false optional: true - /@parcel/watcher-linux-arm64-musl/2.4.1: - resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} + /@parcel/watcher-linux-arm64-musl/2.5.0: + resolution: {integrity: sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] @@ -4046,8 +4055,8 @@ packages: dev: false optional: true - /@parcel/watcher-linux-x64-glibc/2.4.1: - resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} + /@parcel/watcher-linux-x64-glibc/2.5.0: + resolution: {integrity: sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] @@ -4055,8 +4064,8 @@ packages: dev: false optional: true - /@parcel/watcher-linux-x64-musl/2.4.1: - resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} + /@parcel/watcher-linux-x64-musl/2.5.0: + resolution: {integrity: sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] @@ -4064,8 +4073,8 @@ packages: dev: false optional: true - /@parcel/watcher-win32-arm64/2.4.1: - resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} + /@parcel/watcher-win32-arm64/2.5.0: + resolution: {integrity: sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [win32] @@ -4073,8 +4082,8 @@ packages: dev: false optional: true - /@parcel/watcher-win32-ia32/2.4.1: - resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} + /@parcel/watcher-win32-ia32/2.5.0: + resolution: {integrity: sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==} engines: {node: '>= 10.0.0'} cpu: [ia32] os: [win32] @@ -4082,8 +4091,8 @@ packages: dev: false optional: true - /@parcel/watcher-win32-x64/2.4.1: - resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} + /@parcel/watcher-win32-x64/2.5.0: + resolution: {integrity: sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [win32] @@ -4091,27 +4100,29 @@ packages: dev: false optional: true - /@parcel/watcher/2.4.1: - resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} + /@parcel/watcher/2.5.0: + resolution: {integrity: sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==} engines: {node: '>= 10.0.0'} + requiresBuild: true dependencies: detect-libc: 1.0.3 is-glob: 4.0.3 micromatch: 4.0.8 node-addon-api: 7.1.1 optionalDependencies: - '@parcel/watcher-android-arm64': 2.4.1 - '@parcel/watcher-darwin-arm64': 2.4.1 - '@parcel/watcher-darwin-x64': 2.4.1 - '@parcel/watcher-freebsd-x64': 2.4.1 - '@parcel/watcher-linux-arm-glibc': 2.4.1 - '@parcel/watcher-linux-arm64-glibc': 2.4.1 - '@parcel/watcher-linux-arm64-musl': 2.4.1 - '@parcel/watcher-linux-x64-glibc': 2.4.1 - '@parcel/watcher-linux-x64-musl': 2.4.1 - '@parcel/watcher-win32-arm64': 2.4.1 - '@parcel/watcher-win32-ia32': 2.4.1 - '@parcel/watcher-win32-x64': 2.4.1 + '@parcel/watcher-android-arm64': 2.5.0 + '@parcel/watcher-darwin-arm64': 2.5.0 + '@parcel/watcher-darwin-x64': 2.5.0 + '@parcel/watcher-freebsd-x64': 2.5.0 + '@parcel/watcher-linux-arm-glibc': 2.5.0 + '@parcel/watcher-linux-arm-musl': 2.5.0 + '@parcel/watcher-linux-arm64-glibc': 2.5.0 + '@parcel/watcher-linux-arm64-musl': 2.5.0 + '@parcel/watcher-linux-x64-glibc': 2.5.0 + '@parcel/watcher-linux-x64-musl': 2.5.0 + '@parcel/watcher-win32-arm64': 2.5.0 + '@parcel/watcher-win32-ia32': 2.5.0 + '@parcel/watcher-win32-x64': 2.5.0 dev: false /@pkgjs/parseargs/0.11.0: @@ -4133,49 +4144,49 @@ packages: localforage: 1.10.0 util: 0.12.5 - /@sentry-internal/tracing/7.119.2: - resolution: {integrity: sha512-V2W+STWrafyGJhQv3ulMFXYDwWHiU6wHQAQBShsHVACiFaDrJ2kPRet38FKv4dMLlLlP2xN+ss2e5zv3tYlTiQ==} + /@sentry-internal/tracing/7.120.0: + resolution: {integrity: sha512-VymJoIGMV0PcTJyshka9uJ1sKpR7bHooqW5jTEr6g0dYAwB723fPXHjVW+7SETF7i5+yr2KMprYKreqRidKyKA==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.119.2 - '@sentry/types': 7.119.2 - '@sentry/utils': 7.119.2 + '@sentry/core': 7.120.0 + '@sentry/types': 7.120.0 + '@sentry/utils': 7.120.0 - /@sentry/core/7.119.2: - resolution: {integrity: sha512-hQr3d2yWq/2lMvoyBPOwXw1IHqTrCjOsU1vYKhAa6w9vGbJZFGhKGGE2KEi/92c3gqGn+gW/PC7cV6waCTDuVA==} + /@sentry/core/7.120.0: + resolution: {integrity: sha512-uTc2sUQ0heZrMI31oFOHGxjKgw16MbV3C2mcT7qcrb6UmSGR9WqPOXZhnVVuzPWCnQ8B5IPPVdynK//J+9/m6g==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.119.2 - '@sentry/utils': 7.119.2 + '@sentry/types': 7.120.0 + '@sentry/utils': 7.120.0 - /@sentry/integrations/7.119.2: - resolution: {integrity: sha512-dCuXKvbUE3gXVVa696SYMjlhSP6CxpMH/gl4Jk26naEB8Xjsn98z/hqEoXLg6Nab73rjR9c/9AdKqBbwVMHyrQ==} + /@sentry/integrations/7.120.0: + resolution: {integrity: sha512-/Hs9MgSmG4JFNyeQkJ+MWh/fxO/U38Pz0VSH3hDrfyCjI8vH9Vz9inGEQXgB9Ke4eH8XnhsQ7xPnM27lWJts6g==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.119.2 - '@sentry/types': 7.119.2 - '@sentry/utils': 7.119.2 + '@sentry/core': 7.120.0 + '@sentry/types': 7.120.0 + '@sentry/utils': 7.120.0 localforage: 1.10.0 - /@sentry/node/7.119.2: - resolution: {integrity: sha512-TPNnqxh+Myooe4jTyRiXrzrM2SH08R4+nrmBls4T7lKp2E5R/3mDSe/YTn5rRcUt1k1hPx1NgO/taG0DoS5cXA==} + /@sentry/node/7.120.0: + resolution: {integrity: sha512-GAyuNd8WUznsiOyDq2QUwR/aVnMmItUc4tgZQxhH1R+n4Adx3cAhnpq3zEuzsIAC5+/7ut+4Q4B3akh6SDZd4w==} engines: {node: '>=8'} dependencies: - '@sentry-internal/tracing': 7.119.2 - '@sentry/core': 7.119.2 - '@sentry/integrations': 7.119.2 - '@sentry/types': 7.119.2 - '@sentry/utils': 7.119.2 + '@sentry-internal/tracing': 7.120.0 + '@sentry/core': 7.120.0 + '@sentry/integrations': 7.120.0 + '@sentry/types': 7.120.0 + '@sentry/utils': 7.120.0 - /@sentry/types/7.119.2: - resolution: {integrity: sha512-ydq1tWsdG7QW+yFaTp0gFaowMLNVikIqM70wxWNK+u98QzKnVY/3XTixxNLsUtnAB4Y+isAzFhrc6Vb5GFdFeg==} + /@sentry/types/7.120.0: + resolution: {integrity: sha512-3mvELhBQBo6EljcRrJzfpGJYHKIZuBXmqh0y8prh03SWE62pwRL614GIYtd4YOC6OP1gfPn8S8h9w3dD5bF5HA==} engines: {node: '>=8'} - /@sentry/utils/7.119.2: - resolution: {integrity: sha512-TLdUCvcNgzKP0r9YD7tgCL1PEUp42TObISridsPJ5rhpVGQJvpr+Six0zIkfDUxerLYWZoK8QMm9KgFlPLNQzA==} + /@sentry/utils/7.120.0: + resolution: {integrity: sha512-XZsPcBHoYu4+HYn14IOnhabUZgCF99Xn4IdWn8Hjs/c+VPtuAVDhRTsfPyPrpY3OcN8DgO5fZX4qcv/6kNbX1A==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.119.2 + '@sentry/types': 7.120.0 /@serverless/dashboard-plugin/6.4.0_supports-color@8.1.1: resolution: {integrity: sha512-2yJQym94sXZhEFbcOVRMJgJ4a2H9Qly94UeUesPwf8bfWCxtiB4l5rxLnCB2aLTuUf/djcuD5/VrNPY1pRU7DA==} @@ -4212,7 +4223,7 @@ packages: /@serverless/event-mocks/1.1.1: resolution: {integrity: sha512-YAV5V/y+XIOfd+HEVeXfPWZb8C6QLruFk9tBivoX2roQLWVq145s4uxf8D0QioCueuRzkukHUS4JIj+KVoS34A==} dependencies: - '@types/lodash': 4.17.12 + '@types/lodash': 4.17.13 lodash: 4.17.21 dev: true @@ -4391,14 +4402,14 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 18.19.59 + '@types/node': 18.19.65 /@types/cacheable-request/6.0.3: resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 18.19.59 + '@types/node': 18.19.65 '@types/responselike': 1.0.3 dev: true @@ -4421,30 +4432,30 @@ packages: /@types/child-process-promise/2.2.6: resolution: {integrity: sha512-g0pOHijr6Trug43D2bV0PLSIsSHa/xHEES2HeX5BAlduq1vW0nZcq27Zeud5lgmNB+kPYYVqiMap32EHGTco/w==} dependencies: - '@types/node': 18.19.59 + '@types/node': 18.19.65 dev: true /@types/cli-progress/3.11.6: resolution: {integrity: sha512-cE3+jb9WRlu+uOSAugewNpITJDt1VF8dHOopPO4IABFc3SXYL5WE/+PTz/FCdZRRfIujiWW3n3aMbv1eIGVRWA==} dependencies: - '@types/node': 18.19.59 + '@types/node': 18.19.65 /@types/connect/3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 18.19.59 + '@types/node': 18.19.65 /@types/cors/2.8.17: resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 18.19.59 + '@types/node': 18.19.65 dev: true /@types/express-serve-static-core/4.19.6: resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} dependencies: - '@types/node': 18.19.59 - '@types/qs': 6.9.16 + '@types/node': 18.19.65 + '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -4453,7 +4464,7 @@ packages: dependencies: '@types/body-parser': 1.19.5 '@types/express-serve-static-core': 4.19.6 - '@types/qs': 6.9.16 + '@types/qs': 6.9.17 '@types/serve-static': 1.15.7 /@types/faker/5.1.5: @@ -4463,14 +4474,14 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.19.59 + '@types/node': 18.19.65 dev: true /@types/glob/8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.19.59 + '@types/node': 18.19.65 /@types/http-cache-semantics/4.0.4: resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} @@ -4499,16 +4510,16 @@ packages: /@types/jsonwebtoken/9.0.1: resolution: {integrity: sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==} dependencies: - '@types/node': 18.19.59 + '@types/node': 18.19.65 /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 18.19.59 + '@types/node': 18.19.65 dev: true - /@types/lodash/4.17.12: - resolution: {integrity: sha512-sviUmCE8AYdaF/KIHLDJBQgeYzPBI0vf/17NaYehBJfYD1j6/L95Slh07NlyK2iNyBNaEkb3En2jRt+a8y3xZQ==} + /@types/lodash/4.17.13: + resolution: {integrity: sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==} dev: true /@types/mime/1.3.5: @@ -4528,29 +4539,29 @@ packages: /@types/mute-stream/0.0.1: resolution: {integrity: sha512-0yQLzYhCqGz7CQPE3iDmYjhb7KMBFOP+tBkyw+/Y2YyDI5wpS7itXXxneN1zSsUwWx3Ji6YiVYrhAnpQGS/vkw==} dependencies: - '@types/node': 18.19.59 + '@types/node': 18.19.65 /@types/mute-stream/0.0.4: resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} dependencies: - '@types/node': 18.19.59 + '@types/node': 18.19.65 /@types/nedb/1.8.16: resolution: {integrity: sha512-ND+uzwAZk7ZI9byOvHGOcZe2R9XUcLF698yDJKn00trFvh+GaemkX3gQKCSKtObjDpv8Uuou+k8v4x4scPr4TA==} dependencies: - '@types/node': 18.19.59 + '@types/node': 18.19.65 dev: true /@types/needle/2.5.3: resolution: {integrity: sha512-RwgTwMRaedfyCBe5SSWMpm1Yqzc5UPZEMw0eAd09OSyV93nLRj9/evMGZmgFeHKzUOd4xxtHvgtc+rjcBjI1Qg==} dependencies: - '@types/node': 18.19.59 + '@types/node': 18.19.65 dev: false /@types/node-schedule/1.3.2: resolution: {integrity: sha512-Y0CqdAr+lCpArT8CJJjJq4U2v8Bb5e7ru2nV/NhDdaptCMCRdOL3Y7tAhen39HluQMaIKWvPbDuiFBUQpg7Srw==} dependencies: - '@types/node': 18.19.59 + '@types/node': 18.19.65 dev: true /@types/node/10.17.60: @@ -4562,13 +4573,13 @@ packages: dependencies: undici-types: 5.26.5 - /@types/node/18.19.59: - resolution: {integrity: sha512-vizm2EqwV/7Zay+A6J3tGl9Lhr7CjZe2HmWS988sefiEmsyP9CeXEleho6i4hJk/8UtZAo0bWN4QPZZr83RxvQ==} + /@types/node/18.19.65: + resolution: {integrity: sha512-Ay5BZuO1UkTmVHzZJNvZKw/E+iB3GQABb6kijEz89w2JrfhNA+M/ebp18pfz9Gqe9ywhMC8AA8yC01lZq48J+Q==} dependencies: undici-types: 5.26.5 - /@types/node/20.17.1: - resolution: {integrity: sha512-j2VlPv1NnwPJbaCNv69FO/1z4lId0QmGvpT41YxitRtWlg96g/j8qcv2RKsLKe2F6OJgyXhupN1Xo17b2m139Q==} + /@types/node/20.17.7: + resolution: {integrity: sha512-sZXXnpBFMKbao30dUAvzKbdwA2JM1fwUtVEq/kxKuPI5mMwZiRElCpTXb0Biq/LMEVpXDZL5G5V0RPnxKeyaYg==} dependencies: undici-types: 6.19.8 @@ -4576,8 +4587,8 @@ packages: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true - /@types/qs/6.9.16: - resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==} + /@types/qs/6.9.17: + resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==} /@types/range-parser/1.2.7: resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} @@ -4585,7 +4596,7 @@ packages: /@types/responselike/1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 18.19.59 + '@types/node': 18.19.65 dev: true /@types/rewire/2.5.30: @@ -4599,13 +4610,13 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.59 + '@types/node': 18.19.65 /@types/serve-static/1.15.7: resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/node': 18.19.59 + '@types/node': 18.19.65 '@types/send': 0.17.4 /@types/sinon-chai/3.2.5: @@ -4630,7 +4641,7 @@ packages: /@types/through/0.0.33: resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} dependencies: - '@types/node': 18.19.59 + '@types/node': 18.19.65 dev: true /@types/uuid/8.3.0: @@ -4647,14 +4658,14 @@ packages: /@types/ws/8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 18.19.59 + '@types/node': 18.19.65 dev: true /@types/yauzl/2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 18.19.59 + '@types/node': 18.19.65 optional: true /@types/yoga-layout/1.9.2: @@ -4671,7 +4682,7 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.11.1 + '@eslint-community/regexpp': 4.12.1 '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/type-utils': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi @@ -4762,7 +4773,7 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.57.1 + '@eslint-community/eslint-utils': 4.4.1_eslint@8.57.1 '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 5.62.0 @@ -4789,22 +4800,22 @@ packages: resolution: {integrity: sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==} engines: {node: '>=8'} dependencies: - tslib: 2.8.0 + tslib: 2.8.1 /@wry/equality/0.5.7: resolution: {integrity: sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==} engines: {node: '>=8'} dependencies: - tslib: 2.8.0 + tslib: 2.8.1 /@wry/trie/0.3.2: resolution: {integrity: sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==} engines: {node: '>=8'} dependencies: - tslib: 2.8.0 + tslib: 2.8.1 - /@xmldom/xmldom/0.9.4: - resolution: {integrity: sha512-zglELfWx7g1cEpVMRBZ0srIQO5nEvKvraJ6CVUC/c5Ky1GgX8OIjtUj5qOweTYULYZo5VnXs/LpUUUNiGpX/rA==} + /@xmldom/xmldom/0.9.5: + resolution: {integrity: sha512-6g1EwSs8cr8JhP1iBxzyVAWM6BIDvx9Y3FZRIQiMDzgG43Pxi8YkWOZ0nQj2NHgNzgXDZbJewFx/n+YAvMZrfg==} engines: {node: '>=14.6'} /accepts/1.3.8: @@ -4822,18 +4833,18 @@ packages: acorn: 7.4.1 dev: true - /acorn-jsx/5.3.2_acorn@8.13.0: + /acorn-jsx/5.3.2_acorn@8.14.0: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.13.0 + acorn: 8.14.0 /acorn-walk/8.3.4: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} dependencies: - acorn: 8.13.0 + acorn: 8.14.0 /acorn/7.4.1: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} @@ -4841,8 +4852,8 @@ packages: hasBin: true dev: true - /acorn/8.13.0: - resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==} + /acorn/8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true @@ -5066,7 +5077,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 is-string: 1.0.7 @@ -5081,7 +5092,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 @@ -5092,7 +5103,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-shim-unscopables: 1.0.2 /array.prototype.flatmap/1.3.2: @@ -5101,7 +5112,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-shim-unscopables: 1.0.2 /arraybuffer.prototype.slice/1.0.3: @@ -5111,7 +5122,7 @@ packages: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 @@ -5166,8 +5177,8 @@ packages: fsevents: 2.3.2 dev: false - /aws-sdk/2.1691.0: - resolution: {integrity: sha512-/F2YC+DlsY3UBM2Bdnh5RLHOPNibS/+IcjUuhP8XuctyrN+MlL+fWDAiela32LTDk7hMy4rx8MTgvbJ+0blO5g==} + /aws-sdk/2.1692.0: + resolution: {integrity: sha512-x511uiJ/57FIsbgUe5csJ13k3uzu25uWQE+XqfBis/sB0SFoiElJWXRkgEAUh0U6n40eT3ay5Ue4oPkRMu1LYw==} engines: {node: '>= 10.0.0'} requiresBuild: true dependencies: @@ -5285,8 +5296,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001669 - electron-to-chromium: 1.5.45 + caniuse-lite: 1.0.30001684 + electron-to-chromium: 1.5.64 node-releases: 2.0.18 update-browserslist-db: 1.1.1_browserslist@4.24.2 dev: true @@ -5401,8 +5412,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - /caniuse-lite/1.0.30001669: - resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==} + /caniuse-lite/1.0.30001684: + resolution: {integrity: sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==} dev: true /cardinal/2.1.1: @@ -5424,7 +5435,7 @@ packages: '@aws-cdk/cloud-assembly-schema': 2.39.1 '@aws-cdk/cx-api': 2.39.1 archiver: 5.3.2 - aws-sdk: 2.1691.0 + aws-sdk: 2.1692.0 glob: 7.2.3 mime: 2.6.0 yargs: 16.2.0 @@ -5439,17 +5450,17 @@ packages: '@cdktf/hcl2cdk': 0.19.2 '@cdktf/hcl2json': 0.19.2 '@inquirer/prompts': 2.3.1 - '@sentry/node': 7.119.2 + '@sentry/node': 7.120.0 cdktf: 0.19.2_constructs@10.4.2 ci-info: 3.9.0 - codemaker: 1.104.0 + codemaker: 1.105.0 constructs: 10.4.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 https-proxy-agent: 5.0.1 ink-select-input: 4.2.2_ink@3.2.0+react@17.0.2 ink-table: 3.1.0_ink@3.2.0+react@17.0.2 - jsii: 5.5.4 - jsii-pacmak: 1.104.0 + jsii: 5.6.0 + jsii-pacmak: 1.105.0 minimatch: 5.1.6 node-fetch: 2.7.0 pidtree: 0.6.0 @@ -5548,7 +5559,7 @@ packages: /child-process-ext/2.1.1: resolution: {integrity: sha512-0UQ55f51JBkOFa+fvR76ywRzxiPwQS3Xe8oe5bZRphpv+dIMeerW5Zn5e4cUy4COJwVtJyU0R79RMnw+aCqmGA==} dependencies: - cross-spawn: 6.0.5 + cross-spawn: 6.0.6 es5-ext: 0.10.64 log: 6.3.2 split2: 3.2.2 @@ -5559,7 +5570,7 @@ packages: resolution: {integrity: sha512-oBePsLbQpTJFxzwyCvs9yWWF0OEM6vGGepHwt1stqmX7QQqOuDc8j2ywdvAs9Tvi44TT7d9ackqhR4Q10l1u8w==} engines: {node: '>=8.0'} dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 es5-ext: 0.10.64 log: 6.3.2 split2: 3.2.2 @@ -5774,8 +5785,8 @@ packages: dependencies: convert-to-spaces: 1.0.2 - /codemaker/1.104.0: - resolution: {integrity: sha512-BC95gULaPN4MMeWxeLXHGatkac6LOArHMAkPkl3wQdcVa7MO4OzST6e8tY71iqA3KrgamfP0vQ34N9rDkfDyGg==} + /codemaker/1.105.0: + resolution: {integrity: sha512-eTePuHlpXNDD4P1vdEv61j+O4f7cnzTSXfbl5bsz+dp8TC95B4YKUS7A/MfR39/CMfqjPn3+KjnCubRbqv5RMA==} engines: {node: '>= 14.17.0'} dependencies: camelcase: 6.3.0 @@ -5968,7 +5979,7 @@ packages: engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} hasBin: true dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 dev: true /cross-fetch/3.1.5: @@ -5984,8 +5995,8 @@ packages: lru-cache: 4.1.5 which: 1.3.1 - /cross-spawn/6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + /cross-spawn/6.0.6: + resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} engines: {node: '>=4.8'} dependencies: nice-try: 1.0.5 @@ -5995,8 +6006,8 @@ packages: which: 1.3.1 dev: true - /cross-spawn/7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + /cross-spawn/7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} dependencies: path-key: 3.1.1 @@ -6360,14 +6371,6 @@ packages: engines: {node: '>=10'} dev: true - /downlevel-dts/0.11.0: - resolution: {integrity: sha512-vo835pntK7kzYStk7xUHDifiYJvXxVhUapt85uk2AI94gUUAQX9HNRtrcMHNSc3YHJUEHGbYIGsM99uIbgAtxw==} - hasBin: true - dependencies: - semver: 7.6.3 - shelljs: 0.8.5 - typescript: 5.7.0-dev.20241025 - /duration/0.2.2: resolution: {integrity: sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==} dependencies: @@ -6397,8 +6400,8 @@ packages: dependencies: jake: 10.9.2 - /electron-to-chromium/1.5.45: - resolution: {integrity: sha512-vOzZS6uZwhhbkZbcRyiy99Wg+pYFV5hk+5YaECvx0+Z31NR3Tt5zS6dze2OepT6PCTzVzT0dIJItti+uAW5zmw==} + /electron-to-chromium/1.5.64: + resolution: {integrity: sha512-IXEuxU+5ClW2IGEYFC2T7szbyVgehupCWQe5GNh+H065CD6U6IFN0s4KeAMFGNmQolRU4IV7zGBWSYMmZ8uuqQ==} dev: true /emoji-regex/7.0.3: @@ -6434,8 +6437,8 @@ packages: is-arrayish: 0.2.1 dev: true - /es-abstract/1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + /es-abstract/1.23.5: + resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 @@ -6469,7 +6472,7 @@ packages: is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.2 + object-inspect: 1.13.3 object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.3 @@ -6480,8 +6483,8 @@ packages: string.prototype.trimstart: 1.0.8 typed-array-buffer: 1.0.2 typed-array-byte-length: 1.0.1 - typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.6 + typed-array-byte-offset: 1.0.3 + typed-array-length: 1.0.7 unbox-primitive: 1.0.2 which-typed-array: 1.1.15 @@ -6750,10 +6753,10 @@ packages: deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true dependencies: - '@babel/code-frame': 7.26.0 + '@babel/code-frame': 7.26.2 ajv: 6.12.6 chalk: 2.4.2 - cross-spawn: 6.0.5 + cross-spawn: 6.0.6 debug: 4.3.7 doctrine: 3.0.0 eslint-scope: 5.1.1 @@ -6797,8 +6800,8 @@ packages: deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.57.1 - '@eslint-community/regexpp': 4.11.1 + '@eslint-community/eslint-utils': 4.4.1_eslint@8.57.1 + '@eslint-community/regexpp': 4.12.1 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.1 '@humanwhocodes/config-array': 0.13.0 @@ -6807,7 +6810,7 @@ packages: '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 debug: 4.3.7 doctrine: 3.0.0 escape-string-regexp: 4.0.0 @@ -6869,8 +6872,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.13.0 - acorn-jsx: 5.3.2_acorn@8.13.0 + acorn: 8.14.0 + acorn-jsx: 5.3.2_acorn@8.14.0 eslint-visitor-keys: 3.4.3 /esprima/4.0.1: @@ -6934,7 +6937,7 @@ packages: resolution: {integrity: sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==} engines: {node: ^8.12.0 || >=9.7.0} dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 5.2.0 is-stream: 2.0.1 merge-stream: 2.0.0 @@ -6949,7 +6952,7 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 6.0.1 human-signals: 2.1.0 is-stream: 2.0.1 @@ -7055,20 +7058,20 @@ packages: deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. dependencies: '@types/chai': 4.2.18 - '@types/lodash': 4.17.12 - '@types/node': 18.19.59 + '@types/lodash': 4.17.13 + '@types/node': 18.19.65 '@types/sinon': 10.0.0 lodash: 4.17.21 mock-stdin: 1.0.0 - nock: 13.5.5 + nock: 13.5.6 sinon: 16.1.3 stdout-stderr: 0.1.13 transitivePeerDependencies: - supports-color dev: true - /fast-check/3.22.0: - resolution: {integrity: sha512-8HKz3qXqnHYp/VCNn2qfjHdAdcI8zcSqOyX64GOMukp7SL2bfzfeDKjSd+UyECtejccaZv3LcvZTm9YDD22iCQ==} + /fast-check/3.23.1: + resolution: {integrity: sha512-u/MudsoQEgBUZgR5N1v87vEgybeVYus9VnDVaIkxkkGP2jt54naghQ3PCQHJiogS8U/GavZCUPFfx3Xkp+NaHw==} engines: {node: '>=8.0.0'} dependencies: pure-rand: 6.1.0 @@ -7262,7 +7265,7 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.3.1 + flatted: 3.3.2 keyv: 4.5.4 rimraf: 3.0.2 @@ -7275,8 +7278,8 @@ packages: resolution: {integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==} dev: true - /flatted/3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + /flatted/3.3.2: + resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} /follow-redirects/1.15.9: resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} @@ -7296,7 +7299,7 @@ packages: resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} engines: {node: '>=8.0.0'} dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 3.0.7 dev: true @@ -7304,7 +7307,7 @@ packages: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 4.1.0 /form-data/4.0.1: @@ -7322,7 +7325,7 @@ packages: dezalgo: 1.0.4 hexoid: 1.0.0 once: 1.4.0 - qs: 6.13.0 + qs: 6.13.1 dev: true /forwarded/0.2.0: @@ -7425,7 +7428,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 functions-have-names: 1.2.3 /functional-red-black-tree/1.0.1: @@ -7625,16 +7628,16 @@ packages: lodash: 4.17.21 dev: true - /graphology-types/0.24.7: - resolution: {integrity: sha512-tdcqOOpwArNjEr0gNQKCXwaNCWnQJrog14nJNQPeemcLnXQUUGrsCWpWkVKt46zLjcS6/KGoayeJfHHyPDlvwA==} + /graphology-types/0.24.8: + resolution: {integrity: sha512-hDRKYXa8TsoZHjgEaysSRyPdT6uB78Ci8WnjgbStlQysz7xR52PInxNsmnB7IBOM1BhikxkNyCVEFgmPKnpx3Q==} - /graphology/0.25.4_graphology-types@0.24.7: + /graphology/0.25.4_graphology-types@0.24.8: resolution: {integrity: sha512-33g0Ol9nkWdD6ulw687viS8YJQBxqG5LWII6FI6nul0pq6iM2t5EKquOTFDbyTblRB3O9I+7KX4xI8u5ffekAQ==} peerDependencies: graphology-types: '>=0.24.0' dependencies: events: 3.3.0 - graphology-types: 0.24.7 + graphology-types: 0.24.8 obliterator: 2.0.4 /graphql-scalars/1.23.0_graphql@16.9.0: @@ -7644,7 +7647,7 @@ packages: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: graphql: 16.9.0 - tslib: 2.8.0 + tslib: 2.8.1 dev: false /graphql-subscriptions/2.0.0_graphql@16.9.0: @@ -7663,7 +7666,7 @@ packages: graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: graphql: 16.9.0 - tslib: 2.8.0 + tslib: 2.8.1 /graphql/16.9.0: resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} @@ -8003,10 +8006,6 @@ packages: hasown: 2.0.2 side-channel: 1.0.6 - /interpret/1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - /ipaddr.js/1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -8032,6 +8031,12 @@ packages: /is-arrayish/0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + /is-async-function/2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + /is-bigint/1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: @@ -8103,6 +8108,12 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + /is-finalizationregistry/1.1.0: + resolution: {integrity: sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + /is-fullwidth-code-point/2.0.0: resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} engines: {node: '>=4'} @@ -8311,7 +8322,7 @@ packages: engines: {node: '>=8'} dependencies: archy: 1.0.0 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 istanbul-lib-coverage: 3.2.2 p-map: 3.0.0 rimraf: 3.0.2 @@ -8402,110 +8413,109 @@ packages: engines: {node: '>=6'} hasBin: true - /jsii-pacmak/1.104.0: - resolution: {integrity: sha512-KxdYOzpBSnixZ5VjKsWvVIaRAwW4L5JJS3GE0yn5pj6Antx2sjaMvy6XsbjI1MPiOe/W8xNlRDW/XgNE+Bzt6g==} + /jsii-pacmak/1.105.0: + resolution: {integrity: sha512-oTQSoCfBite5cb+gwu2N6SWoJY/vteQSiCI24flo9UqR+PdGBlFDIJGPciPS6ZEC2v20et4YSJYyHFXFGfMQsQ==} engines: {node: '>= 14.17.0'} hasBin: true peerDependencies: - jsii-rosetta: ^1.104.0 || ~5.2.0 || ~5.3.0 || ~5.4.0 || ~5.5.0 + jsii-rosetta: ^1.105.0 || ~5.2.0 || ~5.3.0 || ~5.4.0 || ~5.5.0 || ~5.6.0 dependencies: - '@jsii/check-node': 1.104.0 - '@jsii/spec': 1.104.0 + '@jsii/check-node': 1.105.0 + '@jsii/spec': 1.105.0 clone: 2.1.2 - codemaker: 1.104.0 + codemaker: 1.105.0 commonmark: 0.31.2 escape-string-regexp: 4.0.0 fs-extra: 10.1.0 - jsii-reflect: 1.104.0 + jsii-reflect: 1.105.0 semver: 7.6.3 spdx-license-list: 6.9.0 xmlbuilder: 15.1.1 yargs: 16.2.0 - /jsii-pacmak/1.104.0_jsii-rosetta@5.5.5: - resolution: {integrity: sha512-KxdYOzpBSnixZ5VjKsWvVIaRAwW4L5JJS3GE0yn5pj6Antx2sjaMvy6XsbjI1MPiOe/W8xNlRDW/XgNE+Bzt6g==} + /jsii-pacmak/1.105.0_jsii-rosetta@5.6.0: + resolution: {integrity: sha512-oTQSoCfBite5cb+gwu2N6SWoJY/vteQSiCI24flo9UqR+PdGBlFDIJGPciPS6ZEC2v20et4YSJYyHFXFGfMQsQ==} engines: {node: '>= 14.17.0'} hasBin: true peerDependencies: - jsii-rosetta: ^1.104.0 || ~5.2.0 || ~5.3.0 || ~5.4.0 || ~5.5.0 + jsii-rosetta: ^1.105.0 || ~5.2.0 || ~5.3.0 || ~5.4.0 || ~5.5.0 || ~5.6.0 dependencies: - '@jsii/check-node': 1.104.0 - '@jsii/spec': 1.104.0 + '@jsii/check-node': 1.105.0 + '@jsii/spec': 1.105.0 clone: 2.1.2 - codemaker: 1.104.0 + codemaker: 1.105.0 commonmark: 0.31.2 escape-string-regexp: 4.0.0 fs-extra: 10.1.0 - jsii-reflect: 1.104.0 - jsii-rosetta: 5.5.5 + jsii-reflect: 1.105.0 + jsii-rosetta: 5.6.0 semver: 7.6.3 spdx-license-list: 6.9.0 xmlbuilder: 15.1.1 yargs: 16.2.0 - /jsii-reflect/1.104.0: - resolution: {integrity: sha512-tBdJvLPdfrlAI7ijKmuUv48Nkk0aC26VC/wtNjVqtJmpKsDOOG1JXKiIny690FnifhgpdoHnrVE12asSpFdPfA==} + /jsii-reflect/1.105.0: + resolution: {integrity: sha512-YzlU3VJ0sBfsEqdVFYlzCB3MhW1J/3KuGec2MwBXZ8XMrZ69OODBtnDnoSTyRsnigqCnkuYTD27JhNcEic8v9g==} engines: {node: '>= 14.17.0'} hasBin: true dependencies: - '@jsii/check-node': 1.104.0 - '@jsii/spec': 1.104.0 + '@jsii/check-node': 1.105.0 + '@jsii/spec': 1.105.0 chalk: 4.1.2 fs-extra: 10.1.0 - oo-ascii-tree: 1.104.0 + oo-ascii-tree: 1.105.0 yargs: 16.2.0 - /jsii-rosetta/5.5.5: - resolution: {integrity: sha512-eXkY5eJck2XPd+xk6f4uRQ1S1d5/on2GO1H1Rr6WkJW7E51FXltpsmPaXzrAtvNd6doBNd6/X1CM4otEt/nnBA==} + /jsii-rosetta/5.6.0: + resolution: {integrity: sha512-PSt2PFK1ssLcRAiGnK+k0On61Idh8uTCJcofC+vPr3dOgbVNbtIVI70z9Uw2bOwByrJ+ApHewubi7cWhybEcrA==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: - '@jsii/check-node': 1.103.1 - '@jsii/spec': 1.104.0 - '@xmldom/xmldom': 0.9.4 + '@jsii/check-node': 1.104.0 + '@jsii/spec': 1.105.0 + '@xmldom/xmldom': 0.9.5 chalk: 4.1.2 commonmark: 0.31.2 fast-glob: 3.3.2 - jsii: 5.5.4 + jsii: 5.6.0 semver: 7.6.3 semver-intersect: 1.5.0 - stream-json: 1.9.0 - typescript: 5.5.4 + stream-json: 1.9.1 + typescript: 5.6.3 workerpool: 6.5.1 yargs: 17.7.2 transitivePeerDependencies: - supports-color - /jsii-srcmak/0.1.1280: - resolution: {integrity: sha512-7+pTg7JBbKIIoWvZqe66EtM2SUxbPqd72n6WF90ax/exq3/rnaCd7inPwG+nDYB0du6ahKrZ/p8whBEysZvZ/Q==} + /jsii-srcmak/0.1.1304: + resolution: {integrity: sha512-vqnTfGrT2thnetvtgu+BqidbUcPOShSf5VweCBhDApMDSZFtVJEjj/SxKuiG9iu9VNcYjlC5bpxwqcgY5aAbog==} hasBin: true dependencies: fs-extra: 9.1.0 - jsii: 5.5.4 - jsii-pacmak: 1.104.0_jsii-rosetta@5.5.5 - jsii-rosetta: 5.5.5 + jsii: 5.6.0 + jsii-pacmak: 1.105.0_jsii-rosetta@5.6.0 + jsii-rosetta: 5.6.0 ncp: 2.0.0 yargs: 17.7.2 transitivePeerDependencies: - supports-color - /jsii/5.5.4: - resolution: {integrity: sha512-ftEKVacc0kLrxCJyCeVJ+C5JYpUY5GBpy4ckt1LgblYQWa1CDu+5qUn2MvD5k8AwnDp36Dm6iQKislhSTOxBkA==} + /jsii/5.6.0: + resolution: {integrity: sha512-XBXAF9a4UF2HE+LMSa+WDuYRNpmZlBxHrXaTVIFumo0oAuKb9eauPd4slwgQnCftyP5iyk8zX/Z2y4I3yQVcfA==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: - '@jsii/check-node': 1.103.1 - '@jsii/spec': 1.104.0 + '@jsii/check-node': 1.104.0 + '@jsii/spec': 1.105.0 case: 1.6.3 chalk: 4.1.2 - downlevel-dts: 0.11.0 fast-deep-equal: 3.1.3 log4js: 6.9.1 semver: 7.6.3 semver-intersect: 1.5.0 sort-json: 2.0.1 spdx-license-list: 6.9.0 - typescript: 5.5.4 + typescript: 5.6.3 yargs: 17.7.2 transitivePeerDependencies: - supports-color @@ -8857,7 +8867,7 @@ packages: dependencies: date-format: 4.0.14 debug: 4.3.7 - flatted: 3.3.1 + flatted: 3.3.2 rfdc: 1.4.1 streamroller: 3.1.5 transitivePeerDependencies: @@ -9303,8 +9313,8 @@ packages: - supports-color dev: true - /nock/13.5.5: - resolution: {integrity: sha512-XKYnqUrCwXC8DGG1xX4YH5yNIrlh9c065uaMZZHUoeUUINTOyt+x/G+ezYk0Ft6ExSREVIs+qBJDK503viTfFA==} + /nock/13.5.6: + resolution: {integrity: sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==} engines: {node: '>= 10.13'} dependencies: debug: 4.3.7 @@ -9362,7 +9372,7 @@ packages: resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==} engines: {node: '>=8'} dependencies: - process-on-spawn: 1.0.0 + process-on-spawn: 1.1.0 dev: true /node-releases/2.0.18: @@ -9465,7 +9475,7 @@ packages: make-dir: 3.1.0 node-preload: 0.2.1 p-map: 3.0.0 - process-on-spawn: 1.0.0 + process-on-spawn: 1.1.0 resolve-from: 5.0.0 rimraf: 3.0.2 signal-exit: 3.0.7 @@ -9484,8 +9494,8 @@ packages: resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} engines: {node: '>= 6'} - /object-inspect/1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + /object-inspect/1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} /object-is/1.1.6: @@ -9518,7 +9528,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-object-atoms: 1.0.0 /object.groupby/1.0.3: @@ -9527,7 +9537,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 /object.values/1.2.0: resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} @@ -9564,8 +9574,8 @@ packages: dependencies: mimic-fn: 2.1.0 - /oo-ascii-tree/1.104.0: - resolution: {integrity: sha512-2cScXtwxt5WVIi3+vdkbKoHSeRepRcibnFhdV2ojGxVvj1KU0m0EHfBCsal6XEg1vBkMgTIxnxVd+E/l/Fam3w==} + /oo-ascii-tree/1.105.0: + resolution: {integrity: sha512-fz4QixX/ImVEMbABqCJxxSwvJGfw9vfq2121RMq/qtCv7BiarY4ZPpheHheOTBvEnhqy81dyMpxiXAY8U3rPjA==} engines: {node: '>= 14.17.0'} /open/7.4.2: @@ -9745,7 +9755,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.26.0 + '@babel/code-frame': 7.26.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -9759,7 +9769,7 @@ packages: resolution: {integrity: sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==} dependencies: ansi-escapes: 4.3.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 /patch-console/1.0.0: resolution: {integrity: sha512-nxl9nrnLQmh64iTzMfyylSlRozL7kAXIaxw1fVcLYdyhNkJCRUzirRZTikXGJsg+hc4fqpneTK6iU2H1Q8THSA==} @@ -9952,8 +9962,8 @@ packages: /process-nextick-args/2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - /process-on-spawn/1.0.0: - resolution: {integrity: sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==} + /process-on-spawn/1.1.0: + resolution: {integrity: sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==} engines: {node: '>=8'} dependencies: fromentries: 1.3.2 @@ -10041,6 +10051,13 @@ packages: dependencies: side-channel: 1.0.6 + /qs/6.13.1: + resolution: {integrity: sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.6 + dev: true + /querystring/0.2.0: resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} engines: {node: '>=0.4.x'} @@ -10189,12 +10206,6 @@ packages: dependencies: picomatch: 2.3.1 - /rechoir/0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} - dependencies: - resolve: 1.22.8 - /redeyed/2.1.1: resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} dependencies: @@ -10203,6 +10214,18 @@ packages: /reflect-metadata/0.1.13: resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==} + /reflect.getprototypeof/1.0.7: + resolution: {integrity: sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + which-builtin-type: 1.2.0 + /regenerator-runtime/0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} dev: true @@ -10314,7 +10337,7 @@ packages: dependencies: debug: 4.3.7 rhea: 3.0.3 - tslib: 2.8.0 + tslib: 2.8.1 transitivePeerDependencies: - supports-color dev: false @@ -10385,7 +10408,7 @@ packages: /rxjs/7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.8.0 + tslib: 2.8.1 dev: true /safe-array-concat/1.1.2: @@ -10527,7 +10550,7 @@ packages: ajv: 8.17.1 ajv-formats: 2.1.1 archiver: 5.3.0 - aws-sdk: 2.1691.0 + aws-sdk: 2.1692.0 bluebird: 3.7.2 cachedir: 2.4.0 chalk: 4.1.2 @@ -10637,15 +10660,6 @@ packages: /shell-quote/1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - /shelljs/0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true - dependencies: - glob: 7.2.3 - interpret: 1.4.0 - rechoir: 0.6.2 - /shortid/2.2.16: resolution: {integrity: sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. @@ -10660,7 +10674,7 @@ packages: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.2 + object-inspect: 1.13.3 /signal-exit/3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -10893,8 +10907,8 @@ packages: /stream-chain/2.2.5: resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==} - /stream-json/1.9.0: - resolution: {integrity: sha512-TqnfW7hRTKje7UobBzXZJ2qOEDJvdcSVgVIK/fopC03xINFuFqQs8RVjyDT4ry7TmOo2ueAXwpXXXG4tNgtvoQ==} + /stream-json/1.9.1: + resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==} dependencies: stream-chain: 2.2.5 @@ -10947,7 +10961,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-object-atoms: 1.0.0 /string.prototype.trimend/1.0.8: @@ -11074,7 +11088,7 @@ packages: formidable: 2.1.2 methods: 1.1.2 mime: 2.6.0 - qs: 6.13.0 + qs: 6.13.1 readable-stream: 3.6.2 semver: 7.6.3 transitivePeerDependencies: @@ -11282,7 +11296,7 @@ packages: resolution: {integrity: sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==} engines: {node: '>=8'} dependencies: - tslib: 2.8.0 + tslib: 2.8.1 /ts-morph/19.0.0: resolution: {integrity: sha512-D6qcpiJdn46tUqV45vr5UGM2dnIEuTGNxVhg0sk5NX11orcouwj6i1bMqZIz2mZTZB1Hcgy7C3oEVhAT+f6mbQ==} @@ -11291,7 +11305,7 @@ packages: code-block-writer: 12.0.0 dev: false - /ts-node/10.9.2_5aurqvvi2kcpaxpbv224uoiqwq: + /ts-node/10.9.2_jtknrvqdlvipgdxn6jbxe7dreq: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -11310,8 +11324,8 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.59 - acorn: 8.13.0 + '@types/node': 18.19.65 + acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 @@ -11357,8 +11371,8 @@ packages: /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - /tslib/2.8.0: - resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} + /tslib/2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} /tsutils/3.21.0_typescript@5.1.6: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -11446,8 +11460,8 @@ packages: has-proto: 1.0.3 is-typed-array: 1.1.13 - /typed-array-byte-offset/1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + /typed-array-byte-offset/1.0.3: + resolution: {integrity: sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 @@ -11456,17 +11470,18 @@ packages: gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 + reflect.getprototypeof: 1.0.7 - /typed-array-length/1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + /typed-array-length/1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 - has-proto: 1.0.3 is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 + reflect.getprototypeof: 1.0.7 /typedarray-to-buffer/3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} @@ -11480,10 +11495,10 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 typed-array-buffer: 1.0.2 - typed-array-byte-offset: 1.0.2 + typed-array-byte-offset: 1.0.3 dev: true /typescript/5.1.6: @@ -11491,13 +11506,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript/5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} - engines: {node: '>=14.17'} - hasBin: true - - /typescript/5.7.0-dev.20241025: - resolution: {integrity: sha512-2Byc/3ywylhhYPpag3uxhRxz6bZSKyS7jBsRkkFFhs0DeH3xlkQu+TElWOvhxtAfPNm7nB74xAqs++a3Iv18cg==} + /typescript/5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true @@ -11522,8 +11532,8 @@ packages: /undici-types/6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - /undici/6.20.1: - resolution: {integrity: sha512-AjQF1QsmqfJys+LXfGTNum+qw4S88CojRInG/6t31W/1fk6G59s92bnAvGz5Cmur+kQv2SURXEvvudLmbrE8QA==} + /undici/6.21.0: + resolution: {integrity: sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==} engines: {node: '>=18.17'} dev: false @@ -11671,6 +11681,24 @@ packages: is-string: 1.0.7 is-symbol: 1.0.4 + /which-builtin-type/1.2.0: + resolution: {integrity: sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.1.0 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + /which-collection/1.0.2: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} @@ -11877,8 +11905,8 @@ packages: engines: {node: '>= 6'} dev: false - /yaml/2.6.0: - resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} + /yaml/2.6.1: + resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} engines: {node: '>= 14'} hasBin: true dev: false diff --git a/packages/framework-provider-azure/src/helpers/query-helper.ts b/packages/framework-provider-azure/src/helpers/query-helper.ts index 7adb6683e..32e85a778 100644 --- a/packages/framework-provider-azure/src/helpers/query-helper.ts +++ b/packages/framework-provider-azure/src/helpers/query-helper.ts @@ -68,6 +68,13 @@ export async function search( .fetchAll() resources = nestProperties(resources) + resources = resources.map((resource) => ({ + ...resource, + boosterMetadata: { + ...resource.boosterMetadata, + optimisticConcurrencyValue: resource._etag, + }, + })) if (paginatedVersion) { return { From da469aec7ed4234a16f96983c02d0b88c3260634 Mon Sep 17 00:00:00 2001 From: GITHUBACTION Date: Mon, 25 Nov 2024 15:49:51 +0000 Subject: [PATCH 43/47] Bump versions [skip ci] --- ...timistic_concurrency_2024-11-24-17-37.json | 10 ------- common/config/rush/version-policies.json | 2 +- packages/application-tester/package.json | 6 ++-- packages/cli/package.json | 10 +++---- .../framework-common-helpers/package.json | 6 ++-- packages/framework-core/CHANGELOG.json | 28 +++++++++++++++++++ packages/framework-core/CHANGELOG.md | 9 +++++- packages/framework-core/package.json | 10 +++---- .../framework-integration-tests/package.json | 28 +++++++++---------- .../package.json | 10 +++---- packages/framework-provider-aws/package.json | 8 +++--- .../package.json | 12 ++++---- .../framework-provider-azure/package.json | 8 +++--- .../package.json | 10 +++---- .../framework-provider-local/package.json | 8 +++--- packages/framework-types/package.json | 6 ++-- packages/metadata-booster/package.json | 4 +-- tools/eslint-config/package.json | 2 +- 18 files changed, 101 insertions(+), 76 deletions(-) delete mode 100644 common/changes/@boostercloud/framework-core/fix_optimistic_concurrency_2024-11-24-17-37.json diff --git a/common/changes/@boostercloud/framework-core/fix_optimistic_concurrency_2024-11-24-17-37.json b/common/changes/@boostercloud/framework-core/fix_optimistic_concurrency_2024-11-24-17-37.json deleted file mode 100644 index c839e37a6..000000000 --- a/common/changes/@boostercloud/framework-core/fix_optimistic_concurrency_2024-11-24-17-37.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@boostercloud/framework-core", - "comment": "Fixes optimistic concurrency issue found when projecting read models", - "type": "patch" - } - ], - "packageName": "@boostercloud/framework-core" -} \ No newline at end of file diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 99de11671..330c4f728 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -103,6 +103,6 @@ "definitionName": "lockStepVersion", "policyName": "booster", "mainProject": "@boostercloud/framework-core", - "version": "2.18.5" + "version": "2.18.6" } ] diff --git a/packages/application-tester/package.json b/packages/application-tester/package.json index c8bc41d25..db40f1d70 100644 --- a/packages/application-tester/package.json +++ b/packages/application-tester/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/application-tester", - "version": "2.18.5", + "version": "2.18.6", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "application-tester" @@ -36,7 +36,7 @@ }, "dependencies": { "@apollo/client": "3.7.13", - "@boostercloud/framework-types": "workspace:^2.18.5", + "@boostercloud/framework-types": "workspace:^2.18.6", "cross-fetch": "3.1.5", "graphql": "^16.6.0", "jsonwebtoken": "9.0.1", @@ -48,7 +48,7 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.5", + "@boostercloud/eslint-config": "workspace:^2.18.6", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", "eslint": "^8.23.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index f2978db56..9d5a0a572 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/cli", "description": "CLI of the Booster Framework, the next level of abstraction for cloud-native applications", - "version": "2.18.5", + "version": "2.18.6", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -12,8 +12,8 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-core": "workspace:^2.18.5", - "@boostercloud/framework-types": "workspace:^2.18.5", + "@boostercloud/framework-core": "workspace:^2.18.6", + "@boostercloud/framework-types": "workspace:^2.18.6", "@oclif/core": "3.15.0", "@oclif/plugin-help": "^5", "chalk": "^2.4.2", @@ -30,8 +30,8 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.5", - "@boostercloud/application-tester": "workspace:^2.18.5", + "@boostercloud/eslint-config": "workspace:^2.18.6", + "@boostercloud/application-tester": "workspace:^2.18.6", "@oclif/test": "^3.0.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", diff --git a/packages/framework-common-helpers/package.json b/packages/framework-common-helpers/package.json index 433592096..7a90181f8 100644 --- a/packages/framework-common-helpers/package.json +++ b/packages/framework-common-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-common-helpers", - "version": "2.18.5", + "version": "2.18.6", "description": "Contains Booster common helpers used by the core and provider packages", "keywords": [ "framework-common-helpers" @@ -36,14 +36,14 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-types": "workspace:^2.18.5", + "@boostercloud/framework-types": "workspace:^2.18.6", "child-process-promise": "^2.2.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "class-transformer": "~0.5.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.5", + "@boostercloud/eslint-config": "workspace:^2.18.6", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/child-process-promise": "^2.2.1", diff --git a/packages/framework-core/CHANGELOG.json b/packages/framework-core/CHANGELOG.json index a4ac6ee61..361294e2e 100644 --- a/packages/framework-core/CHANGELOG.json +++ b/packages/framework-core/CHANGELOG.json @@ -1,6 +1,34 @@ { "name": "@boostercloud/framework-core", "entries": [ + { + "version": "2.18.6", + "tag": "@boostercloud/framework-core_v2.18.6", + "date": "Mon, 25 Nov 2024 15:49:50 GMT", + "comments": { + "patch": [ + { + "comment": "Fixes optimistic concurrency issue found when projecting read models", + "author": "Mario Castro Squella ", + "commit": "55cc944003d23a62fec52ee945fc2bcd693f52aa" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@boostercloud/framework-common-helpers\" from `^2.18.5` to `^2.18.6`" + }, + { + "comment": "Updating dependency \"@boostercloud/framework-types\" from `^2.18.5` to `^2.18.6`" + }, + { + "comment": "Updating dependency \"@boostercloud/metadata-booster\" from `^2.18.5` to `^2.18.6`" + }, + { + "comment": "Updating dependency \"@boostercloud/eslint-config\" from `^2.18.5` to `^2.18.6`" + } + ] + } + }, { "version": "2.18.5", "tag": "@boostercloud/framework-core_v2.18.5", diff --git a/packages/framework-core/CHANGELOG.md b/packages/framework-core/CHANGELOG.md index 30801b25f..8c6b1d44c 100644 --- a/packages/framework-core/CHANGELOG.md +++ b/packages/framework-core/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @boostercloud/framework-core -This log was last generated on Tue, 29 Oct 2024 18:40:31 GMT and should not be manually modified. +This log was last generated on Mon, 25 Nov 2024 15:49:50 GMT and should not be manually modified. + +## 2.18.6 +Mon, 25 Nov 2024 15:49:50 GMT + +### Patches + +- Fixes optimistic concurrency issue found when projecting read models ## 2.18.5 Tue, 29 Oct 2024 18:40:31 GMT diff --git a/packages/framework-core/package.json b/packages/framework-core/package.json index f01b03ac2..499437436 100644 --- a/packages/framework-core/package.json +++ b/packages/framework-core/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-core", - "version": "2.18.5", + "version": "2.18.6", "description": "Library for your Booster apps", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", @@ -37,8 +37,8 @@ "graphql": "^16.6.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.5", - "@boostercloud/framework-types": "workspace:^2.18.5", + "@boostercloud/framework-common-helpers": "workspace:^2.18.6", + "@boostercloud/framework-types": "workspace:^2.18.6", "fp-ts": "^2.11.0", "graphql-scalars": "^1.17.0", "graphql-subscriptions": "2.0.0", @@ -61,8 +61,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/metadata-booster": "workspace:^2.18.5", - "@boostercloud/eslint-config": "workspace:^2.18.5", + "@boostercloud/metadata-booster": "workspace:^2.18.6", + "@boostercloud/eslint-config": "workspace:^2.18.6", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-integration-tests/package.json b/packages/framework-integration-tests/package.json index f33d96796..ecbb1e59d 100644 --- a/packages/framework-integration-tests/package.json +++ b/packages/framework-integration-tests/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-integration-tests", "description": "Example project for Booster", - "version": "2.18.5", + "version": "2.18.6", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -9,12 +9,12 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.5", - "@boostercloud/framework-core": "workspace:^2.18.5", - "@boostercloud/framework-provider-aws": "workspace:^2.18.5", - "@boostercloud/framework-provider-azure": "workspace:^2.18.5", - "@boostercloud/framework-provider-local": "workspace:^2.18.5", - "@boostercloud/framework-types": "workspace:^2.18.5", + "@boostercloud/framework-common-helpers": "workspace:^2.18.6", + "@boostercloud/framework-core": "workspace:^2.18.6", + "@boostercloud/framework-provider-aws": "workspace:^2.18.6", + "@boostercloud/framework-provider-azure": "workspace:^2.18.6", + "@boostercloud/framework-provider-local": "workspace:^2.18.6", + "@boostercloud/framework-types": "workspace:^2.18.6", "aws-sdk": "2.853.0", "graphql": "^16.6.0", "tslib": "^2.4.0", @@ -33,13 +33,13 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.5", - "@boostercloud/application-tester": "workspace:^2.18.5", - "@boostercloud/cli": "workspace:^2.18.5", - "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.18.5", - "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.18.5", - "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.18.5", - "@boostercloud/metadata-booster": "workspace:^2.18.5", + "@boostercloud/eslint-config": "workspace:^2.18.6", + "@boostercloud/application-tester": "workspace:^2.18.6", + "@boostercloud/cli": "workspace:^2.18.6", + "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.18.6", + "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.18.6", + "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.18.6", + "@boostercloud/metadata-booster": "workspace:^2.18.6", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-aws-infrastructure/package.json b/packages/framework-provider-aws-infrastructure/package.json index 64c23d5cb..82a283977 100644 --- a/packages/framework-provider-aws-infrastructure/package.json +++ b/packages/framework-provider-aws-infrastructure/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws-infrastructure", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.18.5", + "version": "2.18.6", "description": "Handle the Booster deployment process to AWS", "keywords": [ "framework-provider-aws-infrastructure" @@ -41,9 +41,9 @@ "@aws-cdk/aws-s3-deployment": "^1.170.0", "@aws-cdk/core": "^1.170.0", "@aws-cdk/cx-api": "^1.170.0", - "@boostercloud/framework-common-helpers": "workspace:^2.18.5", - "@boostercloud/framework-provider-aws": "workspace:^2.18.5", - "@boostercloud/framework-types": "workspace:^2.18.5", + "@boostercloud/framework-common-helpers": "workspace:^2.18.6", + "@boostercloud/framework-provider-aws": "workspace:^2.18.6", + "@boostercloud/framework-types": "workspace:^2.18.6", "constructs": "^3.3.69", "aws-cdk": "^1.170.0", "aws-sdk": "2.853.0", @@ -69,7 +69,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.5", + "@boostercloud/eslint-config": "workspace:^2.18.6", "@types/aws-lambda": "8.10.48", "@types/aws-sdk": "2.7.0", "@types/chai": "4.2.18", diff --git a/packages/framework-provider-aws/package.json b/packages/framework-provider-aws/package.json index 8a8d7f36a..829674210 100644 --- a/packages/framework-provider-aws/package.json +++ b/packages/framework-provider-aws/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.18.5", + "version": "2.18.6", "description": "Handle Booster's integration with AWS", "keywords": [ "framework-provider-aws" @@ -24,8 +24,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.5", - "@boostercloud/framework-types": "workspace:^2.18.5", + "@boostercloud/framework-common-helpers": "workspace:^2.18.6", + "@boostercloud/framework-types": "workspace:^2.18.6", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4" }, @@ -43,7 +43,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.5", + "@boostercloud/eslint-config": "workspace:^2.18.6", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-azure-infrastructure/package.json b/packages/framework-provider-azure-infrastructure/package.json index 50eba1c10..240be59e8 100644 --- a/packages/framework-provider-azure-infrastructure/package.json +++ b/packages/framework-provider-azure-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure-infrastructure", - "version": "2.18.5", + "version": "2.18.6", "description": "Handle the Booster deployment process to Azure", "keywords": [ "framework-provider-azure-infrastructure" @@ -25,10 +25,10 @@ "dependencies": { "@azure/arm-appservice": "^13.0.0", "@azure/cosmos": "^4.0.0", - "@boostercloud/framework-common-helpers": "workspace:^2.18.5", - "@boostercloud/framework-core": "workspace:^2.18.5", - "@boostercloud/framework-provider-azure": "workspace:^2.18.5", - "@boostercloud/framework-types": "workspace:^2.18.5", + "@boostercloud/framework-common-helpers": "workspace:^2.18.6", + "@boostercloud/framework-core": "workspace:^2.18.6", + "@boostercloud/framework-provider-azure": "workspace:^2.18.6", + "@boostercloud/framework-types": "workspace:^2.18.6", "@cdktf/provider-azurerm": "13.3.0", "@cdktf/provider-time": "9.0.2", "@types/archiver": "5.1.0", @@ -67,7 +67,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.5", + "@boostercloud/eslint-config": "workspace:^2.18.6", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-azure/package.json b/packages/framework-provider-azure/package.json index a318914df..6a727fa17 100644 --- a/packages/framework-provider-azure/package.json +++ b/packages/framework-provider-azure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure", - "version": "2.18.5", + "version": "2.18.6", "description": "Handle Booster's integration with Azure", "keywords": [ "framework-provider-azure" @@ -27,14 +27,14 @@ "@azure/functions": "^1.2.2", "@azure/identity": "~2.1.0", "@azure/event-hubs": "5.11.1", - "@boostercloud/framework-common-helpers": "workspace:^2.18.5", - "@boostercloud/framework-types": "workspace:^2.18.5", + "@boostercloud/framework-common-helpers": "workspace:^2.18.6", + "@boostercloud/framework-types": "workspace:^2.18.6", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "@azure/web-pubsub": "~1.1.0" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.5", + "@boostercloud/eslint-config": "workspace:^2.18.6", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-local-infrastructure/package.json b/packages/framework-provider-local-infrastructure/package.json index 09c5bbdf2..ad9941cbf 100644 --- a/packages/framework-provider-local-infrastructure/package.json +++ b/packages/framework-provider-local-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local-infrastructure", - "version": "2.18.5", + "version": "2.18.6", "description": "Handle the Booster running process of the local runtime", "keywords": [ "framework-provider-local-infrastructure" @@ -23,9 +23,9 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.5", - "@boostercloud/framework-provider-local": "workspace:^2.18.5", - "@boostercloud/framework-types": "workspace:^2.18.5", + "@boostercloud/framework-common-helpers": "workspace:^2.18.6", + "@boostercloud/framework-provider-local": "workspace:^2.18.6", + "@boostercloud/framework-types": "workspace:^2.18.6", "cors": "2.8.5", "express": "^4.19.2", "node-schedule": "^2.1.0", @@ -46,7 +46,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.5", + "@boostercloud/eslint-config": "workspace:^2.18.6", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/cors": "^2.8.12", diff --git a/packages/framework-provider-local/package.json b/packages/framework-provider-local/package.json index 074b6a5fe..9ac534033 100644 --- a/packages/framework-provider-local/package.json +++ b/packages/framework-provider-local/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local", - "version": "2.18.5", + "version": "2.18.6", "description": "Debug your Booster projects locally", "keywords": [ "framework-provider-local" @@ -23,8 +23,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.5", - "@boostercloud/framework-types": "workspace:^2.18.5", + "@boostercloud/framework-common-helpers": "workspace:^2.18.6", + "@boostercloud/framework-types": "workspace:^2.18.6", "@seald-io/nedb": "4.0.2", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", @@ -44,7 +44,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.5", + "@boostercloud/eslint-config": "workspace:^2.18.6", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/express": "^4.17.21", diff --git a/packages/framework-types/package.json b/packages/framework-types/package.json index 3c0354601..9ffccd6f6 100644 --- a/packages/framework-types/package.json +++ b/packages/framework-types/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-types", - "version": "2.18.5", + "version": "2.18.6", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "framework-types" @@ -54,8 +54,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.5", - "@boostercloud/metadata-booster": "workspace:^2.18.5", + "@boostercloud/eslint-config": "workspace:^2.18.6", + "@boostercloud/metadata-booster": "workspace:^2.18.6", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/mocha": "10.0.1", diff --git a/packages/metadata-booster/package.json b/packages/metadata-booster/package.json index 49f31dbb5..c9e129360 100644 --- a/packages/metadata-booster/package.json +++ b/packages/metadata-booster/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/metadata-booster", - "version": "2.18.5", + "version": "2.18.6", "description": "Emits detailed metadata of your types. You can then get it in runtime to deal with schema-aware operation, like defining GraphQL schemas, ORM operations, etc.", "repository": "https://github.com/boostercloud/booster.git", "keywords": [ @@ -38,7 +38,7 @@ "eslint-config-prettier": "8.3.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "3.4.0", - "@boostercloud/eslint-config": "workspace:^2.18.5", + "@boostercloud/eslint-config": "workspace:^2.18.6", "@types/node": "^18.18.2", "ts-node": "^10.9.1", "ts-patch": "3.1.2", diff --git a/tools/eslint-config/package.json b/tools/eslint-config/package.json index f80da81f1..f491e3e56 100644 --- a/tools/eslint-config/package.json +++ b/tools/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/eslint-config", - "version": "2.18.5", + "version": "2.18.6", "description": "Shared eslint rules", "main": "index.js", "publishConfig": { From 182bd621da0c25b85f1d48d9e0ff139092c36c5a Mon Sep 17 00:00:00 2001 From: Nicolas Scheers Date: Sun, 8 Dec 2024 22:25:17 +0100 Subject: [PATCH 44/47] commit: remove unnecessary getId calls --- packages/framework-integration-tests/package.json | 2 +- .../src/read-models/book-read-model.ts | 5 +---- .../src/read-models/movie-read-model.ts | 5 +---- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/packages/framework-integration-tests/package.json b/packages/framework-integration-tests/package.json index f33d96796..1ea5ff2a6 100644 --- a/packages/framework-integration-tests/package.json +++ b/packages/framework-integration-tests/package.json @@ -126,4 +126,4 @@ "integration/azure-func": "TS_NODE_PROJECT=\"./tsconfig.integration.json\" TESTED_PROVIDER=AZURE BOOSTER_ENV=azure mocha --forbid-only --exit --config \"integration/provider-unaware/end-to-end/.mocharc.yml\" \"integration/provider-unaware/functionality/**/*.integration.ts\"" }, "types": "dist/index.d.ts" -} +} \ No newline at end of file diff --git a/packages/framework-integration-tests/src/read-models/book-read-model.ts b/packages/framework-integration-tests/src/read-models/book-read-model.ts index e135e8889..68c346122 100644 --- a/packages/framework-integration-tests/src/read-models/book-read-model.ts +++ b/packages/framework-integration-tests/src/read-models/book-read-model.ts @@ -9,10 +9,7 @@ export class BookReadModel { public constructor(readonly id: UUID, readonly title: string, readonly pages: number) {} @Projects(Book, 'id') - public static updateBook(book: Book, oldBook?: BookReadModel): ProjectionResult { - // This method calls are here to ensure they work. More info: https://github.com/boostercloud/booster/issues/797 - book.getId() - + public static updateBook(book: Book): ProjectionResult { return new BookReadModel(book.id, book.title, book.pages) } } diff --git a/packages/framework-integration-tests/src/read-models/movie-read-model.ts b/packages/framework-integration-tests/src/read-models/movie-read-model.ts index b8d245287..efff47a18 100644 --- a/packages/framework-integration-tests/src/read-models/movie-read-model.ts +++ b/packages/framework-integration-tests/src/read-models/movie-read-model.ts @@ -9,10 +9,7 @@ export class MovieReadModel { public constructor(readonly id: UUID, readonly title: string) {} @Projects(Movie, 'id') - public static updateMovie(movie: Movie, oldMovie?: MovieReadModel): ProjectionResult { - // This method calls are here to ensure they work. More info: https://github.com/boostercloud/booster/issues/797 - movie.getId() - + public static updateMovie(movie: Movie): ProjectionResult { return new MovieReadModel(movie.id, movie.title) } } From 13d9c4739806b1b27767da6f218362153713d79f Mon Sep 17 00:00:00 2001 From: Nicolas Scheers Date: Sun, 8 Dec 2024 22:50:56 +0100 Subject: [PATCH 45/47] feat: added change file --- ...on_types_for_queries_2024-12-08-21-50.json | 10 + common/config/rush/pnpm-lock.yaml | 6829 +++++++---------- 2 files changed, 2890 insertions(+), 3949 deletions(-) create mode 100644 common/changes/@boostercloud/framework-core/graphql_union_types_for_queries_2024-12-08-21-50.json diff --git a/common/changes/@boostercloud/framework-core/graphql_union_types_for_queries_2024-12-08-21-50.json b/common/changes/@boostercloud/framework-core/graphql_union_types_for_queries_2024-12-08-21-50.json new file mode 100644 index 000000000..453ce380a --- /dev/null +++ b/common/changes/@boostercloud/framework-core/graphql_union_types_for_queries_2024-12-08-21-50.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@boostercloud/framework-core", + "comment": "Added graphql union types to query return type generation", + "type": "patch" + } + ], + "packageName": "@boostercloud/framework-core" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index bf1024c2f..063435712 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -1,14 +1,15 @@ lockfileVersion: 5.4 importers: + .: specifiers: {} ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.18.2 @@ -50,7 +51,7 @@ importers: devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/jsonwebtoken': 9.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/ws': 8.5.4 '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi @@ -69,10 +70,10 @@ importers: ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^2.18.5 - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-core': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/application-tester': workspace:^2.18.6 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-core': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@oclif/core': 3.15.0 '@oclif/plugin-help': ^5 @@ -128,7 +129,7 @@ importers: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@oclif/core': 3.15.0_typescript@5.1.6 - '@oclif/plugin-help': 5.2.20_jtknrvqdlvipgdxn6jbxe7dreq + '@oclif/plugin-help': 5.2.20_aqnvwcrfkjmhmdr6bfrmuf3scm chalk: 2.4.2 child-process-promise: 2.2.1 execa: 2.1.0 @@ -153,7 +154,7 @@ importers: '@types/inquirer': 6.5.0 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -176,14 +177,14 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -230,7 +231,7 @@ importers: '@types/child-process-promise': 2.2.6 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -252,15 +253,15 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm typescript: 5.1.6 ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-common-helpers': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 - '@boostercloud/metadata-booster': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-common-helpers': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 + '@boostercloud/metadata-booster': workspace:^2.18.6 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 '@effect/platform-node': 0.45.26 @@ -327,7 +328,7 @@ importers: effect: 2.4.17 fast-check: 3.23.1 fp-ts: 2.16.9 - graphql-scalars: 1.23.0_graphql@16.9.0 + graphql-scalars: 1.24.0_graphql@16.9.0 graphql-subscriptions: 2.0.0_graphql@16.9.0 inflected: 2.1.0 iterall: 1.3.0 @@ -346,7 +347,7 @@ importers: '@types/inflected': 1.1.29 '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/validator': 13.1.3 @@ -370,26 +371,26 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^2.18.5 - '@boostercloud/cli': workspace:^2.18.5 - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-common-helpers': workspace:^2.18.5 - '@boostercloud/framework-core': workspace:^2.18.5 - '@boostercloud/framework-provider-aws': workspace:^2.18.5 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.18.5 - '@boostercloud/framework-provider-azure': workspace:^2.18.5 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.18.5 - '@boostercloud/framework-provider-local': workspace:^2.18.5 - '@boostercloud/framework-provider-local-infrastructure': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 - '@boostercloud/metadata-booster': workspace:^2.18.5 + '@boostercloud/application-tester': workspace:^2.18.6 + '@boostercloud/cli': workspace:^2.18.6 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-common-helpers': workspace:^2.18.6 + '@boostercloud/framework-core': workspace:^2.18.6 + '@boostercloud/framework-provider-aws': workspace:^2.18.6 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.18.6 + '@boostercloud/framework-provider-azure': workspace:^2.18.6 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.18.6 + '@boostercloud/framework-provider-local': workspace:^2.18.6 + '@boostercloud/framework-provider-local-infrastructure': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 + '@boostercloud/metadata-booster': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 @@ -470,7 +471,7 @@ importers: '@effect/typeclass': 0.23.17_effect@2.4.17 aws-sdk: 2.853.0 effect: 2.4.17 - express: 4.21.1 + express: 4.21.2 express-unless: 2.1.3 fast-check: 3.23.1 graphql: 16.9.0 @@ -495,7 +496,7 @@ importers: '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 '@types/nedb': 1.8.16 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay @@ -529,15 +530,15 @@ importers: serverless-artillery: 0.5.2 sinon: 9.2.3 subscriptions-transport-ws: 0.11.0_graphql@16.9.0 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-common-helpers': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-common-helpers': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -585,7 +586,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -608,7 +609,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm typescript: 5.1.6 velocityjs: 2.0.6 @@ -631,10 +632,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-common-helpers': workspace:^2.18.5 - '@boostercloud/framework-provider-aws': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-common-helpers': workspace:^2.18.6 + '@boostercloud/framework-provider-aws': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -679,20 +680,20 @@ importers: dependencies: '@aws-cdk/assets': 1.204.0_uszt2j4mor3yrbm3tre3az4zvy '@aws-cdk/aws-apigateway': 1.204.0_cs2gnbp3a35i2p5l5u5a3t4624 - '@aws-cdk/aws-apigatewayv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli - '@aws-cdk/aws-cloudfront': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli + '@aws-cdk/aws-apigatewayv2': 1.204.0_knsptffnex2lyiy4uxr2qfndt4 + '@aws-cdk/aws-cloudfront': 1.204.0_knsptffnex2lyiy4uxr2qfndt4 '@aws-cdk/aws-dynamodb': 1.204.0_ea3k7xy2kixjvb2em7ltbqbgym '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-events-targets': 1.204.0_cboae2e2djj6552nyu56pbamie '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm - '@aws-cdk/aws-lambda-event-sources': 1.204.0_yl5g6fuosfeqtat6z7imtengha + '@aws-cdk/aws-lambda-event-sources': 1.204.0_6ewijctynstfo6zas4hwstt4zy '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-deployment': 1.204.0_vowuuig2yoedxxl4xtk74a3sma '@aws-cdk/cloudformation-diff': 1.203.0 '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam - '@aws-cdk/custom-resources': 1.204.0_c23kgzmvfhgnr6qpzzlbsfzuc4 + '@aws-cdk/custom-resources': 1.204.0_575fyf2i7umbzongv3ijfqjgle '@aws-cdk/cx-api': 1.203.0 '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-provider-aws': link:../framework-provider-aws @@ -716,7 +717,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -737,7 +738,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm typescript: 5.1.6 velocityjs: 2.0.6 @@ -748,9 +749,9 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-common-helpers': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-common-helpers': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -794,7 +795,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay @@ -813,7 +814,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm typescript: 5.1.6 ../../packages/framework-provider-azure-infrastructure: @@ -822,11 +823,11 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-common-helpers': workspace:^2.18.5 - '@boostercloud/framework-core': workspace:^2.18.5 - '@boostercloud/framework-provider-azure': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-common-helpers': workspace:^2.18.6 + '@boostercloud/framework-core': workspace:^2.18.6 + '@boostercloud/framework-provider-azure': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@cdktf/provider-azurerm': 13.3.0 '@cdktf/provider-time': 9.0.2 '@effect-ts/core': ^0.60.4 @@ -911,7 +912,7 @@ importers: '@types/fs-extra': 9.0.13 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 @@ -928,14 +929,14 @@ importers: prettier: 2.3.0 rimraf: 5.0.10 sinon: 9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm typescript: 5.1.6 ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-common-helpers': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-common-helpers': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@seald-io/nedb': 4.0.2 '@types/chai': 4.2.18 @@ -984,7 +985,7 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/sinon-express-mock': 1.3.12 @@ -998,7 +999,7 @@ importers: eslint-plugin-import: 2.31.0_eslint@8.57.1 eslint-plugin-prettier: 3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y eslint-plugin-unicorn: 44.0.2_eslint@8.57.1 - express: 4.21.1 + express: 4.21.2 faker: 5.1.0 mocha: 10.2.0 nyc: 15.1.0 @@ -1007,15 +1008,15 @@ importers: sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm typescript: 5.1.6 ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-common-helpers': workspace:^2.18.5 - '@boostercloud/framework-provider-local': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-common-helpers': workspace:^2.18.6 + '@boostercloud/framework-provider-local': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1057,7 +1058,7 @@ importers: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 cors: 2.8.5 - express: 4.21.1 + express: 4.21.2 node-schedule: 2.1.1 tslib: 2.8.1 devDependencies: @@ -1068,7 +1069,7 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/node-schedule': 1.3.2 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -1090,13 +1091,13 @@ importers: sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm typescript: 5.1.6 ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/metadata-booster': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/metadata-booster': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@effect/cli': 0.35.26 @@ -1155,7 +1156,7 @@ importers: '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/mocha': 10.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 @@ -1180,7 +1181,7 @@ importers: ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@types/node': ^18.18.2 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -1206,7 +1207,7 @@ importers: tslib: 2.8.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi eslint: 8.57.1 @@ -1217,7 +1218,7 @@ importers: prettier: 2.3.0 rimraf: 5.0.10 sinon: 9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm ts-patch: 3.1.2 typescript: 5.1.6 @@ -1245,26 +1246,24 @@ importers: typescript: 5.1.6 packages: + /2-thenable/1.0.0: - resolution: - { integrity: sha512-HqiDzaLDFCXkcCO/SwoyhRwqYtINFHF7t9BDRq4x90TOKNAJpiqUt9X5lQ08bwxYzc067HUywDjGySpebHcUpw== } + resolution: {integrity: sha512-HqiDzaLDFCXkcCO/SwoyhRwqYtINFHF7t9BDRq4x90TOKNAJpiqUt9X5lQ08bwxYzc067HUywDjGySpebHcUpw==} dependencies: d: 1.0.2 es5-ext: 0.10.64 dev: true /@ampproject/remapping/2.3.0: - resolution: - { integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 dev: true /@apollo/client/3.7.13_jxorufveymi4xbrutgakjkp5wa: - resolution: - { integrity: sha512-wi63WnO2mhb6uHGB/8x1qIOL4ZtZocrxdHS0VBQ9KwBDkwoP/TdVVgZ29J2WkiAPmJ0SK07ju4R2AjHor1gPxQ== } + resolution: {integrity: sha512-wi63WnO2mhb6uHGB/8x1qIOL4ZtZocrxdHS0VBQ9KwBDkwoP/TdVVgZ29J2WkiAPmJ0SK07ju4R2AjHor1gPxQ==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 graphql-ws: ^5.5.5 @@ -1300,8 +1299,7 @@ packages: dev: true /@apollo/client/3.7.13_pvbge6vplei5rx3k4pxg27es3y: - resolution: - { integrity: sha512-wi63WnO2mhb6uHGB/8x1qIOL4ZtZocrxdHS0VBQ9KwBDkwoP/TdVVgZ29J2WkiAPmJ0SK07ju4R2AjHor1gPxQ== } + resolution: {integrity: sha512-wi63WnO2mhb6uHGB/8x1qIOL4ZtZocrxdHS0VBQ9KwBDkwoP/TdVVgZ29J2WkiAPmJ0SK07ju4R2AjHor1gPxQ==} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 graphql-ws: ^5.5.5 @@ -1336,9 +1334,8 @@ packages: dev: false /@aws-cdk/assets/1.204.0_uszt2j4mor3yrbm3tre3az4zvy: - resolution: - { integrity: sha512-rY9YHZ3gUWr+dLwTwSUWYbIfk/AXy4JZRkhLbunrtzjQhH+QMm/2IWIebfBGu+A5AlVRaFbRLonReuGP5WZoUQ== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-rY9YHZ3gUWr+dLwTwSUWYbIfk/AXy4JZRkhLbunrtzjQhH+QMm/2IWIebfBGu+A5AlVRaFbRLonReuGP5WZoUQ==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1355,9 +1352,8 @@ packages: dev: false /@aws-cdk/aws-acmpca/1.204.0_add7c2jq5lcc6idtuigbkwnzeu: - resolution: - { integrity: sha512-2zyuQZwynwkz2qiuFDp088tglWXKX3q7saWRDqeuq2n2HE6PGuQRjd4zjl9nDGUVxQYtzzXyEuPyaEta8fg9lQ== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-2zyuQZwynwkz2qiuFDp088tglWXKX3q7saWRDqeuq2n2HE6PGuQRjd4zjl9nDGUVxQYtzzXyEuPyaEta8fg9lQ==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1372,9 +1368,8 @@ packages: dev: false /@aws-cdk/aws-apigateway/1.204.0_cs2gnbp3a35i2p5l5u5a3t4624: - resolution: - { integrity: sha512-uVK309Ltdq/Q0w0tREtIIJYKAeevKwU/oqVMy+PKis1+bSEesN64hIPAd+qqBuChrzCdhEDtY9oiKGOTvM0Alg== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-uVK309Ltdq/Q0w0tREtIIJYKAeevKwU/oqVMy+PKis1+bSEesN64hIPAd+qqBuChrzCdhEDtY9oiKGOTvM0Alg==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1392,8 +1387,8 @@ packages: '@aws-cdk/aws-certificatemanager': 1.204.0_xtqk4litqxecxsqs3sd6ajo2ja '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-cognito': 1.204.0_jhanj7vnhseo3o4cwsyzgiowqa - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli + '@aws-cdk/aws-ec2': 1.204.0_7otc2o26uplt6z4h6rudhovj5u + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_vsyp5evbazeuvbvzpddjsx7f6m '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu @@ -1409,10 +1404,9 @@ packages: - '@aws-cdk/custom-resources' dev: false - /@aws-cdk/aws-apigatewayv2/1.204.0_xbmlyikxd4zabyotfrt4oo4gli: - resolution: - { integrity: sha512-FGRznk2yph7ZyC7JHfVMKyDuFTT6p/HZDys1biY4lz+T7hqMaDC2ik+b+mO7ptwY5ebyPT4KePR0wmp3jJshIg== } - engines: { node: '>= 14.15.0' } + /@aws-cdk/aws-apigatewayv2/1.204.0_knsptffnex2lyiy4uxr2qfndt4: + resolution: {integrity: sha512-FGRznk2yph7ZyC7JHfVMKyDuFTT6p/HZDys1biY4lz+T7hqMaDC2ik+b+mO7ptwY5ebyPT4KePR0wmp3jJshIg==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1426,23 +1420,22 @@ packages: dependencies: '@aws-cdk/aws-certificatemanager': 1.204.0_xtqk4litqxecxsqs3sd6ajo2ja '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-ec2': 1.204.0_ugogvenjbszrmlbofftt72igsy '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam constructs: 3.4.344 transitivePeerDependencies: - - '@aws-cdk/assets' - '@aws-cdk/aws-lambda' - '@aws-cdk/aws-logs' + - '@aws-cdk/aws-s3-assets' - '@aws-cdk/custom-resources' - '@aws-cdk/cx-api' dev: false /@aws-cdk/aws-applicationautoscaling/1.204.0_w2xl3dexbzdynnzeafah4cuzfm: - resolution: - { integrity: sha512-sEe2NODKUowJx2guM2SPfs/20gGdBq1C09M32b8c1im7K+PqQkHkE156nyz5Ml0hpsNeCZlRS17oKZ042aZevQ== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-sEe2NODKUowJx2guM2SPfs/20gGdBq1C09M32b8c1im7K+PqQkHkE156nyz5Ml0hpsNeCZlRS17oKZ042aZevQ==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1461,9 +1454,8 @@ packages: dev: false /@aws-cdk/aws-autoscaling-common/1.204.0_w2xl3dexbzdynnzeafah4cuzfm: - resolution: - { integrity: sha512-P+PwbTaj28Eg9+/U9ZTXTh1gA7L9Z45GL+9xcEZvEqAkJt9MNgzZICavVZu1sMD74foK1r1ZOBXTsqV6wEiltQ== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-P+PwbTaj28Eg9+/U9ZTXTh1gA7L9Z45GL+9xcEZvEqAkJt9MNgzZICavVZu1sMD74foK1r1ZOBXTsqV6wEiltQ==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1480,9 +1472,8 @@ packages: dev: false /@aws-cdk/aws-autoscaling-hooktargets/1.204.0_qzqhemkg7ucx2bjh2ugcivnnei: - resolution: - { integrity: sha512-FiS2SqrBtNg4Cpf1rmJcxQwKJE6pGgzyKLnMWzHITDpYur3D3rKNuWSq2PW/60mjIfkBudcMFE1GIdgBxZNeUQ== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-FiS2SqrBtNg4Cpf1rmJcxQwKJE6pGgzyKLnMWzHITDpYur3D3rKNuWSq2PW/60mjIfkBudcMFE1GIdgBxZNeUQ==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1499,7 +1490,7 @@ packages: '@aws-cdk/core': 1.204.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-autoscaling': 1.204.0_cs2gnbp3a35i2p5l5u5a3t4624 + '@aws-cdk/aws-autoscaling': 1.204.0_i3jljv3de5uztyiwnf4vt3h3ue '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm @@ -1510,10 +1501,9 @@ packages: constructs: 3.4.344 dev: false - /@aws-cdk/aws-autoscaling/1.204.0_cs2gnbp3a35i2p5l5u5a3t4624: - resolution: - { integrity: sha512-LVQK84GR6U0RXfPbxZauWDCfcgBgH4bofOHx1sfr6yz7FTSYYkYM2tMJl81SmVc6ueSJzfhFtIcWhSpMBH9yig== } - engines: { node: '>= 14.15.0' } + /@aws-cdk/aws-autoscaling/1.204.0_i3jljv3de5uztyiwnf4vt3h3ue: + resolution: {integrity: sha512-LVQK84GR6U0RXfPbxZauWDCfcgBgH4bofOHx1sfr6yz7FTSYYkYM2tMJl81SmVc6ueSJzfhFtIcWhSpMBH9yig==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1526,27 +1516,58 @@ packages: dependencies: '@aws-cdk/aws-autoscaling-common': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-ec2': 1.204.0_7otc2o26uplt6z4h6rudhovj5u '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_vsyp5evbazeuvbvzpddjsx7f6m + '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu + '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam + constructs: 3.4.344 + transitivePeerDependencies: + - '@aws-cdk/aws-events' + - '@aws-cdk/aws-lambda' + - '@aws-cdk/aws-logs' + - '@aws-cdk/aws-s3' + - '@aws-cdk/aws-s3-assets' + - '@aws-cdk/custom-resources' + - '@aws-cdk/cx-api' + dev: false + + /@aws-cdk/aws-autoscaling/1.204.0_lfphwgzs6h44cq466n6cmpwpbq: + resolution: {integrity: sha512-LVQK84GR6U0RXfPbxZauWDCfcgBgH4bofOHx1sfr6yz7FTSYYkYM2tMJl81SmVc6ueSJzfhFtIcWhSpMBH9yig==} + engines: {node: '>= 14.15.0'} + deprecated: |- + AWS CDK v1 has reached End-of-Support on 2023-06-01. + This package is no longer being updated, and users should migrate to AWS CDK v2. + + For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html + peerDependencies: + '@aws-cdk/aws-iam': 1.204.0 + '@aws-cdk/core': 1.204.0 + constructs: ^3.3.69 + dependencies: + '@aws-cdk/aws-autoscaling-common': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm + '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm + '@aws-cdk/aws-ec2': 1.204.0_ugogvenjbszrmlbofftt72igsy + '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_knsptffnex2lyiy4uxr2qfndt4 '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam constructs: 3.4.344 transitivePeerDependencies: - - '@aws-cdk/assets' - '@aws-cdk/aws-events' - '@aws-cdk/aws-lambda' - '@aws-cdk/aws-logs' - '@aws-cdk/aws-s3' + - '@aws-cdk/aws-s3-assets' - '@aws-cdk/custom-resources' - '@aws-cdk/cx-api' dev: false /@aws-cdk/aws-certificatemanager/1.204.0_xtqk4litqxecxsqs3sd6ajo2ja: - resolution: - { integrity: sha512-ZLykfAOb5Zbg/MFtzA+eHhMAK1xL32+oHKSK6tAYrgvv2aS42wJE4zSBV6jGCjnCkhcliUd5pwnACEl3ib0KLw== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-ZLykfAOb5Zbg/MFtzA+eHhMAK1xL32+oHKSK6tAYrgvv2aS42wJE4zSBV6jGCjnCkhcliUd5pwnACEl3ib0KLw==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1572,9 +1593,8 @@ packages: dev: false /@aws-cdk/aws-cloudformation/1.204.0_xguspq3b5n56mo6dsez57f32qa: - resolution: - { integrity: sha512-9PkZa9mKLneB0My8wJC7lLZmPJsnOxNYy57ZZlRCQhK0eO6Jc9eVqrI29537W+3ireaEjCLEitkb8NO1FN/kQA== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-9PkZa9mKLneB0My8wJC7lLZmPJsnOxNYy57ZZlRCQhK0eO6Jc9eVqrI29537W+3ireaEjCLEitkb8NO1FN/kQA==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1599,10 +1619,9 @@ packages: - '@aws-cdk/aws-events' dev: false - /@aws-cdk/aws-cloudfront/1.204.0_xbmlyikxd4zabyotfrt4oo4gli: - resolution: - { integrity: sha512-bgqGsImVjFQJihDvLg0hWRtmq2b+HVj94Fngz/zo4PsB5kTt1QZvHOk2HNBkozNhDK8LXysHtdKvmzpaK29TJQ== } - engines: { node: '>= 14.15.0' } + /@aws-cdk/aws-cloudfront/1.204.0_knsptffnex2lyiy4uxr2qfndt4: + resolution: {integrity: sha512-bgqGsImVjFQJihDvLg0hWRtmq2b+HVj94Fngz/zo4PsB5kTt1QZvHOk2HNBkozNhDK8LXysHtdKvmzpaK29TJQ==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1618,7 +1637,7 @@ packages: dependencies: '@aws-cdk/aws-certificatemanager': 1.204.0_xtqk4litqxecxsqs3sd6ajo2ja '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-ec2': 1.204.0_ugogvenjbszrmlbofftt72igsy '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm @@ -1628,15 +1647,14 @@ packages: '@aws-cdk/cx-api': 1.203.0 constructs: 3.4.344 transitivePeerDependencies: - - '@aws-cdk/assets' - '@aws-cdk/aws-logs' + - '@aws-cdk/aws-s3-assets' - '@aws-cdk/custom-resources' dev: false /@aws-cdk/aws-cloudwatch/1.204.0_w2xl3dexbzdynnzeafah4cuzfm: - resolution: - { integrity: sha512-ADT2D+4FtB9Zcy/TlF2tswQmjmrPVgORYTkznQQ2SniCODHWzz558+G1RV+IVvWRdH7nYQtV0UEuGZKpffWh2w== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-ADT2D+4FtB9Zcy/TlF2tswQmjmrPVgORYTkznQQ2SniCODHWzz558+G1RV+IVvWRdH7nYQtV0UEuGZKpffWh2w==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1653,9 +1671,8 @@ packages: dev: false /@aws-cdk/aws-codebuild/1.204.0_c23kgzmvfhgnr6qpzzlbsfzuc4: - resolution: - { integrity: sha512-k99U2yuifFZfvSl8v1PlAg2KeMBUrhD8R0xGPvnOP+Im78tbRu6bumXM60CCJCH38oN3Z9bbnVqBUqjsG4ZSOA== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-k99U2yuifFZfvSl8v1PlAg2KeMBUrhD8R0xGPvnOP+Im78tbRu6bumXM60CCJCH38oN3Z9bbnVqBUqjsG4ZSOA==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1674,7 +1691,7 @@ packages: '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-codecommit': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-codestarnotifications': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-ec2': 1.204.0_7otc2o26uplt6z4h6rudhovj5u '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm @@ -1683,7 +1700,7 @@ packages: '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu - '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 + '@aws-cdk/aws-secretsmanager': 1.204.0_tozf65cx46f236bynayszxjyoy '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 @@ -1695,9 +1712,8 @@ packages: - yaml /@aws-cdk/aws-codecommit/1.204.0_scjupxxta56mdpzkdveav52ufq: - resolution: - { integrity: sha512-O6TtbpUNI6/toCZs63Gb3Wl1sR1w12igYXHuyNZaODw64+SY1uXwLWDgQYd2ZfMFC/+NfVTgyuIRTJIyVXengA== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-O6TtbpUNI6/toCZs63Gb3Wl1sR1w12igYXHuyNZaODw64+SY1uXwLWDgQYd2ZfMFC/+NfVTgyuIRTJIyVXengA==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1722,9 +1738,8 @@ packages: dev: false /@aws-cdk/aws-codeguruprofiler/1.204.0_w2xl3dexbzdynnzeafah4cuzfm: - resolution: - { integrity: sha512-IrgY4SmVf9p5POfHm8BsPzaAO5lQTG7nhb5qN5AzS6zKCTuEjjTNHjx1TOfPV12mMIDAIVsK91mjDlAR88Mjbg== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-IrgY4SmVf9p5POfHm8BsPzaAO5lQTG7nhb5qN5AzS6zKCTuEjjTNHjx1TOfPV12mMIDAIVsK91mjDlAR88Mjbg==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1741,9 +1756,8 @@ packages: dev: false /@aws-cdk/aws-codepipeline/1.204.0_ldv6hsy33vwn5o5qdxjyvusahm: - resolution: - { integrity: sha512-0Ocz2c1yFTcD4+n2oVGBCmElOUE95rNFJchxfAGmRRtjDO+JJnEL4nUpSrzkMl9PaDBeZvMa2qjZF8/3Kvrg/Q== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-0Ocz2c1yFTcD4+n2oVGBCmElOUE95rNFJchxfAGmRRtjDO+JJnEL4nUpSrzkMl9PaDBeZvMa2qjZF8/3Kvrg/Q==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1768,9 +1782,8 @@ packages: dev: false /@aws-cdk/aws-codestarnotifications/1.204.0_add7c2jq5lcc6idtuigbkwnzeu: - resolution: - { integrity: sha512-t//hSpC5/uVW2321YlbGabNVzhWayvqz+xSnagADGcT9qiq3KQR/uUlrgpHv1/eHRMk7EMrY9prlXeZpfzZ+cw== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-t//hSpC5/uVW2321YlbGabNVzhWayvqz+xSnagADGcT9qiq3KQR/uUlrgpHv1/eHRMk7EMrY9prlXeZpfzZ+cw==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1785,9 +1798,8 @@ packages: dev: false /@aws-cdk/aws-cognito/1.204.0_jhanj7vnhseo3o4cwsyzgiowqa: - resolution: - { integrity: sha512-7QIbExW9dn1fktpDOh2nMHmor2S3uuHtIX5y33lc9OKg3xUuYw4AZ67MKapunN7QUBlffTlNzoUqlHoNSab+Zg== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-7QIbExW9dn1fktpDOh2nMHmor2S3uuHtIX5y33lc9OKg3xUuYw4AZ67MKapunN7QUBlffTlNzoUqlHoNSab+Zg==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1805,7 +1817,7 @@ packages: '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam - '@aws-cdk/custom-resources': 1.204.0_c23kgzmvfhgnr6qpzzlbsfzuc4 + '@aws-cdk/custom-resources': 1.204.0_575fyf2i7umbzongv3ijfqjgle constructs: 3.4.344 transitivePeerDependencies: - '@aws-cdk/aws-ec2' @@ -1816,9 +1828,8 @@ packages: - punycode /@aws-cdk/aws-dynamodb/1.204.0_ea3k7xy2kixjvb2em7ltbqbgym: - resolution: - { integrity: sha512-mJhbrmLiRa2etpzH2Uyz5429+YXIQeZqg0uXESEDLf5xCoypmwXn3zdxcBlz2sIbhTZcWta8s+dqIIor+GcMJQ== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-mJhbrmLiRa2etpzH2Uyz5429+YXIQeZqg0uXESEDLf5xCoypmwXn3zdxcBlz2sIbhTZcWta8s+dqIIor+GcMJQ==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1838,26 +1849,27 @@ packages: '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam - '@aws-cdk/custom-resources': 1.204.0_c23kgzmvfhgnr6qpzzlbsfzuc4 + '@aws-cdk/custom-resources': 1.204.0_575fyf2i7umbzongv3ijfqjgle constructs: 3.4.344 transitivePeerDependencies: - '@aws-cdk/aws-logs' - '@aws-cdk/cx-api' dev: false - /@aws-cdk/aws-ec2/1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a: - resolution: - { integrity: sha512-SoqZEgzdfPW0aa+FQ0CjzbDG+X+sDu6/BnLL2O10lxpa+9Dc1iyArAqNKFJG5KXGJe9ibvQXyNQqEjeGRFc22Q== } - engines: { node: '>= 14.15.0' } + /@aws-cdk/aws-ec2/1.204.0_7otc2o26uplt6z4h6rudhovj5u: + resolution: {integrity: sha512-SoqZEgzdfPW0aa+FQ0CjzbDG+X+sDu6/BnLL2O10lxpa+9Dc1iyArAqNKFJG5KXGJe9ibvQXyNQqEjeGRFc22Q==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html peerDependencies: + '@aws-cdk/aws-cloudwatch': 1.204.0 '@aws-cdk/aws-iam': 1.204.0 '@aws-cdk/aws-logs': 1.204.0 '@aws-cdk/aws-s3': 1.204.0 + '@aws-cdk/aws-s3-assets': 1.204.0 '@aws-cdk/core': 1.204.0 '@aws-cdk/cx-api': 1.204.0 constructs: ^3.3.69 @@ -1874,14 +1886,103 @@ packages: '@aws-cdk/cx-api': 1.203.0 '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 - transitivePeerDependencies: - - '@aws-cdk/assets' + dev: false + + /@aws-cdk/aws-ec2/1.204.0_piacgwift44a2rmzffkfjqxufa: + resolution: {integrity: sha512-SoqZEgzdfPW0aa+FQ0CjzbDG+X+sDu6/BnLL2O10lxpa+9Dc1iyArAqNKFJG5KXGJe9ibvQXyNQqEjeGRFc22Q==} + engines: {node: '>= 14.15.0'} + deprecated: |- + AWS CDK v1 has reached End-of-Support on 2023-06-01. + This package is no longer being updated, and users should migrate to AWS CDK v2. + + For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html + peerDependencies: + '@aws-cdk/aws-cloudwatch': 1.204.0 + '@aws-cdk/aws-iam': 1.204.0 + '@aws-cdk/aws-logs': 1.204.0 + '@aws-cdk/aws-s3': 1.204.0 + '@aws-cdk/aws-s3-assets': 1.204.0 + '@aws-cdk/core': 1.204.0 + '@aws-cdk/cx-api': 1.204.0 + constructs: ^3.3.69 + dependencies: + '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu + '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y + '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu + '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu + '@aws-cdk/aws-ssm': 1.204.0_cttdkzy7hngahjug7jmkfylr2y + '@aws-cdk/cloud-assembly-schema': 1.204.0 + '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam + '@aws-cdk/cx-api': 1.203.0 + '@aws-cdk/region-info': 1.204.0 + constructs: 3.4.344 + dev: false + + /@aws-cdk/aws-ec2/1.204.0_ugogvenjbszrmlbofftt72igsy: + resolution: {integrity: sha512-SoqZEgzdfPW0aa+FQ0CjzbDG+X+sDu6/BnLL2O10lxpa+9Dc1iyArAqNKFJG5KXGJe9ibvQXyNQqEjeGRFc22Q==} + engines: {node: '>= 14.15.0'} + deprecated: |- + AWS CDK v1 has reached End-of-Support on 2023-06-01. + This package is no longer being updated, and users should migrate to AWS CDK v2. + + For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html + peerDependencies: + '@aws-cdk/aws-cloudwatch': 1.204.0 + '@aws-cdk/aws-iam': 1.204.0 + '@aws-cdk/aws-logs': 1.204.0 + '@aws-cdk/aws-s3': 1.204.0 + '@aws-cdk/aws-s3-assets': 1.204.0 + '@aws-cdk/core': 1.204.0 + '@aws-cdk/cx-api': 1.204.0 + constructs: ^3.3.69 + dependencies: + '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm + '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu + '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y + '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu + '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ssm': 1.204.0_cttdkzy7hngahjug7jmkfylr2y + '@aws-cdk/cloud-assembly-schema': 1.204.0 + '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam + '@aws-cdk/cx-api': 1.203.0 + '@aws-cdk/region-info': 1.204.0 + constructs: 3.4.344 + dev: false + + /@aws-cdk/aws-ec2/1.204.0_xko3xkmfscpwz76mf7mobwjaoa: + resolution: {integrity: sha512-SoqZEgzdfPW0aa+FQ0CjzbDG+X+sDu6/BnLL2O10lxpa+9Dc1iyArAqNKFJG5KXGJe9ibvQXyNQqEjeGRFc22Q==} + engines: {node: '>= 14.15.0'} + deprecated: |- + AWS CDK v1 has reached End-of-Support on 2023-06-01. + This package is no longer being updated, and users should migrate to AWS CDK v2. + + For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html + peerDependencies: + '@aws-cdk/aws-cloudwatch': 1.204.0 + '@aws-cdk/aws-iam': 1.204.0 + '@aws-cdk/aws-logs': 1.204.0 + '@aws-cdk/aws-s3': 1.204.0 + '@aws-cdk/aws-s3-assets': 1.204.0 + '@aws-cdk/core': 1.204.0 + '@aws-cdk/cx-api': 1.204.0 + constructs: ^3.3.69 + dependencies: + '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu + '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y + '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu + '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/aws-ssm': 1.204.0_cttdkzy7hngahjug7jmkfylr2y + '@aws-cdk/cloud-assembly-schema': 1.204.0 + '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam + '@aws-cdk/cx-api': 1.203.0 + '@aws-cdk/region-info': 1.204.0 + constructs: 3.4.344 dev: false /@aws-cdk/aws-ecr-assets/1.204.0_scjupxxta56mdpzkdveav52ufq: - resolution: - { integrity: sha512-2GHD3pZdDoPxq3HhD4czANuI7TMoxpjszbzsQAc2wbdMX1j+K4vIL+PBpj3altfscPqcvy1v70lBjbG5rcBIkQ== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-2GHD3pZdDoPxq3HhD4czANuI7TMoxpjszbzsQAc2wbdMX1j+K4vIL+PBpj3altfscPqcvy1v70lBjbG5rcBIkQ==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1907,9 +2008,8 @@ packages: dev: false /@aws-cdk/aws-ecr/1.204.0_bi2u42js5xhxqcsg5gqefde4xi: - resolution: - { integrity: sha512-oCts9e+ackWoFHeyn/3oKm3X1lSizleWNNXHp5WGM38lpNVrtCLMKSShu5iXJBhqRH2Mz1AcA4fDMWhe8DvJFA== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-oCts9e+ackWoFHeyn/3oKm3X1lSizleWNNXHp5WGM38lpNVrtCLMKSShu5iXJBhqRH2Mz1AcA4fDMWhe8DvJFA==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1931,9 +2031,8 @@ packages: dev: false /@aws-cdk/aws-ecs/1.204.0_iu2vquo67t63xu6vdymsg3ufny: - resolution: - { integrity: sha512-YhGkLMyjK2e+czTLBlMU/B2kj2DXnIT3+uoLqJ5Go0XeRbeXO2d/D0WdYSBaXWr7oBGpg37oPjpPLbswId7ZTw== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-YhGkLMyjK2e+czTLBlMU/B2kj2DXnIT3+uoLqJ5Go0XeRbeXO2d/D0WdYSBaXWr7oBGpg37oPjpPLbswId7ZTw==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1949,25 +2048,25 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/aws-applicationautoscaling': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm - '@aws-cdk/aws-autoscaling': 1.204.0_cs2gnbp3a35i2p5l5u5a3t4624 + '@aws-cdk/aws-autoscaling': 1.204.0_i3jljv3de5uztyiwnf4vt3h3ue '@aws-cdk/aws-autoscaling-hooktargets': 1.204.0_qzqhemkg7ucx2bjh2ugcivnnei '@aws-cdk/aws-certificatemanager': 1.204.0_xtqk4litqxecxsqs3sd6ajo2ja '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-ec2': 1.204.0_7otc2o26uplt6z4h6rudhovj5u '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_vsyp5evbazeuvbvzpddjsx7f6m '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/aws-route53': 1.204.0_i3vim6rlintxrbha4iep76yf5u - '@aws-cdk/aws-route53-targets': 1.204.0_2eviprr3zwoouaslbumtdekrhi + '@aws-cdk/aws-route53-targets': 1.204.0_bumtmw6o2rwlthudo752xxrr5u '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-assets': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu - '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 - '@aws-cdk/aws-servicediscovery': 1.204.0_nu23nesxfni464wb5cy4ehgagi + '@aws-cdk/aws-secretsmanager': 1.204.0_tozf65cx46f236bynayszxjyoy + '@aws-cdk/aws-servicediscovery': 1.204.0_2pbhnqzqa55byia6sq3bvevyma '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-ssm': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -1983,10 +2082,9 @@ packages: - '@aws-cdk/custom-resources' dev: false - /@aws-cdk/aws-efs/1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a: - resolution: - { integrity: sha512-FB6nHgCuzYF5K9ywqYPEPjL2G1ATLIR9dJp1p4ydcEUuXDb4KSEVN4Bgx+q1e7EkWGIq+9glr+ckheEcTvETgw== } - engines: { node: '>= 14.15.0' } + /@aws-cdk/aws-efs/1.204.0_7otc2o26uplt6z4h6rudhovj5u: + resolution: {integrity: sha512-FB6nHgCuzYF5K9ywqYPEPjL2G1ATLIR9dJp1p4ydcEUuXDb4KSEVN4Bgx+q1e7EkWGIq+9glr+ckheEcTvETgw==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -1998,7 +2096,7 @@ packages: '@aws-cdk/cx-api': 1.204.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-ec2': 1.204.0_7otc2o26uplt6z4h6rudhovj5u '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/cloud-assembly-schema': 1.204.0 @@ -2006,15 +2104,43 @@ packages: '@aws-cdk/cx-api': 1.203.0 constructs: 3.4.344 transitivePeerDependencies: - - '@aws-cdk/assets' + - '@aws-cdk/aws-cloudwatch' - '@aws-cdk/aws-logs' - '@aws-cdk/aws-s3' + - '@aws-cdk/aws-s3-assets' + dev: false + + /@aws-cdk/aws-efs/1.204.0_piacgwift44a2rmzffkfjqxufa: + resolution: {integrity: sha512-FB6nHgCuzYF5K9ywqYPEPjL2G1ATLIR9dJp1p4ydcEUuXDb4KSEVN4Bgx+q1e7EkWGIq+9glr+ckheEcTvETgw==} + engines: {node: '>= 14.15.0'} + deprecated: |- + AWS CDK v1 has reached End-of-Support on 2023-06-01. + This package is no longer being updated, and users should migrate to AWS CDK v2. + + For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html + peerDependencies: + '@aws-cdk/aws-iam': 1.204.0 + '@aws-cdk/core': 1.204.0 + '@aws-cdk/cx-api': 1.204.0 + constructs: ^3.3.69 + dependencies: + '@aws-cdk/aws-ec2': 1.204.0_piacgwift44a2rmzffkfjqxufa + '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu + '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y + '@aws-cdk/cloud-assembly-schema': 1.204.0 + '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam + '@aws-cdk/cx-api': 1.203.0 + constructs: 3.4.344 + transitivePeerDependencies: + - '@aws-cdk/aws-cloudwatch' + - '@aws-cdk/aws-logs' + - '@aws-cdk/aws-s3' + - '@aws-cdk/aws-s3-assets' dev: false /@aws-cdk/aws-elasticloadbalancing/1.204.0_s2iwowsvskkmujjbrmx4g5hlsi: - resolution: - { integrity: sha512-DhC6hrWqi6EaRLcDBAVrE+/iGa+WUUtLla4oqkLVj/C76VcM1CkCyH/9IX8O1CK0NswtC6AxOF3+z4uroTUWDg== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-DhC6hrWqi6EaRLcDBAVrE+/iGa+WUUtLla4oqkLVj/C76VcM1CkCyH/9IX8O1CK0NswtC6AxOF3+z4uroTUWDg==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2025,15 +2151,14 @@ packages: '@aws-cdk/core': 1.204.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-ec2': 1.204.0_ugogvenjbszrmlbofftt72igsy '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam constructs: 3.4.344 dev: false - /@aws-cdk/aws-elasticloadbalancingv2/1.204.0_xbmlyikxd4zabyotfrt4oo4gli: - resolution: - { integrity: sha512-/43kzUTU3w9jimPuD5QZxoBN74+9QnOdhAcqIMVCFLPMkVLAxx3vg5g5MWWG+3j6rUoSecrtrP1AP7thZuo5wA== } - engines: { node: '>= 14.15.0' } + /@aws-cdk/aws-elasticloadbalancingv2/1.204.0_knsptffnex2lyiy4uxr2qfndt4: + resolution: {integrity: sha512-/43kzUTU3w9jimPuD5QZxoBN74+9QnOdhAcqIMVCFLPMkVLAxx3vg5g5MWWG+3j6rUoSecrtrP1AP7thZuo5wA==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2049,7 +2174,7 @@ packages: dependencies: '@aws-cdk/aws-certificatemanager': 1.204.0_xtqk4litqxecxsqs3sd6ajo2ja '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-ec2': 1.204.0_ugogvenjbszrmlbofftt72igsy '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-route53': 1.204.0_i3vim6rlintxrbha4iep76yf5u @@ -2060,15 +2185,48 @@ packages: '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 transitivePeerDependencies: - - '@aws-cdk/assets' - '@aws-cdk/aws-logs' + - '@aws-cdk/aws-s3-assets' + - '@aws-cdk/custom-resources' + dev: false + + /@aws-cdk/aws-elasticloadbalancingv2/1.204.0_vsyp5evbazeuvbvzpddjsx7f6m: + resolution: {integrity: sha512-/43kzUTU3w9jimPuD5QZxoBN74+9QnOdhAcqIMVCFLPMkVLAxx3vg5g5MWWG+3j6rUoSecrtrP1AP7thZuo5wA==} + engines: {node: '>= 14.15.0'} + deprecated: |- + AWS CDK v1 has reached End-of-Support on 2023-06-01. + This package is no longer being updated, and users should migrate to AWS CDK v2. + + For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html + peerDependencies: + '@aws-cdk/aws-iam': 1.204.0 + '@aws-cdk/aws-lambda': 1.204.0 + '@aws-cdk/aws-s3': 1.204.0 + '@aws-cdk/core': 1.204.0 + '@aws-cdk/cx-api': 1.204.0 + constructs: ^3.3.69 + dependencies: + '@aws-cdk/aws-certificatemanager': 1.204.0_xtqk4litqxecxsqs3sd6ajo2ja + '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm + '@aws-cdk/aws-ec2': 1.204.0_7otc2o26uplt6z4h6rudhovj5u + '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu + '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm + '@aws-cdk/aws-route53': 1.204.0_i3vim6rlintxrbha4iep76yf5u + '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi + '@aws-cdk/cloud-assembly-schema': 1.204.0 + '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam + '@aws-cdk/cx-api': 1.203.0 + '@aws-cdk/region-info': 1.204.0 + constructs: 3.4.344 + transitivePeerDependencies: + - '@aws-cdk/aws-logs' + - '@aws-cdk/aws-s3-assets' - '@aws-cdk/custom-resources' dev: false /@aws-cdk/aws-events-targets/1.204.0_cboae2e2djj6552nyu56pbamie: - resolution: - { integrity: sha512-41bFshmilSxNHeZcbMKWn8Bv+5cHsEG41pBJzKhJiNbKD6W0B9CkyubJsmOUWhlkluZsb08VJYOqLawwxbNfHg== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-41bFshmilSxNHeZcbMKWn8Bv+5cHsEG41pBJzKhJiNbKD6W0B9CkyubJsmOUWhlkluZsb08VJYOqLawwxbNfHg==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2085,15 +2243,15 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/aws-apigateway': 1.204.0_cs2gnbp3a35i2p5l5u5a3t4624 - '@aws-cdk/aws-autoscaling': 1.204.0_cs2gnbp3a35i2p5l5u5a3t4624 + '@aws-cdk/aws-autoscaling': 1.204.0_lfphwgzs6h44cq466n6cmpwpbq '@aws-cdk/aws-codebuild': 1.204.0_c23kgzmvfhgnr6qpzzlbsfzuc4 '@aws-cdk/aws-codepipeline': 1.204.0_ldv6hsy33vwn5o5qdxjyvusahm - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-ec2': 1.204.0_xko3xkmfscpwz76mf7mobwjaoa '@aws-cdk/aws-ecs': 1.204.0_iu2vquo67t63xu6vdymsg3ufny '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-kinesis': 1.204.0_wjonshyx7y7bmdnucjgcglchqq - '@aws-cdk/aws-kinesisfirehose': 1.204.0_2o53qceqenzlpxe4mjswmsqfiq + '@aws-cdk/aws-kinesisfirehose': 1.204.0_5ibbjioat6x2j3azupdfkiw2di '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu @@ -2102,19 +2260,20 @@ packages: '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-stepfunctions': 1.204.0_5s7psvfm6hmailsvkk6x3wncsq '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam - '@aws-cdk/custom-resources': 1.204.0_c23kgzmvfhgnr6qpzzlbsfzuc4 + '@aws-cdk/custom-resources': 1.204.0_575fyf2i7umbzongv3ijfqjgle constructs: 3.4.344 transitivePeerDependencies: - '@aws-cdk/assets' - '@aws-cdk/aws-cloudfront' + - '@aws-cdk/aws-cloudwatch' - '@aws-cdk/aws-s3' + - '@aws-cdk/aws-s3-assets' - '@aws-cdk/cx-api' dev: false /@aws-cdk/aws-events/1.204.0_w2xl3dexbzdynnzeafah4cuzfm: - resolution: - { integrity: sha512-KnfUmtv+4RhydD9+5CHFxNJxtgn7+Xftwfwg1G7qV/tWYPFHcNIvhlSOgwDrQPa+pTo1MmkiUN0lAR0G8B/cbw== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-KnfUmtv+4RhydD9+5CHFxNJxtgn7+Xftwfwg1G7qV/tWYPFHcNIvhlSOgwDrQPa+pTo1MmkiUN0lAR0G8B/cbw==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2131,9 +2290,8 @@ packages: dev: false /@aws-cdk/aws-globalaccelerator/1.204.0_u3bt2hwm6nh6yzg6d6qalghehq: - resolution: - { integrity: sha512-B92vKAncsGV2wxcbHeg230EZibSuzianVu3z0CDVS2EQnQ1A68Ff75JWPFGGnfiJrSnKN/pvzrDKV5Z45bhm4Q== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-B92vKAncsGV2wxcbHeg230EZibSuzianVu3z0CDVS2EQnQ1A68Ff75JWPFGGnfiJrSnKN/pvzrDKV5Z45bhm4Q==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2145,16 +2303,15 @@ packages: '@aws-cdk/custom-resources': 1.204.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-ec2': 1.204.0_7otc2o26uplt6z4h6rudhovj5u '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam - '@aws-cdk/custom-resources': 1.204.0_c23kgzmvfhgnr6qpzzlbsfzuc4 + '@aws-cdk/custom-resources': 1.204.0_575fyf2i7umbzongv3ijfqjgle constructs: 3.4.344 dev: false /@aws-cdk/aws-iam/1.204.0_add7c2jq5lcc6idtuigbkwnzeu: - resolution: - { integrity: sha512-Fh2egW3v/uDdw3m4jvcupS7COL/+sJl2NHjz9l298ddyMxqDwJD2NQwE8mvgPLK4rDtAtDnE0c8RS6d+NWiC+w== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-Fh2egW3v/uDdw3m4jvcupS7COL/+sJl2NHjz9l298ddyMxqDwJD2NQwE8mvgPLK4rDtAtDnE0c8RS6d+NWiC+w==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2171,9 +2328,8 @@ packages: dev: false /@aws-cdk/aws-kinesis/1.204.0_wjonshyx7y7bmdnucjgcglchqq: - resolution: - { integrity: sha512-CZm0Qk0PoagLZ81XadxgKFM0/20fhFuYRnT98oqdvsrqvYJddXaKt/peCI5v/PbRtptGkpn2FoHjkwxKWoJNJA== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-CZm0Qk0PoagLZ81XadxgKFM0/20fhFuYRnT98oqdvsrqvYJddXaKt/peCI5v/PbRtptGkpn2FoHjkwxKWoJNJA==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2195,10 +2351,9 @@ packages: - '@aws-cdk/cx-api' dev: false - /@aws-cdk/aws-kinesisfirehose/1.204.0_2o53qceqenzlpxe4mjswmsqfiq: - resolution: - { integrity: sha512-RZtVh1AiWbTtygNAaymoiOWWY41uk1ZRApMVJ+4wF0UTKMhDbcYMgoeTjgyg5ZQk1nzfI1iinNPEp/VggJTjuA== } - engines: { node: '>= 14.15.0' } + /@aws-cdk/aws-kinesisfirehose/1.204.0_5ibbjioat6x2j3azupdfkiw2di: + resolution: {integrity: sha512-RZtVh1AiWbTtygNAaymoiOWWY41uk1ZRApMVJ+4wF0UTKMhDbcYMgoeTjgyg5ZQk1nzfI1iinNPEp/VggJTjuA==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2213,7 +2368,7 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-ec2': 1.204.0_ugogvenjbszrmlbofftt72igsy '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-kinesis': 1.204.0_wjonshyx7y7bmdnucjgcglchqq '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -2224,14 +2379,13 @@ packages: '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 transitivePeerDependencies: - - '@aws-cdk/assets' + - '@aws-cdk/aws-s3-assets' - '@aws-cdk/cx-api' dev: false /@aws-cdk/aws-kms/1.204.0_cttdkzy7hngahjug7jmkfylr2y: - resolution: - { integrity: sha512-iryZQ428L1VUVQ0zE96XTWWX7ANVtDrb6x+ZXXLTVUEPgjEd/W6zlcp++Qi0A3a9HLNd4PbEhK9rs0UKNTylzw== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-iryZQ428L1VUVQ0zE96XTWWX7ANVtDrb6x+ZXXLTVUEPgjEd/W6zlcp++Qi0A3a9HLNd4PbEhK9rs0UKNTylzw==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2250,10 +2404,9 @@ packages: constructs: 3.4.344 dev: false - /@aws-cdk/aws-lambda-event-sources/1.204.0_yl5g6fuosfeqtat6z7imtengha: - resolution: - { integrity: sha512-gH36hbc7cB5/CeDRHZ794bTjryls9O0tYLJJWDKphujIOlOZysPSGL8vqOujMkxJ1kHujBLt6PudbyqLaacQ9Q== } - engines: { node: '>= 14.15.0' } + /@aws-cdk/aws-lambda-event-sources/1.204.0_6ewijctynstfo6zas4hwstt4zy: + resolution: {integrity: sha512-gH36hbc7cB5/CeDRHZ794bTjryls9O0tYLJJWDKphujIOlOZysPSGL8vqOujMkxJ1kHujBLt6PudbyqLaacQ9Q==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2271,29 +2424,29 @@ packages: dependencies: '@aws-cdk/aws-apigateway': 1.204.0_cs2gnbp3a35i2p5l5u5a3t4624 '@aws-cdk/aws-dynamodb': 1.204.0_ea3k7xy2kixjvb2em7ltbqbgym - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-ec2': 1.204.0_xko3xkmfscpwz76mf7mobwjaoa '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-kinesis': 1.204.0_wjonshyx7y7bmdnucjgcglchqq '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-s3': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-s3-notifications': 1.204.0_xguspq3b5n56mo6dsez57f32qa - '@aws-cdk/aws-secretsmanager': 1.204.0_336juigttbrwz7tyvm6a6wfpy4 + '@aws-cdk/aws-secretsmanager': 1.204.0_5ibbjioat6x2j3azupdfkiw2di '@aws-cdk/aws-sns': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-sns-subscriptions': 1.204.0_bpkznh2gsccwq6qpaogbkb4psu '@aws-cdk/aws-sqs': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam constructs: 3.4.344 transitivePeerDependencies: - - '@aws-cdk/assets' + - '@aws-cdk/aws-cloudwatch' - '@aws-cdk/aws-logs' + - '@aws-cdk/aws-s3-assets' - '@aws-cdk/cx-api' dev: false /@aws-cdk/aws-lambda/1.204.0_afnjft5qr3fswieaeg3dwwhnvm: - resolution: - { integrity: sha512-r0XXovrLAx8Q8Fz915SwzyQM/KLhEB6YCp3CsWliFGSOHEjRP8yX8UZdEJqe5kYD7Th9JAhUVzKgyv20P7g5Tg== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-r0XXovrLAx8Q8Fz915SwzyQM/KLhEB6YCp3CsWliFGSOHEjRP8yX8UZdEJqe5kYD7Th9JAhUVzKgyv20P7g5Tg==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2311,10 +2464,10 @@ packages: '@aws-cdk/aws-applicationautoscaling': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-cloudwatch': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-codeguruprofiler': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-ec2': 1.204.0_7otc2o26uplt6z4h6rudhovj5u '@aws-cdk/aws-ecr': 1.204.0_bi2u42js5xhxqcsg5gqefde4xi '@aws-cdk/aws-ecr-assets': 1.204.0_scjupxxta56mdpzkdveav52ufq - '@aws-cdk/aws-efs': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-efs': 1.204.0_7otc2o26uplt6z4h6rudhovj5u '@aws-cdk/aws-events': 1.204.0_w2xl3dexbzdynnzeafah4cuzfm '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y @@ -2333,9 +2486,8 @@ packages: dev: false /@aws-cdk/aws-logs/1.204.0_l4ztnfmrjykhsbk6ow7yhidayu: - resolution: - { integrity: sha512-PuHsDSkX6JFBgldxViGw91eFLageJ2cX89/RyLbWaJJUV4tlUKXSmmkVgOaBmvil0QKuGqbOzLXcXCoIK9Sg3A== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-PuHsDSkX6JFBgldxViGw91eFLageJ2cX89/RyLbWaJJUV4tlUKXSmmkVgOaBmvil0QKuGqbOzLXcXCoIK9Sg3A==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2359,10 +2511,9 @@ packages: - '@aws-cdk/aws-s3' dev: false - /@aws-cdk/aws-route53-targets/1.204.0_2eviprr3zwoouaslbumtdekrhi: - resolution: - { integrity: sha512-JyILJz/HGRMilpFxrDk/VXv+TN24DoG5Gfdfh8SJoJpptokowN8blaQ2ibf6N0JnFqWSBrs7gMMWB2dR/sXoTQ== } - engines: { node: '>= 14.15.0' } + /@aws-cdk/aws-route53-targets/1.204.0_bumtmw6o2rwlthudo752xxrr5u: + resolution: {integrity: sha512-JyILJz/HGRMilpFxrDk/VXv+TN24DoG5Gfdfh8SJoJpptokowN8blaQ2ibf6N0JnFqWSBrs7gMMWB2dR/sXoTQ==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2378,11 +2529,11 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/aws-apigateway': 1.204.0_cs2gnbp3a35i2p5l5u5a3t4624 - '@aws-cdk/aws-cloudfront': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli + '@aws-cdk/aws-cloudfront': 1.204.0_knsptffnex2lyiy4uxr2qfndt4 '@aws-cdk/aws-cognito': 1.204.0_jhanj7vnhseo3o4cwsyzgiowqa - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-ec2': 1.204.0_7otc2o26uplt6z4h6rudhovj5u '@aws-cdk/aws-elasticloadbalancing': 1.204.0_s2iwowsvskkmujjbrmx4g5hlsi - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_vsyp5evbazeuvbvzpddjsx7f6m '@aws-cdk/aws-globalaccelerator': 1.204.0_u3bt2hwm6nh6yzg6d6qalghehq '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-route53': 1.204.0_i3vim6rlintxrbha4iep76yf5u @@ -2391,17 +2542,16 @@ packages: '@aws-cdk/region-info': 1.204.0 constructs: 3.4.344 transitivePeerDependencies: - - '@aws-cdk/assets' - '@aws-cdk/aws-lambda' - '@aws-cdk/aws-logs' + - '@aws-cdk/aws-s3-assets' - '@aws-cdk/custom-resources' - '@aws-cdk/cx-api' dev: false /@aws-cdk/aws-route53/1.204.0_i3vim6rlintxrbha4iep76yf5u: - resolution: - { integrity: sha512-wQpGUXqc2y7yJFTipfuVxWy/VGeshyGlfGl4evusQK9Md0DMpVmG8kRgazLk1myqUSNSfi643UwvDJqNbYmdnA== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-wQpGUXqc2y7yJFTipfuVxWy/VGeshyGlfGl4evusQK9Md0DMpVmG8kRgazLk1myqUSNSfi643UwvDJqNbYmdnA==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2415,19 +2565,18 @@ packages: '@aws-cdk/custom-resources': 1.204.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-ec2': 1.204.0_7otc2o26uplt6z4h6rudhovj5u '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu '@aws-cdk/cloud-assembly-schema': 1.204.0 '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam - '@aws-cdk/custom-resources': 1.204.0_c23kgzmvfhgnr6qpzzlbsfzuc4 + '@aws-cdk/custom-resources': 1.204.0_575fyf2i7umbzongv3ijfqjgle constructs: 3.4.344 dev: false /@aws-cdk/aws-s3-assets/1.204.0_l4ztnfmrjykhsbk6ow7yhidayu: - resolution: - { integrity: sha512-3MQbVZ95wW29Bl63tqu0Bz0td3osLyGg352l5G7Ztf3nK35FpuQlgxO4kcu74+s2sRwdd/R4KFV6eWhhPk+J7g== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-3MQbVZ95wW29Bl63tqu0Bz0td3osLyGg352l5G7Ztf3nK35FpuQlgxO4kcu74+s2sRwdd/R4KFV6eWhhPk+J7g==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2451,9 +2600,8 @@ packages: dev: false /@aws-cdk/aws-s3-deployment/1.204.0_vowuuig2yoedxxl4xtk74a3sma: - resolution: - { integrity: sha512-KyJYFqSXoEkHbZgRRzzJ58Yalw6KRM4p7Td+b65blWFAlM/1w+3hDZTTYWM31JYkfkJmdsx2JqP0AoG0KXkY7g== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-KyJYFqSXoEkHbZgRRzzJ58Yalw6KRM4p7Td+b65blWFAlM/1w+3hDZTTYWM31JYkfkJmdsx2JqP0AoG0KXkY7g==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2468,9 +2616,9 @@ packages: '@aws-cdk/core': 1.204.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-cloudfront': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-efs': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-cloudfront': 1.204.0_knsptffnex2lyiy4uxr2qfndt4 + '@aws-cdk/aws-ec2': 1.204.0_piacgwift44a2rmzffkfjqxufa + '@aws-cdk/aws-efs': 1.204.0_piacgwift44a2rmzffkfjqxufa '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu @@ -2481,15 +2629,15 @@ packages: constructs: 3.4.344 transitivePeerDependencies: - '@aws-cdk/assets' + - '@aws-cdk/aws-cloudwatch' - '@aws-cdk/cx-api' dev: false bundledDependencies: - case /@aws-cdk/aws-s3-notifications/1.204.0_xguspq3b5n56mo6dsez57f32qa: - resolution: - { integrity: sha512-twFuLlBhQa2xrCkVchSDpZTnSEACE0EfEBjH+sGEEWBUpw+9GbF7VMH8/B9dGwtXu3wmD9WI4nXQbFlBEjGsEg== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-twFuLlBhQa2xrCkVchSDpZTnSEACE0EfEBjH+sGEEWBUpw+9GbF7VMH8/B9dGwtXu3wmD9WI4nXQbFlBEjGsEg==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2516,9 +2664,8 @@ packages: dev: false /@aws-cdk/aws-s3/1.204.0_bi2u42js5xhxqcsg5gqefde4xi: - resolution: - { integrity: sha512-jsQ4n1L4MdPYDirBoOYgg7yzSk1TaFYo4dnwDlKiLJ5LcHG3Nai1cHb9XQbCy/9KKqbWsbd3WlkH+vcWEl8EUA== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-jsQ4n1L4MdPYDirBoOYgg7yzSk1TaFYo4dnwDlKiLJ5LcHG3Nai1cHb9XQbCy/9KKqbWsbd3WlkH+vcWEl8EUA==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2540,9 +2687,8 @@ packages: dev: false /@aws-cdk/aws-sam/1.204.0_add7c2jq5lcc6idtuigbkwnzeu: - resolution: - { integrity: sha512-8M3e1ZT6/nO6Yxtr7YtcrTF5YG6kjw8PcnOjda0SfUFo8Xya7oi1OZvDRIfAeOexsIgqjKSV8s7brDrWM5DIpg== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-8M3e1ZT6/nO6Yxtr7YtcrTF5YG6kjw8PcnOjda0SfUFo8Xya7oi1OZvDRIfAeOexsIgqjKSV8s7brDrWM5DIpg==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2556,10 +2702,9 @@ packages: constructs: 3.4.344 dev: false - /@aws-cdk/aws-secretsmanager/1.204.0_336juigttbrwz7tyvm6a6wfpy4: - resolution: - { integrity: sha512-ykpjYmP6qVOFbHtkaQBu3Xk7xp2UTR0ouzk7pb+zrEHKGmRvzGq+8J0IU+qXBJgQIVwFAPf2IgOSTzj6FJPdyA== } - engines: { node: '>= 14.15.0' } + /@aws-cdk/aws-secretsmanager/1.204.0_5ibbjioat6x2j3azupdfkiw2di: + resolution: {integrity: sha512-ykpjYmP6qVOFbHtkaQBu3Xk7xp2UTR0ouzk7pb+zrEHKGmRvzGq+8J0IU+qXBJgQIVwFAPf2IgOSTzj6FJPdyA==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2572,18 +2717,54 @@ packages: '@aws-cdk/cx-api': 1.204.0 constructs: ^3.3.69 dependencies: + '@aws-cdk/aws-ec2': 1.204.0_xko3xkmfscpwz76mf7mobwjaoa '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu + '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-sam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam '@aws-cdk/cx-api': 1.203.0 constructs: 3.4.344 + transitivePeerDependencies: + - '@aws-cdk/aws-cloudwatch' + - '@aws-cdk/aws-logs' + - '@aws-cdk/aws-s3' + - '@aws-cdk/aws-s3-assets' dev: false - /@aws-cdk/aws-servicediscovery/1.204.0_nu23nesxfni464wb5cy4ehgagi: - resolution: - { integrity: sha512-K1ckza6oAj3DntEAYmolm2JafkxJ0ekWb+DCl9hkm9l+546j28Qpb4cm8VkgGteNBN4JYACxrIuIxVC2zBLsCg== } - engines: { node: '>= 14.15.0' } + /@aws-cdk/aws-secretsmanager/1.204.0_tozf65cx46f236bynayszxjyoy: + resolution: {integrity: sha512-ykpjYmP6qVOFbHtkaQBu3Xk7xp2UTR0ouzk7pb+zrEHKGmRvzGq+8J0IU+qXBJgQIVwFAPf2IgOSTzj6FJPdyA==} + engines: {node: '>= 14.15.0'} + deprecated: |- + AWS CDK v1 has reached End-of-Support on 2023-06-01. + This package is no longer being updated, and users should migrate to AWS CDK v2. + + For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html + peerDependencies: + '@aws-cdk/aws-iam': 1.204.0 + '@aws-cdk/aws-lambda': 1.204.0 + '@aws-cdk/core': 1.204.0 + '@aws-cdk/cx-api': 1.204.0 + constructs: ^3.3.69 + dependencies: + '@aws-cdk/aws-ec2': 1.204.0_7otc2o26uplt6z4h6rudhovj5u + '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu + '@aws-cdk/aws-kms': 1.204.0_cttdkzy7hngahjug7jmkfylr2y + '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm + '@aws-cdk/aws-sam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu + '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam + '@aws-cdk/cx-api': 1.203.0 + constructs: 3.4.344 + transitivePeerDependencies: + - '@aws-cdk/aws-cloudwatch' + - '@aws-cdk/aws-logs' + - '@aws-cdk/aws-s3' + - '@aws-cdk/aws-s3-assets' + dev: false + + /@aws-cdk/aws-servicediscovery/1.204.0_2pbhnqzqa55byia6sq3bvevyma: + resolution: {integrity: sha512-K1ckza6oAj3DntEAYmolm2JafkxJ0ekWb+DCl9hkm9l+546j28Qpb4cm8VkgGteNBN4JYACxrIuIxVC2zBLsCg==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2594,25 +2775,24 @@ packages: '@aws-cdk/core': 1.204.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a - '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_xbmlyikxd4zabyotfrt4oo4gli + '@aws-cdk/aws-ec2': 1.204.0_7otc2o26uplt6z4h6rudhovj5u + '@aws-cdk/aws-elasticloadbalancingv2': 1.204.0_vsyp5evbazeuvbvzpddjsx7f6m '@aws-cdk/aws-route53': 1.204.0_i3vim6rlintxrbha4iep76yf5u '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam constructs: 3.4.344 transitivePeerDependencies: - - '@aws-cdk/assets' - '@aws-cdk/aws-iam' - '@aws-cdk/aws-lambda' - '@aws-cdk/aws-logs' - '@aws-cdk/aws-s3' + - '@aws-cdk/aws-s3-assets' - '@aws-cdk/custom-resources' - '@aws-cdk/cx-api' dev: false /@aws-cdk/aws-signer/1.204.0_add7c2jq5lcc6idtuigbkwnzeu: - resolution: - { integrity: sha512-AI26FhWF3+f/vDh3mleQa2CXv2/CmSerXgyk4XHMVVTTCjnlYGGmHmGlzYhqOSw6ALpQNdOSw8GVxU/ySpQCaw== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-AI26FhWF3+f/vDh3mleQa2CXv2/CmSerXgyk4XHMVVTTCjnlYGGmHmGlzYhqOSw6ALpQNdOSw8GVxU/ySpQCaw==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2627,9 +2807,8 @@ packages: dev: false /@aws-cdk/aws-sns-subscriptions/1.204.0_bpkznh2gsccwq6qpaogbkb4psu: - resolution: - { integrity: sha512-yi78Kp0fV2nL7LnxL9ot8wbhGVYsL/ZeIzi6m2+iRZCgW1V+nO/a/eXdk5mMpBGLCqOtWcG59sIpSjqHvgpdaQ== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-yi78Kp0fV2nL7LnxL9ot8wbhGVYsL/ZeIzi6m2+iRZCgW1V+nO/a/eXdk5mMpBGLCqOtWcG59sIpSjqHvgpdaQ==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2654,9 +2833,8 @@ packages: dev: false /@aws-cdk/aws-sns/1.204.0_bi2u42js5xhxqcsg5gqefde4xi: - resolution: - { integrity: sha512-KoWxqKT/dTjt9Pk0a3kJLcd6xZHvrwbZDC0mrLtxdRNhQoHmnURAHW2UqX/lefrCU1GcUFf4L58N9ehBTunAFQ== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-KoWxqKT/dTjt9Pk0a3kJLcd6xZHvrwbZDC0mrLtxdRNhQoHmnURAHW2UqX/lefrCU1GcUFf4L58N9ehBTunAFQ==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2681,9 +2859,8 @@ packages: dev: false /@aws-cdk/aws-sqs/1.204.0_cttdkzy7hngahjug7jmkfylr2y: - resolution: - { integrity: sha512-dVzuGMh6d5/X9P9jel1w2Wgdy5MuSE35+eBSFxN+S7oJRoVSARpyKMNYAPMCW+2OJCDw7fIqO1rWbsZBT1Gq8g== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-dVzuGMh6d5/X9P9jel1w2Wgdy5MuSE35+eBSFxN+S7oJRoVSARpyKMNYAPMCW+2OJCDw7fIqO1rWbsZBT1Gq8g==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2704,9 +2881,8 @@ packages: dev: false /@aws-cdk/aws-ssm/1.204.0_cttdkzy7hngahjug7jmkfylr2y: - resolution: - { integrity: sha512-yYx7HZ8cWNXDAmX/99WkB477QhLoV2rcB8orei8aj7nRkNq5TMjeox0IJaZVgU+edNEDOi1fVX3flh0SAMiUrg== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-yYx7HZ8cWNXDAmX/99WkB477QhLoV2rcB8orei8aj7nRkNq5TMjeox0IJaZVgU+edNEDOi1fVX3flh0SAMiUrg==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2727,9 +2903,8 @@ packages: dev: false /@aws-cdk/aws-stepfunctions/1.204.0_5s7psvfm6hmailsvkk6x3wncsq: - resolution: - { integrity: sha512-S8yuB5GtUajOxUcoMw82HQ+ei1U9uofwENEnEtYTeyqgjpd0FG4XHYoHvBdmgVvEKwpH/XiOePfEHeB8nTXufw== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-S8yuB5GtUajOxUcoMw82HQ+ei1U9uofwENEnEtYTeyqgjpd0FG4XHYoHvBdmgVvEKwpH/XiOePfEHeB8nTXufw==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2753,26 +2928,23 @@ packages: dev: false /@aws-cdk/cfnspec/1.203.0: - resolution: - { integrity: sha512-D4E9Y2fCAzmwNNTn6Ipe16ZlHZc06XPiqQ5ijWHDnMKlDhM6bsPBEOSRc8uGRtWu317evTFanvLgAXmpHlHKZQ== } + resolution: {integrity: sha512-D4E9Y2fCAzmwNNTn6Ipe16ZlHZc06XPiqQ5ijWHDnMKlDhM6bsPBEOSRc8uGRtWu317evTFanvLgAXmpHlHKZQ==} dependencies: fs-extra: 9.1.0 md5: 2.3.0 dev: false /@aws-cdk/cloud-assembly-schema/1.203.0: - resolution: - { integrity: sha512-r252InZ8Oh7q7ztriaA3n6F48QOFVfNcT/KO4XOlYyt1xDWRMENDYf+D+DVr6O5klcaa3ivvvDT7DRuW3xdVOQ== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-r252InZ8Oh7q7ztriaA3n6F48QOFVfNcT/KO4XOlYyt1xDWRMENDYf+D+DVr6O5klcaa3ivvvDT7DRuW3xdVOQ==} + engines: {node: '>= 14.15.0'} dev: false bundledDependencies: - jsonschema - semver /@aws-cdk/cloud-assembly-schema/1.204.0: - resolution: - { integrity: sha512-DMNSR4DNKMNNfhOq1UizwZvesOKdhk3R3gRigrvWBHIkHMQg+W6aZFl7WZLKSBkChAXhIsH///psjhDQ20gl1w== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-DMNSR4DNKMNNfhOq1UizwZvesOKdhk3R3gRigrvWBHIkHMQg+W6aZFl7WZLKSBkChAXhIsH///psjhDQ20gl1w==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2784,18 +2956,16 @@ packages: - semver /@aws-cdk/cloud-assembly-schema/2.39.1: - resolution: - { integrity: sha512-lSVaaedXWeK08uoq0IXDCspz9U/H4qIERemdsMQrMUDTiUe/JBby7vtmyMvOdEscE8GMAmiOzoPmAE0Uf+yw5A== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-lSVaaedXWeK08uoq0IXDCspz9U/H4qIERemdsMQrMUDTiUe/JBby7vtmyMvOdEscE8GMAmiOzoPmAE0Uf+yw5A==} + engines: {node: '>= 14.15.0'} dev: false bundledDependencies: - jsonschema - semver /@aws-cdk/cloudformation-diff/1.203.0: - resolution: - { integrity: sha512-QmNnwCwBvfHvvDg/GTWFUktXIEoXc9cbrwYWxjZSWqR7cI8tVYDWsCEEqeovdJHEru7gAoz85QId30pPFZPyLg== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-QmNnwCwBvfHvvDg/GTWFUktXIEoXc9cbrwYWxjZSWqR7cI8tVYDWsCEEqeovdJHEru7gAoz85QId30pPFZPyLg==} + engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cfnspec': 1.203.0 '@types/node': 10.17.60 @@ -2803,13 +2973,12 @@ packages: diff: 5.2.0 fast-deep-equal: 3.1.3 string-width: 4.2.3 - table: 6.8.2 + table: 6.9.0 dev: false /@aws-cdk/core/1.204.0_hol6usdabdbzhugfw355k4ebam: - resolution: - { integrity: sha512-yO/flJ9ihpzRhLTEqlbdbuPGtyyghHiiQPkUTLslwUM5vThVTbpgvW4UQHSGqytyst4MYXrN2jQn2RkwIRU57g== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-yO/flJ9ihpzRhLTEqlbdbuPGtyyghHiiQPkUTLslwUM5vThVTbpgvW4UQHSGqytyst4MYXrN2jQn2RkwIRU57g==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2830,10 +2999,9 @@ packages: - '@balena/dockerignore' - ignore - /@aws-cdk/custom-resources/1.204.0_c23kgzmvfhgnr6qpzzlbsfzuc4: - resolution: - { integrity: sha512-0w3oi7LnAtMZpf7uUBDH6aT2Oo1EBQrqD+VTvPZDX8PJFAox8ol7buZ9sSTpIXgv9j/GK9yaPTIHt4m8ok9kVQ== } - engines: { node: '>= 14.15.0' } + /@aws-cdk/custom-resources/1.204.0_575fyf2i7umbzongv3ijfqjgle: + resolution: {integrity: sha512-0w3oi7LnAtMZpf7uUBDH6aT2Oo1EBQrqD+VTvPZDX8PJFAox8ol7buZ9sSTpIXgv9j/GK9yaPTIHt4m8ok9kVQ==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2847,7 +3015,7 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/aws-cloudformation': 1.204.0_xguspq3b5n56mo6dsez57f32qa - '@aws-cdk/aws-ec2': 1.204.0_r4d2a6r7lnkv26zjzkdsvuam2a + '@aws-cdk/aws-ec2': 1.204.0_xko3xkmfscpwz76mf7mobwjaoa '@aws-cdk/aws-iam': 1.204.0_add7c2jq5lcc6idtuigbkwnzeu '@aws-cdk/aws-lambda': 1.204.0_afnjft5qr3fswieaeg3dwwhnvm '@aws-cdk/aws-logs': 1.204.0_l4ztnfmrjykhsbk6ow7yhidayu @@ -2855,16 +3023,16 @@ packages: '@aws-cdk/core': 1.204.0_hol6usdabdbzhugfw355k4ebam constructs: 3.4.344 transitivePeerDependencies: - - '@aws-cdk/assets' + - '@aws-cdk/aws-cloudwatch' - '@aws-cdk/aws-events' - '@aws-cdk/aws-s3' + - '@aws-cdk/aws-s3-assets' - '@aws-cdk/cx-api' dev: false /@aws-cdk/cx-api/1.203.0: - resolution: - { integrity: sha512-W2flnJFGytifPw2ojEsh9l8MAI4UANaUcMKr+qt4eJmFwrtVcS7nasdJQGSatQdxkAwd2pX4x10brAHYoAqjjQ== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-W2flnJFGytifPw2ojEsh9l8MAI4UANaUcMKr+qt4eJmFwrtVcS7nasdJQGSatQdxkAwd2pX4x10brAHYoAqjjQ==} + engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 1.203.0 dev: false @@ -2872,9 +3040,8 @@ packages: - semver /@aws-cdk/cx-api/1.204.0: - resolution: - { integrity: sha512-Juh/jL1kFPD5JcI9Uu6X0mM2L6hBCN5grdjSS40F8dThbH25VPzFBejaKjiy5nP1UZB83X+HW3utYOEi97DqxA== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-Juh/jL1kFPD5JcI9Uu6X0mM2L6hBCN5grdjSS40F8dThbH25VPzFBejaKjiy5nP1UZB83X+HW3utYOEi97DqxA==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2887,9 +3054,8 @@ packages: - semver /@aws-cdk/cx-api/2.39.1: - resolution: - { integrity: sha512-2YFBvKtvT8vJSZe170qzcFVNSP+1gmVBpzZXGzZ+rcZxEo2vvKj+JZXpgXk8tvKArPZtE8HCu5bd6cJXlVuLoQ== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-2YFBvKtvT8vJSZe170qzcFVNSP+1gmVBpzZXGzZ+rcZxEo2vvKj+JZXpgXk8tvKArPZtE8HCu5bd6cJXlVuLoQ==} + engines: {node: '>= 14.15.0'} dependencies: '@aws-cdk/cloud-assembly-schema': 2.39.1 dev: false @@ -2897,9 +3063,8 @@ packages: - semver /@aws-cdk/lambda-layer-awscli/1.204.0_e7ybiu4yrrtvf3zlvzrvcjkvyy: - resolution: - { integrity: sha512-zsZgpkMCNnur1nzbJP5IhBmEPZu1ZbUqruBMDkbpmyF9IQPHoJUa2NwaSYHg6ZZDnuBEZwsJfXckotcQTBktOQ== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-zsZgpkMCNnur1nzbJP5IhBmEPZu1ZbUqruBMDkbpmyF9IQPHoJUa2NwaSYHg6ZZDnuBEZwsJfXckotcQTBktOQ==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2916,9 +3081,8 @@ packages: dev: false /@aws-cdk/region-info/1.204.0: - resolution: - { integrity: sha512-lPkYJNoN4Gjlf0Fdfgcd1RTm5RD9qtfaFMwVvTn2KGTr7ZqmFskGQ9FqIcd5vd6GmsbAL8OrFOToLr1AHDuOiQ== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-lPkYJNoN4Gjlf0Fdfgcd1RTm5RD9qtfaFMwVvTn2KGTr7ZqmFskGQ9FqIcd5vd6GmsbAL8OrFOToLr1AHDuOiQ==} + engines: {node: '>= 14.15.0'} deprecated: |- AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. @@ -2927,57 +3091,52 @@ packages: dev: false /@azure/abort-controller/1.1.0: - resolution: - { integrity: sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw== } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==} + engines: {node: '>=12.0.0'} dependencies: tslib: 2.8.1 dev: false /@azure/abort-controller/2.1.2: - resolution: - { integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA== } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} + engines: {node: '>=18.0.0'} dependencies: tslib: 2.8.1 dev: false /@azure/arm-appservice/13.0.3: - resolution: - { integrity: sha512-Vu011o3/bikQNwtjouwmUJud+Z6Brcjij2D0omPWClRGg8i5gBfOYSpDkFGkHbhGlaky4fgvfkxD0uHGq34uYA== } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-Vu011o3/bikQNwtjouwmUJud+Z6Brcjij2D0omPWClRGg8i5gBfOYSpDkFGkHbhGlaky4fgvfkxD0uHGq34uYA==} + engines: {node: '>=14.0.0'} dependencies: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.9.0 '@azure/core-client': 1.9.2 '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.18.0 + '@azure/core-rest-pipeline': 1.18.1 tslib: 2.8.1 transitivePeerDependencies: - supports-color dev: false /@azure/arm-resources/5.2.0: - resolution: - { integrity: sha512-wQyuhL8WQsLkW/KMdik8bLJIJCz3Z6mg/+AKm0KedgK73SKhicSqYP+ed3t+43tLlRFltcrmGKMcHLQ+Jhv/6A== } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-wQyuhL8WQsLkW/KMdik8bLJIJCz3Z6mg/+AKm0KedgK73SKhicSqYP+ed3t+43tLlRFltcrmGKMcHLQ+Jhv/6A==} + engines: {node: '>=14.0.0'} dependencies: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.9.0 '@azure/core-client': 1.9.2 '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.18.0 + '@azure/core-rest-pipeline': 1.18.1 tslib: 2.8.1 transitivePeerDependencies: - supports-color dev: false /@azure/core-amqp/3.3.0: - resolution: - { integrity: sha512-RYIyC8PtGpMzZRiSokADw0ezFgNq1eUkCPV8rd7tJ85dn8CAhYDEYapzMYxAwIBLWidshu14m9UWjQS7hKYDpA== } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-RYIyC8PtGpMzZRiSokADw0ezFgNq1eUkCPV8rd7tJ85dn8CAhYDEYapzMYxAwIBLWidshu14m9UWjQS7hKYDpA==} + engines: {node: '>=14.0.0'} dependencies: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.9.0 @@ -2996,9 +3155,8 @@ packages: dev: false /@azure/core-auth/1.9.0: - resolution: - { integrity: sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw== } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw==} + engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-util': 1.11.0 @@ -3006,13 +3164,12 @@ packages: dev: false /@azure/core-client/1.9.2: - resolution: - { integrity: sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w== } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w==} + engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.9.0 - '@azure/core-rest-pipeline': 1.18.0 + '@azure/core-rest-pipeline': 1.18.1 '@azure/core-tracing': 1.2.0 '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 @@ -3022,9 +3179,8 @@ packages: dev: false /@azure/core-lro/2.7.2: - resolution: - { integrity: sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw== } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==} + engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-util': 1.11.0 @@ -3033,15 +3189,14 @@ packages: dev: false /@azure/core-paging/1.6.2: - resolution: - { integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA== } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==} + engines: {node: '>=18.0.0'} dependencies: tslib: 2.8.1 dev: false - /@azure/core-rest-pipeline/1.17.0: - resolution: {integrity: sha512-62Vv8nC+uPId3j86XJ0WI+sBf0jlqTqPUFCBNrGtlaUeQUIXWV/D8GE5A1d+Qx8H7OQojn2WguC8kChD6v0shA==} + /@azure/core-rest-pipeline/1.18.1: + resolution: {integrity: sha512-/wS73UEDrxroUEVywEm7J0p2c+IIiVxyfigCGfsKvCxxCET4V/Hef2aURqltrXMRjNmdmt5IuOgIpl8f6xdO5A==} engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 @@ -3050,36 +3205,34 @@ packages: '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 + https-proxy-agent: 7.0.6 tslib: 2.8.1 transitivePeerDependencies: - supports-color dev: false /@azure/core-tracing/1.2.0: - resolution: - { integrity: sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg== } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg==} + engines: {node: '>=18.0.0'} dependencies: tslib: 2.8.1 dev: false /@azure/core-util/1.11.0: - resolution: - { integrity: sha512-DxOSLua+NdpWoSqULhjDyAZTXFdP/LKkqtYuxxz1SCN289zk3OG8UOpnCQAz/tygyACBtWp/BoO72ptK7msY8g== } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-DxOSLua+NdpWoSqULhjDyAZTXFdP/LKkqtYuxxz1SCN289zk3OG8UOpnCQAz/tygyACBtWp/BoO72ptK7msY8g==} + engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 tslib: 2.8.1 dev: false - /@azure/cosmos/4.1.1: - resolution: {integrity: sha512-EKcRHZy3enhz7hU/qlwW2urcoF7haFkQRbLhR+rUaAtzDaN6+F/rH4xJtNc94NjOEoeHUI+bkze63ZA55Gca0A==} + /@azure/cosmos/4.2.0: + resolution: {integrity: sha512-acfAQTYLxgB/iZK7XvTVYe9NPk6DECEgcIXDQhyn7Uo4dGxeeW5D3YqLjLJrrzND5Iawer3eUQ5/iiLWvTGAxQ==} engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.9.0 - '@azure/core-rest-pipeline': 1.18.0 + '@azure/core-rest-pipeline': 1.18.1 '@azure/core-tracing': 1.2.0 '@azure/core-util': 1.11.0 fast-json-stable-stringify: 2.1.0 @@ -3092,9 +3245,8 @@ packages: dev: false /@azure/event-hubs/5.11.1: - resolution: - { integrity: sha512-4sgPwxO0A6CjU7oZgNvavnYGQK0oluqyoJImqxmRiaptQjFpki9yH+k2WmplAXIMnXJn4znstLWv6vGSFvGmgA== } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-4sgPwxO0A6CjU7oZgNvavnYGQK0oluqyoJImqxmRiaptQjFpki9yH+k2WmplAXIMnXJn4znstLWv6vGSFvGmgA==} + engines: {node: '>=14.0.0'} dependencies: '@azure/abort-controller': 1.1.0 '@azure/core-amqp': 3.3.0 @@ -3113,19 +3265,17 @@ packages: dev: false /@azure/functions/1.2.3: - resolution: - { integrity: sha512-dZITbYPNg6ay6ngcCOjRUh1wDhlFITS0zIkqplyH5KfKEAVPooaoaye5mUFnR+WP9WdGRjlNXyl/y2tgWKHcRg== } + resolution: {integrity: sha512-dZITbYPNg6ay6ngcCOjRUh1wDhlFITS0zIkqplyH5KfKEAVPooaoaye5mUFnR+WP9WdGRjlNXyl/y2tgWKHcRg==} dev: false /@azure/identity/2.1.0: - resolution: - { integrity: sha512-BPDz1sK7Ul9t0l9YKLEa8PHqWU4iCfhGJ+ELJl6c8CP3TpJt2urNCbm0ZHsthmxRsYoMPbz2Dvzj30zXZVmAFw== } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-BPDz1sK7Ul9t0l9YKLEa8PHqWU4iCfhGJ+ELJl6c8CP3TpJt2urNCbm0ZHsthmxRsYoMPbz2Dvzj30zXZVmAFw==} + engines: {node: '>=12.0.0'} dependencies: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.9.0 '@azure/core-client': 1.9.2 - '@azure/core-rest-pipeline': 1.18.0 + '@azure/core-rest-pipeline': 1.18.1 '@azure/core-tracing': 1.2.0 '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 @@ -3143,43 +3293,37 @@ packages: dev: false /@azure/logger/1.1.4: - resolution: - { integrity: sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ== } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==} + engines: {node: '>=18.0.0'} dependencies: tslib: 2.8.1 dev: false /@azure/msal-browser/2.39.0: - resolution: - { integrity: sha512-kks/n2AJzKUk+DBqZhiD+7zeQGBl+WpSOQYzWy6hff3bU0ZrYFqr4keFLlzB5VKuKZog0X59/FGHb1RPBDZLVg== } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-kks/n2AJzKUk+DBqZhiD+7zeQGBl+WpSOQYzWy6hff3bU0ZrYFqr4keFLlzB5VKuKZog0X59/FGHb1RPBDZLVg==} + engines: {node: '>=0.8.0'} dependencies: '@azure/msal-common': 13.3.3 dev: false /@azure/msal-common/13.3.1: - resolution: - { integrity: sha512-Lrk1ozoAtaP/cp53May3v6HtcFSVxdFrg2Pa/1xu5oIvsIwhxW6zSPibKefCOVgd5osgykMi5jjcZHv8XkzZEQ== } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-Lrk1ozoAtaP/cp53May3v6HtcFSVxdFrg2Pa/1xu5oIvsIwhxW6zSPibKefCOVgd5osgykMi5jjcZHv8XkzZEQ==} + engines: {node: '>=0.8.0'} dev: false /@azure/msal-common/13.3.3: - resolution: - { integrity: sha512-n278DdCXKeiWhLwhEL7/u9HRMyzhUXLefeajiknf6AmEedoiOiv2r5aRJ7LXdT3NGPyubkdIbthaJlVtmuEqvA== } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-n278DdCXKeiWhLwhEL7/u9HRMyzhUXLefeajiknf6AmEedoiOiv2r5aRJ7LXdT3NGPyubkdIbthaJlVtmuEqvA==} + engines: {node: '>=0.8.0'} dev: false /@azure/msal-common/7.6.0: - resolution: - { integrity: sha512-XqfbglUTVLdkHQ8F9UQJtKseRr3sSnr9ysboxtoswvaMVaEfvyLtMoHv9XdKUfOc0qKGzNgRFd9yRjIWVepl6Q== } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-XqfbglUTVLdkHQ8F9UQJtKseRr3sSnr9ysboxtoswvaMVaEfvyLtMoHv9XdKUfOc0qKGzNgRFd9yRjIWVepl6Q==} + engines: {node: '>=0.8.0'} dev: false /@azure/msal-node/1.18.4: - resolution: - { integrity: sha512-Kc/dRvhZ9Q4+1FSfsTFDME/v6+R2Y1fuMty/TfwqE5p9GTPw08BPbKgeWinE8JRHRp+LemjQbUZsn4Q4l6Lszg== } - engines: { node: 10 || 12 || 14 || 16 || 18 } + resolution: {integrity: sha512-Kc/dRvhZ9Q4+1FSfsTFDME/v6+R2Y1fuMty/TfwqE5p9GTPw08BPbKgeWinE8JRHRp+LemjQbUZsn4Q4l6Lszg==} + engines: {node: 10 || 12 || 14 || 16 || 18} deprecated: A newer major version of this library is available. Please upgrade to the latest available version. dependencies: '@azure/msal-common': 13.3.1 @@ -3188,13 +3332,12 @@ packages: dev: false /@azure/web-pubsub/1.1.3: - resolution: - { integrity: sha512-l1HHPcFCRhZ8P6oQ8C/8A2eElHWqmG7CxVUlDcXi3Fs9SUr8GYKv5euYJWS5uboaokudjAiqJ6u/oM6h+pQ4+w== } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-l1HHPcFCRhZ8P6oQ8C/8A2eElHWqmG7CxVUlDcXi3Fs9SUr8GYKv5euYJWS5uboaokudjAiqJ6u/oM6h+pQ4+w==} + engines: {node: '>=18.0.0'} dependencies: '@azure/core-auth': 1.9.0 '@azure/core-client': 1.9.2 - '@azure/core-rest-pipeline': 1.18.0 + '@azure/core-rest-pipeline': 1.18.1 '@azure/core-tracing': 1.2.0 '@azure/logger': 1.1.4 jsonwebtoken: 9.0.1 @@ -3203,36 +3346,35 @@ packages: - supports-color dev: false - /@babel/code-frame/7.26.0: - resolution: {integrity: sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g==} + /@babel/code-frame/7.26.2: + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.25.9 js-tokens: 4.0.0 picocolors: 1.1.1 - /@babel/compat-data/7.26.0: - resolution: {integrity: sha512-qETICbZSLe7uXv9VE8T/RWOdIE5qqyTucOt4zLYMafj2MRO271VGgLd4RACJMeBO37UPWhXiKMBk7YlJ0fOzQA==} + /@babel/compat-data/7.26.3: + resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==} engines: {node: '>=6.9.0'} dev: true /@babel/core/7.26.0: - resolution: - { integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg== } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} + engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.2 + '@babel/generator': 7.26.3 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-module-transforms': 7.26.0_@babel+core@7.26.0 '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.2 + '@babel/parser': 7.26.3 '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/traverse': 7.26.4 + '@babel/types': 7.26.3 convert-source-map: 2.0.0 - debug: 4.3.7 + debug: 4.4.0 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -3240,22 +3382,21 @@ packages: - supports-color dev: true - /@babel/generator/7.26.0: - resolution: {integrity: sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w==} + /@babel/generator/7.26.3: + resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 /@babel/helper-compilation-targets/7.25.9: - resolution: - { integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ== } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} + engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.26.2 + '@babel/compat-data': 7.26.3 '@babel/helper-validator-option': 7.25.9 browserslist: 4.24.2 lru-cache: 5.1.1 @@ -3263,114 +3404,103 @@ packages: dev: true /@babel/helper-module-imports/7.25.9: - resolution: - { integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/traverse': 7.26.4 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color dev: true /@babel/helper-module-transforms/7.26.0_@babel+core@7.26.0: - resolution: - { integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.26.0 '@babel/helper-module-imports': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.26.4 transitivePeerDependencies: - supports-color dev: true /@babel/helper-string-parser/7.25.9: - resolution: - { integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} /@babel/helper-validator-identifier/7.25.9: - resolution: - { integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} /@babel/helper-validator-option/7.25.9: - resolution: - { integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + engines: {node: '>=6.9.0'} dev: true /@babel/helpers/7.26.0: - resolution: - { integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw== } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} + engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 dev: true - /@babel/parser/7.26.0: - resolution: {integrity: sha512-aP8x5pIw3xvYr/sXT+SEUwyhrXT8rUJRZltK/qN3Db80dcKpTett8cJxHyjk+xYSVXvNnl2SfcJVjbwxpOSscA==} + /@babel/parser/7.26.3: + resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 /@babel/runtime/7.26.0: - resolution: - { integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 dev: true /@babel/template/7.25.9: - resolution: - { integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 - /@babel/traverse/7.25.9: - resolution: - { integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw== } - engines: { node: '>=6.9.0' } + /@babel/traverse/7.26.4: + resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==} + engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.2 - '@babel/parser': 7.26.2 + '@babel/generator': 7.26.3 + '@babel/parser': 7.26.3 '@babel/template': 7.25.9 - '@babel/types': 7.26.0 - debug: 4.3.7 + '@babel/types': 7.26.3 + debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types/7.26.0: - resolution: - { integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA== } - engines: { node: '>=6.9.0' } + /@babel/types/7.26.3: + resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} + engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 /@cdktf/cli-core/0.19.2_react@17.0.2: - resolution: - { integrity: sha512-kjgEUhrHx3kUPfL7KsTo6GrurVUPT77FmOUf7wWXt7ajNE5zCPvx/HKGmQruzt0n6eLZp1aKT+r/D6YRfXcIGA== } + resolution: {integrity: sha512-kjgEUhrHx3kUPfL7KsTo6GrurVUPT77FmOUf7wWXt7ajNE5zCPvx/HKGmQruzt0n6eLZp1aKT+r/D6YRfXcIGA==} dependencies: '@cdktf/commons': 0.19.2 '@cdktf/hcl2cdk': 0.19.2 '@cdktf/hcl2json': 0.19.2 '@cdktf/node-pty-prebuilt-multiarch': 0.10.1-pre.11 '@cdktf/provider-schema': 0.19.2 - '@sentry/node': 7.120.0 + '@sentry/node': 7.120.1 archiver: 5.3.2 cdktf: 0.19.2_constructs@10.4.2 chalk: 4.1.2 @@ -3392,9 +3522,9 @@ packages: ink-spinner: 4.0.3_ink@3.2.0+react@17.0.2 ink-testing-library: 2.1.0 ink-use-stdout-dimensions: 1.0.5_ink@3.2.0+react@17.0.2 - jsii: 5.6.0 + jsii: 5.7.1 jsii-pacmak: 1.105.0 - jsii-srcmak: 0.1.1304 + jsii-srcmak: 0.1.1308 lodash.isequal: 4.5.0 log4js: 6.9.1 minimatch: 5.1.6 @@ -3424,10 +3554,9 @@ packages: - utf-8-validate /@cdktf/commons/0.19.2: - resolution: - { integrity: sha512-5rOeb0cSREHQa5XVsGFEV6Ce8Zwo2WxE8GIhmGd/JzeSAByhK8scHFlD3+eENl83W/8lwIkm/nSl9oDHEkENIg== } + resolution: {integrity: sha512-5rOeb0cSREHQa5XVsGFEV6Ce8Zwo2WxE8GIhmGd/JzeSAByhK8scHFlD3+eENl83W/8lwIkm/nSl9oDHEkENIg==} dependencies: - '@sentry/node': 7.120.0 + '@sentry/node': 7.120.1 cdktf: 0.19.2_constructs@10.4.2 ci-info: 3.9.0 codemaker: 1.105.0 @@ -3443,12 +3572,11 @@ packages: - supports-color /@cdktf/hcl2cdk/0.19.2: - resolution: - { integrity: sha512-v0UNRvvzuCi3SnmSAgBFAnWavT0ybR1AzkK8ndgfbB5JLDoNm0iJV0MOTURZF+I0O3V9u4RZsw4DVNPdil2EEA== } + resolution: {integrity: sha512-v0UNRvvzuCi3SnmSAgBFAnWavT0ybR1AzkK8ndgfbB5JLDoNm0iJV0MOTURZF+I0O3V9u4RZsw4DVNPdil2EEA==} dependencies: - '@babel/generator': 7.26.2 + '@babel/generator': 7.26.3 '@babel/template': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 '@cdktf/commons': 0.19.2 '@cdktf/hcl2json': 0.19.2 '@cdktf/provider-generator': 0.19.2 @@ -3458,7 +3586,7 @@ packages: glob: 10.4.5 graphology: 0.25.4_graphology-types@0.24.8 graphology-types: 0.24.8 - jsii-rosetta: 5.6.0 + jsii-rosetta: 5.7.1 prettier: 2.8.8 reserved-words: 0.1.2 zod: 3.23.8 @@ -3467,23 +3595,20 @@ packages: - supports-color /@cdktf/hcl2json/0.19.2: - resolution: - { integrity: sha512-gFj36AshWSyPKq/eNjQtMnWj0QM0tPtMulFpQ0FrB+eWj0GvxgWg9d65gGCZ8Y/o33VV/2Kv5l8VlDEYDW2S7Q== } + resolution: {integrity: sha512-gFj36AshWSyPKq/eNjQtMnWj0QM0tPtMulFpQ0FrB+eWj0GvxgWg9d65gGCZ8Y/o33VV/2Kv5l8VlDEYDW2S7Q==} dependencies: fs-extra: 11.2.0 /@cdktf/node-pty-prebuilt-multiarch/0.10.1-pre.11: - resolution: - { integrity: sha512-qvga/nzEtdCJMu/6jJfDqpzbRejvXtNhWFnbubfuYyN5nMNORNXX+POT4j+mQSDQar5bIQ1a812szw/zr47cfw== } + resolution: {integrity: sha512-qvga/nzEtdCJMu/6jJfDqpzbRejvXtNhWFnbubfuYyN5nMNORNXX+POT4j+mQSDQar5bIQ1a812szw/zr47cfw==} requiresBuild: true dependencies: nan: 2.22.0 prebuild-install: 7.1.2 /@cdktf/provider-azurerm/13.3.0_eykofocqnxaowlkqmvzbold3ry: - resolution: - { integrity: sha512-gXxAJYTpEMwxSteqJvZEQ8WpCot+E58sW5u/za0drc5zgkrYO3vTEsOByj8Vcxn7MWXrZFacnktgtU1UkPZs4w== } - engines: { node: '>= 18.12.0' } + resolution: {integrity: sha512-gXxAJYTpEMwxSteqJvZEQ8WpCot+E58sW5u/za0drc5zgkrYO3vTEsOByj8Vcxn7MWXrZFacnktgtU1UkPZs4w==} + engines: {node: '>= 18.12.0'} peerDependencies: cdktf: ^0.20.0 constructs: ^10.3.0 @@ -3493,8 +3618,7 @@ packages: dev: false /@cdktf/provider-generator/0.19.2: - resolution: - { integrity: sha512-e8fY/FtvlwMupp8zGGzAeAyW5yq4jhY+azL5kfXAXck2kO7hpimKflhycGGBm2aVTuOAmsmrumgEkCa6+7vmSg== } + resolution: {integrity: sha512-e8fY/FtvlwMupp8zGGzAeAyW5yq4jhY+azL5kfXAXck2kO7hpimKflhycGGBm2aVTuOAmsmrumgEkCa6+7vmSg==} dependencies: '@cdktf/commons': 0.19.2 '@cdktf/hcl2json': 0.19.2 @@ -3503,14 +3627,13 @@ packages: codemaker: 1.105.0 deepmerge: 4.3.1 fs-extra: 8.1.0 - jsii-srcmak: 0.1.1304 + jsii-srcmak: 0.1.1308 transitivePeerDependencies: - debug - supports-color /@cdktf/provider-schema/0.19.2: - resolution: - { integrity: sha512-d6YghOMsDPqQS8DRS+h5BMwg6I0QVwNi8iE9bX+pGXHa/hYggXE97sAMUGFcW3za+gSCOImHYvvKDVc3u3KsOA== } + resolution: {integrity: sha512-d6YghOMsDPqQS8DRS+h5BMwg6I0QVwNi8iE9bX+pGXHa/hYggXE97sAMUGFcW3za+gSCOImHYvvKDVc3u3KsOA==} dependencies: '@cdktf/commons': 0.19.2 fs-extra: 11.2.0 @@ -3519,9 +3642,8 @@ packages: - supports-color /@cdktf/provider-time/9.0.2_eykofocqnxaowlkqmvzbold3ry: - resolution: - { integrity: sha512-I0BS+/Gs/2fWXqGcmDsUvWqiCXDYcYH0OKvVvUf1RrGc8678uCeyqVqnwdy+UkIwjUGwk3L9pfJKX3dsun8OUQ== } - engines: { node: '>= 18.12.0' } + resolution: {integrity: sha512-I0BS+/Gs/2fWXqGcmDsUvWqiCXDYcYH0OKvVvUf1RrGc8678uCeyqVqnwdy+UkIwjUGwk3L9pfJKX3dsun8OUQ==} + engines: {node: '>= 18.12.0'} peerDependencies: cdktf: ^0.19.0 constructs: ^10.3.0 @@ -3531,22 +3653,19 @@ packages: dev: false /@cspotcode/source-map-support/0.8.1: - resolution: - { integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== } - engines: { node: '>=12' } + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} dependencies: '@jridgewell/trace-mapping': 0.3.9 /@effect-ts/core/0.60.5: - resolution: - { integrity: sha512-qi1WrtJA90XLMnj2hnUszW9Sx4dXP03ZJtCc5DiUBIOhF4Vw7plfb65/bdBySPoC9s7zy995TdUX1XBSxUkl5w== } + resolution: {integrity: sha512-qi1WrtJA90XLMnj2hnUszW9Sx4dXP03ZJtCc5DiUBIOhF4Vw7plfb65/bdBySPoC9s7zy995TdUX1XBSxUkl5w==} dependencies: '@effect-ts/system': 0.57.5 dev: false /@effect-ts/node/0.39.0_@effect-ts+core@0.60.5: - resolution: - { integrity: sha512-YYBfWMrx6KW0UQ1H+NKYP8LhvD8YcCS9Gpfyv0KR5p5N843bfcJkuKqw44fRrDy6/khY3G2T202x6ibL3uXRoA== } + resolution: {integrity: sha512-YYBfWMrx6KW0UQ1H+NKYP8LhvD8YcCS9Gpfyv0KR5p5N843bfcJkuKqw44fRrDy6/khY3G2T202x6ibL3uXRoA==} peerDependencies: '@effect-ts/core': ^0.60.0 dependencies: @@ -3554,13 +3673,11 @@ packages: dev: false /@effect-ts/system/0.57.5: - resolution: - { integrity: sha512-/crHGujo0xnuHIYNc1VgP0HGJGFSoSqq88JFXe6FmFyXPpWt8Xu39LyLg7rchsxfXFeEdA9CrIZvLV5eswXV5g== } + resolution: {integrity: sha512-/crHGujo0xnuHIYNc1VgP0HGJGFSoSqq88JFXe6FmFyXPpWt8Xu39LyLg7rchsxfXFeEdA9CrIZvLV5eswXV5g==} dev: false /@effect/cli/0.35.26_q3uix5ylsud7xnsn3vpzgrghwu: - resolution: - { integrity: sha512-mnhPGMWK1Q4VzxnS8uVAXICOSMgRLzdjFV+WE7m7gSDBNl4ASj/XzaOd6RIlvxVFX6xgvBbxhtxr2NkCdy11Bw== } + resolution: {integrity: sha512-mnhPGMWK1Q4VzxnS8uVAXICOSMgRLzdjFV+WE7m7gSDBNl4ASj/XzaOd6RIlvxVFX6xgvBbxhtxr2NkCdy11Bw==} peerDependencies: '@effect/platform': ^0.48.24 '@effect/printer': ^0.32.2 @@ -3579,8 +3696,7 @@ packages: dev: false /@effect/platform-node-shared/0.3.29_cahjalgelcnk6vcj6x2oc46m3a: - resolution: - { integrity: sha512-wP5tO8AX0FX969RLiFVUHbrpRqycNUYOjYiMRv+SQ3Tfv24LMIxksKItlmz3EV2cXk5tk5d1iLN+5d60/92wPw== } + resolution: {integrity: sha512-wP5tO8AX0FX969RLiFVUHbrpRqycNUYOjYiMRv+SQ3Tfv24LMIxksKItlmz3EV2cXk5tk5d1iLN+5d60/92wPw==} peerDependencies: '@effect/platform': ^0.48.29 effect: ^2.4.19 @@ -3592,8 +3708,7 @@ packages: dev: false /@effect/platform-node/0.45.26_cahjalgelcnk6vcj6x2oc46m3a: - resolution: - { integrity: sha512-UtWcgLKrnKFfAuJBaKd1hhOgWMtlqYKQju0ihQcOtCOeI4ZfPt9eWE26pcZwYzVik99xNkMmVj2YBmy7P7UPUQ== } + resolution: {integrity: sha512-UtWcgLKrnKFfAuJBaKd1hhOgWMtlqYKQju0ihQcOtCOeI4ZfPt9eWE26pcZwYzVik99xNkMmVj2YBmy7P7UPUQ==} peerDependencies: '@effect/platform': ^0.48.24 effect: ^2.4.17 @@ -3610,8 +3725,7 @@ packages: dev: false /@effect/platform/0.48.24_aixcdyfeuz2zct7jthaihye4ri: - resolution: - { integrity: sha512-3XQSYTNnaWZfhomBbwYlSlb0iVVwArN5ZZzJYRkm3gTDKjzhnlVD3oWbfvjeCdZ5OYCY5AAjjG/OEK8/EY7UXg== } + resolution: {integrity: sha512-3XQSYTNnaWZfhomBbwYlSlb0iVVwArN5ZZzJYRkm3gTDKjzhnlVD3oWbfvjeCdZ5OYCY5AAjjG/OEK8/EY7UXg==} peerDependencies: '@effect/schema': ^0.64.18 effect: ^2.4.17 @@ -3627,8 +3741,7 @@ packages: dev: false /@effect/printer-ansi/0.32.26_67ibgamlfqfgywvgecp7hwrxja: - resolution: - { integrity: sha512-1TwJdMFZeJTpHivV/KTObH78GXAJKfwzcVGaPalqoT5DgVhmoS00dgojtJ2JxJOglJXp4oKV057QNYC+5LKk3g== } + resolution: {integrity: sha512-1TwJdMFZeJTpHivV/KTObH78GXAJKfwzcVGaPalqoT5DgVhmoS00dgojtJ2JxJOglJXp4oKV057QNYC+5LKk3g==} peerDependencies: '@effect/typeclass': ^0.23.17 effect: ^2.4.17 @@ -3639,8 +3752,7 @@ packages: dev: false /@effect/printer/0.32.2_67ibgamlfqfgywvgecp7hwrxja: - resolution: - { integrity: sha512-aP67YOtQmV9+LCnTNIyBRk6xlYKN59CQEpgMXf5Z/gYjfYdN1oilaPgzR9AQ+d6YBIY9sdlEl7lBj1OmpDgSQw== } + resolution: {integrity: sha512-aP67YOtQmV9+LCnTNIyBRk6xlYKN59CQEpgMXf5Z/gYjfYdN1oilaPgzR9AQ+d6YBIY9sdlEl7lBj1OmpDgSQw==} peerDependencies: '@effect/typeclass': ^0.23.17 effect: ^2.4.17 @@ -3649,7 +3761,7 @@ packages: effect: 2.4.17 dev: false - /@effect/schema/0.64.18_lr76zgfnixwkqlplfmwtcihp7a: + /@effect/schema/0.64.18_k5iqzw5vszbbtmhrto2doihvji: resolution: {integrity: sha512-utMVAjcKqmNlkJ8hzdXf3FWBOsekKbe3xhYzWLLLFCpdbTMkCFeN52l1QRXTk7rla87sNTYdMA+xcES9maOEog==} peerDependencies: effect: ^2.4.17 @@ -3660,16 +3772,15 @@ packages: dev: false /@effect/typeclass/0.23.17_effect@2.4.17: - resolution: - { integrity: sha512-MbaXSnQ3WbGPDO2TCTuN46bsElFKe/StglnZ8eNcwETKyMDPM/x6pXbeTpPtCnVJ5bedZb120az5i8vaGlmCnw== } + resolution: {integrity: sha512-MbaXSnQ3WbGPDO2TCTuN46bsElFKe/StglnZ8eNcwETKyMDPM/x6pXbeTpPtCnVJ5bedZb120az5i8vaGlmCnw==} peerDependencies: effect: ^2.4.17 dependencies: effect: 2.4.17 dev: false - /@eslint-community/eslint-utils/4.4.0_eslint@8.57.1: - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + /@eslint-community/eslint-utils/4.4.1_eslint@8.57.1: + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -3677,17 +3788,16 @@ packages: eslint: 8.57.1 eslint-visitor-keys: 3.4.3 - /@eslint-community/regexpp/4.11.1: - resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} + /@eslint-community/regexpp/4.12.1: + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} /@eslint/eslintrc/2.1.4: - resolution: - { integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.7 + debug: 4.4.0 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.2 @@ -3699,44 +3809,38 @@ packages: - supports-color /@eslint/js/8.57.1: - resolution: - { integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} /@graphql-typed-document-node/core/3.2.0_graphql@16.9.0: - resolution: - { integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== } + resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: graphql: 16.9.0 /@humanwhocodes/config-array/0.13.0: - resolution: - { integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== } - engines: { node: '>=10.10.0' } + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} + engines: {node: '>=10.10.0'} deprecated: Use @eslint/config-array instead dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.7 + debug: 4.4.0 minimatch: 3.1.2 transitivePeerDependencies: - supports-color /@humanwhocodes/module-importer/1.0.1: - resolution: - { integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== } - engines: { node: '>=12.22' } + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} /@humanwhocodes/object-schema/2.0.3: - resolution: - { integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== } + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead /@inquirer/checkbox/1.5.2: - resolution: - { integrity: sha512-CifrkgQjDkUkWexmgYYNyB5603HhTHI91vLFeQXh6qrTKiCMVASol01Rs1cv6LP/A2WccZSRlJKZhbaBIs/9ZA== } - engines: { node: '>=14.18.0' } + resolution: {integrity: sha512-CifrkgQjDkUkWexmgYYNyB5603HhTHI91vLFeQXh6qrTKiCMVASol01Rs1cv6LP/A2WccZSRlJKZhbaBIs/9ZA==} + engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 '@inquirer/type': 1.5.5 @@ -3745,22 +3849,20 @@ packages: figures: 3.2.0 /@inquirer/confirm/2.0.17: - resolution: - { integrity: sha512-EqzhGryzmGpy2aJf6LxJVhndxYmFs+m8cxXzf8nejb1DE3sabf6mUgBcp4J0jAUEiAcYzqmkqRr7LPFh/WdnXA== } - engines: { node: '>=14.18.0' } + resolution: {integrity: sha512-EqzhGryzmGpy2aJf6LxJVhndxYmFs+m8cxXzf8nejb1DE3sabf6mUgBcp4J0jAUEiAcYzqmkqRr7LPFh/WdnXA==} + engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 '@inquirer/type': 1.5.5 chalk: 4.1.2 /@inquirer/core/2.3.1: - resolution: - { integrity: sha512-faYAYnIfdEuns3jGKykaog5oUqFiEVbCx9nXGZfUhyEEpKcHt5bpJfZTb3eOBQKo8I/v4sJkZeBHmFlSZQuBCw== } - engines: { node: '>=14.18.0' } + resolution: {integrity: sha512-faYAYnIfdEuns3jGKykaog5oUqFiEVbCx9nXGZfUhyEEpKcHt5bpJfZTb3eOBQKo8I/v4sJkZeBHmFlSZQuBCw==} + engines: {node: '>=14.18.0'} dependencies: '@inquirer/type': 1.5.5 '@types/mute-stream': 0.0.1 - '@types/node': 20.17.7 + '@types/node': 20.17.9 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3774,13 +3876,12 @@ packages: wrap-ansi: 6.2.0 /@inquirer/core/6.0.0: - resolution: - { integrity: sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw== } - engines: { node: '>=14.18.0' } + resolution: {integrity: sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==} + engines: {node: '>=14.18.0'} dependencies: '@inquirer/type': 1.5.5 '@types/mute-stream': 0.0.4 - '@types/node': 20.17.7 + '@types/node': 20.17.9 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3794,9 +3895,8 @@ packages: wrap-ansi: 6.2.0 /@inquirer/editor/1.2.15: - resolution: - { integrity: sha512-gQ77Ls09x5vKLVNMH9q/7xvYPT6sIs5f7URksw+a2iJZ0j48tVS6crLqm2ugG33tgXHIwiEqkytY60Zyh5GkJQ== } - engines: { node: '>=14.18.0' } + resolution: {integrity: sha512-gQ77Ls09x5vKLVNMH9q/7xvYPT6sIs5f7URksw+a2iJZ0j48tVS6crLqm2ugG33tgXHIwiEqkytY60Zyh5GkJQ==} + engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 '@inquirer/type': 1.5.5 @@ -3804,9 +3904,8 @@ packages: external-editor: 3.1.0 /@inquirer/expand/1.1.16: - resolution: - { integrity: sha512-TGLU9egcuo+s7PxphKUCnJnpCIVY32/EwPCLLuu+gTvYiD8hZgx8Z2niNQD36sa6xcfpdLY6xXDBiL/+g1r2XQ== } - engines: { node: '>=14.18.0' } + resolution: {integrity: sha512-TGLU9egcuo+s7PxphKUCnJnpCIVY32/EwPCLLuu+gTvYiD8hZgx8Z2niNQD36sa6xcfpdLY6xXDBiL/+g1r2XQ==} + engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 '@inquirer/type': 1.5.5 @@ -3814,18 +3913,16 @@ packages: figures: 3.2.0 /@inquirer/input/1.2.16: - resolution: - { integrity: sha512-Ou0LaSWvj1ni+egnyQ+NBtfM1885UwhRCMtsRt2bBO47DoC1dwtCa+ZUNgrxlnCHHF0IXsbQHYtIIjFGAavI4g== } - engines: { node: '>=14.18.0' } + resolution: {integrity: sha512-Ou0LaSWvj1ni+egnyQ+NBtfM1885UwhRCMtsRt2bBO47DoC1dwtCa+ZUNgrxlnCHHF0IXsbQHYtIIjFGAavI4g==} + engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 '@inquirer/type': 1.5.5 chalk: 4.1.2 /@inquirer/password/1.1.16: - resolution: - { integrity: sha512-aZYZVHLUXZ2gbBot+i+zOJrks1WaiI95lvZCn1sKfcw6MtSSlYC8uDX8sTzQvAsQ8epHoP84UNvAIT0KVGOGqw== } - engines: { node: '>=14.18.0' } + resolution: {integrity: sha512-aZYZVHLUXZ2gbBot+i+zOJrks1WaiI95lvZCn1sKfcw6MtSSlYC8uDX8sTzQvAsQ8epHoP84UNvAIT0KVGOGqw==} + engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 '@inquirer/type': 1.5.5 @@ -3833,9 +3930,8 @@ packages: chalk: 4.1.2 /@inquirer/prompts/2.3.1: - resolution: - { integrity: sha512-YQeBFzIE+6fcec5N/U2mSz+IcKEG4wtGDwF7MBLIDgITWzB3o723JpKJ1rxWqdCvTXkYE+gDXK/seSN6omo3DQ== } - engines: { node: '>=14.18.0' } + resolution: {integrity: sha512-YQeBFzIE+6fcec5N/U2mSz+IcKEG4wtGDwF7MBLIDgITWzB3o723JpKJ1rxWqdCvTXkYE+gDXK/seSN6omo3DQ==} + engines: {node: '>=14.18.0'} dependencies: '@inquirer/checkbox': 1.5.2 '@inquirer/confirm': 2.0.17 @@ -3848,18 +3944,16 @@ packages: '@inquirer/select': 1.3.3 /@inquirer/rawlist/1.2.16: - resolution: - { integrity: sha512-pZ6TRg2qMwZAOZAV6TvghCtkr53dGnK29GMNQ3vMZXSNguvGqtOVc4j/h1T8kqGJFagjyfBZhUPGwNS55O5qPQ== } - engines: { node: '>=14.18.0' } + resolution: {integrity: sha512-pZ6TRg2qMwZAOZAV6TvghCtkr53dGnK29GMNQ3vMZXSNguvGqtOVc4j/h1T8kqGJFagjyfBZhUPGwNS55O5qPQ==} + engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 '@inquirer/type': 1.5.5 chalk: 4.1.2 /@inquirer/select/1.3.3: - resolution: - { integrity: sha512-RzlRISXWqIKEf83FDC9ZtJ3JvuK1l7aGpretf41BCWYrvla2wU8W8MTRNMiPrPJ+1SIqrRC1nZdZ60hD9hRXLg== } - engines: { node: '>=14.18.0' } + resolution: {integrity: sha512-RzlRISXWqIKEf83FDC9ZtJ3JvuK1l7aGpretf41BCWYrvla2wU8W8MTRNMiPrPJ+1SIqrRC1nZdZ60hD9hRXLg==} + engines: {node: '>=14.18.0'} dependencies: '@inquirer/core': 6.0.0 '@inquirer/type': 1.5.5 @@ -3868,16 +3962,14 @@ packages: figures: 3.2.0 /@inquirer/type/1.5.5: - resolution: - { integrity: sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA== } - engines: { node: '>=18' } + resolution: {integrity: sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==} + engines: {node: '>=18'} dependencies: mute-stream: 1.0.0 /@isaacs/cliui/8.0.2: - resolution: - { integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== } - engines: { node: '>=12' } + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} dependencies: string-width: 5.1.2 string-width-cjs: /string-width/4.2.3 @@ -3887,9 +3979,8 @@ packages: wrap-ansi-cjs: /wrap-ansi/7.0.0 /@istanbuljs/load-nyc-config/1.1.0: - resolution: - { integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} dependencies: camelcase: 5.3.1 find-up: 4.1.0 @@ -3899,104 +3990,85 @@ packages: dev: true /@istanbuljs/schema/0.1.3: - resolution: - { integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} dev: true /@jridgewell/gen-mapping/0.3.5: - resolution: - { integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 /@jridgewell/resolve-uri/3.1.2: - resolution: - { integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} /@jridgewell/set-array/1.2.1: - resolution: - { integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} /@jridgewell/sourcemap-codec/1.5.0: - resolution: - { integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== } + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} /@jridgewell/trace-mapping/0.3.25: - resolution: - { integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== } + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 /@jridgewell/trace-mapping/0.3.9: - resolution: - { integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== } + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - /@jsii/check-node/1.103.1: - resolution: {integrity: sha512-Vi6ONm5WXEim98a2DJ6WMlrP/w5AGzXrrQBpGcfVV7cu86DPx1L0OAZnqzGAJE8ly0VfcSXkmxJ9LFcn3jylBQ==} + /@jsii/check-node/1.105.0: + resolution: {integrity: sha512-7QIzioc9//TwRjLhGMllcTBfIvJ0h6OeGVUEYdXB1DpCNtMbr8Xcj5KaeKHRAF9iRjB1d0IGzKm4A8fRUzIf+Q==} engines: {node: '>= 14.17.0'} dependencies: chalk: 4.1.2 semver: 7.6.3 - /@jsii/check-node/1.104.0: - resolution: {integrity: sha512-5rAn4y11APxq69DmTKtAACmDuOymcTiz29CE7s0AeWA5jzpxBRhkaj8xwixiSQtkoBFk+Vpoi2eNctCvwLdFaw==} - engines: {node: '>= 14.17.0'} - dependencies: - chalk: 4.1.2 - semver: 7.6.3 - - /@jsii/spec/1.104.0: - resolution: {integrity: sha512-7jxU8iRowA3O7Dpn8XAsX8o4Y8Fy8plbEVg0CnjvIQsJh3puI3KFHspXur70OOccfGkoL1TWnXBZ+BwCcvhu1g==} + /@jsii/spec/1.105.0: + resolution: {integrity: sha512-pLy8JyPT9Vv5UTxtM4ZHm/iisWzU62m3/dn9TPW2oANI5TLiBpjLlJw/iF+KRjYAeQnFASUfXtWTXgbN4xp9Rw==} engines: {node: '>= 14.17.0'} dependencies: ajv: 8.17.1 /@kwsites/file-exists/1.1.1_supports-color@8.1.1: - resolution: - { integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw== } + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} dependencies: - debug: 4.3.7_supports-color@8.1.1 + debug: 4.4.0_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true /@kwsites/promise-deferred/1.1.1: - resolution: - { integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw== } + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} dev: true /@nodelib/fs.scandir/2.1.5: - resolution: - { integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== } - engines: { node: '>= 8' } + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 /@nodelib/fs.stat/2.0.5: - resolution: - { integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== } - engines: { node: '>= 8' } + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} /@nodelib/fs.walk/1.2.8: - resolution: - { integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== } - engines: { node: '>= 8' } + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - /@oclif/core/2.16.0_5aurqvvi2kcpaxpbv224uoiqwq: + /@oclif/core/2.16.0_aqnvwcrfkjmhmdr6bfrmuf3scm: resolution: {integrity: sha512-dL6atBH0zCZl1A1IXCKJgLPrM/wR7K+Wi401E/IvqsK8m2iCHW+0TEOGrans/cuN3oTW+uxIyJFHJ8Im0k4qBw==} engines: {node: '>=14.0.0'} dependencies: @@ -4007,7 +4079,7 @@ packages: chalk: 4.1.2 clean-stack: 3.0.1 cli-progress: 3.12.0 - debug: 4.3.7_supports-color@8.1.1 + debug: 4.4.0_supports-color@8.1.1 ejs: 3.1.10 get-package-type: 0.1.0 globby: 11.1.0 @@ -4023,7 +4095,7 @@ packages: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm tslib: 2.8.1 widest-line: 3.1.0 wordwrap: 1.0.0 @@ -4036,9 +4108,8 @@ packages: dev: false /@oclif/core/3.15.0_typescript@5.1.6: - resolution: - { integrity: sha512-A1EVh4gv7mqAJ9OGVxLugaLcHvQnGwvOnPToP8OT9AldJ0LwVExOwhhlnOstYca33MIpGH00twYxWMS5nxMuDQ== } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-A1EVh4gv7mqAJ9OGVxLugaLcHvQnGwvOnPToP8OT9AldJ0LwVExOwhhlnOstYca33MIpGH00twYxWMS5nxMuDQ==} + engines: {node: '>=18.0.0'} dependencies: ansi-escapes: 4.3.2 ansi-styles: 4.3.0 @@ -4047,7 +4118,7 @@ packages: clean-stack: 3.0.1 cli-progress: 3.12.0 color: 4.2.3 - debug: 4.3.7_supports-color@8.1.1 + debug: 4.4.0_supports-color@8.1.1 ejs: 3.1.10 get-package-type: 0.1.0 globby: 11.1.0 @@ -4072,9 +4143,8 @@ packages: dev: false /@oclif/core/3.27.0: - resolution: - { integrity: sha512-Fg93aNFvXzBq5L7ztVHFP2nYwWU1oTCq48G0TjF/qC1UN36KWa2H5Hsm72kERd5x/sjy2M2Tn4kDEorUlpXOlw== } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-Fg93aNFvXzBq5L7ztVHFP2nYwWU1oTCq48G0TjF/qC1UN36KWa2H5Hsm72kERd5x/sjy2M2Tn4kDEorUlpXOlw==} + engines: {node: '>=18.0.0'} dependencies: '@types/cli-progress': 3.11.6 ansi-escapes: 4.3.2 @@ -4084,7 +4154,7 @@ packages: clean-stack: 3.0.1 cli-progress: 3.12.0 color: 4.2.3 - debug: 4.3.7_supports-color@8.1.1 + debug: 4.4.0_supports-color@8.1.1 ejs: 3.1.10 get-package-type: 0.1.0 globby: 11.1.0 @@ -4106,11 +4176,11 @@ packages: wrap-ansi: 7.0.0 dev: true - /@oclif/plugin-help/5.2.20_5aurqvvi2kcpaxpbv224uoiqwq: + /@oclif/plugin-help/5.2.20_aqnvwcrfkjmhmdr6bfrmuf3scm: resolution: {integrity: sha512-u+GXX/KAGL9S10LxAwNUaWdzbEBARJ92ogmM7g3gDVud2HioCmvWQCDohNRVZ9GYV9oKwZ/M8xwd6a1d95rEKQ==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.16.0_jtknrvqdlvipgdxn6jbxe7dreq + '@oclif/core': 2.16.0_aqnvwcrfkjmhmdr6bfrmuf3scm transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -4119,9 +4189,8 @@ packages: dev: false /@oclif/test/3.2.15: - resolution: - { integrity: sha512-XqG3RosozNqySkxSXInU12Xec2sPSOkqYHJDfdFZiWG3a8Cxu4dnPiAQvms+BJsOlLQmfEQlSHqiyVUKOMHhXA== } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-XqG3RosozNqySkxSXInU12Xec2sPSOkqYHJDfdFZiWG3a8Cxu4dnPiAQvms+BJsOlLQmfEQlSHqiyVUKOMHhXA==} + engines: {node: '>=18.0.0'} dependencies: '@oclif/core': 3.27.0 chai: 4.5.0 @@ -4130,8 +4199,8 @@ packages: - supports-color dev: true - /@parcel/watcher-android-arm64/2.4.1: - resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} + /@parcel/watcher-android-arm64/2.5.0: + resolution: {integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [android] @@ -4139,8 +4208,8 @@ packages: dev: false optional: true - /@parcel/watcher-darwin-arm64/2.4.1: - resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} + /@parcel/watcher-darwin-arm64/2.5.0: + resolution: {integrity: sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [darwin] @@ -4148,8 +4217,8 @@ packages: dev: false optional: true - /@parcel/watcher-darwin-x64/2.4.1: - resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} + /@parcel/watcher-darwin-x64/2.5.0: + resolution: {integrity: sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [darwin] @@ -4157,8 +4226,8 @@ packages: dev: false optional: true - /@parcel/watcher-freebsd-x64/2.4.1: - resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} + /@parcel/watcher-freebsd-x64/2.5.0: + resolution: {integrity: sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [freebsd] @@ -4166,8 +4235,17 @@ packages: dev: false optional: true - /@parcel/watcher-linux-arm-glibc/2.4.1: - resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} + /@parcel/watcher-linux-arm-glibc/2.5.0: + resolution: {integrity: sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@parcel/watcher-linux-arm-musl/2.5.0: + resolution: {integrity: sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] @@ -4175,8 +4253,8 @@ packages: dev: false optional: true - /@parcel/watcher-linux-arm64-glibc/2.4.1: - resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} + /@parcel/watcher-linux-arm64-glibc/2.5.0: + resolution: {integrity: sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] @@ -4184,8 +4262,8 @@ packages: dev: false optional: true - /@parcel/watcher-linux-arm64-musl/2.4.1: - resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} + /@parcel/watcher-linux-arm64-musl/2.5.0: + resolution: {integrity: sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] @@ -4193,8 +4271,8 @@ packages: dev: false optional: true - /@parcel/watcher-linux-x64-glibc/2.4.1: - resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} + /@parcel/watcher-linux-x64-glibc/2.5.0: + resolution: {integrity: sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] @@ -4202,8 +4280,8 @@ packages: dev: false optional: true - /@parcel/watcher-linux-x64-musl/2.4.1: - resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} + /@parcel/watcher-linux-x64-musl/2.5.0: + resolution: {integrity: sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] @@ -4211,8 +4289,8 @@ packages: dev: false optional: true - /@parcel/watcher-win32-arm64/2.4.1: - resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} + /@parcel/watcher-win32-arm64/2.5.0: + resolution: {integrity: sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [win32] @@ -4220,8 +4298,8 @@ packages: dev: false optional: true - /@parcel/watcher-win32-ia32/2.4.1: - resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} + /@parcel/watcher-win32-ia32/2.5.0: + resolution: {integrity: sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==} engines: {node: '>= 10.0.0'} cpu: [ia32] os: [win32] @@ -4229,8 +4307,8 @@ packages: dev: false optional: true - /@parcel/watcher-win32-x64/2.4.1: - resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} + /@parcel/watcher-win32-x64/2.5.0: + resolution: {integrity: sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [win32] @@ -4238,9 +4316,10 @@ packages: dev: false optional: true - /@parcel/watcher/2.4.1: - resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} + /@parcel/watcher/2.5.0: + resolution: {integrity: sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==} engines: {node: '>= 10.0.0'} + requiresBuild: true dependencies: detect-libc: 1.0.3 is-glob: 4.0.3 @@ -4263,76 +4342,71 @@ packages: dev: false /@pkgjs/parseargs/0.11.0: - resolution: - { integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== } - engines: { node: '>=14' } + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} requiresBuild: true optional: true /@rtsao/scc/1.1.0: - resolution: - { integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== } + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} /@seald-io/binary-search-tree/1.0.3: - resolution: - { integrity: sha512-qv3jnwoakeax2razYaMsGI/luWdliBLHTdC6jU55hQt1hcFqzauH/HsBollQ7IR4ySTtYhT+xyHoijpA16C+tA== } + resolution: {integrity: sha512-qv3jnwoakeax2razYaMsGI/luWdliBLHTdC6jU55hQt1hcFqzauH/HsBollQ7IR4ySTtYhT+xyHoijpA16C+tA==} /@seald-io/nedb/4.0.2: - resolution: - { integrity: sha512-gJ91fT1sgh2cLXYVcTSh7khZ8LdemI8+SojCdpZ5wy+DUQ4fSrEwGqOwbdV49NDs2BBO6GeBpSb8CnhG2IW1rw== } + resolution: {integrity: sha512-gJ91fT1sgh2cLXYVcTSh7khZ8LdemI8+SojCdpZ5wy+DUQ4fSrEwGqOwbdV49NDs2BBO6GeBpSb8CnhG2IW1rw==} dependencies: '@seald-io/binary-search-tree': 1.0.3 localforage: 1.10.0 util: 0.12.5 - /@sentry-internal/tracing/7.119.2: - resolution: {integrity: sha512-V2W+STWrafyGJhQv3ulMFXYDwWHiU6wHQAQBShsHVACiFaDrJ2kPRet38FKv4dMLlLlP2xN+ss2e5zv3tYlTiQ==} + /@sentry-internal/tracing/7.120.1: + resolution: {integrity: sha512-MwZlhQY27oM4V05m2Q46WB2F7jqFu8fewg14yRcjCuK3tdxvQoLsXOEPMZxLxpoXPTqPCm3Ig7mA4GwdlCL41w==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.120.0 - '@sentry/types': 7.120.0 - '@sentry/utils': 7.120.0 + '@sentry/core': 7.120.1 + '@sentry/types': 7.120.1 + '@sentry/utils': 7.120.1 - /@sentry/core/7.119.2: - resolution: {integrity: sha512-hQr3d2yWq/2lMvoyBPOwXw1IHqTrCjOsU1vYKhAa6w9vGbJZFGhKGGE2KEi/92c3gqGn+gW/PC7cV6waCTDuVA==} + /@sentry/core/7.120.1: + resolution: {integrity: sha512-tXpJlf/8ngsSCpcRD+4DDvh4TqUbY0MlvE9Mpc/jO5GgYl/goAH2H1COw6W/UNfkr/l80P2jejS0HLPk0moi0A==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.120.0 - '@sentry/utils': 7.120.0 + '@sentry/types': 7.120.1 + '@sentry/utils': 7.120.1 - /@sentry/integrations/7.119.2: - resolution: {integrity: sha512-dCuXKvbUE3gXVVa696SYMjlhSP6CxpMH/gl4Jk26naEB8Xjsn98z/hqEoXLg6Nab73rjR9c/9AdKqBbwVMHyrQ==} + /@sentry/integrations/7.120.1: + resolution: {integrity: sha512-dshhLZUN+pYpyZiS5QRYKaYSqvWYtmsbwmBlH4SCGOnN9sbY4nZn0h8njr+xKT8UFnPxoTlbZmkcrVY3qPVMfg==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.120.0 - '@sentry/types': 7.120.0 - '@sentry/utils': 7.120.0 + '@sentry/core': 7.120.1 + '@sentry/types': 7.120.1 + '@sentry/utils': 7.120.1 localforage: 1.10.0 - /@sentry/node/7.119.2: - resolution: {integrity: sha512-TPNnqxh+Myooe4jTyRiXrzrM2SH08R4+nrmBls4T7lKp2E5R/3mDSe/YTn5rRcUt1k1hPx1NgO/taG0DoS5cXA==} + /@sentry/node/7.120.1: + resolution: {integrity: sha512-YF/TDUCtUOQeUMwL4vcUWGNv/8Qz9624xBnaL8nXW888xNBoSRr2vH/zMrmTup5zfmWAh9lVbp98BZFF6F0WJg==} engines: {node: '>=8'} dependencies: - '@sentry-internal/tracing': 7.120.0 - '@sentry/core': 7.120.0 - '@sentry/integrations': 7.120.0 - '@sentry/types': 7.120.0 - '@sentry/utils': 7.120.0 + '@sentry-internal/tracing': 7.120.1 + '@sentry/core': 7.120.1 + '@sentry/integrations': 7.120.1 + '@sentry/types': 7.120.1 + '@sentry/utils': 7.120.1 - /@sentry/types/7.119.2: - resolution: {integrity: sha512-ydq1tWsdG7QW+yFaTp0gFaowMLNVikIqM70wxWNK+u98QzKnVY/3XTixxNLsUtnAB4Y+isAzFhrc6Vb5GFdFeg==} + /@sentry/types/7.120.1: + resolution: {integrity: sha512-f/WT7YUH8SA2Jhez/hYz/dA351AJqr1Eht/URUdYsqMFecXr/blAcNKRVFccSsvQeTqWVV9HVQ9BXUSjPJOvFA==} engines: {node: '>=8'} - /@sentry/utils/7.119.2: - resolution: {integrity: sha512-TLdUCvcNgzKP0r9YD7tgCL1PEUp42TObISridsPJ5rhpVGQJvpr+Six0zIkfDUxerLYWZoK8QMm9KgFlPLNQzA==} + /@sentry/utils/7.120.1: + resolution: {integrity: sha512-4boeo5Y3zw3gFrWZmPHsYOIlTh//eBaGBgWL25FqLbLObO23gFE86G6O6knP1Gamm1DGX2IWH7w4MChYuBm6tA==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.120.0 + '@sentry/types': 7.120.1 /@serverless/dashboard-plugin/6.4.0_supports-color@8.1.1: - resolution: - { integrity: sha512-2yJQym94sXZhEFbcOVRMJgJ4a2H9Qly94UeUesPwf8bfWCxtiB4l5rxLnCB2aLTuUf/djcuD5/VrNPY1pRU7DA== } - engines: { node: '>=12.0' } + resolution: {integrity: sha512-2yJQym94sXZhEFbcOVRMJgJ4a2H9Qly94UeUesPwf8bfWCxtiB4l5rxLnCB2aLTuUf/djcuD5/VrNPY1pRU7DA==} + engines: {node: '>=12.0'} dependencies: '@serverless/event-mocks': 1.1.1 '@serverless/platform-client': 4.5.1_supports-color@8.1.1 @@ -4363,21 +4437,19 @@ packages: dev: true /@serverless/event-mocks/1.1.1: - resolution: - { integrity: sha512-YAV5V/y+XIOfd+HEVeXfPWZb8C6QLruFk9tBivoX2roQLWVq145s4uxf8D0QioCueuRzkukHUS4JIj+KVoS34A== } + resolution: {integrity: sha512-YAV5V/y+XIOfd+HEVeXfPWZb8C6QLruFk9tBivoX2roQLWVq145s4uxf8D0QioCueuRzkukHUS4JIj+KVoS34A==} dependencies: '@types/lodash': 4.17.13 lodash: 4.17.21 dev: true /@serverless/platform-client/4.5.1_supports-color@8.1.1: - resolution: - { integrity: sha512-XltmO/029X76zi0LUFmhsnanhE2wnqH1xf+WBt5K8gumQA9LnrfwLgPxj+VA+mm6wQhy+PCp7H5SS0ZPu7F2Cw== } - engines: { node: '>=10.0' } + resolution: {integrity: sha512-XltmO/029X76zi0LUFmhsnanhE2wnqH1xf+WBt5K8gumQA9LnrfwLgPxj+VA+mm6wQhy+PCp7H5SS0ZPu7F2Cw==} + engines: {node: '>=10.0'} dependencies: adm-zip: 0.5.16 archiver: 5.3.0 - axios: 1.7.7 + axios: 1.7.9 fast-glob: 3.3.2 https-proxy-agent: 5.0.1_supports-color@8.1.1 ignore: 5.3.2 @@ -4398,9 +4470,8 @@ packages: dev: true /@serverless/utils/6.15.0: - resolution: - { integrity: sha512-7eDbqKv/OBd11jjdZjUwFGN8sHWkeUqLeHXHQxQ1azja2IM7WIH+z/aLgzR6LhB3/MINNwtjesDpjGqTMj2JKQ== } - engines: { node: '>=12.0' } + resolution: {integrity: sha512-7eDbqKv/OBd11jjdZjUwFGN8sHWkeUqLeHXHQxQ1azja2IM7WIH+z/aLgzR6LhB3/MINNwtjesDpjGqTMj2JKQ==} + engines: {node: '>=12.0'} dependencies: archive-type: 4.0.0 chalk: 4.1.2 @@ -4440,61 +4511,52 @@ packages: dev: true /@sindresorhus/is/4.6.0: - resolution: - { integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} dev: true /@sinonjs/commons/1.8.6: - resolution: - { integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== } + resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} dependencies: type-detect: 4.0.8 /@sinonjs/commons/3.0.1: - resolution: - { integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== } + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} dependencies: type-detect: 4.0.8 dev: true /@sinonjs/fake-timers/10.3.0: - resolution: - { integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== } + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} dependencies: '@sinonjs/commons': 3.0.1 dev: true /@sinonjs/fake-timers/11.3.1: - resolution: - { integrity: sha512-EVJO7nW5M/F5Tur0Rf2z/QoMo+1Ia963RiMtapiQrEWvY0iBUvADo8Beegwjpnle5BHkyHuoxSTW3jF43H1XRA== } + resolution: {integrity: sha512-EVJO7nW5M/F5Tur0Rf2z/QoMo+1Ia963RiMtapiQrEWvY0iBUvADo8Beegwjpnle5BHkyHuoxSTW3jF43H1XRA==} dependencies: '@sinonjs/commons': 3.0.1 dev: true /@sinonjs/fake-timers/6.0.1: - resolution: - { integrity: sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== } + resolution: {integrity: sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==} dependencies: '@sinonjs/commons': 1.8.6 /@sinonjs/fake-timers/7.1.2: - resolution: - { integrity: sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== } + resolution: {integrity: sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==} dependencies: '@sinonjs/commons': 1.8.6 /@sinonjs/samsam/5.3.1: - resolution: - { integrity: sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg== } + resolution: {integrity: sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==} dependencies: '@sinonjs/commons': 1.8.6 lodash.get: 4.4.2 type-detect: 4.1.0 /@sinonjs/samsam/8.0.2: - resolution: - { integrity: sha512-v46t/fwnhejRSFTGqbpn9u+LQ9xJDse10gNnPgAcxgdoCDMXj/G2asWAC/8Qs+BAZDicX+MNZouXT1A7c83kVw== } + resolution: {integrity: sha512-v46t/fwnhejRSFTGqbpn9u+LQ9xJDse10gNnPgAcxgdoCDMXj/G2asWAC/8Qs+BAZDicX+MNZouXT1A7c83kVw==} dependencies: '@sinonjs/commons': 3.0.1 lodash.get: 4.4.2 @@ -4502,25 +4564,21 @@ packages: dev: true /@sinonjs/text-encoding/0.7.3: - resolution: - { integrity: sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA== } + resolution: {integrity: sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==} /@szmarczak/http-timer/4.0.6: - resolution: - { integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== } - engines: { node: '>=10' } + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} dependencies: defer-to-connect: 2.0.1 dev: true /@tokenizer/token/0.3.0: - resolution: - { integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== } + resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} dev: true /@ts-morph/common/0.20.0: - resolution: - { integrity: sha512-7uKjByfbPpwuzkstL3L5MQyuXPSKdoNG93Fmi2JoDcTf3pEP731JdRFAduRVkOs8oqxPsXKA+ScrWkdQ8t/I+Q== } + resolution: {integrity: sha512-7uKjByfbPpwuzkstL3L5MQyuXPSKdoNG93Fmi2JoDcTf3pEP731JdRFAduRVkOs8oqxPsXKA+ScrWkdQ8t/I+Q==} dependencies: fast-glob: 3.3.2 minimatch: 7.4.6 @@ -4529,114 +4587,96 @@ packages: dev: false /@tsconfig/node10/1.0.11: - resolution: - { integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== } + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} /@tsconfig/node12/1.0.11: - resolution: - { integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== } + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} /@tsconfig/node14/1.0.3: - resolution: - { integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== } + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} /@tsconfig/node16/1.0.4: - resolution: - { integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== } + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} /@types/archiver/5.1.0: - resolution: - { integrity: sha512-baFOhanb/hxmcOd1Uey2TfFg43kTSmM6py1Eo7Rjbv/ivcl7PXLhY0QgXGf50Hx/eskGCFqPfhs/7IZLb15C5g== } + resolution: {integrity: sha512-baFOhanb/hxmcOd1Uey2TfFg43kTSmM6py1Eo7Rjbv/ivcl7PXLhY0QgXGf50Hx/eskGCFqPfhs/7IZLb15C5g==} dependencies: '@types/glob': 8.1.0 /@types/aws-lambda/8.10.48: - resolution: - { integrity: sha512-+qFDcssXvrdXIxBbKCJp0atg94TJVJSt5sx3Cu6LOQX/EV2mbInjgxGeKuLmFFBjoxD7G6fSytZoeC6A9fzTuw== } + resolution: {integrity: sha512-+qFDcssXvrdXIxBbKCJp0atg94TJVJSt5sx3Cu6LOQX/EV2mbInjgxGeKuLmFFBjoxD7G6fSytZoeC6A9fzTuw==} dev: true /@types/aws-sdk/2.7.0: - resolution: - { integrity: sha512-bF6brnwPN9+kheqdKCpinMgCkj+sJIUEj+0v0LPug9OQwL5/1jy+kiJwl+Nkw4Kh+7oaL1phhC4gMz6Oq60jMg== } + resolution: {integrity: sha512-bF6brnwPN9+kheqdKCpinMgCkj+sJIUEj+0v0LPug9OQwL5/1jy+kiJwl+Nkw4Kh+7oaL1phhC4gMz6Oq60jMg==} deprecated: This is a stub types definition for aws-sdk (https://github.com/aws/aws-sdk-js). aws-sdk provides its own type definitions, so you don't need @types/aws-sdk installed! dependencies: aws-sdk: 2.853.0 dev: true /@types/body-parser/1.19.5: - resolution: - { integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== } + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 18.19.65 + '@types/node': 18.19.67 /@types/cacheable-request/6.0.3: - resolution: - { integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== } + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/responselike': 1.0.3 dev: true /@types/chai-arrays/2.0.0: - resolution: - { integrity: sha512-5h5jnAC9C64YnD7WJpA5gBG7CppF/QmoWytOssJ6ysENllW49NBdpsTx6uuIBOpnzAnXThb8jBICgB62wezTLQ== } + resolution: {integrity: sha512-5h5jnAC9C64YnD7WJpA5gBG7CppF/QmoWytOssJ6ysENllW49NBdpsTx6uuIBOpnzAnXThb8jBICgB62wezTLQ==} dependencies: '@types/chai': 4.2.18 dev: true /@types/chai-as-promised/7.1.4: - resolution: - { integrity: sha512-1y3L1cHePcIm5vXkh1DSGf/zQq5n5xDKG1fpCvf18+uOkpce0Z1ozNFPkyWsVswK7ntN1sZBw3oU6gmN+pDUcA== } + resolution: {integrity: sha512-1y3L1cHePcIm5vXkh1DSGf/zQq5n5xDKG1fpCvf18+uOkpce0Z1ozNFPkyWsVswK7ntN1sZBw3oU6gmN+pDUcA==} dependencies: '@types/chai': 4.2.18 dev: true /@types/chai/4.2.18: - resolution: - { integrity: sha512-rS27+EkB/RE1Iz3u0XtVL5q36MGDWbgYe7zWiodyKNUnthxY0rukK5V36eiUCtCisB7NN8zKYH6DO2M37qxFEQ== } + resolution: {integrity: sha512-rS27+EkB/RE1Iz3u0XtVL5q36MGDWbgYe7zWiodyKNUnthxY0rukK5V36eiUCtCisB7NN8zKYH6DO2M37qxFEQ==} dev: true /@types/child-process-promise/2.2.6: - resolution: - { integrity: sha512-g0pOHijr6Trug43D2bV0PLSIsSHa/xHEES2HeX5BAlduq1vW0nZcq27Zeud5lgmNB+kPYYVqiMap32EHGTco/w== } + resolution: {integrity: sha512-g0pOHijr6Trug43D2bV0PLSIsSHa/xHEES2HeX5BAlduq1vW0nZcq27Zeud5lgmNB+kPYYVqiMap32EHGTco/w==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: true /@types/cli-progress/3.11.6: - resolution: - { integrity: sha512-cE3+jb9WRlu+uOSAugewNpITJDt1VF8dHOopPO4IABFc3SXYL5WE/+PTz/FCdZRRfIujiWW3n3aMbv1eIGVRWA== } + resolution: {integrity: sha512-cE3+jb9WRlu+uOSAugewNpITJDt1VF8dHOopPO4IABFc3SXYL5WE/+PTz/FCdZRRfIujiWW3n3aMbv1eIGVRWA==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 /@types/connect/3.4.38: - resolution: - { integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== } + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 /@types/cors/2.8.17: - resolution: - { integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA== } + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: true /@types/express-serve-static-core/4.19.6: - resolution: - { integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A== } + resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 /@types/express/4.17.21: - resolution: - { integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== } + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: '@types/body-parser': 1.19.5 '@types/express-serve-static-core': 4.19.6 @@ -4644,252 +4684,212 @@ packages: '@types/serve-static': 1.15.7 /@types/faker/5.1.5: - resolution: - { integrity: sha512-2uEQFb7bsx68rqD4F8q95wZq6LTLOyexjv6BnvJogCO4jStkyc6IDEkODPQcWfovI6g6M3uPQ2/uD/oedJKkNw== } + resolution: {integrity: sha512-2uEQFb7bsx68rqD4F8q95wZq6LTLOyexjv6BnvJogCO4jStkyc6IDEkODPQcWfovI6g6M3uPQ2/uD/oedJKkNw==} dev: true /@types/fs-extra/9.0.13: - resolution: - { integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== } + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: true /@types/glob/8.1.0: - resolution: - { integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w== } + resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.19.65 + '@types/node': 18.19.67 /@types/http-cache-semantics/4.0.4: - resolution: - { integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== } + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} dev: true /@types/http-errors/2.0.4: - resolution: - { integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== } + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} /@types/inflected/1.1.29: - resolution: - { integrity: sha512-csq2i12fylUrVWQ15ZMnVV3IV/KJ6zti/bn/n1FSHgZfIw1OGZV2OaJLdpGb0e1SRwdg92yalOS3Wftuw59rFA== } + resolution: {integrity: sha512-csq2i12fylUrVWQ15ZMnVV3IV/KJ6zti/bn/n1FSHgZfIw1OGZV2OaJLdpGb0e1SRwdg92yalOS3Wftuw59rFA==} dev: true /@types/inquirer/6.5.0: - resolution: - { integrity: sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw== } + resolution: {integrity: sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==} dependencies: '@types/through': 0.0.33 rxjs: 6.6.7 dev: true /@types/json-schema/7.0.15: - resolution: - { integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== } + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} /@types/json5/0.0.29: - resolution: - { integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== } + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} /@types/jsonwebtoken/9.0.1: - resolution: - { integrity: sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw== } + resolution: {integrity: sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 /@types/keyv/3.1.4: - resolution: - { integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== } + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: true - /@types/lodash/4.17.12: - resolution: {integrity: sha512-sviUmCE8AYdaF/KIHLDJBQgeYzPBI0vf/17NaYehBJfYD1j6/L95Slh07NlyK2iNyBNaEkb3En2jRt+a8y3xZQ==} + /@types/lodash/4.17.13: + resolution: {integrity: sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==} dev: true /@types/mime/1.3.5: - resolution: - { integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== } + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} /@types/minimatch/5.1.2: - resolution: - { integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== } + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} /@types/mocha/10.0.1: - resolution: - { integrity: sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== } + resolution: {integrity: sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==} dev: true /@types/mustache/4.1.0: - resolution: - { integrity: sha512-dj4gq0BwsONZw/jqEf1qDBkAhAdBfIb7K+RDEQQvGfd6uTkfzKNxjz6NCeg50bveU0ydi8DruGp/9+FgIxli5w== } + resolution: {integrity: sha512-dj4gq0BwsONZw/jqEf1qDBkAhAdBfIb7K+RDEQQvGfd6uTkfzKNxjz6NCeg50bveU0ydi8DruGp/9+FgIxli5w==} dev: true /@types/mute-stream/0.0.1: - resolution: - { integrity: sha512-0yQLzYhCqGz7CQPE3iDmYjhb7KMBFOP+tBkyw+/Y2YyDI5wpS7itXXxneN1zSsUwWx3Ji6YiVYrhAnpQGS/vkw== } + resolution: {integrity: sha512-0yQLzYhCqGz7CQPE3iDmYjhb7KMBFOP+tBkyw+/Y2YyDI5wpS7itXXxneN1zSsUwWx3Ji6YiVYrhAnpQGS/vkw==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 /@types/mute-stream/0.0.4: - resolution: - { integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow== } + resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 /@types/nedb/1.8.16: - resolution: - { integrity: sha512-ND+uzwAZk7ZI9byOvHGOcZe2R9XUcLF698yDJKn00trFvh+GaemkX3gQKCSKtObjDpv8Uuou+k8v4x4scPr4TA== } + resolution: {integrity: sha512-ND+uzwAZk7ZI9byOvHGOcZe2R9XUcLF698yDJKn00trFvh+GaemkX3gQKCSKtObjDpv8Uuou+k8v4x4scPr4TA==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: true /@types/needle/2.5.3: - resolution: - { integrity: sha512-RwgTwMRaedfyCBe5SSWMpm1Yqzc5UPZEMw0eAd09OSyV93nLRj9/evMGZmgFeHKzUOd4xxtHvgtc+rjcBjI1Qg== } + resolution: {integrity: sha512-RwgTwMRaedfyCBe5SSWMpm1Yqzc5UPZEMw0eAd09OSyV93nLRj9/evMGZmgFeHKzUOd4xxtHvgtc+rjcBjI1Qg==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: false /@types/node-schedule/1.3.2: - resolution: - { integrity: sha512-Y0CqdAr+lCpArT8CJJjJq4U2v8Bb5e7ru2nV/NhDdaptCMCRdOL3Y7tAhen39HluQMaIKWvPbDuiFBUQpg7Srw== } + resolution: {integrity: sha512-Y0CqdAr+lCpArT8CJJjJq4U2v8Bb5e7ru2nV/NhDdaptCMCRdOL3Y7tAhen39HluQMaIKWvPbDuiFBUQpg7Srw==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: true /@types/node/10.17.60: - resolution: - { integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== } + resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} dev: false /@types/node/18.18.8: - resolution: - { integrity: sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ== } + resolution: {integrity: sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==} dependencies: undici-types: 5.26.5 - /@types/node/18.19.59: - resolution: {integrity: sha512-vizm2EqwV/7Zay+A6J3tGl9Lhr7CjZe2HmWS988sefiEmsyP9CeXEleho6i4hJk/8UtZAo0bWN4QPZZr83RxvQ==} + /@types/node/18.19.67: + resolution: {integrity: sha512-wI8uHusga+0ZugNp0Ol/3BqQfEcCCNfojtO6Oou9iVNGPTL6QNSdnUdqq85fRgIorLhLMuPIKpsN98QE9Nh+KQ==} dependencies: undici-types: 5.26.5 - /@types/node/20.17.1: - resolution: {integrity: sha512-j2VlPv1NnwPJbaCNv69FO/1z4lId0QmGvpT41YxitRtWlg96g/j8qcv2RKsLKe2F6OJgyXhupN1Xo17b2m139Q==} + /@types/node/20.17.9: + resolution: {integrity: sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==} dependencies: undici-types: 6.19.8 /@types/normalize-package-data/2.4.4: - resolution: - { integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== } + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true - /@types/qs/6.9.16: - resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==} + /@types/qs/6.9.17: + resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==} /@types/range-parser/1.2.7: - resolution: - { integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== } + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} /@types/responselike/1.0.3: - resolution: - { integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== } + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: true /@types/rewire/2.5.30: - resolution: - { integrity: sha512-CSyzr7TF1EUm85as2noToMtLaBBN/rKKlo5ZDdXedQ64cUiHT25LCNo1J1cI4QghBlGmTymElW/2h3TiWYOsZw== } + resolution: {integrity: sha512-CSyzr7TF1EUm85as2noToMtLaBBN/rKKlo5ZDdXedQ64cUiHT25LCNo1J1cI4QghBlGmTymElW/2h3TiWYOsZw==} dev: true /@types/semver/7.5.8: - resolution: - { integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== } + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} /@types/send/0.17.4: - resolution: - { integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== } + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.65 + '@types/node': 18.19.67 /@types/serve-static/1.15.7: - resolution: - { integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== } + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/send': 0.17.4 /@types/sinon-chai/3.2.5: - resolution: - { integrity: sha512-bKQqIpew7mmIGNRlxW6Zli/QVyc3zikpGzCa797B/tRnD9OtHvZ/ts8sYXV+Ilj9u3QRaUEM8xrjgd1gwm1BpQ== } + resolution: {integrity: sha512-bKQqIpew7mmIGNRlxW6Zli/QVyc3zikpGzCa797B/tRnD9OtHvZ/ts8sYXV+Ilj9u3QRaUEM8xrjgd1gwm1BpQ==} dependencies: '@types/chai': 4.2.18 '@types/sinon': 10.0.0 dev: true /@types/sinon-express-mock/1.3.12: - resolution: - { integrity: sha512-nuGgQPS5Q57Ki4BbSTJNTtU3eQR/gMDPtpyfDj5kGJ/KfWd3ZdK4BJJwWuvjukiLCbro4NOTm9nxjXh7tojwgg== } + resolution: {integrity: sha512-nuGgQPS5Q57Ki4BbSTJNTtU3eQR/gMDPtpyfDj5kGJ/KfWd3ZdK4BJJwWuvjukiLCbro4NOTm9nxjXh7tojwgg==} dependencies: '@types/express': 4.17.21 '@types/sinon': 10.0.0 dev: true /@types/sinon/10.0.0: - resolution: - { integrity: sha512-jDZ55oCKxqlDmoTBBbBBEx+N8ZraUVhggMZ9T5t+6/Dh8/4NiOjSUfpLrPiEwxQDlAe3wpAkoXhWvE6LibtsMQ== } + resolution: {integrity: sha512-jDZ55oCKxqlDmoTBBbBBEx+N8ZraUVhggMZ9T5t+6/Dh8/4NiOjSUfpLrPiEwxQDlAe3wpAkoXhWvE6LibtsMQ==} dependencies: '@sinonjs/fake-timers': 7.1.2 /@types/through/0.0.33: - resolution: - { integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ== } + resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: true /@types/uuid/8.3.0: - resolution: - { integrity: sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== } + resolution: {integrity: sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==} dev: true /@types/validator/13.1.3: - resolution: - { integrity: sha512-DaOWN1zf7j+8nHhqXhIgNmS+ltAC53NXqGxYuBhWqWgqolRhddKzfZU814lkHQSTG0IUfQxU7Cg0gb8fFWo2mA== } + resolution: {integrity: sha512-DaOWN1zf7j+8nHhqXhIgNmS+ltAC53NXqGxYuBhWqWgqolRhddKzfZU814lkHQSTG0IUfQxU7Cg0gb8fFWo2mA==} dev: true /@types/wrap-ansi/3.0.0: - resolution: - { integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g== } + resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} /@types/ws/8.5.4: - resolution: - { integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== } + resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: true /@types/yauzl/2.10.3: - resolution: - { integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q== } + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 optional: true /@types/yoga-layout/1.9.2: - resolution: - { integrity: sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw== } + resolution: {integrity: sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==} /@typescript-eslint/eslint-plugin/5.62.0_uve4wv4elfpx2l3zvshgwzvkay: - resolution: - { integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -4903,7 +4903,7 @@ packages: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/type-utils': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi '@typescript-eslint/utils': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi - debug: 4.3.7 + debug: 4.4.0 eslint: 8.57.1 graphemer: 1.4.0 ignore: 5.3.2 @@ -4915,9 +4915,8 @@ packages: - supports-color /@typescript-eslint/parser/5.62.0_cfup2jodhmurb5mm6vjw5usxmi: - resolution: - { integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 typescript: '*' @@ -4928,24 +4927,22 @@ packages: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 - debug: 4.3.7 + debug: 4.4.0 eslint: 8.57.1 typescript: 5.1.6 transitivePeerDependencies: - supports-color /@typescript-eslint/scope-manager/5.62.0: - resolution: - { integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 /@typescript-eslint/type-utils/5.62.0_cfup2jodhmurb5mm6vjw5usxmi: - resolution: - { integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' typescript: '*' @@ -4955,7 +4952,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 '@typescript-eslint/utils': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi - debug: 4.3.7 + debug: 4.4.0 eslint: 8.57.1 tsutils: 3.21.0_typescript@5.1.6 typescript: 5.1.6 @@ -4963,14 +4960,12 @@ packages: - supports-color /@typescript-eslint/types/5.62.0: - resolution: - { integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} /@typescript-eslint/typescript-estree/5.62.0_typescript@5.1.6: - resolution: - { integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -4979,7 +4974,7 @@ packages: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.7 + debug: 4.4.0 globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.3 @@ -4989,9 +4984,8 @@ packages: - supports-color /@typescript-eslint/utils/5.62.0_cfup2jodhmurb5mm6vjw5usxmi: - resolution: - { integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: @@ -5009,60 +5003,53 @@ packages: - typescript /@typescript-eslint/visitor-keys/5.62.0: - resolution: - { integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 - /@ungap/structured-clone/1.2.0: - resolution: - { integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== } + /@ungap/structured-clone/1.2.1: + resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==} /@wry/context/0.7.4: - resolution: - { integrity: sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ==} + engines: {node: '>=8'} dependencies: tslib: 2.8.1 /@wry/equality/0.5.7: - resolution: - { integrity: sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==} + engines: {node: '>=8'} dependencies: tslib: 2.8.1 /@wry/trie/0.3.2: - resolution: - { integrity: sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==} + engines: {node: '>=8'} dependencies: tslib: 2.8.1 - /@xmldom/xmldom/0.9.4: - resolution: {integrity: sha512-zglELfWx7g1cEpVMRBZ0srIQO5nEvKvraJ6CVUC/c5Ky1GgX8OIjtUj5qOweTYULYZo5VnXs/LpUUUNiGpX/rA==} + /@xmldom/xmldom/0.9.6: + resolution: {integrity: sha512-Su4xcxR0CPGwlDHNmVP09fqET9YxbyDXHaSob6JlBH7L6reTYaeim6zbk9o08UarO0L5GTRo3uzl0D+9lSxmvw==} engines: {node: '>=14.6'} /accepts/1.3.8: - resolution: - { integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} dependencies: mime-types: 2.1.35 negotiator: 0.6.3 /acorn-jsx/5.3.2_acorn@7.4.1: - resolution: - { integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== } + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 7.4.1 dev: true - /acorn-jsx/5.3.2_acorn@8.13.0: + /acorn-jsx/5.3.2_acorn@8.14.0: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -5070,76 +5057,63 @@ packages: acorn: 8.14.0 /acorn-walk/8.3.4: - resolution: - { integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== } - engines: { node: '>=0.4.0' } + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} dependencies: acorn: 8.14.0 /acorn/7.4.1: - resolution: - { integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== } - engines: { node: '>=0.4.0' } + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} hasBin: true dev: true - /acorn/8.13.0: - resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==} + /acorn/8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true /address/1.2.2: - resolution: - { integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} /adm-zip/0.5.16: - resolution: - { integrity: sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ== } - engines: { node: '>=12.0' } + resolution: {integrity: sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==} + engines: {node: '>=12.0'} dev: true /agent-base/6.0.2: - resolution: - { integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== } - engines: { node: '>= 6.0.0' } + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color /agent-base/6.0.2_supports-color@8.1.1: - resolution: - { integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== } - engines: { node: '>= 6.0.0' } + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.7_supports-color@8.1.1 + debug: 4.4.0_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true - /agent-base/7.1.1: - resolution: - { integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== } - engines: { node: '>= 14' } - dependencies: - debug: 4.3.7 - transitivePeerDependencies: - - supports-color + /agent-base/7.1.3: + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} + engines: {node: '>= 14'} dev: false /aggregate-error/3.1.0: - resolution: - { integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 dev: true /ajv-formats/2.1.1: - resolution: - { integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== } + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependenciesMeta: ajv: optional: true @@ -5148,8 +5122,7 @@ packages: dev: true /ajv/6.12.6: - resolution: - { integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== } + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 @@ -5157,8 +5130,7 @@ packages: uri-js: 4.4.1 /ajv/8.17.1: - resolution: - { integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== } + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} dependencies: fast-deep-equal: 3.1.3 fast-uri: 3.0.3 @@ -5166,84 +5138,71 @@ packages: require-from-string: 2.0.2 /ansi-colors/4.1.1: - resolution: - { integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== } - engines: { node: '>=6' } + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} dev: true /ansi-escapes/4.3.2: - resolution: - { integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} dependencies: type-fest: 0.21.3 /ansi-regex/4.1.1: - resolution: - { integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== } - engines: { node: '>=6' } + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} /ansi-regex/5.0.1: - resolution: - { integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} /ansi-regex/6.1.0: - resolution: - { integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== } - engines: { node: '>=12' } + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} /ansi-styles/3.2.1: - resolution: - { integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== } - engines: { node: '>=4' } + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} dependencies: color-convert: 1.9.3 /ansi-styles/4.3.0: - resolution: - { integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: color-convert: 2.0.1 /ansi-styles/6.2.1: - resolution: - { integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== } - engines: { node: '>=12' } + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} /ansicolors/0.3.2: - resolution: - { integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== } + resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==} /anymatch/3.1.3: - resolution: - { integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== } - engines: { node: '>= 8' } + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 /append-transform/2.0.0: - resolution: - { integrity: sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==} + engines: {node: '>=8'} dependencies: default-require-extensions: 3.0.1 dev: true /archive-type/4.0.0: - resolution: - { integrity: sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA== } - engines: { node: '>=4' } + resolution: {integrity: sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==} + engines: {node: '>=4'} dependencies: file-type: 4.4.0 dev: true /archiver-utils/2.1.0: - resolution: - { integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== } - engines: { node: '>= 6' } + resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} + engines: {node: '>= 6'} dependencies: glob: 7.2.3 graceful-fs: 4.2.11 @@ -5257,9 +5216,8 @@ packages: readable-stream: 2.3.8 /archiver-utils/3.0.4: - resolution: - { integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw== } - engines: { node: '>= 10' } + resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} + engines: {node: '>= 10'} dependencies: glob: 7.2.3 graceful-fs: 4.2.11 @@ -5273,9 +5231,8 @@ packages: readable-stream: 3.6.2 /archiver/5.3.0: - resolution: - { integrity: sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg== } - engines: { node: '>= 10' } + resolution: {integrity: sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==} + engines: {node: '>= 10'} dependencies: archiver-utils: 2.1.0 async: 3.2.6 @@ -5286,9 +5243,8 @@ packages: zip-stream: 4.1.1 /archiver/5.3.2: - resolution: - { integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw== } - engines: { node: '>= 10' } + resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} + engines: {node: '>= 10'} dependencies: archiver-utils: 2.1.0 async: 3.2.6 @@ -5299,64 +5255,54 @@ packages: zip-stream: 4.1.1 /archy/1.0.0: - resolution: - { integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== } + resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} dev: true /arg/4.1.3: - resolution: - { integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== } + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} /argparse/1.0.10: - resolution: - { integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== } + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 /argparse/2.0.1: - resolution: - { integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== } + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} /arr-rotate/1.0.0: - resolution: - { integrity: sha512-yOzOZcR9Tn7enTF66bqKorGGH0F36vcPaSWg8fO0c0UYb3LX3VMXj5ZxEqQLNOecAhlRJ7wYZja5i4jTlnbIfQ== } - engines: { node: '>=4' } + resolution: {integrity: sha512-yOzOZcR9Tn7enTF66bqKorGGH0F36vcPaSWg8fO0c0UYb3LX3VMXj5ZxEqQLNOecAhlRJ7wYZja5i4jTlnbIfQ==} + engines: {node: '>=4'} /array-buffer-byte-length/1.0.1: - resolution: - { integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 is-array-buffer: 3.0.4 /array-flatten/1.1.1: - resolution: - { integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== } + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} /array-includes/3.1.8: - resolution: - { integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.5 es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - is-string: 1.0.7 + get-intrinsic: 1.2.5 + is-string: 1.1.0 /array-union/2.1.0: - resolution: - { integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} /array.prototype.findlastindex/1.2.5: - resolution: - { integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.5 es-errors: 1.3.0 @@ -5364,101 +5310,87 @@ packages: es-shim-unscopables: 1.0.2 /array.prototype.flat/1.3.2: - resolution: - { integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.5 es-shim-unscopables: 1.0.2 /array.prototype.flatmap/1.3.2: - resolution: - { integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.5 es-shim-unscopables: 1.0.2 /arraybuffer.prototype.slice/1.0.3: - resolution: - { integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.5 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.5 is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 /asap/2.0.6: - resolution: - { integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== } + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} dev: true /asn1/0.2.3: - resolution: - { integrity: sha512-6i37w/+EhlWlGUJff3T/Q8u1RGmP5wgbiwYnOnbOqvtrPxT63/sYFyP9RcpxtxGymtfA075IvmOnL7ycNOWl3w== } + resolution: {integrity: sha512-6i37w/+EhlWlGUJff3T/Q8u1RGmP5wgbiwYnOnbOqvtrPxT63/sYFyP9RcpxtxGymtfA075IvmOnL7ycNOWl3w==} dev: true /assertion-error/1.1.0: - resolution: - { integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== } + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} /astral-regex/1.0.0: - resolution: - { integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== } - engines: { node: '>=4' } + resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} + engines: {node: '>=4'} dev: true /astral-regex/2.0.0: - resolution: - { integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} /async/3.2.6: - resolution: - { integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== } + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} /asynckit/0.4.0: - resolution: - { integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== } + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true /at-least-node/1.0.0: - resolution: - { integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== } - engines: { node: '>= 4.0.0' } + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} /auto-bind/4.0.0: - resolution: - { integrity: sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==} + engines: {node: '>=8'} /available-typed-arrays/1.0.7: - resolution: - { integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} dependencies: possible-typed-array-names: 1.0.0 /aws-cdk/1.203.0: - resolution: - { integrity: sha512-9nghEa+JGzh7LEz2Yl2q4v+76Uf+Y4A4Pa38PSsNgI0jAwnBAz5NaC3MB4Tdzd5szSfQuS72u5Uuxh6Lz1H0ow== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-9nghEa+JGzh7LEz2Yl2q4v+76Uf+Y4A4Pa38PSsNgI0jAwnBAz5NaC3MB4Tdzd5szSfQuS72u5Uuxh6Lz1H0ow==} + engines: {node: '>= 14.15.0'} hasBin: true optionalDependencies: fsevents: 2.3.2 dev: false - /aws-sdk/2.1691.0: - resolution: {integrity: sha512-/F2YC+DlsY3UBM2Bdnh5RLHOPNibS/+IcjUuhP8XuctyrN+MlL+fWDAiela32LTDk7hMy4rx8MTgvbJ+0blO5g==} + /aws-sdk/2.1692.0: + resolution: {integrity: sha512-x511uiJ/57FIsbgUe5csJ13k3uzu25uWQE+XqfBis/sB0SFoiElJWXRkgEAUh0U6n40eT3ay5Ue4oPkRMu1LYw==} engines: {node: '>= 10.0.0'} requiresBuild: true dependencies: @@ -5474,9 +5406,8 @@ packages: xml2js: 0.6.2 /aws-sdk/2.853.0: - resolution: - { integrity: sha512-3cifeifeMHKtpvQ6OcrA9j34BEdvWmLlSGzZU/mZf9nYcV+22PPXjwpVhPh9BvfC2S77upKNbMgnkv4u50aQKw== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-3cifeifeMHKtpvQ6OcrA9j34BEdvWmLlSGzZU/mZf9nYcV+22PPXjwpVhPh9BvfC2S77upKNbMgnkv4u50aQKw==} + engines: {node: '>= 0.8.0'} dependencies: buffer: 4.9.2 events: 1.1.1 @@ -5488,9 +5419,8 @@ packages: uuid: 3.3.2 xml2js: 0.4.19 - /axios/1.7.7: - resolution: - { integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== } + /axios/1.7.9: + resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} dependencies: follow-redirects: 1.15.9 form-data: 4.0.1 @@ -5500,53 +5430,44 @@ packages: dev: true /backo2/1.0.2: - resolution: - { integrity: sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA== } + resolution: {integrity: sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==} /balanced-match/1.0.2: - resolution: - { integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== } + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} /base64-js/1.5.1: - resolution: - { integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== } + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} /base64-url/2.3.3: - resolution: - { integrity: sha512-dLMhIsK7OplcDauDH/tZLvK7JmUZK3A7KiQpjNzsBrM6Etw7hzNI1tLEywqJk9NnwkgWuFKSlx/IUO7vF6Mo8Q== } - engines: { node: '>=6' } + resolution: {integrity: sha512-dLMhIsK7OplcDauDH/tZLvK7JmUZK3A7KiQpjNzsBrM6Etw7hzNI1tLEywqJk9NnwkgWuFKSlx/IUO7vF6Mo8Q==} + engines: {node: '>=6'} dev: true /binary-extensions/2.3.0: - resolution: - { integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} /bl/1.2.3: - resolution: - { integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== } + resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} dependencies: readable-stream: 2.3.8 safe-buffer: 5.2.1 dev: true /bl/4.1.0: - resolution: - { integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== } + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.2 /bluebird/3.7.2: - resolution: - { integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== } + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true /body-parser/1.20.3: - resolution: - { integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== } - engines: { node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16 } + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -5562,117 +5483,99 @@ packages: unpipe: 1.0.0 /brace-expansion/1.1.11: - resolution: - { integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== } + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 /brace-expansion/2.0.1: - resolution: - { integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== } + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 /braces/3.0.3: - resolution: - { integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} dependencies: fill-range: 7.1.1 /browser-stdout/1.3.1: - resolution: - { integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== } + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true /browserslist/4.24.2: - resolution: - { integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg== } - engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001684 - electron-to-chromium: 1.5.64 + caniuse-lite: 1.0.30001687 + electron-to-chromium: 1.5.71 node-releases: 2.0.18 update-browserslist-db: 1.1.1_browserslist@4.24.2 dev: true /buffer-alloc-unsafe/1.1.0: - resolution: - { integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== } + resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} dev: true /buffer-alloc/1.2.0: - resolution: - { integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== } + resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} dependencies: buffer-alloc-unsafe: 1.1.0 buffer-fill: 1.0.0 dev: true /buffer-crc32/0.2.13: - resolution: - { integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== } + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} /buffer-equal-constant-time/1.0.1: - resolution: - { integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== } + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} /buffer-fill/1.0.0: - resolution: - { integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== } + resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} dev: true /buffer/4.9.2: - resolution: - { integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== } + resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} dependencies: base64-js: 1.5.1 ieee754: 1.1.13 isarray: 1.0.0 /buffer/5.7.1: - resolution: - { integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== } + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 /buffer/6.0.3: - resolution: - { integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== } + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 dev: false /builtin-modules/3.3.0: - resolution: - { integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== } - engines: { node: '>=6' } + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} dev: true /builtins/1.0.3: - resolution: - { integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== } + resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} dev: true /bytes/3.1.2: - resolution: - { integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} /cacheable-lookup/5.0.4: - resolution: - { integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== } - engines: { node: '>=10.6.0' } + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} dev: true /cacheable-request/7.0.4: - resolution: - { integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} dependencies: clone-response: 1.0.3 get-stream: 5.2.0 @@ -5684,15 +5587,13 @@ packages: dev: true /cachedir/2.4.0: - resolution: - { integrity: sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ== } - engines: { node: '>=6' } + resolution: {integrity: sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==} + engines: {node: '>=6'} dev: true /caching-transform/4.0.0: - resolution: - { integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==} + engines: {node: '>=8'} dependencies: hasha: 5.2.2 make-dir: 3.1.0 @@ -5700,54 +5601,53 @@ packages: write-file-atomic: 3.0.3 dev: true - /call-bind/1.0.7: - resolution: - { integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== } - engines: { node: '>= 0.4' } + /call-bind-apply-helpers/1.0.0: + resolution: {integrity: sha512-CCKAP2tkPau7D3GE8+V8R6sQubA9R5foIzGp+85EXCVSCivuxBNAWqcpn72PKYiIcqoViv/kcUDpaEIMBVi1lQ==} + engines: {node: '>= 0.4'} dependencies: - es-define-property: 1.0.0 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 + + /call-bind/1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + dependencies: + call-bind-apply-helpers: 1.0.0 + es-define-property: 1.0.1 + get-intrinsic: 1.2.5 set-function-length: 1.2.2 /callsites/3.1.0: - resolution: - { integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== } - engines: { node: '>=6' } + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} /camelcase/5.3.1: - resolution: - { integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== } - engines: { node: '>=6' } + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} dev: true /camelcase/6.3.0: - resolution: - { integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== } - engines: { node: '>=10' } + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} - /caniuse-lite/1.0.30001669: - resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==} + /caniuse-lite/1.0.30001687: + resolution: {integrity: sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==} dev: true /cardinal/2.1.1: - resolution: - { integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw== } + resolution: {integrity: sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==} hasBin: true dependencies: ansicolors: 0.3.2 redeyed: 2.1.1 /case/1.6.3: - resolution: - { integrity: sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==} + engines: {node: '>= 0.8.0'} /cdk-assets/2.39.1: - resolution: - { integrity: sha512-a7k9kKt3HyNm6nxXJhFxyR5iFuh2C1B0gX0p9+d1ZgqpmOgtdIdQFIYiBmjPMBnj4mtJiBI1Nz5BvqV3pKHKxw== } - engines: { node: '>= 14.15.0' } + resolution: {integrity: sha512-a7k9kKt3HyNm6nxXJhFxyR5iFuh2C1B0gX0p9+d1ZgqpmOgtdIdQFIYiBmjPMBnj4mtJiBI1Nz5BvqV3pKHKxw==} + engines: {node: '>= 14.15.0'} hasBin: true dependencies: '@aws-cdk/cloud-assembly-schema': 2.39.1 @@ -5760,8 +5660,7 @@ packages: dev: false /cdktf-cli/0.19.2_ink@3.2.0+react@17.0.2: - resolution: - { integrity: sha512-rwd0yOJmHecOnQsnZxsKFgBO2r1AuPw34IfKSx+FSK6H7aO13Pak+tef6tlhn7f0K79Abk2ZGD3OLs8TeG+78w== } + resolution: {integrity: sha512-rwd0yOJmHecOnQsnZxsKFgBO2r1AuPw34IfKSx+FSK6H7aO13Pak+tef6tlhn7f0K79Abk2ZGD3OLs8TeG+78w==} hasBin: true dependencies: '@cdktf/cli-core': 0.19.2_react@17.0.2 @@ -5769,7 +5668,7 @@ packages: '@cdktf/hcl2cdk': 0.19.2 '@cdktf/hcl2json': 0.19.2 '@inquirer/prompts': 2.3.1 - '@sentry/node': 7.120.0 + '@sentry/node': 7.120.1 cdktf: 0.19.2_constructs@10.4.2 ci-info: 3.9.0 codemaker: 1.105.0 @@ -5778,7 +5677,7 @@ packages: https-proxy-agent: 5.0.1 ink-select-input: 4.2.2_ink@3.2.0+react@17.0.2 ink-table: 3.1.0_ink@3.2.0+react@17.0.2 - jsii: 5.6.0 + jsii: 5.7.1 jsii-pacmak: 1.105.0 minimatch: 5.1.6 node-fetch: 2.7.0 @@ -5801,8 +5700,7 @@ packages: - utf-8-validate /cdktf/0.19.2_constructs@10.4.2: - resolution: - { integrity: sha512-FHOERDO7i2g/+pUaaZCVDKsbXEBtWYOgELL1UKjNp37DyEmtFlltdsgutVfouoil0C7W5za2IydD6sSeoH5aUw== } + resolution: {integrity: sha512-FHOERDO7i2g/+pUaaZCVDKsbXEBtWYOgELL1UKjNp37DyEmtFlltdsgutVfouoil0C7W5za2IydD6sSeoH5aUw==} peerDependencies: constructs: ^10.0.25 dependencies: @@ -5813,14 +5711,12 @@ packages: - semver /chai-arrays/2.2.0: - resolution: - { integrity: sha512-4awrdGI2EH8owJ9I58PXwG4N56/FiM8bsn4CVSNEgr4GKAM6Kq5JPVApUbhUBjDakbZNuRvV7quRSC38PWq/tg== } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-4awrdGI2EH8owJ9I58PXwG4N56/FiM8bsn4CVSNEgr4GKAM6Kq5JPVApUbhUBjDakbZNuRvV7quRSC38PWq/tg==} + engines: {node: '>=0.10'} dev: true /chai-as-promised/7.1.1_chai@4.2.0: - resolution: - { integrity: sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA== } + resolution: {integrity: sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==} peerDependencies: chai: '>= 2.1.2 < 5' dependencies: @@ -5828,9 +5724,8 @@ packages: check-error: 1.0.3 /chai/4.2.0: - resolution: - { integrity: sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== } - engines: { node: '>=4' } + resolution: {integrity: sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==} + engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 check-error: 1.0.3 @@ -5840,9 +5735,8 @@ packages: type-detect: 4.1.0 /chai/4.5.0: - resolution: - { integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw== } - engines: { node: '>=4' } + resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} + engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 check-error: 1.0.3 @@ -5854,40 +5748,34 @@ packages: dev: true /chalk/2.4.2: - resolution: - { integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== } - engines: { node: '>=4' } + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 /chalk/4.1.2: - resolution: - { integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== } - engines: { node: '>=10' } + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 /chardet/0.7.0: - resolution: - { integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== } + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} /charenc/0.0.2: - resolution: - { integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== } + resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} dev: false /check-error/1.0.3: - resolution: - { integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== } + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} dependencies: get-func-name: 2.0.2 /child-process-ext/2.1.1: - resolution: - { integrity: sha512-0UQ55f51JBkOFa+fvR76ywRzxiPwQS3Xe8oe5bZRphpv+dIMeerW5Zn5e4cUy4COJwVtJyU0R79RMnw+aCqmGA== } + resolution: {integrity: sha512-0UQ55f51JBkOFa+fvR76ywRzxiPwQS3Xe8oe5bZRphpv+dIMeerW5Zn5e4cUy4COJwVtJyU0R79RMnw+aCqmGA==} dependencies: cross-spawn: 6.0.6 es5-ext: 0.10.64 @@ -5897,9 +5785,8 @@ packages: dev: true /child-process-ext/3.0.2: - resolution: - { integrity: sha512-oBePsLbQpTJFxzwyCvs9yWWF0OEM6vGGepHwt1stqmX7QQqOuDc8j2ywdvAs9Tvi44TT7d9ackqhR4Q10l1u8w== } - engines: { node: '>=8.0' } + resolution: {integrity: sha512-oBePsLbQpTJFxzwyCvs9yWWF0OEM6vGGepHwt1stqmX7QQqOuDc8j2ywdvAs9Tvi44TT7d9ackqhR4Q10l1u8w==} + engines: {node: '>=8.0'} dependencies: cross-spawn: 7.0.6 es5-ext: 0.10.64 @@ -5909,17 +5796,15 @@ packages: dev: true /child-process-promise/2.2.1: - resolution: - { integrity: sha512-Fi4aNdqBsr0mv+jgWxcZ/7rAIC2mgihrptyVI4foh/rrjY/3BNjfP9+oaiFx/fzim+1ZyCNBae0DlyfQhSugog== } + resolution: {integrity: sha512-Fi4aNdqBsr0mv+jgWxcZ/7rAIC2mgihrptyVI4foh/rrjY/3BNjfP9+oaiFx/fzim+1ZyCNBae0DlyfQhSugog==} dependencies: cross-spawn: 4.0.2 node-version: 1.2.0 promise-polyfill: 6.1.0 /chokidar/3.5.3: - resolution: - { integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== } - engines: { node: '>= 8.10.0' } + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 braces: 3.0.3 @@ -5933,9 +5818,8 @@ packages: dev: true /chokidar/3.6.0: - resolution: - { integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== } - engines: { node: '>= 8.10.0' } + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 braces: 3.0.3 @@ -5948,59 +5832,49 @@ packages: fsevents: 2.3.3 /chownr/1.1.4: - resolution: - { integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== } + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} /chownr/2.0.0: - resolution: - { integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== } - engines: { node: '>=10' } + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} dev: true /ci-info/2.0.0: - resolution: - { integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== } + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} /ci-info/3.9.0: - resolution: - { integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} /class-transformer/0.5.1: - resolution: - { integrity: sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw== } + resolution: {integrity: sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==} dev: false /clean-regexp/1.0.0: - resolution: - { integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw== } - engines: { node: '>=4' } + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} dependencies: escape-string-regexp: 1.0.5 dev: true /clean-stack/2.2.0: - resolution: - { integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== } - engines: { node: '>=6' } + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} dev: true /clean-stack/3.0.1: - resolution: - { integrity: sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg== } - engines: { node: '>=10' } + resolution: {integrity: sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==} + engines: {node: '>=10'} dependencies: escape-string-regexp: 4.0.0 /cli-boxes/2.2.1: - resolution: - { integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== } - engines: { node: '>=6' } + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} /cli-color/2.0.4: - resolution: - { integrity: sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA== } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA==} + engines: {node: '>=0.10'} dependencies: d: 1.0.2 es5-ext: 0.10.64 @@ -6010,24 +5884,21 @@ packages: dev: true /cli-cursor/2.1.0: - resolution: - { integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw== } - engines: { node: '>=4' } + resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==} + engines: {node: '>=4'} dependencies: restore-cursor: 2.0.0 dev: false /cli-cursor/3.1.0: - resolution: - { integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} dependencies: restore-cursor: 3.1.0 /cli-progress-footer/2.3.3: - resolution: - { integrity: sha512-p+hyTPxSZWG1c3Qy1DLBoGZhpeA3Y6AMlKrtbGpMMSKpezbSLel8gW4e5You4FNlHb3wS/M1JU594OAWe/Totg== } - engines: { node: '>=10.0' } + resolution: {integrity: sha512-p+hyTPxSZWG1c3Qy1DLBoGZhpeA3Y6AMlKrtbGpMMSKpezbSLel8gW4e5You4FNlHb3wS/M1JU594OAWe/Totg==} + engines: {node: '>=10.0'} dependencies: cli-color: 2.0.4 d: 1.0.2 @@ -6039,26 +5910,22 @@ packages: dev: true /cli-progress/3.12.0: - resolution: - { integrity: sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A== } - engines: { node: '>=4' } + resolution: {integrity: sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==} + engines: {node: '>=4'} dependencies: string-width: 4.2.3 /cli-spinners/2.7.0: - resolution: - { integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== } - engines: { node: '>=6' } + resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} + engines: {node: '>=6'} /cli-spinners/2.9.2: - resolution: - { integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== } - engines: { node: '>=6' } + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} /cli-sprintf-format/1.1.1: - resolution: - { integrity: sha512-BbEjY9BEdA6wagVwTqPvmAwGB24U93rQPBFZUT8lNCDxXzre5LFHQUTJc70czjgUomVg8u8R5kW8oY9DYRFNeg== } - engines: { node: '>=6.0' } + resolution: {integrity: sha512-BbEjY9BEdA6wagVwTqPvmAwGB24U93rQPBFZUT8lNCDxXzre5LFHQUTJc70czjgUomVg8u8R5kW8oY9DYRFNeg==} + engines: {node: '>=6.0'} dependencies: cli-color: 2.0.4 es5-ext: 0.10.64 @@ -6067,26 +5934,22 @@ packages: dev: true /cli-truncate/2.1.0: - resolution: - { integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} dependencies: slice-ansi: 3.0.0 string-width: 4.2.3 /cli-width/3.0.0: - resolution: - { integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== } - engines: { node: '>= 10' } + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} /cli-width/4.1.0: - resolution: - { integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== } - engines: { node: '>= 12' } + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} /cliui/5.0.0: - resolution: - { integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== } + resolution: {integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==} dependencies: string-width: 3.1.0 strip-ansi: 5.2.0 @@ -6094,8 +5957,7 @@ packages: dev: true /cliui/6.0.0: - resolution: - { integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== } + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 @@ -6103,53 +5965,46 @@ packages: dev: true /cliui/7.0.4: - resolution: - { integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== } + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 /cliui/8.0.1: - resolution: - { integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== } - engines: { node: '>=12' } + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 /clone-response/1.0.3: - resolution: - { integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== } + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} dependencies: mimic-response: 1.0.1 dev: true /clone/1.0.4: - resolution: - { integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} /clone/2.1.2: - resolution: - { integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} /code-block-writer/12.0.0: - resolution: - { integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w== } + resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==} dev: false /code-excerpt/3.0.0: - resolution: - { integrity: sha512-VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw==} + engines: {node: '>=10'} dependencies: convert-to-spaces: 1.0.2 - /codemaker/1.104.0: - resolution: {integrity: sha512-BC95gULaPN4MMeWxeLXHGatkac6LOArHMAkPkl3wQdcVa7MO4OzST6e8tY71iqA3KrgamfP0vQ34N9rDkfDyGg==} + /codemaker/1.105.0: + resolution: {integrity: sha512-eTePuHlpXNDD4P1vdEv61j+O4f7cnzTSXfbl5bsz+dp8TC95B4YKUS7A/MfR39/CMfqjPn3+KjnCubRbqv5RMA==} engines: {node: '>= 14.17.0'} dependencies: camelcase: 6.3.0 @@ -6157,74 +6012,62 @@ packages: fs-extra: 10.1.0 /color-convert/1.9.3: - resolution: - { integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== } + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 /color-convert/2.0.1: - resolution: - { integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== } - engines: { node: '>=7.0.0' } + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 /color-name/1.1.3: - resolution: - { integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== } + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} /color-name/1.1.4: - resolution: - { integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== } + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} /color-string/1.9.1: - resolution: - { integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== } + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 /color/4.2.3: - resolution: - { integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== } - engines: { node: '>=12.5.0' } + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} dependencies: color-convert: 2.0.1 color-string: 1.9.1 /colors/1.4.0: - resolution: - { integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== } - engines: { node: '>=0.1.90' } + resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} + engines: {node: '>=0.1.90'} dev: false /combined-stream/1.0.8: - resolution: - { integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 dev: true /commander/2.20.3: - resolution: - { integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== } + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} dev: true /commander/4.1.1: - resolution: - { integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== } - engines: { node: '>= 6' } + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} dev: true /commondir/1.0.1: - resolution: - { integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== } + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true /commonmark/0.31.2: - resolution: - { integrity: sha512-2fRLTyb9r/2835k5cwcAwOj0DEc44FARnMp5veGsJ+mEAZdi52sNopLu07ZyElQUz058H43whzlERDIaaSw4rg== } + resolution: {integrity: sha512-2fRLTyb9r/2835k5cwcAwOj0DEc44FARnMp5veGsJ+mEAZdi52sNopLu07ZyElQUz058H43whzlERDIaaSw4rg==} hasBin: true dependencies: entities: 3.0.1 @@ -6232,14 +6075,12 @@ packages: minimist: 1.2.8 /component-emitter/1.3.1: - resolution: - { integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== } + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} dev: true /compress-commons/4.1.2: - resolution: - { integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg== } - engines: { node: '>= 10' } + resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} + engines: {node: '>= 10'} dependencies: buffer-crc32: 0.2.13 crc32-stream: 4.0.3 @@ -6247,20 +6088,18 @@ packages: readable-stream: 3.6.2 /concat-map/0.0.1: - resolution: - { integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== } + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} /concurrently/8.2.2: - resolution: - { integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg== } - engines: { node: ^14.13.0 || >=16.0.0 } + resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} + engines: {node: ^14.13.0 || >=16.0.0} hasBin: true dependencies: chalk: 4.1.2 date-fns: 2.30.0 lodash: 4.17.21 rxjs: 7.8.1 - shell-quote: 1.8.1 + shell-quote: 1.8.2 spawn-command: 0.0.2 supports-color: 8.1.1 tree-kill: 1.2.2 @@ -6268,59 +6107,48 @@ packages: dev: true /constructs/10.4.2: - resolution: - { integrity: sha512-wsNxBlAott2qg8Zv87q3eYZYgheb9lchtBfjHzzLHtXbttwSrHPs1NNQbBrmbb1YZvYg2+Vh0Dor76w4mFxJkA== } + resolution: {integrity: sha512-wsNxBlAott2qg8Zv87q3eYZYgheb9lchtBfjHzzLHtXbttwSrHPs1NNQbBrmbb1YZvYg2+Vh0Dor76w4mFxJkA==} /constructs/3.4.344: - resolution: - { integrity: sha512-Qq3upn44oGdvgasHUKWVFsrynyYrtVRd9fd8ko9cJOrFzx9eCm3iI4bhBryQqaISdausbTYUOXmoEe/YSJ16Nw== } - engines: { node: '>= 16.14.0' } + resolution: {integrity: sha512-Qq3upn44oGdvgasHUKWVFsrynyYrtVRd9fd8ko9cJOrFzx9eCm3iI4bhBryQqaISdausbTYUOXmoEe/YSJ16Nw==} + engines: {node: '>= 16.14.0'} dev: false /content-disposition/0.5.4: - resolution: - { integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} dependencies: safe-buffer: 5.2.1 /content-type/1.0.5: - resolution: - { integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} /convert-source-map/1.9.0: - resolution: - { integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== } + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} dev: true /convert-source-map/2.0.0: - resolution: - { integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== } + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true /convert-to-spaces/1.0.2: - resolution: - { integrity: sha512-cj09EBuObp9gZNQCzc7hByQyrs6jVGE+o9kSJmeUoj+GiPiJvi5LYqEH/Hmme4+MTLHM+Ejtq+FChpjjEnsPdQ== } - engines: { node: '>= 4' } + resolution: {integrity: sha512-cj09EBuObp9gZNQCzc7hByQyrs6jVGE+o9kSJmeUoj+GiPiJvi5LYqEH/Hmme4+MTLHM+Ejtq+FChpjjEnsPdQ==} + engines: {node: '>= 4'} /cookie-signature/1.0.6: - resolution: - { integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== } + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} /cookie/0.7.1: - resolution: - { integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} + engines: {node: '>= 0.6'} /cookiejar/2.1.4: - resolution: - { integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw== } + resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} dev: true /copyfiles/2.4.1: - resolution: - { integrity: sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg== } + resolution: {integrity: sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==} hasBin: true dependencies: glob: 7.2.3 @@ -6332,70 +6160,61 @@ packages: yargs: 16.2.0 /core-util-is/1.0.3: - resolution: - { integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== } + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} /cors/2.8.5: - resolution: - { integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== } - engines: { node: '>= 0.10' } + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} dependencies: object-assign: 4.1.1 vary: 1.1.2 dev: false /crc-32/1.2.2: - resolution: - { integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} hasBin: true /crc32-stream/4.0.3: - resolution: - { integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw== } - engines: { node: '>= 10' } + resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} + engines: {node: '>= 10'} dependencies: crc-32: 1.2.2 readable-stream: 3.6.2 /create-require/1.1.1: - resolution: - { integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== } + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} /cron-parser/4.9.0: - resolution: - { integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q== } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==} + engines: {node: '>=12.0.0'} dependencies: luxon: 3.5.0 dev: false /cross-env/7.0.3: - resolution: - { integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== } - engines: { node: '>=10.14', npm: '>=6', yarn: '>=1' } + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} hasBin: true dependencies: cross-spawn: 7.0.6 dev: true /cross-fetch/3.1.5: - resolution: - { integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== } + resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==} dependencies: node-fetch: 2.6.7 transitivePeerDependencies: - encoding /cross-spawn/4.0.2: - resolution: - { integrity: sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA== } + resolution: {integrity: sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==} dependencies: lru-cache: 4.1.5 which: 1.3.1 - /cross-spawn/6.0.5: - resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + /cross-spawn/6.0.6: + resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} engines: {node: '>=4.8'} dependencies: nice-try: 1.0.5 @@ -6405,8 +6224,8 @@ packages: which: 1.3.1 dev: true - /cross-spawn/7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + /cross-spawn/7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} dependencies: path-key: 3.1.1 @@ -6414,80 +6233,69 @@ packages: which: 2.0.2 /crypt/0.0.2: - resolution: - { integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== } + resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} dev: false /d/1.0.2: - resolution: - { integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== } - engines: { node: '>=0.12' } + resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} + engines: {node: '>=0.12'} dependencies: es5-ext: 0.10.64 type: 2.7.3 dev: true /data-view-buffer/1.0.1: - resolution: - { integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 es-errors: 1.3.0 is-data-view: 1.0.1 /data-view-byte-length/1.0.1: - resolution: - { integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 es-errors: 1.3.0 is-data-view: 1.0.1 /data-view-byte-offset/1.0.0: - resolution: - { integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 es-errors: 1.3.0 is-data-view: 1.0.1 /date-fns/2.30.0: - resolution: - { integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== } - engines: { node: '>=0.11' } + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} dependencies: '@babel/runtime': 7.26.0 dev: true /date-format/4.0.14: - resolution: - { integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg== } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} + engines: {node: '>=4.0'} /dayjs/1.11.13: - resolution: - { integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== } + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} dev: true /debug/2.6.9: - resolution: - { integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== } + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} dependencies: ms: 2.0.0 /debug/3.2.7: - resolution: - { integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== } + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} dependencies: ms: 2.1.3 /debug/4.3.4_supports-color@8.1.1: - resolution: - { integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== } - engines: { node: '>=6.0' } + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -6498,10 +6306,9 @@ packages: supports-color: 8.1.1 dev: true - /debug/4.3.7: - resolution: - { integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== } - engines: { node: '>=6.0' } + /debug/4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -6510,10 +6317,9 @@ packages: dependencies: ms: 2.1.3 - /debug/4.3.7_supports-color@8.1.1: - resolution: - { integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== } - engines: { node: '>=6.0' } + /debug/4.4.0_supports-color@8.1.1: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -6524,33 +6330,28 @@ packages: supports-color: 8.1.1 /decamelize/1.2.0: - resolution: - { integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} dev: true /decamelize/4.0.0: - resolution: - { integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== } - engines: { node: '>=10' } + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} dev: true /decamelize/5.0.1: - resolution: - { integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA== } - engines: { node: '>=10' } + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} /decompress-response/6.0.0: - resolution: - { integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== } - engines: { node: '>=10' } + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} dependencies: mimic-response: 3.1.0 /decompress-tar/4.1.1: - resolution: - { integrity: sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== } - engines: { node: '>=4' } + resolution: {integrity: sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==} + engines: {node: '>=4'} dependencies: file-type: 5.2.0 is-stream: 1.1.0 @@ -6558,9 +6359,8 @@ packages: dev: true /decompress-tarbz2/4.1.1: - resolution: - { integrity: sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== } - engines: { node: '>=4' } + resolution: {integrity: sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==} + engines: {node: '>=4'} dependencies: decompress-tar: 4.1.1 file-type: 6.2.0 @@ -6570,9 +6370,8 @@ packages: dev: true /decompress-targz/4.1.1: - resolution: - { integrity: sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== } - engines: { node: '>=4' } + resolution: {integrity: sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==} + engines: {node: '>=4'} dependencies: decompress-tar: 4.1.1 file-type: 5.2.0 @@ -6580,9 +6379,8 @@ packages: dev: true /decompress-unzip/4.0.1: - resolution: - { integrity: sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw== } - engines: { node: '>=4' } + resolution: {integrity: sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==} + engines: {node: '>=4'} dependencies: file-type: 3.9.0 get-stream: 2.3.1 @@ -6591,9 +6389,8 @@ packages: dev: true /decompress/4.2.1: - resolution: - { integrity: sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== } - engines: { node: '>=4' } + resolution: {integrity: sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==} + engines: {node: '>=4'} dependencies: decompress-tar: 4.1.1 decompress-tarbz2: 4.1.1 @@ -6606,33 +6403,30 @@ packages: dev: true /deep-eql/3.0.1: - resolution: - { integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== } - engines: { node: '>=0.12' } + resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==} + engines: {node: '>=0.12'} dependencies: type-detect: 4.1.0 /deep-eql/4.1.4: - resolution: - { integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg== } - engines: { node: '>=6' } + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} + engines: {node: '>=6'} dependencies: type-detect: 4.1.0 dev: true /deep-equal/2.2.3: - resolution: - { integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 + call-bind: 1.0.8 es-get-iterator: 1.1.3 - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.5 is-arguments: 1.1.1 is-array-buffer: 3.0.4 is-date-object: 1.0.5 - is-regex: 1.1.4 + is-regex: 1.2.0 is-shared-array-buffer: 1.0.3 isarray: 2.0.5 object-is: 1.1.6 @@ -6640,47 +6434,40 @@ packages: object.assign: 4.1.5 regexp.prototype.flags: 1.5.3 side-channel: 1.0.6 - which-boxed-primitive: 1.0.2 + which-boxed-primitive: 1.1.0 which-collection: 1.0.2 - which-typed-array: 1.1.15 + which-typed-array: 1.1.16 /deep-extend/0.6.0: - resolution: - { integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== } - engines: { node: '>=4.0.0' } + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} /deep-is/0.1.4: - resolution: - { integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== } + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} /deepmerge/4.3.1: - resolution: - { integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} /default-require-extensions/3.0.1: - resolution: - { integrity: sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==} + engines: {node: '>=8'} dependencies: strip-bom: 4.0.0 dev: true /defaults/1.0.4: - resolution: - { integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== } + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 /defer-to-connect/2.0.1: - resolution: - { integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== } - engines: { node: '>=10' } + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} dev: true /deferred/0.7.11: - resolution: - { integrity: sha512-8eluCl/Blx4YOGwMapBvXRKxHXhA8ejDXYzEaK8+/gtcm8hRMhSLmXSqDmNUKNc/C8HNSmuyyp/hflhqDAvK2A== } + resolution: {integrity: sha512-8eluCl/Blx4YOGwMapBvXRKxHXhA8ejDXYzEaK8+/gtcm8hRMhSLmXSqDmNUKNc/C8HNSmuyyp/hflhqDAvK2A==} dependencies: d: 1.0.2 es5-ext: 0.10.64 @@ -6690,260 +6477,225 @@ packages: dev: true /define-data-property/1.1.4: - resolution: - { integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 es-errors: 1.3.0 - gopd: 1.0.1 + gopd: 1.2.0 /define-lazy-prop/2.0.0: - resolution: - { integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== } - engines: { node: '>=8' } + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} /define-properties/1.2.1: - resolution: - { integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 /delayed-stream/1.0.0: - resolution: - { integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== } - engines: { node: '>=0.4.0' } + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} dev: true /depd/2.0.0: - resolution: - { integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} /destroy/1.2.0: - resolution: - { integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== } - engines: { node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16 } + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} /detect-indent/5.0.0: - resolution: - { integrity: sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== } - engines: { node: '>=4' } + resolution: {integrity: sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==} + engines: {node: '>=4'} /detect-libc/1.0.3: - resolution: - { integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} hasBin: true dev: false /detect-libc/2.0.3: - resolution: - { integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} /detect-newline/2.1.0: - resolution: - { integrity: sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==} + engines: {node: '>=0.10.0'} /detect-port/1.6.1: - resolution: - { integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q== } - engines: { node: '>= 4.0.0' } + resolution: {integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==} + engines: {node: '>= 4.0.0'} hasBin: true dependencies: address: 1.2.2 - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color /dezalgo/1.0.4: - resolution: - { integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== } + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} dependencies: asap: 2.0.6 wrappy: 1.0.2 dev: true /diff/3.5.0: - resolution: - { integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== } - engines: { node: '>=0.3.1' } + resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==} + engines: {node: '>=0.3.1'} dev: true /diff/4.0.2: - resolution: - { integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== } - engines: { node: '>=0.3.1' } + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} /diff/5.0.0: - resolution: - { integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== } - engines: { node: '>=0.3.1' } + resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + engines: {node: '>=0.3.1'} dev: true /diff/5.2.0: - resolution: - { integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== } - engines: { node: '>=0.3.1' } + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} /dir-glob/3.0.1: - resolution: - { integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} dependencies: path-type: 4.0.0 /doctrine/2.1.0: - resolution: - { integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} dependencies: esutils: 2.0.3 /doctrine/3.0.0: - resolution: - { integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 /dotenv-expand/5.1.0: - resolution: - { integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== } + resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} dev: true /dotenv/10.0.0: - resolution: - { integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== } - engines: { node: '>=10' } + resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==} + engines: {node: '>=10'} dev: true - /downlevel-dts/0.11.0: - resolution: {integrity: sha512-vo835pntK7kzYStk7xUHDifiYJvXxVhUapt85uk2AI94gUUAQX9HNRtrcMHNSc3YHJUEHGbYIGsM99uIbgAtxw==} - hasBin: true + /dunder-proto/1.0.0: + resolution: {integrity: sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A==} + engines: {node: '>= 0.4'} dependencies: - semver: 7.6.3 - shelljs: 0.8.5 - typescript: 5.7.0-dev.20241025 + call-bind-apply-helpers: 1.0.0 + es-errors: 1.3.0 + gopd: 1.2.0 /duration/0.2.2: - resolution: - { integrity: sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg== } + resolution: {integrity: sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==} dependencies: d: 1.0.2 es5-ext: 0.10.64 dev: true /eastasianwidth/0.2.0: - resolution: - { integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== } + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} /ecdsa-sig-formatter/1.0.11: - resolution: - { integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== } + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} dependencies: safe-buffer: 5.2.1 /ee-first/1.1.1: - resolution: - { integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== } + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} /effect/2.4.17: - resolution: - { integrity: sha512-laxKfBOFrD9cZoxuQaYlGektelNn1cLRK9/i+lTTjRKDZB9/gRbnIt4XrG95pa+M3MiFlNHzMn/nBsppkmrt1A== } + resolution: {integrity: sha512-laxKfBOFrD9cZoxuQaYlGektelNn1cLRK9/i+lTTjRKDZB9/gRbnIt4XrG95pa+M3MiFlNHzMn/nBsppkmrt1A==} dev: false /ejs/3.1.10: - resolution: - { integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} hasBin: true dependencies: jake: 10.9.2 - /electron-to-chromium/1.5.45: - resolution: {integrity: sha512-vOzZS6uZwhhbkZbcRyiy99Wg+pYFV5hk+5YaECvx0+Z31NR3Tt5zS6dze2OepT6PCTzVzT0dIJItti+uAW5zmw==} + /electron-to-chromium/1.5.71: + resolution: {integrity: sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA==} dev: true /emoji-regex/7.0.3: - resolution: - { integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== } + resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} dev: true /emoji-regex/8.0.0: - resolution: - { integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== } + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} /emoji-regex/9.2.2: - resolution: - { integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== } + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} /encodeurl/1.0.2: - resolution: - { integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} /encodeurl/2.0.0: - resolution: - { integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} /end-of-stream/1.4.4: - resolution: - { integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== } + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 /entities/3.0.1: - resolution: - { integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== } - engines: { node: '>=0.12' } + resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} + engines: {node: '>=0.12'} /error-ex/1.3.2: - resolution: - { integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== } + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 dev: true - /es-abstract/1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + /es-abstract/1.23.5: + resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 arraybuffer.prototype.slice: 1.0.3 available-typed-arrays: 1.0.7 - call-bind: 1.0.7 + call-bind: 1.0.8 data-view-buffer: 1.0.1 data-view-byte-length: 1.0.1 data-view-byte-offset: 1.0.0 - es-define-property: 1.0.0 + es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-set-tostringtag: 2.0.3 - es-to-primitive: 1.2.1 + es-to-primitive: 1.3.0 function.prototype.name: 1.1.6 - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.5 get-symbol-description: 1.0.2 globalthis: 1.0.4 - gopd: 1.0.1 + gopd: 1.2.0 has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 + has-proto: 1.2.0 + has-symbols: 1.1.0 hasown: 2.0.2 internal-slot: 1.0.7 is-array-buffer: 3.0.4 is-callable: 1.2.7 is-data-view: 1.0.1 is-negative-zero: 2.0.3 - is-regex: 1.1.4 + is-regex: 1.2.0 is-shared-array-buffer: 1.0.3 - is-string: 1.0.7 + is-string: 1.1.0 is-typed-array: 1.1.13 is-weakref: 1.0.2 object-inspect: 1.13.3 @@ -6960,69 +6712,59 @@ packages: typed-array-byte-offset: 1.0.3 typed-array-length: 1.0.7 unbox-primitive: 1.0.2 - which-typed-array: 1.1.15 + which-typed-array: 1.1.16 - /es-define-property/1.0.0: - resolution: - { integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== } - engines: { node: '>= 0.4' } - dependencies: - get-intrinsic: 1.2.4 + /es-define-property/1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} /es-errors/1.3.0: - resolution: - { integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} /es-get-iterator/1.1.3: - resolution: - { integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== } + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 + call-bind: 1.0.8 + get-intrinsic: 1.2.5 + has-symbols: 1.1.0 is-arguments: 1.1.1 is-map: 2.0.3 is-set: 2.0.3 - is-string: 1.0.7 + is-string: 1.1.0 isarray: 2.0.5 stop-iteration-iterator: 1.0.0 /es-object-atoms/1.0.0: - resolution: - { integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 /es-set-tostringtag/2.0.3: - resolution: - { integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.5 has-tostringtag: 1.0.2 hasown: 2.0.2 /es-shim-unscopables/1.0.2: - resolution: - { integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== } + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: hasown: 2.0.2 - /es-to-primitive/1.2.1: - resolution: - { integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== } - engines: { node: '>= 0.4' } + /es-to-primitive/1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 - is-symbol: 1.0.4 + is-symbol: 1.1.0 /es5-ext/0.10.64: - resolution: - { integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} + engines: {node: '>=0.10'} requiresBuild: true dependencies: es6-iterator: 2.0.3 @@ -7032,13 +6774,11 @@ packages: dev: true /es6-error/4.1.1: - resolution: - { integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== } + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} dev: true /es6-iterator/2.0.3: - resolution: - { integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== } + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} dependencies: d: 1.0.2 es5-ext: 0.10.64 @@ -7046,9 +6786,8 @@ packages: dev: true /es6-set/0.1.6: - resolution: - { integrity: sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw== } - engines: { node: '>=0.12' } + resolution: {integrity: sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==} + engines: {node: '>=0.12'} dependencies: d: 1.0.2 es5-ext: 0.10.64 @@ -7059,17 +6798,15 @@ packages: dev: true /es6-symbol/3.1.4: - resolution: - { integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== } - engines: { node: '>=0.12' } + resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} + engines: {node: '>=0.12'} dependencies: d: 1.0.2 ext: 1.7.0 dev: true /es6-weak-map/2.0.3: - resolution: - { integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== } + resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} dependencies: d: 1.0.2 es5-ext: 0.10.64 @@ -7078,32 +6815,26 @@ packages: dev: true /escalade/3.2.0: - resolution: - { integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== } - engines: { node: '>=6' } + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} /escape-html/1.0.3: - resolution: - { integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== } + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} /escape-string-regexp/1.0.5: - resolution: - { integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} /escape-string-regexp/2.0.0: - resolution: - { integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== } - engines: { node: '>=8' } + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} /escape-string-regexp/4.0.0: - resolution: - { integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== } - engines: { node: '>=10' } + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} /eslint-config-prettier/8.3.0_eslint@8.57.1: - resolution: - { integrity: sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== } + resolution: {integrity: sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==} hasBin: true peerDependencies: eslint: '>=7.0.0' @@ -7111,17 +6842,15 @@ packages: eslint: 8.57.1 /eslint-import-resolver-node/0.3.9: - resolution: - { integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== } + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 is-core-module: 2.15.1 resolve: 1.22.8 /eslint-module-utils/2.12.0_eslint@8.57.1: - resolution: - { integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg== } - engines: { node: '>=4' } + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + engines: {node: '>=4'} peerDependencies: eslint: '*' peerDependenciesMeta: @@ -7132,9 +6861,8 @@ packages: eslint: 8.57.1 /eslint-plugin-import/2.31.0_eslint@8.57.1: - resolution: - { integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A== } - engines: { node: '>=4' } + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} + engines: {node: '>=4'} peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 dependencies: @@ -7160,9 +6888,8 @@ packages: tsconfig-paths: 3.15.0 /eslint-plugin-prettier/3.4.0_vlkgbgdgpnhgz7gjlll7w26l7y: - resolution: - { integrity: sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw== } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw==} + engines: {node: '>=6.0.0'} peerDependencies: eslint: '>=5.0.0' eslint-config-prettier: '*' @@ -7177,9 +6904,8 @@ packages: prettier-linter-helpers: 1.0.0 /eslint-plugin-unicorn/44.0.2_eslint@8.57.1: - resolution: - { integrity: sha512-GLIDX1wmeEqpGaKcnMcqRvMVsoabeF0Ton0EX4Th5u6Kmf7RM9WBl705AXFEsns56ESkEs0uyelLuUTvz9Tr0w== } - engines: { node: '>=14.18' } + resolution: {integrity: sha512-GLIDX1wmeEqpGaKcnMcqRvMVsoabeF0Ton0EX4Th5u6Kmf7RM9WBl705AXFEsns56ESkEs0uyelLuUTvz9Tr0w==} + engines: {node: '>=14.18'} peerDependencies: eslint: '>=8.23.1' dependencies: @@ -7201,33 +6927,29 @@ packages: dev: true /eslint-scope/5.1.1: - resolution: - { integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 /eslint-scope/7.2.2: - resolution: - { integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 /eslint-utils/1.4.3: - resolution: - { integrity: sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== } - engines: { node: '>=6' } + resolution: {integrity: sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==} + engines: {node: '>=6'} dependencies: eslint-visitor-keys: 1.3.0 dev: true /eslint-utils/3.0.0_eslint@8.57.1: - resolution: - { integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== } - engines: { node: ^10.0.0 || ^12.0.0 || >= 14.0.0 } + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: @@ -7236,26 +6958,22 @@ packages: dev: true /eslint-visitor-keys/1.3.0: - resolution: - { integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== } - engines: { node: '>=4' } + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} dev: true /eslint-visitor-keys/2.1.0: - resolution: - { integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} dev: true /eslint-visitor-keys/3.4.3: - resolution: - { integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} /eslint/6.8.0: - resolution: - { integrity: sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== } - engines: { node: ^8.10.0 || ^10.13.0 || >=11.10.1 } + resolution: {integrity: sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true dependencies: @@ -7263,7 +6981,7 @@ packages: ajv: 6.12.6 chalk: 2.4.2 cross-spawn: 6.0.6 - debug: 4.3.7 + debug: 4.4.0 doctrine: 3.0.0 eslint-scope: 5.1.1 eslint-utils: 1.4.3 @@ -7301,9 +7019,8 @@ packages: dev: true /eslint/8.57.1: - resolution: - { integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true dependencies: @@ -7314,11 +7031,11 @@ packages: '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 + '@ungap/structured-clone': 1.2.1 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.3.7 + debug: 4.4.0 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -7349,18 +7066,16 @@ packages: - supports-color /esniff/1.1.3: - resolution: - { integrity: sha512-SLBLpfE7xWgF/HbzhVuAwqnJDRqSCNZqcqaIMVm+f+PbTp1kFRWu6BuT83SATb4Tp+ovr+S+u7vDH7/UErAOkw== } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-SLBLpfE7xWgF/HbzhVuAwqnJDRqSCNZqcqaIMVm+f+PbTp1kFRWu6BuT83SATb4Tp+ovr+S+u7vDH7/UErAOkw==} + engines: {node: '>=0.10'} dependencies: d: 1.0.2 es5-ext: 0.10.64 dev: true /esniff/2.0.1: - resolution: - { integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} + engines: {node: '>=0.10'} dependencies: d: 1.0.2 es5-ext: 0.10.64 @@ -7369,9 +7084,8 @@ packages: dev: true /espree/6.2.1: - resolution: - { integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==} + engines: {node: '>=6.0.0'} dependencies: acorn: 7.4.1 acorn-jsx: 5.3.2_acorn@7.4.1 @@ -7379,87 +7093,73 @@ packages: dev: true /espree/9.6.1: - resolution: - { integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.14.0 acorn-jsx: 5.3.2_acorn@8.14.0 eslint-visitor-keys: 3.4.3 /esprima/4.0.1: - resolution: - { integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== } - engines: { node: '>=4' } + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} hasBin: true /esquery/1.6.0: - resolution: - { integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 /esrecurse/4.3.0: - resolution: - { integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 /essentials/1.2.0: - resolution: - { integrity: sha512-kP/j7Iw7KeNE8b/o7+tr9uX2s1wegElGOoGZ2Xm35qBr4BbbEcH3/bxR2nfH9l9JANCq9AUrvKw+gRuHtZp0HQ== } + resolution: {integrity: sha512-kP/j7Iw7KeNE8b/o7+tr9uX2s1wegElGOoGZ2Xm35qBr4BbbEcH3/bxR2nfH9l9JANCq9AUrvKw+gRuHtZp0HQ==} dependencies: uni-global: 1.0.0 dev: true /estraverse/4.3.0: - resolution: - { integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} /estraverse/5.3.0: - resolution: - { integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} /esutils/2.0.3: - resolution: - { integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} /etag/1.8.1: - resolution: - { integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} /event-emitter/0.3.5: - resolution: - { integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== } + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} dependencies: d: 1.0.2 es5-ext: 0.10.64 dev: true /eventemitter3/3.1.2: - resolution: - { integrity: sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== } + resolution: {integrity: sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==} /events/1.1.1: - resolution: - { integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw== } - engines: { node: '>=0.4.x' } + resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==} + engines: {node: '>=0.4.x'} /events/3.3.0: - resolution: - { integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== } - engines: { node: '>=0.8.x' } + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} /execa/2.1.0: - resolution: - { integrity: sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== } - engines: { node: ^8.12.0 || >=9.7.0 } + resolution: {integrity: sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==} + engines: {node: ^8.12.0 || >=9.7.0} dependencies: cross-spawn: 7.0.6 get-stream: 5.2.0 @@ -7473,9 +7173,8 @@ packages: dev: false /execa/5.1.1: - resolution: - { integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== } - engines: { node: '>=10' } + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} dependencies: cross-spawn: 7.0.6 get-stream: 6.0.1 @@ -7488,19 +7187,16 @@ packages: strip-final-newline: 2.0.0 /expand-template/2.0.3: - resolution: - { integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== } - engines: { node: '>=6' } + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} /express-unless/2.1.3: - resolution: - { integrity: sha512-wj4tLMyCVYuIIKHGt0FhCtIViBcwzWejX0EjNxveAa6dG+0XBCQhMbx+PnkLkFCxLC69qoFrxds4pIyL88inaQ== } + resolution: {integrity: sha512-wj4tLMyCVYuIIKHGt0FhCtIViBcwzWejX0EjNxveAa6dG+0XBCQhMbx+PnkLkFCxLC69qoFrxds4pIyL88inaQ==} dev: false - /express/4.21.1: - resolution: - { integrity: sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ== } - engines: { node: '>= 0.10.0' } + /express/4.21.2: + resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} + engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 array-flatten: 1.1.1 @@ -7521,7 +7217,7 @@ packages: methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 - path-to-regexp: 0.1.10 + path-to-regexp: 0.1.12 proxy-addr: 2.0.7 qs: 6.13.0 range-parser: 1.2.1 @@ -7535,45 +7231,40 @@ packages: vary: 1.1.2 /ext-list/2.2.2: - resolution: - { integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==} + engines: {node: '>=0.10.0'} dependencies: mime-db: 1.53.0 dev: true /ext-name/5.0.0: - resolution: - { integrity: sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== } - engines: { node: '>=4' } + resolution: {integrity: sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==} + engines: {node: '>=4'} dependencies: ext-list: 2.2.2 sort-keys-length: 1.0.1 dev: true /ext/1.7.0: - resolution: - { integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== } + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} dependencies: type: 2.7.3 dev: true /external-editor/3.1.0: - resolution: - { integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== } - engines: { node: '>=4' } + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 /extract-zip/2.0.1: - resolution: - { integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== } - engines: { node: '>= 10.17.0' } + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} hasBin: true dependencies: - debug: 4.3.7 + debug: 4.4.0 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -7582,19 +7273,17 @@ packages: - supports-color /faker/5.1.0: - resolution: - { integrity: sha512-RrWKFSSA/aNLP0g3o2WW1Zez7/MnMr7xkiZmoCfAGZmdkDQZ6l2KtuXHN5XjdvpRjDl8+3vf+Rrtl06Z352+Mw== } + resolution: {integrity: sha512-RrWKFSSA/aNLP0g3o2WW1Zez7/MnMr7xkiZmoCfAGZmdkDQZ6l2KtuXHN5XjdvpRjDl8+3vf+Rrtl06Z352+Mw==} dev: true /fancy-test/3.0.16: - resolution: - { integrity: sha512-y1xZFpyYbE2TMiT+agOW2Emv8gr73zvDrKKbcXc8L+gMyIVJFn71cc4ICfzu2zEXjHirpHpdDJN0JBX99wwDXQ== } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-y1xZFpyYbE2TMiT+agOW2Emv8gr73zvDrKKbcXc8L+gMyIVJFn71cc4ICfzu2zEXjHirpHpdDJN0JBX99wwDXQ==} + engines: {node: '>=18.0.0'} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. dependencies: '@types/chai': 4.2.18 '@types/lodash': 4.17.13 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/sinon': 10.0.0 lodash: 4.17.21 mock-stdin: 1.0.0 @@ -7605,24 +7294,21 @@ packages: - supports-color dev: true - /fast-check/3.22.0: - resolution: {integrity: sha512-8HKz3qXqnHYp/VCNn2qfjHdAdcI8zcSqOyX64GOMukp7SL2bfzfeDKjSd+UyECtejccaZv3LcvZTm9YDD22iCQ==} + /fast-check/3.23.1: + resolution: {integrity: sha512-u/MudsoQEgBUZgR5N1v87vEgybeVYus9VnDVaIkxkkGP2jt54naghQ3PCQHJiogS8U/GavZCUPFfx3Xkp+NaHw==} engines: {node: '>=8.0.0'} dependencies: pure-rand: 6.1.0 /fast-deep-equal/3.1.3: - resolution: - { integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== } + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} /fast-diff/1.3.0: - resolution: - { integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== } + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} /fast-glob/3.3.2: - resolution: - { integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== } - engines: { node: '>=8.6.0' } + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -7631,66 +7317,55 @@ packages: micromatch: 4.0.8 /fast-json-stable-stringify/2.1.0: - resolution: - { integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== } + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} /fast-levenshtein/2.0.6: - resolution: - { integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== } + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} /fast-safe-stringify/2.1.1: - resolution: - { integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== } + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} dev: true /fast-uri/3.0.3: - resolution: - { integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw== } + resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} /fastest-levenshtein/1.0.16: - resolution: - { integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== } - engines: { node: '>= 4.9.1' } + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} dev: true /fastq/1.17.1: - resolution: - { integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== } + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 /fd-slicer/1.1.0: - resolution: - { integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== } + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} dependencies: pend: 1.2.0 /figures/3.2.0: - resolution: - { integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} dependencies: escape-string-regexp: 1.0.5 /file-entry-cache/5.0.1: - resolution: - { integrity: sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== } - engines: { node: '>=4' } + resolution: {integrity: sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==} + engines: {node: '>=4'} dependencies: flat-cache: 2.0.1 dev: true /file-entry-cache/6.0.1: - resolution: - { integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== } - engines: { node: ^10.12.0 || >=12.0.0 } + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.2.0 /file-type/16.5.4: - resolution: - { integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==} + engines: {node: '>=10'} dependencies: readable-web-to-node-stream: 3.0.2 strtok3: 6.3.0 @@ -7698,45 +7373,38 @@ packages: dev: true /file-type/3.9.0: - resolution: - { integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==} + engines: {node: '>=0.10.0'} dev: true /file-type/4.4.0: - resolution: - { integrity: sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ== } - engines: { node: '>=4' } + resolution: {integrity: sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==} + engines: {node: '>=4'} dev: true /file-type/5.2.0: - resolution: - { integrity: sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ== } - engines: { node: '>=4' } + resolution: {integrity: sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==} + engines: {node: '>=4'} dev: true /file-type/6.2.0: - resolution: - { integrity: sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== } - engines: { node: '>=4' } + resolution: {integrity: sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==} + engines: {node: '>=4'} dev: true /filelist/1.0.4: - resolution: - { integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== } + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: minimatch: 5.1.6 /filename-reserved-regex/2.0.0: - resolution: - { integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== } - engines: { node: '>=4' } + resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==} + engines: {node: '>=4'} dev: true /filenamify/4.3.0: - resolution: - { integrity: sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==} + engines: {node: '>=8'} dependencies: filename-reserved-regex: 2.0.0 strip-outer: 1.0.1 @@ -7744,22 +7412,19 @@ packages: dev: true /filesize/8.0.7: - resolution: - { integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== } - engines: { node: '>= 0.4.0' } + resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} + engines: {node: '>= 0.4.0'} dev: true /fill-range/7.1.1: - resolution: - { integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 /finalhandler/1.3.1: - resolution: - { integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} + engines: {node: '>= 0.8'} dependencies: debug: 2.6.9 encodeurl: 2.0.0 @@ -7770,9 +7435,8 @@ packages: unpipe: 1.0.0 /find-cache-dir/3.3.2: - resolution: - { integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== } - engines: { node: '>=8' } + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} dependencies: commondir: 1.0.1 make-dir: 3.1.0 @@ -7780,13 +7444,11 @@ packages: dev: true /find-my-way-ts/0.1.5: - resolution: - { integrity: sha512-4GOTMrpGQVzsCH2ruUn2vmwzV/02zF4q+ybhCIrw/Rkt3L8KWcycdC6aJMctJzwN4fXD4SD5F/4B9Sksh5rE0A== } + resolution: {integrity: sha512-4GOTMrpGQVzsCH2ruUn2vmwzV/02zF4q+ybhCIrw/Rkt3L8KWcycdC6aJMctJzwN4fXD4SD5F/4B9Sksh5rE0A==} dev: false /find-requires/1.0.0: - resolution: - { integrity: sha512-UME7hNwBfzeISSFQcBEDemEEskpOjI/shPrpJM5PI4DSdn6hX0dmz+2dL70blZER2z8tSnTRL+2rfzlYgtbBoQ== } + resolution: {integrity: sha512-UME7hNwBfzeISSFQcBEDemEEskpOjI/shPrpJM5PI4DSdn6hX0dmz+2dL70blZER2z8tSnTRL+2rfzlYgtbBoQ==} hasBin: true dependencies: es5-ext: 0.10.64 @@ -7794,33 +7456,29 @@ packages: dev: true /find-up/3.0.0: - resolution: - { integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== } - engines: { node: '>=6' } + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} dependencies: locate-path: 3.0.0 /find-up/4.1.0: - resolution: - { integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} dependencies: locate-path: 5.0.0 path-exists: 4.0.0 dev: true /find-up/5.0.0: - resolution: - { integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== } - engines: { node: '>=10' } + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} dependencies: locate-path: 6.0.0 path-exists: 4.0.0 /flat-cache/2.0.1: - resolution: - { integrity: sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== } - engines: { node: '>=4' } + resolution: {integrity: sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==} + engines: {node: '>=4'} dependencies: flatted: 2.0.2 rimraf: 2.6.3 @@ -7828,32 +7486,28 @@ packages: dev: true /flat-cache/3.2.0: - resolution: - { integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== } - engines: { node: ^10.12.0 || >=12.0.0 } + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flatted: 3.3.2 keyv: 4.5.4 rimraf: 3.0.2 /flat/5.0.2: - resolution: - { integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== } + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true dev: true /flatted/2.0.2: - resolution: - { integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== } + resolution: {integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==} dev: true - /flatted/3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + /flatted/3.3.2: + resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} /follow-redirects/1.15.9: - resolution: - { integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} peerDependencies: debug: '*' peerDependenciesMeta: @@ -7861,32 +7515,28 @@ packages: optional: true /for-each/0.3.3: - resolution: - { integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== } + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 /foreground-child/2.0.0: - resolution: - { integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} + engines: {node: '>=8.0.0'} dependencies: cross-spawn: 7.0.6 signal-exit: 3.0.7 dev: true /foreground-child/3.3.0: - resolution: - { integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== } - engines: { node: '>=14' } + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} dependencies: cross-spawn: 7.0.6 signal-exit: 4.1.0 /form-data/4.0.1: - resolution: - { integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw== } - engines: { node: '>= 6' } + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 @@ -7894,8 +7544,7 @@ packages: dev: true /formidable/2.1.2: - resolution: - { integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g== } + resolution: {integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==} dependencies: dezalgo: 1.0.4 hexoid: 1.0.0 @@ -7904,60 +7553,51 @@ packages: dev: true /forwarded/0.2.0: - resolution: - { integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} /fp-ts/2.16.9: - resolution: - { integrity: sha512-+I2+FnVB+tVaxcYyQkHUq7ZdKScaBlX53A41mxQtpIccsfyv8PzdzP7fzp2AY832T4aoK6UZ5WRX/ebGd8uZuQ== } + resolution: {integrity: sha512-+I2+FnVB+tVaxcYyQkHUq7ZdKScaBlX53A41mxQtpIccsfyv8PzdzP7fzp2AY832T4aoK6UZ5WRX/ebGd8uZuQ==} dev: false /fresh/0.5.2: - resolution: - { integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} /fromentries/1.3.2: - resolution: - { integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== } + resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} dev: true /fs-constants/1.0.0: - resolution: - { integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== } + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} /fs-extra/10.1.0: - resolution: - { integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== } - engines: { node: '>=12' } + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 /fs-extra/11.2.0: - resolution: - { integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== } - engines: { node: '>=14.14' } + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 /fs-extra/8.1.0: - resolution: - { integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== } - engines: { node: '>=6 <7 || >=8' } + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 /fs-extra/9.1.0: - resolution: - { integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== } - engines: { node: '>=10' } + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.11 @@ -7965,21 +7605,18 @@ packages: universalify: 2.0.1 /fs-minipass/2.1.0: - resolution: - { integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== } - engines: { node: '>= 8' } + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} dependencies: minipass: 3.3.6 dev: true /fs.realpath/1.0.0: - resolution: - { integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== } + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} /fs2/0.3.15: - resolution: - { integrity: sha512-T684iG2bR/3g5byqXvYYnJyqkXA7MQdlJx5DvCe0BJ5CH9aMRRc4C11bl75D1MnypvERdJ7Cft5BFpU/eClCMw== } - engines: { node: '>=6' } + resolution: {integrity: sha512-T684iG2bR/3g5byqXvYYnJyqkXA7MQdlJx5DvCe0BJ5CH9aMRRc4C11bl75D1MnypvERdJ7Cft5BFpU/eClCMw==} + engines: {node: '>=6'} dependencies: d: 1.0.2 deferred: 0.7.11 @@ -7992,139 +7629,121 @@ packages: dev: true /fsevents/2.3.2: - resolution: - { integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== } - engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true dev: false optional: true /fsevents/2.3.3: - resolution: - { integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== } - engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true optional: true /function-bind/1.1.2: - resolution: - { integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== } + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} /function.prototype.name/1.1.6: - resolution: - { integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.5 functions-have-names: 1.2.3 /functional-red-black-tree/1.0.1: - resolution: - { integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== } + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} dev: true /functions-have-names/1.2.3: - resolution: - { integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== } + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} /gensync/1.0.0-beta.2: - resolution: - { integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} dev: true /get-caller-file/2.0.5: - resolution: - { integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== } - engines: { node: 6.* || 8.* || >= 10.* } + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} /get-func-name/2.0.2: - resolution: - { integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== } + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - /get-intrinsic/1.2.4: - resolution: - { integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== } - engines: { node: '>= 0.4' } + /get-intrinsic/1.2.5: + resolution: {integrity: sha512-Y4+pKa7XeRUPWFNvOOYHkRYrfzW07oraURSvjDmRVOJ748OrVmeXtpE4+GCEHncjCjkTxPNRt8kEbxDhsn6VTg==} + engines: {node: '>= 0.4'} dependencies: + call-bind-apply-helpers: 1.0.0 + dunder-proto: 1.0.0 + es-define-property: 1.0.1 es-errors: 1.3.0 function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 + gopd: 1.2.0 + has-symbols: 1.1.0 hasown: 2.0.2 /get-package-type/0.1.0: - resolution: - { integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} /get-stdin/6.0.0: - resolution: - { integrity: sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== } - engines: { node: '>=4' } + resolution: {integrity: sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==} + engines: {node: '>=4'} dev: true /get-stdin/8.0.0: - resolution: - { integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== } - engines: { node: '>=10' } + resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==} + engines: {node: '>=10'} dev: true /get-stream/2.3.1: - resolution: - { integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==} + engines: {node: '>=0.10.0'} dependencies: object-assign: 4.1.1 pinkie-promise: 2.0.1 dev: true /get-stream/5.2.0: - resolution: - { integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} dependencies: pump: 3.0.2 /get-stream/6.0.1: - resolution: - { integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== } - engines: { node: '>=10' } + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} /get-symbol-description/1.0.2: - resolution: - { integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.5 /github-from-package/0.0.0: - resolution: - { integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== } + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} /glob-parent/5.1.2: - resolution: - { integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== } - engines: { node: '>= 6' } + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 /glob-parent/6.0.2: - resolution: - { integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 /glob/10.4.5: - resolution: - { integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== } + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true dependencies: foreground-child: 3.3.0 @@ -8135,8 +7754,7 @@ packages: path-scurry: 1.11.1 /glob/7.2.0: - resolution: - { integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== } + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 @@ -8148,8 +7766,7 @@ packages: dev: true /glob/7.2.3: - resolution: - { integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== } + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 @@ -8160,9 +7777,8 @@ packages: path-is-absolute: 1.0.1 /global-prefix/3.0.0: - resolution: - { integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== } - engines: { node: '>=6' } + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} dependencies: ini: 1.3.8 kind-of: 6.0.3 @@ -8170,38 +7786,33 @@ packages: dev: true /globals/11.12.0: - resolution: - { integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== } - engines: { node: '>=4' } + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} dev: true /globals/12.4.0: - resolution: - { integrity: sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==} + engines: {node: '>=8'} dependencies: type-fest: 0.8.1 dev: true /globals/13.24.0: - resolution: - { integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} dependencies: type-fest: 0.20.2 /globalthis/1.0.4: - resolution: - { integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 - gopd: 1.0.1 + gopd: 1.2.0 /globby/11.1.0: - resolution: - { integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== } - engines: { node: '>=10' } + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -8210,16 +7821,13 @@ packages: merge2: 1.4.1 slash: 3.0.0 - /gopd/1.0.1: - resolution: - { integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== } - dependencies: - get-intrinsic: 1.2.4 + /gopd/1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} /got/11.8.6: - resolution: - { integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== } - engines: { node: '>=10.19.0' } + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} dependencies: '@sindresorhus/is': 4.6.0 '@szmarczak/http-timer': 4.0.6 @@ -8235,24 +7843,21 @@ packages: dev: true /graceful-fs/4.2.11: - resolution: - { integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== } + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} /graphemer/1.4.0: - resolution: - { integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== } + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} /graphlib/2.1.8: - resolution: - { integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== } + resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} dependencies: lodash: 4.17.21 dev: true - /graphology-types/0.24.7: - resolution: {integrity: sha512-tdcqOOpwArNjEr0gNQKCXwaNCWnQJrog14nJNQPeemcLnXQUUGrsCWpWkVKt46zLjcS6/KGoayeJfHHyPDlvwA==} + /graphology-types/0.24.8: + resolution: {integrity: sha512-hDRKYXa8TsoZHjgEaysSRyPdT6uB78Ci8WnjgbStlQysz7xR52PInxNsmnB7IBOM1BhikxkNyCVEFgmPKnpx3Q==} - /graphology/0.25.4_graphology-types@0.24.7: + /graphology/0.25.4_graphology-types@0.24.8: resolution: {integrity: sha512-33g0Ol9nkWdD6ulw687viS8YJQBxqG5LWII6FI6nul0pq6iM2t5EKquOTFDbyTblRB3O9I+7KX4xI8u5ffekAQ==} peerDependencies: graphology-types: '>=0.24.0' @@ -8261,10 +7866,9 @@ packages: graphology-types: 0.24.8 obliterator: 2.0.4 - /graphql-scalars/1.23.0_graphql@16.9.0: - resolution: - { integrity: sha512-YTRNcwitkn8CqYcleKOx9IvedA8JIERn8BRq21nlKgOr4NEcTaWEG0sT+H92eF3ALTFbPgsqfft4cw+MGgv0Gg== } - engines: { node: '>=10' } + /graphql-scalars/1.24.0_graphql@16.9.0: + resolution: {integrity: sha512-olbFN39m0XsHHESACUdd7jWU/lGxMMS1B7NZ8XqpqhKZrjBxzeGYAnQ4Ax//huYds771wb7gCznA+65QDuUa+g==} + engines: {node: '>=10'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: @@ -8273,8 +7877,7 @@ packages: dev: false /graphql-subscriptions/2.0.0_graphql@16.9.0: - resolution: - { integrity: sha512-s6k2b8mmt9gF9pEfkxsaO1lTxaySfKoEJzEfmwguBbQ//Oq23hIXCfR1hm4kdh5hnR20RdwB+s3BCb+0duHSZA== } + resolution: {integrity: sha512-s6k2b8mmt9gF9pEfkxsaO1lTxaySfKoEJzEfmwguBbQ//Oq23hIXCfR1hm4kdh5hnR20RdwB+s3BCb+0duHSZA==} peerDependencies: graphql: ^15.7.2 || ^16.0.0 dependencies: @@ -8283,9 +7886,8 @@ packages: dev: false /graphql-tag/2.12.6_graphql@16.9.0: - resolution: - { integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== } - engines: { node: '>=10' } + resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==} + engines: {node: '>=10'} peerDependencies: graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: @@ -8293,100 +7895,85 @@ packages: tslib: 2.8.1 /graphql/16.9.0: - resolution: - { integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw== } - engines: { node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0 } + resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} /has-bigints/1.0.2: - resolution: - { integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== } + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} /has-flag/3.0.0: - resolution: - { integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== } - engines: { node: '>=4' } + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} /has-flag/4.0.0: - resolution: - { integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} /has-property-descriptors/1.0.2: - resolution: - { integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== } + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 - /has-proto/1.0.3: - resolution: - { integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== } - engines: { node: '>= 0.4' } + /has-proto/1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + dependencies: + dunder-proto: 1.0.0 - /has-symbols/1.0.3: - resolution: - { integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== } - engines: { node: '>= 0.4' } + /has-symbols/1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} /has-tostringtag/1.0.2: - resolution: - { integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.3 + has-symbols: 1.1.0 /hasha/5.2.2: - resolution: - { integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==} + engines: {node: '>=8'} dependencies: is-stream: 2.0.1 type-fest: 0.8.1 dev: true /hasown/2.0.2: - resolution: - { integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 /he/1.2.0: - resolution: - { integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== } + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true dev: true /hexoid/1.0.0: - resolution: - { integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== } - engines: { node: '>=8' } + resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} + engines: {node: '>=8'} dev: true /hoist-non-react-statics/3.3.2: - resolution: - { integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== } + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} dependencies: react-is: 16.13.1 /hosted-git-info/2.8.9: - resolution: - { integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== } + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true /html-escaper/2.0.2: - resolution: - { integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== } + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true /http-cache-semantics/4.1.1: - resolution: - { integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== } + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} dev: true /http-errors/2.0.0: - resolution: - { integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} dependencies: depd: 2.0.0 inherits: 2.0.4 @@ -8395,146 +7982,124 @@ packages: toidentifier: 1.0.1 /http-proxy-agent/7.0.2: - resolution: - { integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== } - engines: { node: '>= 14' } + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} dependencies: - agent-base: 7.1.1 - debug: 4.3.7 + agent-base: 7.1.3 + debug: 4.4.0 transitivePeerDependencies: - supports-color dev: false /http2-wrapper/1.0.3: - resolution: - { integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== } - engines: { node: '>=10.19.0' } + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} dependencies: quick-lru: 5.1.1 resolve-alpn: 1.2.1 dev: true /https-proxy-agent/5.0.1: - resolution: - { integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== } - engines: { node: '>= 6' } + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color /https-proxy-agent/5.0.1_supports-color@8.1.1: - resolution: - { integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== } - engines: { node: '>= 6' } + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} dependencies: agent-base: 6.0.2_supports-color@8.1.1 - debug: 4.3.7_supports-color@8.1.1 + debug: 4.4.0_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true - /https-proxy-agent/7.0.5: - resolution: - { integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== } - engines: { node: '>= 14' } + /https-proxy-agent/7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} dependencies: - agent-base: 7.1.1 - debug: 4.3.7 + agent-base: 7.1.3 + debug: 4.4.0 transitivePeerDependencies: - supports-color dev: false /human-signals/2.1.0: - resolution: - { integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== } - engines: { node: '>=10.17.0' } + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} /hyperlinker/1.0.0: - resolution: - { integrity: sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ== } - engines: { node: '>=4' } + resolution: {integrity: sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==} + engines: {node: '>=4'} /iconv-lite/0.4.24: - resolution: - { integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 /ieee754/1.1.13: - resolution: - { integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== } + resolution: {integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==} /ieee754/1.2.1: - resolution: - { integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== } + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} /ignore/4.0.6: - resolution: - { integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== } - engines: { node: '>= 4' } + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} + engines: {node: '>= 4'} dev: true /ignore/5.3.2: - resolution: - { integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== } - engines: { node: '>= 4' } + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} /immediate/3.0.6: - resolution: - { integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== } + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} /import-fresh/3.3.0: - resolution: - { integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== } - engines: { node: '>=6' } + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 /imurmurhash/0.1.4: - resolution: - { integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== } - engines: { node: '>=0.8.19' } + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} /indent-string/4.0.0: - resolution: - { integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} /inflected/2.1.0: - resolution: - { integrity: sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w== } + resolution: {integrity: sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==} dev: false /inflight/1.0.6: - resolution: - { integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== } + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. dependencies: once: 1.4.0 wrappy: 1.0.2 /inherits/2.0.4: - resolution: - { integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== } + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} /ini/1.3.8: - resolution: - { integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== } + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} /ini/4.1.3: - resolution: - { integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg== } - engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: false /ink-select-input/4.2.2_ink@3.2.0+react@17.0.2: - resolution: - { integrity: sha512-E5AS2Vnd4CSzEa7Rm+hG47wxRQo1ASfh4msKxO7FHmn/ym+GKSSsFIfR+FonqjKNDPXYJClw8lM47RdN3Pi+nw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-E5AS2Vnd4CSzEa7Rm+hG47wxRQo1ASfh4msKxO7FHmn/ym+GKSSsFIfR+FonqjKNDPXYJClw8lM47RdN3Pi+nw==} + engines: {node: '>=10'} peerDependencies: ink: ^3.0.5 react: ^16.5.2 || ^17.0.0 @@ -8546,9 +8111,8 @@ packages: react: 17.0.2 /ink-spinner/4.0.3_ink@3.2.0+react@17.0.2: - resolution: - { integrity: sha512-uJ4nbH00MM9fjTJ5xdw0zzvtXMkeGb0WV6dzSWvFv2/+ks6FIhpkt+Ge/eLdh0Ah6Vjw5pLMyNfoHQpRDRVFbQ== } - engines: { node: '>=10' } + resolution: {integrity: sha512-uJ4nbH00MM9fjTJ5xdw0zzvtXMkeGb0WV6dzSWvFv2/+ks6FIhpkt+Ge/eLdh0Ah6Vjw5pLMyNfoHQpRDRVFbQ==} + engines: {node: '>=10'} peerDependencies: ink: '>=3.0.5' react: '>=16.8.2' @@ -8558,8 +8122,7 @@ packages: react: 17.0.2 /ink-table/3.1.0_ink@3.2.0+react@17.0.2: - resolution: - { integrity: sha512-qxVb4DIaEaJryvF9uZGydnmP9Hkmas3DCKVpEcBYC0E4eJd3qNgNe+PZKuzgCERFe9LfAS1TNWxCr9+AU4v3YA== } + resolution: {integrity: sha512-qxVb4DIaEaJryvF9uZGydnmP9Hkmas3DCKVpEcBYC0E4eJd3qNgNe+PZKuzgCERFe9LfAS1TNWxCr9+AU4v3YA==} peerDependencies: ink: '>=3.0.0' react: '>=16.8.0' @@ -8569,9 +8132,8 @@ packages: react: 17.0.2 /ink-testing-library/2.1.0: - resolution: - { integrity: sha512-7TNlOjJlJXB33vG7yVa+MMO7hCjaC1bCn+zdpSjknWoLbOWMaFdKc7LJvqVkZ0rZv2+akhjXPrcR/dbxissjUw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-7TNlOjJlJXB33vG7yVa+MMO7hCjaC1bCn+zdpSjknWoLbOWMaFdKc7LJvqVkZ0rZv2+akhjXPrcR/dbxissjUw==} + engines: {node: '>=10'} peerDependencies: '@types/react': '>=16.8.0' peerDependenciesMeta: @@ -8579,8 +8141,7 @@ packages: optional: true /ink-use-stdout-dimensions/1.0.5_ink@3.2.0+react@17.0.2: - resolution: - { integrity: sha512-rVsqnw4tQEAJUoknU09+zHdDf30GJdkumkHr0iz/TOYMYEZJkYqziQSGJAM+Z+M603EDfO89+Nxyn/Ko2Zknfw== } + resolution: {integrity: sha512-rVsqnw4tQEAJUoknU09+zHdDf30GJdkumkHr0iz/TOYMYEZJkYqziQSGJAM+Z+M603EDfO89+Nxyn/Ko2Zknfw==} peerDependencies: ink: '>=2.0.0' react: '>=16.0.0' @@ -8589,9 +8150,8 @@ packages: react: 17.0.2 /ink/3.2.0_react@17.0.2: - resolution: - { integrity: sha512-firNp1q3xxTzoItj/eOOSZQnYSlyrWks5llCTVX37nJ59K3eXbQ8PtzCguqo8YI19EELo5QxaKnJd4VxzhU8tg== } - engines: { node: '>=10' } + resolution: {integrity: sha512-firNp1q3xxTzoItj/eOOSZQnYSlyrWks5llCTVX37nJ59K3eXbQ8PtzCguqo8YI19EELo5QxaKnJd4VxzhU8tg==} + engines: {node: '>=10'} peerDependencies: '@types/react': '>=16.8.0' react: '>=16.8.0' @@ -8628,9 +8188,8 @@ packages: - utf-8-validate /inquirer/7.3.3: - resolution: - { integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} + engines: {node: '>=8.0.0'} dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -8647,9 +8206,8 @@ packages: through: 2.3.8 /inquirer/8.2.6: - resolution: - { integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} + engines: {node: '>=12.0.0'} dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -8669,47 +8227,37 @@ packages: dev: true /internal-slot/1.0.7: - resolution: - { integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.0.6 - /interpret/1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - /ipaddr.js/1.9.1: - resolution: - { integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== } - engines: { node: '>= 0.10' } + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} /is-arguments/1.1.1: - resolution: - { integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 has-tostringtag: 1.0.2 /is-array-buffer/3.0.4: - resolution: - { integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + call-bind: 1.0.8 + get-intrinsic: 1.2.5 /is-arrayish/0.2.1: - resolution: - { integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== } + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true /is-arrayish/0.3.2: - resolution: - { integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== } + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} /is-async-function/2.0.0: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} @@ -8717,296 +8265,255 @@ packages: dependencies: has-tostringtag: 1.0.2 - /is-bigint/1.0.4: - resolution: - { integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== } + /is-bigint/1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} dependencies: has-bigints: 1.0.2 /is-binary-path/2.1.0: - resolution: - { integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} dependencies: binary-extensions: 2.3.0 - /is-boolean-object/1.1.2: - resolution: - { integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== } - engines: { node: '>= 0.4' } + /is-boolean-object/1.2.0: + resolution: {integrity: sha512-kR5g0+dXf/+kXnqI+lu0URKYPKgICtHGGNCDSB10AaUFj3o/HkB3u7WfpRBJGFopxxY0oH3ux7ZsDjLtK7xqvw==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 has-tostringtag: 1.0.2 /is-buffer/1.1.6: - resolution: - { integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== } + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} dev: false /is-buffer/2.0.5: - resolution: - { integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== } - engines: { node: '>=4' } + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} dev: false /is-builtin-module/3.2.1: - resolution: - { integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== } - engines: { node: '>=6' } + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} dependencies: builtin-modules: 3.3.0 dev: true /is-callable/1.2.7: - resolution: - { integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} /is-ci/2.0.0: - resolution: - { integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== } + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} hasBin: true dependencies: ci-info: 2.0.0 /is-core-module/2.15.1: - resolution: - { integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} dependencies: hasown: 2.0.2 /is-data-view/1.0.1: - resolution: - { integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} dependencies: is-typed-array: 1.1.13 /is-date-object/1.0.5: - resolution: - { integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 /is-docker/2.2.1: - resolution: - { integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} hasBin: true /is-extglob/2.1.1: - resolution: - { integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} /is-finalizationregistry/1.1.0: resolution: {integrity: sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 /is-fullwidth-code-point/2.0.0: - resolution: - { integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== } - engines: { node: '>=4' } + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} dev: true /is-fullwidth-code-point/3.0.0: - resolution: - { integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} /is-generator-function/1.0.10: - resolution: - { integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 /is-glob/4.0.3: - resolution: - { integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 /is-interactive/1.0.0: - resolution: - { integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== } - engines: { node: '>=8' } + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} dev: true /is-map/2.0.3: - resolution: - { integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} /is-natural-number/4.0.1: - resolution: - { integrity: sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ== } + resolution: {integrity: sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==} dev: true /is-negative-zero/2.0.3: - resolution: - { integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} - /is-number-object/1.0.7: - resolution: - { integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== } - engines: { node: '>= 0.4' } + /is-number-object/1.1.0: + resolution: {integrity: sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw==} + engines: {node: '>= 0.4'} dependencies: + call-bind: 1.0.8 has-tostringtag: 1.0.2 /is-number/7.0.0: - resolution: - { integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== } - engines: { node: '>=0.12.0' } + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} /is-path-inside/3.0.3: - resolution: - { integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} /is-plain-obj/1.1.0: - resolution: - { integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} dev: true /is-plain-obj/2.1.0: - resolution: - { integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} dev: true /is-promise/2.2.2: - resolution: - { integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== } + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} dev: true - /is-regex/1.1.4: - resolution: - { integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== } - engines: { node: '>= 0.4' } + /is-regex/1.2.0: + resolution: {integrity: sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + gopd: 1.2.0 has-tostringtag: 1.0.2 + hasown: 2.0.2 /is-set/2.0.3: - resolution: - { integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} /is-shared-array-buffer/1.0.3: - resolution: - { integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 /is-stream/1.1.0: - resolution: - { integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} dev: true /is-stream/2.0.1: - resolution: - { integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} - /is-string/1.0.7: - resolution: - { integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== } - engines: { node: '>= 0.4' } + /is-string/1.1.0: + resolution: {integrity: sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g==} + engines: {node: '>= 0.4'} dependencies: + call-bind: 1.0.8 has-tostringtag: 1.0.2 - /is-symbol/1.0.4: - resolution: - { integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== } - engines: { node: '>= 0.4' } + /is-symbol/1.1.0: + resolution: {integrity: sha512-qS8KkNNXUZ/I+nX6QT8ZS1/Yx0A444yhzdTKxCzKkNjQ9sHErBxJnJAgh+f5YhusYECEcjo4XcyH87hn6+ks0A==} + engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.3 + call-bind: 1.0.8 + has-symbols: 1.1.0 + safe-regex-test: 1.0.3 /is-typed-array/1.1.13: - resolution: - { integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.15 + which-typed-array: 1.1.16 /is-typedarray/1.0.0: - resolution: - { integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== } + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} dev: true /is-unicode-supported/0.1.0: - resolution: - { integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} dev: true /is-valid-domain/0.1.6: - resolution: - { integrity: sha512-ZKtq737eFkZr71At8NxOFcP9O1K89gW3DkdrGMpp1upr/ueWjj+Weh4l9AI4rN0Gt8W2M1w7jrG2b/Yv83Ljpg== } + resolution: {integrity: sha512-ZKtq737eFkZr71At8NxOFcP9O1K89gW3DkdrGMpp1upr/ueWjj+Weh4l9AI4rN0Gt8W2M1w7jrG2b/Yv83Ljpg==} dependencies: punycode: 2.3.1 /is-weakmap/2.0.2: - resolution: - { integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} /is-weakref/1.0.2: - resolution: - { integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== } + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 /is-weakset/2.0.3: - resolution: - { integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + call-bind: 1.0.8 + get-intrinsic: 1.2.5 /is-windows/1.0.2: - resolution: - { integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} dev: true /is-wsl/2.2.0: - resolution: - { integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== } - engines: { node: '>=8' } + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} dependencies: is-docker: 2.2.1 /isarray/0.0.1: - resolution: - { integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== } + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} /isarray/1.0.0: - resolution: - { integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== } + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} /isarray/2.0.5: - resolution: - { integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== } + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} /isexe/2.0.0: - resolution: - { integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== } + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} /isomorphic-ws/4.0.1_ws@7.5.10: - resolution: - { integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== } + resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} peerDependencies: ws: '*' dependencies: @@ -9014,8 +8521,7 @@ packages: dev: true /isomorphic-ws/5.0.0_ws@8.17.1: - resolution: - { integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== } + resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} peerDependencies: ws: '*' dependencies: @@ -9023,23 +8529,20 @@ packages: dev: false /istanbul-lib-coverage/3.2.2: - resolution: - { integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} dev: true /istanbul-lib-hook/3.0.0: - resolution: - { integrity: sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==} + engines: {node: '>=8'} dependencies: append-transform: 2.0.0 dev: true /istanbul-lib-instrument/4.0.3: - resolution: - { integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} + engines: {node: '>=8'} dependencies: '@babel/core': 7.26.0 '@istanbuljs/schema': 0.1.3 @@ -9050,9 +8553,8 @@ packages: dev: true /istanbul-lib-processinfo/2.0.3: - resolution: - { integrity: sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==} + engines: {node: '>=8'} dependencies: archy: 1.0.0 cross-spawn: 7.0.6 @@ -9063,9 +8565,8 @@ packages: dev: true /istanbul-lib-report/3.0.1: - resolution: - { integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} dependencies: istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 @@ -9073,11 +8574,10 @@ packages: dev: true /istanbul-lib-source-maps/4.0.1: - resolution: - { integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} dependencies: - debug: 4.3.7 + debug: 4.4.0 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -9085,30 +8585,26 @@ packages: dev: true /istanbul-reports/3.1.7: - resolution: - { integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== } - engines: { node: '>=8' } + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 dev: true /iterall/1.3.0: - resolution: - { integrity: sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== } + resolution: {integrity: sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==} /jackspeak/3.4.3: - resolution: - { integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== } + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 /jake/10.9.2: - resolution: - { integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== } - engines: { node: '>=10' } + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} + engines: {node: '>=10'} hasBin: true dependencies: async: 3.2.6 @@ -9117,51 +8613,43 @@ packages: minimatch: 3.1.2 /jmespath/0.15.0: - resolution: - { integrity: sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w== } - engines: { node: '>= 0.6.0' } + resolution: {integrity: sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w==} + engines: {node: '>= 0.6.0'} /jmespath/0.16.0: - resolution: - { integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw== } - engines: { node: '>= 0.6.0' } + resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} + engines: {node: '>= 0.6.0'} /jose/4.15.9: - resolution: - { integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA== } + resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} /js-tokens/4.0.0: - resolution: - { integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== } + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} /js-yaml/3.14.1: - resolution: - { integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== } + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true dependencies: argparse: 1.0.10 esprima: 4.0.1 /js-yaml/4.1.0: - resolution: - { integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== } + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true dependencies: argparse: 2.0.1 /jsbi/4.3.0: - resolution: - { integrity: sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g== } + resolution: {integrity: sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==} dev: false /jsesc/3.0.2: - resolution: - { integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== } - engines: { node: '>=6' } + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} hasBin: true - /jsii-pacmak/1.104.0: - resolution: {integrity: sha512-KxdYOzpBSnixZ5VjKsWvVIaRAwW4L5JJS3GE0yn5pj6Antx2sjaMvy6XsbjI1MPiOe/W8xNlRDW/XgNE+Bzt6g==} + /jsii-pacmak/1.105.0: + resolution: {integrity: sha512-oTQSoCfBite5cb+gwu2N6SWoJY/vteQSiCI24flo9UqR+PdGBlFDIJGPciPS6ZEC2v20et4YSJYyHFXFGfMQsQ==} engines: {node: '>= 14.17.0'} hasBin: true peerDependencies: @@ -9180,8 +8668,8 @@ packages: xmlbuilder: 15.1.1 yargs: 16.2.0 - /jsii-pacmak/1.104.0_jsii-rosetta@5.5.5: - resolution: {integrity: sha512-KxdYOzpBSnixZ5VjKsWvVIaRAwW4L5JJS3GE0yn5pj6Antx2sjaMvy6XsbjI1MPiOe/W8xNlRDW/XgNE+Bzt6g==} + /jsii-pacmak/1.105.0_jsii-rosetta@5.7.1: + resolution: {integrity: sha512-oTQSoCfBite5cb+gwu2N6SWoJY/vteQSiCI24flo9UqR+PdGBlFDIJGPciPS6ZEC2v20et4YSJYyHFXFGfMQsQ==} engines: {node: '>= 14.17.0'} hasBin: true peerDependencies: @@ -9195,14 +8683,14 @@ packages: escape-string-regexp: 4.0.0 fs-extra: 10.1.0 jsii-reflect: 1.105.0 - jsii-rosetta: 5.6.0 + jsii-rosetta: 5.7.1 semver: 7.6.3 spdx-license-list: 6.9.0 xmlbuilder: 15.1.1 yargs: 16.2.0 - /jsii-reflect/1.104.0: - resolution: {integrity: sha512-tBdJvLPdfrlAI7ijKmuUv48Nkk0aC26VC/wtNjVqtJmpKsDOOG1JXKiIny690FnifhgpdoHnrVE12asSpFdPfA==} + /jsii-reflect/1.105.0: + resolution: {integrity: sha512-YzlU3VJ0sBfsEqdVFYlzCB3MhW1J/3KuGec2MwBXZ8XMrZ69OODBtnDnoSTyRsnigqCnkuYTD27JhNcEic8v9g==} engines: {node: '>= 14.17.0'} hasBin: true dependencies: @@ -9213,46 +8701,46 @@ packages: oo-ascii-tree: 1.105.0 yargs: 16.2.0 - /jsii-rosetta/5.5.5: - resolution: {integrity: sha512-eXkY5eJck2XPd+xk6f4uRQ1S1d5/on2GO1H1Rr6WkJW7E51FXltpsmPaXzrAtvNd6doBNd6/X1CM4otEt/nnBA==} + /jsii-rosetta/5.7.1: + resolution: {integrity: sha512-joxTYrpaYYUFpDYwNhf0lHyp1i6ZfXjpl2AkSCEd6vd0FvmK00tKbWu8UnY/dA7ryI1hvDkm1MTi6f4s36ZzZg==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: - '@jsii/check-node': 1.104.0 + '@jsii/check-node': 1.105.0 '@jsii/spec': 1.105.0 - '@xmldom/xmldom': 0.9.5 + '@xmldom/xmldom': 0.9.6 chalk: 4.1.2 commonmark: 0.31.2 fast-glob: 3.3.2 - jsii: 5.6.0 + jsii: 5.7.1 semver: 7.6.3 semver-intersect: 1.5.0 stream-json: 1.9.1 - typescript: 5.6.3 + typescript: 5.7.2 workerpool: 6.5.1 yargs: 17.7.2 transitivePeerDependencies: - supports-color - /jsii-srcmak/0.1.1280: - resolution: {integrity: sha512-7+pTg7JBbKIIoWvZqe66EtM2SUxbPqd72n6WF90ax/exq3/rnaCd7inPwG+nDYB0du6ahKrZ/p8whBEysZvZ/Q==} + /jsii-srcmak/0.1.1308: + resolution: {integrity: sha512-+jSOHWXE/nmA5c2B3tQ3bsuaXXVWnvFq3bq+2cbNCHjX6wiJggNfJ6WEm9LVvCeOg4eJAaJV8NgeT/nE83zOlw==} hasBin: true dependencies: fs-extra: 9.1.0 - jsii: 5.6.0 - jsii-pacmak: 1.105.0_jsii-rosetta@5.6.0 - jsii-rosetta: 5.6.0 + jsii: 5.7.1 + jsii-pacmak: 1.105.0_jsii-rosetta@5.7.1 + jsii-rosetta: 5.7.1 ncp: 2.0.0 yargs: 17.7.2 transitivePeerDependencies: - supports-color - /jsii/5.5.4: - resolution: {integrity: sha512-ftEKVacc0kLrxCJyCeVJ+C5JYpUY5GBpy4ckt1LgblYQWa1CDu+5qUn2MvD5k8AwnDp36Dm6iQKislhSTOxBkA==} + /jsii/5.7.1: + resolution: {integrity: sha512-EQ9HWmzD+Xpe+yciMQUx3i3Rm1ZVVeIXADbA53KSCDDbd9tqHvZ9kTOrFXakCXcaWIOqXFro+2TLiIIx5HtJhQ==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: - '@jsii/check-node': 1.104.0 + '@jsii/check-node': 1.105.0 '@jsii/spec': 1.105.0 case: 1.6.3 chalk: 4.1.2 @@ -9262,30 +8750,26 @@ packages: semver-intersect: 1.5.0 sort-json: 2.0.1 spdx-license-list: 6.9.0 - typescript: 5.6.3 + typescript: 5.7.2 yargs: 17.7.2 transitivePeerDependencies: - supports-color /json-buffer/3.0.1: - resolution: - { integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== } + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} /json-cycle/1.5.0: - resolution: - { integrity: sha512-GOehvd5PO2FeZ5T4c+RxobeT5a1PiGpF4u9/3+UvrMU4bhnVqzJY7hm39wg8PDCqkU91fWGH8qjWR4bn+wgq9w== } - engines: { node: '>= 4' } + resolution: {integrity: sha512-GOehvd5PO2FeZ5T4c+RxobeT5a1PiGpF4u9/3+UvrMU4bhnVqzJY7hm39wg8PDCqkU91fWGH8qjWR4bn+wgq9w==} + engines: {node: '>= 4'} dev: true /json-parse-even-better-errors/2.3.1: - resolution: - { integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== } + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true /json-refs/3.0.15_supports-color@8.1.1: - resolution: - { integrity: sha512-0vOQd9eLNBL18EGl5yYaO44GhixmImes2wiYn9Z3sag3QnehWrYWlB9AFtMxCL2Bj3fyxgDYkxGFEU/chlYssw== } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-0vOQd9eLNBL18EGl5yYaO44GhixmImes2wiYn9Z3sag3QnehWrYWlB9AFtMxCL2Bj3fyxgDYkxGFEU/chlYssw==} + engines: {node: '>=0.8'} hasBin: true dependencies: commander: 4.1.1 @@ -9301,54 +8785,45 @@ packages: dev: true /json-schema-traverse/0.4.1: - resolution: - { integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== } + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} /json-schema-traverse/1.0.0: - resolution: - { integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== } + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} /json-stable-stringify-without-jsonify/1.0.1: - resolution: - { integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== } + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} /json-stringify-safe/5.0.1: - resolution: - { integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== } + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true /json5/1.0.2: - resolution: - { integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== } + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true dependencies: minimist: 1.2.8 /json5/2.2.3: - resolution: - { integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== } - engines: { node: '>=6' } + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} hasBin: true dev: true /jsonfile/4.0.0: - resolution: - { integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== } + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: graceful-fs: 4.2.11 /jsonfile/6.1.0: - resolution: - { integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== } + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 /jsonwebtoken/8.5.1: - resolution: - { integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== } - engines: { node: '>=4', npm: '>=1.4.28' } + resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} + engines: {node: '>=4', npm: '>=1.4.28'} dependencies: jws: 3.2.2 lodash.includes: 4.3.0 @@ -9363,9 +8838,8 @@ packages: dev: true /jsonwebtoken/9.0.1: - resolution: - { integrity: sha512-K8wx7eJ5TPvEjuiVSkv167EVboBDv9PZdDoF7BgeQnBLVvZWW9clr2PsQHVJDTKaEIH5JBIwHujGcHp7GgI2eg== } - engines: { node: '>=12', npm: '>=6' } + resolution: {integrity: sha512-K8wx7eJ5TPvEjuiVSkv167EVboBDv9PZdDoF7BgeQnBLVvZWW9clr2PsQHVJDTKaEIH5JBIwHujGcHp7GgI2eg==} + engines: {node: '>=12', npm: '>=6'} dependencies: jws: 3.2.2 lodash: 4.17.21 @@ -9373,13 +8847,11 @@ packages: semver: 7.6.3 /jssha/3.3.1: - resolution: - { integrity: sha512-VCMZj12FCFMQYcFLPRm/0lOBbLi8uM2BhXPTqw3U4YAfs4AZfiApOoBLoN8cQE60Z50m1MYMTQVCfgF/KaCVhQ== } + resolution: {integrity: sha512-VCMZj12FCFMQYcFLPRm/0lOBbLi8uM2BhXPTqw3U4YAfs4AZfiApOoBLoN8cQE60Z50m1MYMTQVCfgF/KaCVhQ==} dev: false /jszip/3.10.1: - resolution: - { integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== } + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} dependencies: lie: 3.3.0 pako: 1.0.11 @@ -9388,25 +8860,21 @@ packages: dev: true /just-extend/4.2.1: - resolution: - { integrity: sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg== } + resolution: {integrity: sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==} /just-extend/6.2.0: - resolution: - { integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw== } + resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} dev: true /jwa/1.4.1: - resolution: - { integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== } + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} dependencies: buffer-equal-constant-time: 1.0.1 ecdsa-sig-formatter: 1.0.11 safe-buffer: 5.2.1 /jwa/2.0.0: - resolution: - { integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== } + resolution: {integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==} dependencies: buffer-equal-constant-time: 1.0.1 ecdsa-sig-formatter: 1.0.11 @@ -9414,13 +8882,12 @@ packages: dev: false /jwks-rsa/3.0.1: - resolution: - { integrity: sha512-UUOZ0CVReK1QVU3rbi9bC7N5/le8ziUj0A2ef1Q0M7OPD2KvjEYizptqIxGIo6fSLYDkqBrazILS18tYuRc8gw== } - engines: { node: '>=14' } + resolution: {integrity: sha512-UUOZ0CVReK1QVU3rbi9bC7N5/le8ziUj0A2ef1Q0M7OPD2KvjEYizptqIxGIo6fSLYDkqBrazILS18tYuRc8gw==} + engines: {node: '>=14'} dependencies: '@types/express': 4.17.21 '@types/jsonwebtoken': 9.0.1 - debug: 4.3.7 + debug: 4.4.0 jose: 4.15.9 limiter: 1.1.5 lru-memoizer: 2.3.0 @@ -9428,201 +8895,165 @@ packages: - supports-color /jws/3.2.2: - resolution: - { integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== } + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} dependencies: jwa: 1.4.1 safe-buffer: 5.2.1 /jws/4.0.0: - resolution: - { integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg== } + resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==} dependencies: jwa: 2.0.0 safe-buffer: 5.2.1 dev: false /jwt-decode/2.2.0: - resolution: - { integrity: sha512-86GgN2vzfUu7m9Wcj63iUkuDzFNYFVmjeDm2GzWpUk+opB0pEpMsw6ePCMrhYkumz2C1ihqtZzOMAg7FiXcNoQ== } + resolution: {integrity: sha512-86GgN2vzfUu7m9Wcj63iUkuDzFNYFVmjeDm2GzWpUk+opB0pEpMsw6ePCMrhYkumz2C1ihqtZzOMAg7FiXcNoQ==} dev: true /jwt-decode/3.1.2: - resolution: - { integrity: sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== } + resolution: {integrity: sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==} dev: true /keyv/4.5.4: - resolution: - { integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== } + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 /kind-of/6.0.3: - resolution: - { integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} dev: true /lazystream/1.0.1: - resolution: - { integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== } - engines: { node: '>= 0.6.3' } + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} dependencies: readable-stream: 2.3.8 /levn/0.3.0: - resolution: - { integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.1.2 type-check: 0.3.2 dev: true /levn/0.4.1: - resolution: - { integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 /lie/3.1.1: - resolution: - { integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw== } + resolution: {integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==} dependencies: immediate: 3.0.6 /lie/3.3.0: - resolution: - { integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== } + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} dependencies: immediate: 3.0.6 dev: true /limiter/1.1.5: - resolution: - { integrity: sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA== } + resolution: {integrity: sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==} /lines-and-columns/1.2.4: - resolution: - { integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== } + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true /localforage/1.10.0: - resolution: - { integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg== } + resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==} dependencies: lie: 3.1.1 /locate-path/3.0.0: - resolution: - { integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== } - engines: { node: '>=6' } + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} dependencies: p-locate: 3.0.0 path-exists: 3.0.0 /locate-path/5.0.0: - resolution: - { integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== } - engines: { node: '>=8' } + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} dependencies: p-locate: 4.1.0 dev: true /locate-path/6.0.0: - resolution: - { integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} dependencies: p-locate: 5.0.0 /lodash.clonedeep/4.5.0: - resolution: - { integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== } + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} /lodash.defaults/4.2.0: - resolution: - { integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== } + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} /lodash.difference/4.5.0: - resolution: - { integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA== } + resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} /lodash.flatten/4.4.0: - resolution: - { integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== } + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} /lodash.flattendeep/4.4.0: - resolution: - { integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== } + resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==} dev: true /lodash.get/4.4.2: - resolution: - { integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== } + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} /lodash.includes/4.3.0: - resolution: - { integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== } + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} dev: true /lodash.isboolean/3.0.3: - resolution: - { integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== } + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} dev: true /lodash.isequal/4.5.0: - resolution: - { integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== } + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} /lodash.isinteger/4.0.4: - resolution: - { integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== } + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} dev: true /lodash.isnumber/3.0.3: - resolution: - { integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== } + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} dev: true /lodash.isplainobject/4.0.6: - resolution: - { integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== } + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} /lodash.isstring/4.0.1: - resolution: - { integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== } + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} dev: true /lodash.merge/4.6.2: - resolution: - { integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== } + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} /lodash.once/4.1.1: - resolution: - { integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== } + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} dev: true /lodash.truncate/4.4.2: - resolution: - { integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== } + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} dev: false /lodash.union/4.6.0: - resolution: - { integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw== } + resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} /lodash/4.17.21: - resolution: - { integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== } + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} /log-node/8.0.3_log@6.3.2: - resolution: - { integrity: sha512-1UBwzgYiCIDFs8A0rM2QdBFo8Wd8UQ0HrSTu/MNI+/2zN3NoHRj2fhplurAyuxTYUXu3Oohugq1jAn5s05u1MQ== } - engines: { node: '>=10.0' } + resolution: {integrity: sha512-1UBwzgYiCIDFs8A0rM2QdBFo8Wd8UQ0HrSTu/MNI+/2zN3NoHRj2fhplurAyuxTYUXu3Oohugq1jAn5s05u1MQ==} + engines: {node: '>=10.0'} peerDependencies: log: ^6.0.0 dependencies: @@ -9638,26 +9069,23 @@ packages: dev: true /log-symbols/2.2.0: - resolution: - { integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== } - engines: { node: '>=4' } + resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==} + engines: {node: '>=4'} dependencies: chalk: 2.4.2 dev: false /log-symbols/4.1.0: - resolution: - { integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== } - engines: { node: '>=10' } + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 dev: true /log/6.3.2: - resolution: - { integrity: sha512-ek8NRg/OPvS9ISOJNWNAz5vZcpYacWNFDWNJjj5OXsc6YuKacfey6wF04cXz/tOJIVrZ2nGSkHpAY5qKtF6ISg== } - engines: { node: '>=0.12' } + resolution: {integrity: sha512-ek8NRg/OPvS9ISOJNWNAz5vZcpYacWNFDWNJjj5OXsc6YuKacfey6wF04cXz/tOJIVrZ2nGSkHpAY5qKtF6ISg==} + engines: {node: '>=0.12'} dependencies: d: 1.0.2 duration: 0.2.2 @@ -9669,12 +9097,11 @@ packages: dev: true /log4js/6.9.1: - resolution: - { integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g== } - engines: { node: '>=8.0' } + resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==} + engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 4.3.7 + debug: 4.4.0 flatted: 3.3.2 rfdc: 1.4.1 streamroller: 3.1.5 @@ -9682,106 +9109,90 @@ packages: - supports-color /long-timeout/0.1.1: - resolution: - { integrity: sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w== } + resolution: {integrity: sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==} dev: false /loose-envify/1.4.0: - resolution: - { integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== } + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true dependencies: js-tokens: 4.0.0 /loupe/2.3.7: - resolution: - { integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== } + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: get-func-name: 2.0.2 dev: true /lowercase-keys/2.0.0: - resolution: - { integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} dev: true /lru-cache/10.4.3: - resolution: - { integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== } + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} /lru-cache/4.1.5: - resolution: - { integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== } + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} dependencies: pseudomap: 1.0.2 yallist: 2.1.2 /lru-cache/5.1.1: - resolution: - { integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== } + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 dev: true /lru-cache/6.0.0: - resolution: - { integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== } - engines: { node: '>=10' } + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} dependencies: yallist: 4.0.0 /lru-memoizer/2.3.0: - resolution: - { integrity: sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug== } + resolution: {integrity: sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==} dependencies: lodash.clonedeep: 4.5.0 lru-cache: 6.0.0 /lru-queue/0.1.0: - resolution: - { integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ== } + resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} dependencies: es5-ext: 0.10.64 dev: true /luxon/3.5.0: - resolution: - { integrity: sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ== } - engines: { node: '>=12' } + resolution: {integrity: sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==} + engines: {node: '>=12'} dev: false /make-dir/1.3.0: - resolution: - { integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== } - engines: { node: '>=4' } + resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} + engines: {node: '>=4'} dependencies: pify: 3.0.0 dev: true /make-dir/3.1.0: - resolution: - { integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} dependencies: semver: 6.3.1 dev: true /make-dir/4.0.0: - resolution: - { integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} dependencies: semver: 7.6.3 dev: true /make-error/1.3.6: - resolution: - { integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== } + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} /md5/2.3.0: - resolution: - { integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== } + resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} dependencies: charenc: 0.0.2 crypt: 0.0.2 @@ -9789,18 +9200,15 @@ packages: dev: false /mdurl/1.0.1: - resolution: - { integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== } + resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} /media-typer/0.3.0: - resolution: - { integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} /memoizee/0.4.17: - resolution: - { integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA== } - engines: { node: '>=0.12' } + resolution: {integrity: sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==} + engines: {node: '>=0.12'} dependencies: d: 1.0.2 es5-ext: 0.10.64 @@ -9813,198 +9221,166 @@ packages: dev: true /merge-descriptors/1.0.3: - resolution: - { integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== } + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} /merge-stream/2.0.0: - resolution: - { integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== } + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} /merge2/1.4.1: - resolution: - { integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== } - engines: { node: '>= 8' } + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} /methods/1.1.2: - resolution: - { integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} /micromatch/4.0.8: - resolution: - { integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== } - engines: { node: '>=8.6' } + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} dependencies: braces: 3.0.3 picomatch: 2.3.1 /mime-db/1.52.0: - resolution: - { integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} /mime-db/1.53.0: - resolution: - { integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg== } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} + engines: {node: '>= 0.6'} dev: true /mime-types/2.1.35: - resolution: - { integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 /mime/1.6.0: - resolution: - { integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== } - engines: { node: '>=4' } + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} hasBin: true /mime/2.6.0: - resolution: - { integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== } - engines: { node: '>=4.0.0' } + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} hasBin: true /mime/3.0.0: - resolution: - { integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== } - engines: { node: '>=10.0.0' } + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} hasBin: true dev: false /mimic-fn/1.2.0: - resolution: - { integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== } - engines: { node: '>=4' } + resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} + engines: {node: '>=4'} dev: false /mimic-fn/2.1.0: - resolution: - { integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== } - engines: { node: '>=6' } + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} /mimic-response/1.0.1: - resolution: - { integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== } - engines: { node: '>=4' } + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} dev: true /mimic-response/3.1.0: - resolution: - { integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== } - engines: { node: '>=10' } + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} /min-indent/1.0.1: - resolution: - { integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== } - engines: { node: '>=4' } + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} dev: true /minimatch/3.1.2: - resolution: - { integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== } + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 /minimatch/5.0.1: - resolution: - { integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== } - engines: { node: '>=10' } + resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} + engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 dev: true /minimatch/5.1.6: - resolution: - { integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== } - engines: { node: '>=10' } + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 /minimatch/7.4.6: - resolution: - { integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} + engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 dev: false /minimatch/9.0.5: - resolution: - { integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== } - engines: { node: '>=16 || 14 >=14.17' } + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 /minimist/1.2.8: - resolution: - { integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== } + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} /minipass/3.3.6: - resolution: - { integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} dependencies: yallist: 4.0.0 dev: true /minipass/5.0.0: - resolution: - { integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} dev: true /minipass/7.1.2: - resolution: - { integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== } - engines: { node: '>=16 || 14 >=14.17' } + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} /minizlib/2.1.2: - resolution: - { integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== } - engines: { node: '>= 8' } + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} dependencies: minipass: 3.3.6 yallist: 4.0.0 dev: true /mkdirp-classic/0.5.3: - resolution: - { integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== } + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} /mkdirp/0.5.6: - resolution: - { integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== } + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true dependencies: minimist: 1.2.8 dev: true /mkdirp/1.0.4: - resolution: - { integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} hasBin: true /mkdirp/2.1.6: - resolution: - { integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A== } - engines: { node: '>=10' } + resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==} + engines: {node: '>=10'} hasBin: true dev: false /mocha-skip-if/0.0.3: - resolution: - { integrity: sha512-MFv2uymlrAl4q0kd55Bn/dyhvSP+jg14lWFTL6KFY2uBtzJWbwhHG1RcR+wZEIE2OnAFUX9dyJq+t3GGZwK3YQ== } + resolution: {integrity: sha512-MFv2uymlrAl4q0kd55Bn/dyhvSP+jg14lWFTL6KFY2uBtzJWbwhHG1RcR+wZEIE2OnAFUX9dyJq+t3GGZwK3YQ==} dev: true /mocha/10.2.0: - resolution: - { integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== } - engines: { node: '>= 14.0.0' } + resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} + engines: {node: '>= 14.0.0'} hasBin: true dependencies: ansi-colors: 4.1.1 @@ -10031,8 +9407,7 @@ packages: dev: true /mock-jwks/1.0.3_nock@11.8.2: - resolution: - { integrity: sha512-/O+mwJUp9FITzXqMUWz9mxoQSUe2DTgx7J0TiM02BxExGM47/llZRAEDiuJTtIGCFa11J3rAuSPE2BZw2kTFIQ== } + resolution: {integrity: sha512-/O+mwJUp9FITzXqMUWz9mxoQSUe2DTgx7J0TiM02BxExGM47/llZRAEDiuJTtIGCFa11J3rAuSPE2BZw2kTFIQ==} peerDependencies: nock: ^11 || ^12 || ^13 dependencies: @@ -10044,83 +9419,66 @@ packages: dev: true /mock-stdin/1.0.0: - resolution: - { integrity: sha512-tukRdb9Beu27t6dN+XztSRHq9J0B/CoAOySGzHfn8UTfmqipA5yNT/sDUEyYdAV3Hpka6Wx6kOMxuObdOex60Q== } + resolution: {integrity: sha512-tukRdb9Beu27t6dN+XztSRHq9J0B/CoAOySGzHfn8UTfmqipA5yNT/sDUEyYdAV3Hpka6Wx6kOMxuObdOex60Q==} dev: true /ms/2.0.0: - resolution: - { integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== } + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} /ms/2.1.2: - resolution: - { integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== } + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true /ms/2.1.3: - resolution: - { integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== } + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} /multipasta/0.2.5: - resolution: - { integrity: sha512-c8eMDb1WwZcE02WVjHoOmUVk7fnKU/RmUcosHACglrWAuPQsEJv+E8430sXj6jNc1jHw0zrS16aCjQh4BcEb4A== } + resolution: {integrity: sha512-c8eMDb1WwZcE02WVjHoOmUVk7fnKU/RmUcosHACglrWAuPQsEJv+E8430sXj6jNc1jHw0zrS16aCjQh4BcEb4A==} dev: false /mustache/4.1.0: - resolution: - { integrity: sha512-0FsgP/WVq4mKyjolIyX+Z9Bd+3WS8GOwoUTyKXT5cTYMGeauNTi2HPCwERqseC1IHAy0Z7MDZnJBfjabd4O8GQ== } + resolution: {integrity: sha512-0FsgP/WVq4mKyjolIyX+Z9Bd+3WS8GOwoUTyKXT5cTYMGeauNTi2HPCwERqseC1IHAy0Z7MDZnJBfjabd4O8GQ==} hasBin: true dev: false /mute-stream/0.0.8: - resolution: - { integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== } + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} /mute-stream/1.0.0: - resolution: - { integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== } - engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} /nan/2.22.0: - resolution: - { integrity: sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw== } + resolution: {integrity: sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==} /nanoid/2.1.11: - resolution: - { integrity: sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== } + resolution: {integrity: sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==} dev: true /nanoid/3.3.3: - resolution: - { integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== } - engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true /napi-build-utils/1.0.2: - resolution: - { integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== } + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} /native-promise-only/0.8.1: - resolution: - { integrity: sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg== } + resolution: {integrity: sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==} dev: true /natural-compare-lite/1.4.0: - resolution: - { integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== } + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} /natural-compare/1.4.0: - resolution: - { integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== } + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} /natural-orderby/2.0.3: - resolution: - { integrity: sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q== } + resolution: {integrity: sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==} /ncjsm/4.3.2: - resolution: - { integrity: sha512-6d1VWA7FY31CpI4Ki97Fpm36jfURkVbpktizp8aoVViTZRQgr/0ddmlKerALSSlzfwQRBeSq1qwwVcBJK4Sk7Q== } + resolution: {integrity: sha512-6d1VWA7FY31CpI4Ki97Fpm36jfURkVbpktizp8aoVViTZRQgr/0ddmlKerALSSlzfwQRBeSq1qwwVcBJK4Sk7Q==} dependencies: builtin-modules: 3.3.0 deferred: 0.7.11 @@ -10133,14 +9491,12 @@ packages: dev: true /ncp/2.0.0: - resolution: - { integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA== } + resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==} hasBin: true /needle/2.9.1: - resolution: - { integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== } - engines: { node: '>= 4.4.x' } + resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} + engines: {node: '>= 4.4.x'} hasBin: true dependencies: debug: 3.2.7 @@ -10149,23 +9505,19 @@ packages: dev: false /negotiator/0.6.3: - resolution: - { integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} /next-tick/1.1.0: - resolution: - { integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== } + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} dev: true /nice-try/1.0.5: - resolution: - { integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== } + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: true /nise/4.1.0: - resolution: - { integrity: sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA== } + resolution: {integrity: sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA==} dependencies: '@sinonjs/commons': 1.8.6 '@sinonjs/fake-timers': 6.0.1 @@ -10174,8 +9526,7 @@ packages: path-to-regexp: 1.9.0 /nise/5.1.9: - resolution: - { integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww== } + resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==} dependencies: '@sinonjs/commons': 3.0.1 '@sinonjs/fake-timers': 11.3.1 @@ -10185,11 +9536,10 @@ packages: dev: true /nock/11.8.2: - resolution: - { integrity: sha512-udrFXJ/aqPM9NmrKOcNJ67lvrs/zroNq2sbumhaMPW5JLNy/6LsWiZEwU9DiQIUHOcOCR4MPeqIG7uQNbDGExA== } - engines: { node: '>= 8.0' } + resolution: {integrity: sha512-udrFXJ/aqPM9NmrKOcNJ67lvrs/zroNq2sbumhaMPW5JLNy/6LsWiZEwU9DiQIUHOcOCR4MPeqIG7uQNbDGExA==} + engines: {node: '>= 8.0'} dependencies: - debug: 4.3.7 + debug: 4.4.0 json-stringify-safe: 5.0.1 lodash: 4.17.21 mkdirp: 0.5.6 @@ -10198,11 +9548,11 @@ packages: - supports-color dev: true - /nock/13.5.5: - resolution: {integrity: sha512-XKYnqUrCwXC8DGG1xX4YH5yNIrlh9c065uaMZZHUoeUUINTOyt+x/G+ezYk0Ft6ExSREVIs+qBJDK503viTfFA==} + /nock/13.5.6: + resolution: {integrity: sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==} engines: {node: '>= 10.13'} dependencies: - debug: 4.3.7 + debug: 4.4.0 json-stringify-safe: 5.0.1 propagate: 2.0.1 transitivePeerDependencies: @@ -10210,29 +9560,25 @@ packages: dev: true /node-abi/3.71.0: - resolution: - { integrity: sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==} + engines: {node: '>=10'} dependencies: semver: 7.6.3 /node-addon-api/7.1.1: - resolution: - { integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== } + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} dev: false /node-dir/0.1.17: - resolution: - { integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg== } - engines: { node: '>= 0.10.5' } + resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} + engines: {node: '>= 0.10.5'} dependencies: minimatch: 3.1.2 dev: true /node-fetch/2.6.7: - resolution: - { integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== } - engines: { node: 4.x || >=6.0.0 } + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 peerDependenciesMeta: @@ -10242,9 +9588,8 @@ packages: whatwg-url: 5.0.0 /node-fetch/2.7.0: - resolution: - { integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== } - engines: { node: 4.x || >=6.0.0 } + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 peerDependenciesMeta: @@ -10254,35 +9599,30 @@ packages: whatwg-url: 5.0.0 /node-forge/1.3.1: - resolution: - { integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== } - engines: { node: '>= 6.13.0' } + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} dev: true /node-preload/0.2.1: - resolution: - { integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==} + engines: {node: '>=8'} dependencies: process-on-spawn: 1.1.0 dev: true /node-releases/2.0.18: - resolution: - { integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== } + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} dev: true /node-rsa/0.4.2: - resolution: - { integrity: sha512-Bvso6Zi9LY4otIZefYrscsUpo2mUpiAVIEmSZV2q41sP8tHZoert3Yu6zv4f/RXJqMNZQKCtnhDugIuCma23YA== } + resolution: {integrity: sha512-Bvso6Zi9LY4otIZefYrscsUpo2mUpiAVIEmSZV2q41sP8tHZoert3Yu6zv4f/RXJqMNZQKCtnhDugIuCma23YA==} dependencies: asn1: 0.2.3 dev: true /node-schedule/2.1.1: - resolution: - { integrity: sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ== } - engines: { node: '>=6' } + resolution: {integrity: sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==} + engines: {node: '>=6'} dependencies: cron-parser: 4.9.0 long-timeout: 0.1.1 @@ -10290,20 +9630,17 @@ packages: dev: false /node-version/1.2.0: - resolution: - { integrity: sha512-ma6oU4Sk0qOoKEAymVoTvk8EdXEobdS7m/mAGhDJ8Rouugho48crHBORAmy5BoOcv8wraPM6xumapQp5hl4iIQ== } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-ma6oU4Sk0qOoKEAymVoTvk8EdXEobdS7m/mAGhDJ8Rouugho48crHBORAmy5BoOcv8wraPM6xumapQp5hl4iIQ==} + engines: {node: '>=6.0.0'} /noms/0.0.0: - resolution: - { integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow== } + resolution: {integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==} dependencies: inherits: 2.0.4 readable-stream: 1.0.34 /normalize-package-data/2.5.0: - resolution: - { integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== } + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 resolve: 1.22.8 @@ -10312,20 +9649,17 @@ packages: dev: true /normalize-path/3.0.0: - resolution: - { integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} /normalize-url/6.1.0: - resolution: - { integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== } - engines: { node: '>=10' } + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} dev: true /npm-registry-utilities/1.0.0: - resolution: - { integrity: sha512-9xYfSJy2IFQw1i6462EJzjChL9e65EfSo2Cw6kl0EFeDp05VvU+anrQk3Fc0d1MbVCq7rWIxeer89O9SUQ/uOg== } - engines: { node: '>=12.0' } + resolution: {integrity: sha512-9xYfSJy2IFQw1i6462EJzjChL9e65EfSo2Cw6kl0EFeDp05VvU+anrQk3Fc0d1MbVCq7rWIxeer89O9SUQ/uOg==} + engines: {node: '>=12.0'} dependencies: ext: 1.7.0 fs2: 0.3.15 @@ -10339,24 +9673,21 @@ packages: dev: true /npm-run-path/3.1.0: - resolution: - { integrity: sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==} + engines: {node: '>=8'} dependencies: path-key: 3.1.1 dev: false /npm-run-path/4.0.1: - resolution: - { integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} dependencies: path-key: 3.1.1 /nyc/15.1.0: - resolution: - { integrity: sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A== } - engines: { node: '>=8.9' } + resolution: {integrity: sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==} + engines: {node: '>=8.9'} hasBin: true dependencies: '@istanbuljs/load-nyc-config': 1.1.0 @@ -10391,139 +9722,121 @@ packages: dev: true /object-assign/4.1.1: - resolution: - { integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} /object-hash/2.2.0: - resolution: - { integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== } - engines: { node: '>= 6' } + resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} + engines: {node: '>= 6'} - /object-inspect/1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + /object-inspect/1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} /object-is/1.1.6: - resolution: - { integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 /object-keys/1.1.1: - resolution: - { integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} /object-treeify/1.1.33: - resolution: - { integrity: sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A== } - engines: { node: '>= 10' } + resolution: {integrity: sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==} + engines: {node: '>= 10'} /object.assign/4.1.5: - resolution: - { integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - has-symbols: 1.0.3 + has-symbols: 1.1.0 object-keys: 1.1.1 /object.fromentries/2.0.8: - resolution: - { integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.5 es-object-atoms: 1.0.0 /object.groupby/1.0.3: - resolution: - { integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.5 /object.values/1.2.0: - resolution: - { integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-object-atoms: 1.0.0 /obliterator/2.0.4: - resolution: - { integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== } + resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} /on-finished/2.4.1: - resolution: - { integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 /once/1.4.0: - resolution: - { integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== } + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 /onetime/2.0.1: - resolution: - { integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== } - engines: { node: '>=4' } + resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==} + engines: {node: '>=4'} dependencies: mimic-fn: 1.2.0 dev: false /onetime/5.1.2: - resolution: - { integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== } - engines: { node: '>=6' } + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 - /oo-ascii-tree/1.104.0: - resolution: {integrity: sha512-2cScXtwxt5WVIi3+vdkbKoHSeRepRcibnFhdV2ojGxVvj1KU0m0EHfBCsal6XEg1vBkMgTIxnxVd+E/l/Fam3w==} + /oo-ascii-tree/1.105.0: + resolution: {integrity: sha512-fz4QixX/ImVEMbABqCJxxSwvJGfw9vfq2121RMq/qtCv7BiarY4ZPpheHheOTBvEnhqy81dyMpxiXAY8U3rPjA==} engines: {node: '>= 14.17.0'} /open/7.4.2: - resolution: - { integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== } - engines: { node: '>=8' } + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} dependencies: is-docker: 2.2.1 is-wsl: 2.2.0 /open/8.4.2: - resolution: - { integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== } - engines: { node: '>=12' } + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} dependencies: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 /optimism/0.16.2: - resolution: - { integrity: sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ== } + resolution: {integrity: sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ==} dependencies: '@wry/context': 0.7.4 '@wry/trie': 0.3.2 /optionator/0.8.3: - resolution: - { integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 @@ -10534,9 +9847,8 @@ packages: dev: true /optionator/0.9.4: - resolution: - { integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 @@ -10546,9 +9858,8 @@ packages: word-wrap: 1.2.5 /ora/3.4.0: - resolution: - { integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== } - engines: { node: '>=6' } + resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==} + engines: {node: '>=6'} dependencies: chalk: 2.4.2 cli-cursor: 2.1.0 @@ -10559,9 +9870,8 @@ packages: dev: false /ora/5.4.1: - resolution: - { integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== } - engines: { node: '>=10' } + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} dependencies: bl: 4.1.0 chalk: 4.1.2 @@ -10575,97 +9885,83 @@ packages: dev: true /os-tmpdir/1.0.2: - resolution: - { integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} /p-cancelable/2.1.1: - resolution: - { integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} dev: true /p-event/4.2.0: - resolution: - { integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==} + engines: {node: '>=8'} dependencies: p-timeout: 3.2.0 dev: true /p-finally/1.0.0: - resolution: - { integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== } - engines: { node: '>=4' } + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} dev: true /p-finally/2.0.1: - resolution: - { integrity: sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==} + engines: {node: '>=8'} dev: false /p-limit/2.3.0: - resolution: - { integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== } - engines: { node: '>=6' } + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} dependencies: p-try: 2.2.0 /p-limit/3.1.0: - resolution: - { integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== } - engines: { node: '>=10' } + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 /p-locate/3.0.0: - resolution: - { integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== } - engines: { node: '>=6' } + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} dependencies: p-limit: 2.3.0 /p-locate/4.1.0: - resolution: - { integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== } - engines: { node: '>=8' } + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} dependencies: p-limit: 2.3.0 dev: true /p-locate/5.0.0: - resolution: - { integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} dependencies: p-limit: 3.1.0 /p-map/3.0.0: - resolution: - { integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} + engines: {node: '>=8'} dependencies: aggregate-error: 3.1.0 dev: true /p-timeout/3.2.0: - resolution: - { integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} dependencies: p-finally: 1.0.0 dev: true /p-try/2.2.0: - resolution: - { integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== } - engines: { node: '>=6' } + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} /package-hash/4.0.0: - resolution: - { integrity: sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==} + engines: {node: '>=8'} dependencies: graceful-fs: 4.2.11 hasha: 5.2.2 @@ -10674,30 +9970,25 @@ packages: dev: true /package-json-from-dist/1.0.1: - resolution: - { integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== } + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} /pako/1.0.11: - resolution: - { integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== } + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} dev: true /parent-module/1.0.1: - resolution: - { integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== } - engines: { node: '>=6' } + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} dependencies: callsites: 3.1.0 /parse-gitignore/1.0.1: - resolution: - { integrity: sha512-UGyowyjtx26n65kdAMWhm6/3uy5uSrpcuH7tt+QEVudiBoVS+eqHxD5kbi9oWVRwj7sCzXqwuM+rUGw7earl6A== } - engines: { node: '>=6' } + resolution: {integrity: sha512-UGyowyjtx26n65kdAMWhm6/3uy5uSrpcuH7tt+QEVudiBoVS+eqHxD5kbi9oWVRwj7sCzXqwuM+rUGw7earl6A==} + engines: {node: '>=6'} /parse-json/5.2.0: - resolution: - { integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} dependencies: '@babel/code-frame': 7.26.2 error-ex: 1.3.2 @@ -10706,56 +9997,46 @@ packages: dev: true /parseurl/1.3.3: - resolution: - { integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} /password-prompt/1.1.3: - resolution: - { integrity: sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw== } + resolution: {integrity: sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==} dependencies: ansi-escapes: 4.3.2 cross-spawn: 7.0.6 /patch-console/1.0.0: - resolution: - { integrity: sha512-nxl9nrnLQmh64iTzMfyylSlRozL7kAXIaxw1fVcLYdyhNkJCRUzirRZTikXGJsg+hc4fqpneTK6iU2H1Q8THSA== } - engines: { node: '>=10' } + resolution: {integrity: sha512-nxl9nrnLQmh64iTzMfyylSlRozL7kAXIaxw1fVcLYdyhNkJCRUzirRZTikXGJsg+hc4fqpneTK6iU2H1Q8THSA==} + engines: {node: '>=10'} /path-browserify/1.0.1: - resolution: - { integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== } + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} dev: false /path-exists/3.0.0: - resolution: - { integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== } - engines: { node: '>=4' } + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} /path-exists/4.0.0: - resolution: - { integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== } - engines: { node: '>=8' } + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} /path-is-absolute/1.0.1: - resolution: - { integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} /path-key/2.0.1: - resolution: - { integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== } - engines: { node: '>=4' } + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} dev: true /path-key/3.1.1: - resolution: - { integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== } - engines: { node: '>=8' } + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} /path-loader/1.0.12_supports-color@8.1.1: - resolution: - { integrity: sha512-n7oDG8B+k/p818uweWrOixY9/Dsr89o2TkCm6tOTex3fpdo2+BFDgR+KpB37mGKBRsBAlR8CIJMFN0OEy/7hIQ== } + resolution: {integrity: sha512-n7oDG8B+k/p818uweWrOixY9/Dsr89o2TkCm6tOTex3fpdo2+BFDgR+KpB37mGKBRsBAlR8CIJMFN0OEy/7hIQ==} dependencies: native-promise-only: 0.8.1 superagent: 7.1.6_supports-color@8.1.1 @@ -10764,134 +10045,111 @@ packages: dev: true /path-parse/1.0.7: - resolution: - { integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== } + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} /path-scurry/1.11.1: - resolution: - { integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== } - engines: { node: '>=16 || 14 >=14.18' } + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} dependencies: lru-cache: 10.4.3 minipass: 7.1.2 - /path-to-regexp/0.1.10: - resolution: - { integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w== } + /path-to-regexp/0.1.12: + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} /path-to-regexp/1.9.0: - resolution: - { integrity: sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g== } + resolution: {integrity: sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==} dependencies: isarray: 0.0.1 /path-to-regexp/6.3.0: - resolution: - { integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ== } + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} dev: true /path-type/4.0.0: - resolution: - { integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} /path2/0.1.0: - resolution: - { integrity: sha512-TX+cz8Jk+ta7IvRy2FAej8rdlbrP0+uBIkP/5DTODez/AuL/vSb30KuAdDxGVREXzn8QfAiu5mJYJ1XjbOhEPA== } + resolution: {integrity: sha512-TX+cz8Jk+ta7IvRy2FAej8rdlbrP0+uBIkP/5DTODez/AuL/vSb30KuAdDxGVREXzn8QfAiu5mJYJ1XjbOhEPA==} dev: true /pathval/1.1.1: - resolution: - { integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== } + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} /peek-readable/4.1.0: - resolution: - { integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==} + engines: {node: '>=8'} dev: true /pend/1.2.0: - resolution: - { integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== } + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} /picocolors/1.1.1: - resolution: - { integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== } + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} /picomatch/2.3.1: - resolution: - { integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== } - engines: { node: '>=8.6' } + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} /pidtree/0.6.0: - resolution: - { integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} hasBin: true /pidusage/3.0.2: - resolution: - { integrity: sha512-g0VU+y08pKw5M8EZ2rIGiEBaB8wrQMjYGFfW2QVIfyT8V+fq8YFLkvlz4bz5ljvFDJYNFCWT3PWqcRr2FKO81w== } - engines: { node: '>=10' } + resolution: {integrity: sha512-g0VU+y08pKw5M8EZ2rIGiEBaB8wrQMjYGFfW2QVIfyT8V+fq8YFLkvlz4bz5ljvFDJYNFCWT3PWqcRr2FKO81w==} + engines: {node: '>=10'} dependencies: safe-buffer: 5.2.1 /pify/2.3.0: - resolution: - { integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} dev: true /pify/3.0.0: - resolution: - { integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== } - engines: { node: '>=4' } + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} dev: true /pinkie-promise/2.0.1: - resolution: - { integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} dependencies: pinkie: 2.0.4 dev: true /pinkie/2.0.4: - resolution: - { integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} dev: true /pkg-dir/4.2.0: - resolution: - { integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 dev: true /pkg-up/3.1.0: - resolution: - { integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} + engines: {node: '>=8'} dependencies: find-up: 3.0.0 /pluralize/8.0.0: - resolution: - { integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== } - engines: { node: '>=4' } + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} dev: true /possible-typed-array-names/1.0.0: - resolution: - { integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} /prebuild-install/7.1.2: - resolution: - { integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ== } - engines: { node: '>=10' } + resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} + engines: {node: '>=10'} hasBin: true dependencies: detect-libc: 2.0.3 @@ -10908,55 +10166,47 @@ packages: tunnel-agent: 0.6.0 /prelude-ls/1.1.2: - resolution: - { integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} dev: true /prelude-ls/1.2.1: - resolution: - { integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} /prettier-linter-helpers/1.0.0: - resolution: - { integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} dependencies: fast-diff: 1.3.0 /prettier/2.3.0: - resolution: - { integrity: sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w== } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==} + engines: {node: '>=10.13.0'} hasBin: true /prettier/2.8.8: - resolution: - { integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} hasBin: true /priorityqueuejs/2.0.0: - resolution: - { integrity: sha512-19BMarhgpq3x4ccvVi8k2QpJZcymo/iFUcrhPd4V96kYGovOdTsWwy7fxChYi4QY+m2EnGBWSX9Buakz+tWNQQ== } + resolution: {integrity: sha512-19BMarhgpq3x4ccvVi8k2QpJZcymo/iFUcrhPd4V96kYGovOdTsWwy7fxChYi4QY+m2EnGBWSX9Buakz+tWNQQ==} dev: false /process-nextick-args/2.0.1: - resolution: - { integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== } + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - /process-on-spawn/1.0.0: - resolution: {integrity: sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==} + /process-on-spawn/1.1.0: + resolution: {integrity: sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==} engines: {node: '>=8'} dependencies: fromentries: 1.3.2 dev: true /process-utils/4.0.0: - resolution: - { integrity: sha512-fMyMQbKCxX51YxR7YGCzPjLsU3yDzXFkP4oi1/Mt5Ixnk7GO/7uUTj8mrCHUwuvozWzI+V7QSJR9cZYnwNOZPg== } - engines: { node: '>=10.0' } + resolution: {integrity: sha512-fMyMQbKCxX51YxR7YGCzPjLsU3yDzXFkP4oi1/Mt5Ixnk7GO/7uUTj8mrCHUwuvozWzI+V7QSJR9cZYnwNOZPg==} + engines: {node: '>=10.0'} dependencies: ext: 1.7.0 fs2: 0.3.15 @@ -10965,89 +10215,74 @@ packages: dev: true /process/0.11.10: - resolution: - { integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== } - engines: { node: '>= 0.6.0' } + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} dev: false /progress/2.0.3: - resolution: - { integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== } - engines: { node: '>=0.4.0' } + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} dev: true /promise-polyfill/6.1.0: - resolution: - { integrity: sha512-g0LWaH0gFsxovsU7R5LrrhHhWAWiHRnh1GPrhXnPgYsDkIqjRYUYSZEsej/wtleDrz5xVSIDbeKfidztp2XHFQ== } + resolution: {integrity: sha512-g0LWaH0gFsxovsU7R5LrrhHhWAWiHRnh1GPrhXnPgYsDkIqjRYUYSZEsej/wtleDrz5xVSIDbeKfidztp2XHFQ==} /promise-queue/2.2.5: - resolution: - { integrity: sha512-p/iXrPSVfnqPft24ZdNNLECw/UrtLTpT3jpAAMzl/o5/rDsGCPo3/CQS2611flL6LkoEJ3oQZw7C8Q80ZISXRQ== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-p/iXrPSVfnqPft24ZdNNLECw/UrtLTpT3jpAAMzl/o5/rDsGCPo3/CQS2611flL6LkoEJ3oQZw7C8Q80ZISXRQ==} + engines: {node: '>= 0.8.0'} dev: true /promptly/3.2.0: - resolution: - { integrity: sha512-WnR9obtgW+rG4oUV3hSnNGl1pHm3V1H/qD9iJBumGSmVsSC5HpZOLuu8qdMb6yCItGfT7dcRszejr/5P3i9Pug== } + resolution: {integrity: sha512-WnR9obtgW+rG4oUV3hSnNGl1pHm3V1H/qD9iJBumGSmVsSC5HpZOLuu8qdMb6yCItGfT7dcRszejr/5P3i9Pug==} dependencies: read: 1.0.7 dev: false /prop-types/15.8.1: - resolution: - { integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== } + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 /propagate/2.0.1: - resolution: - { integrity: sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== } - engines: { node: '>= 8' } + resolution: {integrity: sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==} + engines: {node: '>= 8'} dev: true /proxy-addr/2.0.7: - resolution: - { integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== } - engines: { node: '>= 0.10' } + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 /proxy-from-env/1.1.0: - resolution: - { integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== } + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: true /pseudomap/1.0.2: - resolution: - { integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== } + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} /pump/3.0.2: - resolution: - { integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw== } + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} dependencies: end-of-stream: 1.4.4 once: 1.4.0 /punycode/1.3.2: - resolution: - { integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== } + resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} /punycode/2.3.1: - resolution: - { integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== } - engines: { node: '>=6' } + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} /pure-rand/6.1.0: - resolution: - { integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== } + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} /qs/6.13.0: - resolution: - { integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== } - engines: { node: '>=0.6' } + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} dependencies: side-channel: 1.0.6 @@ -11059,44 +10294,37 @@ packages: dev: true /querystring/0.2.0: - resolution: - { integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== } - engines: { node: '>=0.4.x' } + resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} + engines: {node: '>=0.4.x'} deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. /querystring/0.2.1: - resolution: - { integrity: sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== } - engines: { node: '>=0.4.x' } + resolution: {integrity: sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==} + engines: {node: '>=0.4.x'} deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. dev: true /queue-microtask/1.2.3: - resolution: - { integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== } + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} /quick-lru/5.1.1: - resolution: - { integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== } - engines: { node: '>=10' } + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} dev: true /randombytes/2.1.0: - resolution: - { integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== } + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: safe-buffer: 5.2.1 dev: true /range-parser/1.2.1: - resolution: - { integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} /raw-body/2.5.2: - resolution: - { integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} dependencies: bytes: 3.1.2 http-errors: 2.0.0 @@ -11104,8 +10332,7 @@ packages: unpipe: 1.0.0 /rc/1.2.8: - resolution: - { integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== } + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true dependencies: deep-extend: 0.6.0 @@ -11114,23 +10341,20 @@ packages: strip-json-comments: 2.0.1 /react-devtools-core/4.28.5: - resolution: - { integrity: sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA== } + resolution: {integrity: sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==} dependencies: - shell-quote: 1.8.1 + shell-quote: 1.8.2 ws: 7.5.10 transitivePeerDependencies: - bufferutil - utf-8-validate /react-is/16.13.1: - resolution: - { integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== } + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} /react-reconciler/0.26.2_react@17.0.2: - resolution: - { integrity: sha512-nK6kgY28HwrMNwDnMui3dvm3rCFjZrcGiuwLc5COUipBK5hWHLOxMJhSnSomirqWwjPBJKV1QcbkI0VJr7Gl1Q== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-nK6kgY28HwrMNwDnMui3dvm3rCFjZrcGiuwLc5COUipBK5hWHLOxMJhSnSomirqWwjPBJKV1QcbkI0VJr7Gl1Q==} + engines: {node: '>=0.10.0'} peerDependencies: react: ^17.0.2 dependencies: @@ -11140,17 +10364,15 @@ packages: scheduler: 0.20.2 /react/17.0.2: - resolution: - { integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} + engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 /read-pkg-up/7.0.1: - resolution: - { integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 read-pkg: 5.2.0 @@ -11158,9 +10380,8 @@ packages: dev: true /read-pkg/5.2.0: - resolution: - { integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 2.5.0 @@ -11169,16 +10390,14 @@ packages: dev: true /read/1.0.7: - resolution: - { integrity: sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==} + engines: {node: '>=0.8'} dependencies: mute-stream: 0.0.8 dev: false /readable-stream/1.0.34: - resolution: - { integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== } + resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -11186,8 +10405,7 @@ packages: string_decoder: 0.10.31 /readable-stream/2.3.8: - resolution: - { integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== } + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -11198,136 +10416,112 @@ packages: util-deprecate: 1.0.2 /readable-stream/3.6.2: - resolution: - { integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== } - engines: { node: '>= 6' } + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 /readable-web-to-node-stream/3.0.2: - resolution: - { integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} + engines: {node: '>=8'} dependencies: readable-stream: 3.6.2 dev: true /readdir-glob/1.1.3: - resolution: - { integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA== } + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} dependencies: minimatch: 5.1.6 /readdirp/3.6.0: - resolution: - { integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== } - engines: { node: '>=8.10.0' } + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - /rechoir/0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} - dependencies: - resolve: 1.22.8 - /redeyed/2.1.1: - resolution: - { integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ== } + resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==} dependencies: esprima: 4.0.1 /reflect-metadata/0.1.13: - resolution: - { integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== } + resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==} - /reflect.getprototypeof/1.0.7: - resolution: {integrity: sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==} + /reflect.getprototypeof/1.0.8: + resolution: {integrity: sha512-B5dj6usc5dkk8uFliwjwDHM8To5/QwdKz9JcBZ8Ic4G1f0YmeeJTtE/ZTdgRFPAfxZFiUaPhZ1Jcs4qeagItGQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 + dunder-proto: 1.0.0 es-abstract: 1.23.5 es-errors: 1.3.0 - get-intrinsic: 1.2.4 - gopd: 1.0.1 + get-intrinsic: 1.2.5 + gopd: 1.2.0 which-builtin-type: 1.2.0 /regenerator-runtime/0.14.1: - resolution: - { integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== } + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} dev: true /regexp-tree/0.1.27: - resolution: - { integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== } + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} hasBin: true dev: true /regexp.prototype.flags/1.5.3: - resolution: - { integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-errors: 1.3.0 set-function-name: 2.0.2 /regexpp/2.0.1: - resolution: - { integrity: sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== } - engines: { node: '>=6.5.0' } + resolution: {integrity: sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==} + engines: {node: '>=6.5.0'} dev: true /release-zalgo/1.0.0: - resolution: - { integrity: sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA== } - engines: { node: '>=4' } + resolution: {integrity: sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==} + engines: {node: '>=4'} dependencies: es6-error: 4.1.1 dev: true /require-directory/2.1.1: - resolution: - { integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} /require-from-string/2.0.2: - resolution: - { integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} /require-main-filename/2.0.0: - resolution: - { integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== } + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} dev: true /reserved-words/0.1.2: - resolution: - { integrity: sha512-0S5SrIUJ9LfpbVl4Yzij6VipUdafHrOTzvmfazSw/jeZrZtQK303OPZW+obtkaw7jQlTQppy0UvZWm9872PbRw== } + resolution: {integrity: sha512-0S5SrIUJ9LfpbVl4Yzij6VipUdafHrOTzvmfazSw/jeZrZtQK303OPZW+obtkaw7jQlTQppy0UvZWm9872PbRw==} /resolve-alpn/1.2.1: - resolution: - { integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== } + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} dev: true /resolve-from/4.0.0: - resolution: - { integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== } - engines: { node: '>=4' } + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} /resolve-from/5.0.0: - resolution: - { integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} dev: true /resolve/1.22.8: - resolution: - { integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== } + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: is-core-module: 2.15.1 @@ -11335,42 +10529,36 @@ packages: supports-preserve-symlinks-flag: 1.0.0 /response-iterator/0.2.6: - resolution: - { integrity: sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw== } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==} + engines: {node: '>=0.8'} /responselike/2.0.1: - resolution: - { integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== } + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} dependencies: lowercase-keys: 2.0.0 dev: true /restore-cursor/2.0.0: - resolution: - { integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q== } - engines: { node: '>=4' } + resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} + engines: {node: '>=4'} dependencies: onetime: 2.0.1 signal-exit: 3.0.7 dev: false /restore-cursor/3.1.0: - resolution: - { integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} dependencies: onetime: 5.1.2 signal-exit: 3.0.7 /reusify/1.0.4: - resolution: - { integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== } - engines: { iojs: '>=1.0.0', node: '>=0.10.0' } + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} /rewire/5.0.0: - resolution: - { integrity: sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA== } + resolution: {integrity: sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA==} dependencies: eslint: 6.8.0 transitivePeerDependencies: @@ -11378,14 +10566,12 @@ packages: dev: true /rfdc/1.4.1: - resolution: - { integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== } + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} /rhea-promise/3.0.3: - resolution: - { integrity: sha512-a875P5YcMkePSTEWMsnmCQS7Y4v/XvIw7ZoMtJxqtQRZsqSA6PsZxuz4vktyRykPuUgdNsA6F84dS3iEXZoYnQ== } + resolution: {integrity: sha512-a875P5YcMkePSTEWMsnmCQS7Y4v/XvIw7ZoMtJxqtQRZsqSA6PsZxuz4vktyRykPuUgdNsA6F84dS3iEXZoYnQ==} dependencies: - debug: 4.3.7 + debug: 4.4.0 rhea: 3.0.3 tslib: 2.8.1 transitivePeerDependencies: @@ -11393,17 +10579,15 @@ packages: dev: false /rhea/3.0.3: - resolution: - { integrity: sha512-Y7se0USZQu6dErWSZ7eCmSVTMscyVfz/0+jjhBF7f9PqYfEXdIoQpPkC9Strks6wF9WytuBhn8w8Nz/tmBWpgA== } + resolution: {integrity: sha512-Y7se0USZQu6dErWSZ7eCmSVTMscyVfz/0+jjhBF7f9PqYfEXdIoQpPkC9Strks6wF9WytuBhn8w8Nz/tmBWpgA==} dependencies: - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color dev: false /rimraf/2.6.3: - resolution: - { integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== } + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: @@ -11411,8 +10595,7 @@ packages: dev: true /rimraf/2.7.1: - resolution: - { integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== } + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: @@ -11420,152 +10603,128 @@ packages: dev: true /rimraf/3.0.2: - resolution: - { integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== } + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 /rimraf/5.0.10: - resolution: - { integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ== } + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true dependencies: glob: 10.4.5 dev: true /run-async/2.4.1: - resolution: - { integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== } - engines: { node: '>=0.12.0' } + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} /run-async/3.0.0: - resolution: - { integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q== } - engines: { node: '>=0.12.0' } + resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} + engines: {node: '>=0.12.0'} /run-parallel-limit/1.1.0: - resolution: - { integrity: sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== } + resolution: {integrity: sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==} dependencies: queue-microtask: 1.2.3 dev: true /run-parallel/1.2.0: - resolution: - { integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== } + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 /rxjs/6.6.7: - resolution: - { integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== } - engines: { npm: '>=2.0.0' } + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} dependencies: tslib: 1.14.1 /rxjs/7.8.1: - resolution: - { integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== } + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: tslib: 2.8.1 dev: true /safe-array-concat/1.1.2: - resolution: - { integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== } - engines: { node: '>=0.4' } + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 + call-bind: 1.0.8 + get-intrinsic: 1.2.5 + has-symbols: 1.1.0 isarray: 2.0.5 /safe-buffer/5.1.2: - resolution: - { integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== } + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} /safe-buffer/5.2.1: - resolution: - { integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== } + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} /safe-regex-test/1.0.3: - resolution: - { integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 es-errors: 1.3.0 - is-regex: 1.1.4 + is-regex: 1.2.0 /safe-regex/2.1.1: - resolution: - { integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A== } + resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} dependencies: regexp-tree: 0.1.27 dev: true /safer-buffer/2.1.2: - resolution: - { integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== } + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} /sax/1.2.1: - resolution: - { integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA== } + resolution: {integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==} /sax/1.4.1: - resolution: - { integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== } + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} /scheduler/0.20.2: - resolution: - { integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== } + resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 /seek-bzip/1.0.6: - resolution: - { integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== } + resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==} hasBin: true dependencies: commander: 2.20.3 dev: true /semaphore/1.1.0: - resolution: - { integrity: sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==} + engines: {node: '>=0.8.0'} dev: false /semver-intersect/1.5.0: - resolution: - { integrity: sha512-BDjWX7yCC0haX4W/zrnV2JaMpVirwaEkGOBmgRQtH++F1N3xl9v7k9H44xfTqwl+yLNNSbMKosoVSTIiJVQ2Pw== } + resolution: {integrity: sha512-BDjWX7yCC0haX4W/zrnV2JaMpVirwaEkGOBmgRQtH++F1N3xl9v7k9H44xfTqwl+yLNNSbMKosoVSTIiJVQ2Pw==} dependencies: semver: 6.3.1 /semver/5.7.2: - resolution: - { integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== } + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true dev: true /semver/6.3.1: - resolution: - { integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== } + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true /semver/7.6.3: - resolution: - { integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== } - engines: { node: '>=10' } + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} hasBin: true /send/0.19.0: - resolution: - { integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} dependencies: debug: 2.6.9 depd: 2.0.0 @@ -11582,16 +10741,14 @@ packages: statuses: 2.0.1 /serialize-javascript/6.0.0: - resolution: - { integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== } + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} dependencies: randombytes: 2.1.0 dev: true /serve-static/1.16.2: - resolution: - { integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + engines: {node: '>= 0.8.0'} dependencies: encodeurl: 2.0.0 escape-html: 1.0.3 @@ -11599,8 +10756,7 @@ packages: send: 0.19.0 /serverless-artillery/0.5.2: - resolution: - { integrity: sha512-RD3ezSJrleXbSOC4PV2WGXz0JfEvn7IWZuv010z7tzYwxohOe7ja3fju0xKnQfeo9MFa8bF+YWH87pnjg+qkTg== } + resolution: {integrity: sha512-RD3ezSJrleXbSOC4PV2WGXz0JfEvn7IWZuv010z7tzYwxohOe7ja3fju0xKnQfeo9MFa8bF+YWH87pnjg+qkTg==} hasBin: true dependencies: ajv: 6.12.6 @@ -11619,9 +10775,8 @@ packages: dev: true /serverless/3.8.0: - resolution: - { integrity: sha512-yKTbDQVrO3JN0EPeeWis/OEprx8GiOjoMB0zPDpEubii3/wpJgmkU7Td37z9GT9vCWKJVztutM3Zx8iyCwG/9w== } - engines: { node: '>=12.0' } + resolution: {integrity: sha512-yKTbDQVrO3JN0EPeeWis/OEprx8GiOjoMB0zPDpEubii3/wpJgmkU7Td37z9GT9vCWKJVztutM3Zx8iyCwG/9w==} + engines: {node: '>=12.0'} hasBin: true requiresBuild: true dependencies: @@ -11686,26 +10841,23 @@ packages: dev: true /set-blocking/2.0.0: - resolution: - { integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== } + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true /set-function-length/1.2.2: - resolution: - { integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 + get-intrinsic: 1.2.5 + gopd: 1.2.0 has-property-descriptors: 1.0.2 /set-function-name/2.0.2: - resolution: - { integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 @@ -11713,112 +10865,88 @@ packages: has-property-descriptors: 1.0.2 /setimmediate/1.0.5: - resolution: - { integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== } + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} dev: true /setprototypeof/1.2.0: - resolution: - { integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== } + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} /shebang-command/1.2.0: - resolution: - { integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} dependencies: shebang-regex: 1.0.0 dev: true /shebang-command/2.0.0: - resolution: - { integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 /shebang-regex/1.0.0: - resolution: - { integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} dev: true /shebang-regex/3.0.0: - resolution: - { integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== } - engines: { node: '>=8' } - - /shell-quote/1.8.1: - resolution: - { integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== } + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} - /shelljs/0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true - dependencies: - glob: 7.2.3 - interpret: 1.4.0 - rechoir: 0.6.2 + /shell-quote/1.8.2: + resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} + engines: {node: '>= 0.4'} /shortid/2.2.16: - resolution: - { integrity: sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g== } + resolution: {integrity: sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. dependencies: nanoid: 2.1.11 dev: true /side-channel/1.0.6: - resolution: - { integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.5 object-inspect: 1.13.3 /signal-exit/3.0.7: - resolution: - { integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== } + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} /signal-exit/4.1.0: - resolution: - { integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== } - engines: { node: '>=14' } + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} /simple-concat/1.0.1: - resolution: - { integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== } + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} /simple-get/4.0.1: - resolution: - { integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== } + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} dependencies: decompress-response: 6.0.0 once: 1.4.0 simple-concat: 1.0.1 /simple-git/3.27.0_supports-color@8.1.1: - resolution: - { integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA== } + resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==} dependencies: '@kwsites/file-exists': 1.1.1_supports-color@8.1.1 '@kwsites/promise-deferred': 1.1.1 - debug: 4.3.7_supports-color@8.1.1 + debug: 4.4.0_supports-color@8.1.1 transitivePeerDependencies: - supports-color dev: true /simple-swizzle/0.2.2: - resolution: - { integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== } + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} dependencies: is-arrayish: 0.3.2 /sinon-chai/3.5.0_chai@4.2.0+sinon@9.2.3: - resolution: - { integrity: sha512-IifbusYiQBpUxxFJkR3wTU68xzBN0+bxCScEaKMjBvAQERg6FnTTc1F17rseLb1tjmkJ23730AXpFI0c47FgAg== } + resolution: {integrity: sha512-IifbusYiQBpUxxFJkR3wTU68xzBN0+bxCScEaKMjBvAQERg6FnTTc1F17rseLb1tjmkJ23730AXpFI0c47FgAg==} peerDependencies: chai: ^4.0.0 sinon: '>=4.0.0 <10.0.0' @@ -11827,8 +10955,7 @@ packages: sinon: 9.2.3 /sinon-express-mock/2.2.1_sinon@9.2.3: - resolution: - { integrity: sha512-z1wqaPMwEnfn0SpigFhVYVS/ObX1tkqyRzRdccX99FgQaLkxGSo4684unr3NCqWeYZ1zchxPw7oFIDfzg1cAjg== } + resolution: {integrity: sha512-z1wqaPMwEnfn0SpigFhVYVS/ObX1tkqyRzRdccX99FgQaLkxGSo4684unr3NCqWeYZ1zchxPw7oFIDfzg1cAjg==} peerDependencies: sinon: '*' dependencies: @@ -11836,8 +10963,7 @@ packages: dev: true /sinon/16.1.3: - resolution: - { integrity: sha512-mjnWWeyxcAf9nC0bXcPmiDut+oE8HYridTNzBbF98AYVLmWwGRp2ISEpyhYflG1ifILT+eNn3BmKUJPxjXUPlA== } + resolution: {integrity: sha512-mjnWWeyxcAf9nC0bXcPmiDut+oE8HYridTNzBbF98AYVLmWwGRp2ISEpyhYflG1ifILT+eNn3BmKUJPxjXUPlA==} dependencies: '@sinonjs/commons': 3.0.1 '@sinonjs/fake-timers': 10.3.0 @@ -11848,8 +10974,7 @@ packages: dev: true /sinon/9.2.3: - resolution: - { integrity: sha512-m+DyAWvqVHZtjnjX/nuShasykFeiZ+nPuEfD4G3gpvKGkXRhkF/6NSt2qN2FjZhfrcHXFzUzI+NLnk+42fnLEw== } + resolution: {integrity: sha512-m+DyAWvqVHZtjnjX/nuShasykFeiZ+nPuEfD4G3gpvKGkXRhkF/6NSt2qN2FjZhfrcHXFzUzI+NLnk+42fnLEw==} deprecated: 16.1.1 dependencies: '@sinonjs/commons': 1.8.6 @@ -11860,14 +10985,12 @@ packages: supports-color: 7.2.0 /slash/3.0.0: - resolution: - { integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== } - engines: { node: '>=8' } + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} /slice-ansi/2.1.0: - resolution: - { integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== } - engines: { node: '>=6' } + resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==} + engines: {node: '>=6'} dependencies: ansi-styles: 3.2.1 astral-regex: 1.0.0 @@ -11875,26 +10998,23 @@ packages: dev: true /slice-ansi/3.0.0: - resolution: - { integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} dependencies: ansi-styles: 4.3.0 astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 /slice-ansi/4.0.0: - resolution: - { integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== } - engines: { node: '>=10' } + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 /sort-json/2.0.1: - resolution: - { integrity: sha512-s8cs2bcsQCzo/P2T/uoU6Js4dS/jnX8+4xunziNoq9qmSpZNCrRIAIvp4avsz0ST18HycV4z/7myJ7jsHWB2XQ== } + resolution: {integrity: sha512-s8cs2bcsQCzo/P2T/uoU6Js4dS/jnX8+4xunziNoq9qmSpZNCrRIAIvp4avsz0ST18HycV4z/7myJ7jsHWB2XQ==} hasBin: true dependencies: detect-indent: 5.0.0 @@ -11902,41 +11022,35 @@ packages: minimist: 1.2.8 /sort-keys-length/1.0.1: - resolution: - { integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==} + engines: {node: '>=0.10.0'} dependencies: sort-keys: 1.1.2 dev: true /sort-keys/1.1.2: - resolution: - { integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==} + engines: {node: '>=0.10.0'} dependencies: is-plain-obj: 1.1.0 dev: true /sorted-array-functions/1.3.0: - resolution: - { integrity: sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA== } + resolution: {integrity: sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==} dev: false /source-map/0.6.1: - resolution: - { integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} dev: true /spawn-command/0.0.2: - resolution: - { integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ== } + resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} dev: true /spawn-wrap/2.0.0: - resolution: - { integrity: sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==} + engines: {node: '>=8'} dependencies: foreground-child: 2.0.0 is-windows: 1.0.2 @@ -11947,113 +11061,96 @@ packages: dev: true /spdx-correct/3.2.0: - resolution: - { integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== } + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.20 dev: true /spdx-exceptions/2.5.0: - resolution: - { integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== } + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} dev: true /spdx-expression-parse/3.0.1: - resolution: - { integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== } + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.5.0 spdx-license-ids: 3.0.20 dev: true /spdx-license-ids/3.0.20: - resolution: - { integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw== } + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} dev: true /spdx-license-list/6.9.0: - resolution: - { integrity: sha512-L2jl5vc2j6jxWcNCvcVj/BW9A8yGIG02Dw+IUw0ZxDM70f7Ylf5Hq39appV1BI9yxyWQRpq2TQ1qaXvf+yjkqA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-L2jl5vc2j6jxWcNCvcVj/BW9A8yGIG02Dw+IUw0ZxDM70f7Ylf5Hq39appV1BI9yxyWQRpq2TQ1qaXvf+yjkqA==} + engines: {node: '>=8'} /split2/3.2.2: - resolution: - { integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== } + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} dependencies: readable-stream: 3.6.2 dev: true /sprintf-js/1.0.3: - resolution: - { integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== } + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} /sprintf-kit/2.0.2: - resolution: - { integrity: sha512-lnapdj6W4LflHZGKvl9eVkz5YF0xaTrqpRWVA4cNVOTedwqifIP8ooGImldzT/4IAN5KXFQAyXTdLidYVQdyag== } - engines: { node: '>=0.12' } + resolution: {integrity: sha512-lnapdj6W4LflHZGKvl9eVkz5YF0xaTrqpRWVA4cNVOTedwqifIP8ooGImldzT/4IAN5KXFQAyXTdLidYVQdyag==} + engines: {node: '>=0.12'} dependencies: es5-ext: 0.10.64 dev: true /sscaff/1.2.274: - resolution: - { integrity: sha512-sztRa50SL1LVxZnF1au6QT1SC2z0S1oEOyi2Kpnlg6urDns93aL32YxiJcNkLcY+VHFtVqm/SRv4cb+6LeoBQA== } - engines: { node: '>= 12.13.0' } + resolution: {integrity: sha512-sztRa50SL1LVxZnF1au6QT1SC2z0S1oEOyi2Kpnlg6urDns93aL32YxiJcNkLcY+VHFtVqm/SRv4cb+6LeoBQA==} + engines: {node: '>= 12.13.0'} /stack-utils/2.0.6: - resolution: - { integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== } - engines: { node: '>=10' } + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} dependencies: escape-string-regexp: 2.0.0 /statuses/2.0.1: - resolution: - { integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} /stdout-stderr/0.1.13: - resolution: - { integrity: sha512-Xnt9/HHHYfjZ7NeQLvuQDyL1LnbsbddgMFKCuaQKwGCdJm8LnstZIXop+uOY36UR1UXXoHXfMbC1KlVdVd2JLA== } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-Xnt9/HHHYfjZ7NeQLvuQDyL1LnbsbddgMFKCuaQKwGCdJm8LnstZIXop+uOY36UR1UXXoHXfMbC1KlVdVd2JLA==} + engines: {node: '>=8.0.0'} dependencies: - debug: 4.3.7 + debug: 4.4.0 strip-ansi: 6.0.1 transitivePeerDependencies: - supports-color dev: true /stop-iteration-iterator/1.0.0: - resolution: - { integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} dependencies: internal-slot: 1.0.7 /stoppable/1.1.0: - resolution: - { integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== } - engines: { node: '>=4', npm: '>=6' } + resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} + engines: {node: '>=4', npm: '>=6'} dev: false /stream-buffers/3.0.3: - resolution: - { integrity: sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw== } - engines: { node: '>= 0.10.0' } + resolution: {integrity: sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw==} + engines: {node: '>= 0.10.0'} /stream-chain/2.2.5: - resolution: - { integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== } + resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==} - /stream-json/1.9.0: - resolution: {integrity: sha512-TqnfW7hRTKje7UobBzXZJ2qOEDJvdcSVgVIK/fopC03xINFuFqQs8RVjyDT4ry7TmOo2ueAXwpXXXG4tNgtvoQ==} + /stream-json/1.9.1: + resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==} dependencies: stream-chain: 2.2.5 /stream-promise/3.2.0: - resolution: - { integrity: sha512-P+7muTGs2C8yRcgJw/PPt61q7O517tDHiwYEzMWo1GSBCcZedUMT/clz7vUNsSxFphIlJ6QUL4GexQKlfJoVtA== } + resolution: {integrity: sha512-P+7muTGs2C8yRcgJw/PPt61q7O517tDHiwYEzMWo1GSBCcZedUMT/clz7vUNsSxFphIlJ6QUL4GexQKlfJoVtA==} dependencies: 2-thenable: 1.0.0 es5-ext: 0.10.64 @@ -12061,20 +11158,18 @@ packages: dev: true /streamroller/3.1.5: - resolution: - { integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw== } - engines: { node: '>=8.0' } + resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==} + engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 4.3.7 + debug: 4.4.0 fs-extra: 8.1.0 transitivePeerDependencies: - supports-color /string-width/3.1.0: - resolution: - { integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== } - engines: { node: '>=6' } + resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} + engines: {node: '>=6'} dependencies: emoji-regex: 7.0.3 is-fullwidth-code-point: 2.0.0 @@ -12082,148 +11177,127 @@ packages: dev: true /string-width/4.2.3: - resolution: - { integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== } - engines: { node: '>=8' } + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 /string-width/5.1.2: - resolution: - { integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== } - engines: { node: '>=12' } + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 /string.prototype.trim/1.2.9: - resolution: - { integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.5 es-object-atoms: 1.0.0 /string.prototype.trimend/1.0.8: - resolution: - { integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== } + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-object-atoms: 1.0.0 /string.prototype.trimstart/1.0.8: - resolution: - { integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-object-atoms: 1.0.0 /string_decoder/0.10.31: - resolution: - { integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== } + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} /string_decoder/1.1.1: - resolution: - { integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== } + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 /string_decoder/1.3.0: - resolution: - { integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== } + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 /strip-ansi/5.2.0: - resolution: - { integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== } - engines: { node: '>=6' } + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} dependencies: ansi-regex: 4.1.1 /strip-ansi/6.0.1: - resolution: - { integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== } - engines: { node: '>=8' } + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 /strip-ansi/7.1.0: - resolution: - { integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== } - engines: { node: '>=12' } + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} dependencies: ansi-regex: 6.1.0 /strip-bom/3.0.0: - resolution: - { integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== } - engines: { node: '>=4' } + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} /strip-bom/4.0.0: - resolution: - { integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== } - engines: { node: '>=8' } + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} dev: true /strip-dirs/2.1.0: - resolution: - { integrity: sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== } + resolution: {integrity: sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==} dependencies: is-natural-number: 4.0.1 dev: true /strip-final-newline/2.0.0: - resolution: - { integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== } - engines: { node: '>=6' } + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} /strip-indent/3.0.0: - resolution: - { integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} dependencies: min-indent: 1.0.1 dev: true /strip-json-comments/2.0.1: - resolution: - { integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} /strip-json-comments/3.1.1: - resolution: - { integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== } - engines: { node: '>=8' } + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} /strip-outer/1.0.1: - resolution: - { integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} + engines: {node: '>=0.10.0'} dependencies: escape-string-regexp: 1.0.5 dev: true /strtok3/6.3.0: - resolution: - { integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==} + engines: {node: '>=10'} dependencies: '@tokenizer/token': 0.3.0 peek-readable: 4.1.0 dev: true /subscriptions-transport-ws/0.11.0_graphql@16.9.0: - resolution: - { integrity: sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ== } + resolution: {integrity: sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ==} deprecated: The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md peerDependencies: graphql: ^15.7.2 || ^16.0.0 @@ -12239,14 +11313,13 @@ packages: - utf-8-validate /superagent/7.1.6_supports-color@8.1.1: - resolution: - { integrity: sha512-gZkVCQR1gy/oUXr+kxJMLDjla434KmSOKbx5iGD30Ql+AkJQ/YlPKECJy2nhqOsHLjGHzoDTXNSjhnvWhzKk7g== } - engines: { node: '>=6.4.0 <13 || >=14' } + resolution: {integrity: sha512-gZkVCQR1gy/oUXr+kxJMLDjla434KmSOKbx5iGD30Ql+AkJQ/YlPKECJy2nhqOsHLjGHzoDTXNSjhnvWhzKk7g==} + engines: {node: '>=6.4.0 <13 || >=14'} deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net dependencies: component-emitter: 1.3.1 cookiejar: 2.1.4 - debug: 4.3.7_supports-color@8.1.1 + debug: 4.4.0_supports-color@8.1.1 fast-safe-stringify: 2.1.1 form-data: 4.0.1 formidable: 2.1.2 @@ -12260,61 +11333,52 @@ packages: dev: true /supports-color/5.5.0: - resolution: - { integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== } - engines: { node: '>=4' } + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} dependencies: has-flag: 3.0.0 /supports-color/6.1.0: - resolution: - { integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== } - engines: { node: '>=6' } + resolution: {integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==} + engines: {node: '>=6'} dependencies: has-flag: 3.0.0 dev: true /supports-color/7.2.0: - resolution: - { integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 /supports-color/8.1.1: - resolution: - { integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== } - engines: { node: '>=10' } + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} dependencies: has-flag: 4.0.0 /supports-hyperlinks/2.3.0: - resolution: - { integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 supports-color: 7.2.0 /supports-preserve-symlinks-flag/1.0.0: - resolution: - { integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} /symbol-observable/1.2.0: - resolution: - { integrity: sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==} + engines: {node: '>=0.10.0'} /symbol-observable/4.0.0: - resolution: - { integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} + engines: {node: '>=0.10'} /table/5.4.6: - resolution: - { integrity: sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==} + engines: {node: '>=6.0.0'} dependencies: ajv: 6.12.6 lodash: 4.17.21 @@ -12322,10 +11386,9 @@ packages: string-width: 3.1.0 dev: true - /table/6.8.2: - resolution: - { integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA== } - engines: { node: '>=10.0.0' } + /table/6.9.0: + resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} + engines: {node: '>=10.0.0'} dependencies: ajv: 8.17.1 lodash.truncate: 4.4.2 @@ -12335,8 +11398,7 @@ packages: dev: false /tar-fs/2.1.1: - resolution: - { integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== } + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 @@ -12344,9 +11406,8 @@ packages: tar-stream: 2.2.0 /tar-stream/1.6.2: - resolution: - { integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} + engines: {node: '>= 0.8.0'} dependencies: bl: 1.2.3 buffer-alloc: 1.2.0 @@ -12358,9 +11419,8 @@ packages: dev: true /tar-stream/2.2.0: - resolution: - { integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== } - engines: { node: '>=6' } + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} dependencies: bl: 4.1.0 end-of-stream: 1.4.4 @@ -12369,9 +11429,8 @@ packages: readable-stream: 3.6.2 /tar/6.2.1: - resolution: - { integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== } - engines: { node: '>=10' } + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -12382,9 +11441,8 @@ packages: dev: true /test-exclude/6.0.0: - resolution: - { integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== } - engines: { node: '>=8' } + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.3 @@ -12392,116 +11450,99 @@ packages: dev: true /text-table/0.2.0: - resolution: - { integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== } + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} /throat/5.0.0: - resolution: - { integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== } + resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} dev: true /through/2.3.8: - resolution: - { integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== } + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} /through2/2.0.5: - resolution: - { integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== } + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: readable-stream: 2.3.8 xtend: 4.0.2 /timers-ext/0.1.8: - resolution: - { integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww== } - engines: { node: '>=0.12' } + resolution: {integrity: sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==} + engines: {node: '>=0.12'} dependencies: es5-ext: 0.10.64 next-tick: 1.1.0 dev: true /tmp/0.0.33: - resolution: - { integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== } - engines: { node: '>=0.6.0' } + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 /to-buffer/1.1.1: - resolution: - { integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== } + resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} dev: true /to-regex-range/5.0.1: - resolution: - { integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== } - engines: { node: '>=8.0' } + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 /toidentifier/1.0.1: - resolution: - { integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== } - engines: { node: '>=0.6' } + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} /token-types/4.2.1: - resolution: - { integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ== } - engines: { node: '>=10' } + resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==} + engines: {node: '>=10'} dependencies: '@tokenizer/token': 0.3.0 ieee754: 1.2.1 dev: true /toml/3.0.0: - resolution: - { integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== } + resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} dev: false /tr46/0.0.3: - resolution: - { integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== } + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} /traverse/0.6.10: - resolution: - { integrity: sha512-hN4uFRxbK+PX56DxYiGHsTn2dME3TVr9vbNqlQGcGcPhJAn+tdP126iA+TArMpI4YSgnTkMWyoLl5bf81Hi5TA== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-hN4uFRxbK+PX56DxYiGHsTn2dME3TVr9vbNqlQGcGcPhJAn+tdP126iA+TArMpI4YSgnTkMWyoLl5bf81Hi5TA==} + engines: {node: '>= 0.4'} dependencies: - gopd: 1.0.1 + gopd: 1.2.0 typedarray.prototype.slice: 1.0.3 - which-typed-array: 1.1.15 + which-typed-array: 1.1.16 dev: true /tree-kill/1.2.2: - resolution: - { integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== } + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true dev: true /trim-repeated/1.0.0: - resolution: - { integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} + engines: {node: '>=0.10.0'} dependencies: escape-string-regexp: 1.0.5 dev: true /ts-invariant/0.10.3: - resolution: - { integrity: sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ== } - engines: { node: '>=8' } + resolution: {integrity: sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==} + engines: {node: '>=8'} dependencies: tslib: 2.8.1 /ts-morph/19.0.0: - resolution: - { integrity: sha512-D6qcpiJdn46tUqV45vr5UGM2dnIEuTGNxVhg0sk5NX11orcouwj6i1bMqZIz2mZTZB1Hcgy7C3oEVhAT+f6mbQ== } + resolution: {integrity: sha512-D6qcpiJdn46tUqV45vr5UGM2dnIEuTGNxVhg0sk5NX11orcouwj6i1bMqZIz2mZTZB1Hcgy7C3oEVhAT+f6mbQ==} dependencies: '@ts-morph/common': 0.20.0 code-block-writer: 12.0.0 dev: false - /ts-node/10.9.2_5aurqvvi2kcpaxpbv224uoiqwq: + /ts-node/10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -12520,7 +11561,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.65 + '@types/node': 18.19.67 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -12532,8 +11573,7 @@ packages: yn: 3.1.1 /ts-patch/3.1.2: - resolution: - { integrity: sha512-n58F5AqjUMdp9RAKq+E1YBkmONltPVbt1nN+wrmZXoYZek6QcvaTuqvKMhYhr5BxtC53kD/exxIPA1cP1RQxsA== } + resolution: {integrity: sha512-n58F5AqjUMdp9RAKq+E1YBkmONltPVbt1nN+wrmZXoYZek6QcvaTuqvKMhYhr5BxtC53kD/exxIPA1cP1RQxsA==} hasBin: true dependencies: chalk: 4.1.2 @@ -12545,9 +11585,8 @@ packages: dev: true /tsconfck/3.1.4_typescript@5.1.6: - resolution: - { integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ== } - engines: { node: ^18 || >=20 } + resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==} + engines: {node: ^18 || >=20} hasBin: true peerDependencies: typescript: ^5.0.0 @@ -12559,8 +11598,7 @@ packages: dev: false /tsconfig-paths/3.15.0: - resolution: - { integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== } + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} dependencies: '@types/json5': 0.0.29 json5: 1.0.2 @@ -12568,16 +11606,14 @@ packages: strip-bom: 3.0.0 /tslib/1.14.1: - resolution: - { integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== } + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - /tslib/2.8.0: - resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} + /tslib/2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} /tsutils/3.21.0_typescript@5.1.6: - resolution: - { integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== } - engines: { node: '>= 6' } + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: @@ -12585,132 +11621,116 @@ packages: typescript: 5.1.6 /tunnel-agent/0.6.0: - resolution: - { integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== } + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} dependencies: safe-buffer: 5.2.1 /type-check/0.3.2: - resolution: - { integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.1.2 dev: true /type-check/0.4.0: - resolution: - { integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 /type-detect/4.0.8: - resolution: - { integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== } - engines: { node: '>=4' } + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} /type-detect/4.1.0: - resolution: - { integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== } - engines: { node: '>=4' } + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + engines: {node: '>=4'} /type-fest/0.12.0: - resolution: - { integrity: sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg== } - engines: { node: '>=10' } + resolution: {integrity: sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==} + engines: {node: '>=10'} /type-fest/0.20.2: - resolution: - { integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== } - engines: { node: '>=10' } + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} /type-fest/0.21.3: - resolution: - { integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== } - engines: { node: '>=10' } + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} /type-fest/0.6.0: - resolution: - { integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} dev: true /type-fest/0.8.1: - resolution: - { integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} dev: true /type-is/1.6.18: - resolution: - { integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} dependencies: media-typer: 0.3.0 mime-types: 2.1.35 /type/2.7.3: - resolution: - { integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ== } + resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} dev: true /typed-array-buffer/1.0.2: - resolution: - { integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 es-errors: 1.3.0 is-typed-array: 1.1.13 /typed-array-byte-length/1.0.1: - resolution: - { integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 + gopd: 1.2.0 + has-proto: 1.2.0 is-typed-array: 1.1.13 - /typed-array-byte-offset/1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + /typed-array-byte-offset/1.0.3: + resolution: {integrity: sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.7 + call-bind: 1.0.8 for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 + gopd: 1.2.0 + has-proto: 1.2.0 is-typed-array: 1.1.13 - reflect.getprototypeof: 1.0.7 + reflect.getprototypeof: 1.0.8 - /typed-array-length/1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + /typed-array-length/1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 for-each: 0.3.3 - gopd: 1.0.1 + gopd: 1.2.0 is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - reflect.getprototypeof: 1.0.7 + reflect.getprototypeof: 1.0.8 /typedarray-to-buffer/3.1.5: - resolution: - { integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== } + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} dependencies: is-typedarray: 1.0.0 dev: true /typedarray.prototype.slice/1.0.3: - resolution: - { integrity: sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.5 es-errors: 1.3.0 @@ -12719,81 +11739,65 @@ packages: dev: true /typescript/5.1.6: - resolution: - { integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== } - engines: { node: '>=14.17' } - hasBin: true - - /typescript/5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} engines: {node: '>=14.17'} hasBin: true - /typescript/5.7.0-dev.20241025: - resolution: {integrity: sha512-2Byc/3ywylhhYPpag3uxhRxz6bZSKyS7jBsRkkFFhs0DeH3xlkQu+TElWOvhxtAfPNm7nB74xAqs++a3Iv18cg==} + /typescript/5.7.2: + resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} engines: {node: '>=14.17'} hasBin: true /unbox-primitive/1.0.2: - resolution: - { integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== } + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.0 /unbzip2-stream/1.4.3: - resolution: - { integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== } + resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} dependencies: buffer: 5.7.1 through: 2.3.8 dev: true /undici-types/5.26.5: - resolution: - { integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== } + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} /undici-types/6.19.8: - resolution: - { integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== } + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - /undici/6.20.1: - resolution: {integrity: sha512-AjQF1QsmqfJys+LXfGTNum+qw4S88CojRInG/6t31W/1fk6G59s92bnAvGz5Cmur+kQv2SURXEvvudLmbrE8QA==} + /undici/6.21.0: + resolution: {integrity: sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==} engines: {node: '>=18.17'} dev: false /uni-global/1.0.0: - resolution: - { integrity: sha512-WWM3HP+siTxzIWPNUg7hZ4XO8clKi6NoCAJJWnuRL+BAqyFXF8gC03WNyTefGoUXYc47uYgXxpKLIEvo65PEHw== } + resolution: {integrity: sha512-WWM3HP+siTxzIWPNUg7hZ4XO8clKi6NoCAJJWnuRL+BAqyFXF8gC03WNyTefGoUXYc47uYgXxpKLIEvo65PEHw==} dependencies: type: 2.7.3 dev: true /universalify/0.1.2: - resolution: - { integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== } - engines: { node: '>= 4.0.0' } + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} /universalify/2.0.1: - resolution: - { integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} /unpipe/1.0.0: - resolution: - { integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} /untildify/4.0.0: - resolution: - { integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== } - engines: { node: '>=8' } + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} /update-browserslist-db/1.1.1_browserslist@4.24.2: - resolution: - { integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== } + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -12804,159 +11808,138 @@ packages: dev: true /uri-js/4.4.1: - resolution: - { integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== } + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.1 /url/0.10.3: - resolution: - { integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ== } + resolution: {integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==} dependencies: punycode: 1.3.2 querystring: 0.2.0 /util-deprecate/1.0.2: - resolution: - { integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== } + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} /util/0.12.5: - resolution: - { integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== } + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} dependencies: inherits: 2.0.4 is-arguments: 1.1.1 is-generator-function: 1.0.10 is-typed-array: 1.1.13 - which-typed-array: 1.1.15 + which-typed-array: 1.1.16 /utils-merge/1.0.1: - resolution: - { integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== } - engines: { node: '>= 0.4.0' } + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} /uuid/3.3.2: - resolution: - { integrity: sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== } + resolution: {integrity: sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==} deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. hasBin: true /uuid/8.0.0: - resolution: - { integrity: sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw== } + resolution: {integrity: sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==} hasBin: true /uuid/8.3.2: - resolution: - { integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== } + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true /uuid/9.0.1: - resolution: - { integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== } + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true /v8-compile-cache-lib/3.0.1: - resolution: - { integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== } + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} /v8-compile-cache/2.4.0: - resolution: - { integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw== } + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} dev: true /validate-npm-package-license/3.0.4: - resolution: - { integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== } + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 dev: true /validate-npm-package-name/3.0.0: - resolution: - { integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw== } + resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} dependencies: builtins: 1.0.3 dev: true /validator/13.7.0: - resolution: - { integrity: sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== } - engines: { node: '>= 0.10' } + resolution: {integrity: sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==} + engines: {node: '>= 0.10'} dev: false /vary/1.1.2: - resolution: - { integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} /velocityjs/2.0.6: - resolution: - { integrity: sha512-QMYLeYLBX6eqekCin3OPmDAHapaUx3foNFE264ml1/yxRZ8TUUlI1+u6rtN4E8tKNqwzpRPeNgJtjLbgRNK4fw== } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-QMYLeYLBX6eqekCin3OPmDAHapaUx3foNFE264ml1/yxRZ8TUUlI1+u6rtN4E8tKNqwzpRPeNgJtjLbgRNK4fw==} + engines: {node: '>=0.8.0'} hasBin: true dependencies: - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color dev: true /wcwidth/1.0.1: - resolution: - { integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== } + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 /web-streams-polyfill/3.3.3: - resolution: - { integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== } - engines: { node: '>= 8' } + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} dev: false /webidl-conversions/3.0.1: - resolution: - { integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== } + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} /whatwg-url/5.0.0: - resolution: - { integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== } + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - /which-boxed-primitive/1.0.2: - resolution: - { integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== } + /which-boxed-primitive/1.1.0: + resolution: {integrity: sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng==} + engines: {node: '>= 0.4'} dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 + is-bigint: 1.1.0 + is-boolean-object: 1.2.0 + is-number-object: 1.1.0 + is-string: 1.1.0 + is-symbol: 1.1.0 /which-builtin-type/1.2.0: resolution: {integrity: sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 function.prototype.name: 1.1.6 has-tostringtag: 1.0.2 is-async-function: 2.0.0 is-date-object: 1.0.5 is-finalizationregistry: 1.1.0 is-generator-function: 1.0.10 - is-regex: 1.1.4 + is-regex: 1.2.0 is-weakref: 1.0.2 isarray: 2.0.5 - which-boxed-primitive: 1.0.2 + which-boxed-primitive: 1.1.0 which-collection: 1.0.2 - which-typed-array: 1.1.15 + which-typed-array: 1.1.16 /which-collection/1.0.2: - resolution: - { integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} dependencies: is-map: 2.0.3 is-set: 2.0.3 @@ -12964,65 +11947,55 @@ packages: is-weakset: 2.0.3 /which-module/2.0.1: - resolution: - { integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== } + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} dev: true - /which-typed-array/1.1.15: - resolution: - { integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== } - engines: { node: '>= 0.4' } + /which-typed-array/1.1.16: + resolution: {integrity: sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==} + engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.7 + call-bind: 1.0.8 for-each: 0.3.3 - gopd: 1.0.1 + gopd: 1.2.0 has-tostringtag: 1.0.2 /which/1.3.1: - resolution: - { integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== } + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true dependencies: isexe: 2.0.0 /which/2.0.2: - resolution: - { integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== } - engines: { node: '>= 8' } + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} hasBin: true dependencies: isexe: 2.0.0 /widest-line/3.1.0: - resolution: - { integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== } - engines: { node: '>=8' } + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} dependencies: string-width: 4.2.3 /word-wrap/1.2.5: - resolution: - { integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} /wordwrap/1.0.0: - resolution: - { integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== } + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} /workerpool/6.2.1: - resolution: - { integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== } + resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} dev: true /workerpool/6.5.1: - resolution: - { integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== } + resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} /wrap-ansi/5.1.0: - resolution: - { integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== } - engines: { node: '>=6' } + resolution: {integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==} + engines: {node: '>=6'} dependencies: ansi-styles: 3.2.1 string-width: 3.1.0 @@ -13030,39 +12003,34 @@ packages: dev: true /wrap-ansi/6.2.0: - resolution: - { integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== } - engines: { node: '>=8' } + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 /wrap-ansi/7.0.0: - resolution: - { integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== } - engines: { node: '>=10' } + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 /wrap-ansi/8.1.0: - resolution: - { integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== } - engines: { node: '>=12' } + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 /wrappy/1.0.2: - resolution: - { integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== } + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} /write-file-atomic/3.0.3: - resolution: - { integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== } + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} dependencies: imurmurhash: 0.1.4 is-typedarray: 1.0.0 @@ -13071,26 +12039,23 @@ packages: dev: true /write-file-atomic/4.0.2: - resolution: - { integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== } - engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: imurmurhash: 0.1.4 signal-exit: 3.0.7 dev: true /write/1.0.3: - resolution: - { integrity: sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== } - engines: { node: '>=4' } + resolution: {integrity: sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==} + engines: {node: '>=4'} dependencies: mkdirp: 0.5.6 dev: true /ws/7.5.10: - resolution: - { integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== } - engines: { node: '>=8.3.0' } + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -13101,9 +12066,8 @@ packages: optional: true /ws/8.17.1: - resolution: - { integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== } - engines: { node: '>=10.0.0' } + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 utf-8-validate: '>=5.0.2' @@ -13115,94 +12079,78 @@ packages: dev: false /xml-js/1.6.11: - resolution: - { integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== } + resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} hasBin: true dependencies: sax: 1.4.1 /xml2js/0.4.19: - resolution: - { integrity: sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== } + resolution: {integrity: sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==} dependencies: sax: 1.2.1 xmlbuilder: 9.0.7 /xml2js/0.6.2: - resolution: - { integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA== } - engines: { node: '>=4.0.0' } + resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} + engines: {node: '>=4.0.0'} dependencies: sax: 1.2.1 xmlbuilder: 11.0.1 /xmlbuilder/11.0.1: - resolution: - { integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} /xmlbuilder/15.1.1: - resolution: - { integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== } - engines: { node: '>=8.0' } + resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} + engines: {node: '>=8.0'} /xmlbuilder/9.0.7: - resolution: - { integrity: sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ== } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ==} + engines: {node: '>=4.0'} /xstate/4.38.3: - resolution: - { integrity: sha512-SH7nAaaPQx57dx6qvfcIgqKRXIh4L0A1iYEqim4s1u7c9VoCgzZc+63FY90AKU4ZzOC2cfJzTnpO4zK7fCUzzw== } + resolution: {integrity: sha512-SH7nAaaPQx57dx6qvfcIgqKRXIh4L0A1iYEqim4s1u7c9VoCgzZc+63FY90AKU4ZzOC2cfJzTnpO4zK7fCUzzw==} /xtend/4.0.2: - resolution: - { integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== } - engines: { node: '>=0.4' } + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} /y18n/4.0.3: - resolution: - { integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== } + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} dev: true /y18n/5.0.8: - resolution: - { integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== } - engines: { node: '>=10' } + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} /yallist/2.1.2: - resolution: - { integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== } + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} /yallist/3.1.1: - resolution: - { integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== } + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} dev: true /yallist/4.0.0: - resolution: - { integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== } + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} /yaml-ast-parser/0.0.43: - resolution: - { integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== } + resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} dev: true /yaml/1.10.2: - resolution: - { integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== } - engines: { node: '>= 6' } + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} dev: false - /yaml/2.6.0: - resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} + /yaml/2.6.1: + resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} engines: {node: '>= 14'} hasBin: true dev: false /yamljs/0.3.0: - resolution: - { integrity: sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ== } + resolution: {integrity: sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==} hasBin: true dependencies: argparse: 1.0.10 @@ -13210,36 +12158,31 @@ packages: dev: true /yargs-parser/13.1.2: - resolution: - { integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== } + resolution: {integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==} dependencies: camelcase: 5.3.1 decamelize: 1.2.0 dev: true /yargs-parser/18.1.3: - resolution: - { integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== } - engines: { node: '>=6' } + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} dependencies: camelcase: 5.3.1 decamelize: 1.2.0 dev: true /yargs-parser/20.2.4: - resolution: - { integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== } - engines: { node: '>=10' } + resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} + engines: {node: '>=10'} /yargs-parser/21.1.1: - resolution: - { integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== } - engines: { node: '>=12' } + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} /yargs-unparser/2.0.0: - resolution: - { integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== } - engines: { node: '>=10' } + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} dependencies: camelcase: 6.3.0 decamelize: 4.0.0 @@ -13248,8 +12191,7 @@ packages: dev: true /yargs/13.3.2: - resolution: - { integrity: sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== } + resolution: {integrity: sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==} dependencies: cliui: 5.0.0 find-up: 3.0.0 @@ -13264,9 +12206,8 @@ packages: dev: true /yargs/15.4.1: - resolution: - { integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== } - engines: { node: '>=8' } + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} dependencies: cliui: 6.0.0 decamelize: 1.2.0 @@ -13282,9 +12223,8 @@ packages: dev: true /yargs/16.2.0: - resolution: - { integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== } - engines: { node: '>=10' } + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} dependencies: cliui: 7.0.4 escalade: 3.2.0 @@ -13295,9 +12235,8 @@ packages: yargs-parser: 20.2.4 /yargs/17.7.2: - resolution: - { integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== } - engines: { node: '>=12' } + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} dependencies: cliui: 8.0.1 escalade: 3.2.0 @@ -13308,48 +12247,40 @@ packages: yargs-parser: 21.1.1 /yauzl/2.10.0: - resolution: - { integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== } + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} dependencies: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 /yn/3.1.1: - resolution: - { integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== } - engines: { node: '>=6' } + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} /yocto-queue/0.1.0: - resolution: - { integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== } - engines: { node: '>=10' } + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} /yoga-layout-prebuilt/1.10.0: - resolution: - { integrity: sha512-YnOmtSbv4MTf7RGJMK0FvZ+KD8OEe/J5BNnR0GHhD8J/XcG/Qvxgszm0Un6FTHWW4uHlTgP0IztiXQnGyIR45g== } - engines: { node: '>=8' } + resolution: {integrity: sha512-YnOmtSbv4MTf7RGJMK0FvZ+KD8OEe/J5BNnR0GHhD8J/XcG/Qvxgszm0Un6FTHWW4uHlTgP0IztiXQnGyIR45g==} + engines: {node: '>=8'} dependencies: '@types/yoga-layout': 1.9.2 /zen-observable-ts/1.2.5: - resolution: - { integrity: sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg== } + resolution: {integrity: sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==} dependencies: zen-observable: 0.8.15 /zen-observable/0.8.15: - resolution: - { integrity: sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== } + resolution: {integrity: sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==} /zip-stream/4.1.1: - resolution: - { integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ== } - engines: { node: '>= 10' } + resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} + engines: {node: '>= 10'} dependencies: archiver-utils: 3.0.4 compress-commons: 4.1.2 readable-stream: 3.6.2 /zod/3.23.8: - resolution: - { integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== } + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} From ab31b4957016f46b01d61e2399c044a6b7bd63e5 Mon Sep 17 00:00:00 2001 From: Mario Castro Squella Date: Mon, 9 Dec 2024 10:16:29 -0300 Subject: [PATCH 46/47] Remove child-process-promise from dependencies (#1559) * Replace child-process-promise with execa * Add rush change file * Fix broken CLI tests * Fix broken project CLI tests --------- Co-authored-by: Castro, Mario --- ...hild_process_promise_2024-12-05-01-38.json | 10 + common/config/rush/pnpm-lock.yaml | 597 ++++++++---------- packages/cli/package.json | 2 - .../cli/src/services/process/live.impl.ts | 4 +- .../cli/src/services/project-initializer.ts | 4 +- .../cli/test/services/process/live.test.ts | 8 +- .../test/services/project-initializer.test.ts | 12 +- .../framework-common-helpers/package.json | 5 +- .../integration/helper/deps-helper.ts | 4 +- .../cli/cli.build.integration.ts | 8 +- .../cli/cli.clean.integration.ts | 19 +- .../cli/cli.command.integration.ts | 8 +- .../cli/cli.entity.integration.ts | 14 +- .../cli/cli.event-handler.integration.ts | 10 +- .../cli/cli.event.integration.ts | 10 +- .../cli/cli.project.integration.ts | 131 ++-- .../cli/cli.readmodel.integration.ts | 14 +- .../cli/cli.scheduled-command.integration.ts | 8 +- .../cli/cli.type.integration.ts | 8 +- .../framework-integration-tests/package.json | 5 +- 20 files changed, 448 insertions(+), 433 deletions(-) create mode 100644 common/changes/@boostercloud/framework-core/remove_child_process_promise_2024-12-05-01-38.json diff --git a/common/changes/@boostercloud/framework-core/remove_child_process_promise_2024-12-05-01-38.json b/common/changes/@boostercloud/framework-core/remove_child_process_promise_2024-12-05-01-38.json new file mode 100644 index 000000000..fd90679a2 --- /dev/null +++ b/common/changes/@boostercloud/framework-core/remove_child_process_promise_2024-12-05-01-38.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@boostercloud/framework-core", + "comment": "Replace child-process-promise with execa", + "type": "patch" + } + ], + "packageName": "@boostercloud/framework-core" +} \ No newline at end of file diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index e855c03fe..7af40513c 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,8 +8,8 @@ importers: ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.18.2 @@ -51,7 +51,7 @@ importers: devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/jsonwebtoken': 9.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/ws': 8.5.4 '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi @@ -70,17 +70,16 @@ importers: ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^2.18.5 - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-core': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/application-tester': workspace:^2.18.6 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-core': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@oclif/core': 3.15.0 '@oclif/plugin-help': ^5 '@oclif/test': ^3.0.3 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 - '@types/child-process-promise': ^2.2.1 '@types/faker': 5.1.5 '@types/fs-extra': ^9.0.13 '@types/inflected': 1.1.29 @@ -96,7 +95,6 @@ importers: chai: 4.2.0 chai-as-promised: 7.1.1 chalk: ^2.4.2 - child-process-promise: ^2.2.1 copyfiles: ^2.3.0 eslint: ^8.23.1 eslint-config-prettier: 8.3.0 @@ -129,9 +127,8 @@ importers: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 '@oclif/core': 3.15.0_typescript@5.1.6 - '@oclif/plugin-help': 5.2.20_jtknrvqdlvipgdxn6jbxe7dreq + '@oclif/plugin-help': 5.2.20_aqnvwcrfkjmhmdr6bfrmuf3scm chalk: 2.4.2 - child-process-promise: 2.2.1 execa: 2.1.0 fp-ts: 2.16.9 fs-extra: 8.1.0 @@ -147,14 +144,13 @@ importers: '@oclif/test': 3.2.15 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 - '@types/child-process-promise': 2.2.6 '@types/faker': 5.1.5 '@types/fs-extra': 9.0.13 '@types/inflected': 1.1.29 '@types/inquirer': 6.5.0 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -177,18 +173,17 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 - '@types/child-process-promise': ^2.2.1 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 '@types/node': ^18.18.2 @@ -200,13 +195,13 @@ importers: '@typescript-eslint/parser': ^5.0.0 chai: 4.2.0 chai-as-promised: 7.1.1 - child-process-promise: ^2.2.1 class-transformer: ~0.5.1 eslint: ^8.23.1 eslint-config-prettier: 8.3.0 eslint-plugin-import: ^2.26.0 eslint-plugin-prettier: 3.4.0 eslint-plugin-unicorn: ~44.0.2 + execa: ^2.0.3 faker: 5.1.0 mocha: 10.2.0 nyc: ^15.1.0 @@ -221,17 +216,16 @@ importers: dependencies: '@boostercloud/framework-types': link:../framework-types '@effect-ts/core': 0.60.5 - child-process-promise: 2.2.1 class-transformer: 0.5.1 + execa: 2.1.0 tslib: 2.8.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 - '@types/child-process-promise': 2.2.6 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -253,15 +247,15 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm typescript: 5.1.6 ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-common-helpers': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 - '@boostercloud/metadata-booster': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-common-helpers': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 + '@boostercloud/metadata-booster': workspace:^2.18.6 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 '@effect/platform-node': 0.45.26 @@ -328,7 +322,7 @@ importers: effect: 2.4.17 fast-check: 3.23.1 fp-ts: 2.16.9 - graphql-scalars: 1.23.0_graphql@16.9.0 + graphql-scalars: 1.24.0_graphql@16.9.0 graphql-subscriptions: 2.0.0_graphql@16.9.0 inflected: 2.1.0 iterall: 1.3.0 @@ -347,7 +341,7 @@ importers: '@types/inflected': 1.1.29 '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/validator': 13.1.3 @@ -371,26 +365,26 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^2.18.5 - '@boostercloud/cli': workspace:^2.18.5 - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-common-helpers': workspace:^2.18.5 - '@boostercloud/framework-core': workspace:^2.18.5 - '@boostercloud/framework-provider-aws': workspace:^2.18.5 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.18.5 - '@boostercloud/framework-provider-azure': workspace:^2.18.5 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.18.5 - '@boostercloud/framework-provider-local': workspace:^2.18.5 - '@boostercloud/framework-provider-local-infrastructure': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 - '@boostercloud/metadata-booster': workspace:^2.18.5 + '@boostercloud/application-tester': workspace:^2.18.6 + '@boostercloud/cli': workspace:^2.18.6 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-common-helpers': workspace:^2.18.6 + '@boostercloud/framework-core': workspace:^2.18.6 + '@boostercloud/framework-provider-aws': workspace:^2.18.6 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^2.18.6 + '@boostercloud/framework-provider-azure': workspace:^2.18.6 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^2.18.6 + '@boostercloud/framework-provider-local': workspace:^2.18.6 + '@boostercloud/framework-provider-local-infrastructure': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 + '@boostercloud/metadata-booster': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@effect/cli': 0.35.26 '@effect/platform': 0.48.24 @@ -404,7 +398,6 @@ importers: '@types/chai': 4.2.18 '@types/chai-arrays': 2.0.0 '@types/chai-as-promised': 7.1.4 - '@types/child-process-promise': ^2.2.1 '@types/faker': 5.1.5 '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 @@ -419,7 +412,6 @@ importers: cdktf-cli: 0.19.2 chai: 4.2.0 chai-as-promised: 7.1.1 - child-process-promise: ^2.2.1 concurrently: ~8.2.2 constructs: ^10.0.0 cross-fetch: 3.1.5 @@ -429,6 +421,7 @@ importers: eslint-plugin-import: ^2.26.0 eslint-plugin-prettier: 3.4.0 eslint-plugin-unicorn: ~44.0.2 + execa: ^2.0.3 express: ^4.19.2 express-unless: 2.1.3 faker: 5.1.0 @@ -471,6 +464,7 @@ importers: '@effect/typeclass': 0.23.17_effect@2.4.17 aws-sdk: 2.853.0 effect: 2.4.17 + execa: 2.1.0 express: 4.21.1 express-unless: 2.1.3 fast-check: 3.23.1 @@ -491,12 +485,11 @@ importers: '@types/chai': 4.2.18 '@types/chai-arrays': 2.0.0 '@types/chai-as-promised': 7.1.4 - '@types/child-process-promise': 2.2.6 '@types/faker': 5.1.5 '@types/jsonwebtoken': 9.0.1 '@types/mocha': 10.0.1 '@types/nedb': 1.8.16 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay @@ -505,7 +498,6 @@ importers: cdktf-cli: 0.19.2_ink@3.2.0+react@17.0.2 chai: 4.2.0 chai-as-promised: 7.1.1_chai@4.2.0 - child-process-promise: 2.2.1 concurrently: 8.2.2 constructs: 10.4.2 cross-fetch: 3.1.5 @@ -530,15 +522,15 @@ importers: serverless-artillery: 0.5.2 sinon: 9.2.3 subscriptions-transport-ws: 0.11.0_graphql@16.9.0 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm ts-patch: 3.1.2 typescript: 5.1.6 ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-common-helpers': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-common-helpers': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -586,7 +578,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -609,7 +601,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm typescript: 5.1.6 velocityjs: 2.0.6 @@ -632,10 +624,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-common-helpers': workspace:^2.18.5 - '@boostercloud/framework-provider-aws': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-common-helpers': workspace:^2.18.6 + '@boostercloud/framework-provider-aws': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -717,7 +709,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/rewire': 2.5.30 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -738,7 +730,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm typescript: 5.1.6 velocityjs: 2.0.6 @@ -749,9 +741,9 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-common-helpers': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-common-helpers': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -795,7 +787,7 @@ importers: '@types/chai-as-promised': 7.1.4 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay @@ -814,7 +806,7 @@ importers: rimraf: 5.0.10 sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm typescript: 5.1.6 ../../packages/framework-provider-azure-infrastructure: @@ -823,11 +815,11 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-common-helpers': workspace:^2.18.5 - '@boostercloud/framework-core': workspace:^2.18.5 - '@boostercloud/framework-provider-azure': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-common-helpers': workspace:^2.18.6 + '@boostercloud/framework-core': workspace:^2.18.6 + '@boostercloud/framework-provider-azure': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@cdktf/provider-azurerm': 13.3.0 '@cdktf/provider-time': 9.0.2 '@effect-ts/core': ^0.60.4 @@ -912,7 +904,7 @@ importers: '@types/fs-extra': 9.0.13 '@types/mocha': 10.0.1 '@types/mustache': 4.1.0 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 @@ -929,14 +921,14 @@ importers: prettier: 2.3.0 rimraf: 5.0.10 sinon: 9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm typescript: 5.1.6 ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-common-helpers': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-common-helpers': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@seald-io/nedb': 4.0.2 '@types/chai': 4.2.18 @@ -985,7 +977,7 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/sinon-express-mock': 1.3.12 @@ -1008,15 +1000,15 @@ importers: sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm typescript: 5.1.6 ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/framework-common-helpers': workspace:^2.18.5 - '@boostercloud/framework-provider-local': workspace:^2.18.5 - '@boostercloud/framework-types': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/framework-common-helpers': workspace:^2.18.6 + '@boostercloud/framework-provider-local': workspace:^2.18.6 + '@boostercloud/framework-types': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1069,7 +1061,7 @@ importers: '@types/express': 4.17.21 '@types/faker': 5.1.5 '@types/mocha': 10.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/node-schedule': 1.3.2 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 @@ -1091,13 +1083,13 @@ importers: sinon: 9.2.3 sinon-chai: 3.5.0_chai@4.2.0+sinon@9.2.3 sinon-express-mock: 2.2.1_sinon@9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm typescript: 5.1.6 ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.5 - '@boostercloud/metadata-booster': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 + '@boostercloud/metadata-booster': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@effect/cli': 0.35.26 @@ -1156,7 +1148,7 @@ importers: '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 '@types/mocha': 10.0.1 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/sinon': 10.0.0 '@types/sinon-chai': 3.2.5 '@types/uuid': 8.3.0 @@ -1181,7 +1173,7 @@ importers: ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^2.18.5 + '@boostercloud/eslint-config': workspace:^2.18.6 '@effect-ts/core': ^0.60.4 '@types/node': ^18.18.2 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -1207,7 +1199,7 @@ importers: tslib: 2.8.1 devDependencies: '@boostercloud/eslint-config': link:../../tools/eslint-config - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@typescript-eslint/eslint-plugin': 5.62.0_uve4wv4elfpx2l3zvshgwzvkay '@typescript-eslint/parser': 5.62.0_cfup2jodhmurb5mm6vjw5usxmi eslint: 8.57.1 @@ -1218,7 +1210,7 @@ importers: prettier: 2.3.0 rimraf: 5.0.10 sinon: 9.2.3 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm ts-patch: 3.1.2 typescript: 5.1.6 @@ -2751,7 +2743,7 @@ packages: diff: 5.2.0 fast-deep-equal: 3.1.3 string-width: 4.2.3 - table: 6.8.2 + table: 6.9.0 dev: false /@aws-cdk/core/1.204.0_hol6usdabdbzhugfw355k4ebam: @@ -2890,7 +2882,7 @@ packages: '@azure/core-client': 1.9.2 '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.18.0 + '@azure/core-rest-pipeline': 1.18.1 tslib: 2.8.1 transitivePeerDependencies: - supports-color @@ -2905,7 +2897,7 @@ packages: '@azure/core-client': 1.9.2 '@azure/core-lro': 2.7.2 '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.18.0 + '@azure/core-rest-pipeline': 1.18.1 tslib: 2.8.1 transitivePeerDependencies: - supports-color @@ -2946,7 +2938,7 @@ packages: dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.9.0 - '@azure/core-rest-pipeline': 1.18.0 + '@azure/core-rest-pipeline': 1.18.1 '@azure/core-tracing': 1.2.0 '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 @@ -2972,8 +2964,8 @@ packages: tslib: 2.8.1 dev: false - /@azure/core-rest-pipeline/1.18.0: - resolution: {integrity: sha512-QSoGUp4Eq/gohEFNJaUOwTN7BCc2nHTjjbm75JT0aD7W65PWM1H/tItz0GsABn22uaKyGxiMhWQLt2r+FGU89Q==} + /@azure/core-rest-pipeline/1.18.1: + resolution: {integrity: sha512-/wS73UEDrxroUEVywEm7J0p2c+IIiVxyfigCGfsKvCxxCET4V/Hef2aURqltrXMRjNmdmt5IuOgIpl8f6xdO5A==} engines: {node: '>=18.0.0'} dependencies: '@azure/abort-controller': 2.1.2 @@ -3009,7 +3001,7 @@ packages: dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.9.0 - '@azure/core-rest-pipeline': 1.18.0 + '@azure/core-rest-pipeline': 1.18.1 '@azure/core-tracing': 1.2.0 '@azure/core-util': 1.11.0 fast-json-stable-stringify: 2.1.0 @@ -3052,7 +3044,7 @@ packages: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.9.0 '@azure/core-client': 1.9.2 - '@azure/core-rest-pipeline': 1.18.0 + '@azure/core-rest-pipeline': 1.18.1 '@azure/core-tracing': 1.2.0 '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 @@ -3114,7 +3106,7 @@ packages: dependencies: '@azure/core-auth': 1.9.0 '@azure/core-client': 1.9.2 - '@azure/core-rest-pipeline': 1.18.0 + '@azure/core-rest-pipeline': 1.18.1 '@azure/core-tracing': 1.2.0 '@azure/logger': 1.1.4 jsonwebtoken: 9.0.1 @@ -3131,8 +3123,8 @@ packages: js-tokens: 4.0.0 picocolors: 1.1.1 - /@babel/compat-data/7.26.2: - resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} + /@babel/compat-data/7.26.3: + resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==} engines: {node: '>=6.9.0'} dev: true @@ -3142,14 +3134,14 @@ packages: dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.2 + '@babel/generator': 7.26.3 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-module-transforms': 7.26.0_@babel+core@7.26.0 '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.2 + '@babel/parser': 7.26.3 '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/traverse': 7.26.3 + '@babel/types': 7.26.3 convert-source-map: 2.0.0 debug: 4.3.7 gensync: 1.0.0-beta.2 @@ -3159,12 +3151,12 @@ packages: - supports-color dev: true - /@babel/generator/7.26.2: - resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} + /@babel/generator/7.26.3: + resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 @@ -3173,7 +3165,7 @@ packages: resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.26.2 + '@babel/compat-data': 7.26.3 '@babel/helper-validator-option': 7.25.9 browserslist: 4.24.2 lru-cache: 5.1.1 @@ -3184,8 +3176,8 @@ packages: resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/traverse': 7.26.3 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color dev: true @@ -3199,7 +3191,7 @@ packages: '@babel/core': 7.26.0 '@babel/helper-module-imports': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.26.3 transitivePeerDependencies: - supports-color dev: true @@ -3222,15 +3214,15 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 dev: true - /@babel/parser/7.26.2: - resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} + /@babel/parser/7.26.3: + resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 /@babel/runtime/7.26.0: resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} @@ -3244,26 +3236,26 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 - /@babel/traverse/7.25.9: - resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} + /@babel/traverse/7.26.3: + resolution: {integrity: sha512-yTmc8J+Sj8yLzwr4PD5Xb/WF3bOYu2C2OoSZPzbuqRm4n98XirsbzaX+GloeO376UnSYIYJ4NCanwV5/ugZkwA==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.2 - '@babel/parser': 7.26.2 + '@babel/generator': 7.26.3 + '@babel/parser': 7.26.3 '@babel/template': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types/7.26.0: - resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} + /@babel/types/7.26.3: + resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.25.9 @@ -3299,9 +3291,9 @@ packages: ink-spinner: 4.0.3_ink@3.2.0+react@17.0.2 ink-testing-library: 2.1.0 ink-use-stdout-dimensions: 1.0.5_ink@3.2.0+react@17.0.2 - jsii: 5.6.0 + jsii: 5.7.1 jsii-pacmak: 1.105.0 - jsii-srcmak: 0.1.1304 + jsii-srcmak: 0.1.1307 lodash.isequal: 4.5.0 log4js: 6.9.1 minimatch: 5.1.6 @@ -3351,9 +3343,9 @@ packages: /@cdktf/hcl2cdk/0.19.2: resolution: {integrity: sha512-v0UNRvvzuCi3SnmSAgBFAnWavT0ybR1AzkK8ndgfbB5JLDoNm0iJV0MOTURZF+I0O3V9u4RZsw4DVNPdil2EEA==} dependencies: - '@babel/generator': 7.26.2 + '@babel/generator': 7.26.3 '@babel/template': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 '@cdktf/commons': 0.19.2 '@cdktf/hcl2json': 0.19.2 '@cdktf/provider-generator': 0.19.2 @@ -3363,7 +3355,7 @@ packages: glob: 10.4.5 graphology: 0.25.4_graphology-types@0.24.8 graphology-types: 0.24.8 - jsii-rosetta: 5.6.0 + jsii-rosetta: 5.7.1 prettier: 2.8.8 reserved-words: 0.1.2 zod: 3.23.8 @@ -3404,7 +3396,7 @@ packages: codemaker: 1.105.0 deepmerge: 4.3.1 fs-extra: 8.1.0 - jsii-srcmak: 0.1.1304 + jsii-srcmak: 0.1.1307 transitivePeerDependencies: - debug - supports-color @@ -3639,7 +3631,7 @@ packages: dependencies: '@inquirer/type': 1.5.5 '@types/mute-stream': 0.0.1 - '@types/node': 20.17.7 + '@types/node': 20.17.9 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3658,7 +3650,7 @@ packages: dependencies: '@inquirer/type': 1.5.5 '@types/mute-stream': 0.0.4 - '@types/node': 20.17.7 + '@types/node': 20.17.9 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -3802,13 +3794,6 @@ packages: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - /@jsii/check-node/1.104.0: - resolution: {integrity: sha512-5rAn4y11APxq69DmTKtAACmDuOymcTiz29CE7s0AeWA5jzpxBRhkaj8xwixiSQtkoBFk+Vpoi2eNctCvwLdFaw==} - engines: {node: '>= 14.17.0'} - dependencies: - chalk: 4.1.2 - semver: 7.6.3 - /@jsii/check-node/1.105.0: resolution: {integrity: sha512-7QIzioc9//TwRjLhGMllcTBfIvJ0h6OeGVUEYdXB1DpCNtMbr8Xcj5KaeKHRAF9iRjB1d0IGzKm4A8fRUzIf+Q==} engines: {node: '>= 14.17.0'} @@ -3852,7 +3837,7 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - /@oclif/core/2.16.0_jtknrvqdlvipgdxn6jbxe7dreq: + /@oclif/core/2.16.0_aqnvwcrfkjmhmdr6bfrmuf3scm: resolution: {integrity: sha512-dL6atBH0zCZl1A1IXCKJgLPrM/wR7K+Wi401E/IvqsK8m2iCHW+0TEOGrans/cuN3oTW+uxIyJFHJ8Im0k4qBw==} engines: {node: '>=14.0.0'} dependencies: @@ -3879,7 +3864,7 @@ packages: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - ts-node: 10.9.2_jtknrvqdlvipgdxn6jbxe7dreq + ts-node: 10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm tslib: 2.8.1 widest-line: 3.1.0 wordwrap: 1.0.0 @@ -3960,11 +3945,11 @@ packages: wrap-ansi: 7.0.0 dev: true - /@oclif/plugin-help/5.2.20_jtknrvqdlvipgdxn6jbxe7dreq: + /@oclif/plugin-help/5.2.20_aqnvwcrfkjmhmdr6bfrmuf3scm: resolution: {integrity: sha512-u+GXX/KAGL9S10LxAwNUaWdzbEBARJ92ogmM7g3gDVud2HioCmvWQCDohNRVZ9GYV9oKwZ/M8xwd6a1d95rEKQ==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.16.0_jtknrvqdlvipgdxn6jbxe7dreq + '@oclif/core': 2.16.0_aqnvwcrfkjmhmdr6bfrmuf3scm transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -4233,7 +4218,7 @@ packages: dependencies: adm-zip: 0.5.16 archiver: 5.3.0 - axios: 1.7.7 + axios: 1.7.9 fast-glob: 3.3.2 https-proxy-agent: 5.0.1_supports-color@8.1.1 ignore: 5.3.2 @@ -4402,14 +4387,14 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 18.19.65 + '@types/node': 18.19.67 /@types/cacheable-request/6.0.3: resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/responselike': 1.0.3 dev: true @@ -4429,32 +4414,26 @@ packages: resolution: {integrity: sha512-rS27+EkB/RE1Iz3u0XtVL5q36MGDWbgYe7zWiodyKNUnthxY0rukK5V36eiUCtCisB7NN8zKYH6DO2M37qxFEQ==} dev: true - /@types/child-process-promise/2.2.6: - resolution: {integrity: sha512-g0pOHijr6Trug43D2bV0PLSIsSHa/xHEES2HeX5BAlduq1vW0nZcq27Zeud5lgmNB+kPYYVqiMap32EHGTco/w==} - dependencies: - '@types/node': 18.19.65 - dev: true - /@types/cli-progress/3.11.6: resolution: {integrity: sha512-cE3+jb9WRlu+uOSAugewNpITJDt1VF8dHOopPO4IABFc3SXYL5WE/+PTz/FCdZRRfIujiWW3n3aMbv1eIGVRWA==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 /@types/connect/3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 /@types/cors/2.8.17: resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: true /@types/express-serve-static-core/4.19.6: resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -4474,14 +4453,14 @@ packages: /@types/fs-extra/9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: true /@types/glob/8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.19.65 + '@types/node': 18.19.67 /@types/http-cache-semantics/4.0.4: resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} @@ -4510,12 +4489,12 @@ packages: /@types/jsonwebtoken/9.0.1: resolution: {integrity: sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: true /@types/lodash/4.17.13: @@ -4539,29 +4518,29 @@ packages: /@types/mute-stream/0.0.1: resolution: {integrity: sha512-0yQLzYhCqGz7CQPE3iDmYjhb7KMBFOP+tBkyw+/Y2YyDI5wpS7itXXxneN1zSsUwWx3Ji6YiVYrhAnpQGS/vkw==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 /@types/mute-stream/0.0.4: resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 /@types/nedb/1.8.16: resolution: {integrity: sha512-ND+uzwAZk7ZI9byOvHGOcZe2R9XUcLF698yDJKn00trFvh+GaemkX3gQKCSKtObjDpv8Uuou+k8v4x4scPr4TA==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: true /@types/needle/2.5.3: resolution: {integrity: sha512-RwgTwMRaedfyCBe5SSWMpm1Yqzc5UPZEMw0eAd09OSyV93nLRj9/evMGZmgFeHKzUOd4xxtHvgtc+rjcBjI1Qg==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: false /@types/node-schedule/1.3.2: resolution: {integrity: sha512-Y0CqdAr+lCpArT8CJJjJq4U2v8Bb5e7ru2nV/NhDdaptCMCRdOL3Y7tAhen39HluQMaIKWvPbDuiFBUQpg7Srw==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: true /@types/node/10.17.60: @@ -4573,13 +4552,13 @@ packages: dependencies: undici-types: 5.26.5 - /@types/node/18.19.65: - resolution: {integrity: sha512-Ay5BZuO1UkTmVHzZJNvZKw/E+iB3GQABb6kijEz89w2JrfhNA+M/ebp18pfz9Gqe9ywhMC8AA8yC01lZq48J+Q==} + /@types/node/18.19.67: + resolution: {integrity: sha512-wI8uHusga+0ZugNp0Ol/3BqQfEcCCNfojtO6Oou9iVNGPTL6QNSdnUdqq85fRgIorLhLMuPIKpsN98QE9Nh+KQ==} dependencies: undici-types: 5.26.5 - /@types/node/20.17.7: - resolution: {integrity: sha512-sZXXnpBFMKbao30dUAvzKbdwA2JM1fwUtVEq/kxKuPI5mMwZiRElCpTXb0Biq/LMEVpXDZL5G5V0RPnxKeyaYg==} + /@types/node/20.17.9: + resolution: {integrity: sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==} dependencies: undici-types: 6.19.8 @@ -4596,7 +4575,7 @@ packages: /@types/responselike/1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: true /@types/rewire/2.5.30: @@ -4610,13 +4589,13 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.65 + '@types/node': 18.19.67 /@types/serve-static/1.15.7: resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/send': 0.17.4 /@types/sinon-chai/3.2.5: @@ -4641,7 +4620,7 @@ packages: /@types/through/0.0.33: resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: true /@types/uuid/8.3.0: @@ -4658,14 +4637,14 @@ packages: /@types/ws/8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 dev: true /@types/yauzl/2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 18.19.65 + '@types/node': 18.19.67 optional: true /@types/yoga-layout/1.9.2: @@ -5080,7 +5059,7 @@ packages: es-abstract: 1.23.5 es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 - is-string: 1.0.7 + is-string: 1.1.0 /array-union/2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} @@ -5207,8 +5186,8 @@ packages: uuid: 3.3.2 xml2js: 0.4.19 - /axios/1.7.7: - resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + /axios/1.7.9: + resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} dependencies: follow-redirects: 1.15.9 form-data: 4.0.1 @@ -5296,8 +5275,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001684 - electron-to-chromium: 1.5.64 + caniuse-lite: 1.0.30001686 + electron-to-chromium: 1.5.68 node-releases: 2.0.18 update-browserslist-db: 1.1.1_browserslist@4.24.2 dev: true @@ -5412,8 +5391,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - /caniuse-lite/1.0.30001684: - resolution: {integrity: sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==} + /caniuse-lite/1.0.30001686: + resolution: {integrity: sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==} dev: true /cardinal/2.1.1: @@ -5459,7 +5438,7 @@ packages: https-proxy-agent: 5.0.1 ink-select-input: 4.2.2_ink@3.2.0+react@17.0.2 ink-table: 3.1.0_ink@3.2.0+react@17.0.2 - jsii: 5.6.0 + jsii: 5.7.1 jsii-pacmak: 1.105.0 minimatch: 5.1.6 node-fetch: 2.7.0 @@ -5577,13 +5556,6 @@ packages: stream-promise: 3.2.0 dev: true - /child-process-promise/2.2.1: - resolution: {integrity: sha512-Fi4aNdqBsr0mv+jgWxcZ/7rAIC2mgihrptyVI4foh/rrjY/3BNjfP9+oaiFx/fzim+1ZyCNBae0DlyfQhSugog==} - dependencies: - cross-spawn: 4.0.2 - node-version: 1.2.0 - promise-polyfill: 6.1.0 - /chokidar/3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -5881,7 +5853,7 @@ packages: date-fns: 2.30.0 lodash: 4.17.21 rxjs: 7.8.1 - shell-quote: 1.8.1 + shell-quote: 1.8.2 spawn-command: 0.0.2 supports-color: 8.1.1 tree-kill: 1.2.2 @@ -5989,12 +5961,6 @@ packages: transitivePeerDependencies: - encoding - /cross-spawn/4.0.2: - resolution: {integrity: sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==} - dependencies: - lru-cache: 4.1.5 - which: 1.3.1 - /cross-spawn/6.0.6: resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} engines: {node: '>=4.8'} @@ -6208,7 +6174,7 @@ packages: is-arguments: 1.1.1 is-array-buffer: 3.0.4 is-date-object: 1.0.5 - is-regex: 1.1.4 + is-regex: 1.2.0 is-shared-array-buffer: 1.0.3 isarray: 2.0.5 object-is: 1.1.6 @@ -6216,9 +6182,9 @@ packages: object.assign: 4.1.5 regexp.prototype.flags: 1.5.3 side-channel: 1.0.6 - which-boxed-primitive: 1.0.2 + which-boxed-primitive: 1.1.0 which-collection: 1.0.2 - which-typed-array: 1.1.15 + which-typed-array: 1.1.16 /deep-extend/0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} @@ -6264,7 +6230,7 @@ packages: dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 - gopd: 1.0.1 + gopd: 1.2.0 /define-lazy-prop/2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} @@ -6400,8 +6366,8 @@ packages: dependencies: jake: 10.9.2 - /electron-to-chromium/1.5.64: - resolution: {integrity: sha512-IXEuxU+5ClW2IGEYFC2T7szbyVgehupCWQe5GNh+H065CD6U6IFN0s4KeAMFGNmQolRU4IV7zGBWSYMmZ8uuqQ==} + /electron-to-chromium/1.5.68: + resolution: {integrity: sha512-FgMdJlma0OzUYlbrtZ4AeXjKxKPk6KT8WOP8BjcqxWtlg8qyJQjRzPJzUtUn5GBg1oQ26hFs7HOOHJMYiJRnvQ==} dev: true /emoji-regex/7.0.3: @@ -6452,24 +6418,24 @@ packages: es-errors: 1.3.0 es-object-atoms: 1.0.0 es-set-tostringtag: 2.0.3 - es-to-primitive: 1.2.1 + es-to-primitive: 1.3.0 function.prototype.name: 1.1.6 get-intrinsic: 1.2.4 get-symbol-description: 1.0.2 globalthis: 1.0.4 - gopd: 1.0.1 + gopd: 1.2.0 has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 + has-proto: 1.1.0 + has-symbols: 1.1.0 hasown: 2.0.2 internal-slot: 1.0.7 is-array-buffer: 3.0.4 is-callable: 1.2.7 is-data-view: 1.0.1 is-negative-zero: 2.0.3 - is-regex: 1.1.4 + is-regex: 1.2.0 is-shared-array-buffer: 1.0.3 - is-string: 1.0.7 + is-string: 1.1.0 is-typed-array: 1.1.13 is-weakref: 1.0.2 object-inspect: 1.13.3 @@ -6486,7 +6452,7 @@ packages: typed-array-byte-offset: 1.0.3 typed-array-length: 1.0.7 unbox-primitive: 1.0.2 - which-typed-array: 1.1.15 + which-typed-array: 1.1.16 /es-define-property/1.0.0: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} @@ -6503,11 +6469,11 @@ packages: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 - has-symbols: 1.0.3 + has-symbols: 1.1.0 is-arguments: 1.1.1 is-map: 2.0.3 is-set: 2.0.3 - is-string: 1.0.7 + is-string: 1.1.0 isarray: 2.0.5 stop-iteration-iterator: 1.0.0 @@ -6530,13 +6496,13 @@ packages: dependencies: hasown: 2.0.2 - /es-to-primitive/1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + /es-to-primitive/1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 - is-symbol: 1.0.4 + is-symbol: 1.1.0 /es5-ext/0.10.64: resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} @@ -7059,7 +7025,7 @@ packages: dependencies: '@types/chai': 4.2.18 '@types/lodash': 4.17.13 - '@types/node': 18.19.65 + '@types/node': 18.19.67 '@types/sinon': 10.0.0 lodash: 4.17.21 mock-stdin: 1.0.0 @@ -7456,8 +7422,8 @@ packages: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 + has-proto: 1.1.0 + has-symbols: 1.1.0 hasown: 2.0.2 /get-package-type/0.1.0: @@ -7581,7 +7547,7 @@ packages: engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 - gopd: 1.0.1 + gopd: 1.2.0 /globby/11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -7594,10 +7560,9 @@ packages: merge2: 1.4.1 slash: 3.0.0 - /gopd/1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - dependencies: - get-intrinsic: 1.2.4 + /gopd/1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} /got/11.8.6: resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} @@ -7640,8 +7605,8 @@ packages: graphology-types: 0.24.8 obliterator: 2.0.4 - /graphql-scalars/1.23.0_graphql@16.9.0: - resolution: {integrity: sha512-YTRNcwitkn8CqYcleKOx9IvedA8JIERn8BRq21nlKgOr4NEcTaWEG0sT+H92eF3ALTFbPgsqfft4cw+MGgv0Gg==} + /graphql-scalars/1.24.0_graphql@16.9.0: + resolution: {integrity: sha512-olbFN39m0XsHHESACUdd7jWU/lGxMMS1B7NZ8XqpqhKZrjBxzeGYAnQ4Ax//huYds771wb7gCznA+65QDuUa+g==} engines: {node: '>=10'} peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -7688,19 +7653,21 @@ packages: dependencies: es-define-property: 1.0.0 - /has-proto/1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + /has-proto/1.1.0: + resolution: {integrity: sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q==} engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 - /has-symbols/1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + /has-symbols/1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} /has-tostringtag/1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.3 + has-symbols: 1.1.0 /hasha/5.2.2: resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==} @@ -8037,8 +8004,9 @@ packages: dependencies: has-tostringtag: 1.0.2 - /is-bigint/1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + /is-bigint/1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} dependencies: has-bigints: 1.0.2 @@ -8048,8 +8016,8 @@ packages: dependencies: binary-extensions: 2.3.0 - /is-boolean-object/1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + /is-boolean-object/1.2.0: + resolution: {integrity: sha512-kR5g0+dXf/+kXnqI+lu0URKYPKgICtHGGNCDSB10AaUFj3o/HkB3u7WfpRBJGFopxxY0oH3ux7ZsDjLtK7xqvw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -8152,10 +8120,11 @@ packages: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} - /is-number-object/1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + /is-number-object/1.1.0: + resolution: {integrity: sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw==} engines: {node: '>= 0.4'} dependencies: + call-bind: 1.0.7 has-tostringtag: 1.0.2 /is-number/7.0.0: @@ -8180,12 +8149,14 @@ packages: resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} dev: true - /is-regex/1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + /is-regex/1.2.0: + resolution: {integrity: sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 + gopd: 1.2.0 has-tostringtag: 1.0.2 + hasown: 2.0.2 /is-set/2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} @@ -8206,23 +8177,26 @@ packages: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - /is-string/1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + /is-string/1.1.0: + resolution: {integrity: sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g==} engines: {node: '>= 0.4'} dependencies: + call-bind: 1.0.7 has-tostringtag: 1.0.2 - /is-symbol/1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + /is-symbol/1.1.0: + resolution: {integrity: sha512-qS8KkNNXUZ/I+nX6QT8ZS1/Yx0A444yhzdTKxCzKkNjQ9sHErBxJnJAgh+f5YhusYECEcjo4XcyH87hn6+ks0A==} engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.3 + call-bind: 1.0.7 + has-symbols: 1.1.0 + safe-regex-test: 1.0.3 /is-typed-array/1.1.13: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.15 + which-typed-array: 1.1.16 /is-typedarray/1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} @@ -8433,7 +8407,7 @@ packages: xmlbuilder: 15.1.1 yargs: 16.2.0 - /jsii-pacmak/1.105.0_jsii-rosetta@5.6.0: + /jsii-pacmak/1.105.0_jsii-rosetta@5.7.1: resolution: {integrity: sha512-oTQSoCfBite5cb+gwu2N6SWoJY/vteQSiCI24flo9UqR+PdGBlFDIJGPciPS6ZEC2v20et4YSJYyHFXFGfMQsQ==} engines: {node: '>= 14.17.0'} hasBin: true @@ -8448,7 +8422,7 @@ packages: escape-string-regexp: 4.0.0 fs-extra: 10.1.0 jsii-reflect: 1.105.0 - jsii-rosetta: 5.6.0 + jsii-rosetta: 5.7.1 semver: 7.6.3 spdx-license-list: 6.9.0 xmlbuilder: 15.1.1 @@ -8466,46 +8440,46 @@ packages: oo-ascii-tree: 1.105.0 yargs: 16.2.0 - /jsii-rosetta/5.6.0: - resolution: {integrity: sha512-PSt2PFK1ssLcRAiGnK+k0On61Idh8uTCJcofC+vPr3dOgbVNbtIVI70z9Uw2bOwByrJ+ApHewubi7cWhybEcrA==} + /jsii-rosetta/5.7.1: + resolution: {integrity: sha512-joxTYrpaYYUFpDYwNhf0lHyp1i6ZfXjpl2AkSCEd6vd0FvmK00tKbWu8UnY/dA7ryI1hvDkm1MTi6f4s36ZzZg==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: - '@jsii/check-node': 1.104.0 + '@jsii/check-node': 1.105.0 '@jsii/spec': 1.105.0 '@xmldom/xmldom': 0.9.5 chalk: 4.1.2 commonmark: 0.31.2 fast-glob: 3.3.2 - jsii: 5.6.0 + jsii: 5.7.1 semver: 7.6.3 semver-intersect: 1.5.0 stream-json: 1.9.1 - typescript: 5.6.3 + typescript: 5.7.2 workerpool: 6.5.1 yargs: 17.7.2 transitivePeerDependencies: - supports-color - /jsii-srcmak/0.1.1304: - resolution: {integrity: sha512-vqnTfGrT2thnetvtgu+BqidbUcPOShSf5VweCBhDApMDSZFtVJEjj/SxKuiG9iu9VNcYjlC5bpxwqcgY5aAbog==} + /jsii-srcmak/0.1.1307: + resolution: {integrity: sha512-XUCy2Bmg1N6XKE/QgwOoh7y5jk2jG90PhHRsXeznRfuruUZviy/9oceBZH99yMs9FOYWXGeozg+LIUBx4H/uXg==} hasBin: true dependencies: fs-extra: 9.1.0 - jsii: 5.6.0 - jsii-pacmak: 1.105.0_jsii-rosetta@5.6.0 - jsii-rosetta: 5.6.0 + jsii: 5.7.1 + jsii-pacmak: 1.105.0_jsii-rosetta@5.7.1 + jsii-rosetta: 5.7.1 ncp: 2.0.0 yargs: 17.7.2 transitivePeerDependencies: - supports-color - /jsii/5.6.0: - resolution: {integrity: sha512-XBXAF9a4UF2HE+LMSa+WDuYRNpmZlBxHrXaTVIFumo0oAuKb9eauPd4slwgQnCftyP5iyk8zX/Z2y4I3yQVcfA==} + /jsii/5.7.1: + resolution: {integrity: sha512-EQ9HWmzD+Xpe+yciMQUx3i3Rm1ZVVeIXADbA53KSCDDbd9tqHvZ9kTOrFXakCXcaWIOqXFro+2TLiIIx5HtJhQ==} engines: {node: '>= 18.12.0'} hasBin: true dependencies: - '@jsii/check-node': 1.104.0 + '@jsii/check-node': 1.105.0 '@jsii/spec': 1.105.0 case: 1.6.3 chalk: 4.1.2 @@ -8515,7 +8489,7 @@ packages: semver-intersect: 1.5.0 sort-json: 2.0.1 spdx-license-list: 6.9.0 - typescript: 5.6.3 + typescript: 5.7.2 yargs: 17.7.2 transitivePeerDependencies: - supports-color @@ -8897,12 +8871,6 @@ packages: /lru-cache/10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - /lru-cache/4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} - dependencies: - pseudomap: 1.0.2 - yallist: 2.1.2 - /lru-cache/5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: @@ -9394,10 +9362,6 @@ packages: sorted-array-functions: 1.3.0 dev: false - /node-version/1.2.0: - resolution: {integrity: sha512-ma6oU4Sk0qOoKEAymVoTvk8EdXEobdS7m/mAGhDJ8Rouugho48crHBORAmy5BoOcv8wraPM6xumapQp5hl4iIQ==} - engines: {node: '>=6.0.0'} - /noms/0.0.0: resolution: {integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==} dependencies: @@ -9519,7 +9483,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - has-symbols: 1.0.3 + has-symbols: 1.1.0 object-keys: 1.1.1 /object.fromentries/2.0.8: @@ -9989,9 +9953,6 @@ packages: engines: {node: '>=0.4.0'} dev: true - /promise-polyfill/6.1.0: - resolution: {integrity: sha512-g0LWaH0gFsxovsU7R5LrrhHhWAWiHRnh1GPrhXnPgYsDkIqjRYUYSZEsej/wtleDrz5xVSIDbeKfidztp2XHFQ==} - /promise-queue/2.2.5: resolution: {integrity: sha512-p/iXrPSVfnqPft24ZdNNLECw/UrtLTpT3jpAAMzl/o5/rDsGCPo3/CQS2611flL6LkoEJ3oQZw7C8Q80ZISXRQ==} engines: {node: '>= 0.8.0'} @@ -10026,9 +9987,6 @@ packages: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: true - /pseudomap/1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - /pump/3.0.2: resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} dependencies: @@ -10108,7 +10066,7 @@ packages: /react-devtools-core/4.28.5: resolution: {integrity: sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==} dependencies: - shell-quote: 1.8.1 + shell-quote: 1.8.2 ws: 7.5.10 transitivePeerDependencies: - bufferutil @@ -10223,7 +10181,7 @@ packages: es-abstract: 1.23.5 es-errors: 1.3.0 get-intrinsic: 1.2.4 - gopd: 1.0.1 + gopd: 1.2.0 which-builtin-type: 1.2.0 /regenerator-runtime/0.14.1: @@ -10417,7 +10375,7 @@ packages: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 - has-symbols: 1.0.3 + has-symbols: 1.1.0 isarray: 2.0.5 /safe-buffer/5.1.2: @@ -10432,7 +10390,7 @@ packages: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 - is-regex: 1.1.4 + is-regex: 1.2.0 /safe-regex/2.1.1: resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} @@ -10616,7 +10574,7 @@ packages: es-errors: 1.3.0 function-bind: 1.1.2 get-intrinsic: 1.2.4 - gopd: 1.0.1 + gopd: 1.2.0 has-property-descriptors: 1.0.2 /set-function-name/2.0.2: @@ -10657,8 +10615,9 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - /shell-quote/1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + /shell-quote/1.8.2: + resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} + engines: {node: '>= 0.4'} /shortid/2.2.16: resolution: {integrity: sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==} @@ -11149,8 +11108,8 @@ packages: string-width: 3.1.0 dev: true - /table/6.8.2: - resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} + /table/6.9.0: + resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} engines: {node: '>=10.0.0'} dependencies: ajv: 8.17.1 @@ -11275,9 +11234,9 @@ packages: resolution: {integrity: sha512-hN4uFRxbK+PX56DxYiGHsTn2dME3TVr9vbNqlQGcGcPhJAn+tdP126iA+TArMpI4YSgnTkMWyoLl5bf81Hi5TA==} engines: {node: '>= 0.4'} dependencies: - gopd: 1.0.1 + gopd: 1.2.0 typedarray.prototype.slice: 1.0.3 - which-typed-array: 1.1.15 + which-typed-array: 1.1.16 dev: true /tree-kill/1.2.2: @@ -11305,7 +11264,7 @@ packages: code-block-writer: 12.0.0 dev: false - /ts-node/10.9.2_jtknrvqdlvipgdxn6jbxe7dreq: + /ts-node/10.9.2_aqnvwcrfkjmhmdr6bfrmuf3scm: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -11324,7 +11283,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.65 + '@types/node': 18.19.67 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -11456,8 +11415,8 @@ packages: dependencies: call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 + gopd: 1.2.0 + has-proto: 1.1.0 is-typed-array: 1.1.13 /typed-array-byte-offset/1.0.3: @@ -11467,8 +11426,8 @@ packages: available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 + gopd: 1.2.0 + has-proto: 1.1.0 is-typed-array: 1.1.13 reflect.getprototypeof: 1.0.7 @@ -11478,7 +11437,7 @@ packages: dependencies: call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.0.1 + gopd: 1.2.0 is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 reflect.getprototypeof: 1.0.7 @@ -11506,8 +11465,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript/5.6.3: - resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + /typescript/5.7.2: + resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} engines: {node: '>=14.17'} hasBin: true @@ -11516,8 +11475,8 @@ packages: dependencies: call-bind: 1.0.7 has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.0 /unbzip2-stream/1.4.3: resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} @@ -11591,7 +11550,7 @@ packages: is-arguments: 1.1.1 is-generator-function: 1.0.10 is-typed-array: 1.1.13 - which-typed-array: 1.1.15 + which-typed-array: 1.1.16 /utils-merge/1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} @@ -11672,14 +11631,15 @@ packages: tr46: 0.0.3 webidl-conversions: 3.0.1 - /which-boxed-primitive/1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + /which-boxed-primitive/1.1.0: + resolution: {integrity: sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng==} + engines: {node: '>= 0.4'} dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 + is-bigint: 1.1.0 + is-boolean-object: 1.2.0 + is-number-object: 1.1.0 + is-string: 1.1.0 + is-symbol: 1.1.0 /which-builtin-type/1.2.0: resolution: {integrity: sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==} @@ -11692,12 +11652,12 @@ packages: is-date-object: 1.0.5 is-finalizationregistry: 1.1.0 is-generator-function: 1.0.10 - is-regex: 1.1.4 + is-regex: 1.2.0 is-weakref: 1.0.2 isarray: 2.0.5 - which-boxed-primitive: 1.0.2 + which-boxed-primitive: 1.1.0 which-collection: 1.0.2 - which-typed-array: 1.1.15 + which-typed-array: 1.1.16 /which-collection/1.0.2: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} @@ -11712,14 +11672,14 @@ packages: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} dev: true - /which-typed-array/1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + /which-typed-array/1.1.16: + resolution: {integrity: sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.0.1 + gopd: 1.2.0 has-tostringtag: 1.0.2 /which/1.3.1: @@ -11727,6 +11687,7 @@ packages: hasBin: true dependencies: isexe: 2.0.0 + dev: true /which/2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} @@ -11886,9 +11847,6 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - /yallist/2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - /yallist/3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} dev: true @@ -11937,6 +11895,11 @@ packages: /yargs-parser/20.2.4: resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} engines: {node: '>=10'} + dev: true + + /yargs-parser/20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} /yargs-parser/21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} @@ -11994,7 +11957,7 @@ packages: require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 - yargs-parser: 20.2.4 + yargs-parser: 20.2.9 /yargs/17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} diff --git a/packages/cli/package.json b/packages/cli/package.json index 9d5a0a572..d343d6daf 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -17,7 +17,6 @@ "@oclif/core": "3.15.0", "@oclif/plugin-help": "^5", "chalk": "^2.4.2", - "child-process-promise": "^2.2.1", "execa": "^2.0.3", "fp-ts": "^2.11.0", "fs-extra": "^8.1.0", @@ -35,7 +34,6 @@ "@oclif/test": "^3.0.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", - "@types/child-process-promise": "^2.2.1", "@types/faker": "5.1.5", "@types/fs-extra": "^9.0.13", "@types/inflected": "1.1.29", diff --git a/packages/cli/src/services/process/live.impl.ts b/packages/cli/src/services/process/live.impl.ts index 94a4e506f..084a8baec 100644 --- a/packages/cli/src/services/process/live.impl.ts +++ b/packages/cli/src/services/process/live.impl.ts @@ -1,4 +1,4 @@ -import * as childProcess from 'child-process-promise' +import * as execa from 'execa' import * as process from 'process' import { ProcessError, ProcessService } from '.' import { Layer, tryCatch, tryCatchPromise } from '@boostercloud/framework-types/dist/effect' @@ -7,7 +7,7 @@ import { unknownToError } from '../../common/errors' const exec = (command: string, cwd?: string) => tryCatchPromise( async () => { - const { stdout, stderr } = await childProcess.exec(command, { cwd }) + const { stdout, stderr } = await execa.command(command, { cwd }) const result = ` ${stderr ? `There were some issues running the command: ${stderr}\n` : ''} ${stdout} diff --git a/packages/cli/src/services/project-initializer.ts b/packages/cli/src/services/project-initializer.ts index b848f3be8..79ea3fd97 100644 --- a/packages/cli/src/services/project-initializer.ts +++ b/packages/cli/src/services/project-initializer.ts @@ -1,5 +1,5 @@ import * as fs from 'fs-extra' -import { exec } from 'child-process-promise' +import { command } from 'execa' import * as Mustache from 'mustache' import * as path from 'path' import * as tsConfig from '../templates/project/tsconfig-json' @@ -59,7 +59,7 @@ export async function generateRootDirectory(config: ProjectInitializerConfig): P export async function initializeGit(config: ProjectInitializerConfig): Promise { try { - await exec('git init && git add -A && git commit -m "Initial commit"', { cwd: projectDir(config) }) + await command('git init && git add -A && git commit -m "Initial commit"', { cwd: projectDir(config), shell: true }) } catch (e) { throw wrapExecError(e, 'Could not initialize git repository') } diff --git a/packages/cli/test/services/process/live.test.ts b/packages/cli/test/services/process/live.test.ts index df10e361c..9f7f214c9 100644 --- a/packages/cli/test/services/process/live.test.ts +++ b/packages/cli/test/services/process/live.test.ts @@ -1,5 +1,5 @@ import * as process from 'process' -import * as childProcessPromise from 'child-process-promise' +import * as execa from 'execa' import { fake, replace, restore } from 'sinon' import { Effect, gen, mapError, pipe, unsafeRunEffect } from '@boostercloud/framework-types/dist/effect' import { LiveProcess } from '../../../src/services/process/live.impl' @@ -10,7 +10,7 @@ import { ProcessService } from '../../../src/services/process' describe('Process - Live Implementation', () => { beforeEach(() => { replace(process, 'cwd', fake.returns('')) - replace(childProcessPromise, 'exec', fake.resolves({})) + replace(execa, 'command', fake.resolves({ stdout: '', stderr: '' })) }) afterEach(() => { @@ -35,7 +35,7 @@ describe('Process - Live Implementation', () => { expect(process.cwd).to.have.been.called }) - it('uses child-process-promise.exec', async () => { + it('uses execa.command', async () => { const command = 'command' const cwd = 'cwd' @@ -48,6 +48,6 @@ describe('Process - Live Implementation', () => { layer: LiveProcess, onError: guardError('An error ocurred'), }) - expect(childProcessPromise.exec).to.have.been.calledWith(command, { cwd }) + expect(execa.command).to.have.been.calledWith(command, { cwd }) }) }) diff --git a/packages/cli/test/services/project-initializer.test.ts b/packages/cli/test/services/project-initializer.test.ts index 37fe91130..9d680d165 100644 --- a/packages/cli/test/services/project-initializer.test.ts +++ b/packages/cli/test/services/project-initializer.test.ts @@ -1,13 +1,13 @@ import * as fs from 'fs-extra' -import * as childProcessPromise from 'child-process-promise' +import * as execa from 'execa' import { generateConfigFiles, - installDependencies, generateRootDirectory, initializeGit, + installDependencies, ProjectInitializerConfig, } from '../../src/services/project-initializer' -import { restore, replace, fake } from 'sinon' +import { fake, replace, restore } from 'sinon' import { expect } from '../expect' import { makeTestPackageManager } from './package-manager/test.impl' import * as PackageManager from '../../src/services/package-manager/live.impl' @@ -16,7 +16,7 @@ describe('project initializer', (): void => { beforeEach(() => { replace(fs, 'mkdirs', fake.resolves({})) replace(fs, 'outputFile', fake.resolves({})) - replace(childProcessPromise, 'exec', fake.resolves({})) + replace(execa, 'command', fake.resolves({ stdout: '', stderr: '' })) }) afterEach(() => { @@ -42,9 +42,7 @@ describe('project initializer', (): void => { it('initialize Git', async () => { await initializeGit(defaultProjectInitializerConfig) - expect(childProcessPromise.exec).to.have.been.calledWithMatch( - 'git init && git add -A && git commit -m "Initial commit"' - ) + expect(execa.command).to.have.been.calledWithMatch('git init && git add -A && git commit -m "Initial commit"') }) it('Generate root directory', async () => { diff --git a/packages/framework-common-helpers/package.json b/packages/framework-common-helpers/package.json index 7a90181f8..a567379a0 100644 --- a/packages/framework-common-helpers/package.json +++ b/packages/framework-common-helpers/package.json @@ -37,16 +37,15 @@ }, "dependencies": { "@boostercloud/framework-types": "workspace:^2.18.6", - "child-process-promise": "^2.2.1", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", - "class-transformer": "~0.5.1" + "class-transformer": "~0.5.1", + "execa": "^2.0.3" }, "devDependencies": { "@boostercloud/eslint-config": "workspace:^2.18.6", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", - "@types/child-process-promise": "^2.2.1", "@types/mocha": "10.0.1", "@types/node": "^18.18.2", "@types/rewire": "^2.5.28", diff --git a/packages/framework-integration-tests/integration/helper/deps-helper.ts b/packages/framework-integration-tests/integration/helper/deps-helper.ts index 6cef41163..51006d5c7 100644 --- a/packages/framework-integration-tests/integration/helper/deps-helper.ts +++ b/packages/framework-integration-tests/integration/helper/deps-helper.ts @@ -1,4 +1,4 @@ -import { exec } from 'child-process-promise' +import { command } from 'execa' import * as path from 'path' import * as fs from 'fs' @@ -35,5 +35,5 @@ function overrideWithLocalDeps(dependencies: Record): void { } export async function forceRepoRebuild(): Promise { - await exec('rush update && rush rebuild') + await command('rush update && rush rebuild') } diff --git a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.build.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.build.integration.ts index 5ef1e36a6..ee6094d73 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.build.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.build.integration.ts @@ -1,7 +1,7 @@ import * as path from 'path' import { expect } from 'chai' -import { sandboxPathFor, removeFolders, fileExists } from '../../helper/file-helper' -import { exec } from 'child-process-promise' +import { fileExists, removeFolders, sandboxPathFor } from '../../helper/file-helper' +import { command } from 'execa' // Imported from another package to avoid duplication // It is OK-ish, since integration tests are always run in the context of the whole monorepo import { createSandboxProject } from '../../../../cli/src/common/sandbox' @@ -26,7 +26,7 @@ describe('Build', () => { ['boost build', 'Checking project structure', 'Building project', 'Build complete'].join('(.|\n)*') ) - const { stdout } = await exec(`${cliPath} build`, { cwd: buildSandboxDir }) + const { stdout } = await command(`${cliPath} build`, { cwd: buildSandboxDir }) expect(stdout).to.match(expectedOutputRegex) expect(fileExists(path.join(buildSandboxDir, 'dist', 'index.js'))).to.be.true @@ -64,7 +64,7 @@ describe('Compile fallback', () => { ['boost build', 'Checking project structure', 'Building project', 'Build complete'].join('(.|\n)*') ) - const { stdout } = await exec(`${cliPath} build`, { cwd: compileSandboxDir }) + const { stdout } = await command(`${cliPath} build`, { cwd: compileSandboxDir }) expect(stdout).to.match(expectedOutputRegex) expect(fileExists(path.join(compileSandboxDir, 'eureka'))).to.be.true diff --git a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.clean.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.clean.integration.ts index 82d1c22b6..22977ffb7 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.clean.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.clean.integration.ts @@ -1,7 +1,7 @@ import * as path from 'path' import { expect } from 'chai' -import { sandboxPathFor, removeFolders, fileExists } from '../../helper/file-helper' -import { exec } from 'child-process-promise' +import { fileExists, removeFolders, sandboxPathFor } from '../../helper/file-helper' +import { command } from 'execa' // Imported from another package to avoid duplication // It is OK-ish, since integration tests are always run in the context of the whole monorepo import { createSandboxProject } from '../../../../cli/src/common/sandbox' @@ -21,19 +21,18 @@ describe('Clean', () => { context('Valid clean', () => { it('should clean the project after build', async () => { - - await exec(`${cliPath} build`, { cwd: cleanSandboxDir }) - - expect(fileExists(path.join(cleanSandboxDir,'dist'))).to.be.true - + await command(`${cliPath} build`, { cwd: cleanSandboxDir }) + + expect(fileExists(path.join(cleanSandboxDir, 'dist'))).to.be.true + const expectedCleanOutputRegex = new RegExp( ['boost clean', 'Checking project structure', 'Cleaning project', 'Clean complete'].join('(.|\n)*') ) - const { stdout } = await exec(`${cliPath} clean`, { cwd: cleanSandboxDir }) + const { stdout } = await command(`${cliPath} clean`, { cwd: cleanSandboxDir }) expect(stdout).to.match(expectedCleanOutputRegex) - expect(fileExists(path.join(cleanSandboxDir,'dist'))).to.be.false + expect(fileExists(path.join(cleanSandboxDir, 'dist'))).to.be.false }) }) -}) \ No newline at end of file +}) diff --git a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.command.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.command.integration.ts index 8838a62da..96de3c754 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.command.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.command.integration.ts @@ -1,7 +1,7 @@ import * as path from 'path' import { expect } from 'chai' import { loadFixture, readFileContent, removeFolders, sandboxPathFor, writeFileContent } from '../../helper/file-helper' -import { exec } from 'child-process-promise' +import { command } from 'execa' // Imported from another package to avoid duplication // It is OK-ish, since integration tests are always run in the context of the whole monorepo import { createSandboxProject } from '../../../../cli/src/common/sandbox' @@ -29,7 +29,7 @@ describe('Command', () => { ['boost new:command', 'Verifying project', 'Creating new command', 'Command generated'].join('(.|\n)*') ) - const { stdout } = await exec(`${cliPath} new:command ChangeCart`, { cwd: commandSandboxDir }) + const { stdout } = await command(`${cliPath} new:command ChangeCart`, { cwd: commandSandboxDir }) expect(stdout).to.match(expectedOutputRegex) const expectedCommandContent = loadFixture('commands/change-cart.ts') @@ -46,7 +46,7 @@ describe('Command', () => { it('should create a new command with fields', async () => { const changeCartWithFieldsCommandPath = `${commandSandboxDir}/src/commands/change-cart-with-fields.ts` - await exec(`${cliPath} new:command ChangeCartWithFields --fields cartId:UUID sku:string quantity:number`, { + await command(`${cliPath} new:command ChangeCartWithFields --fields cartId:UUID sku:string quantity:number`, { cwd: commandSandboxDir, }) @@ -65,7 +65,7 @@ describe('Command', () => { context('Invalid command', () => { describe('missing command name', () => { it('should fail', async () => { - const { stderr } = await exec(`${cliPath} new:command`, { cwd: commandSandboxDir }) + const { stderr } = await command(`${cliPath} new:command`, { cwd: commandSandboxDir }) expect(stderr).to.match(/You haven't provided a command name, but it is required, run with --help for usage/) }) diff --git a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.entity.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.entity.integration.ts index 90f67d7cc..55592d3a5 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.entity.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.entity.integration.ts @@ -1,7 +1,7 @@ import { expect } from 'chai' -import { readFileContent, writeFileContent, loadFixture, removeFolders, sandboxPathFor } from '../../helper/file-helper' +import { loadFixture, readFileContent, removeFolders, sandboxPathFor, writeFileContent } from '../../helper/file-helper' import * as path from 'path' -import { exec } from 'child-process-promise' +import { command } from 'execa' // Imported from another package to avoid duplication // It is OK-ish, since integration tests are always run in the context of the whole monorepo import { createSandboxProject } from '../../../../cli/src/common/sandbox' @@ -29,7 +29,7 @@ describe('Entity', () => { ['boost new:entity', 'Verifying project', 'Creating new entity', 'Entity generated'].join('(.|\n)*'), 'm' ) - const { stdout } = await exec(`${cliPath} new:entity Post`, { cwd: entitySandboxDir }) + const { stdout } = await command(`${cliPath} new:entity Post`, { cwd: entitySandboxDir }) expect(stdout).to.match(expectedOutputRegex) const expectedEntityContent = readFileContent('integration/fixtures/entities/post.ts') @@ -44,7 +44,7 @@ describe('Entity', () => { ['boost new:entity', 'Verifying project', 'Creating new entity', 'Entity generated'].join('(.|\n)*'), 'm' ) - const { stdout } = await exec(`${cliPath} new:entity PostWithFields --fields title:string body:string`, { + const { stdout } = await command(`${cliPath} new:entity PostWithFields --fields title:string body:string`, { cwd: entitySandboxDir, }) expect(stdout).to.match(expectedOutputRegex) @@ -61,7 +61,7 @@ describe('Entity', () => { const FILE_POST_CREATED_EVENT = `${entitySandboxDir}/src/events/post-created.ts` // Create event - await exec(`${cliPath} new:event PostCreated --fields postId:UUID title:string body:string`, { + await command(`${cliPath} new:event PostCreated --fields postId:UUID title:string body:string`, { cwd: entitySandboxDir, }) @@ -75,7 +75,7 @@ describe('Entity', () => { writeFileContent(FILE_POST_CREATED_EVENT, updatedEventContent) // Create entity - await exec(`${cliPath} new:entity PostWithReducer --fields title:string body:string --reduces PostCreated`, { + await command(`${cliPath} new:entity PostWithReducer --fields title:string body:string --reduces PostCreated`, { cwd: entitySandboxDir, }) const expectedEntityContent = loadFixture('entities/post-with-reducer.ts') @@ -96,7 +96,7 @@ describe('Entity', () => { context('invalid entity', () => { describe('missing entity name', () => { it('should fail', async () => { - const { stderr } = await exec(`${cliPath} new:entity`, { cwd: entitySandboxDir }) + const { stderr } = await command(`${cliPath} new:entity`, { cwd: entitySandboxDir }) expect(stderr).to.match(/You haven't provided an entity name, but it is required, run with --help for usage/m) }) diff --git a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.event-handler.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.event-handler.integration.ts index 2108e3063..78acb156d 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.event-handler.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.event-handler.integration.ts @@ -1,7 +1,7 @@ import * as path from 'path' import { expect } from 'chai' import { loadFixture, readFileContent, removeFolders, sandboxPathFor } from '../../helper/file-helper' -import { exec } from 'child-process-promise' +import { command } from 'execa' // Imported from another package to avoid duplication // It is OK-ish, since integration tests are always run in the context of the whole monorepo import { createSandboxProject } from '../../../../cli/src/common/sandbox' @@ -27,7 +27,7 @@ describe('Event handler', () => { ) ) - const { stdout } = await exec(`${cliPath} new:event-handler HandleCartChange -e CartItemChanged`, { + const { stdout } = await command(`${cliPath} new:event-handler HandleCartChange -e CartItemChanged`, { cwd: eventHandlerSandboxDir, }) expect(stdout).to.match(expectedOutputRegex) @@ -42,7 +42,7 @@ describe('Event handler', () => { describe('Invalid event handler', () => { context('without name and event', () => { it('should fail', async () => { - const { stderr } = await exec(`${cliPath} new:event-handler`, { cwd: eventHandlerSandboxDir }) + const { stderr } = await command(`${cliPath} new:event-handler`, { cwd: eventHandlerSandboxDir }) expect(stderr).to.match( /You haven't provided an event handler name, but it is required, run with --help for usage/ @@ -52,7 +52,7 @@ describe('Event handler', () => { context('Without name', () => { it('should fail', async () => { - const { stderr } = await exec(`${cliPath} new:event-handler -e CartPaid`, { cwd: eventHandlerSandboxDir }) + const { stderr } = await command(`${cliPath} new:event-handler -e CartPaid`, { cwd: eventHandlerSandboxDir }) expect(stderr).to.match( /You haven't provided an event handler name, but it is required, run with --help for usage/ @@ -62,7 +62,7 @@ describe('Event handler', () => { context('Without event', () => { it('should fail', async () => { - const { stderr } = await exec(`${cliPath} new:event-handler CartPaid`, { cwd: eventHandlerSandboxDir }) + const { stderr } = await command(`${cliPath} new:event-handler CartPaid`, { cwd: eventHandlerSandboxDir }) expect(stderr).to.match(/You haven't provided an event, but it is required, run with --help for usage/) }) diff --git a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.event.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.event.integration.ts index a2ef1adf6..688626dc5 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.event.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.event.integration.ts @@ -8,7 +8,7 @@ import { sandboxPathFor, writeFileContent, } from '../../helper/file-helper' -import { exec } from 'child-process-promise' +import { command } from 'execa' // Imported from another package to avoid duplication // It is OK-ish, since integration tests are always run in the context of the whole monorepo import { createSandboxProject } from '../../../../cli/src/common/sandbox' @@ -34,7 +34,7 @@ describe('Event', () => { ['boost new:event', 'Verifying project', 'Creating new event', 'Event generated'].join('(.|\n)*') ) - const { stdout } = await exec(`${cliPath} new:event CartChanged`, { cwd: eventSandboxDir }) + const { stdout } = await command(`${cliPath} new:event CartChanged`, { cwd: eventSandboxDir }) expect(stdout).to.match(expectedOutputRegex) }) @@ -43,7 +43,7 @@ describe('Event', () => { const FILE_CART_CHANGED_EVENT = `${eventSandboxDir}/src/events/cart-changed.ts` removeFiles([FILE_CART_CHANGED_EVENT]) - await exec(`${cliPath} new:event CartChanged`, { cwd: eventSandboxDir }) + await command(`${cliPath} new:event CartChanged`, { cwd: eventSandboxDir }) const expectedEventContent = loadFixture('events/cart-changed.ts') const eventContent = readFileContent(FILE_CART_CHANGED_EVENT) @@ -60,7 +60,7 @@ describe('Event', () => { it('should create new event', async () => { const FILE_CART_CHANGED_WITH_FIELDS_EVENT = `${eventSandboxDir}/src/events/cart-changed-with-fields.ts` - await exec(`${cliPath} new:event CartChangedWithFields --fields cartId:UUID sku:string quantity:number`, { + await command(`${cliPath} new:event CartChangedWithFields --fields cartId:UUID sku:string quantity:number`, { cwd: eventSandboxDir, }) @@ -79,7 +79,7 @@ describe('Event', () => { context('Invalid event', () => { describe('missing event name', () => { it('should fail', async () => { - const { stderr } = await exec(`${cliPath} new:event`, { cwd: eventSandboxDir }) + const { stderr } = await command(`${cliPath} new:event`, { cwd: eventSandboxDir }) expect(stderr).to.match(/You haven't provided an event name, but it is required, run with --help for usage/) }) diff --git a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.project.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.project.integration.ts index 45c4b2ef8..baeeed760 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.project.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.project.integration.ts @@ -1,5 +1,5 @@ import * as path from 'path' -import { exec } from 'child-process-promise' +import { command } from 'execa' import { createFolder, dirContents, @@ -8,9 +8,9 @@ import { readFileContent, removeFolders, } from '../../helper/file-helper' -import { ChildProcess } from 'child_process' import { overrideWithBoosterLocalDependencies } from '../../helper/deps-helper' import { expect } from '../../helper/expect' +import { ChildProcess, exec as cpExec } from 'child_process' // The Booster CLI version used should match the integration tests' version const BOOSTER_VERSION = require('../../../package.json').version @@ -29,8 +29,10 @@ describe('Project', () => { before(async () => { // Required by Github actions CI/CD, because it doesn't have git configured - await exec('git config --global user.name || git config --global user.name "Booster Test"') - await exec('git config --global user.email || git config --global user.email "test@booster.cloud"') + await command('git config --global user.name || git config --global user.name "Booster Test"', { shell: true }) + await command('git config --global user.email || git config --global user.email "test@booster.cloud"', { + shell: true, + }) createFolder(SANDBOX_INTEGRATION_DIR) }) @@ -93,8 +95,21 @@ describe('Project', () => { }) cliProcess.stdout.on('end', () => { - cliProcess.stdin?.end() resolve() + // + // if (cliProcess.stdin) { + // console.log('Attempting to end stdin') + // try { + // cliProcess.stdin.end() + // console.log('stdin ended') + // } catch (error) { + // console.error('Error ending stdin:', error) + // } + // } else { + // resolve() + // } + // cliProcess.stdin?.end() + // resolve() }) cliProcess.stdout.on('error', () => { @@ -112,16 +127,22 @@ describe('Project', () => { flags: Array = [], promptAnswers?: PromptAnswers ): Promise<{ stdout: string; stderr: string }> => { - const cliProcess = exec(`${cliPath} new:project ${projectName} ${flags.join(' ')}`, { - cwd: SANDBOX_INTEGRATION_DIR, - }) - - if (promptAnswers) { - await handlePrompt(cliProcess.childProcess, promptAnswers) - } + return new Promise((resolve, reject) => { + const cliProcess = cpExec( + `${cliPath} new:project ${projectName} ${flags.join(' ')}`, + { + cwd: SANDBOX_INTEGRATION_DIR, + }, + (error, stdout, stderr) => { + if (error) reject(error) + else resolve({ stdout, stderr }) + } + ) - const { stdout, stderr } = await cliProcess - return { stdout, stderr } + if (promptAnswers) { + handlePrompt(cliProcess, promptAnswers).catch(reject) + } + }) } const packageJsonAssertions = ( @@ -240,13 +261,20 @@ describe('Project', () => { it('should create a new project using short flags to configure it', async () => { const projectName = 'cart-demo-short-flags' const flags = [ - `-a "${AUTHOR}"`, - `-d "${DESCRIPTION}"`, - `-H "${HOMEPAGE}"`, - `-l "${LICENSE}"`, - `-p "${PROVIDER}"`, - `-r "${REPO_URL}"`, - `-v "${VERSION}"`, + '-a', + `"${AUTHOR}"`, + '-d', + `"${DESCRIPTION}"`, + '-H', + `"${HOMEPAGE}"`, + '-l', + `"${LICENSE}"`, + '-p', + `"${PROVIDER}"`, + '-r', + `"${REPO_URL}"`, + '-v', + `"${VERSION}"`, // We skip dependencies and git installation to make this test faster '--skipInstall', '--skipGit', @@ -259,13 +287,20 @@ describe('Project', () => { it('should create a new project using long flags to configure it', async () => { const projectName = 'cart-demo-long-flags' const flags = [ - `--author "${AUTHOR}"`, - `--description "${DESCRIPTION}"`, - `--homepage "${HOMEPAGE}"`, - `--license "${LICENSE}"`, - `--providerPackageName "${PROVIDER}"`, - `--repository "${REPO_URL}"`, - `--version "${VERSION}"`, + '--author', + `"${AUTHOR}"`, + '--description', + `"${DESCRIPTION}"`, + '--homepage', + `"${HOMEPAGE}"`, + '--license', + `"${LICENSE}"`, + '--providerPackageName', + `"${PROVIDER}"`, + '--repository', + `"${REPO_URL}"`, + '--version', + `"${VERSION}"`, // We skip dependencies and git installation to make this test faster '--skipInstall', '--skipGit', @@ -297,8 +332,11 @@ describe('Project', () => { }) it('passes linter', async () => { - await expect(exec('npm run lint:check', { cwd: projectPath(projectName), capture: ['stderr', 'stdout'] })).to - .be.eventually.fulfilled + await expect( + command('npm run lint:check', { + cwd: projectPath(projectName), + }) + ).to.be.eventually.fulfilled }).timeout(TEST_TIMEOUT) // TODO: Remove the skip when there is at leas one version published of framework-common-helpers @@ -307,9 +345,9 @@ describe('Project', () => { // Rewrite dependencies to use local versions await overrideWithBoosterLocalDependencies(fullProjectPath) // Install those dependencies - await exec('npm install --omit=dev --omit=optional --no-bin-links', { cwd: fullProjectPath }) + await command('npm install --omit=dev --omit=optional --no-bin-links', { cwd: fullProjectPath }) - await expect(exec('npm run build', { cwd: fullProjectPath })).to.be.eventually.fulfilled + await expect(command('npm run build', { cwd: fullProjectPath })).to.be.eventually.fulfilled }) }) @@ -369,8 +407,10 @@ describe('Project', () => { license: LICENSE, } const flags = [ - `--providerPackageName "${PROVIDER}"`, - `--repository "${REPO_URL}"`, + '--providerPackageName', + `"${PROVIDER}"`, + '--repository', + `"${REPO_URL}"`, // We skip dependencies and git installation to make this test faster '--skipInstall', '--skipGit', @@ -385,7 +425,7 @@ describe('Project', () => { context('Invalid project', () => { describe('missing project name', () => { it('should fail', async () => { - const { stderr } = await exec(`${cliPath} new:project`, { cwd: SANDBOX_INTEGRATION_DIR }) + const { stderr } = await command(`${cliPath} new:project`, { cwd: SANDBOX_INTEGRATION_DIR }) expect(stderr).to.match(/You haven't provided a project name, but it is required, run with --help for usage/) }) @@ -398,13 +438,20 @@ describe('Project', () => { ) const flags = [ - `--author "${AUTHOR}"`, - `--description "${DESCRIPTION}"`, - `--homepage "${HOMEPAGE}"`, - `--license "${LICENSE}"`, - '--providerPackageName "invalid-provider"', - `--repository "${REPO_URL}"`, - `--version "${VERSION}"`, + '--author', + `"${AUTHOR}"`, + '--description', + `"${DESCRIPTION}"`, + '--homepage', + `"${HOMEPAGE}"`, + '--license', + `"${LICENSE}"`, + '--providerPackageName', + '"invalid-provider"', + '--repository', + `"${REPO_URL}"`, + '--version', + `"${VERSION}"`, // We skip dependencies and git installation to make this test faster '--skipInstall', '--skipGit', diff --git a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.readmodel.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.readmodel.integration.ts index cbb85190e..e539f328e 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.readmodel.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.readmodel.integration.ts @@ -8,7 +8,7 @@ import { sandboxPathFor, writeFileContent, } from '../../helper/file-helper' -import { exec } from 'child-process-promise' +import { command } from 'execa' // Imported from another package to avoid duplication // It is OK-ish, since integration tests are always run in the context of the whole monorepo import { createSandboxProject } from '../../../../cli/src/common/sandbox' @@ -38,7 +38,7 @@ describe('Read model', () => { const FILE_CART_READ_MODEL = `${readModelSandboxDir}/src/read-models/cart-read-model.ts` removeFiles([FILE_CART_READ_MODEL]) - const { stdout } = await exec(`${cliPath} new:read-model CartReadModel`, { cwd: readModelSandboxDir }) + const { stdout } = await command(`${cliPath} new:read-model CartReadModel`, { cwd: readModelSandboxDir }) expect(stdout).to.match(EXPECTED_OUTPUT_REGEX) const expectedEntityContent = loadFixture('read-models/cart-read-model.ts') @@ -56,9 +56,9 @@ describe('Read model', () => { it('should create new read model', async () => { const FILE_CART_WITH_FIELDS_READ_MODEL = `${readModelSandboxDir}/src/read-models/cart-with-fields-read-model.ts` - const { stdout } = await exec( + const { stdout } = await command( cliPath + " new:read-model CartWithFieldsReadModel --fields 'items:Array'", - { cwd: readModelSandboxDir } + { cwd: readModelSandboxDir, shell: true } ) expect(stdout).to.match(EXPECTED_OUTPUT_REGEX) @@ -80,9 +80,9 @@ describe('Read model', () => { it('should create new read model', async () => { const FILE_CART_WITH_PROJECTION_READ_MODEL = `${readModelSandboxDir}/src/read-models/cart-with-projection-read-model.ts` - const { stdout } = await exec( + const { stdout } = await command( cliPath + " new:read-model CartWithProjectionReadModel --fields 'items:Array' --projects Cart:id", - { cwd: readModelSandboxDir } + { cwd: readModelSandboxDir, shell: true } ) expect(stdout).to.match(EXPECTED_OUTPUT_REGEX) @@ -110,7 +110,7 @@ describe('Read model', () => { context('invalid read model', () => { describe('missing read model name', () => { it('should fail', async () => { - const { stderr } = await exec(`${cliPath} new:read-model`, { cwd: readModelSandboxDir }) + const { stderr } = await command(`${cliPath} new:read-model`, { cwd: readModelSandboxDir }) expect(stderr).to.match(/You haven't provided a read model name, but it is required, run with --help for usage/) }) diff --git a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.scheduled-command.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.scheduled-command.integration.ts index c9e7d2c5d..2e3291ae6 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.scheduled-command.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.scheduled-command.integration.ts @@ -1,7 +1,7 @@ import * as path from 'path' import { expect } from 'chai' import { loadFixture, readFileContent, removeFolders, sandboxPathFor } from '../../helper/file-helper' -import { exec } from 'child-process-promise' +import { command } from 'execa' // Imported from another package to avoid duplication // It is OK-ish, since integration tests are always run in the context of the whole monorepo import { createSandboxProject } from '../../../../cli/src/common/sandbox' @@ -30,7 +30,9 @@ describe('Scheduled Command', () => { ].join('(.|\n)*') ) - const { stdout } = await exec(`${cliPath} new:scheduled-command CheckCart`, { cwd: scheduledCommandSandboxDir }) + const { stdout } = await command(`${cliPath} new:scheduled-command CheckCart`, { + cwd: scheduledCommandSandboxDir, + }) expect(stdout).to.match(expectedOutputRegex) const expectedCommandContent = loadFixture('scheduled-commands/check-cart.ts') @@ -44,7 +46,7 @@ describe('Scheduled Command', () => { context('Invalid scheduled command', () => { describe('missing scheduled command name', () => { it('should fail', async () => { - const { stderr } = await exec(`${cliPath} new:scheduled-command`, { cwd: scheduledCommandSandboxDir }) + const { stderr } = await command(`${cliPath} new:scheduled-command`, { cwd: scheduledCommandSandboxDir }) expect(stderr).to.match( /You haven't provided a scheduled command name, but it is required, run with --help for usage/ diff --git a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.type.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.type.integration.ts index 844041791..d3b121208 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.type.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.type.integration.ts @@ -1,7 +1,7 @@ import * as path from 'path' import { expect } from 'chai' import { loadFixture, readFileContent, removeFolders, sandboxPathFor } from '../../helper/file-helper' -import { exec } from 'child-process-promise' +import { command } from 'execa' // Imported from another package to avoid duplication // It is OK-ish, since integration tests are always run in the context of the whole monorepo import { createSandboxProject } from '../../../../cli/src/common/sandbox' @@ -25,7 +25,7 @@ describe('Type', () => { ['boost new:type', 'Verifying project', 'Creating new type', 'Type generated'].join('(.|\n)*') ) - const { stdout } = await exec(`${cliPath} new:type Item`, { cwd: typeSandboxDir }) + const { stdout } = await command(`${cliPath} new:type Item`, { cwd: typeSandboxDir }) expect(stdout).to.match(expectedOutputRegex) const expectedTypeContent = loadFixture('common/item.ts') @@ -35,7 +35,7 @@ describe('Type', () => { describe('with fields', () => { it('should create a new type with fields', async () => { - await exec(`${cliPath} new:type ItemWithFields --fields sku:string quantity:number`, { + await command(`${cliPath} new:type ItemWithFields --fields sku:string quantity:number`, { cwd: typeSandboxDir, }) @@ -49,7 +49,7 @@ describe('Type', () => { context('Invalid type', () => { describe('missing type name', () => { it('should fail', async () => { - const { stderr } = await exec(`${cliPath} new:type`, { cwd: typeSandboxDir }) + const { stderr } = await command(`${cliPath} new:type`, { cwd: typeSandboxDir }) expect(stderr).to.match(/You haven't provided a type name, but it is required, run with --help for usage/) }) diff --git a/packages/framework-integration-tests/package.json b/packages/framework-integration-tests/package.json index ecbb1e59d..6c2189549 100644 --- a/packages/framework-integration-tests/package.json +++ b/packages/framework-integration-tests/package.json @@ -30,7 +30,8 @@ "@effect/printer-ansi": "0.32.26", "@effect/platform-node": "0.45.26", "fast-check": "^3.13.2", - "ws": "8.17.1" + "ws": "8.17.1", + "execa": "^2.0.3" }, "devDependencies": { "@boostercloud/eslint-config": "workspace:^2.18.6", @@ -44,7 +45,6 @@ "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", "@types/chai-as-promised": "7.1.4", - "@types/child-process-promise": "^2.2.1", "@types/faker": "5.1.5", "@types/jsonwebtoken": "9.0.1", "@types/mocha": "10.0.1", @@ -62,7 +62,6 @@ "constructs": "^10.0.0", "chai": "4.2.0", "chai-as-promised": "7.1.1", - "child-process-promise": "^2.2.1", "cross-fetch": "3.1.5", "eslint": "^8.23.1", "eslint-config-prettier": "8.3.0", From fc841db61cbff12b9b86f51501a54fde1b50a4b5 Mon Sep 17 00:00:00 2001 From: GITHUBACTION Date: Mon, 9 Dec 2024 14:07:07 +0000 Subject: [PATCH 47/47] Bump versions [skip ci] --- ...hild_process_promise_2024-12-05-01-38.json | 10 ------- common/config/rush/version-policies.json | 2 +- packages/application-tester/package.json | 6 ++-- packages/cli/package.json | 10 +++---- .../framework-common-helpers/package.json | 6 ++-- packages/framework-core/CHANGELOG.json | 28 +++++++++++++++++++ packages/framework-core/CHANGELOG.md | 9 +++++- packages/framework-core/package.json | 10 +++---- .../framework-integration-tests/package.json | 28 +++++++++---------- .../package.json | 10 +++---- packages/framework-provider-aws/package.json | 8 +++--- .../package.json | 12 ++++---- .../framework-provider-azure/package.json | 8 +++--- .../package.json | 10 +++---- .../framework-provider-local/package.json | 8 +++--- packages/framework-types/package.json | 6 ++-- packages/metadata-booster/package.json | 4 +-- tools/eslint-config/package.json | 2 +- 18 files changed, 101 insertions(+), 76 deletions(-) delete mode 100644 common/changes/@boostercloud/framework-core/remove_child_process_promise_2024-12-05-01-38.json diff --git a/common/changes/@boostercloud/framework-core/remove_child_process_promise_2024-12-05-01-38.json b/common/changes/@boostercloud/framework-core/remove_child_process_promise_2024-12-05-01-38.json deleted file mode 100644 index fd90679a2..000000000 --- a/common/changes/@boostercloud/framework-core/remove_child_process_promise_2024-12-05-01-38.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@boostercloud/framework-core", - "comment": "Replace child-process-promise with execa", - "type": "patch" - } - ], - "packageName": "@boostercloud/framework-core" -} \ No newline at end of file diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 330c4f728..a1b8103e1 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -103,6 +103,6 @@ "definitionName": "lockStepVersion", "policyName": "booster", "mainProject": "@boostercloud/framework-core", - "version": "2.18.6" + "version": "2.18.7" } ] diff --git a/packages/application-tester/package.json b/packages/application-tester/package.json index db40f1d70..cecf605fe 100644 --- a/packages/application-tester/package.json +++ b/packages/application-tester/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/application-tester", - "version": "2.18.6", + "version": "2.18.7", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "application-tester" @@ -36,7 +36,7 @@ }, "dependencies": { "@apollo/client": "3.7.13", - "@boostercloud/framework-types": "workspace:^2.18.6", + "@boostercloud/framework-types": "workspace:^2.18.7", "cross-fetch": "3.1.5", "graphql": "^16.6.0", "jsonwebtoken": "9.0.1", @@ -48,7 +48,7 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.6", + "@boostercloud/eslint-config": "workspace:^2.18.7", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", "eslint": "^8.23.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index d343d6daf..ca6c97b76 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/cli", "description": "CLI of the Booster Framework, the next level of abstraction for cloud-native applications", - "version": "2.18.6", + "version": "2.18.7", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -12,8 +12,8 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-core": "workspace:^2.18.6", - "@boostercloud/framework-types": "workspace:^2.18.6", + "@boostercloud/framework-core": "workspace:^2.18.7", + "@boostercloud/framework-types": "workspace:^2.18.7", "@oclif/core": "3.15.0", "@oclif/plugin-help": "^5", "chalk": "^2.4.2", @@ -29,8 +29,8 @@ "@effect-ts/core": "^0.60.4" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.6", - "@boostercloud/application-tester": "workspace:^2.18.6", + "@boostercloud/eslint-config": "workspace:^2.18.7", + "@boostercloud/application-tester": "workspace:^2.18.7", "@oclif/test": "^3.0.3", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", diff --git a/packages/framework-common-helpers/package.json b/packages/framework-common-helpers/package.json index a567379a0..849b6cae5 100644 --- a/packages/framework-common-helpers/package.json +++ b/packages/framework-common-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-common-helpers", - "version": "2.18.6", + "version": "2.18.7", "description": "Contains Booster common helpers used by the core and provider packages", "keywords": [ "framework-common-helpers" @@ -36,14 +36,14 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-types": "workspace:^2.18.6", + "@boostercloud/framework-types": "workspace:^2.18.7", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "class-transformer": "~0.5.1", "execa": "^2.0.3" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.6", + "@boostercloud/eslint-config": "workspace:^2.18.7", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/mocha": "10.0.1", diff --git a/packages/framework-core/CHANGELOG.json b/packages/framework-core/CHANGELOG.json index 361294e2e..8dfbcaaf8 100644 --- a/packages/framework-core/CHANGELOG.json +++ b/packages/framework-core/CHANGELOG.json @@ -1,6 +1,34 @@ { "name": "@boostercloud/framework-core", "entries": [ + { + "version": "2.18.7", + "tag": "@boostercloud/framework-core_v2.18.7", + "date": "Mon, 09 Dec 2024 14:07:07 GMT", + "comments": { + "patch": [ + { + "comment": "Replace child-process-promise with execa", + "author": "Mario Castro Squella ", + "commit": "ab31b4957016f46b01d61e2399c044a6b7bd63e5" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@boostercloud/framework-common-helpers\" from `^2.18.6` to `^2.18.7`" + }, + { + "comment": "Updating dependency \"@boostercloud/framework-types\" from `^2.18.6` to `^2.18.7`" + }, + { + "comment": "Updating dependency \"@boostercloud/metadata-booster\" from `^2.18.6` to `^2.18.7`" + }, + { + "comment": "Updating dependency \"@boostercloud/eslint-config\" from `^2.18.6` to `^2.18.7`" + } + ] + } + }, { "version": "2.18.6", "tag": "@boostercloud/framework-core_v2.18.6", diff --git a/packages/framework-core/CHANGELOG.md b/packages/framework-core/CHANGELOG.md index 8c6b1d44c..e9e4ec269 100644 --- a/packages/framework-core/CHANGELOG.md +++ b/packages/framework-core/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @boostercloud/framework-core -This log was last generated on Mon, 25 Nov 2024 15:49:50 GMT and should not be manually modified. +This log was last generated on Mon, 09 Dec 2024 14:07:07 GMT and should not be manually modified. + +## 2.18.7 +Mon, 09 Dec 2024 14:07:07 GMT + +### Patches + +- Replace child-process-promise with execa ## 2.18.6 Mon, 25 Nov 2024 15:49:50 GMT diff --git a/packages/framework-core/package.json b/packages/framework-core/package.json index 499437436..745e6f1a7 100644 --- a/packages/framework-core/package.json +++ b/packages/framework-core/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-core", - "version": "2.18.6", + "version": "2.18.7", "description": "Library for your Booster apps", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", @@ -37,8 +37,8 @@ "graphql": "^16.6.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.6", - "@boostercloud/framework-types": "workspace:^2.18.6", + "@boostercloud/framework-common-helpers": "workspace:^2.18.7", + "@boostercloud/framework-types": "workspace:^2.18.7", "fp-ts": "^2.11.0", "graphql-scalars": "^1.17.0", "graphql-subscriptions": "2.0.0", @@ -61,8 +61,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/metadata-booster": "workspace:^2.18.6", - "@boostercloud/eslint-config": "workspace:^2.18.6", + "@boostercloud/metadata-booster": "workspace:^2.18.7", + "@boostercloud/eslint-config": "workspace:^2.18.7", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-integration-tests/package.json b/packages/framework-integration-tests/package.json index 6c2189549..7d369140f 100644 --- a/packages/framework-integration-tests/package.json +++ b/packages/framework-integration-tests/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-integration-tests", "description": "Example project for Booster", - "version": "2.18.6", + "version": "2.18.7", "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", "publishConfig": { @@ -9,12 +9,12 @@ }, "bugs": "https://github.com/boostercloud/booster/issues", "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.6", - "@boostercloud/framework-core": "workspace:^2.18.6", - "@boostercloud/framework-provider-aws": "workspace:^2.18.6", - "@boostercloud/framework-provider-azure": "workspace:^2.18.6", - "@boostercloud/framework-provider-local": "workspace:^2.18.6", - "@boostercloud/framework-types": "workspace:^2.18.6", + "@boostercloud/framework-common-helpers": "workspace:^2.18.7", + "@boostercloud/framework-core": "workspace:^2.18.7", + "@boostercloud/framework-provider-aws": "workspace:^2.18.7", + "@boostercloud/framework-provider-azure": "workspace:^2.18.7", + "@boostercloud/framework-provider-local": "workspace:^2.18.7", + "@boostercloud/framework-types": "workspace:^2.18.7", "aws-sdk": "2.853.0", "graphql": "^16.6.0", "tslib": "^2.4.0", @@ -34,13 +34,13 @@ "execa": "^2.0.3" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.6", - "@boostercloud/application-tester": "workspace:^2.18.6", - "@boostercloud/cli": "workspace:^2.18.6", - "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.18.6", - "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.18.6", - "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.18.6", - "@boostercloud/metadata-booster": "workspace:^2.18.6", + "@boostercloud/eslint-config": "workspace:^2.18.7", + "@boostercloud/application-tester": "workspace:^2.18.7", + "@boostercloud/cli": "workspace:^2.18.7", + "@boostercloud/framework-provider-aws-infrastructure": "workspace:^2.18.7", + "@boostercloud/framework-provider-azure-infrastructure": "workspace:^2.18.7", + "@boostercloud/framework-provider-local-infrastructure": "workspace:^2.18.7", + "@boostercloud/metadata-booster": "workspace:^2.18.7", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-aws-infrastructure/package.json b/packages/framework-provider-aws-infrastructure/package.json index 82a283977..4b7739529 100644 --- a/packages/framework-provider-aws-infrastructure/package.json +++ b/packages/framework-provider-aws-infrastructure/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws-infrastructure", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.18.6", + "version": "2.18.7", "description": "Handle the Booster deployment process to AWS", "keywords": [ "framework-provider-aws-infrastructure" @@ -41,9 +41,9 @@ "@aws-cdk/aws-s3-deployment": "^1.170.0", "@aws-cdk/core": "^1.170.0", "@aws-cdk/cx-api": "^1.170.0", - "@boostercloud/framework-common-helpers": "workspace:^2.18.6", - "@boostercloud/framework-provider-aws": "workspace:^2.18.6", - "@boostercloud/framework-types": "workspace:^2.18.6", + "@boostercloud/framework-common-helpers": "workspace:^2.18.7", + "@boostercloud/framework-provider-aws": "workspace:^2.18.7", + "@boostercloud/framework-types": "workspace:^2.18.7", "constructs": "^3.3.69", "aws-cdk": "^1.170.0", "aws-sdk": "2.853.0", @@ -69,7 +69,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.6", + "@boostercloud/eslint-config": "workspace:^2.18.7", "@types/aws-lambda": "8.10.48", "@types/aws-sdk": "2.7.0", "@types/chai": "4.2.18", diff --git a/packages/framework-provider-aws/package.json b/packages/framework-provider-aws/package.json index 829674210..62e3755fc 100644 --- a/packages/framework-provider-aws/package.json +++ b/packages/framework-provider-aws/package.json @@ -1,7 +1,7 @@ { "name": "@boostercloud/framework-provider-aws", "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", - "version": "2.18.6", + "version": "2.18.7", "description": "Handle Booster's integration with AWS", "keywords": [ "framework-provider-aws" @@ -24,8 +24,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.6", - "@boostercloud/framework-types": "workspace:^2.18.6", + "@boostercloud/framework-common-helpers": "workspace:^2.18.7", + "@boostercloud/framework-types": "workspace:^2.18.7", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4" }, @@ -43,7 +43,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.6", + "@boostercloud/eslint-config": "workspace:^2.18.7", "@types/aws-lambda": "8.10.48", "@types/chai": "4.2.18", "@types/chai-arrays": "2.0.0", diff --git a/packages/framework-provider-azure-infrastructure/package.json b/packages/framework-provider-azure-infrastructure/package.json index 240be59e8..ab9f61298 100644 --- a/packages/framework-provider-azure-infrastructure/package.json +++ b/packages/framework-provider-azure-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure-infrastructure", - "version": "2.18.6", + "version": "2.18.7", "description": "Handle the Booster deployment process to Azure", "keywords": [ "framework-provider-azure-infrastructure" @@ -25,10 +25,10 @@ "dependencies": { "@azure/arm-appservice": "^13.0.0", "@azure/cosmos": "^4.0.0", - "@boostercloud/framework-common-helpers": "workspace:^2.18.6", - "@boostercloud/framework-core": "workspace:^2.18.6", - "@boostercloud/framework-provider-azure": "workspace:^2.18.6", - "@boostercloud/framework-types": "workspace:^2.18.6", + "@boostercloud/framework-common-helpers": "workspace:^2.18.7", + "@boostercloud/framework-core": "workspace:^2.18.7", + "@boostercloud/framework-provider-azure": "workspace:^2.18.7", + "@boostercloud/framework-types": "workspace:^2.18.7", "@cdktf/provider-azurerm": "13.3.0", "@cdktf/provider-time": "9.0.2", "@types/archiver": "5.1.0", @@ -67,7 +67,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.6", + "@boostercloud/eslint-config": "workspace:^2.18.7", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-azure/package.json b/packages/framework-provider-azure/package.json index 6a727fa17..62af3fba9 100644 --- a/packages/framework-provider-azure/package.json +++ b/packages/framework-provider-azure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-azure", - "version": "2.18.6", + "version": "2.18.7", "description": "Handle Booster's integration with Azure", "keywords": [ "framework-provider-azure" @@ -27,14 +27,14 @@ "@azure/functions": "^1.2.2", "@azure/identity": "~2.1.0", "@azure/event-hubs": "5.11.1", - "@boostercloud/framework-common-helpers": "workspace:^2.18.6", - "@boostercloud/framework-types": "workspace:^2.18.6", + "@boostercloud/framework-common-helpers": "workspace:^2.18.7", + "@boostercloud/framework-types": "workspace:^2.18.7", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", "@azure/web-pubsub": "~1.1.0" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.6", + "@boostercloud/eslint-config": "workspace:^2.18.7", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/faker": "5.1.5", diff --git a/packages/framework-provider-local-infrastructure/package.json b/packages/framework-provider-local-infrastructure/package.json index ad9941cbf..f8dd1d09f 100644 --- a/packages/framework-provider-local-infrastructure/package.json +++ b/packages/framework-provider-local-infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local-infrastructure", - "version": "2.18.6", + "version": "2.18.7", "description": "Handle the Booster running process of the local runtime", "keywords": [ "framework-provider-local-infrastructure" @@ -23,9 +23,9 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.6", - "@boostercloud/framework-provider-local": "workspace:^2.18.6", - "@boostercloud/framework-types": "workspace:^2.18.6", + "@boostercloud/framework-common-helpers": "workspace:^2.18.7", + "@boostercloud/framework-provider-local": "workspace:^2.18.7", + "@boostercloud/framework-types": "workspace:^2.18.7", "cors": "2.8.5", "express": "^4.19.2", "node-schedule": "^2.1.0", @@ -46,7 +46,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.6", + "@boostercloud/eslint-config": "workspace:^2.18.7", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/cors": "^2.8.12", diff --git a/packages/framework-provider-local/package.json b/packages/framework-provider-local/package.json index 9ac534033..a1dde80da 100644 --- a/packages/framework-provider-local/package.json +++ b/packages/framework-provider-local/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-provider-local", - "version": "2.18.6", + "version": "2.18.7", "description": "Debug your Booster projects locally", "keywords": [ "framework-provider-local" @@ -23,8 +23,8 @@ "node": ">=18.0.0 <19.0.0" }, "dependencies": { - "@boostercloud/framework-common-helpers": "workspace:^2.18.6", - "@boostercloud/framework-types": "workspace:^2.18.6", + "@boostercloud/framework-common-helpers": "workspace:^2.18.7", + "@boostercloud/framework-types": "workspace:^2.18.7", "@seald-io/nedb": "4.0.2", "tslib": "^2.4.0", "@effect-ts/core": "^0.60.4", @@ -44,7 +44,7 @@ "url": "https://github.com/boostercloud/booster/issues" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.6", + "@boostercloud/eslint-config": "workspace:^2.18.7", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/express": "^4.17.21", diff --git a/packages/framework-types/package.json b/packages/framework-types/package.json index 9ffccd6f6..862f3dd56 100644 --- a/packages/framework-types/package.json +++ b/packages/framework-types/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/framework-types", - "version": "2.18.6", + "version": "2.18.7", "description": "Contains Booster types related to the information extracted from the user project", "keywords": [ "framework-types" @@ -54,8 +54,8 @@ "ws": "8.17.1" }, "devDependencies": { - "@boostercloud/eslint-config": "workspace:^2.18.6", - "@boostercloud/metadata-booster": "workspace:^2.18.6", + "@boostercloud/eslint-config": "workspace:^2.18.7", + "@boostercloud/metadata-booster": "workspace:^2.18.7", "@types/chai": "4.2.18", "@types/chai-as-promised": "7.1.4", "@types/mocha": "10.0.1", diff --git a/packages/metadata-booster/package.json b/packages/metadata-booster/package.json index c9e129360..7fd4bab48 100644 --- a/packages/metadata-booster/package.json +++ b/packages/metadata-booster/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/metadata-booster", - "version": "2.18.6", + "version": "2.18.7", "description": "Emits detailed metadata of your types. You can then get it in runtime to deal with schema-aware operation, like defining GraphQL schemas, ORM operations, etc.", "repository": "https://github.com/boostercloud/booster.git", "keywords": [ @@ -38,7 +38,7 @@ "eslint-config-prettier": "8.3.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "3.4.0", - "@boostercloud/eslint-config": "workspace:^2.18.6", + "@boostercloud/eslint-config": "workspace:^2.18.7", "@types/node": "^18.18.2", "ts-node": "^10.9.1", "ts-patch": "3.1.2", diff --git a/tools/eslint-config/package.json b/tools/eslint-config/package.json index f491e3e56..89e10ae15 100644 --- a/tools/eslint-config/package.json +++ b/tools/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@boostercloud/eslint-config", - "version": "2.18.6", + "version": "2.18.7", "description": "Shared eslint rules", "main": "index.js", "publishConfig": {