From eb2724f135d2c3c2a1fb8a88051cfb0f2720b5ed Mon Sep 17 00:00:00 2001 From: Abhimanyu Babbar Date: Tue, 26 Sep 2023 10:44:22 +0530 Subject: [PATCH 1/7] fix(dm): updated the stats definition for the tracking plan service --- src/util/prometheus.js | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/util/prometheus.js b/src/util/prometheus.js index 2d781fb862..0899590cd5 100644 --- a/src/util/prometheus.js +++ b/src/util/prometheus.js @@ -229,7 +229,7 @@ class Prometheus { name: 'tp_errors', help: 'tp_errors', type: 'counter', - labelNames: ['sourceType', 'destinationType', 'k8_namespace', 'workspaceId', 'transformationId'], + labelNames: ['sourceType', 'destinationType', 'k8_namespace', 'workspaceId', 'trackingPlanId'], }, { name: 'tp_events_count', @@ -575,7 +575,7 @@ class Prometheus { name: 'tp_request_latency', help: 'tp_request_latency', type: 'histogram', - labelNames: ['sourceType', 'destinationType', 'k8_namespace', 'workspaceId', 'transformationId'], + labelNames: ['sourceType', 'destinationType', 'k8_namespace', 'workspaceId', 'trackingPlanId'], }, { name: 'cdk_events_latency', @@ -614,18 +614,6 @@ class Prometheus { 'k8_namespace', ], }, - { - name: 'user_transform_function_latency', - help: 'user_transform_function_latency', - type: 'histogram', - labelNames: [ - 'transformationVersionId', - 'processSessions', - 'sourceType', - 'destinationType', - 'k8_namespace', - ], - }, { name: 'source_transform_request_latency', help: 'source_transform_request_latency', From 84083aa671312e3934414b5534489fba87d9b29f Mon Sep 17 00:00:00 2001 From: Mihir Bhalala <77438541+mihir-4116@users.noreply.github.com> Date: Tue, 26 Sep 2023 12:24:29 +0530 Subject: [PATCH 2/7] fix(iterable): event id mapping (#2659) --- .../iterable/data/IterableTrackConfig.json | 7 +++++-- .../iterable/data/IterableTrackPurchaseConfig.json | 12 +++++------- test/__tests__/data/iterable.json | 1 - 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/v0/destinations/iterable/data/IterableTrackConfig.json b/src/v0/destinations/iterable/data/IterableTrackConfig.json index 28fdcaecc7..5de4856b33 100644 --- a/src/v0/destinations/iterable/data/IterableTrackConfig.json +++ b/src/v0/destinations/iterable/data/IterableTrackConfig.json @@ -23,8 +23,11 @@ }, { "destKey": "id", - "sourceKeys": ["properties.id", "properties.event_id"], - "required": false + "sourceKeys": "properties.event_id", + "required": false, + "metadata": { + "type": "toString" + } }, { "destKey": "eventName", diff --git a/src/v0/destinations/iterable/data/IterableTrackPurchaseConfig.json b/src/v0/destinations/iterable/data/IterableTrackPurchaseConfig.json index 00e83d0125..aa15d76a70 100644 --- a/src/v0/destinations/iterable/data/IterableTrackPurchaseConfig.json +++ b/src/v0/destinations/iterable/data/IterableTrackPurchaseConfig.json @@ -6,13 +6,11 @@ }, { "destKey": "id", - "sourceKeys": [ - "properties.order_id", - "properties.orderId", - "properties.id", - "properties.event_id" - ], - "required": false + "sourceKeys": ["properties.order_id", "properties.orderId", "properties.event_id"], + "required": false, + "metadata": { + "type": "toString" + } }, { "destKey": "createdAt", diff --git a/test/__tests__/data/iterable.json b/test/__tests__/data/iterable.json index 08e83a47a5..f8147c7402 100644 --- a/test/__tests__/data/iterable.json +++ b/test/__tests__/data/iterable.json @@ -3103,7 +3103,6 @@ "JSON_ARRAY": {}, "FORM": {}, "JSON": { - "id": "event1234", "userId": "abcdeeeeeeeexxxx102", "createdAt": 1598631966468, "dataFields": { From 12d6f57e9608f4c777e870f02d6c61c55ad643cb Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 26 Sep 2023 07:14:18 +0000 Subject: [PATCH 3/7] chore(release): 1.43.1 --- CHANGELOG.md | 8 ++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d98085db13..509ddabe0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [1.43.1](https://github.com/rudderlabs/rudder-transformer/compare/v1.43.0...v1.43.1) (2023-09-26) + + +### Bug Fixes + +* **dm:** updated the stats definition for the tracking plan service ([eb2724f](https://github.com/rudderlabs/rudder-transformer/commit/eb2724f135d2c3c2a1fb8a88051cfb0f2720b5ed)) +* **iterable:** event id mapping ([#2659](https://github.com/rudderlabs/rudder-transformer/issues/2659)) ([84083aa](https://github.com/rudderlabs/rudder-transformer/commit/84083aa671312e3934414b5534489fba87d9b29f)) + ## [1.43.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.42.0...v1.43.0) (2023-09-25) diff --git a/package-lock.json b/package-lock.json index 106a9a0c78..86a661cb82 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rudder-transformer", - "version": "1.43.0", + "version": "1.43.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rudder-transformer", - "version": "1.43.0", + "version": "1.43.1", "license": "ISC", "dependencies": { "@amplitude/ua-parser-js": "^0.7.24", diff --git a/package.json b/package.json index e408d5633b..66d00600ad 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rudder-transformer", - "version": "1.43.0", + "version": "1.43.1", "description": "", "homepage": "https://github.com/rudderlabs/rudder-transformer#readme", "bugs": { From 6edd4a96dccfaa3e453238f24b3247fe8b122964 Mon Sep 17 00:00:00 2001 From: Anant Jain <62471433+anantjain45823@users.noreply.github.com> Date: Tue, 26 Sep 2023 13:32:15 +0530 Subject: [PATCH 4/7] chore: update release owners (#2661) chore: update release stakeholder --- .github/workflows/create-hotfix-branch.yml | 2 +- .github/workflows/draft-new-release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-hotfix-branch.yml b/.github/workflows/create-hotfix-branch.yml index db6f4118e4..aa928b4646 100644 --- a/.github/workflows/create-hotfix-branch.yml +++ b/.github/workflows/create-hotfix-branch.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest # Only allow these users to create new hotfix branch from 'main' - if: github.ref == 'refs/heads/main' && (github.actor == 'ItsSudip' || github.actor == 'krishna2020' || github.actor == 'saikumarrs' || github.actor == 'sandeepdsvs' || github.actor == 'shrouti1507') && (github.triggering_actor == 'ItsSudip' || github.triggering_actor == 'krishna2020' || github.triggering_actor == 'saikumarrs' || github.triggering_actor == 'sandeepdsvs' || github.triggering_actor == 'shrouti1507') + if: github.ref == 'refs/heads/main' && (github.actor == 'ItsSudip' || github.actor == 'krishna2020' || github.actor == 'saikumarrs' || github.actor == 'sandeepdsvs' || github.actor == 'shrouti1507' || github.actor == 'anantjain45823') && (github.triggering_actor == 'ItsSudip' || github.triggering_actor == 'krishna2020' || github.triggering_actor == 'saikumarrs' || github.triggering_actor == 'sandeepdsvs' || github.triggering_actor == 'shrouti1507' || github.triggering_actor == 'anantjain45823') steps: - name: Create Branch uses: peterjgrainger/action-create-branch@v2.4.0 diff --git a/.github/workflows/draft-new-release.yml b/.github/workflows/draft-new-release.yml index 5df37bd6cb..044885316d 100644 --- a/.github/workflows/draft-new-release.yml +++ b/.github/workflows/draft-new-release.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest # Only allow release stakeholders to initiate releases - if: (github.ref == 'refs/heads/develop' || startsWith(github.ref, 'refs/heads/hotfix/')) && (github.actor == 'ItsSudip' || github.actor == 'krishna2020' || github.actor == 'saikumarrs' || github.actor == 'sandeepdsvs' || github.actor == 'shrouti1507') && (github.triggering_actor == 'ItsSudip' || github.triggering_actor == 'krishna2020' || github.triggering_actor == 'saikumarrs' || github.triggering_actor == 'sandeepdsvs' || github.triggering_actor == 'shrouti1507') + if: (github.ref == 'refs/heads/develop' || startsWith(github.ref, 'refs/heads/hotfix/')) && (github.actor == 'ItsSudip' || github.actor == 'krishna2020' || github.actor == 'saikumarrs' || github.actor == 'sandeepdsvs' || github.actor == 'shrouti1507' || github.actor == 'anantjain45823') && (github.triggering_actor == 'ItsSudip' || github.triggering_actor == 'krishna2020' || github.triggering_actor == 'saikumarrs' || github.triggering_actor == 'sandeepdsvs' || github.triggering_actor == 'shrouti1507' || github.triggering_actor == 'anantjain45823') steps: - name: Checkout uses: actions/checkout@v3.5.3 From 6fc3d97dcdb3d4b45fb49b0b82f5bc9042ea70d8 Mon Sep 17 00:00:00 2001 From: devops-github-rudderstack <88187154+devops-github-rudderstack@users.noreply.github.com> Date: Tue, 3 Oct 2023 10:52:30 +0000 Subject: [PATCH 5/7] chore(release): pull release/v1.44.0 into main (#2672) * fix(mixpanel): batch event ordering (#2608) * fix: bqstream event ordering fix (#2624) * fix: bqstream event ordering fix * fix: review comments addressed * fix: importing the common util function * fix: putting both error and successful events logic back * fix: test cases addition and code clean up * fix: code clean up * fix: resolving sonar error * fix: removing network handler for bqstream * fix: refactor process router dest * fix: use promise for prompts in personalize create tracking script (#2635) * fix(snyk): snyk updated versions merged to oen pr * chore: add ttl values for cache (#2593) * fix(hubspot): add validation for hubspotEvents (#2643) * fix: add optional chaining for error message in network handler of Intercom (#2648) fix bugsnag issue * fix(snyk): removed the new added dependencies * fix(snyk): removed aws-sdk dependency * feat: add circular reference check in flattern json (#2650) * chore: update fb_error message for invalid type of property value (#2656) fix: fb_error message for invalid type of property value * feat(iterable): user deletion support (#2621) * feat(iterable): user deletion support * feat(iterable): user deletion improvements * chore: added comments * feat(gaec): partial failures handling (#2631) * chore: partial failure handling * chore: code review changes * chore: move unit tests to correct place for mssql and postgres (#2657) * chore: move unit tests to correct place for mssql and postgres * chore: replace var to const * chore: replace var to const * feat: add axios mocking to component test-suite (#2638) * feat: tslint rules enable (#2604) * feat: remove eslint issues * fix: fixed es-lint tests * fix: merge conflicts * fix: add auth status inactive category handling to GA in userDeletion flow (#2669) * fix: refactor adjust using optional chaining (#2671) fix: refactor adj using opitonal chaining * chore(release): pull main into develop post release v1.43.1 (#2662) * fix(dm): updated the stats definition for the tracking plan service * fix(iterable): event id mapping (#2659) * chore(release): 1.43.1 * chore: update release owners (#2661) chore: update release stakeholder --------- Co-authored-by: Abhimanyu Babbar Co-authored-by: Mihir Bhalala <77438541+mihir-4116@users.noreply.github.com> Co-authored-by: GitHub Actions Co-authored-by: Anant Jain <62471433+anantjain45823@users.noreply.github.com> Co-authored-by: Sudip Paul <67197965+ItsSudip@users.noreply.github.com> * chore(release): 1.44.0 * feat(ga4): added support of filter user traits (#2679) * fix: add optional chaining for traits (#2677) * fix: add optional chaing for traits * update changelog * feat: geolocation support for python transformations (#2678) * feat: geolocation support for python transformations * chore: updating changelog --------- Co-authored-by: Anant Jain <62471433+anantjain45823@users.noreply.github.com> * update changelog * Update CHANGELOG.md --------- Co-authored-by: Gauravudia <60897972+Gauravudia@users.noreply.github.com> Co-authored-by: shrouti1507 <60211312+shrouti1507@users.noreply.github.com> Co-authored-by: Dilip Kola <33080863+koladilip@users.noreply.github.com> Co-authored-by: Sudip Paul <67197965+ItsSudip@users.noreply.github.com> Co-authored-by: Sanjay <71065320+Sanjay-Veernala@users.noreply.github.com> Co-authored-by: Siva Shanmukh Vetcha Co-authored-by: Ujjwal Abhishek <63387036+ujjwal-ab@users.noreply.github.com> Co-authored-by: Mihir Bhalala <77438541+mihir-4116@users.noreply.github.com> Co-authored-by: Sankeerth Co-authored-by: AASHISH MALIK Co-authored-by: Anant Jain <62471433+anantjain45823@users.noreply.github.com> Co-authored-by: Abhimanyu Babbar Co-authored-by: GitHub Actions Co-authored-by: Jayachand Co-authored-by: Anant Jain --- .eslintrc.json | 40 +- CHANGELOG.md | 27 + jest.config.typescript.js | 258 +- package-lock.json | 9591 ++++++++++------- package.json | 13 +- src/adapters/network.js | 15 +- src/adapters/utils/networkUtils.js | 4 +- src/cdk/v1/dcm_floodlight/transform.js | 4 +- src/cdk/v1/new_relic/transform.js | 1 + .../v2/destinations/dcm_floodlight/utils.js | 4 +- src/cdk/v2/destinations/eloqua/utils.js | 9 +- .../launchdarkly_audience/utils.js | 4 +- src/cdk/v2/handler.ts | 15 +- src/cdk/v2/utils.ts | 11 +- src/controllers/bulkUpload.ts | 69 +- src/controllers/delivery.ts | 3 +- src/controllers/destination.ts | 8 +- src/controllers/eventTest.ts | 6 +- src/controllers/profile.ts | 2 - src/controllers/regulation.ts | 7 +- src/controllers/source.ts | 2 +- src/controllers/userTransform.ts | 3 - src/controllers/util/index.ts | 4 +- src/helpers/serviceSelector.ts | 20 +- src/interfaces/DestinationService.ts | 8 +- src/interfaces/SourceService.ts | 4 +- src/legacy/router.js | 23 +- src/middlewares/routeActivation.ts | 1 + src/routes/bulkUpload.ts | 4 +- src/routes/delivery.ts | 3 +- src/routes/destination.ts | 3 +- src/routes/index.ts | 21 +- src/routes/misc.ts | 3 +- src/routes/source.ts | 3 +- src/routes/testEvents.ts | 3 +- src/routes/userTransform.ts | 3 +- src/services/comparator.ts | 15 +- src/services/delivertTest/deliveryTest.ts | 1 + src/services/destination/cdkV1Integration.ts | 12 +- src/services/destination/cdkV2Integration.ts | 17 +- src/services/destination/nativeIntegration.ts | 15 +- .../destination/postTransformation.ts | 11 +- src/services/destination/preTransformation.ts | 6 +- src/services/errorReporting.ts | 2 +- src/services/eventTest/eventTester.ts | 46 +- src/services/misc.ts | 6 +- src/services/profile.ts | 11 +- src/services/source/nativeIntegration.ts | 10 +- src/services/source/postTransformation.ts | 3 +- src/services/userTransform.ts | 31 +- src/testRouter.js | 4 +- src/types/index.ts | 57 +- src/util/customTransforrmationsStore.js | 2 +- src/util/dynamicConfigParser.ts | 7 +- src/util/eventValidation.js | 5 +- src/util/fetch.js | 5 +- src/util/openfaas/index.js | 4 + src/util/types.ts | 25 + src/util/utils.js | 3 +- .../destinations/active_campaign/transform.js | 11 +- src/v0/destinations/adj/transform.js | 16 +- .../destinations/adobe_analytics/transform.js | 22 +- src/v0/destinations/bqstream/transform.js | 77 +- src/v0/destinations/bqstream/util.js | 193 +- src/v0/destinations/bqstream/util.test.js | 267 + src/v0/destinations/branch/transform.js | 7 +- src/v0/destinations/braze/networkHandler.js | 1 + src/v0/destinations/braze/transform.js | 9 +- src/v0/destinations/braze/util.js | 2 +- .../campaign_manager/networkHandler.js | 2 +- src/v0/destinations/canny/util.js | 15 +- .../destinations/clevertap/networkHandler.js | 1 + src/v0/destinations/clevertap/transform.js | 2 +- .../criteo_audience/networkHandler.js | 1 + src/v0/destinations/criteo_audience/util.js | 4 +- src/v0/destinations/customerio/util.js | 14 +- src/v0/destinations/fb/networkHandler.js | 1 + src/v0/destinations/fb/transform.js | 13 +- .../fb_custom_audience/transform.js | 4 +- .../destinations/fb_custom_audience/util.js | 4 +- src/v0/destinations/ga/networkHandler.js | 17 +- src/v0/destinations/ga/transform.js | 4 +- src/v0/destinations/ga360/transform.js | 4 +- src/v0/destinations/ga4/transform.js | 6 +- src/v0/destinations/ga4/utils.js | 42 +- src/v0/destinations/ga4/utils.test.js | 252 +- .../networkHandler.js | 30 +- .../transform.js | 5 +- .../transform.js | 3 +- .../utils.js | 6 +- .../google_cloud_function/transform.js | 4 +- src/v0/destinations/hs/HSTransform-v1.js | 8 +- src/v0/destinations/hs/HSTransform-v2.js | 12 +- src/v0/destinations/hs/util.js | 3 + .../destinations/intercom/networkHandler.js | 1 + src/v0/destinations/intercom/transform.js | 17 +- src/v0/destinations/iterable/deleteUsers.js | 80 + src/v0/destinations/iterable/transform.js | 16 +- src/v0/destinations/iterable/util.js | 61 +- src/v0/destinations/iterable/util.test.js | 98 - src/v0/destinations/klaviyo/transform.js | 7 +- src/v0/destinations/klaviyo/util.js | 14 +- src/v0/destinations/kustomer/util.js | 8 +- src/v0/destinations/mailchimp/transform.js | 6 +- src/v0/destinations/mailjet/transform.js | 6 +- src/v0/destinations/mailmodo/transform.js | 4 +- src/v0/destinations/marketo/networkHandler.js | 1 - .../destinations/marketo_bulk_upload/util.js | 5 +- .../marketo_static_list/networkHandler.js | 2 +- .../marketo_static_list/transform.js | 4 +- src/v0/destinations/mp/deleteUsers.js | 8 +- src/v0/destinations/mp/transform.js | 172 +- src/v0/destinations/mp/util.js | 70 +- src/v0/destinations/mp/util.test.js | 243 +- src/v0/destinations/mssql/transform.test.js | 48 + src/v0/destinations/ometria/transform.js | 2 +- src/v0/destinations/pardot/transform.js | 5 +- .../personalize/scripts/create-trackingid.js | 94 +- src/v0/destinations/personalize/transform.js | 22 +- .../destinations/postgres/transform.test.js | 48 + src/v0/destinations/redis/transform.js | 6 +- src/v0/destinations/sendgrid/transform.js | 6 +- src/v0/destinations/sendinblue/transform.js | 1 + src/v0/destinations/singular/util.js | 4 +- src/v0/destinations/slack/transform.js | 3 +- .../networkHandler.js | 4 +- .../destinations/tiktok_ads/networkHandler.js | 1 + src/v0/destinations/tiktok_ads/transform.js | 1 + src/v0/destinations/tiktok_ads/util.js | 1 + .../tiktok_ads_offline_events/transform.js | 4 +- src/v0/destinations/yahoo_dsp/util.js | 6 +- src/v0/sources/auth0/transform.js | 1 + src/v0/sources/shopify/transform.js | 5 +- src/v0/sources/shopify/util.js | 43 +- src/v0/util/deleteUserUtils.js | 4 +- src/v0/util/index.js | 116 +- src/v0/util/index.test.js | 48 + src/v0/util/testdata/groupEventsByType.json | 624 ++ test/__mocks__/axios.js | 2 - .../marketo_static_list/proxy_response.json | 2 +- .../data/optimizely_fullstack/response.json | 180 - .../__mocks__/data/pardot/proxy_response.json | 352 - test/__mocks__/optimizely_fullstack.mock.js | 19 - test/__tests__/data/clevertap_input.json | 91 +- test/__tests__/data/clevertap_output.json | 81 +- test/__tests__/data/customerio_input.json | 394 +- test/__tests__/data/fb_output.json | 6 +- test/__tests__/data/fb_router_output.json | 2 +- ...ords_enhanced_conversions_proxy_input.json | 2 +- .../google_adwords_offline_conversions.json | 2 +- ...adwords_remarketing_lists_proxy_input.json | 2 +- test/__tests__/data/hs_input.json | 42 + test/__tests__/data/hs_output.json | 15 +- .../marketo_static_list_proxy_output.json | 2 +- test/__tests__/data/mp_router_output.json | 158 +- test/__tests__/data/optimizely_fullstack.json | 1641 --- .../data/optimizely_fullstack_router.json | 494 - test/__tests__/data/pardot_proxy_input.json | 106 - test/__tests__/data/pardot_proxy_output.json | 378 - test/__tests__/data/slack_input.json | 2 +- test/__tests__/data/slack_output.json | 2 +- test/__tests__/mssql.test.js | 50 - .../optimizely_fullstack-cdk.test.ts | 60 - test/__tests__/pardot.test.js | 28 - test/__tests__/postgres.test.js | 50 - test/__tests__/proxy.test.ts | 22 +- test/deleteUsers/README.md | 35 - test/deleteUsers/data/af/handler_input.json | 177 - test/deleteUsers/data/af/handler_output.json | 44 - test/deleteUsers/data/af/nw_client_data.json | 58 - test/deleteUsers/data/am/handler_input.json | 380 - test/deleteUsers/data/am/handler_output.json | 26 - test/deleteUsers/data/am/nw_client_data.json | 91 - .../deleteUsers/data/braze/handler_input.json | 393 - .../data/braze/handler_output.json | 32 - .../data/braze/nw_client_data.json | 97 - .../data/clevertap/handler_input.json | 441 - .../data/clevertap/handler_output.json | 20 - .../data/clevertap/nw_client_data.json | 177 - .../data/engage/handler_input.json | 133 - .../data/engage/handler_output.json | 39 - .../data/engage/nw_client_data.json | 197 - test/deleteUsers/data/ga/handler_input.json | 83 - test/deleteUsers/data/ga/handler_output.json | 21 - test/deleteUsers/data/ga/nw_client_data.json | 316 - .../data/intercom/nw_client_data.json | 96 - .../{intercom => iterable}/handler_input.json | 55 +- .../handler_output.json | 12 +- .../data/iterable/nw_client_data.json | 138 + test/deleteUsers/data/mp/handler_input.json | 3155 ------ test/deleteUsers/data/mp/handler_output.json | 44 - test/deleteUsers/data/mp/nw_client_data.json | 6159 ----------- .../data/sendgrid/handler_input.json | 921 -- .../data/sendgrid/handler_output.json | 26 - .../data/sendgrid/nw_client_data.json | 117 - test/deleteUsers/deleteUsers.test.ts | 67 - test/integrations/component.test.ts | 75 +- .../destinations/active_campaign/network.ts | 1966 ++++ .../destinations/adj/processor/data.ts | 115 +- .../destinations/af/deleteUsers/data.ts | 302 + test/integrations/destinations/af/network.ts | 67 + .../destinations/am/deleteUsers/data.ts | 396 + test/integrations/destinations/am/network.ts | 209 + .../destinations/bqstream/router/data.ts | 362 +- .../destinations/braze/deleteUsers/data.ts | 483 + .../destinations/braze/network.ts | 191 + test/integrations/destinations/canny/data.ts | 3 + .../destinations/canny/network.ts | 83 + .../clevertap/deleteUsers/data.ts | 495 + .../destinations/clevertap/network.ts | 175 + .../destinations/engage/deleteUsers/data.ts | 241 + .../destinations/engage/network.ts | 141 + .../destinations/ga/deleteUsers/data.ts | 181 + test/integrations/destinations/ga/network.ts | 327 + .../destinations/intercom/deleteUsers/data.ts | 180 + .../destinations/intercom/network.ts | 93 + .../marketo_static_list/network.ts | 22 + .../destinations/mautic/network.ts | 3232 ++++++ .../destinations/mp/deleteUsers/data.ts | 3281 ++++++ test/integrations/destinations/mp/network.ts | 1150 ++ .../optimizely_fullstack/network.ts | 206 + .../optimizely_fullstack/processor/data.ts | 2170 ++++ .../optimizely_fullstack/router/data.ts | 563 + .../destinations/pardot/network.ts | 440 + .../destinations/pardot/router/data.ts | 553 + .../destinations/sendgrid/deleteUsers/data.ts | 1275 +++ .../destinations/sendgrid/network.ts | 110 + .../destinations/trengo/network.ts | 1326 +++ .../integrations/destinations/user/network.ts | 441 + .../destinations/yahoo_dsp/network.ts | 22 + .../destinations/yahoo_dsp/processor/data.ts | 12 +- .../destinations/yahoo_dsp/router/data.ts | 3 + .../destinations/zendesk/network.ts | 1825 ++++ test/integrations/testTypes.ts | 9 + test/integrations/testUtils.ts | 53 +- test/testHelper.js | 13 + 236 files changed, 31704 insertions(+), 22301 deletions(-) create mode 100644 src/util/types.ts create mode 100644 src/v0/destinations/bqstream/util.test.js create mode 100644 src/v0/destinations/iterable/deleteUsers.js create mode 100644 src/v0/destinations/mssql/transform.test.js create mode 100644 src/v0/destinations/postgres/transform.test.js create mode 100644 src/v0/util/testdata/groupEventsByType.json delete mode 100644 test/__mocks__/data/optimizely_fullstack/response.json delete mode 100644 test/__mocks__/data/pardot/proxy_response.json delete mode 100644 test/__mocks__/optimizely_fullstack.mock.js delete mode 100644 test/__tests__/data/optimizely_fullstack.json delete mode 100644 test/__tests__/data/optimizely_fullstack_router.json delete mode 100644 test/__tests__/data/pardot_proxy_input.json delete mode 100644 test/__tests__/data/pardot_proxy_output.json delete mode 100644 test/__tests__/mssql.test.js delete mode 100644 test/__tests__/optimizely_fullstack-cdk.test.ts delete mode 100644 test/__tests__/pardot.test.js delete mode 100644 test/__tests__/postgres.test.js delete mode 100644 test/deleteUsers/README.md delete mode 100644 test/deleteUsers/data/af/handler_input.json delete mode 100644 test/deleteUsers/data/af/handler_output.json delete mode 100644 test/deleteUsers/data/af/nw_client_data.json delete mode 100644 test/deleteUsers/data/am/handler_input.json delete mode 100644 test/deleteUsers/data/am/handler_output.json delete mode 100644 test/deleteUsers/data/am/nw_client_data.json delete mode 100644 test/deleteUsers/data/braze/handler_input.json delete mode 100644 test/deleteUsers/data/braze/handler_output.json delete mode 100644 test/deleteUsers/data/braze/nw_client_data.json delete mode 100644 test/deleteUsers/data/clevertap/handler_input.json delete mode 100644 test/deleteUsers/data/clevertap/handler_output.json delete mode 100644 test/deleteUsers/data/clevertap/nw_client_data.json delete mode 100644 test/deleteUsers/data/engage/handler_input.json delete mode 100644 test/deleteUsers/data/engage/handler_output.json delete mode 100644 test/deleteUsers/data/engage/nw_client_data.json delete mode 100644 test/deleteUsers/data/ga/handler_input.json delete mode 100644 test/deleteUsers/data/ga/handler_output.json delete mode 100644 test/deleteUsers/data/ga/nw_client_data.json delete mode 100644 test/deleteUsers/data/intercom/nw_client_data.json rename test/deleteUsers/data/{intercom => iterable}/handler_input.json (56%) rename test/deleteUsers/data/{intercom => iterable}/handler_output.json (58%) create mode 100644 test/deleteUsers/data/iterable/nw_client_data.json delete mode 100644 test/deleteUsers/data/mp/handler_input.json delete mode 100644 test/deleteUsers/data/mp/handler_output.json delete mode 100644 test/deleteUsers/data/mp/nw_client_data.json delete mode 100644 test/deleteUsers/data/sendgrid/handler_input.json delete mode 100644 test/deleteUsers/data/sendgrid/handler_output.json delete mode 100644 test/deleteUsers/data/sendgrid/nw_client_data.json delete mode 100644 test/deleteUsers/deleteUsers.test.ts create mode 100644 test/integrations/destinations/active_campaign/network.ts create mode 100644 test/integrations/destinations/af/deleteUsers/data.ts create mode 100644 test/integrations/destinations/af/network.ts create mode 100644 test/integrations/destinations/am/deleteUsers/data.ts create mode 100644 test/integrations/destinations/am/network.ts create mode 100644 test/integrations/destinations/braze/deleteUsers/data.ts create mode 100644 test/integrations/destinations/braze/network.ts create mode 100644 test/integrations/destinations/canny/network.ts create mode 100644 test/integrations/destinations/clevertap/deleteUsers/data.ts create mode 100644 test/integrations/destinations/clevertap/network.ts create mode 100644 test/integrations/destinations/engage/deleteUsers/data.ts create mode 100644 test/integrations/destinations/engage/network.ts create mode 100644 test/integrations/destinations/ga/deleteUsers/data.ts create mode 100644 test/integrations/destinations/ga/network.ts create mode 100644 test/integrations/destinations/intercom/deleteUsers/data.ts create mode 100644 test/integrations/destinations/intercom/network.ts create mode 100644 test/integrations/destinations/marketo_static_list/network.ts create mode 100644 test/integrations/destinations/mautic/network.ts create mode 100644 test/integrations/destinations/mp/deleteUsers/data.ts create mode 100644 test/integrations/destinations/mp/network.ts create mode 100644 test/integrations/destinations/optimizely_fullstack/network.ts create mode 100644 test/integrations/destinations/optimizely_fullstack/processor/data.ts create mode 100644 test/integrations/destinations/optimizely_fullstack/router/data.ts create mode 100644 test/integrations/destinations/pardot/network.ts create mode 100644 test/integrations/destinations/sendgrid/deleteUsers/data.ts create mode 100644 test/integrations/destinations/sendgrid/network.ts create mode 100644 test/integrations/destinations/trengo/network.ts create mode 100644 test/integrations/destinations/user/network.ts create mode 100644 test/integrations/destinations/yahoo_dsp/network.ts create mode 100644 test/integrations/destinations/zendesk/network.ts diff --git a/.eslintrc.json b/.eslintrc.json index 805e5e7efe..c2614ac5ef 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -28,7 +28,7 @@ ], "unicorn/no-instanceof-array": "error", "unicorn/no-static-only-class": "error", - "unicorn/consistent-destructuring": "off", + "unicorn/consistent-destructuring": "error", "unicorn/better-regex": "error", "unicorn/no-for-loop": "error", "unicorn/prefer-array-some": "error", @@ -40,29 +40,31 @@ "unicorn/no-useless-spread": "error", "unicorn/no-useless-length-check": "error", "unicorn/prefer-export-from": "error", - "import/no-dynamic-require": "warn", - "no-param-reassign": "warn", + "import/no-dynamic-require": "error", + "no-param-reassign": "error", "sonarjs/prefer-immediate-return": "off", "sonarjs/no-nested-template-literals": "off", - "sonarjs/max-switch-cases": "off", - "sonarjs/no-small-switch": "warn", + "sonarjs/max-switch-cases": "error", + "sonarjs/no-small-switch": "error", "sonarjs/cognitive-complexity": ["error", 60], "@typescript-eslint/no-var-requires": "off", - "global-require": "off", - "@typescript-eslint/naming-convention": "off", - "@typescript-eslint/ban-types": "off", + "global-require": "error", + "@typescript-eslint/naming-convention": "error", + "@typescript-eslint/ban-types": "error", + "@typescript-eslint/no-explicit-any": "off", "class-methods-use-this": "off", - "@typescript-eslint/return-await": "off", - "import/prefer-default-export": "off", - "sonarjs/no-ignored-return": "off", - "no-new": "off", - "@typescript-eslint/no-shadow": "off", - "@typescript-eslint/no-loop-func": "off", - "sonarjs/no-same-line-conditional": "off", - "no-restricted-syntax": "off", - "sonarjs/no-duplicate-string": "off", - "sonarjs/no-identical-functions": "off", + "@typescript-eslint/return-await": "error", + "import/prefer-default-export": "error", + "sonarjs/no-ignored-return": "error", + "no-new": "error", + "@typescript-eslint/no-shadow": "error", + "@typescript-eslint/no-loop-func": "error", + "sonarjs/no-same-line-conditional": "error", + "no-restricted-syntax": "error", + "sonarjs/no-duplicate-string": "error", + "sonarjs/no-identical-functions": "error", "no-prototype-builtins": "off", - "@typescript-eslint/dot-notation": "off" + "@typescript-eslint/dot-notation": "error", + "@typescript-eslint/no-unused-vars": "error" } } diff --git a/CHANGELOG.md b/CHANGELOG.md index 509ddabe0a..621c6709bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,33 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.44.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.43.1...v1.44.0) (2023-09-29) + + +### Features + +* add geolocation support for python transformations ([#2678](https://github.com/rudderlabs/rudder-transformer/issues/2678)) ([b688c4a](https://github.com/rudderlabs/rudder-transformer/commit/b688c4a6889250bacfd2a81c9de8a1436281daa9)) +* add axios mocking to component test-suite ([#2638](https://github.com/rudderlabs/rudder-transformer/issues/2638)) ([100c808](https://github.com/rudderlabs/rudder-transformer/commit/100c80881eb99716198231deb9ec0e69dc3fa2a0)) +* add circular reference check in flattern json ([#2650](https://github.com/rudderlabs/rudder-transformer/issues/2650)) ([a21ea3a](https://github.com/rudderlabs/rudder-transformer/commit/a21ea3aaecfc3d10de3f4eaa34425dda388032ff)) +* **gaec:** partial failures handling ([#2631](https://github.com/rudderlabs/rudder-transformer/issues/2631)) ([0008277](https://github.com/rudderlabs/rudder-transformer/commit/0008277fe43d20ced4066f8f1f1b0f1d12345f01)) +* **iterable:** user deletion support ([#2621](https://github.com/rudderlabs/rudder-transformer/issues/2621)) ([c0ab19a](https://github.com/rudderlabs/rudder-transformer/commit/c0ab19a293a72ea0a7575b863356aea9a0e6762f)) +* tslint rules enable ([#2604](https://github.com/rudderlabs/rudder-transformer/issues/2604)) ([4d6c4b8](https://github.com/rudderlabs/rudder-transformer/commit/4d6c4b834de005484dc1099a52c69ab6212273e8)) + + +### Bug Fixes +* add optional chaining for traits ([#2677](https://github.com/rudderlabs/rudder-transformer/issues/2677)) ([b80bfbc](https://github.com/rudderlabs/rudder-transformer/commit/b80bfbc8a6afdef57ad5f2560bb803c8e00bcbfc)) +* add auth status inactive category handling to GA in userDeletion flow ([#2669](https://github.com/rudderlabs/rudder-transformer/issues/2669)) ([b784800](https://github.com/rudderlabs/rudder-transformer/commit/b7848004e2679ec7278c8381560cb1a77da6c642)) +* add optional chaining for error message in network handler of Intercom ([#2648](https://github.com/rudderlabs/rudder-transformer/issues/2648)) ([10a13bc](https://github.com/rudderlabs/rudder-transformer/commit/10a13bcf7f987de45540b52d414883664e43f9cd)) +* bqstream event ordering fix ([#2624](https://github.com/rudderlabs/rudder-transformer/issues/2624)) ([e97e7ca](https://github.com/rudderlabs/rudder-transformer/commit/e97e7caed20ffb007f1c543e15c15c6e89e2dfb7)) +* **hubspot:** add validation for hubspotEvents ([#2643](https://github.com/rudderlabs/rudder-transformer/issues/2643)) ([b49d0ee](https://github.com/rudderlabs/rudder-transformer/commit/b49d0ee576f55e5f95e3d02b7111e995fc9b8ada)) +* **mixpanel:** batch event ordering ([#2608](https://github.com/rudderlabs/rudder-transformer/issues/2608)) ([36c7f06](https://github.com/rudderlabs/rudder-transformer/commit/36c7f06ccfa534b751ca9b3f5c41e9bb6d2e9f00)) +* refactor adjust using optional chaining ([#2671](https://github.com/rudderlabs/rudder-transformer/issues/2671)) ([f63b493](https://github.com/rudderlabs/rudder-transformer/commit/f63b4932d5ba467a82a36d3e8b80578f81f729cf)) +* **snyk:** fix dependencies version from snyk ([#2640](https://github.com/rudderlabs/rudder-transformer/issues/2640)) ([8422744](https://github.com/rudderlabs/rudder-transformer/commit/8422744b3af48f71358f7acbe2df7b3688ce04a8)) +* **snyk:** removed aws-sdk dependency ([08a3535](https://github.com/rudderlabs/rudder-transformer/commit/08a3535257e5d84566c95cebc701613478f0e039)) +* **snyk:** removed the new added dependencies ([364779c](https://github.com/rudderlabs/rudder-transformer/commit/364779ce959d7548e5cf1cc8c718b71331dcb378)) +* **snyk:** snyk updated versions merged to oen pr ([16a9b8e](https://github.com/rudderlabs/rudder-transformer/commit/16a9b8e6cc26a8df1331cb1af8774df7cc05c959)) +* use promise for prompts in personalize create tracking script ([#2635](https://github.com/rudderlabs/rudder-transformer/issues/2635)) ([5fbddd1](https://github.com/rudderlabs/rudder-transformer/commit/5fbddd1490b16dbda6bca19df4cac5bef6ff78c5)) + ### [1.43.1](https://github.com/rudderlabs/rudder-transformer/compare/v1.43.0...v1.43.1) (2023-09-26) diff --git a/jest.config.typescript.js b/jest.config.typescript.js index 66f4236e7e..fde50e3d5e 100644 --- a/jest.config.typescript.js +++ b/jest.config.typescript.js @@ -2,186 +2,186 @@ // https://jestjs.io/docs/en/configuration.html module.exports = { - // All imported modules in your tests should be mocked automatically - // automock: false, + // All imported modules in your tests should be mocked automatically + // automock: false, - // Stop running tests after `n` failures - bail: 1, + // Stop running tests after `n` failures + bail: 1, - // Respect "browser" field in package.json when resolving modules - // browser: false, + // Respect "browser" field in package.json when resolving modules + // browser: false, - // The directory where Jest should store its cached dependency information - // cacheDirectory: "/private/var/folders/bj/xt4sffgd21z57fxhvqrd30_80000gn/T/jest_dx", + // The directory where Jest should store its cached dependency information + // cacheDirectory: "/private/var/folders/bj/xt4sffgd21z57fxhvqrd30_80000gn/T/jest_dx", - // Automatically clear mock calls and instances between every test - // clearMocks: false, + // Automatically clear mock calls and instances between every test + // clearMocks: false, - // Indicates whether the coverage information should be collected while executing the test - collectCoverage: false, + // Indicates whether the coverage information should be collected while executing the test + collectCoverage: false, - // An array of glob patterns indicating a set of files for which coverage information should be collected - // collectCoverageFrom: null, + // An array of glob patterns indicating a set of files for which coverage information should be collected + // collectCoverageFrom: null, - // The directory where Jest should output its coverage files - coverageDirectory: 'reports/ts-coverage', + // The directory where Jest should output its coverage files + coverageDirectory: 'reports/ts-coverage', - // An array of regexp pattern strings used to skip coverage collection - coveragePathIgnorePatterns: ['/node_modules/', '__tests__'], + // An array of regexp pattern strings used to skip coverage collection + coveragePathIgnorePatterns: ['/node_modules/', '__tests__'], - // A list of reporter names that Jest uses when writing coverage reports - coverageReporters: ['json', 'text', 'lcov', 'clover'], + // A list of reporter names that Jest uses when writing coverage reports + coverageReporters: ['json', 'text', 'lcov', 'clover'], - // An object that configures minimum threshold enforcement for coverage results - coverageThreshold: { - global: { - branches: 30, - functions: 40, - lines: 50, - statements: 50, - }, + // An object that configures minimum threshold enforcement for coverage results + coverageThreshold: { + global: { + branches: 30, + functions: 40, + lines: 50, + statements: 50, }, + }, - // A path to a custom dependency extractor - // dependencyExtractor: null, + // A path to a custom dependency extractor + // dependencyExtractor: null, - // Make calling deprecated APIs throw helpful error messages - errorOnDeprecated: true, + // Make calling deprecated APIs throw helpful error messages + errorOnDeprecated: true, - // Force coverage collection from ignored files using an array of glob patterns - // forceCoverageMatch: [], + // Force coverage collection from ignored files using an array of glob patterns + // forceCoverageMatch: [], - // A path to a module which exports an async function that is triggered once before all test suites - // globalSetup: null, + // A path to a module which exports an async function that is triggered once before all test suites + // globalSetup: null, - // A path to a module which exports an async function that is triggered once after all test suites - // globalTeardown: null, + // A path to a module which exports an async function that is triggered once after all test suites + // globalTeardown: null, - // A set of global variables that need to be available in all test environments - // globals: { - // 'ts-jest': { - // tsConfigFile: 'tsconfig.json', - // diagnostics: true - // }, - // }, + // A set of global variables that need to be available in all test environments + // globals: { + // 'ts-jest': { + // tsConfigFile: 'tsconfig.json', + // diagnostics: true + // }, + // }, - // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers. - // maxWorkers: "50%", + // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers. + // maxWorkers: "50%", - // An array of directory names to be searched recursively up from the requiring module's location - moduleDirectories: ['node_modules'], + // An array of directory names to be searched recursively up from the requiring module's location + moduleDirectories: ['node_modules'], - // An array of file extensions your modules use - moduleFileExtensions: ['js', 'json', 'ts', 'node'], + // An array of file extensions your modules use + moduleFileExtensions: ['js', 'json', 'ts', 'node'], - // A map from regular expressions to module names that allow to stub out resources with a single module - // moduleNameMapper: {}, + // A map from regular expressions to module names that allow to stub out resources with a single module + // moduleNameMapper: {}, - // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader - // modulePathIgnorePatterns: [], + // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader + modulePathIgnorePatterns: ['/test/__mocks__/axios.js'], - // Activates notifications for test results - notify: true, + // Activates notifications for test results + notify: true, - // An enum that specifies notification mode. Requires { notify: true } - notifyMode: 'failure-change', + // An enum that specifies notification mode. Requires { notify: true } + notifyMode: 'failure-change', - // A preset that is used as a base for Jest's configuration - preset: 'ts-jest', + // A preset that is used as a base for Jest's configuration + preset: 'ts-jest', - // Run tests from one or more projects - // projects: null, + // Run tests from one or more projects + // projects: null, - // Use this configuration option to add custom reporters to Jest - // reporters: undefined, + // Use this configuration option to add custom reporters to Jest + // reporters: undefined, - // Automatically reset mock state between every test - // resetMocks: false, + // Automatically reset mock state between every test + // resetMocks: false, - // Reset the module registry before running each individual test - // resetModules: false, + // Reset the module registry before running each individual test + // resetModules: false, - // A path to a custom resolver - // resolver: null, + // A path to a custom resolver + // resolver: null, - // Automatically restore mock state between every test - // restoreMocks: false, + // Automatically restore mock state between every test + // restoreMocks: false, - // The root directory that Jest should scan for tests and modules within - // rootDir: null, + // The root directory that Jest should scan for tests and modules within + // rootDir: null, - // A list of paths to directories that Jest should use to search for files in - // roots: [ - // "" - // ], + // A list of paths to directories that Jest should use to search for files in + // roots: [ + // "" + // ], - // Allows you to use a custom runner instead of Jest's default test runner - // runner: "jest-runner", + // Allows you to use a custom runner instead of Jest's default test runner + // runner: "jest-runner", - // The paths to modules that run some code to configure or set up the testing environment before each test - // setupFiles: [], + // The paths to modules that run some code to configure or set up the testing environment before each test + // setupFiles: [], - // A list of paths to modules that run some code to configure or set up the testing framework before each test - // setupFilesAfterEnv: [], + // A list of paths to modules that run some code to configure or set up the testing framework before each test + // setupFilesAfterEnv: [], - // A list of paths to snapshot serializer modules Jest should use for snapshot testing - // snapshotSerializers: [], + // A list of paths to snapshot serializer modules Jest should use for snapshot testing + // snapshotSerializers: [], - // The test environment that will be used for testing - testEnvironment: 'node', + // The test environment that will be used for testing + testEnvironment: 'node', - // Options that will be passed to the testEnvironment - // testEnvironmentOptions: {}, + // Options that will be passed to the testEnvironment + // testEnvironmentOptions: {}, - // Adds a location field to test results - // testLocationInResults: false, + // Adds a location field to test results + // testLocationInResults: false, - // The glob patterns Jest uses to detect test files - testMatch: ['**/*.(test).ts?(x)'], + // The glob patterns Jest uses to detect test files + testMatch: ['**/*.(test).ts?(x)'], - // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped - testPathIgnorePatterns: ['/node_modules/'], + // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped + testPathIgnorePatterns: ['/node_modules/'], - // The regexp pattern or array of patterns that Jest uses to detect test files - // testRegex: [], + // The regexp pattern or array of patterns that Jest uses to detect test files + // testRegex: [], - // This option allows the use of a custom results processor - // testResultsProcessor: null, + // This option allows the use of a custom results processor + // testResultsProcessor: null, - // This option allows use of a custom test runner - // testRunner: "jasmine2", + // This option allows use of a custom test runner + // testRunner: "jasmine2", - // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href - // testURL: "http://localhost", + // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href + // testURL: "http://localhost", - // Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout" - // timers: "real", + // Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout" + // timers: "real", - // A map from regular expressions to paths to transformers - transform: { - '^.+\\.tsx?$': [ - 'ts-jest', - { - tsconfig: 'tsconfig.json', - diagnostics: true, - }, - ], - }, + // A map from regular expressions to paths to transformers + transform: { + '^.+\\.tsx?$': [ + 'ts-jest', + { + tsconfig: 'tsconfig.json', + diagnostics: true, + }, + ], + }, - // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation - // transformIgnorePatterns: [ - // "/node_modules/" - // ], + // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation + // transformIgnorePatterns: [ + // "/node_modules/" + // ], - // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them - // unmockedModulePathPatterns: undefined, + // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them + // unmockedModulePathPatterns: undefined, - // Indicates whether each individual test should be reported during the run - // verbose: null, + // Indicates whether each individual test should be reported during the run + // verbose: null, - // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode - // watchPathIgnorePatterns: [], + // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode + // watchPathIgnorePatterns: [], - // Whether to use watchman for file crawling - // watchman: true, + // Whether to use watchman for file crawling + // watchman: true, }; diff --git a/package-lock.json b/package-lock.json index 86a661cb82..895ec6c211 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,19 +1,19 @@ { "name": "rudder-transformer", - "version": "1.43.1", + "version": "1.44.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rudder-transformer", - "version": "1.43.1", + "version": "1.44.0", "license": "ISC", "dependencies": { "@amplitude/ua-parser-js": "^0.7.24", - "@aws-sdk/client-personalize": "^3.363.0", + "@aws-sdk/client-personalize": "^3.391.0", "@aws-sdk/client-s3": "^3.370.0", - "@aws-sdk/credential-providers": "^3.363.0", - "@aws-sdk/lib-storage": "^3.370.0", + "@aws-sdk/credential-providers": "^3.391.0", + "@aws-sdk/lib-storage": "^3.391.0", "@bugsnag/js": "^7.20.2", "@datadog/pprof": "^3.1.0", "@koa/router": "^12.0.0", @@ -23,6 +23,7 @@ "ajv": "^8.12.0", "ajv-draft-04": "^1.0.0", "ajv-formats": "^2.1.1", + "aws-sdk": "^2.1354.0", "axios": "^1.4.0", "btoa": "^1.2.1", "component-each": "^0.2.6", @@ -52,7 +53,7 @@ "moment": "^2.29.4", "moment-timezone": "^0.5.43", "node-cache": "^5.1.2", - "node-fetch": "^2.6.9", + "node-fetch": "^2.6.12", "oauth-1.0a": "^2.2.6", "object-hash": "^3.0.0", "parse-static-imports": "^1.1.0", @@ -72,6 +73,7 @@ "devDependencies": { "@commitlint/config-conventional": "^17.6.3", "@digitalroute/cz-conventional-changelog-for-jira": "^8.0.1", + "@types/fast-json-stable-stringify": "^2.1.0", "@types/jest": "^29.5.1", "@types/koa": "^2.13.6", "@types/koa-bodyparser": "^4.3.10", @@ -79,6 +81,7 @@ "@types/node": "^20.2.5", "@typescript-eslint/eslint-plugin": "^5.61.0", "@typescript-eslint/parser": "^5.59.2", + "axios-mock-adapter": "^1.22.0", "benchmark-suite": "^0.1.8", "commander": "^10.0.1", "commitizen": "^4.3.0", @@ -113,26 +116,23 @@ }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/@amplitude/ua-parser-js": { "version": "0.7.24", - "resolved": "https://registry.npmjs.org/@amplitude/ua-parser-js/-/ua-parser-js-0.7.24.tgz", - "integrity": "sha512-VbQuJymJ20WEw0HtI2np7EdC3NJGUWi8+Xdbc7uk8WfMIF308T0howpzkQ3JFMN7ejnrcSM/OyNGveeE3TP3TA==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/@ampproject/remapping": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -143,9 +143,8 @@ }, "node_modules/@apidevtools/json-schema-ref-parser": { "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz", - "integrity": "sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==", "dev": true, + "license": "MIT", "dependencies": { "@jsdevtools/ono": "^7.1.3", "call-me-maybe": "^1.0.1", @@ -154,18 +153,16 @@ }, "node_modules/@apidevtools/json-schema-ref-parser/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/@apidevtools/json-schema-ref-parser/node_modules/js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -176,24 +173,21 @@ }, "node_modules/@apidevtools/openapi-schemas": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", - "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/@apidevtools/swagger-methods": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", - "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@apidevtools/swagger-parser": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.1.0.tgz", - "integrity": "sha512-9Kt7EuS/7WbMAUv2gSziqjvxwDbFSg3Xeyfuj5laUODX8o/k/CpsAKiQ8W7/R88eXFTMbJYg6+7uAmOWNKmwnw==", "dev": true, + "license": "MIT", "dependencies": { "@apidevtools/json-schema-ref-parser": "9.0.6", "@apidevtools/openapi-schemas": "^2.1.0", @@ -209,8 +203,7 @@ }, "node_modules/@aws-crypto/crc32": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz", - "integrity": "sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/util": "^3.0.0", "@aws-sdk/types": "^3.222.0", @@ -219,13 +212,11 @@ }, "node_modules/@aws-crypto/crc32/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/@aws-crypto/crc32c": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz", - "integrity": "sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/util": "^3.0.0", "@aws-sdk/types": "^3.222.0", @@ -234,26 +225,22 @@ }, "node_modules/@aws-crypto/crc32c/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/@aws-crypto/ie11-detection": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", - "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==", + "license": "Apache-2.0", "dependencies": { "tslib": "^1.11.1" } }, "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/@aws-crypto/sha1-browser": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz", - "integrity": "sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/ie11-detection": "^3.0.0", "@aws-crypto/supports-web-crypto": "^3.0.0", @@ -266,13 +253,11 @@ }, "node_modules/@aws-crypto/sha1-browser/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/@aws-crypto/sha256-browser": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz", - "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/ie11-detection": "^3.0.0", "@aws-crypto/sha256-js": "^3.0.0", @@ -286,13 +271,11 @@ }, "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/@aws-crypto/sha256-js": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz", - "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/util": "^3.0.0", "@aws-sdk/types": "^3.222.0", @@ -301,26 +284,22 @@ }, "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/@aws-crypto/supports-web-crypto": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz", - "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==", + "license": "Apache-2.0", "dependencies": { "tslib": "^1.11.1" } }, "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/@aws-crypto/util": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", - "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", + "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.222.0", "@aws-sdk/util-utf8-browser": "^3.0.0", @@ -329,66 +308,63 @@ }, "node_modules/@aws-crypto/util/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/@aws-sdk/chunked-blob-reader": { "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader/-/chunked-blob-reader-3.310.0.tgz", - "integrity": "sha512-CrJS3exo4mWaLnWxfCH+w88Ou0IcAZSIkk4QbmxiHl/5Dq705OLoxf4385MVyExpqpeVJYOYQ2WaD8i/pQZ2fg==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" } }, "node_modules/@aws-sdk/chunked-blob-reader-native": { "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.310.0.tgz", - "integrity": "sha512-RuhyUY9hCd6KWA2DMF/U6rilYLLRYrDY6e0lq3Of1yzSRFxi4bk9ZMCF0mxf/9ppsB5eudUjrOypYgm6Axt3zw==", + "license": "Apache-2.0", "dependencies": { "@aws-sdk/util-base64": "3.310.0", "tslib": "^2.5.0" } }, "node_modules/@aws-sdk/client-cognito-identity": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.363.0.tgz", - "integrity": "sha512-tsJzgBSCpna85IVsuS7FBIK9wkSl7fs8TJ/QzapIgu8rKss0ySHVO6TeMVAdw2BvaQl7CxU9c3PosjhLWHu6KQ==", + "version": "3.414.0", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.363.0", - "@aws-sdk/credential-provider-node": "3.363.0", - "@aws-sdk/middleware-host-header": "3.363.0", - "@aws-sdk/middleware-logger": "3.363.0", - "@aws-sdk/middleware-recursion-detection": "3.363.0", - "@aws-sdk/middleware-signing": "3.363.0", - "@aws-sdk/middleware-user-agent": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-endpoints": "3.357.0", - "@aws-sdk/util-user-agent-browser": "3.363.0", - "@aws-sdk/util-user-agent-node": "3.363.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.1", - "@smithy/middleware-retry": "^1.0.2", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.2", - "@smithy/protocol-http": "^1.0.1", - "@smithy/smithy-client": "^1.0.3", - "@smithy/types": "^1.0.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.2", - "@smithy/util-utf8": "^1.0.1", + "@aws-sdk/client-sts": "3.414.0", + "@aws-sdk/credential-provider-node": "3.414.0", + "@aws-sdk/middleware-host-header": "3.413.0", + "@aws-sdk/middleware-logger": "3.413.0", + "@aws-sdk/middleware-recursion-detection": "3.413.0", + "@aws-sdk/middleware-signing": "3.413.0", + "@aws-sdk/middleware-user-agent": "3.413.0", + "@aws-sdk/region-config-resolver": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@aws-sdk/util-endpoints": "3.413.0", + "@aws-sdk/util-user-agent-browser": "3.413.0", + "@aws-sdk/util-user-agent-node": "3.413.0", + "@smithy/config-resolver": "^2.0.8", + "@smithy/fetch-http-handler": "^2.1.3", + "@smithy/hash-node": "^2.0.7", + "@smithy/invalid-dependency": "^2.0.7", + "@smithy/middleware-content-length": "^2.0.9", + "@smithy/middleware-endpoint": "^2.0.7", + "@smithy/middleware-retry": "^2.0.10", + "@smithy/middleware-serde": "^2.0.7", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.10", + "@smithy/node-http-handler": "^2.1.3", + "@smithy/protocol-http": "^3.0.3", + "@smithy/smithy-client": "^2.1.4", + "@smithy/types": "^2.3.1", + "@smithy/url-parser": "^2.0.7", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.8", + "@smithy/util-defaults-mode-node": "^2.0.10", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", "tslib": "^2.5.0" }, "engines": { @@ -396,334 +372,1182 @@ } }, "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "version": "3.413.0", + "license": "Apache-2.0", "dependencies": { + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-personalize/-/client-personalize-3.363.0.tgz", - "integrity": "sha512-SZ9QO3LLuIiAvT28F2Qo7ImbmAvedticrDMoFpvVQB2TJ/NR0wzu33udMqN4ZCy8bUY9eG1mhdo35YAhzVgjBQ==", + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/abort-controller": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.363.0", - "@aws-sdk/credential-provider-node": "3.363.0", - "@aws-sdk/middleware-host-header": "3.363.0", - "@aws-sdk/middleware-logger": "3.363.0", - "@aws-sdk/middleware-recursion-detection": "3.363.0", - "@aws-sdk/middleware-signing": "3.363.0", - "@aws-sdk/middleware-user-agent": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-endpoints": "3.357.0", - "@aws-sdk/util-user-agent-browser": "3.363.0", - "@aws-sdk/util-user-agent-node": "3.363.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.1", - "@smithy/middleware-retry": "^1.0.2", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.2", - "@smithy/protocol-http": "^1.0.1", - "@smithy/smithy-client": "^1.0.3", - "@smithy/types": "^1.0.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.2", - "@smithy/util-utf8": "^1.0.1", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/config-resolver": { + "version": "2.0.10", + "license": "Apache-2.0", "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/types": "^2.3.3", + "@smithy/util-config-provider": "^2.0.0", + "@smithy/util-middleware": "^2.0.2", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.370.0.tgz", - "integrity": "sha512-+b53hI+C+tIiE6OhIvaUXD5qC0zFrCWIu6EKT597W+4XzfFIZE0BGgolP8pC1lLDghPjCFSmAm9Efcb2a1sPvw==", + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/credential-provider-imds": { + "version": "2.0.12", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha1-browser": "3.0.0", - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.370.0", - "@aws-sdk/credential-provider-node": "3.370.0", - "@aws-sdk/hash-blob-browser": "3.370.0", - "@aws-sdk/hash-stream-node": "3.370.0", - "@aws-sdk/md5-js": "3.370.0", - "@aws-sdk/middleware-bucket-endpoint": "3.370.0", - "@aws-sdk/middleware-expect-continue": "3.370.0", - "@aws-sdk/middleware-flexible-checksums": "3.370.0", - "@aws-sdk/middleware-host-header": "3.370.0", - "@aws-sdk/middleware-location-constraint": "3.370.0", - "@aws-sdk/middleware-logger": "3.370.0", - "@aws-sdk/middleware-recursion-detection": "3.370.0", - "@aws-sdk/middleware-sdk-s3": "3.370.0", - "@aws-sdk/middleware-signing": "3.370.0", - "@aws-sdk/middleware-ssec": "3.370.0", - "@aws-sdk/middleware-user-agent": "3.370.0", - "@aws-sdk/signature-v4-multi-region": "3.370.0", - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-endpoints": "3.370.0", - "@aws-sdk/util-user-agent-browser": "3.370.0", - "@aws-sdk/util-user-agent-node": "3.370.0", - "@aws-sdk/xml-builder": "3.310.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/eventstream-serde-browser": "^1.0.1", - "@smithy/eventstream-serde-config-resolver": "^1.0.1", - "@smithy/eventstream-serde-node": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.2", - "@smithy/middleware-retry": "^1.0.3", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.2", - "@smithy/protocol-http": "^1.1.0", - "@smithy/smithy-client": "^1.0.3", - "@smithy/types": "^1.1.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.3", - "@smithy/util-stream": "^1.0.1", - "@smithy/util-utf8": "^1.0.1", - "@smithy/util-waiter": "^1.0.1", - "fast-xml-parser": "4.2.5", + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.370.0.tgz", - "integrity": "sha512-0Ty1iHuzNxMQtN7nahgkZr4Wcu1XvqGfrQniiGdKKif9jG/4elxsQPiydRuQpFqN6b+bg7wPP7crFP1uTxx2KQ==", + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/fetch-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/middleware-host-header": "3.370.0", - "@aws-sdk/middleware-logger": "3.370.0", - "@aws-sdk/middleware-recursion-detection": "3.370.0", - "@aws-sdk/middleware-user-agent": "3.370.0", - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-endpoints": "3.370.0", - "@aws-sdk/util-user-agent-browser": "3.370.0", - "@aws-sdk/util-user-agent-node": "3.370.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.2", - "@smithy/middleware-retry": "^1.0.3", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.2", - "@smithy/protocol-http": "^1.1.0", - "@smithy/smithy-client": "^1.0.3", - "@smithy/types": "^1.1.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.3", - "@smithy/util-utf8": "^1.0.1", + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.370.0.tgz", - "integrity": "sha512-jAYOO74lmVXylQylqkPrjLzxvUnMKw476JCUTvCO6Q8nv3LzCWd76Ihgv/m9Q4M2Tbqi1iP2roVK5bstsXzEjA==", + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/hash-node": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/middleware-host-header": "3.370.0", - "@aws-sdk/middleware-logger": "3.370.0", - "@aws-sdk/middleware-recursion-detection": "3.370.0", - "@aws-sdk/middleware-user-agent": "3.370.0", - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-endpoints": "3.370.0", - "@aws-sdk/util-user-agent-browser": "3.370.0", - "@aws-sdk/util-user-agent-node": "3.370.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.2", - "@smithy/middleware-retry": "^1.0.3", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.2", - "@smithy/protocol-http": "^1.1.0", - "@smithy/smithy-client": "^1.0.3", - "@smithy/types": "^1.1.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.3", - "@smithy/util-utf8": "^1.0.1", + "@smithy/types": "^2.3.3", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sts": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.370.0.tgz", - "integrity": "sha512-utFxOPWIzbN+3kc415Je2o4J72hOLNhgR2Gt5EnRSggC3yOnkC4GzauxG8n7n5gZGBX45eyubHyPOXLOIyoqQA==", + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/invalid-dependency": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/is-array-buffer": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/credential-provider-node": "3.370.0", - "@aws-sdk/middleware-host-header": "3.370.0", - "@aws-sdk/middleware-logger": "3.370.0", - "@aws-sdk/middleware-recursion-detection": "3.370.0", - "@aws-sdk/middleware-sdk-sts": "3.370.0", - "@aws-sdk/middleware-signing": "3.370.0", - "@aws-sdk/middleware-user-agent": "3.370.0", - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-endpoints": "3.370.0", - "@aws-sdk/util-user-agent-browser": "3.370.0", - "@aws-sdk/util-user-agent-node": "3.370.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.2", - "@smithy/middleware-retry": "^1.0.3", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.2", - "@smithy/protocol-http": "^1.1.0", - "@smithy/smithy-client": "^1.0.3", - "@smithy/types": "^1.1.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.3", - "@smithy/util-utf8": "^1.0.1", - "fast-xml-parser": "4.2.5", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-env": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.370.0.tgz", - "integrity": "sha512-raR3yP/4GGbKFRPP5hUBNkEmTnzxI9mEc2vJAJrcv4G4J4i/UP6ELiLInQ5eO2/VcV/CeKGZA3t7d1tsJ+jhCg==", + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/middleware-content-length": { + "version": "2.0.11", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/types": "^1.1.0", + "@smithy/protocol-http": "^3.0.5", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.370.0.tgz", - "integrity": "sha512-eJyapFKa4NrC9RfTgxlXnXfS9InG/QMEUPPVL+VhG7YS6nKqetC1digOYgivnEeu+XSKE0DJ7uZuXujN2Y7VAQ==", + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/middleware-endpoint": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "3.370.0", - "@aws-sdk/credential-provider-process": "3.370.0", - "@aws-sdk/credential-provider-sso": "3.370.0", - "@aws-sdk/credential-provider-web-identity": "3.370.0", - "@aws-sdk/types": "3.370.0", - "@smithy/credential-provider-imds": "^1.0.1", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", - "@smithy/types": "^1.1.0", + "@smithy/middleware-serde": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "@smithy/util-middleware": "^2.0.2", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-node": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.370.0.tgz", - "integrity": "sha512-gkFiotBFKE4Fcn8CzQnMeab9TAR06FEAD02T4ZRYW1xGrBJOowmje9dKqdwQFHSPgnWAP+8HoTA8iwbhTLvjNA==", - "dependencies": { - "@aws-sdk/credential-provider-env": "3.370.0", - "@aws-sdk/credential-provider-ini": "3.370.0", - "@aws-sdk/credential-provider-process": "3.370.0", - "@aws-sdk/credential-provider-sso": "3.370.0", - "@aws-sdk/credential-provider-web-identity": "3.370.0", - "@aws-sdk/types": "3.370.0", - "@smithy/credential-provider-imds": "^1.0.1", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", - "@smithy/types": "^1.1.0", - "tslib": "^2.5.0" + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/middleware-retry": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/protocol-http": "^3.0.5", + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-middleware": "^2.0.2", + "@smithy/util-retry": "^2.0.2", + "tslib": "^2.5.0", + "uuid": "^8.3.2" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-process": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.370.0.tgz", - "integrity": "sha512-0BKFFZmUO779Xdw3u7wWnoWhYA4zygxJbgGVSyjkOGBvdkbPSTTcdwT1KFkaQy2kOXYeZPl+usVVRXs+ph4ejg==", + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/middleware-serde": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/middleware-stack": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/node-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^2.0.9", + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/querystring-builder": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "@smithy/util-uri-escape": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/service-error-classification": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/smithy-client": { + "version": "2.1.6", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-stack": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-stream": "^2.0.12", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-base64": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-body-length-browser": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-body-length-node": { + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-buffer-from": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-config-provider": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-defaults-mode-browser": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-defaults-mode-node": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/config-resolver": "^2.0.10", + "@smithy/credential-provider-imds": "^2.0.12", + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-hex-encoding": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-middleware": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-retry": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-stream": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/fetch-http-handler": "^2.1.5", + "@smithy/node-http-handler": "^2.1.5", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-hex-encoding": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-uri-escape": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-utf8": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/uuid": { + "version": "8.3.2", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@aws-sdk/client-personalize": { + "version": "3.414.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.414.0", + "@aws-sdk/credential-provider-node": "3.414.0", + "@aws-sdk/middleware-host-header": "3.413.0", + "@aws-sdk/middleware-logger": "3.413.0", + "@aws-sdk/middleware-recursion-detection": "3.413.0", + "@aws-sdk/middleware-signing": "3.413.0", + "@aws-sdk/middleware-user-agent": "3.413.0", + "@aws-sdk/region-config-resolver": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@aws-sdk/util-endpoints": "3.413.0", + "@aws-sdk/util-user-agent-browser": "3.413.0", + "@aws-sdk/util-user-agent-node": "3.413.0", + "@smithy/config-resolver": "^2.0.8", + "@smithy/fetch-http-handler": "^2.1.3", + "@smithy/hash-node": "^2.0.7", + "@smithy/invalid-dependency": "^2.0.7", + "@smithy/middleware-content-length": "^2.0.9", + "@smithy/middleware-endpoint": "^2.0.7", + "@smithy/middleware-retry": "^2.0.10", + "@smithy/middleware-serde": "^2.0.7", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.10", + "@smithy/node-http-handler": "^2.1.3", + "@smithy/protocol-http": "^3.0.3", + "@smithy/smithy-client": "^2.1.4", + "@smithy/types": "^2.3.1", + "@smithy/url-parser": "^2.0.7", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.8", + "@smithy/util-defaults-mode-node": "^2.0.10", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/abort-controller": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/config-resolver": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/types": "^2.3.3", + "@smithy/util-config-provider": "^2.0.0", + "@smithy/util-middleware": "^2.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/credential-provider-imds": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/fetch-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/hash-node": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/invalid-dependency": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/is-array-buffer": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/middleware-content-length": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^3.0.5", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/middleware-endpoint": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-serde": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "@smithy/util-middleware": "^2.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/middleware-retry": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/protocol-http": "^3.0.5", + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-middleware": "^2.0.2", + "@smithy/util-retry": "^2.0.2", + "tslib": "^2.5.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/middleware-serde": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/middleware-stack": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/node-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^2.0.9", + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/querystring-builder": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "@smithy/util-uri-escape": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/service-error-classification": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/smithy-client": { + "version": "2.1.6", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-stack": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-stream": "^2.0.12", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-base64": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-body-length-browser": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-body-length-node": { + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-buffer-from": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-config-provider": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-defaults-mode-browser": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-defaults-mode-node": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/config-resolver": "^2.0.10", + "@smithy/credential-provider-imds": "^2.0.12", + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-hex-encoding": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-middleware": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-retry": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-stream": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/fetch-http-handler": "^2.1.5", + "@smithy/node-http-handler": "^2.1.5", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-hex-encoding": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-uri-escape": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/@smithy/util-utf8": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-personalize/node_modules/uuid": { + "version": "8.3.2", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@aws-sdk/client-s3": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha1-browser": "3.0.0", + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.370.0", + "@aws-sdk/credential-provider-node": "3.370.0", + "@aws-sdk/hash-blob-browser": "3.370.0", + "@aws-sdk/hash-stream-node": "3.370.0", + "@aws-sdk/md5-js": "3.370.0", + "@aws-sdk/middleware-bucket-endpoint": "3.370.0", + "@aws-sdk/middleware-expect-continue": "3.370.0", + "@aws-sdk/middleware-flexible-checksums": "3.370.0", + "@aws-sdk/middleware-host-header": "3.370.0", + "@aws-sdk/middleware-location-constraint": "3.370.0", + "@aws-sdk/middleware-logger": "3.370.0", + "@aws-sdk/middleware-recursion-detection": "3.370.0", + "@aws-sdk/middleware-sdk-s3": "3.370.0", + "@aws-sdk/middleware-signing": "3.370.0", + "@aws-sdk/middleware-ssec": "3.370.0", + "@aws-sdk/middleware-user-agent": "3.370.0", + "@aws-sdk/signature-v4-multi-region": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-endpoints": "3.370.0", + "@aws-sdk/util-user-agent-browser": "3.370.0", + "@aws-sdk/util-user-agent-node": "3.370.0", + "@aws-sdk/xml-builder": "3.310.0", + "@smithy/config-resolver": "^1.0.1", + "@smithy/eventstream-serde-browser": "^1.0.1", + "@smithy/eventstream-serde-config-resolver": "^1.0.1", + "@smithy/eventstream-serde-node": "^1.0.1", + "@smithy/fetch-http-handler": "^1.0.1", + "@smithy/hash-node": "^1.0.1", + "@smithy/invalid-dependency": "^1.0.1", + "@smithy/middleware-content-length": "^1.0.1", + "@smithy/middleware-endpoint": "^1.0.2", + "@smithy/middleware-retry": "^1.0.3", + "@smithy/middleware-serde": "^1.0.1", + "@smithy/middleware-stack": "^1.0.1", + "@smithy/node-config-provider": "^1.0.1", + "@smithy/node-http-handler": "^1.0.2", + "@smithy/protocol-http": "^1.1.0", + "@smithy/smithy-client": "^1.0.3", + "@smithy/types": "^1.1.0", + "@smithy/url-parser": "^1.0.1", + "@smithy/util-base64": "^1.0.1", + "@smithy/util-body-length-browser": "^1.0.1", + "@smithy/util-body-length-node": "^1.0.1", + "@smithy/util-defaults-mode-browser": "^1.0.1", + "@smithy/util-defaults-mode-node": "^1.0.1", + "@smithy/util-retry": "^1.0.3", + "@smithy/util-stream": "^1.0.1", + "@smithy/util-utf8": "^1.0.1", + "@smithy/util-waiter": "^1.0.1", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.370.0", + "@aws-sdk/middleware-logger": "3.370.0", + "@aws-sdk/middleware-recursion-detection": "3.370.0", + "@aws-sdk/middleware-user-agent": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-endpoints": "3.370.0", + "@aws-sdk/util-user-agent-browser": "3.370.0", + "@aws-sdk/util-user-agent-node": "3.370.0", + "@smithy/config-resolver": "^1.0.1", + "@smithy/fetch-http-handler": "^1.0.1", + "@smithy/hash-node": "^1.0.1", + "@smithy/invalid-dependency": "^1.0.1", + "@smithy/middleware-content-length": "^1.0.1", + "@smithy/middleware-endpoint": "^1.0.2", + "@smithy/middleware-retry": "^1.0.3", + "@smithy/middleware-serde": "^1.0.1", + "@smithy/middleware-stack": "^1.0.1", + "@smithy/node-config-provider": "^1.0.1", + "@smithy/node-http-handler": "^1.0.2", + "@smithy/protocol-http": "^1.1.0", + "@smithy/smithy-client": "^1.0.3", + "@smithy/types": "^1.1.0", + "@smithy/url-parser": "^1.0.1", + "@smithy/util-base64": "^1.0.1", + "@smithy/util-body-length-browser": "^1.0.1", + "@smithy/util-body-length-node": "^1.0.1", + "@smithy/util-defaults-mode-browser": "^1.0.1", + "@smithy/util-defaults-mode-node": "^1.0.1", + "@smithy/util-retry": "^1.0.3", + "@smithy/util-utf8": "^1.0.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.370.0", + "@aws-sdk/middleware-logger": "3.370.0", + "@aws-sdk/middleware-recursion-detection": "3.370.0", + "@aws-sdk/middleware-user-agent": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-endpoints": "3.370.0", + "@aws-sdk/util-user-agent-browser": "3.370.0", + "@aws-sdk/util-user-agent-node": "3.370.0", + "@smithy/config-resolver": "^1.0.1", + "@smithy/fetch-http-handler": "^1.0.1", + "@smithy/hash-node": "^1.0.1", + "@smithy/invalid-dependency": "^1.0.1", + "@smithy/middleware-content-length": "^1.0.1", + "@smithy/middleware-endpoint": "^1.0.2", + "@smithy/middleware-retry": "^1.0.3", + "@smithy/middleware-serde": "^1.0.1", + "@smithy/middleware-stack": "^1.0.1", + "@smithy/node-config-provider": "^1.0.1", + "@smithy/node-http-handler": "^1.0.2", + "@smithy/protocol-http": "^1.1.0", + "@smithy/smithy-client": "^1.0.3", + "@smithy/types": "^1.1.0", + "@smithy/url-parser": "^1.0.1", + "@smithy/util-base64": "^1.0.1", + "@smithy/util-body-length-browser": "^1.0.1", + "@smithy/util-body-length-node": "^1.0.1", + "@smithy/util-defaults-mode-browser": "^1.0.1", + "@smithy/util-defaults-mode-node": "^1.0.1", + "@smithy/util-retry": "^1.0.3", + "@smithy/util-utf8": "^1.0.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/client-sts": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/credential-provider-node": "3.370.0", + "@aws-sdk/middleware-host-header": "3.370.0", + "@aws-sdk/middleware-logger": "3.370.0", + "@aws-sdk/middleware-recursion-detection": "3.370.0", + "@aws-sdk/middleware-sdk-sts": "3.370.0", + "@aws-sdk/middleware-signing": "3.370.0", + "@aws-sdk/middleware-user-agent": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-endpoints": "3.370.0", + "@aws-sdk/util-user-agent-browser": "3.370.0", + "@aws-sdk/util-user-agent-node": "3.370.0", + "@smithy/config-resolver": "^1.0.1", + "@smithy/fetch-http-handler": "^1.0.1", + "@smithy/hash-node": "^1.0.1", + "@smithy/invalid-dependency": "^1.0.1", + "@smithy/middleware-content-length": "^1.0.1", + "@smithy/middleware-endpoint": "^1.0.2", + "@smithy/middleware-retry": "^1.0.3", + "@smithy/middleware-serde": "^1.0.1", + "@smithy/middleware-stack": "^1.0.1", + "@smithy/node-config-provider": "^1.0.1", + "@smithy/node-http-handler": "^1.0.2", + "@smithy/protocol-http": "^1.1.0", + "@smithy/smithy-client": "^1.0.3", + "@smithy/types": "^1.1.0", + "@smithy/url-parser": "^1.0.1", + "@smithy/util-base64": "^1.0.1", + "@smithy/util-body-length-browser": "^1.0.1", + "@smithy/util-body-length-node": "^1.0.1", + "@smithy/util-defaults-mode-browser": "^1.0.1", + "@smithy/util-defaults-mode-node": "^1.0.1", + "@smithy/util-retry": "^1.0.3", + "@smithy/util-utf8": "^1.0.1", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.370.0", + "@aws-sdk/credential-provider-process": "3.370.0", + "@aws-sdk/credential-provider-sso": "3.370.0", + "@aws-sdk/credential-provider-web-identity": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@smithy/credential-provider-imds": "^1.0.1", + "@smithy/property-provider": "^1.0.1", + "@smithy/shared-ini-file-loader": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.370.0", + "@aws-sdk/credential-provider-ini": "3.370.0", + "@aws-sdk/credential-provider-process": "3.370.0", + "@aws-sdk/credential-provider-sso": "3.370.0", + "@aws-sdk/credential-provider-web-identity": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@smithy/credential-provider-imds": "^1.0.1", + "@smithy/property-provider": "^1.0.1", + "@smithy/shared-ini-file-loader": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/shared-ini-file-loader": "^1.0.1", + "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { @@ -732,28 +1556,2034 @@ }, "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-sso": { "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.370.0.tgz", - "integrity": "sha512-PFroYm5hcPSfC/jkZnCI34QFL3I7WVKveVk6/F3fud/cnP8hp6YjA9NiTNbqdFSzsyoiN/+e5fZgNKih8vVPTA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-sso": "3.370.0", + "@aws-sdk/token-providers": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/shared-ini-file-loader": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/protocol-http": "^1.1.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-logger": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/protocol-http": "^1.1.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-sdk-sts": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/middleware-signing": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-signing": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/protocol-http": "^1.1.0", + "@smithy/signature-v4": "^1.0.1", + "@smithy/types": "^1.1.0", + "@smithy/util-middleware": "^1.0.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-endpoints": "3.370.0", + "@smithy/protocol-http": "^1.1.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/token-providers": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-sso-oidc": "3.370.0", + "@aws-sdk/types": "3.370.0", + "@smithy/property-provider": "^1.0.1", + "@smithy/shared-ini-file-loader": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-endpoints": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/types": "^1.1.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/node-config-provider": "^1.0.1", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.414.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.413.0", + "@aws-sdk/middleware-logger": "3.413.0", + "@aws-sdk/middleware-recursion-detection": "3.413.0", + "@aws-sdk/middleware-user-agent": "3.413.0", + "@aws-sdk/region-config-resolver": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@aws-sdk/util-endpoints": "3.413.0", + "@aws-sdk/util-user-agent-browser": "3.413.0", + "@aws-sdk/util-user-agent-node": "3.413.0", + "@smithy/config-resolver": "^2.0.8", + "@smithy/fetch-http-handler": "^2.1.3", + "@smithy/hash-node": "^2.0.7", + "@smithy/invalid-dependency": "^2.0.7", + "@smithy/middleware-content-length": "^2.0.9", + "@smithy/middleware-endpoint": "^2.0.7", + "@smithy/middleware-retry": "^2.0.10", + "@smithy/middleware-serde": "^2.0.7", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.10", + "@smithy/node-http-handler": "^2.1.3", + "@smithy/protocol-http": "^3.0.3", + "@smithy/smithy-client": "^2.1.4", + "@smithy/types": "^2.3.1", + "@smithy/url-parser": "^2.0.7", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.8", + "@smithy/util-defaults-mode-node": "^2.0.10", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/abort-controller": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/config-resolver": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/types": "^2.3.3", + "@smithy/util-config-provider": "^2.0.0", + "@smithy/util-middleware": "^2.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/credential-provider-imds": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/fetch-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/hash-node": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/invalid-dependency": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/is-array-buffer": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/middleware-content-length": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^3.0.5", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/middleware-endpoint": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-serde": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "@smithy/util-middleware": "^2.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/middleware-retry": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/protocol-http": "^3.0.5", + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-middleware": "^2.0.2", + "@smithy/util-retry": "^2.0.2", + "tslib": "^2.5.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/middleware-serde": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/middleware-stack": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/node-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^2.0.9", + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/querystring-builder": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "@smithy/util-uri-escape": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/service-error-classification": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/smithy-client": { + "version": "2.1.6", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-stack": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-stream": "^2.0.12", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-base64": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-body-length-browser": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-body-length-node": { + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-buffer-from": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-config-provider": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-defaults-mode-browser": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-defaults-mode-node": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/config-resolver": "^2.0.10", + "@smithy/credential-provider-imds": "^2.0.12", + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-hex-encoding": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-middleware": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-retry": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-stream": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/fetch-http-handler": "^2.1.5", + "@smithy/node-http-handler": "^2.1.5", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-hex-encoding": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-uri-escape": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-utf8": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sso/node_modules/uuid": { + "version": "8.3.2", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@aws-sdk/client-sts": { + "version": "3.414.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/credential-provider-node": "3.414.0", + "@aws-sdk/middleware-host-header": "3.413.0", + "@aws-sdk/middleware-logger": "3.413.0", + "@aws-sdk/middleware-recursion-detection": "3.413.0", + "@aws-sdk/middleware-sdk-sts": "3.413.0", + "@aws-sdk/middleware-signing": "3.413.0", + "@aws-sdk/middleware-user-agent": "3.413.0", + "@aws-sdk/region-config-resolver": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@aws-sdk/util-endpoints": "3.413.0", + "@aws-sdk/util-user-agent-browser": "3.413.0", + "@aws-sdk/util-user-agent-node": "3.413.0", + "@smithy/config-resolver": "^2.0.8", + "@smithy/fetch-http-handler": "^2.1.3", + "@smithy/hash-node": "^2.0.7", + "@smithy/invalid-dependency": "^2.0.7", + "@smithy/middleware-content-length": "^2.0.9", + "@smithy/middleware-endpoint": "^2.0.7", + "@smithy/middleware-retry": "^2.0.10", + "@smithy/middleware-serde": "^2.0.7", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.10", + "@smithy/node-http-handler": "^2.1.3", + "@smithy/protocol-http": "^3.0.3", + "@smithy/smithy-client": "^2.1.4", + "@smithy/types": "^2.3.1", + "@smithy/url-parser": "^2.0.7", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.8", + "@smithy/util-defaults-mode-node": "^2.0.10", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/abort-controller": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/config-resolver": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/types": "^2.3.3", + "@smithy/util-config-provider": "^2.0.0", + "@smithy/util-middleware": "^2.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/credential-provider-imds": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/fetch-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/hash-node": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/invalid-dependency": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/is-array-buffer": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/middleware-content-length": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^3.0.5", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/middleware-endpoint": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-serde": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "@smithy/util-middleware": "^2.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/middleware-retry": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/protocol-http": "^3.0.5", + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-middleware": "^2.0.2", + "@smithy/util-retry": "^2.0.2", + "tslib": "^2.5.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/middleware-serde": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/middleware-stack": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/node-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^2.0.9", + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/querystring-builder": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "@smithy/util-uri-escape": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/service-error-classification": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/smithy-client": { + "version": "2.1.6", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-stack": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-stream": "^2.0.12", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-base64": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-body-length-browser": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-body-length-node": { + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-buffer-from": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-config-provider": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-defaults-mode-browser": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-defaults-mode-node": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/config-resolver": "^2.0.10", + "@smithy/credential-provider-imds": "^2.0.12", + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-hex-encoding": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-middleware": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-retry": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-stream": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/fetch-http-handler": "^2.1.5", + "@smithy/node-http-handler": "^2.1.5", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-hex-encoding": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-uri-escape": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/@smithy/util-utf8": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-sts/node_modules/uuid": { + "version": "8.3.2", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@aws-sdk/credential-provider-cognito-identity": { + "version": "3.414.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.414.0", + "@aws-sdk/types": "3.413.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-cognito-identity/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-cognito-identity/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-cognito-identity/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.413.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.414.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.413.0", + "@aws-sdk/credential-provider-process": "3.413.0", + "@aws-sdk/credential-provider-sso": "3.414.0", + "@aws-sdk/credential-provider-web-identity": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@smithy/credential-provider-imds": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.414.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.413.0", + "@aws-sdk/credential-provider-ini": "3.414.0", + "@aws-sdk/credential-provider-process": "3.413.0", + "@aws-sdk/credential-provider-sso": "3.414.0", + "@aws-sdk/credential-provider-web-identity": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/credential-provider-imds": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.413.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.414.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-sso": "3.414.0", + "@aws-sdk/token-providers": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.413.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers": { + "version": "3.414.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.414.0", + "@aws-sdk/client-sso": "3.414.0", + "@aws-sdk/client-sts": "3.414.0", + "@aws-sdk/credential-provider-cognito-identity": "3.414.0", + "@aws-sdk/credential-provider-env": "3.413.0", + "@aws-sdk/credential-provider-ini": "3.414.0", + "@aws-sdk/credential-provider-node": "3.414.0", + "@aws-sdk/credential-provider-process": "3.413.0", + "@aws-sdk/credential-provider-sso": "3.414.0", + "@aws-sdk/credential-provider-web-identity": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/credential-provider-imds": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/hash-blob-browser": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/chunked-blob-reader": "3.310.0", + "@aws-sdk/chunked-blob-reader-native": "3.310.0", + "@aws-sdk/types": "3.370.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/hash-stream-node": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-utf8": "3.310.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/is-array-buffer": { + "version": "3.310.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage": { + "version": "3.417.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^2.0.1", + "@smithy/middleware-endpoint": "^2.0.7", + "@smithy/smithy-client": "^2.1.4", + "buffer": "5.6.0", + "events": "3.3.0", + "stream-browserify": "3.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-s3": "^3.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/abort-controller": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/fetch-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/is-array-buffer": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/middleware-endpoint": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-serde": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "@smithy/util-middleware": "^2.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/middleware-serde": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/middleware-stack": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/node-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^2.0.9", + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/querystring-builder": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "@smithy/util-uri-escape": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/smithy-client": { + "version": "2.1.6", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-stack": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-stream": "^2.0.12", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/util-base64": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/util-buffer-from": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/util-hex-encoding": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/util-middleware": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/util-stream": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/fetch-http-handler": "^2.1.5", + "@smithy/node-http-handler": "^2.1.5", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-hex-encoding": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/util-uri-escape": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/lib-storage/node_modules/@smithy/util-utf8": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/md5-js": { + "version": "3.370.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.370.0", - "@aws-sdk/token-providers": "3.370.0", "@aws-sdk/types": "3.370.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", + "@aws-sdk/util-utf8": "3.310.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/middleware-bucket-endpoint": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-arn-parser": "3.310.0", + "@smithy/protocol-http": "^1.1.0", "@smithy/types": "^1.1.0", + "@smithy/util-config-provider": "^1.0.1", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/credential-provider-web-identity": { + "node_modules/@aws-sdk/middleware-expect-continue": { "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.370.0.tgz", - "integrity": "sha512-CFaBMLRudwhjv1sDzybNV93IaT85IwS+L8Wq6VRMa0mro1q9rrWsIZO811eF+k0NEPfgU1dLH+8Vc2qhw4SARQ==", + "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.370.0", - "@smithy/property-provider": "^1.0.1", + "@smithy/protocol-http": "^1.1.0", "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, @@ -761,26 +3591,165 @@ "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-host-header": { + "node_modules/@aws-sdk/middleware-flexible-checksums": { "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.370.0.tgz", - "integrity": "sha512-CPXOm/TnOFC7KyXcJglICC7OiA7Kj6mT3ChvEijr56TFOueNHvJdV4aNIFEQy0vGHOWtY12qOWLNto/wYR1BAQ==", + "license": "Apache-2.0", "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@aws-crypto/crc32c": "3.0.0", "@aws-sdk/types": "3.370.0", + "@smithy/is-array-buffer": "^1.0.1", "@smithy/protocol-http": "^1.1.0", "@smithy/types": "^1.1.0", + "@smithy/util-utf8": "^1.0.1", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-logger": { + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.413.0", + "@smithy/protocol-http": "^3.0.3", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-location-constraint": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/types": "^1.1.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.413.0", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.413.0", + "@smithy/protocol-http": "^3.0.3", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3": { "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.370.0.tgz", - "integrity": "sha512-cQMq9SaZ/ORmTJPCT6VzMML7OxFdQzNkhMAgKpTDl+tdPWynlHF29E5xGoSzROnThHlQPCjogU0NZ8AxI0SWPA==", + "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.370.0", + "@aws-sdk/util-arn-parser": "3.310.0", + "@smithy/protocol-http": "^1.1.0", "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, @@ -788,217 +3757,240 @@ "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.370.0.tgz", - "integrity": "sha512-L7ZF/w0lAAY/GK1khT8VdoU0XB7nWHk51rl/ecAg64J70dHnMOAg8n+5FZ9fBu/xH1FwUlHOkwlodJOgzLJjtg==", + "node_modules/@aws-sdk/middleware-sdk-sts": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/middleware-signing": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-sts/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-sts/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.413.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^3.0.3", + "@smithy/signature-v4": "^2.0.0", + "@smithy/types": "^2.3.1", + "@smithy/util-middleware": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/eventstream-codec": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@smithy/types": "^2.3.3", + "@smithy/util-hex-encoding": "^2.0.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/is-array-buffer": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/signature-v4": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/eventstream-codec": "^2.0.9", + "@smithy/is-array-buffer": "^2.0.0", + "@smithy/types": "^2.3.3", + "@smithy/util-hex-encoding": "^2.0.0", + "@smithy/util-middleware": "^2.0.2", + "@smithy/util-uri-escape": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.370.0.tgz", - "integrity": "sha512-ykbsoVy0AJtVbuhAlTAMcaz/tCE3pT8nAp0L7CQQxSoanRCvOux7au0KwMIQVhxgnYid4dWVF6d00SkqU5MXRA==", + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/util-buffer-from": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-signing": "3.370.0", - "@aws-sdk/types": "3.370.0", - "@smithy/types": "^1.1.0", + "@smithy/is-array-buffer": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-signing": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.370.0.tgz", - "integrity": "sha512-Dwr/RTCWOXdm394wCwICGT2VNOTMRe4IGPsBRJAsM24pm+EEqQzSS3Xu/U/zF4exuxqpMta4wec4QpSarPNTxA==", + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/util-hex-encoding": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/protocol-http": "^1.1.0", - "@smithy/signature-v4": "^1.0.1", - "@smithy/types": "^1.1.0", - "@smithy/util-middleware": "^1.0.1", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.370.0.tgz", - "integrity": "sha512-2+3SB6MtMAq1+gVXhw0Y3ONXuljorh6ijnxgTpv+uQnBW5jHCUiAS8WDYiDEm7i9euJPbvJfM8WUrSMDMU6Cog==", + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/util-middleware": { + "version": "2.0.2", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-endpoints": "3.370.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/token-providers": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.370.0.tgz", - "integrity": "sha512-EyR2ZYr+lJeRiZU2/eLR+mlYU9RXLQvNyGFSAekJKgN13Rpq/h0syzXVFLP/RSod/oZenh/fhVZ2HwlZxuGBtQ==", + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/util-uri-escape": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso-oidc": "3.370.0", - "@aws-sdk/types": "3.370.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", - "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-endpoints": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.370.0.tgz", - "integrity": "sha512-5ltVAnM79nRlywwzZN5i8Jp4tk245OCGkKwwXbnDU+gq7zT3CIOsct1wNZvmpfZEPGt/bv7/NyRcjP+7XNsX/g==", + "node_modules/@aws-sdk/middleware-signing/node_modules/@smithy/util-utf8": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", + "@smithy/util-buffer-from": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-user-agent-browser": { + "node_modules/@aws-sdk/middleware-ssec": { "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.370.0.tgz", - "integrity": "sha512-028LxYZMQ0DANKhW+AKFQslkScZUeYlPmSphrCIXgdIItRZh6ZJHGzE7J/jDsEntZOrZJsjI4z0zZ5W2idj04w==", + "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.370.0", "@smithy/types": "^1.1.0", - "bowser": "^2.11.0", "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.370.0.tgz", - "integrity": "sha512-33vxZUp8vxTT/DGYIR3PivQm07sSRGWI+4fCv63Rt7Q++fO24E0kQtmVAlikRY810I10poD6rwILVtITtFSzkg==", + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.413.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/types": "^1.1.0", + "@aws-sdk/types": "3.413.0", + "@aws-sdk/util-endpoints": "3.413.0", + "@smithy/protocol-http": "^3.0.3", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" - }, - "peerDependencies": { - "aws-crt": ">=1.0.0" - }, - "peerDependenciesMeta": { - "aws-crt": { - "optional": true - } } }, - "node_modules/@aws-sdk/client-sso": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.363.0.tgz", - "integrity": "sha512-PZ+HfKSgS4hlMnJzG+Ev8/mgHd/b/ETlJWPSWjC/f2NwVoBQkBnqHjdyEx7QjF6nksJozcVh5Q+kkYLKc/QwBQ==", + "node_modules/@aws-sdk/middleware-user-agent/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/middleware-host-header": "3.363.0", - "@aws-sdk/middleware-logger": "3.363.0", - "@aws-sdk/middleware-recursion-detection": "3.363.0", - "@aws-sdk/middleware-user-agent": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-endpoints": "3.357.0", - "@aws-sdk/util-user-agent-browser": "3.363.0", - "@aws-sdk/util-user-agent-node": "3.363.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.1", - "@smithy/middleware-retry": "^1.0.2", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.2", - "@smithy/protocol-http": "^1.0.1", - "@smithy/smithy-client": "^1.0.3", - "@smithy/types": "^1.0.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.2", - "@smithy/util-utf8": "^1.0.1", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.363.0.tgz", - "integrity": "sha512-V3Ebiq/zNtDS/O92HUWGBa7MY59RYSsqWd+E0XrXv6VYTA00RlMTbNcseivNgp2UghOgB9a20Nkz6EqAeIN+RQ==", + "node_modules/@aws-sdk/middleware-user-agent/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/middleware-host-header": "3.363.0", - "@aws-sdk/middleware-logger": "3.363.0", - "@aws-sdk/middleware-recursion-detection": "3.363.0", - "@aws-sdk/middleware-user-agent": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-endpoints": "3.357.0", - "@aws-sdk/util-user-agent-browser": "3.363.0", - "@aws-sdk/util-user-agent-node": "3.363.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.1", - "@smithy/middleware-retry": "^1.0.2", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.2", - "@smithy/protocol-http": "^1.0.1", - "@smithy/smithy-client": "^1.0.3", - "@smithy/types": "^1.0.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.2", - "@smithy/util-utf8": "^1.0.1", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-sso-oidc/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/middleware-user-agent/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1006,94 +3998,58 @@ "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/region-config-resolver": { + "version": "3.413.0", + "license": "Apache-2.0", "dependencies": { + "@smithy/node-config-provider": "^2.0.10", + "@smithy/types": "^2.3.1", + "@smithy/util-config-provider": "^2.0.0", + "@smithy/util-middleware": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-sts": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.363.0.tgz", - "integrity": "sha512-0jj14WvBPJQ8xr72cL0mhlmQ90tF0O0wqXwSbtog6PsC8+KDE6Yf+WsxsumyI8E5O8u3eYijBL+KdqG07F/y/w==", + "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/sha256-browser": "3.0.0", - "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/credential-provider-node": "3.363.0", - "@aws-sdk/middleware-host-header": "3.363.0", - "@aws-sdk/middleware-logger": "3.363.0", - "@aws-sdk/middleware-recursion-detection": "3.363.0", - "@aws-sdk/middleware-sdk-sts": "3.363.0", - "@aws-sdk/middleware-signing": "3.363.0", - "@aws-sdk/middleware-user-agent": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-endpoints": "3.357.0", - "@aws-sdk/util-user-agent-browser": "3.363.0", - "@aws-sdk/util-user-agent-node": "3.363.0", - "@smithy/config-resolver": "^1.0.1", - "@smithy/fetch-http-handler": "^1.0.1", - "@smithy/hash-node": "^1.0.1", - "@smithy/invalid-dependency": "^1.0.1", - "@smithy/middleware-content-length": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.1", - "@smithy/middleware-retry": "^1.0.1", - "@smithy/middleware-serde": "^1.0.1", - "@smithy/middleware-stack": "^1.0.1", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/node-http-handler": "^1.0.1", - "@smithy/protocol-http": "^1.1.0", - "@smithy/smithy-client": "^1.0.2", - "@smithy/types": "^1.1.0", - "@smithy/url-parser": "^1.0.1", - "@smithy/util-base64": "^1.0.1", - "@smithy/util-body-length-browser": "^1.0.1", - "@smithy/util-body-length-node": "^1.0.1", - "@smithy/util-defaults-mode-browser": "^1.0.1", - "@smithy/util-defaults-mode-node": "^1.0.1", - "@smithy/util-retry": "^1.0.1", - "@smithy/util-utf8": "^1.0.1", - "fast-xml-parser": "4.2.5", + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/client-sts/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", "dependencies": { + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-cognito-identity": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.363.0.tgz", - "integrity": "sha512-5x42JvqEsBUrm6/qdf0WWe4mlmJjPItxamQhRjuOzeQD/BxsA2W5VS/7n0Ws0e27DNhlnUErcIJd+bBy6j1fqA==", + "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-cognito-identity": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-cognito-identity/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1101,166 +4057,178 @@ "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.363.0.tgz", - "integrity": "sha512-VAQ3zITT2Q0acht0HezouYnMFKZ2vIOa20X4zQA3WI0HfaP4D6ga6KaenbDcb/4VFiqfqiRHfdyXHP0ThcDRMA==", + "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/util-config-provider": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-env/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/region-config-resolver/node_modules/@smithy/util-middleware": { + "version": "2.0.2", + "license": "Apache-2.0", "dependencies": { + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.363.0.tgz", - "integrity": "sha512-ZYN+INoqyX5FVC3rqUxB6O8nOWkr0gHRRBm1suoOlmuFJ/WSlW/uUGthRBY5x1AQQnBF8cpdlxZzGHd41lFVNw==", - "dependencies": { - "@aws-sdk/credential-provider-env": "3.363.0", - "@aws-sdk/credential-provider-process": "3.363.0", - "@aws-sdk/credential-provider-sso": "3.363.0", - "@aws-sdk/credential-provider-web-identity": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@smithy/credential-provider-imds": "^1.0.1", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.370.0", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.370.0", + "@smithy/protocol-http": "^1.1.0", + "@smithy/signature-v4": "^1.0.1", "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" + }, + "peerDependencies": { + "@aws-sdk/signature-v4-crt": "^3.118.0" + }, + "peerDependenciesMeta": { + "@aws-sdk/signature-v4-crt": { + "optional": true + } } }, - "node_modules/@aws-sdk/credential-provider-ini/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers": { + "version": "3.413.0", + "license": "Apache-2.0", "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.413.0", + "@aws-sdk/middleware-logger": "3.413.0", + "@aws-sdk/middleware-recursion-detection": "3.413.0", + "@aws-sdk/middleware-user-agent": "3.413.0", + "@aws-sdk/types": "3.413.0", + "@aws-sdk/util-endpoints": "3.413.0", + "@aws-sdk/util-user-agent-browser": "3.413.0", + "@aws-sdk/util-user-agent-node": "3.413.0", + "@smithy/config-resolver": "^2.0.8", + "@smithy/fetch-http-handler": "^2.1.3", + "@smithy/hash-node": "^2.0.7", + "@smithy/invalid-dependency": "^2.0.7", + "@smithy/middleware-content-length": "^2.0.9", + "@smithy/middleware-endpoint": "^2.0.7", + "@smithy/middleware-retry": "^2.0.10", + "@smithy/middleware-serde": "^2.0.7", + "@smithy/middleware-stack": "^2.0.0", + "@smithy/node-config-provider": "^2.0.10", + "@smithy/node-http-handler": "^2.1.3", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^3.0.3", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/smithy-client": "^2.1.4", + "@smithy/types": "^2.3.1", + "@smithy/url-parser": "^2.0.7", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.8", + "@smithy/util-defaults-mode-node": "^2.0.10", + "@smithy/util-retry": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.363.0.tgz", - "integrity": "sha512-C1qXFIN2yMxD6pGgug0vR1UhScOki6VqdzuBHzXZAGu7MOjvgHNdscEcb3CpWnITHaPL2ztkiw75T1sZ7oIgQg==", - "dependencies": { - "@aws-sdk/credential-provider-env": "3.363.0", - "@aws-sdk/credential-provider-ini": "3.363.0", - "@aws-sdk/credential-provider-process": "3.363.0", - "@aws-sdk/credential-provider-sso": "3.363.0", - "@aws-sdk/credential-provider-web-identity": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@smithy/credential-provider-imds": "^1.0.1", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", - "@smithy/types": "^1.1.0", + "node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/types": { + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/abort-controller": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.363.0.tgz", - "integrity": "sha512-fOKAINU7Rtj2T8pP13GdCt+u0Ml3gYynp8ki+1jMZIQ+Ju/MdDOqZpKMFKicMn3Z1ttUOgqr+grUdus6z8ceBQ==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/config-resolver": { + "version": "2.0.10", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", - "@smithy/types": "^1.1.0", + "@smithy/node-config-provider": "^2.0.12", + "@smithy/types": "^2.3.3", + "@smithy/util-config-provider": "^2.0.0", + "@smithy/util-middleware": "^2.0.2", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-process/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/credential-provider-imds": { + "version": "2.0.12", + "license": "Apache-2.0", "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.363.0.tgz", - "integrity": "sha512-5RUZ5oM0lwZSo3EehT0dXggOjgtxFogpT3cZvoLGtIwrPBvm8jOQPXQUlaqCj10ThF1sYltEyukz/ovtDwYGew==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/fetch-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.363.0", - "@aws-sdk/token-providers": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", - "@smithy/types": "^1.1.0", + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/hash-node": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { + "@smithy/types": "^2.3.3", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.363.0.tgz", - "integrity": "sha512-Z6w7fjgy79pAax580wdixbStQw10xfyZ+hOYLcPudoYFKjoNx0NQBejg5SwBzCF/HQL23Ksm9kDfbXDX9fkPhA==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/invalid-dependency": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" - }, - "engines": { - "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-provider-web-identity/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/is-array-buffer": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1268,275 +4236,238 @@ "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-providers": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.363.0.tgz", - "integrity": "sha512-hVa1DdYasnLud2EKjDAlDHiV/+H/Zq52chHU00c/R8XwPu1s0kZX3NMmlt0D2HhYqC1mUwtdmE58Jra2POviQQ==", - "dependencies": { - "@aws-sdk/client-cognito-identity": "3.363.0", - "@aws-sdk/client-sso": "3.363.0", - "@aws-sdk/client-sts": "3.363.0", - "@aws-sdk/credential-provider-cognito-identity": "3.363.0", - "@aws-sdk/credential-provider-env": "3.363.0", - "@aws-sdk/credential-provider-ini": "3.363.0", - "@aws-sdk/credential-provider-node": "3.363.0", - "@aws-sdk/credential-provider-process": "3.363.0", - "@aws-sdk/credential-provider-sso": "3.363.0", - "@aws-sdk/credential-provider-web-identity": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@smithy/credential-provider-imds": "^1.0.1", - "@smithy/property-provider": "^1.0.1", - "@smithy/types": "^1.1.0", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/middleware-content-length": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^3.0.5", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/middleware-endpoint": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { + "@smithy/middleware-serde": "^2.0.9", + "@smithy/types": "^2.3.3", + "@smithy/url-parser": "^2.0.9", + "@smithy/util-middleware": "^2.0.2", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/hash-blob-browser": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.370.0.tgz", - "integrity": "sha512-DyStaznfloyF9jN3KvG6puOAjt25alXoBNeHBF2FyLlEEbrOqUmso39JB5LVAw2/KB4UmCNsbAXFb6WktX/yHQ==", - "dependencies": { - "@aws-sdk/chunked-blob-reader": "3.310.0", - "@aws-sdk/chunked-blob-reader-native": "3.310.0", - "@aws-sdk/types": "3.370.0", - "tslib": "^2.5.0" - } - }, - "node_modules/@aws-sdk/hash-stream-node": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.370.0.tgz", - "integrity": "sha512-ExsbBiIMiL9AN1VpWlD8+xaO5s0cXUZJC2UONiQbgMb1jz7Wq9fa1GmKUDyaGXOuQTT7DDhAmalb9fIpauZKuA==", - "dependencies": { - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-utf8": "3.310.0", - "tslib": "^2.5.0" + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/middleware-retry": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^2.0.12", + "@smithy/protocol-http": "^3.0.5", + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-middleware": "^2.0.2", + "@smithy/util-retry": "^2.0.2", + "tslib": "^2.5.0", + "uuid": "^8.3.2" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/is-array-buffer": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.310.0.tgz", - "integrity": "sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/middleware-serde": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/lib-storage": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.370.0.tgz", - "integrity": "sha512-vUdvd8jvusl81A0OdCz3y2E7Nhqwa57cxJviK6P262zqL2Ge5WlfR9djjv78sqdclvm7iXTxj7o1djMu1aScNg==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/middleware-stack": { + "version": "2.0.2", + "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^1.0.1", - "@smithy/middleware-endpoint": "^1.0.2", - "@smithy/smithy-client": "^1.0.3", - "buffer": "5.6.0", - "events": "3.3.0", - "stream-browserify": "3.0.0", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" - }, - "peerDependencies": { - "@aws-sdk/client-s3": "^3.0.0" } }, - "node_modules/@aws-sdk/md5-js": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.370.0.tgz", - "integrity": "sha512-wch3+hiRdFGsu5E+w3WU9qmumQErKshtgetd6wMgFYm2MPSksFU58rM/aiwiWRA6knpcaShKaPKMmGnuX3HwhQ==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-utf8": "3.310.0", + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.370.0.tgz", - "integrity": "sha512-B36+fOeJVO0D9cjR92Ob6Ki2FTzyTQ/uKk8w+xtur6W6zYVOPU4IQNpNZvN3Ykt4jitR2uUnVSlBb3sXHHhdFA==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/node-http-handler": { + "version": "2.1.5", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-arn-parser": "3.310.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", - "@smithy/util-config-provider": "^1.0.1", + "@smithy/abort-controller": "^2.0.9", + "@smithy/protocol-http": "^3.0.5", + "@smithy/querystring-builder": "^2.0.9", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.370.0.tgz", - "integrity": "sha512-OlFIpXa53obLryHyrqedE2Cp8lp2k+1Vjd++hlZFDFJncRlWZMxoXSyl6shQPqhIiGnNW4vt7tG5xE4jg4NAvw==", - "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.370.0.tgz", - "integrity": "sha512-62fyW4hZxppvkQKSXdkzjHQ95dXyVCuL18Sfnlciy9pr9f/t5w6LhZIxsNIW+Ge9mbgc661SVRKTwxlZj6FuLQ==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/protocol-http": { + "version": "3.0.5", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/crc32": "3.0.0", - "@aws-crypto/crc32c": "3.0.0", - "@aws-sdk/types": "3.370.0", - "@smithy/is-array-buffer": "^1.0.1", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", - "@smithy/util-utf8": "^1.0.1", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.363.0.tgz", - "integrity": "sha512-FobpclDCf5Y1ueyJDmb9MqguAdPssNMlnqWQpujhYVABq69KHu73fSCWSauFPUrw7YOpV8kG1uagDF0POSxHzA==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/querystring-builder": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.3", + "@smithy/util-uri-escape": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-host-header/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/querystring-parser": { + "version": "2.0.9", + "license": "Apache-2.0", "dependencies": { + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.370.0.tgz", - "integrity": "sha512-NlDZEbBOF1IN7svUTcjbLodkUctt9zsfDI8+DqNlklRs5lsPb91WYvahOfjFO/EvACixa+a5d3cCumMCaIq4Cw==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/service-error-classification": { + "version": "2.0.2", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/types": "^1.1.0", - "tslib": "^2.5.0" + "@smithy/types": "^2.3.3" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-logger": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.363.0.tgz", - "integrity": "sha512-SSGgthScYnFGTOw8EzbkvquqweFmvn7uJihkpFekbtBNGC/jGOGO+8ziHjTQ8t/iI/YKubEwv+LMi0f77HKSEg==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-logger/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/smithy-client": { + "version": "2.1.6", + "license": "Apache-2.0", "dependencies": { + "@smithy/middleware-stack": "^2.0.2", + "@smithy/types": "^2.3.3", + "@smithy/util-stream": "^2.0.12", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.363.0.tgz", - "integrity": "sha512-MWD/57QgI/N7fG8rtzDTUdSqNpYohQfgj9XCFAoVeI/bU4usrkOrew43L4smJG4XrDxlNT8lSJlDtd64tuiUZA==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-recursion-detection/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/url-parser": { + "version": "2.0.9", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^2.0.9", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-base64": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.370.0.tgz", - "integrity": "sha512-DPYXtveWBDS5MzSHWTThg2KkLaOzZkCgPejjEuw3yl4ljsHawDs/ZIVCtmWXlBIS2lLCaBMpCV+t9psuJ/6/zQ==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-body-length-browser": { + "version": "2.0.0", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-body-length-node": { + "version": "2.1.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@aws-sdk/util-arn-parser": "3.310.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.363.0.tgz", - "integrity": "sha512-1yy2Ac50FO8BrODaw5bPWvVrRhaVLqXTFH6iHB+dJLPUkwtY5zLM3Mp+9Ilm7kME+r7oIB1wuO6ZB1Lf4ZszIw==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-buffer-from": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-signing": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@smithy/types": "^1.1.0", + "@smithy/is-array-buffer": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-sdk-sts/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-config-provider": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1544,127 +4475,117 @@ "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-signing": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.363.0.tgz", - "integrity": "sha512-/7qia715pt9JKYIPDGu22WmdZxD8cfF/5xB+1kmILg7ZtjO0pPuTaCNJ7xiIuFd7Dn7JXp5lop08anX/GOhNRQ==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-defaults-mode-browser": { + "version": "2.0.10", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/protocol-http": "^1.1.0", - "@smithy/signature-v4": "^1.0.1", - "@smithy/types": "^1.1.0", - "@smithy/util-middleware": "^1.0.1", + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", + "bowser": "^2.11.0", "tslib": "^2.5.0" }, "engines": { - "node": ">=14.0.0" + "node": ">= 10.0.0" } }, - "node_modules/@aws-sdk/middleware-signing/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", - "dependencies": { + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-defaults-mode-node": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/config-resolver": "^2.0.10", + "@smithy/credential-provider-imds": "^2.0.12", + "@smithy/node-config-provider": "^2.0.12", + "@smithy/property-provider": "^2.0.10", + "@smithy/smithy-client": "^2.1.6", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { - "node": ">=14.0.0" + "node": ">= 10.0.0" } }, - "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.370.0.tgz", - "integrity": "sha512-NIosfLS7mxCNdGYnuy76W9qP3f3YWVTusUA+uv+s6rnwG+Z2UheXCf1wpnJKzxORA8pioSP7ylZ8w2A0reCgYQ==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-hex-encoding": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.363.0.tgz", - "integrity": "sha512-ri8YaQvXP6odteVTMfxPqFR26Q0h9ejtqhUDv47P34FaKXedEM4nC6ix6o+5FEYj6l8syGyktftZ5O70NoEhug==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-middleware": { + "version": "2.0.2", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@aws-sdk/util-endpoints": "3.357.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/types": "^1.1.0", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/middleware-user-agent/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-retry": { + "version": "2.0.2", + "license": "Apache-2.0", "dependencies": { + "@smithy/service-error-classification": "^2.0.2", + "@smithy/types": "^2.3.3", "tslib": "^2.5.0" }, "engines": { - "node": ">=14.0.0" + "node": ">= 14.0.0" } }, - "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.370.0.tgz", - "integrity": "sha512-Q3NQopPDnHbJXMhtYl0Mfy5U2o76K6tzhdnYRcrYImY0ze/zOkCQI7KPC4588PuyvAXCdQ02cmCPPjYD55UeNg==", - "dependencies": { - "@aws-sdk/types": "3.370.0", - "@smithy/protocol-http": "^1.1.0", - "@smithy/signature-v4": "^1.0.1", - "@smithy/types": "^1.1.0", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-stream": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/fetch-http-handler": "^2.1.5", + "@smithy/node-http-handler": "^2.1.5", + "@smithy/types": "^2.3.3", + "@smithy/util-base64": "^2.0.0", + "@smithy/util-buffer-from": "^2.0.0", + "@smithy/util-hex-encoding": "^2.0.0", + "@smithy/util-utf8": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" - }, - "peerDependencies": { - "@aws-sdk/signature-v4-crt": "^3.118.0" - }, - "peerDependenciesMeta": { - "@aws-sdk/signature-v4-crt": { - "optional": true - } } }, - "node_modules/@aws-sdk/token-providers": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.363.0.tgz", - "integrity": "sha512-6+0aJ1zugNgsMmhTtW2LBWxOVSaXCUk2q3xyTchSXkNzallYaRiZMRkieW+pKNntnu0g5H1T0zyfCO0tbXwxEA==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-uri-escape": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso-oidc": "3.363.0", - "@aws-sdk/types": "3.357.0", - "@smithy/property-provider": "^1.0.1", - "@smithy/shared-ini-file-loader": "^1.0.1", - "@smithy/types": "^1.1.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/token-providers/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "node_modules/@aws-sdk/token-providers/node_modules/@smithy/util-utf8": { + "version": "2.0.0", + "license": "Apache-2.0", "dependencies": { + "@smithy/util-buffer-from": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, + "node_modules/@aws-sdk/token-providers/node_modules/uuid": { + "version": "8.3.2", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@aws-sdk/types": { "version": "3.370.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.370.0.tgz", - "integrity": "sha512-8PGMKklSkRKjunFhzM2y5Jm0H2TBu7YRNISdYzXLUHKSP9zlMEYagseKVdmox0zKHf1LXVNuSlUV2b6SRrieCQ==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -1675,8 +4596,7 @@ }, "node_modules/@aws-sdk/util-arn-parser": { "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.310.0.tgz", - "integrity": "sha512-jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1686,8 +4606,7 @@ }, "node_modules/@aws-sdk/util-base64": { "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.310.0.tgz", - "integrity": "sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg==", + "license": "Apache-2.0", "dependencies": { "@aws-sdk/util-buffer-from": "3.310.0", "tslib": "^2.5.0" @@ -1698,8 +4617,7 @@ }, "node_modules/@aws-sdk/util-buffer-from": { "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.310.0.tgz", - "integrity": "sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw==", + "license": "Apache-2.0", "dependencies": { "@aws-sdk/is-array-buffer": "3.310.0", "tslib": "^2.5.0" @@ -1709,11 +4627,10 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.357.0.tgz", - "integrity": "sha512-XHKyS5JClT9su9hDif715jpZiWHQF9gKZXER8tW0gOizU3R9cyWc9EsJ2BRhFNhi7nt/JF/CLUEc5qDx3ETbUw==", + "version": "3.413.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", + "@aws-sdk/types": "3.413.0", "tslib": "^2.5.0" }, "engines": { @@ -1721,9 +4638,19 @@ } }, "node_modules/@aws-sdk/util-endpoints/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-endpoints/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1733,8 +4660,7 @@ }, "node_modules/@aws-sdk/util-locate-window": { "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz", - "integrity": "sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1743,20 +4669,29 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.363.0.tgz", - "integrity": "sha512-fk9ymBUIYbxiGm99Cn+kAAXmvMCWTf/cHAcB79oCXV4ELXdPa9lN5xQhZRFNxLUeXG4OAMEuCAUUuZEj8Fnc1Q==", + "version": "3.413.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/types": "^1.1.0", + "@aws-sdk/types": "3.413.0", + "@smithy/types": "^2.3.1", "bowser": "^2.11.0", "tslib": "^2.5.0" } }, "node_modules/@aws-sdk/util-user-agent-browser/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-browser/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1765,13 +4700,12 @@ } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.363.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.363.0.tgz", - "integrity": "sha512-Fli/dvgGA9hdnQUrYb1//wNSFlK2jAfdJcfNXA6SeBYzSeH5pVGYF4kXF0FCdnMA3Fef+Zn1zAP/hw9v8VJHWQ==", + "version": "3.413.0", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.357.0", - "@smithy/node-config-provider": "^1.0.1", - "@smithy/types": "^1.1.0", + "@aws-sdk/types": "3.413.0", + "@smithy/node-config-provider": "^2.0.10", + "@smithy/types": "^2.3.1", "tslib": "^2.5.0" }, "engines": { @@ -1787,9 +4721,54 @@ } }, "node_modules/@aws-sdk/util-user-agent-node/node_modules/@aws-sdk/types": { - "version": "3.357.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.357.0.tgz", - "integrity": "sha512-/riCRaXg3p71BeWnShrai0y0QTdXcouPSM0Cn1olZbzTf7s71aLEewrc96qFrL70XhY4XvnxMpqQh+r43XIL3g==", + "version": "3.413.0", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-node/node_modules/@smithy/node-config-provider": { + "version": "2.0.12", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^2.0.10", + "@smithy/shared-ini-file-loader": "^2.0.11", + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-node/node_modules/@smithy/property-provider": { + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-node/node_modules/@smithy/shared-ini-file-loader": { + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^2.3.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-node/node_modules/@smithy/types": { + "version": "2.3.3", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1799,8 +4778,7 @@ }, "node_modules/@aws-sdk/util-utf8": { "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.310.0.tgz", - "integrity": "sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA==", + "license": "Apache-2.0", "dependencies": { "@aws-sdk/util-buffer-from": "3.310.0", "tslib": "^2.5.0" @@ -1811,16 +4789,14 @@ }, "node_modules/@aws-sdk/util-utf8-browser": { "version": "3.259.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", - "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.3.1" } }, "node_modules/@aws-sdk/xml-builder": { "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.310.0.tgz", - "integrity": "sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -1830,8 +4806,7 @@ }, "node_modules/@babel/code-frame": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "license": "MIT", "dependencies": { "@babel/highlight": "^7.22.5" }, @@ -1841,18 +4816,16 @@ }, "node_modules/@babel/compat-data": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.6.tgz", - "integrity": "sha512-29tfsWTq2Ftu7MXmimyC0C5FDZv5DYxOZkh3XD3+QW4V/BYuv/LyEsjj3c0hqedEaDt6DBfDvexMKU8YevdqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.6.tgz", - "integrity": "sha512-HPIyDa6n+HKw5dEuway3vVAhBboYCtREBMp+IWeseZy6TFtzn6MHkCH2KKYUOC/vKKwgSMHQW4htBOrmuRPXfw==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.22.5", @@ -1880,9 +4853,8 @@ }, "node_modules/@babel/generator": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", - "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5", "@jridgewell/gen-mapping": "^0.3.2", @@ -1895,9 +4867,8 @@ }, "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1909,9 +4880,8 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.6.tgz", - "integrity": "sha512-534sYEqWD9VfUm3IPn2SLcH4Q3P86XL+QvqdC7ZsFrzyyPF3T4XGiVghF6PTYNdWg6pXuoqXxNQAhbYeEInTzA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", "@babel/helper-validator-option": "^7.22.5", @@ -1928,18 +4898,16 @@ }, "node_modules/@babel/helper-environment-visitor": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.22.5", "@babel/types": "^7.22.5" @@ -1950,9 +4918,8 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -1962,9 +4929,8 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -1974,9 +4940,8 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", - "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-module-imports": "^7.22.5", @@ -1993,18 +4958,16 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -2014,9 +4977,8 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -2026,35 +4988,31 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", - "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.22.5", "@babel/traverse": "^7.22.6", @@ -2066,8 +5024,7 @@ }, "node_modules/@babel/highlight": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.22.5", "chalk": "^2.0.0", @@ -2079,8 +5036,7 @@ }, "node_modules/@babel/highlight/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -2090,8 +5046,7 @@ }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -2103,29 +5058,25 @@ }, "node_modules/@babel/highlight/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "license": "MIT" }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/highlight/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -2135,9 +5086,8 @@ }, "node_modules/@babel/parser": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.6.tgz", - "integrity": "sha512-EIQu22vNkceq3LbjAq7knDf/UmtI2qbcNI8GRBlijez6TpQLvSodJPYfydQmNA5buwkxxxa/PVI44jjYZ+/cLw==", "dev": true, + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -2147,9 +5097,8 @@ }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2159,9 +5108,8 @@ }, "node_modules/@babel/plugin-syntax-bigint": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2171,9 +5119,8 @@ }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -2183,9 +5130,8 @@ }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -2195,9 +5141,8 @@ }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2207,9 +5152,8 @@ }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -2222,9 +5166,8 @@ }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -2234,9 +5177,8 @@ }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2246,9 +5188,8 @@ }, "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -2258,9 +5199,8 @@ }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2270,9 +5210,8 @@ }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2282,9 +5221,8 @@ }, "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2294,9 +5232,8 @@ }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -2309,9 +5246,8 @@ }, "node_modules/@babel/plugin-syntax-typescript": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -2324,9 +5260,8 @@ }, "node_modules/@babel/template": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.22.5", "@babel/parser": "^7.22.5", @@ -2338,9 +5273,8 @@ }, "node_modules/@babel/traverse": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.6.tgz", - "integrity": "sha512-53CijMvKlLIDlOTrdWiHileRddlIiwUIyCKqYa7lYnnPldXCG5dUSN38uT0cA6i7rHWNKJLH0VU/Kxdr1GzB3w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.22.5", "@babel/generator": "^7.22.5", @@ -2359,18 +5293,16 @@ }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/types": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.22.5", "@babel/helper-validator-identifier": "^7.22.5", @@ -2382,22 +5314,19 @@ }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@bugsnag/browser": { "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.20.2.tgz", - "integrity": "sha512-4J4s53ZpYr3hHA+QjxUjOI6U+A8+XuUVH45UshE87Jp2Y4mV8ML2DovejqJS8J8yjdbnh2z1Wtg/v3WUNt4ayQ==", + "license": "MIT", "dependencies": { "@bugsnag/core": "^7.19.0" } }, "node_modules/@bugsnag/core": { "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@bugsnag/core/-/core-7.19.0.tgz", - "integrity": "sha512-2KGwdaLD9PhR7Wk7xPi3jGuGsKTatc/28U4TOZIDU3CgC2QhGjubwiXSECel5gwxhZ3jACKcMKSV2ovHhv1NrA==", + "license": "MIT", "dependencies": { "@bugsnag/cuid": "^3.0.0", "@bugsnag/safe-json-stringify": "^6.0.0", @@ -2408,13 +5337,11 @@ }, "node_modules/@bugsnag/cuid": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@bugsnag/cuid/-/cuid-3.0.2.tgz", - "integrity": "sha512-cIwzC93r3PQ/INeuwtZwkZIG2K8WWN0rRLZQhu+mr48Ay+i6sEki4GYfTsflse7hZ1BeDWrNb/Q9vgY3B31xHQ==" + "license": "MIT" }, "node_modules/@bugsnag/js": { "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@bugsnag/js/-/js-7.20.2.tgz", - "integrity": "sha512-Q08k0h0h6NFwFGkFmib39Uln2WpvJdqT1EGF1JlyYiGW03Y+VopVb9r37pZrRrN9IY08mxaIEO8la5xeaWAs6A==", + "license": "MIT", "dependencies": { "@bugsnag/browser": "^7.20.2", "@bugsnag/node": "^7.19.0" @@ -2422,8 +5349,7 @@ }, "node_modules/@bugsnag/node": { "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@bugsnag/node/-/node-7.19.0.tgz", - "integrity": "sha512-c4snyxx5d/fsMogmgehFBGc//daH6+4XCplia4zrEQYltjaQ+l8ud0dPx623DgJl/2j1+2zlRc7y7IHSd7Gm5w==", + "license": "MIT", "dependencies": { "@bugsnag/core": "^7.19.0", "byline": "^5.0.0", @@ -2435,22 +5361,19 @@ }, "node_modules/@bugsnag/safe-json-stringify": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz", - "integrity": "sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==" + "license": "MIT" }, "node_modules/@colors/colors": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "license": "MIT", "engines": { "node": ">=0.1.90" } }, "node_modules/@commitlint/cli": { "version": "17.6.6", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.6.6.tgz", - "integrity": "sha512-sTKpr2i/Fjs9OmhU+beBxjPavpnLSqZaO6CzwKVq2Tc4UYVTMFgpKOslDhUBVlfAUBfjVO8ParxC/MXkIOevEA==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/format": "^17.4.4", "@commitlint/lint": "^17.6.6", @@ -2472,9 +5395,8 @@ }, "node_modules/@commitlint/config-conventional": { "version": "17.6.5", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.6.5.tgz", - "integrity": "sha512-Xl9H9KLl86NZm5CYNTNF9dcz1xelE/EbvhWIWcYxG/rn3UWYWdWmmnX2q6ZduNdLFSGbOxzUpIx61j5zxbeXxg==", "dev": true, + "license": "MIT", "dependencies": { "conventional-changelog-conventionalcommits": "^5.0.0" }, @@ -2484,9 +5406,8 @@ }, "node_modules/@commitlint/config-conventional/node_modules/conventional-changelog-conventionalcommits": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz", - "integrity": "sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==", "dev": true, + "license": "ISC", "dependencies": { "compare-func": "^2.0.0", "lodash": "^4.17.15", @@ -2498,9 +5419,8 @@ }, "node_modules/@commitlint/config-validator": { "version": "17.4.4", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.4.4.tgz", - "integrity": "sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/types": "^17.4.4", "ajv": "^8.11.0" @@ -2511,9 +5431,8 @@ }, "node_modules/@commitlint/ensure": { "version": "17.4.4", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.4.4.tgz", - "integrity": "sha512-AHsFCNh8hbhJiuZ2qHv/m59W/GRE9UeOXbkOqxYMNNg9pJ7qELnFcwj5oYpa6vzTSHtPGKf3C2yUFNy1GGHq6g==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/types": "^17.4.4", "lodash.camelcase": "^4.3.0", @@ -2528,18 +5447,16 @@ }, "node_modules/@commitlint/execute-rule": { "version": "17.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz", - "integrity": "sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==", "dev": true, + "license": "MIT", "engines": { "node": ">=v14" } }, "node_modules/@commitlint/format": { "version": "17.4.4", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-17.4.4.tgz", - "integrity": "sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/types": "^17.4.4", "chalk": "^4.1.0" @@ -2550,9 +5467,8 @@ }, "node_modules/@commitlint/is-ignored": { "version": "17.6.6", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.6.6.tgz", - "integrity": "sha512-4Fw875faAKO+2nILC04yW/2Vy/wlV3BOYCSQ4CEFzriPEprc1Td2LILmqmft6PDEK5Sr14dT9tEzeaZj0V56Gg==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/types": "^17.4.4", "semver": "7.5.2" @@ -2563,9 +5479,8 @@ }, "node_modules/@commitlint/is-ignored/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -2575,9 +5490,8 @@ }, "node_modules/@commitlint/is-ignored/node_modules/semver": { "version": "7.5.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", - "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -2590,15 +5504,13 @@ }, "node_modules/@commitlint/is-ignored/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@commitlint/lint": { "version": "17.6.6", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.6.6.tgz", - "integrity": "sha512-5bN+dnHcRLkTvwCHYMS7Xpbr+9uNi0Kq5NR3v4+oPNx6pYXt8ACuw9luhM/yMgHYwW0ajIR20wkPAFkZLEMGmg==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/is-ignored": "^17.6.6", "@commitlint/parse": "^17.6.5", @@ -2611,9 +5523,8 @@ }, "node_modules/@commitlint/load": { "version": "17.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.5.0.tgz", - "integrity": "sha512-l+4W8Sx4CD5rYFsrhHH8HP01/8jEP7kKf33Xlx2Uk2out/UKoKPYMOIRcDH5ppT8UXLMV+x6Wm5osdRKKgaD1Q==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/config-validator": "^17.4.4", "@commitlint/execute-rule": "^17.4.0", @@ -2636,18 +5547,16 @@ }, "node_modules/@commitlint/message": { "version": "17.4.2", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.4.2.tgz", - "integrity": "sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=v14" } }, "node_modules/@commitlint/parse": { "version": "17.6.5", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.6.5.tgz", - "integrity": "sha512-0zle3bcn1Hevw5Jqpz/FzEWNo2KIzUbc1XyGg6WrWEoa6GH3A1pbqNF6MvE6rjuy6OY23c8stWnb4ETRZyN+Yw==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/types": "^17.4.4", "conventional-changelog-angular": "^5.0.11", @@ -2659,9 +5568,8 @@ }, "node_modules/@commitlint/read": { "version": "17.5.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.5.1.tgz", - "integrity": "sha512-7IhfvEvB//p9aYW09YVclHbdf1u7g7QhxeYW9ZHSO8Huzp8Rz7m05aCO1mFG7G8M+7yfFnXB5xOmG18brqQIBg==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/top-level": "^17.4.0", "@commitlint/types": "^17.4.4", @@ -2675,9 +5583,8 @@ }, "node_modules/@commitlint/read/node_modules/fs-extra": { "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -2689,9 +5596,8 @@ }, "node_modules/@commitlint/resolve-extends": { "version": "17.4.4", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.4.4.tgz", - "integrity": "sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/config-validator": "^17.4.4", "@commitlint/types": "^17.4.4", @@ -2706,9 +5612,8 @@ }, "node_modules/@commitlint/rules": { "version": "17.6.5", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.6.5.tgz", - "integrity": "sha512-uTB3zSmnPyW2qQQH+Dbq2rekjlWRtyrjDo4aLFe63uteandgkI+cc0NhhbBAzcXShzVk0qqp8SlkQMu0mgHg/A==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/ensure": "^17.4.4", "@commitlint/message": "^17.4.2", @@ -2722,18 +5627,16 @@ }, "node_modules/@commitlint/to-lines": { "version": "17.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.4.0.tgz", - "integrity": "sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg==", "dev": true, + "license": "MIT", "engines": { "node": ">=v14" } }, "node_modules/@commitlint/top-level": { "version": "17.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.4.0.tgz", - "integrity": "sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^5.0.0" }, @@ -2743,9 +5646,8 @@ }, "node_modules/@commitlint/types": { "version": "17.4.4", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.4.4.tgz", - "integrity": "sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0" }, @@ -2755,9 +5657,8 @@ }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -2767,9 +5668,8 @@ }, "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -2777,8 +5677,7 @@ }, "node_modules/@dabh/diagnostics": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", - "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "license": "MIT", "dependencies": { "colorspace": "1.1.x", "enabled": "2.0.x", @@ -2787,9 +5686,8 @@ }, "node_modules/@datadog/pprof": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@datadog/pprof/-/pprof-3.1.0.tgz", - "integrity": "sha512-Bg8O8yrHeL2KKHXhLoAAT33ZfzLnZ6rWfOjy8PkcNhUJy3UwNVLbUoApf+99EyLjqpzpk/kZXrIAMBzMMB8ilg==", "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "delay": "^5.0.0", "node-gyp-build": "<4.0", @@ -2803,17 +5701,15 @@ }, "node_modules/@datadog/pprof/node_modules/source-map": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", "engines": { "node": ">= 8" } }, "node_modules/@dependents/detective-less": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@dependents/detective-less/-/detective-less-3.0.1.tgz", - "integrity": "sha512-NjjCPJbx/za2287T6gnC5zD2IFSplro1evaTV9yvx3jnPpHi7s8PwJvh9vvJRFnMx5nbakodwNOnFvk8+9YQTg==", "dev": true, + "license": "MIT", "dependencies": { "gonzales-pe": "^4.3.0", "node-source-walk": "^5.0.0" @@ -2824,9 +5720,8 @@ }, "node_modules/@dependents/detective-less/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -2836,9 +5731,8 @@ }, "node_modules/@digitalroute/cz-conventional-changelog-for-jira": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@digitalroute/cz-conventional-changelog-for-jira/-/cz-conventional-changelog-for-jira-8.0.1.tgz", - "integrity": "sha512-I7uNQ2R5LnDYVhQ01sfNvaxqe1PutXyDl8Kltj4L8uDa1LTYqQgWWp3yEj3XYDNjhUjsAheHW0lsmF1oiAjWVg==", "dev": true, + "license": "MIT", "dependencies": { "boxen": "^5.1.2", "chalk": "^2.4.1", @@ -2859,9 +5753,8 @@ }, "node_modules/@digitalroute/cz-conventional-changelog-for-jira/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -2871,9 +5764,8 @@ }, "node_modules/@digitalroute/cz-conventional-changelog-for-jira/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -2885,33 +5777,29 @@ }, "node_modules/@digitalroute/cz-conventional-changelog-for-jira/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@digitalroute/cz-conventional-changelog-for-jira/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@digitalroute/cz-conventional-changelog-for-jira/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@digitalroute/cz-conventional-changelog-for-jira/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -2921,9 +5809,8 @@ }, "node_modules/@eslint-community/eslint-utils": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.3.0.tgz", - "integrity": "sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -2936,18 +5823,16 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz", - "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", - "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -2968,9 +5853,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2984,45 +5868,38 @@ }, "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@eslint/js": { "version": "8.41.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz", - "integrity": "sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@ewoudenberg/difflib": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@ewoudenberg/difflib/-/difflib-0.1.0.tgz", - "integrity": "sha512-OU5P5mJyD3OoWYMWY+yIgwvgNS9cFAU10f+DDuvtogcWQOoJIsQ4Hy2McSfUfhKjq8L0FuWVb4Rt7kgA+XK86A==", "dependencies": { "heap": ">= 0.2.0" } }, "node_modules/@hapi/hoek": { "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + "license": "BSD-3-Clause" }, "node_modules/@hapi/topo": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", @@ -3034,9 +5911,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -3047,29 +5923,25 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@hutson/parse-repository-url": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=6.9.0" } }, "node_modules/@ioredis/commands": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", - "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" + "license": "MIT" }, "node_modules/@isaacs/cliui": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -3084,9 +5956,8 @@ }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -3096,9 +5967,8 @@ }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -3108,9 +5978,8 @@ }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -3125,9 +5994,8 @@ }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -3140,9 +6008,8 @@ }, "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -3157,9 +6024,8 @@ }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -3173,18 +6039,16 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -3195,9 +6059,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -3208,9 +6071,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -3220,9 +6082,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -3235,9 +6096,8 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -3247,18 +6107,16 @@ }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/console": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.6.0.tgz", - "integrity": "sha512-anb6L1yg7uPQpytNVA5skRaXy3BmrsU8icRhTVNbWdjYWDDfy8M1Kq5HIVRpYoABdbpqsc5Dr+jtu4+qWRQBiQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.0", "@types/node": "*", @@ -3273,9 +6131,8 @@ }, "node_modules/@jest/core": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.6.0.tgz", - "integrity": "sha512-5dbMHfY/5R9m8NbgmB3JlxQqooZ/ooPSOiwEQZZ+HODwJTbIu37seVcZNBK29aMdXtjvTRB3f6LCvkKq+r8uQA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^29.6.0", "@jest/reporters": "^29.6.0", @@ -3320,9 +6177,8 @@ }, "node_modules/@jest/environment": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.6.0.tgz", - "integrity": "sha512-bUZLYUxYlUIsslBbxII0fq0kr1+friI3Gty+cRLmocGB1jdcAHs7FS8QdCDqedE8q4DZE1g/AJHH6OJZBLGGsg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/fake-timers": "^29.6.0", "@jest/types": "^29.6.0", @@ -3335,9 +6191,8 @@ }, "node_modules/@jest/expect": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.6.0.tgz", - "integrity": "sha512-a7pISPW28Q3c0/pLwz4mQ6tbAI+hc8/0CJp9ix6e9U4dQ6TiHQX82CT5DV5BMWaw8bFH4E6zsfZxXdn6Ka23Bw==", "dev": true, + "license": "MIT", "dependencies": { "expect": "^29.6.0", "jest-snapshot": "^29.6.0" @@ -3348,9 +6203,8 @@ }, "node_modules/@jest/expect-utils": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.0.tgz", - "integrity": "sha512-LLSQQN7oypMSETKoPWpsWYVKJd9LQWmSDDAc4hUQ4JocVC7LAMy9R3ZMhlnLwbcFvQORZnZR7HM893Px6cJhvA==", "dev": true, + "license": "MIT", "dependencies": { "jest-get-type": "^29.4.3" }, @@ -3360,9 +6214,8 @@ }, "node_modules/@jest/fake-timers": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.0.tgz", - "integrity": "sha512-nuCU46AsZoskthWSDS2Aj6LARgyNcp5Fjx2qxsO/fPl1Wp1CJ+dBDqs0OkEcJK8FBeV/MbjH5efe79M2sHcV+A==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.0", "@sinonjs/fake-timers": "^10.0.2", @@ -3377,9 +6230,8 @@ }, "node_modules/@jest/globals": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.6.0.tgz", - "integrity": "sha512-IQQ3hZ2D/hwEwXSMv5GbfhzdH0nTQR3KPYxnuW6gYWbd6+7/zgMz7Okn6EgBbNtJNONq03k5EKA6HqGyzRbpeg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.6.0", "@jest/expect": "^29.6.0", @@ -3392,9 +6244,8 @@ }, "node_modules/@jest/reporters": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.0.tgz", - "integrity": "sha512-dWEq4HI0VvHcAD6XTtyBKKARLytyyWPIy1SvGOcU91106MfvHPdxZgupFwVHd8TFpZPpA3SebYjtwS5BUS76Rw==", "dev": true, + "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^29.6.0", @@ -3435,9 +6286,8 @@ }, "node_modules/@jest/reporters/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3455,9 +6305,8 @@ }, "node_modules/@jest/schemas": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.0.tgz", - "integrity": "sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==", "dev": true, + "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -3467,9 +6316,8 @@ }, "node_modules/@jest/source-map": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.0.tgz", - "integrity": "sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", @@ -3481,9 +6329,8 @@ }, "node_modules/@jest/test-result": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.0.tgz", - "integrity": "sha512-9qLb7xITeyWhM4yatn2muqfomuoCTOhv0QV9i7XiIyYi3QLfnvPv5NeJp5u0PZeutAOROMLKakOkmoAisOr3YQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^29.6.0", "@jest/types": "^29.6.0", @@ -3496,9 +6343,8 @@ }, "node_modules/@jest/test-sequencer": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.0.tgz", - "integrity": "sha512-HYCS3LKRQotKWj2mnA3AN13PPevYZu8MJKm12lzYojpJNnn6kI/3PWmr1At/e3tUu+FHQDiOyaDVuR4EV3ezBw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/test-result": "^29.6.0", "graceful-fs": "^4.2.9", @@ -3511,9 +6357,8 @@ }, "node_modules/@jest/transform": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.6.0.tgz", - "integrity": "sha512-bhP/KxPo3e322FJ0nKAcb6WVK76ZYyQd1lWygJzoSqP8SYMSLdxHqP4wnPTI4WvbB8PKPDV30y5y7Tya4RHOBA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.0", @@ -3537,15 +6382,13 @@ }, "node_modules/@jest/transform/node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@jest/transform/node_modules/write-file-atomic": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -3556,9 +6399,8 @@ }, "node_modules/@jest/types": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.0.tgz", - "integrity": "sha512-8XCgL9JhqbJTFnMRjEAO+TuW251+MoMd5BSzLiE3vvzpQ8RlBxy8NoyNkDhs3K3OL3HeVinlOl9or5p7GTeOLg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.0", "@types/istanbul-lib-coverage": "^2.0.0", @@ -3573,9 +6415,8 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -3586,33 +6427,29 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" @@ -3620,14 +6457,12 @@ }, "node_modules/@jsdevtools/ono": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@koa/router": { "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@koa/router/-/router-12.0.0.tgz", - "integrity": "sha512-cnnxeKHXlt7XARJptflGURdJaO+ITpNkOHmQu7NHmCoRinPbyvFzce/EG/E8Zy81yQ1W9MoSdtklc3nyaDReUw==", + "license": "MIT", "dependencies": { "http-errors": "^2.0.0", "koa-compose": "^4.1.0", @@ -3640,8 +6475,7 @@ }, "node_modules/@koa/router/node_modules/http-errors": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -3655,16 +6489,14 @@ }, "node_modules/@koa/router/node_modules/statuses": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/@mapbox/node-pre-gyp": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", - "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "license": "BSD-3-Clause", "dependencies": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", @@ -3682,23 +6514,20 @@ }, "node_modules/@ndhoule/extend": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@ndhoule/extend/-/extend-2.0.0.tgz", - "integrity": "sha512-xb77tVVGDGwjy25a6RmBiiBQ9uvxhkG0OEpVkQ74oNFsy9u+4PGp5BIIblmJZmJBMgXiKxZtkr4GcmHCNVubBQ==" + "license": "MIT" }, "node_modules/@nicolo-ribaudo/semver-v6": { "version": "6.3.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", - "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -3709,18 +6538,16 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -3731,9 +6558,8 @@ }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -3741,28 +6567,23 @@ }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -3770,33 +6591,27 @@ }, "node_modules/@protobufjs/float": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/path": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + "license": "BSD-3-Clause" }, "node_modules/@pyroscope/nodejs": { "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@pyroscope/nodejs/-/nodejs-0.2.6.tgz", - "integrity": "sha512-F37ROH//HzO7zKm2S7CtNG8OAp+i4ADg4erQR9D57BrSgi8+3Jjp5s5PWqyJABC6IzsABgGrentPobBDr8QdsA==", + "license": "Apache-2.0", "dependencies": { "axios": "^0.26.1", "debug": "^4.3.3", @@ -3811,29 +6626,25 @@ }, "node_modules/@pyroscope/nodejs/node_modules/axios": { "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.14.8" } }, "node_modules/@pyroscope/nodejs/node_modules/source-map": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", "engines": { "node": ">= 8" } }, "node_modules/@rudderstack/json-template-engine": { "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@rudderstack/json-template-engine/-/json-template-engine-0.5.5.tgz", - "integrity": "sha512-p3HdTqgZiJjjZmjaHN2paa1e87ifGE5UjkA4zdvge4bBzJbKKMQNWqRg6I96SwoA+hsxNkW/f9R83SPLU9t7LA==" + "license": "MIT" }, "node_modules/@rudderstack/workflow-engine": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@rudderstack/workflow-engine/-/workflow-engine-0.5.7.tgz", - "integrity": "sha512-qR4eSiSFgYdOMtldR0rJ5kLGiTfnyufDfkMHNXFybxPb3jpjxBEGapj2lRiiTiRPgSUef7vuKyJ8BzY/VR4noA==", + "license": "MIT", "dependencies": { "@aws-crypto/sha256-js": "^4.0.0", "@rudderstack/json-template-engine": "^0.5.5", @@ -3845,8 +6656,7 @@ }, "node_modules/@rudderstack/workflow-engine/node_modules/@aws-crypto/sha256-js": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-4.0.0.tgz", - "integrity": "sha512-MHGJyjE7TX9aaqXj7zk2ppnFUOhaDs5sP+HtNS0evOxn72c+5njUmyJmpGd7TfyoDznZlHMmdo/xGUdu2NIjNQ==", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/util": "^4.0.0", "@aws-sdk/types": "^3.222.0", @@ -3855,8 +6665,7 @@ }, "node_modules/@rudderstack/workflow-engine/node_modules/@aws-crypto/util": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-4.0.0.tgz", - "integrity": "sha512-2EnmPy2gsFZ6m8bwUQN4jq+IyXV3quHAcwPOS6ZA3k+geujiqI8aRokO2kFJe+idJ/P3v4qWI186rVMo0+zLDQ==", + "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.222.0", "@aws-sdk/util-utf8-browser": "^3.0.0", @@ -3865,64 +6674,55 @@ }, "node_modules/@rudderstack/workflow-engine/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/@sideway/address": { "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@sideway/formula": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + "license": "BSD-3-Clause" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + "license": "BSD-3-Clause" }, "node_modules/@sinclair/typebox": { "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@sindresorhus/is": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", - "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@sinonjs/commons": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.0" } }, "node_modules/@smithy/abort-controller": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-1.0.1.tgz", - "integrity": "sha512-An6irzp9NCji2JtJHhrEFlDbxLwHd6c6Y9fq3ZeomyUR8BIXlGXVTxsemUSZVVgOq3166iYbYs/CrPAmgRSFLw==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -3933,8 +6733,7 @@ }, "node_modules/@smithy/config-resolver": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-1.0.1.tgz", - "integrity": "sha512-quj0xUiEVG/UHfY82EtthR/+S5/17p3IxXArC3NFSNqryMobWbG9oWgJy2s2cgUSVZLzxevjKKvxrilK7JEDaA==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "@smithy/util-config-provider": "^1.0.1", @@ -3947,8 +6746,7 @@ }, "node_modules/@smithy/credential-provider-imds": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-1.0.1.tgz", - "integrity": "sha512-hkRJoxVCh4CEt1zYOBElE+G/MV6lyx3g68hSJpesM4pwMT/bzEVo5E5XzXY+6dVq8yszeatWKbFuqCCBQte8tg==", + "license": "Apache-2.0", "dependencies": { "@smithy/node-config-provider": "^1.0.1", "@smithy/property-provider": "^1.0.1", @@ -3962,8 +6760,7 @@ }, "node_modules/@smithy/eventstream-codec": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-1.0.1.tgz", - "integrity": "sha512-cpcTXQEOEs2wEvIyxW/iTHJ2m0RVqoEOTjjWEXD6SY8Gcs3FCFP6E8MXadC098tdH5ctMIUXc8POXyMpxzGnjw==", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "3.0.0", "@smithy/types": "^1.1.0", @@ -3973,8 +6770,7 @@ }, "node_modules/@smithy/eventstream-serde-browser": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-1.0.1.tgz", - "integrity": "sha512-oc8vxe+AU2RzvXH/Ehh0TzM/Nsw3I3ywu7V3qaCzqdkBIntAwK9JGZqcSDsqTK0WxZKBRgFIEwopcuZ2slVnFQ==", + "license": "Apache-2.0", "dependencies": { "@smithy/eventstream-serde-universal": "^1.0.1", "@smithy/types": "^1.1.0", @@ -3986,8 +6782,7 @@ }, "node_modules/@smithy/eventstream-serde-config-resolver": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-1.0.1.tgz", - "integrity": "sha512-TJwaXima0djnNY819utO1j93qZHaheFH1bhHxBkMrImtEOuXY48Tjma/L2m8swkIq8dy8jFC9hrYOkD0eYHkFA==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -3998,8 +6793,7 @@ }, "node_modules/@smithy/eventstream-serde-node": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-1.0.1.tgz", - "integrity": "sha512-JEj8w7IRs4l+kcwKxbv3pNuu8n7ORC4pMFrIOrM4rERzrRnI7vMNTRzvAPGYA53rqm/Y9tBA9dw4C+H6hLXcsA==", + "license": "Apache-2.0", "dependencies": { "@smithy/eventstream-serde-universal": "^1.0.1", "@smithy/types": "^1.1.0", @@ -4011,8 +6805,7 @@ }, "node_modules/@smithy/eventstream-serde-universal": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-1.0.1.tgz", - "integrity": "sha512-c6m9DH7m6D2S93dof4wSxysaGSQdauO20TNcSePzrgHd4rkTnz5pqZ1a7Pt22q2SKf09SvTugq5cV2Sy4r8zHw==", + "license": "Apache-2.0", "dependencies": { "@smithy/eventstream-codec": "^1.0.1", "@smithy/types": "^1.1.0", @@ -4024,8 +6817,7 @@ }, "node_modules/@smithy/fetch-http-handler": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-1.0.1.tgz", - "integrity": "sha512-/e2A8eOMk4FVZBQ0o6uF/ttLtFZcmsK5MIwDu1UE3crM4pCAIP19Ul8U9rdLlHhIu81X4AcJmSw55RDSpVRL/w==", + "license": "Apache-2.0", "dependencies": { "@smithy/protocol-http": "^1.1.0", "@smithy/querystring-builder": "^1.0.1", @@ -4036,8 +6828,7 @@ }, "node_modules/@smithy/hash-node": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-1.0.1.tgz", - "integrity": "sha512-eCz08BySBcOjVObjbRAS/XMKUGY4ujnuS+GoWeEpzpCSKDnO8/YQ0rStRt4C0llRmhApizYc1tK9DiJwfvXcBg==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "@smithy/util-buffer-from": "^1.0.1", @@ -4050,8 +6841,7 @@ }, "node_modules/@smithy/invalid-dependency": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-1.0.1.tgz", - "integrity": "sha512-kib63GFlAzRn/wf8M0cRWrZA1cyOy5IvpTkLavCY782DPFMP0EaEeD6VrlNIOvD6ncf7uCJ68HqckhwK1qLT3g==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -4059,8 +6849,7 @@ }, "node_modules/@smithy/is-array-buffer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-1.0.1.tgz", - "integrity": "sha512-fHSTW70gANnzPYWNDcWkPXpp+QMbHhKozbQm/+Denkhp4gwSiPuAovWZRpJa9sXO+Q4dOnNzYN2max1vTCEroA==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -4070,8 +6859,7 @@ }, "node_modules/@smithy/middleware-content-length": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-1.0.1.tgz", - "integrity": "sha512-vWWigayk5i2cFp9xPX5vdzHyK+P0t/xZ3Ovp4Ss+c8JQ1Hlq2kpJZVWtTKsmdfND5rVo5lu0kD5wgAMUCcmuhw==", + "license": "Apache-2.0", "dependencies": { "@smithy/protocol-http": "^1.1.0", "@smithy/types": "^1.1.0", @@ -4083,8 +6871,7 @@ }, "node_modules/@smithy/middleware-endpoint": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-1.0.2.tgz", - "integrity": "sha512-F3CyXgjtDI4quGFkDmVNytt6KMwlzzeMxtopk6Edue4uKdKcMC1vUmoRS5xTbFzKDDp4XwpnEV7FshPaL3eCPw==", + "license": "Apache-2.0", "dependencies": { "@smithy/middleware-serde": "^1.0.1", "@smithy/types": "^1.1.0", @@ -4098,8 +6885,7 @@ }, "node_modules/@smithy/middleware-retry": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-1.0.3.tgz", - "integrity": "sha512-ZRsjG8adtxQ456FULPqPFmWtrW44Fq8IgdQvQB+rC2RSho3OUzS+TiEIwb5Zs6rf2IoewITKtfdtsUZcxXO0ng==", + "license": "Apache-2.0", "dependencies": { "@smithy/protocol-http": "^1.1.0", "@smithy/service-error-classification": "^1.0.2", @@ -4115,16 +6901,14 @@ }, "node_modules/@smithy/middleware-retry/node_modules/uuid": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/@smithy/middleware-serde": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-1.0.1.tgz", - "integrity": "sha512-bn5lWk8UUeXFCQfkrNErz5SbeNd+2hgYegHMLsOLPt4URDIsyREar6wMsdsR+8UCdgR5s8udG3Zalgc7puizIQ==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -4135,8 +6919,7 @@ }, "node_modules/@smithy/middleware-stack": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-1.0.1.tgz", - "integrity": "sha512-T6+gsAO1JYamOJqmORCrByDeQ/NB+ggjHb33UDOgdX4xIjXz/FB/3UqHgQu6PL1cSFrK+i4oteDIwqARDs/Szw==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -4146,8 +6929,7 @@ }, "node_modules/@smithy/node-config-provider": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-1.0.1.tgz", - "integrity": "sha512-FRxifH/J2SgOaVLihIqBFuGhiHR/NfzbZYp5nYO7BGgT/gc/f9nAuuRJcEy/hwO3aI6ThyG5apH4tGec6A2sCw==", + "license": "Apache-2.0", "dependencies": { "@smithy/property-provider": "^1.0.1", "@smithy/shared-ini-file-loader": "^1.0.1", @@ -4160,8 +6942,7 @@ }, "node_modules/@smithy/node-http-handler": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-1.0.2.tgz", - "integrity": "sha512-PzPrGRSt3kNuruLCeR4ffJp57ZLVnIukMXVL3Ppr65ZoxiE+HBsOVAa/Z/T+4HzjCM6RaXnnmB8YKfsDjlb0iA==", + "license": "Apache-2.0", "dependencies": { "@smithy/abort-controller": "^1.0.1", "@smithy/protocol-http": "^1.1.0", @@ -4175,8 +6956,7 @@ }, "node_modules/@smithy/property-provider": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-1.0.1.tgz", - "integrity": "sha512-3EG/61Ls1MrgEaafpltXBJHSqFPqmTzEX7QKO7lOEHuYGmGYzZ08t1SsTgd1vM74z0IihoZyGPynZ7WmXKvTeg==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -4187,8 +6967,7 @@ }, "node_modules/@smithy/protocol-http": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.1.0.tgz", - "integrity": "sha512-H5y/kZOqfJSqRkwtcAoVbqONmhdXwSgYNJ1Glk5Ry8qlhVVy5qUzD9EklaCH8/XLnoCsLO/F/Giee8MIvaBRkg==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -4199,8 +6978,7 @@ }, "node_modules/@smithy/querystring-builder": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-1.0.1.tgz", - "integrity": "sha512-J5Tzkw1PMtu01h6wl+tlN5vsyROmS6/z5lEfNlLo/L4ELHeVkQ4Q0PEIjDddPLfjVLCm8biQTESE5GCMixSRNQ==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "@smithy/util-uri-escape": "^1.0.1", @@ -4212,8 +6990,7 @@ }, "node_modules/@smithy/querystring-parser": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-1.0.1.tgz", - "integrity": "sha512-zauxdMc3cwxoLitI5DZqH7xN6Fk0mwRxrUMAETbav2j6Se2U0UGak/55rZcDg2yGzOURaLYi5iOm1gHr98P+Bw==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -4224,16 +7001,14 @@ }, "node_modules/@smithy/service-error-classification": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-1.0.2.tgz", - "integrity": "sha512-Q5CCuzYL5FGo6Rr/O+lZxXHm2hrRgbmMn8MgyjqZUWZg20COg20DuNtIbho2iht6CoB7jOpmpBqhWizLlzUZgg==", + "license": "Apache-2.0", "engines": { "node": ">=14.0.0" } }, "node_modules/@smithy/shared-ini-file-loader": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-1.0.1.tgz", - "integrity": "sha512-EztziuIPoNronENGqh+MWVKJErA4rJpaPzJCPukzBeEoG2USka0/q4B5Mr/1zszOnrb49fPNh4u3u5LfiH7QzA==", + "license": "Apache-2.0", "dependencies": { "@smithy/types": "^1.1.0", "tslib": "^2.5.0" @@ -4244,8 +7019,7 @@ }, "node_modules/@smithy/signature-v4": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-1.0.1.tgz", - "integrity": "sha512-2D69je14ou1vBTnAQeysSK4QVMm0j3WHS3MDg/DnHnFFcXRCzVl/xAARO7POD8+fpi4tMFPs8Z4hzo1Zw40L0Q==", + "license": "Apache-2.0", "dependencies": { "@smithy/eventstream-codec": "^1.0.1", "@smithy/is-array-buffer": "^1.0.1", @@ -4262,8 +7036,7 @@ }, "node_modules/@smithy/smithy-client": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-1.0.3.tgz", - "integrity": "sha512-Wh1mNP/1yUZK0uYkgCQ6NMxpBT3Fmc45TMdUfOlH1xD2zGYL7U4yDHFOhEZdi/suyjaelFobXB2p9pPIw6LjRQ==", + "license": "Apache-2.0", "dependencies": { "@smithy/middleware-stack": "^1.0.1", "@smithy/types": "^1.1.0", @@ -4276,8 +7049,7 @@ }, "node_modules/@smithy/types": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-1.1.0.tgz", - "integrity": "sha512-KzmvisMmuwD2jZXuC9e65JrgsZM97y5NpDU7g347oB+Q+xQLU6hQZ5zFNNbEfwwOJHoOvEVTna+dk1h/lW7alw==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -4287,8 +7059,7 @@ }, "node_modules/@smithy/url-parser": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-1.0.1.tgz", - "integrity": "sha512-33vWEtE6HzmwjEcEb4I58XMLRAchwPS93YhfDyXAXr1jwDCzfXmMayQwwpyW847rpWj0XJimxqia8q0z+k/ybw==", + "license": "Apache-2.0", "dependencies": { "@smithy/querystring-parser": "^1.0.1", "@smithy/types": "^1.1.0", @@ -4297,8 +7068,7 @@ }, "node_modules/@smithy/util-base64": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-1.0.1.tgz", - "integrity": "sha512-rJcpRi/yUi6TyCEkjdTH86/ExBuKlfctEXhG9/4gMJ3/cnPcHJJnr0mQ9evSEO+3DbpT/Nxq90bcTBdTIAmCig==", + "license": "Apache-2.0", "dependencies": { "@smithy/util-buffer-from": "^1.0.1", "tslib": "^2.5.0" @@ -4309,16 +7079,14 @@ }, "node_modules/@smithy/util-body-length-browser": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-1.0.1.tgz", - "integrity": "sha512-Pdp744fmF7E1NWoSb7256Anhm8eYoCubvosdMwXzOnHuPRVbDa15pKUz2027K3+jrfGpXo1r+MnDerajME1Osw==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" } }, "node_modules/@smithy/util-body-length-node": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-1.0.1.tgz", - "integrity": "sha512-4PIHjDFwG07SNensAiVq/CJmubEVuwclWSYOTNtzBNTvxOeGLznvygkGYgPzS3erByT8C4S9JvnLYgtrsVV3nQ==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -4328,8 +7096,7 @@ }, "node_modules/@smithy/util-buffer-from": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-1.0.1.tgz", - "integrity": "sha512-363N7Wq0ceUgE5lLe6kaR6GlJs2/m4r9V6bRMfIszb6P1FZbbRRM2FQYUWWPFSsRymm9mJL18b3fjiVsIvhDGg==", + "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^1.0.1", "tslib": "^2.5.0" @@ -4340,8 +7107,7 @@ }, "node_modules/@smithy/util-config-provider": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-1.0.1.tgz", - "integrity": "sha512-4Qy38Oy5/q43MpTwCLV1P+7NeaOp4W2etQDxMjgEeRlOyGGNlgttn0syi4g2rVSukFVqQ6FbeRs5xbnFmS6kaQ==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -4351,8 +7117,7 @@ }, "node_modules/@smithy/util-defaults-mode-browser": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-1.0.1.tgz", - "integrity": "sha512-/9ObwNch4Z/NJYfkO4AvqBWku60Ju+c2Ck32toPOLmWe/V6eI9FLn8C1abri+GxDRCkLIqvkaWU1lgZ3nWZIIw==", + "license": "Apache-2.0", "dependencies": { "@smithy/property-provider": "^1.0.1", "@smithy/types": "^1.1.0", @@ -4365,8 +7130,7 @@ }, "node_modules/@smithy/util-defaults-mode-node": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-1.0.1.tgz", - "integrity": "sha512-XQM3KvqRLgv7bwAzVkXTITkOmcOINoG9icJiGT8FA0zV35lY5UvyIsg5kHw01xigQS8ufa/33AwG3ZoXip+V5g==", + "license": "Apache-2.0", "dependencies": { "@smithy/config-resolver": "^1.0.1", "@smithy/credential-provider-imds": "^1.0.1", @@ -4381,8 +7145,7 @@ }, "node_modules/@smithy/util-hex-encoding": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-1.0.1.tgz", - "integrity": "sha512-FPTtMz/t02/rbfq5Pdll/TWUYP+GVFLCQNr+DgifrLzVRU0g8rdRjyFpDh8nPTdkDDusTTo9P1bepAYj68s0eA==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -4392,8 +7155,7 @@ }, "node_modules/@smithy/util-middleware": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-1.0.1.tgz", - "integrity": "sha512-u9akN3Zmbr0vZH4F+2iehG7cFg+3fvDfnvS/hhsXH4UHuhqiQ+ADefibnLzPoz1pooY7rvwaQ/TVHyJmZHdLdQ==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -4403,8 +7165,7 @@ }, "node_modules/@smithy/util-retry": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-1.0.3.tgz", - "integrity": "sha512-gYQnZDD8I2XJFspVwUISyukjPWVikTzKR0IdG8hCWYPTpeULFl1o6yzXlT5SL63TBkuEYl0R1/93cdNtMiNnoA==", + "license": "Apache-2.0", "dependencies": { "@smithy/service-error-classification": "^1.0.2", "tslib": "^2.5.0" @@ -4415,8 +7176,7 @@ }, "node_modules/@smithy/util-stream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-1.0.1.tgz", - "integrity": "sha512-4aBCIz35aZAnt2Rbq341KrnUzGhWv2/Zu8HouJqYLvSWCzlrvsNCGlXP4e70Kjzcw8hSuuCNtdUICwQ5qUWLxg==", + "license": "Apache-2.0", "dependencies": { "@smithy/fetch-http-handler": "^1.0.1", "@smithy/node-http-handler": "^1.0.2", @@ -4433,8 +7193,7 @@ }, "node_modules/@smithy/util-uri-escape": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-1.0.1.tgz", - "integrity": "sha512-IJUrRnXKEIc+PKnU1XzTsIENVR+60jUDPBP3iWX/EvuuT3Xfob47x1FGUe2c3yMXNuU6ax8VDk27hL5LKNoehQ==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.5.0" }, @@ -4444,8 +7203,7 @@ }, "node_modules/@smithy/util-utf8": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-1.0.1.tgz", - "integrity": "sha512-iX6XHpjh4DFEUIBSKp2tjy3pYnLQMsJ62zYi1BVAC0kobE6p8AVpiZnxsU3ZkgQatAsUaEspFHUZ7CL7oSqaPQ==", + "license": "Apache-2.0", "dependencies": { "@smithy/util-buffer-from": "^1.0.1", "tslib": "^2.5.0" @@ -4456,8 +7214,7 @@ }, "node_modules/@smithy/util-waiter": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-1.0.1.tgz", - "integrity": "sha512-dsn8O0s3pFIgxFzySLe1dv0w4tEQizEP6UqbgZ4r/Kar4n8pSdrPi6DJg8BzXwkwEIZpMtV4/nhSeGZ7HksDXA==", + "license": "Apache-2.0", "dependencies": { "@smithy/abort-controller": "^1.0.1", "@smithy/types": "^1.1.0", @@ -4469,41 +7226,35 @@ }, "node_modules/@tsconfig/node10": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node14": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node16": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/accepts": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/babel__core": { "version": "7.1.20", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", - "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0", @@ -4514,18 +7265,16 @@ }, "node_modules/@types/babel__generator": { "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -4533,17 +7282,15 @@ }, "node_modules/@types/babel__traverse": { "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", - "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.3.0" } }, "node_modules/@types/body-parser": { "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -4551,21 +7298,18 @@ }, "node_modules/@types/connect": { "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/content-disposition": { "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.5.tgz", - "integrity": "sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==" + "license": "MIT" }, "node_modules/@types/cookies": { "version": "0.7.7", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz", - "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==", + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/express": "*", @@ -4575,8 +7319,7 @@ }, "node_modules/@types/express": { "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -4586,8 +7329,7 @@ }, "node_modules/@types/express-serve-static-core": { "version": "4.17.35", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", - "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", + "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -4595,54 +7337,57 @@ "@types/send": "*" } }, + "node_modules/@types/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-IyNhGHu71jH1jCXTHmafuoAAdsbBON3kDh7u/UUhLmjYgN5TYB54e1R8ckTCiIevl2UuZaCsi9XRxineY5yUjw==", + "deprecated": "This is a stub types definition. fast-json-stable-stringify provides its own type definitions, so you do not need this installed.", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "*" + } + }, "node_modules/@types/graceful-fs": { "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/http-assert": { "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.3.tgz", - "integrity": "sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==" + "license": "MIT" }, "node_modules/@types/http-errors": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==" + "license": "MIT" }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/jest": { "version": "29.5.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.1.tgz", - "integrity": "sha512-tEuVcHrpaixS36w7hpsfLBLpjtMRJUE09/MHXn923LOVojDwyC14cWcfc0rDs0VEfUyYmt/+iX1kxxp+gZMcaQ==", "dev": true, + "license": "MIT", "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" @@ -4650,25 +7395,21 @@ }, "node_modules/@types/json-schema": { "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/keygrip": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" + "license": "MIT" }, "node_modules/@types/koa": { "version": "2.13.6", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.6.tgz", - "integrity": "sha512-diYUfp/GqfWBAiwxHtYJ/FQYIXhlEhlyaU7lB/bWQrx4Il9lCET5UwpFy3StOAohfsxxvEQ11qIJgT1j2tfBvw==", + "license": "MIT", "dependencies": { "@types/accepts": "*", "@types/content-disposition": "*", @@ -4682,74 +7423,62 @@ }, "node_modules/@types/koa-bodyparser": { "version": "4.3.10", - "resolved": "https://registry.npmjs.org/@types/koa-bodyparser/-/koa-bodyparser-4.3.10.tgz", - "integrity": "sha512-6ae05pjhmrmGhUR8GYD5qr5p9LTEMEGfGXCsK8VaSL+totwigm8+H/7MHW7K4854CMeuwRAubT8qcc/EagaeIA==", "dev": true, + "license": "MIT", "dependencies": { "@types/koa": "*" } }, "node_modules/@types/koa-compose": { "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", - "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", + "license": "MIT", "dependencies": { "@types/koa": "*" } }, "node_modules/@types/lodash": { "version": "4.14.197", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.197.tgz", - "integrity": "sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/mime": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + "license": "MIT" }, "node_modules/@types/minimist": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { "version": "20.2.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.5.tgz", - "integrity": "sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==" + "license": "MIT" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" + "license": "MIT" }, "node_modules/@types/prettier": { "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/qs": { "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + "license": "MIT" }, "node_modules/@types/semver": { "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/send": { "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "license": "MIT", "dependencies": { "@types/mime": "^1", "@types/node": "*" @@ -4757,8 +7486,7 @@ }, "node_modules/@types/serve-static": { "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", - "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "license": "MIT", "dependencies": { "@types/mime": "*", "@types/node": "*" @@ -4766,30 +7494,26 @@ }, "node_modules/@types/stack-utils": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/yargs": { "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.23.tgz", - "integrity": "sha512-yuogunc04OnzGQCrfHx+Kk883Q4X0aSwmYZhKjI21m+SVYzjIbrWl8dOOwSv5hf2Um2pdCOXWo9isteZTNXUZQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.61.0.tgz", - "integrity": "sha512-A5l/eUAug103qtkwccSCxn8ZRwT+7RXWkFECdA4Cvl1dOlDUgTpAOfSEElZn2uSUxhdDpnCdetrf0jvU4qrL+g==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.4.0", "@typescript-eslint/scope-manager": "5.61.0", @@ -4821,9 +7545,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.61.0.tgz", - "integrity": "sha512-W8VoMjoSg7f7nqAROEmTt6LoBpn81AegP7uKhhW5KzYlehs8VV0ZW0fIDVbcZRcaP3aPSW+JZFua+ysQN+m/Nw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.61.0", "@typescript-eslint/visitor-keys": "5.61.0" @@ -4838,9 +7561,8 @@ }, "node_modules/@typescript-eslint/parser": { "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.2.tgz", - "integrity": "sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "5.59.2", "@typescript-eslint/types": "5.59.2", @@ -4865,9 +7587,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", - "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4878,9 +7599,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz", - "integrity": "sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "5.59.2", "@typescript-eslint/visitor-keys": "5.59.2", @@ -4905,9 +7625,8 @@ }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", - "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.59.2", "eslint-visitor-keys": "^3.3.0" @@ -4922,9 +7641,8 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.2.tgz", - "integrity": "sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.59.2", "@typescript-eslint/visitor-keys": "5.59.2" @@ -4939,9 +7657,8 @@ }, "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": { "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", - "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4952,9 +7669,8 @@ }, "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/visitor-keys": { "version": "5.59.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", - "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.59.2", "eslint-visitor-keys": "^3.3.0" @@ -4969,9 +7685,8 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.61.0.tgz", - "integrity": "sha512-kk8u//r+oVK2Aj3ph/26XdH0pbAkC2RiSjUYhKD+PExemG4XSjpGFeyZ/QM8lBOa7O8aGOU+/yEbMJgQv/DnCg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "5.61.0", "@typescript-eslint/utils": "5.61.0", @@ -4996,9 +7711,8 @@ }, "node_modules/@typescript-eslint/types": { "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.61.0.tgz", - "integrity": "sha512-ldyueo58KjngXpzloHUog/h9REmHl59G1b3a5Sng1GfBo14BkS3ZbMEb3693gnP1k//97lh7bKsp6/V/0v1veQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -5009,9 +7723,8 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.61.0.tgz", - "integrity": "sha512-Fud90PxONnnLZ36oR5ClJBLTLfU4pIWBmnvGwTbEa2cXIqj70AEDEmOmpkFComjBZ/037ueKrOdHuYmSFVD7Rw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "5.61.0", "@typescript-eslint/visitor-keys": "5.61.0", @@ -5036,9 +7749,8 @@ }, "node_modules/@typescript-eslint/utils": { "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.61.0.tgz", - "integrity": "sha512-mV6O+6VgQmVE6+xzlA91xifndPW9ElFW8vbSF0xCT/czPXVhwDewKila1jOyRwa9AE19zKnrr7Cg5S3pJVrTWQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", @@ -5062,9 +7774,8 @@ }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.61.0.tgz", - "integrity": "sha512-W8VoMjoSg7f7nqAROEmTt6LoBpn81AegP7uKhhW5KzYlehs8VV0ZW0fIDVbcZRcaP3aPSW+JZFua+ysQN+m/Nw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.61.0", "@typescript-eslint/visitor-keys": "5.61.0" @@ -5079,9 +7790,8 @@ }, "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -5092,18 +7802,16 @@ }, "node_modules/@typescript-eslint/utils/node_modules/estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/@typescript-eslint/visitor-keys": { "version": "5.61.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.61.0.tgz", - "integrity": "sha512-50XQ5VdbWrX06mQXhy93WywSFZZGsv3EOjq+lqp6WC2t+j3mb6A9xYVdrRxafvK88vg9k9u+CT4l6D8PEatjKg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.61.0", "eslint-visitor-keys": "^3.3.0" @@ -5118,13 +7826,11 @@ }, "node_modules/abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "license": "ISC" }, "node_modules/accepts": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -5135,9 +7841,8 @@ }, "node_modules/acorn": { "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -5147,23 +7852,20 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/add-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", - "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/agent-base": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", "dependencies": { "debug": "4" }, @@ -5173,9 +7875,8 @@ }, "node_modules/aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -5186,8 +7887,7 @@ }, "node_modules/ajv": { "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -5201,8 +7901,7 @@ }, "node_modules/ajv-draft-04": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", - "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "license": "MIT", "peerDependencies": { "ajv": "^8.5.0" }, @@ -5214,8 +7913,7 @@ }, "node_modules/ajv-formats": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -5230,18 +7928,16 @@ }, "node_modules/ansi-align": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.1.0" } }, "node_modules/ansi-escapes": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -5254,9 +7950,8 @@ }, "node_modules/ansi-escapes/node_modules/type-fest": { "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -5266,17 +7961,15 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -5289,15 +7982,13 @@ }, "node_modules/any-promise": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -5308,19 +7999,16 @@ }, "node_modules/app-module-path": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", - "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/aproba": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + "license": "ISC" }, "node_modules/are-we-there-yet": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "license": "ISC", "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -5331,8 +8019,7 @@ }, "node_modules/are-we-there-yet/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5344,35 +8031,30 @@ }, "node_modules/arg": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "license": "Python-2.0" }, "node_modules/array-find-index": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/array-ify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/array-includes": { "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -5389,18 +8071,16 @@ }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/array.prototype.flat": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -5416,9 +8096,8 @@ }, "node_modules/array.prototype.flatmap": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -5434,61 +8113,52 @@ }, "node_modules/arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/asap": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ast-module-types": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-3.0.0.tgz", - "integrity": "sha512-CMxMCOCS+4D+DkOQfuZf+vLrSEmY/7xtORwdxs4wtcC1wVgvk2MqFFTwQCFhvWsI4KPU9lcWXPI8DgRiz+xetQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0" } }, "node_modules/astral-regex": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/async": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + "license": "MIT" }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "license": "MIT" }, "node_modules/at-least-node": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true, + "license": "ISC", "engines": { "node": ">= 4.0.0" } }, "node_modules/available-typed-arrays": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5498,24 +8168,103 @@ }, "node_modules/await-handler": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/await-handler/-/await-handler-1.1.2.tgz", - "integrity": "sha512-dihteGhwbJpT89kVbacWiyKeAZr+En0YGK6pAKQJLR0En9ZxSH2H4TTvfG4bBjzFq9gDAma4y9BrpDns6j5UiQ==" + "license": "MIT" + }, + "node_modules/aws-sdk": { + "version": "2.1462.0", + "license": "Apache-2.0", + "dependencies": { + "buffer": "4.9.2", + "events": "1.1.1", + "ieee754": "1.1.13", + "jmespath": "0.16.0", + "querystring": "0.2.0", + "sax": "1.2.1", + "url": "0.10.3", + "util": "^0.12.4", + "uuid": "8.0.0", + "xml2js": "0.5.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aws-sdk/node_modules/buffer": { + "version": "4.9.2", + "license": "MIT", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/aws-sdk/node_modules/events": { + "version": "1.1.1", + "license": "MIT", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/aws-sdk/node_modules/ieee754": { + "version": "1.1.13", + "license": "BSD-3-Clause" + }, + "node_modules/aws-sdk/node_modules/uuid": { + "version": "8.0.0", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } }, "node_modules/axios": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } }, + "node_modules/axios-mock-adapter": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.22.0.tgz", + "integrity": "sha512-dmI0KbkyAhntUR05YY96qg2H6gg0XMl2+qTW0xmYg6Up+BFBAJYRLROMXRdDEL06/Wqwa0TJThAYvFtSFdRCZw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "is-buffer": "^2.0.5" + }, + "peerDependencies": { + "axios": ">= 0.17.0" + } + }, + "node_modules/axios-mock-adapter/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, "node_modules/babel-jest": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.0.tgz", - "integrity": "sha512-Jj8Bq2yKsk11XLk06Nm8SdvYkAcecH+GuhxB8DnK5SncjHnJ88TQjSnGgE7jpajpnSvz9DZ6X8hXrDkD/6/TPQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/transform": "^29.6.0", "@types/babel__core": "^7.1.14", @@ -5534,9 +8283,8 @@ }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -5550,9 +8298,8 @@ }, "node_modules/babel-plugin-jest-hoist": { "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", - "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -5565,9 +8312,8 @@ }, "node_modules/babel-preset-current-node-syntax": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", @@ -5588,9 +8334,8 @@ }, "node_modules/babel-preset-jest": { "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", - "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", "dev": true, + "license": "MIT", "dependencies": { "babel-plugin-jest-hoist": "^29.5.0", "babel-preset-current-node-syntax": "^1.0.0" @@ -5604,13 +8349,10 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -5624,13 +8366,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/benchmark-suite": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/benchmark-suite/-/benchmark-suite-0.1.8.tgz", - "integrity": "sha512-UDfWBQfeq/lXcsjuGAanOrX6AhP6HQSsutGS7CfStcbE1loLge7aQr5DT6n8r/4bUoiK+5RYwnogNu5UuTBMNg==", "dev": true, + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.7", "expose-gc": "^1.0.0", @@ -5644,22 +8386,19 @@ }, "node_modules/bindings": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", "dependencies": { "file-uri-to-path": "1.0.0" } }, "node_modules/bintrees": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", - "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==" + "license": "MIT" }, "node_modules/bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -5668,9 +8407,8 @@ }, "node_modules/bl/node_modules/readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5682,20 +8420,17 @@ }, "node_modules/boolean": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/bowser": { "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", - "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" + "license": "MIT" }, "node_modules/boxen": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", @@ -5715,9 +8450,8 @@ }, "node_modules/boxen/node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -5727,9 +8461,8 @@ }, "node_modules/boxen/node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -5739,8 +8472,7 @@ }, "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5748,9 +8480,8 @@ }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -5760,8 +8491,6 @@ }, "node_modules/browserslist": { "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", "dev": true, "funding": [ { @@ -5777,6 +8506,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001503", "electron-to-chromium": "^1.4.431", @@ -5792,9 +8522,8 @@ }, "node_modules/bs-logger": { "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, + "license": "MIT", "dependencies": { "fast-json-stable-stringify": "2.x" }, @@ -5804,17 +8533,15 @@ }, "node_modules/bser": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } }, "node_modules/btoa": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "license": "(MIT OR Apache-2.0)", "bin": { "btoa": "bin/btoa.js" }, @@ -5824,8 +8551,7 @@ }, "node_modules/buffer": { "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "license": "MIT", "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4" @@ -5833,15 +8559,13 @@ }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/builtin-modules": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -5851,24 +8575,21 @@ }, "node_modules/byline": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/bytes": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/cache-content-type": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", - "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", + "license": "MIT", "dependencies": { "mime-types": "^2.1.18", "ylru": "^1.2.0" @@ -5879,9 +8600,8 @@ }, "node_modules/cacheable-request": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", - "integrity": "sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==", "dev": true, + "license": "MIT", "dependencies": { "clone-response": "1.0.2", "get-stream": "3.0.0", @@ -5894,35 +8614,31 @@ }, "node_modules/cacheable-request/node_modules/get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/cacheable-request/node_modules/lowercase-keys": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/cachedir": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", - "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/call-bind": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -5933,33 +8649,29 @@ }, "node_modules/call-me-maybe": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camelcase": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camelcase-keys": { "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^5.3.1", "map-obj": "^4.0.0", @@ -5974,8 +8686,6 @@ }, "node_modules/caniuse-lite": { "version": "1.0.30001512", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001512.tgz", - "integrity": "sha512-2S9nK0G/mE+jasCUsMPlARhRCts1ebcp2Ji8Y8PWi4NDE1iRdLCnEPHkEfeBrGC45L4isBx5ur3IQ6yTE2mRZw==", "dev": true, "funding": [ { @@ -5990,13 +8700,13 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6010,48 +8720,41 @@ }, "node_modules/char-regex": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/chardet": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/charenc": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "license": "BSD-3-Clause", "engines": { "node": "*" } }, "node_modules/check-more-types": { "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/chownr": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/ci-info": { "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", "dev": true, "funding": [ { @@ -6059,21 +8762,20 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/cjs-module-lexer": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/clean-regexp": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", - "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -6083,18 +8785,16 @@ }, "node_modules/clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/cli-boxes": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -6104,9 +8804,8 @@ }, "node_modules/cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, + "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -6116,9 +8815,8 @@ }, "node_modules/cli-spinners": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -6128,9 +8826,8 @@ }, "node_modules/cli-truncate": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", "dev": true, + "license": "MIT", "dependencies": { "slice-ansi": "^5.0.0", "string-width": "^5.0.0" @@ -6144,9 +8841,8 @@ }, "node_modules/cli-truncate/node_modules/ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -6156,9 +8852,8 @@ }, "node_modules/cli-truncate/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -6173,9 +8868,8 @@ }, "node_modules/cli-truncate/node_modules/strip-ansi": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -6188,18 +8882,16 @@ }, "node_modules/cli-width": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true, + "license": "ISC", "engines": { "node": ">= 10" } }, "node_modules/cliui": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -6211,33 +8903,29 @@ }, "node_modules/clone": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/clone-response": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", "dev": true, + "license": "MIT", "dependencies": { "mimic-response": "^1.0.0" } }, "node_modules/cluster-key-slot": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "license": "Apache-2.0", "engines": { "node": ">=0.10.0" } }, "node_modules/co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "license": "MIT", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -6245,8 +8933,7 @@ }, "node_modules/co-body": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz", - "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==", + "license": "MIT", "dependencies": { "inflation": "^2.0.0", "qs": "^6.5.2", @@ -6256,14 +8943,12 @@ }, "node_modules/collect-v8-coverage": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/color": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.3", "color-string": "^1.6.0" @@ -6271,9 +8956,8 @@ }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -6283,13 +8967,11 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "license": "MIT" }, "node_modules/color-string": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" @@ -6297,43 +8979,37 @@ }, "node_modules/color-support": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "license": "ISC", "bin": { "color-support": "bin.js" } }, "node_modules/color/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/color/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "license": "MIT" }, "node_modules/colorette": { "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/colors": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "license": "MIT", "engines": { "node": ">=0.1.90" } }, "node_modules/colorspace": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "license": "MIT", "dependencies": { "color": "^3.1.3", "text-hex": "1.0.x" @@ -6341,8 +9017,7 @@ }, "node_modules/combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -6352,18 +9027,16 @@ }, "node_modules/commander": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/commitizen": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.3.0.tgz", - "integrity": "sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==", "dev": true, + "license": "MIT", "dependencies": { "cachedir": "2.3.0", "cz-conventional-changelog": "3.3.0", @@ -6391,9 +9064,8 @@ }, "node_modules/commitizen/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6411,9 +9083,8 @@ }, "node_modules/commitizen/node_modules/inquirer": { "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -6437,18 +9108,16 @@ }, "node_modules/commitizen/node_modules/minimist": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/commitlint": { "version": "17.6.6", - "resolved": "https://registry.npmjs.org/commitlint/-/commitlint-17.6.6.tgz", - "integrity": "sha512-Q5M+w1nqGQSEkEW43EtPNrU+uKL2pENrJl6QigFupZ0v4AfvI8k5Q6uFgWmxlEOrSkgCYaN436Q9c9pydqyJqg==", "dev": true, + "license": "MIT", "dependencies": { "@commitlint/cli": "^17.6.6", "@commitlint/types": "^17.4.4" @@ -6462,15 +9131,13 @@ }, "node_modules/commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/compare-func": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, + "license": "MIT", "dependencies": { "array-ify": "^1.0.0", "dot-prop": "^5.1.0" @@ -6478,9 +9145,8 @@ }, "node_modules/compare-func/node_modules/dot-prop": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", - "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", "dev": true, + "license": "MIT", "dependencies": { "is-obj": "^1.0.0" }, @@ -6490,17 +9156,14 @@ }, "node_modules/compare-func/node_modules/is-obj": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/component-each": { "version": "0.2.6", - "resolved": "https://registry.npmjs.org/component-each/-/component-each-0.2.6.tgz", - "integrity": "sha512-IOXG+HZmbgaBS8Rqy+tAMrwsPdEY1BWcPcp0xI2ZOzKQhHvSVGrL7iCnoDU37TEKOCfaf4ywsR6GwAr0JivPjg==", "dependencies": { "component-type": "1.0.0", "to-function": "2.0.6" @@ -6508,40 +9171,31 @@ }, "node_modules/component-emitter": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/component-props": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/component-props/-/component-props-1.1.1.tgz", - "integrity": "sha512-69pIRJs9fCCHRqCz3390YF2LV1Lu6iEMZ5zuVqqUn+G20V9BNXlMs0cWawWeW9g4Ynmg29JmkG6R7/lUJoGd1Q==" + "version": "1.1.1" }, "node_modules/component-type": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.0.0.tgz", - "integrity": "sha512-qzUg4SGDH6KFYlcklmeZwucbtosh/XGwuIffqXAhC1dZyjO7Xu1UuaxwKRY29EncuBj/DH+h6Zot3AdZS6xdFw==" + "version": "1.0.0" }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "license": "MIT" }, "node_modules/confusing-browser-globals": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + "license": "ISC" }, "node_modules/content-disposition": { "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -6551,17 +9205,15 @@ }, "node_modules/content-type": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/conventional-changelog": { "version": "3.1.25", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz", - "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==", "dev": true, + "license": "MIT", "dependencies": { "conventional-changelog-angular": "^5.0.12", "conventional-changelog-atom": "^2.0.8", @@ -6581,9 +9233,8 @@ }, "node_modules/conventional-changelog-angular": { "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", "dev": true, + "license": "ISC", "dependencies": { "compare-func": "^2.0.0", "q": "^1.5.1" @@ -6594,9 +9245,8 @@ }, "node_modules/conventional-changelog-atom": { "version": "2.0.8", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz", - "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==", "dev": true, + "license": "ISC", "dependencies": { "q": "^1.5.1" }, @@ -6606,9 +9256,8 @@ }, "node_modules/conventional-changelog-codemirror": { "version": "2.0.8", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", - "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", "dev": true, + "license": "ISC", "dependencies": { "q": "^1.5.1" }, @@ -6618,15 +9267,13 @@ }, "node_modules/conventional-changelog-config-spec": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz", - "integrity": "sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/conventional-changelog-conventionalcommits": { "version": "4.6.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", - "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", "dev": true, + "license": "ISC", "dependencies": { "compare-func": "^2.0.0", "lodash": "^4.17.15", @@ -6638,9 +9285,8 @@ }, "node_modules/conventional-changelog-core": { "version": "4.2.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", - "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", "dev": true, + "license": "MIT", "dependencies": { "add-stream": "^1.0.0", "conventional-changelog-writer": "^5.0.0", @@ -6663,9 +9309,8 @@ }, "node_modules/conventional-changelog-core/node_modules/find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^2.0.0" }, @@ -6675,15 +9320,13 @@ }, "node_modules/conventional-changelog-core/node_modules/hosted-git-info": { "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/conventional-changelog-core/node_modules/locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -6694,9 +9337,8 @@ }, "node_modules/conventional-changelog-core/node_modules/p-limit": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^1.0.0" }, @@ -6706,9 +9348,8 @@ }, "node_modules/conventional-changelog-core/node_modules/p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^1.1.0" }, @@ -6718,27 +9359,24 @@ }, "node_modules/conventional-changelog-core/node_modules/p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-changelog-core/node_modules/path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-changelog-core/node_modules/path-type": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, + "license": "MIT", "dependencies": { "pify": "^3.0.0" }, @@ -6748,18 +9386,16 @@ }, "node_modules/conventional-changelog-core/node_modules/pify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-changelog-core/node_modules/read-pkg": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", "dev": true, + "license": "MIT", "dependencies": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", @@ -6771,9 +9407,8 @@ }, "node_modules/conventional-changelog-core/node_modules/read-pkg-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^2.0.0", "read-pkg": "^3.0.0" @@ -6784,9 +9419,8 @@ }, "node_modules/conventional-changelog-core/node_modules/read-pkg/node_modules/normalize-package-data": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -6796,18 +9430,16 @@ }, "node_modules/conventional-changelog-core/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/conventional-changelog-ember": { "version": "2.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", - "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==", "dev": true, + "license": "ISC", "dependencies": { "q": "^1.5.1" }, @@ -6817,9 +9449,8 @@ }, "node_modules/conventional-changelog-eslint": { "version": "3.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz", - "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==", "dev": true, + "license": "ISC", "dependencies": { "q": "^1.5.1" }, @@ -6829,9 +9460,8 @@ }, "node_modules/conventional-changelog-express": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz", - "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==", "dev": true, + "license": "ISC", "dependencies": { "q": "^1.5.1" }, @@ -6841,9 +9471,8 @@ }, "node_modules/conventional-changelog-jquery": { "version": "3.0.11", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", - "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", "dev": true, + "license": "ISC", "dependencies": { "q": "^1.5.1" }, @@ -6853,18 +9482,16 @@ }, "node_modules/conventional-changelog-jscs": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz", - "integrity": "sha512-V8sey4tE0nJUlWGi2PZKDMfawYLf/+F165xhhDjcIoTEJDxssVV5PMVzTQzjS6U/dEX85fWkur+bs6imOqkIng==", "dev": true, + "license": "ISC", "dependencies": { "q": "^1.4.1" } }, "node_modules/conventional-changelog-jshint": { "version": "2.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz", - "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==", "dev": true, + "license": "ISC", "dependencies": { "compare-func": "^2.0.0", "q": "^1.5.1" @@ -6875,18 +9502,16 @@ }, "node_modules/conventional-changelog-preset-loader": { "version": "2.3.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", - "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/conventional-changelog-writer": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", "dev": true, + "license": "MIT", "dependencies": { "conventional-commits-filter": "^2.0.7", "dateformat": "^3.0.0", @@ -6907,24 +9532,21 @@ }, "node_modules/conventional-changelog-writer/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/conventional-commit-types": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", - "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/conventional-commits-filter": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", "dev": true, + "license": "MIT", "dependencies": { "lodash.ismatch": "^4.4.0", "modify-values": "^1.0.0" @@ -6935,9 +9557,8 @@ }, "node_modules/conventional-commits-parser": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", "dev": true, + "license": "MIT", "dependencies": { "is-text-path": "^1.0.1", "JSONStream": "^1.0.4", @@ -6955,9 +9576,8 @@ }, "node_modules/conventional-github-releaser": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/conventional-github-releaser/-/conventional-github-releaser-3.1.5.tgz", - "integrity": "sha512-VhPKbdN92b2ygnQLkuwHIfUaPAVrVfJVuQdxbmmVPkN927LDP98HthLWFVShh4pxqLK0nE66v78RERGJVeCzbg==", "dev": true, + "license": "MIT", "dependencies": { "conventional-changelog": "^2.0.0", "dateformat": "^3.0.0", @@ -6981,9 +9601,8 @@ }, "node_modules/conventional-github-releaser/node_modules/compare-func": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz", - "integrity": "sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q==", "dev": true, + "license": "MIT", "dependencies": { "array-ify": "^1.0.0", "dot-prop": "^3.0.0" @@ -6991,9 +9610,8 @@ }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-2.0.3.tgz", - "integrity": "sha512-4bcII9cJHSKb2qi9e8qGF6aJHLf/AB0dokhyR+X6QILTMl77s4l163vK+reXhajvfOYbbHQvsrWybr5+PKZwNA==", "dev": true, + "license": "MIT", "dependencies": { "conventional-changelog-angular": "^1.6.6", "conventional-changelog-atom": "^2.0.0", @@ -7013,9 +9631,8 @@ }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-angular": { "version": "1.6.6", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz", - "integrity": "sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg==", "dev": true, + "license": "ISC", "dependencies": { "compare-func": "^1.3.1", "q": "^1.5.1" @@ -7023,9 +9640,8 @@ }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-core": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz", - "integrity": "sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ==", "dev": true, + "license": "MIT", "dependencies": { "conventional-changelog-writer": "^4.0.6", "conventional-commits-parser": "^3.0.3", @@ -7047,9 +9663,8 @@ }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-core/node_modules/read-pkg-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^2.0.0", "read-pkg": "^3.0.0" @@ -7060,9 +9675,8 @@ }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-core/node_modules/through2": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.4", "readable-stream": "2 || 3" @@ -7070,18 +9684,16 @@ }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-jquery": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz", - "integrity": "sha512-wbz5vVcvu/SPZTDFB21fF/xo5zFq6NQR42jhtUfOrrP1N/ZjNshhGb3expCGqHYdnUHzPevHeUafsVrdxVD5Og==", "dev": true, + "license": "ISC", "dependencies": { "q": "^1.4.1" } }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.1.0.tgz", - "integrity": "sha512-WwKcUp7WyXYGQmkLsX4QmU42AZ1lqlvRW9mqoyiQzdD+rJWbTepdWoKJuwXTS+yq79XKnQNa93/roViPQrAQgw==", "dev": true, + "license": "MIT", "dependencies": { "compare-func": "^2.0.0", "conventional-commits-filter": "^2.0.7", @@ -7103,9 +9715,8 @@ }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/compare-func": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, + "license": "MIT", "dependencies": { "array-ify": "^1.0.0", "dot-prop": "^5.1.0" @@ -7113,9 +9724,8 @@ }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/hosted-git-info": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7125,9 +9735,8 @@ }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/meow": { "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", @@ -7150,9 +9759,8 @@ }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/normalize-package-data": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^4.0.1", "is-core-module": "^2.5.0", @@ -7165,9 +9773,8 @@ }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/normalize-package-data/node_modules/semver": { "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7180,9 +9787,8 @@ }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -7194,27 +9800,24 @@ }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/through2": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "3" } }, "node_modules/conventional-github-releaser/node_modules/conventional-changelog-writer/node_modules/type-fest": { "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -7224,9 +9827,8 @@ }, "node_modules/conventional-github-releaser/node_modules/dargs": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", - "integrity": "sha512-jyweV/k0rbv2WK4r9KLayuBrSh2Py0tNmV7LBoSMH4hMQyrG8OPyIOWB2VEx4DJKXWmK4lopYMVvORlDt2S8Aw==", "dev": true, + "license": "MIT", "dependencies": { "number-is-nan": "^1.0.0" }, @@ -7236,18 +9838,16 @@ }, "node_modules/conventional-github-releaser/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/conventional-github-releaser/node_modules/dot-prop": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", - "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", "dev": true, + "license": "MIT", "dependencies": { "is-obj": "^1.0.0" }, @@ -7257,9 +9857,8 @@ }, "node_modules/conventional-github-releaser/node_modules/find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^2.0.0" }, @@ -7269,9 +9868,8 @@ }, "node_modules/conventional-github-releaser/node_modules/get-pkg-repo": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", - "integrity": "sha512-xPCyvcEOxCJDxhBfXDNH+zA7mIRGb2aY1gIUJWsZkpJbp1BLHl+/Sycg26Dv+ZbZAJkO61tzbBtqHUi30NGBvg==", "dev": true, + "license": "MIT", "dependencies": { "hosted-git-info": "^2.1.4", "meow": "^3.3.0", @@ -7285,18 +9883,16 @@ }, "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/camelcase": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/camelcase-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^2.0.0", "map-obj": "^1.0.0" @@ -7307,9 +9903,8 @@ }, "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/find-up": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", "dev": true, + "license": "MIT", "dependencies": { "path-exists": "^2.0.0", "pinkie-promise": "^2.0.0" @@ -7320,9 +9915,8 @@ }, "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", @@ -7336,9 +9930,8 @@ }, "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/meow": { "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", "dev": true, + "license": "MIT", "dependencies": { "camelcase-keys": "^2.0.0", "decamelize": "^1.1.2", @@ -7357,9 +9950,8 @@ }, "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/path-exists": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", "dev": true, + "license": "MIT", "dependencies": { "pinkie-promise": "^2.0.0" }, @@ -7369,9 +9961,8 @@ }, "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/path-type": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "pify": "^2.0.0", @@ -7383,18 +9974,16 @@ }, "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/read-pkg": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", "dev": true, + "license": "MIT", "dependencies": { "load-json-file": "^1.0.0", "normalize-package-data": "^2.3.2", @@ -7406,9 +9995,8 @@ }, "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/read-pkg-up": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^1.0.0", "read-pkg": "^1.0.0" @@ -7419,9 +10007,8 @@ }, "node_modules/conventional-github-releaser/node_modules/get-pkg-repo/node_modules/redent": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", "dev": true, + "license": "MIT", "dependencies": { "indent-string": "^2.1.0", "strip-indent": "^1.0.1" @@ -7432,9 +10019,8 @@ }, "node_modules/conventional-github-releaser/node_modules/git-raw-commits": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz", - "integrity": "sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==", "dev": true, + "license": "MIT", "dependencies": { "dargs": "^4.0.1", "lodash.template": "^4.0.2", @@ -7451,18 +10037,16 @@ }, "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/camelcase-keys": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha512-Ej37YKYbFUI8QiYlvj9YHb6/Z60dZyPJW0Cs8sFilMbd2lP0bw3ylAq9yJkK4lcTA2dID5fG8LjmJYbO7kWb7Q==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^4.1.0", "map-obj": "^2.0.0", @@ -7474,27 +10058,24 @@ }, "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/indent-string": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/map-obj": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/meow": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", "dev": true, + "license": "MIT", "dependencies": { "camelcase-keys": "^4.0.0", "decamelize-keys": "^1.0.0", @@ -7512,9 +10093,8 @@ }, "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/minimist-options": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, + "license": "MIT", "dependencies": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0" @@ -7525,9 +10105,8 @@ }, "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/read-pkg-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^2.0.0", "read-pkg": "^3.0.0" @@ -7538,9 +10117,8 @@ }, "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/redent": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha512-XNwrTx77JQCEMXTeb8movBKuK75MgH0RZkujNuDKCezemx/voapl9i2gCSi8WWm8+ox5ycJi1gxF22fR7c0Ciw==", "dev": true, + "license": "MIT", "dependencies": { "indent-string": "^3.0.0", "strip-indent": "^2.0.0" @@ -7551,18 +10129,16 @@ }, "node_modules/conventional-github-releaser/node_modules/git-raw-commits/node_modules/strip-indent": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-github-releaser/node_modules/git-semver-tags": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.3.tgz", - "integrity": "sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA==", "dev": true, + "license": "MIT", "dependencies": { "meow": "^4.0.0", "semver": "^6.0.0" @@ -7576,18 +10152,16 @@ }, "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/camelcase-keys": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha512-Ej37YKYbFUI8QiYlvj9YHb6/Z60dZyPJW0Cs8sFilMbd2lP0bw3ylAq9yJkK4lcTA2dID5fG8LjmJYbO7kWb7Q==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^4.1.0", "map-obj": "^2.0.0", @@ -7599,27 +10173,24 @@ }, "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/indent-string": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/map-obj": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha512-TzQSV2DiMYgoF5RycneKVUzIa9bQsj/B3tTgsE3dOGqlzHnGIDaC7XBE7grnA+8kZPnfqSGFe95VHc2oc0VFUQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/meow": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", "dev": true, + "license": "MIT", "dependencies": { "camelcase-keys": "^4.0.0", "decamelize-keys": "^1.0.0", @@ -7637,9 +10208,8 @@ }, "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/minimist-options": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, + "license": "MIT", "dependencies": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0" @@ -7650,9 +10220,8 @@ }, "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/read-pkg-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^2.0.0", "read-pkg": "^3.0.0" @@ -7663,9 +10232,8 @@ }, "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/redent": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha512-XNwrTx77JQCEMXTeb8movBKuK75MgH0RZkujNuDKCezemx/voapl9i2gCSi8WWm8+ox5ycJi1gxF22fR7c0Ciw==", "dev": true, + "license": "MIT", "dependencies": { "indent-string": "^3.0.0", "strip-indent": "^2.0.0" @@ -7676,33 +10244,29 @@ }, "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/conventional-github-releaser/node_modules/git-semver-tags/node_modules/strip-indent": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-github-releaser/node_modules/hosted-git-info": { "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/conventional-github-releaser/node_modules/indent-string": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", "dev": true, + "license": "MIT", "dependencies": { "repeating": "^2.0.0" }, @@ -7712,18 +10276,16 @@ }, "node_modules/conventional-github-releaser/node_modules/is-obj": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/conventional-github-releaser/node_modules/locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -7734,9 +10296,8 @@ }, "node_modules/conventional-github-releaser/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -7746,18 +10307,16 @@ }, "node_modules/conventional-github-releaser/node_modules/map-obj": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/conventional-github-releaser/node_modules/meow": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-7.1.1.tgz", - "integrity": "sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==", "dev": true, + "license": "MIT", "dependencies": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", @@ -7780,9 +10339,8 @@ }, "node_modules/conventional-github-releaser/node_modules/meow/node_modules/yargs-parser": { "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -7793,9 +10351,8 @@ }, "node_modules/conventional-github-releaser/node_modules/normalize-package-data": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -7805,9 +10362,8 @@ }, "node_modules/conventional-github-releaser/node_modules/p-limit": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^1.0.0" }, @@ -7817,9 +10373,8 @@ }, "node_modules/conventional-github-releaser/node_modules/p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^1.1.0" }, @@ -7829,18 +10384,16 @@ }, "node_modules/conventional-github-releaser/node_modules/p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-github-releaser/node_modules/parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", "dev": true, + "license": "MIT", "dependencies": { "error-ex": "^1.2.0" }, @@ -7850,18 +10403,16 @@ }, "node_modules/conventional-github-releaser/node_modules/path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-github-releaser/node_modules/path-type": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, + "license": "MIT", "dependencies": { "pify": "^3.0.0" }, @@ -7871,27 +10422,24 @@ }, "node_modules/conventional-github-releaser/node_modules/pify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-github-releaser/node_modules/quick-lru": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha512-tRS7sTgyxMXtLum8L65daJnHUhfDUgboRdcWW2bR9vBfrj2+O5HSMbQOJfJJjIVSPFqbBCF37FpwWXGitDc5tA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/conventional-github-releaser/node_modules/read-pkg": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", "dev": true, + "license": "MIT", "dependencies": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", @@ -7903,27 +10451,24 @@ }, "node_modules/conventional-github-releaser/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/conventional-github-releaser/node_modules/split2": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", - "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", "dev": true, + "license": "ISC", "dependencies": { "through2": "^2.0.2" } }, "node_modules/conventional-github-releaser/node_modules/strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", "dev": true, + "license": "MIT", "dependencies": { "is-utf8": "^0.2.0" }, @@ -7933,9 +10478,8 @@ }, "node_modules/conventional-github-releaser/node_modules/strip-indent": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", "dev": true, + "license": "MIT", "dependencies": { "get-stdin": "^4.0.1" }, @@ -7948,9 +10492,8 @@ }, "node_modules/conventional-github-releaser/node_modules/through2": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -7958,9 +10501,8 @@ }, "node_modules/conventional-github-releaser/node_modules/type-fest": { "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -7970,15 +10512,13 @@ }, "node_modules/conventional-github-releaser/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/conventional-recommended-bump": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", - "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", "dev": true, + "license": "MIT", "dependencies": { "concat-stream": "^2.0.0", "conventional-changelog-preset-loader": "^2.3.4", @@ -7998,12 +10538,11 @@ }, "node_modules/conventional-recommended-bump/node_modules/concat-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", "dev": true, "engines": [ "node >= 6.0" ], + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -8013,9 +10552,8 @@ }, "node_modules/conventional-recommended-bump/node_modules/readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -8026,31 +10564,24 @@ } }, "node_modules/convert-hex": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/convert-hex/-/convert-hex-0.1.0.tgz", - "integrity": "sha512-w20BOb1PiR/sEJdS6wNrUjF5CSfscZFUp7R9NSlXH8h2wynzXVEPFPJECAnkNylZ+cvf3p7TyRUHggDmrwXT9A==" + "version": "0.1.0" }, "node_modules/convert-source-map": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/convert-string": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/convert-string/-/convert-string-0.1.0.tgz", - "integrity": "sha512-1KX9ESmtl8xpT2LN2tFnKSbV4NiarbVi8DVb39ZriijvtTklyrT+4dT1wsGMHKD3CJUjXgvJzstm9qL9ICojGA==" + "version": "0.1.0" }, "node_modules/cookiejar": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", - "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cookies": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", - "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", + "license": "MIT", "dependencies": { "depd": "~2.0.0", "keygrip": "~1.1.0" @@ -8061,20 +10592,17 @@ }, "node_modules/copy-to": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz", - "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==" + "license": "MIT" }, "node_modules/core-util-is": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cosmiconfig": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", "dev": true, + "license": "MIT", "dependencies": { "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -8087,9 +10615,8 @@ }, "node_modules/cosmiconfig-typescript-loader": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz", - "integrity": "sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=12", "npm": ">=6" @@ -8103,15 +10630,13 @@ }, "node_modules/create-require": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -8123,22 +10648,19 @@ }, "node_modules/crypt": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "license": "BSD-3-Clause", "engines": { "node": "*" } }, "node_modules/crypto-js": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", - "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + "license": "MIT" }, "node_modules/currently-unhandled": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", "dev": true, + "license": "MIT", "dependencies": { "array-find-index": "^1.0.1" }, @@ -8148,9 +10670,8 @@ }, "node_modules/cz-conventional-changelog": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz", - "integrity": "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^2.4.1", "commitizen": "^4.0.3", @@ -8168,9 +10689,8 @@ }, "node_modules/cz-conventional-changelog/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -8180,9 +10700,8 @@ }, "node_modules/cz-conventional-changelog/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -8194,33 +10713,29 @@ }, "node_modules/cz-conventional-changelog/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/cz-conventional-changelog/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cz-conventional-changelog/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/cz-conventional-changelog/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -8230,26 +10745,23 @@ }, "node_modules/dargs": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/dateformat": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -8264,18 +10776,16 @@ }, "node_modules/decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/decamelize-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, + "license": "MIT", "dependencies": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" @@ -8289,27 +10799,24 @@ }, "node_modules/decamelize-keys/node_modules/map-obj": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/decode-uri-component": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/decompress-response": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", "dev": true, + "license": "MIT", "dependencies": { "mimic-response": "^1.0.0" }, @@ -8319,38 +10826,33 @@ }, "node_modules/dedent": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/deep-extend": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/deepmerge": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/defaults": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "license": "MIT", "dependencies": { "clone": "^1.0.2" }, @@ -8360,17 +10862,15 @@ }, "node_modules/defaults/node_modules/clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/define-properties": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, + "license": "MIT", "dependencies": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -8384,8 +10884,7 @@ }, "node_modules/delay": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -8395,38 +10894,33 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + "license": "MIT" }, "node_modules/denque": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "license": "Apache-2.0", "engines": { "node": ">=0.10" } }, "node_modules/depd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/dependency-tree": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/dependency-tree/-/dependency-tree-9.0.0.tgz", - "integrity": "sha512-osYHZJ1fBSon3lNLw70amAXsQ+RGzXsPvk9HbBgTLbp/bQBmpH5mOmsUvqXU+YEWVU0ZLewsmzOET/8jWswjDQ==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^2.20.3", "debug": "^4.3.1", @@ -8443,33 +10937,29 @@ }, "node_modules/dependency-tree/node_modules/ast-module-types": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-4.0.0.tgz", - "integrity": "sha512-Kd0o8r6CDazJGCRzs8Ivpn0xj19oNKrULhoJFzhGjRsLpekF2zyZs9Ukz+JvZhWD6smszfepakTFhAaYpsI12g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.0" } }, "node_modules/dependency-tree/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/dependency-tree/node_modules/detective-stylus": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-3.0.0.tgz", - "integrity": "sha512-1xYTzbrduExqMYmte7Qk99IRA3Aa6oV7PYzd+3yDcQXkmENvyGF/arripri6lxRDdNYEb4fZFuHtNRAXbz3iAA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" } }, "node_modules/dependency-tree/node_modules/module-definition": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-4.1.0.tgz", - "integrity": "sha512-rHXi/DpMcD2qcKbPCTklDbX9lBKJrUSl971TW5l6nMpqKCIlzJqmQ8cfEF5M923h2OOLHPDVlh5pJxNyV+AJlw==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^4.0.0", "node-source-walk": "^5.0.1" @@ -8483,9 +10973,8 @@ }, "node_modules/dependency-tree/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -8495,9 +10984,8 @@ }, "node_modules/dependency-tree/node_modules/precinct": { "version": "9.2.1", - "resolved": "https://registry.npmjs.org/precinct/-/precinct-9.2.1.tgz", - "integrity": "sha512-uzKHaTyiVejWW7VJtHInb9KBUq9yl9ojxXGujhjhDmPon2wgZPBKQIKR+6csGqSlUeGXAA4MEFnU6DesxZib+A==", "dev": true, + "license": "MIT", "dependencies": { "@dependents/detective-less": "^3.0.1", "commander": "^9.5.0", @@ -8521,18 +11009,16 @@ }, "node_modules/dependency-tree/node_modules/precinct/node_modules/commander": { "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || >=14" } }, "node_modules/dependency-tree/node_modules/typescript": { "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -8543,8 +11029,7 @@ }, "node_modules/destroy": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -8552,44 +11037,39 @@ }, "node_modules/detect-file": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/detect-indent": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/detect-libc": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "license": "Apache-2.0", "engines": { "node": ">=8" } }, "node_modules/detect-newline": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/detective-amd": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-4.1.0.tgz", - "integrity": "sha512-XlQrGjGEnMFjKbep0/S/T7XICxf25LFMP6Ug+Iw/Ww/MHUBzfy8QETCzamO1JlAMYPmkChDh21/NS/csG0FwGg==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^4.0.0", "escodegen": "^2.0.0", @@ -8605,18 +11085,16 @@ }, "node_modules/detective-amd/node_modules/ast-module-types": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-4.0.0.tgz", - "integrity": "sha512-Kd0o8r6CDazJGCRzs8Ivpn0xj19oNKrULhoJFzhGjRsLpekF2zyZs9Ukz+JvZhWD6smszfepakTFhAaYpsI12g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.0" } }, "node_modules/detective-amd/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -8626,9 +11104,8 @@ }, "node_modules/detective-cjs": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-4.1.0.tgz", - "integrity": "sha512-QxzMwt5MfPLwS7mG30zvnmOvHLx5vyVvjsAV6gQOyuMoBR5G1DhS1eJZ4P10AlH+HSnk93mTcrg3l39+24XCtg==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^4.0.0", "node-source-walk": "^5.0.1" @@ -8639,18 +11116,16 @@ }, "node_modules/detective-cjs/node_modules/ast-module-types": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-4.0.0.tgz", - "integrity": "sha512-Kd0o8r6CDazJGCRzs8Ivpn0xj19oNKrULhoJFzhGjRsLpekF2zyZs9Ukz+JvZhWD6smszfepakTFhAaYpsI12g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.0" } }, "node_modules/detective-cjs/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -8660,9 +11135,8 @@ }, "node_modules/detective-es6": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-3.0.1.tgz", - "integrity": "sha512-evPeYIEdK1jK3Oji5p0hX4sPV/1vK+o4ihcWZkMQE6voypSW/cIBiynOLxQk5KOOQbdP8oOAsYqouMTYO5l1sw==", "dev": true, + "license": "MIT", "dependencies": { "node-source-walk": "^5.0.0" }, @@ -8672,9 +11146,8 @@ }, "node_modules/detective-es6/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -8684,9 +11157,8 @@ }, "node_modules/detective-less": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/detective-less/-/detective-less-1.0.2.tgz", - "integrity": "sha512-Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.0.0", "gonzales-pe": "^4.2.3", @@ -8698,9 +11170,8 @@ }, "node_modules/detective-postcss": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-6.1.1.tgz", - "integrity": "sha512-mX62A6chiafyFW9AwGF6B/uVU+F3hGMZwXDqCHe+NjmU/M5jlDBazdXb1sMoDE+InTDsoPaX3bUUOH33Yxn5Sw==", "dev": true, + "license": "MIT", "dependencies": { "is-url": "^1.2.4", "postcss": "^8.4.21", @@ -8712,9 +11183,8 @@ }, "node_modules/detective-sass": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-4.1.1.tgz", - "integrity": "sha512-KSUoOdrLXxSZFnHpGyXufWUP6VkfSdSNC/uezbJkKIwy2i3px5NQPY5hWOR0k9OFlrBakucymD3Ap4d87zobUQ==", "dev": true, + "license": "MIT", "dependencies": { "gonzales-pe": "^4.3.0", "node-source-walk": "^5.0.0" @@ -8725,9 +11195,8 @@ }, "node_modules/detective-sass/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -8737,9 +11206,8 @@ }, "node_modules/detective-scss": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-3.0.1.tgz", - "integrity": "sha512-Bv/t1dEKHCPJ9+byha7wKg4zda8IFk7KZpEX+ZJs2k1HsWIE3+FBeVFLtD3y9GYGfi8l7Sim3pULPz4+yLwW9A==", "dev": true, + "license": "MIT", "dependencies": { "gonzales-pe": "^4.3.0", "node-source-walk": "^5.0.0" @@ -8750,9 +11218,8 @@ }, "node_modules/detective-scss/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -8762,18 +11229,16 @@ }, "node_modules/detective-stylus": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-2.0.1.tgz", - "integrity": "sha512-/Tvs1pWLg8eYwwV6kZQY5IslGaYqc/GACxjcaGudiNtN5nKCH6o2WnJK3j0gA3huCnoQcbv8X7oz/c1lnvE3zQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0" } }, "node_modules/detective-typescript": { "version": "9.1.1", - "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-9.1.1.tgz", - "integrity": "sha512-Uc1yVutTF0RRm1YJ3g//i1Cn2vx1kwHj15cnzQP6ff5koNzQ0idc1zAC73ryaWEulA0ElRXFTq6wOqe8vUQ3MA==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "^5.55.0", "ast-module-types": "^4.0.0", @@ -8786,18 +11251,16 @@ }, "node_modules/detective-typescript/node_modules/ast-module-types": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-4.0.0.tgz", - "integrity": "sha512-Kd0o8r6CDazJGCRzs8Ivpn0xj19oNKrULhoJFzhGjRsLpekF2zyZs9Ukz+JvZhWD6smszfepakTFhAaYpsI12g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.0" } }, "node_modules/detective-typescript/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -8807,9 +11270,8 @@ }, "node_modules/detective-typescript/node_modules/typescript": { "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -8820,9 +11282,8 @@ }, "node_modules/dezalgo": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", "dev": true, + "license": "ISC", "dependencies": { "asap": "^2.0.0", "wrappy": "1" @@ -8830,27 +11291,24 @@ }, "node_modules/diff": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/diff-sequences": { "version": "29.4.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", - "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -8860,9 +11318,8 @@ }, "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -8872,17 +11329,15 @@ }, "node_modules/dotenv": { "version": "16.0.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", - "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "license": "BSD-2-Clause", "engines": { "node": ">=12" } }, "node_modules/dotgitignore": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dotgitignore/-/dotgitignore-2.1.0.tgz", - "integrity": "sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==", "dev": true, + "license": "ISC", "dependencies": { "find-up": "^3.0.0", "minimatch": "^3.0.4" @@ -8893,9 +11348,8 @@ }, "node_modules/dotgitignore/node_modules/find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^3.0.0" }, @@ -8905,9 +11359,8 @@ }, "node_modules/dotgitignore/node_modules/locate-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -8918,9 +11371,8 @@ }, "node_modules/dotgitignore/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -8933,9 +11385,8 @@ }, "node_modules/dotgitignore/node_modules/p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.0.0" }, @@ -8945,17 +11396,14 @@ }, "node_modules/dotgitignore/node_modules/path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/dreamopt": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/dreamopt/-/dreamopt-0.8.0.tgz", - "integrity": "sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==", "dependencies": { "wordwrap": ">=0.0.2" }, @@ -8965,32 +11413,27 @@ }, "node_modules/duplexer3": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", - "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/eastasianwidth": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ee-first": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "license": "MIT" }, "node_modules/electron-to-chromium": { "version": "1.4.450", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.450.tgz", - "integrity": "sha512-BLG5HxSELlrMx7dJ2s+8SFlsCtJp37Zpk2VAxyC6CZtbc+9AJeZHfYHbrlSgdXp6saQ8StMqOTEDaBKgA7u1sw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/emittery": { "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -9000,44 +11443,38 @@ }, "node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/empty-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/empty-dir/-/empty-dir-1.0.0.tgz", - "integrity": "sha512-97qcDM6mUA1jAeX6cktw7akc5awIGA+VIkA5MygKOKA+c2Vseo/xwKN0JNJTUhZUtPwZboKVD2p1xu+sV/F4xA==", + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/enabled": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" + "license": "MIT" }, "node_modules/encodeurl": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "node_modules/enhanced-resolve": { "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -9048,9 +11485,8 @@ }, "node_modules/entities": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", - "integrity": "sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -9060,25 +11496,22 @@ }, "node_modules/error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/error-stack-parser": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "license": "MIT", "dependencies": { "stackframe": "^1.3.4" } }, "node_modules/es-abstract": { "version": "1.21.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.0.tgz", - "integrity": "sha512-GUGtW7eXQay0c+PRq0sGIKSdaBorfVqsCMhGHo4elP7YVqZu9nCZS4UkK4gv71gOWNMra/PaSKD3ao1oWExO0g==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "es-set-tostringtag": "^2.0.0", @@ -9122,9 +11555,8 @@ }, "node_modules/es-set-tostringtag": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3", "has": "^1.0.3", @@ -9136,18 +11568,16 @@ }, "node_modules/es-shim-unscopables": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", "dev": true, + "license": "MIT", "dependencies": { "has": "^1.0.3" } }, "node_modules/es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -9162,36 +11592,31 @@ }, "node_modules/es6-promise": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==" + "license": "MIT" }, "node_modules/escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-html": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "license": "MIT" }, "node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/escodegen": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -9211,9 +11636,8 @@ }, "node_modules/escodegen/node_modules/levn": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" @@ -9224,9 +11648,8 @@ }, "node_modules/escodegen/node_modules/optionator": { "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, + "license": "MIT", "dependencies": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", @@ -9241,8 +11664,6 @@ }, "node_modules/escodegen/node_modules/prelude-ls": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -9250,9 +11671,8 @@ }, "node_modules/escodegen/node_modules/type-check": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "~1.1.2" }, @@ -9262,9 +11682,8 @@ }, "node_modules/eslint": { "version": "8.41.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz", - "integrity": "sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", @@ -9318,9 +11737,8 @@ }, "node_modules/eslint-config-airbnb-base": { "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", "dev": true, + "license": "MIT", "dependencies": { "confusing-browser-globals": "^1.0.10", "object.assign": "^4.1.2", @@ -9337,18 +11755,16 @@ }, "node_modules/eslint-config-airbnb-base/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-config-airbnb-typescript": { "version": "17.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.0.0.tgz", - "integrity": "sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g==", "dev": true, + "license": "MIT", "dependencies": { "eslint-config-airbnb-base": "^15.0.0" }, @@ -9361,9 +11777,8 @@ }, "node_modules/eslint-config-prettier": { "version": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", - "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", "dev": true, + "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -9373,9 +11788,8 @@ }, "node_modules/eslint-import-resolver-node": { "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.11.0", @@ -9384,18 +11798,16 @@ }, "node_modules/eslint-import-resolver-node/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-module-utils": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -9410,18 +11822,16 @@ }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import": { "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", @@ -9448,18 +11858,16 @@ }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -9469,18 +11877,16 @@ }, "node_modules/eslint-plugin-import/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-plugin-json": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-3.1.0.tgz", - "integrity": "sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.21", "vscode-json-languageservice": "^4.1.6" @@ -9491,9 +11897,8 @@ }, "node_modules/eslint-plugin-sonarjs": { "version": "0.19.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.19.0.tgz", - "integrity": "sha512-6+s5oNk5TFtVlbRxqZN7FIGmjdPCYQKaTzFPmqieCmsU1kBYDzndTeQav0xtQNwZJWu5awWfTGe8Srq9xFOGnw==", "dev": true, + "license": "LGPL-3.0", "engines": { "node": ">=14" }, @@ -9503,9 +11908,8 @@ }, "node_modules/eslint-plugin-unicorn": { "version": "46.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-46.0.1.tgz", - "integrity": "sha512-setGhMTiLAddg1asdwjZ3hekIN5zLznNa5zll7pBPwFOka6greCKDQydfqy4fqyUhndi74wpDzClSQMEcmOaew==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.19.1", "@eslint-community/eslint-utils": "^4.1.2", @@ -9536,9 +11940,8 @@ }, "node_modules/eslint-plugin-unicorn/node_modules/jsesc": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -9548,9 +11951,8 @@ }, "node_modules/eslint-scope": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -9564,9 +11966,8 @@ }, "node_modules/eslint-visitor-keys": { "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -9576,9 +11977,8 @@ }, "node_modules/eslint/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -9592,9 +11992,8 @@ }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -9604,15 +12003,13 @@ }, "node_modules/eslint/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/espree": { "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", @@ -9627,9 +12024,8 @@ }, "node_modules/esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -9640,9 +12036,8 @@ }, "node_modules/esquery": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -9652,9 +12047,8 @@ }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -9664,41 +12058,36 @@ }, "node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/eventemitter3": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", "engines": { "node": ">=0.8.x" } }, "node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -9719,8 +12108,6 @@ }, "node_modules/exit": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -9728,9 +12115,8 @@ }, "node_modules/expand-tilde": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", "dev": true, + "license": "MIT", "dependencies": { "homedir-polyfill": "^1.0.1" }, @@ -9740,9 +12126,8 @@ }, "node_modules/expect": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.0.tgz", - "integrity": "sha512-AV+HaBtnDJ2YEUhPPo25HyUHBLaetM+y/Dq6pEC8VPQyt1dK+k8MfGkMy46djy2bddcqESc1kl4/K1uLWSfk9g==", "dev": true, + "license": "MIT", "dependencies": { "@jest/expect-utils": "^29.6.0", "@types/node": "*", @@ -9757,18 +12142,16 @@ }, "node_modules/expose-gc": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/expose-gc/-/expose-gc-1.0.0.tgz", - "integrity": "sha512-ecOHrdm+zyOCGIwX18/1RHkUWgxDqGGRiGhaNC+42jReTtudbm2ID/DMa/wpaHwqy5YQHPZvsDqRM2F2iZ0uVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/external-editor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, + "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -9780,14 +12163,12 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -9801,9 +12182,8 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -9813,15 +12193,13 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-json-stringify": { "version": "2.7.13", - "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-2.7.13.tgz", - "integrity": "sha512-ar+hQ4+OIurUGjSJD1anvYSDcUflywhKjfxnsW4TBTD7+u0tJufv6DKRWoQk3vI6YBOWMoz0TQtfbe7dxbQmvA==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.11.0", "deepmerge": "^4.2.2", @@ -9834,9 +12212,8 @@ }, "node_modules/fast-json-stringify/node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -9850,21 +12227,18 @@ }, "node_modules/fast-json-stringify/node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-printf": { "version": "1.6.9", - "resolved": "https://registry.npmjs.org/fast-printf/-/fast-printf-1.6.9.tgz", - "integrity": "sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "boolean": "^3.1.4" }, @@ -9874,14 +12248,11 @@ }, "node_modules/fast-safe-stringify": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-xml-parser": { "version": "4.2.5", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", - "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", "funding": [ { "type": "paypal", @@ -9892,6 +12263,7 @@ "url": "https://github.com/sponsors/NaturalIntelligence" } ], + "license": "MIT", "dependencies": { "strnum": "^1.0.5" }, @@ -9901,32 +12273,28 @@ }, "node_modules/fastq": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/fb-watchman": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" } }, "node_modules/fecha": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" + "license": "MIT" }, "node_modules/figures": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -9939,9 +12307,8 @@ }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -9951,14 +12318,12 @@ }, "node_modules/file-uri-to-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + "license": "MIT" }, "node_modules/filing-cabinet": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/filing-cabinet/-/filing-cabinet-3.3.1.tgz", - "integrity": "sha512-renEK4Hh6DUl9Vl22Y3cxBq1yh8oNvbAdXnhih0wVpmea+uyKjC9K4QeRjUaybIiIewdzfum+Fg15ZqJ/GyCaA==", "dev": true, + "license": "MIT", "dependencies": { "app-module-path": "^2.2.0", "commander": "^2.20.3", @@ -9983,15 +12348,13 @@ }, "node_modules/filing-cabinet/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/filing-cabinet/node_modules/typescript": { "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -10002,9 +12365,8 @@ }, "node_modules/fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -10014,9 +12376,8 @@ }, "node_modules/find-node-modules": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.3.tgz", - "integrity": "sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==", "dev": true, + "license": "MIT", "dependencies": { "findup-sync": "^4.0.0", "merge": "^2.1.1" @@ -10024,15 +12385,13 @@ }, "node_modules/find-root": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -10046,17 +12405,15 @@ }, "node_modules/findit2": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/findit2/-/findit2-2.2.3.tgz", - "integrity": "sha512-lg/Moejf4qXovVutL0Lz4IsaPoNYMuxt4PA0nGqFxnJ1CTTGGlEO2wKgoDpwknhvZ8k4Q2F+eesgkLbG2Mxfog==", + "license": "MIT", "engines": { "node": ">=0.8.22" } }, "node_modules/findup-sync": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", - "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", "dev": true, + "license": "MIT", "dependencies": { "detect-file": "^1.0.0", "is-glob": "^4.0.0", @@ -10069,17 +12426,15 @@ }, "node_modules/flat": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -10090,32 +12445,27 @@ }, "node_modules/flatted": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/flatten": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", - "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", - "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fn.name": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" + "license": "MIT" }, "node_modules/follow-redirects": { "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -10127,18 +12477,15 @@ }, "node_modules/for-each": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } }, "node_modules/foreground-child": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dev": true, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -10152,9 +12499,8 @@ }, "node_modules/foreground-child/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -10164,8 +12510,7 @@ }, "node_modules/form-data": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -10177,9 +12522,8 @@ }, "node_modules/formidable": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", - "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", "dev": true, + "license": "MIT", "dependencies": { "dezalgo": "^1.0.4", "hexoid": "^1.0.0", @@ -10192,17 +12536,15 @@ }, "node_modules/fresh": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/from2": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -10210,9 +12552,8 @@ }, "node_modules/fs-extra": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -10225,8 +12566,7 @@ }, "node_modules/fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -10236,8 +12576,7 @@ }, "node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10247,20 +12586,16 @@ }, "node_modules/fs-minipass/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -10271,14 +12606,12 @@ }, "node_modules/function-bind": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "license": "MIT" }, "node_modules/function.prototype.name": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -10294,17 +12627,15 @@ }, "node_modules/functions-have-names": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/gauge": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "license": "ISC", "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.2", @@ -10322,18 +12653,16 @@ }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-amd-module-type": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-4.1.0.tgz", - "integrity": "sha512-0e/eK6vTGCnSfQ6eYs3wtH05KotJYIP7ZIZEueP/KlA+0dIAEs8bYFvOd/U56w1vfjhJqBagUxVMyy9Tr/cViQ==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^4.0.0", "node-source-walk": "^5.0.1" @@ -10344,18 +12673,16 @@ }, "node_modules/get-amd-module-type/node_modules/ast-module-types": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-4.0.0.tgz", - "integrity": "sha512-Kd0o8r6CDazJGCRzs8Ivpn0xj19oNKrULhoJFzhGjRsLpekF2zyZs9Ukz+JvZhWD6smszfepakTFhAaYpsI12g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.0" } }, "node_modules/get-amd-module-type/node_modules/node-source-walk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-5.0.1.tgz", - "integrity": "sha512-fe5rFjPqkWQb4CLfsOf10fZAJvImfLpcVx+Nqbozaj6PBoAEjyEK1HZGCGvQNyre2HdL1HnZG6mxBf2UHSzr/w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -10365,17 +12692,15 @@ }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-intrinsic": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -10387,24 +12712,21 @@ }, "node_modules/get-own-enumerable-property-symbols": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/get-package-type": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/get-pkg-repo": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", "dev": true, + "license": "MIT", "dependencies": { "@hutson/parse-repository-url": "^3.0.0", "hosted-git-info": "^4.0.0", @@ -10420,9 +12742,8 @@ }, "node_modules/get-pkg-repo/node_modules/cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -10431,9 +12752,8 @@ }, "node_modules/get-pkg-repo/node_modules/through2": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -10441,9 +12761,8 @@ }, "node_modules/get-pkg-repo/node_modules/yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -10459,18 +12778,16 @@ }, "node_modules/get-stdin": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -10480,9 +12797,8 @@ }, "node_modules/get-symbol-description": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -10496,8 +12812,7 @@ }, "node_modules/get-value": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-3.0.1.tgz", - "integrity": "sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA==", + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -10507,9 +12822,8 @@ }, "node_modules/gh-got": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-7.1.0.tgz", - "integrity": "sha512-KeWkkhresa7sbpzQLYzITMgez5rMigUsijhmSAHcLDORIMUbdlkdoZyaN1wQvIjmUZnyb/wkAPaXb4MQKX0mdQ==", "dev": true, + "license": "MIT", "dependencies": { "got": "^8.0.0", "is-plain-obj": "^1.1.0" @@ -10520,9 +12834,8 @@ }, "node_modules/git-raw-commits": { "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", "dev": true, + "license": "MIT", "dependencies": { "dargs": "^7.0.0", "lodash": "^4.17.15", @@ -10539,9 +12852,8 @@ }, "node_modules/git-remote-origin-url": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", "dev": true, + "license": "MIT", "dependencies": { "gitconfiglocal": "^1.0.0", "pify": "^2.3.0" @@ -10552,18 +12864,16 @@ }, "node_modules/git-remote-origin-url/node_modules/pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/git-semver-tags": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", - "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", "dev": true, + "license": "MIT", "dependencies": { "meow": "^8.0.0", "semver": "^6.0.0" @@ -10577,27 +12887,24 @@ }, "node_modules/git-semver-tags/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/gitconfiglocal": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", "dev": true, + "license": "BSD", "dependencies": { "ini": "^1.3.2" } }, "node_modules/glob": { "version": "10.3.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", - "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.0.3", @@ -10617,9 +12924,8 @@ }, "node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -10629,18 +12935,16 @@ }, "node_modules/glob/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/glob/node_modules/minimatch": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -10653,9 +12957,8 @@ }, "node_modules/global-dirs": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", "dev": true, + "license": "MIT", "dependencies": { "ini": "^1.3.4" }, @@ -10665,9 +12968,8 @@ }, "node_modules/global-modules": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, + "license": "MIT", "dependencies": { "global-prefix": "^1.0.1", "is-windows": "^1.0.1", @@ -10679,9 +12981,8 @@ }, "node_modules/global-prefix": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", "dev": true, + "license": "MIT", "dependencies": { "expand-tilde": "^2.0.2", "homedir-polyfill": "^1.0.1", @@ -10695,9 +12996,8 @@ }, "node_modules/global-prefix/node_modules/which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -10707,9 +13007,8 @@ }, "node_modules/globals": { "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -10722,9 +13021,8 @@ }, "node_modules/globals/node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -10734,9 +13032,8 @@ }, "node_modules/globalthis": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3" }, @@ -10749,9 +13046,8 @@ }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -10769,9 +13065,8 @@ }, "node_modules/gonzales-pe": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.5" }, @@ -10784,9 +13079,7 @@ }, "node_modules/gopd": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -10796,9 +13089,8 @@ }, "node_modules/got": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", - "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", "dev": true, + "license": "MIT", "dependencies": { "@sindresorhus/is": "^0.7.0", "cacheable-request": "^2.1.1", @@ -10824,44 +13116,38 @@ }, "node_modules/got/node_modules/get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/got/node_modules/pify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/graceful-fs": { "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/growly": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/handlebars": { "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "license": "MIT", "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.0", @@ -10880,17 +13166,15 @@ }, "node_modules/hard-rejection": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/has": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.1" }, @@ -10900,27 +13184,24 @@ }, "node_modules/has-bigints": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/has-property-descriptors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -10930,9 +13211,8 @@ }, "node_modules/has-proto": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10942,17 +13222,15 @@ }, "node_modules/has-symbol-support-x": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/has-symbols": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10962,9 +13240,8 @@ }, "node_modules/has-to-string-tag-x": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, + "license": "MIT", "dependencies": { "has-symbol-support-x": "^1.4.1" }, @@ -10974,8 +13251,7 @@ }, "node_modules/has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -10988,13 +13264,11 @@ }, "node_modules/has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + "license": "ISC" }, "node_modules/has-value": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-2.0.2.tgz", - "integrity": "sha512-ybKOlcRsK2MqrM3Hmz/lQxXHZ6ejzSPzpNabKB45jb5qDgJvKPa3SdapTsTLwEb9WltgWpOmNax7i+DzNOk4TA==", + "license": "MIT", "dependencies": { "get-value": "^3.0.0", "has-values": "^2.0.1" @@ -11005,8 +13279,7 @@ }, "node_modules/has-values": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-2.0.1.tgz", - "integrity": "sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==", + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -11016,23 +13289,20 @@ }, "node_modules/heap": { "version": "0.2.7", - "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", - "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==" + "license": "MIT" }, "node_modules/hexoid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", - "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/homedir-polyfill": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "dev": true, + "license": "MIT", "dependencies": { "parse-passwd": "^1.0.0" }, @@ -11042,9 +13312,8 @@ }, "node_modules/hosted-git-info": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -11054,9 +13323,8 @@ }, "node_modules/hosted-git-info/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -11066,20 +13334,17 @@ }, "node_modules/hosted-git-info/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/html-escaper": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/http-assert": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", - "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", + "license": "MIT", "dependencies": { "deep-equal": "~1.0.1", "http-errors": "~1.8.0" @@ -11090,19 +13355,16 @@ }, "node_modules/http-assert/node_modules/deep-equal": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==" + "license": "MIT" }, "node_modules/http-cache-semantics": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/http-errors": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", @@ -11116,16 +13378,14 @@ }, "node_modules/http-errors/node_modules/depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/http-graceful-shutdown": { "version": "3.1.13", - "resolved": "https://registry.npmjs.org/http-graceful-shutdown/-/http-graceful-shutdown-3.1.13.tgz", - "integrity": "sha512-Ci5LRufQ8AtrQ1U26AevS8QoMXDOhnAHCJI3eZu1com7mZGHxREmw3dNj85ftpQokQCvak8nI2pnFS8zyM1M+Q==", + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -11135,9 +13395,8 @@ }, "node_modules/http-terminator": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/http-terminator/-/http-terminator-3.2.0.tgz", - "integrity": "sha512-JLjck1EzPaWjsmIf8bziM3p9fgR1Y3JoUKAkyYEbZmFrIvJM6I8vVJfBGWlEtV9IWOvzNnaTtjuwZeBY2kwB4g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "delay": "^5.0.0", "p-wait-for": "^3.2.0", @@ -11150,9 +13409,8 @@ }, "node_modules/http-terminator/node_modules/type-fest": { "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" }, @@ -11162,8 +13420,7 @@ }, "node_modules/https-proxy-agent": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -11174,27 +13431,24 @@ }, "node_modules/human-format": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/human-format/-/human-format-1.0.0.tgz", - "integrity": "sha512-ZfSxF/LHVDb5Un52AguYkZArbiuMbJQwpOpZ0MBuj3pYDmLt7pkCEws9L8xKbgnaKrfMgGd6qc+PHBbKO97AaA==", "dev": true, + "license": "ISC", "engines": { "node": ">=4" } }, "node_modules/human-signals": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/husky": { "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", "dev": true, + "license": "MIT", "bin": { "husky": "lib/bin.js" }, @@ -11207,8 +13461,7 @@ }, "node_modules/iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -11218,8 +13471,6 @@ }, "node_modules/ieee754": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "funding": [ { "type": "github", @@ -11233,22 +13484,21 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -11262,18 +13512,16 @@ }, "node_modules/import-fresh/node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/import-local": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, + "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -11290,40 +13538,35 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/indexes-of": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/inflation": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", - "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==", + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -11331,20 +13574,17 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/inquirer": { "version": "8.2.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", - "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -11368,9 +13608,8 @@ }, "node_modules/internal-slot": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3", "has": "^1.0.3", @@ -11382,9 +13621,8 @@ }, "node_modules/into-stream": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", - "integrity": "sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==", "dev": true, + "license": "MIT", "dependencies": { "from2": "^2.1.1", "p-is-promise": "^1.1.0" @@ -11395,8 +13633,7 @@ }, "node_modules/ioredis": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz", - "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", + "license": "MIT", "dependencies": { "@ioredis/commands": "^1.1.1", "cluster-key-slot": "^1.1.0", @@ -11418,25 +13655,36 @@ }, "node_modules/ip-regex": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/is/-/is-3.3.0.tgz", - "integrity": "sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==", + "license": "MIT", "engines": { "node": "*" } }, + "node_modules/is-arguments": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-array-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", - "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -11448,14 +13696,12 @@ }, "node_modules/is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "license": "MIT" }, "node_modules/is-bigint": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, + "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -11465,9 +13711,8 @@ }, "node_modules/is-boolean-object": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -11481,14 +13726,12 @@ }, "node_modules/is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "license": "MIT" }, "node_modules/is-builtin-module": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", "dev": true, + "license": "MIT", "dependencies": { "builtin-modules": "^3.3.0" }, @@ -11501,9 +13744,7 @@ }, "node_modules/is-callable": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11513,8 +13754,7 @@ }, "node_modules/is-core-module": { "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "license": "MIT", "dependencies": { "has": "^1.0.3" }, @@ -11524,9 +13764,8 @@ }, "node_modules/is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -11539,9 +13778,8 @@ }, "node_modules/is-docker": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -11554,18 +13792,16 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-finite": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" }, @@ -11575,9 +13811,8 @@ }, "node_modules/is-fullwidth-code-point": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -11587,17 +13822,15 @@ }, "node_modules/is-generator-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/is-generator-function": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -11610,9 +13843,8 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -11622,17 +13854,15 @@ }, "node_modules/is-interactive": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-ip": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", + "license": "MIT", "dependencies": { "ip-regex": "^4.0.0" }, @@ -11642,9 +13872,8 @@ }, "node_modules/is-negative-zero": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11654,18 +13883,16 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -11678,35 +13905,31 @@ }, "node_modules/is-object": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-path-inside": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-plain-obj": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -11716,17 +13939,15 @@ }, "node_modules/is-primitive": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-3.0.1.tgz", - "integrity": "sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -11740,33 +13961,29 @@ }, "node_modules/is-regexp": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-relative-path": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-relative-path/-/is-relative-path-1.0.2.tgz", - "integrity": "sha512-i1h+y50g+0hRbBD+dbnInl3JlJ702aar58snAeX+MxBAPvzXGej7sYoPMhlnykabt0ZzCJNBEyzMlekuQZN7fA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-retry-allowed": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -11776,8 +13993,7 @@ }, "node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -11787,9 +14003,8 @@ }, "node_modules/is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -11802,9 +14017,8 @@ }, "node_modules/is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -11817,9 +14031,8 @@ }, "node_modules/is-text-path": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", "dev": true, + "license": "MIT", "dependencies": { "text-extensions": "^1.0.0" }, @@ -11829,9 +14042,7 @@ }, "node_modules/is-typed-array": { "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -11848,9 +14059,8 @@ }, "node_modules/is-unicode-supported": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -11860,15 +14070,13 @@ }, "node_modules/is-url": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-url-superb": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz", - "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -11878,15 +14086,13 @@ }, "node_modules/is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -11896,18 +14102,16 @@ }, "node_modules/is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-wsl": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -11917,52 +14121,44 @@ }, "node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "license": "MIT" }, "node_modules/iserror": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/iserror/-/iserror-0.0.2.tgz", - "integrity": "sha512-oKGGrFVaWwETimP3SiWwjDeY27ovZoyZPHtxblC4hCq9fXxed/jasx+ATWFFjCVSRZng8VTMsN1nDnGo6zMBSw==" + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/isolated-vm": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/isolated-vm/-/isolated-vm-4.5.0.tgz", - "integrity": "sha512-Kse0m5t+B9wZQVeTDqzPoX1SIFNTNfyaUxhnCuFgpXL1+5GYJ9GUAN3mpD+ainixGmUXgeYaVBX+QPDjEBBu0w==", "hasInstallScript": true, + "license": "ISC", "engines": { "node": ">=10.4.0" } }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-instrument": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -11976,18 +14172,16 @@ }, "node_modules/istanbul-lib-instrument/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/istanbul-lib-report": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", @@ -11999,9 +14193,8 @@ }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -12013,9 +14206,8 @@ }, "node_modules/istanbul-reports": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -12026,9 +14218,8 @@ }, "node_modules/isurl": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, + "license": "MIT", "dependencies": { "has-to-string-tag-x": "^1.2.0", "is-object": "^1.0.1" @@ -12039,9 +14230,8 @@ }, "node_modules/jackspeak": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.2.tgz", - "integrity": "sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -12057,9 +14247,8 @@ }, "node_modules/jest": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.6.0.tgz", - "integrity": "sha512-do1J9gGrQ68E4UfMz/4OM71p9qCqQxu32N/9ZfeYFSSlx0uUOuxeyZxtJZNaUTW12ZA11ERhmBjBhy1Ho96R4g==", "dev": true, + "license": "MIT", "dependencies": { "@jest/core": "^29.6.0", "@jest/types": "^29.6.0", @@ -12083,9 +14272,8 @@ }, "node_modules/jest-changed-files": { "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", - "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^5.0.0", "p-limit": "^3.1.0" @@ -12096,9 +14284,8 @@ }, "node_modules/jest-circus": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.0.tgz", - "integrity": "sha512-LtG45qEKhse2Ws5zNR4DnZATReLGQXzBZGZnJ0DU37p6d4wDhu41vvczCQ3Ou+llR6CRYDBshsubV7H4jZvIkw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.6.0", "@jest/expect": "^29.6.0", @@ -12127,9 +14314,8 @@ }, "node_modules/jest-cli": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.0.tgz", - "integrity": "sha512-WvZIaanK/abkw6s01924DQ2QLwM5Q4Y4iPbSDb9Zg6smyXGqqcPQ7ft9X8D7B0jICz312eSzM6UlQNxuZJBrMw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/core": "^29.6.0", "@jest/test-result": "^29.6.0", @@ -12161,9 +14347,8 @@ }, "node_modules/jest-config": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.6.0.tgz", - "integrity": "sha512-fKA4jM91PDqWVkMpb1FVKxIuhg3hC6hgaen57cr1rRZkR96dCatvJZsk3ik7/GNu9ERj9wgAspOmyvkFoGsZhA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^29.6.0", @@ -12206,9 +14391,8 @@ }, "node_modules/jest-config/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -12226,9 +14410,8 @@ }, "node_modules/jest-diff": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.0.tgz", - "integrity": "sha512-ZRm7cd2m9YyZ0N3iMyuo1iUiprxQ/MFpYWXzEEj7hjzL3WnDffKW8192XBDcrAI8j7hnrM1wed3bL/oEnYF/8w==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.4.3", @@ -12241,9 +14424,8 @@ }, "node_modules/jest-docblock": { "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", - "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", "dev": true, + "license": "MIT", "dependencies": { "detect-newline": "^3.0.0" }, @@ -12253,9 +14435,8 @@ }, "node_modules/jest-each": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.6.0.tgz", - "integrity": "sha512-d0Jem4RBAlFUyV6JSXPSHVUpNo5RleSj+iJEy1G3+ZCrzHDjWs/1jUfrbnJKHdJdAx5BCEce/Ju379WqHhQk4w==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.0", "chalk": "^4.0.0", @@ -12269,9 +14450,8 @@ }, "node_modules/jest-environment-node": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.0.tgz", - "integrity": "sha512-BOf5Q2/nFCdBOnyBM5c5/6DbdQYgc+0gyUQ8l8qhUAB8O7pM+4QJXIXJsRZJaxd5SHV6y5VArTVhOfogoqcP8Q==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.6.0", "@jest/fake-timers": "^29.6.0", @@ -12286,18 +14466,16 @@ }, "node_modules/jest-get-type": { "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", - "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.0.tgz", - "integrity": "sha512-dY1DKufptj7hcJSuhpqlYPGcnN3XjlOy/g0jinpRTMsbb40ivZHiuIPzeminOZkrek8C+oDxC54ILGO3vMLojg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.0", "@types/graceful-fs": "^4.1.3", @@ -12320,9 +14498,8 @@ }, "node_modules/jest-leak-detector": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.6.0.tgz", - "integrity": "sha512-JdV6EZOPxHR1gd6ccxjNowuROkT2jtGU5G/g58RcJX1xe5mrtLj0g6/ZkyMoXF4cs+tTkHMFX6pcIrB1QPQwCw==", "dev": true, + "license": "MIT", "dependencies": { "jest-get-type": "^29.4.3", "pretty-format": "^29.6.0" @@ -12333,9 +14510,8 @@ }, "node_modules/jest-matcher-utils": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.0.tgz", - "integrity": "sha512-oSlqfGN+sbkB2Q5um/zL7z80w84FEAcLKzXBZIPyRk2F2Srg1ubhrHVKW68JCvb2+xKzAeGw35b+6gciS24PHw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.6.0", @@ -12348,9 +14524,8 @@ }, "node_modules/jest-message-util": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.6.0.tgz", - "integrity": "sha512-mkCp56cETbpoNtsaeWVy6SKzk228mMi9FPHSObaRIhbR2Ujw9PqjW/yqVHD2tN1bHbC8ol6h3UEo7dOPmIYwIA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.0", @@ -12368,9 +14543,8 @@ }, "node_modules/jest-mock": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.6.0.tgz", - "integrity": "sha512-2Pb7R2w24Q0aUVn+2/vdRDL6CqGqpheDZy7zrXav8FotOpSGw/4bS2hyVoKHMEx4xzOn6EyCAGwc5czWxXeN7w==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.0", "@types/node": "*", @@ -12382,9 +14556,8 @@ }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -12399,18 +14572,16 @@ }, "node_modules/jest-regex-util": { "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", - "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.0.tgz", - "integrity": "sha512-+hrpY4LzAONoZA/rvB6rnZLkOSA6UgJLpdCWrOZNSgGxWMumzRLu7dLUSCabAHzoHIDQ9qXfr3th1zYNJ0E8sQ==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", @@ -12428,9 +14599,8 @@ }, "node_modules/jest-resolve-dependencies": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.0.tgz", - "integrity": "sha512-eOfPog9K3hJdJk/3i6O6bQhXS+3uXhMDkLJGX+xmMPp7T1d/zdcFofbDnHgNoEkhD/mSimC5IagLEP7lpLLu/A==", "dev": true, + "license": "MIT", "dependencies": { "jest-regex-util": "^29.4.3", "jest-snapshot": "^29.6.0" @@ -12441,9 +14611,8 @@ }, "node_modules/jest-runner": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.0.tgz", - "integrity": "sha512-4fZuGV2lOxS2BiqEG9/AI8E6O+jo+QZjMVcgi1x5E6aDql0Gd/EFIbUQ0pSS09y8cya1vJB/qC2xsE468jqtSg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^29.6.0", "@jest/environment": "^29.6.0", @@ -12473,9 +14642,8 @@ }, "node_modules/jest-runtime": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.0.tgz", - "integrity": "sha512-5FavYo3EeXLHIvnJf+r7Cj0buePAbe4mzRB9oeVxDS0uVmouSBjWeGgyRjZkw7ArxOoZI8gO6f8SGMJ2HFlwwg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.6.0", "@jest/fake-timers": "^29.6.0", @@ -12506,9 +14674,8 @@ }, "node_modules/jest-runtime/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -12526,9 +14693,8 @@ }, "node_modules/jest-snapshot": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.0.tgz", - "integrity": "sha512-H3kUE9NwWDEDoutcOSS921IqdlkdjgnMdj1oMyxAHNflscdLc9dB8OudZHV6kj4OHJxbMxL8CdI5DlwYrs4wQg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", @@ -12558,9 +14724,8 @@ }, "node_modules/jest-sonar": { "version": "0.2.16", - "resolved": "https://registry.npmjs.org/jest-sonar/-/jest-sonar-0.2.16.tgz", - "integrity": "sha512-ES6Z9BbIVDELtbz+/b6pv41B2qOfp38cQpoCLqei21FtlkG/GzhyQ0M3egEIM+erpJOkpRKM8Tc8/YQtHdiTXA==", "dev": true, + "license": "MIT", "dependencies": { "entities": "4.3.0", "strip-ansi": "6.0.1" @@ -12568,9 +14733,8 @@ }, "node_modules/jest-util": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.0.tgz", - "integrity": "sha512-S0USx9YwcvEm4pQ5suisVm/RVxBmi0GFR7ocJhIeaCuW5AXnAnffXbaVKvIFodyZNOc9ygzVtTxmBf40HsHXaA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.0", "@types/node": "*", @@ -12585,9 +14749,8 @@ }, "node_modules/jest-validate": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.0.tgz", - "integrity": "sha512-MLTrAJsb1+W7svbeZ+A7pAnyXMaQrjvPDKCy7OlfsfB6TMVc69v7WjUWfiR6r3snULFWZASiKgvNVDuATta1dg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.0", "camelcase": "^6.2.0", @@ -12602,9 +14765,8 @@ }, "node_modules/jest-validate/node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -12614,9 +14776,8 @@ }, "node_modules/jest-watcher": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.0.tgz", - "integrity": "sha512-LdsQqFNX60mRdRRe+zsELnYRH1yX6KL+ukbh+u6WSQeTheZZe1TlLJNKRQiZ7e0VbvMkywmMWL/KV35noOJCcw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/test-result": "^29.6.0", "@jest/types": "^29.6.0", @@ -12633,18 +14794,16 @@ }, "node_modules/jest-when": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/jest-when/-/jest-when-3.5.2.tgz", - "integrity": "sha512-4rDvnhaWh08RcPsoEVXgxRnUIE9wVIbZtGqZ5x2Wm9Ziz9aQs89PipQFmOK0ycbEhVAgiV3MUeTXp3Ar4s2FcQ==", "dev": true, + "license": "MIT", "peerDependencies": { "jest": ">= 25" } }, "node_modules/jest-worker": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.0.tgz", - "integrity": "sha512-oiQHH1SnKmZIwwPnpOrXTq4kHBk3lKGY/07DpnH0sAu+x7J8rXlbLDROZsU6vy9GwB0hPiZeZpu6YlJ48QoKcA==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "jest-util": "^29.6.0", @@ -12657,9 +14816,8 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -12670,10 +14828,16 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/jmespath": { + "version": "0.16.0", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/joi": { "version": "17.9.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz", - "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -12684,18 +14848,15 @@ }, "node_modules/js-sha1": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/js-sha1/-/js-sha1-0.6.0.tgz", - "integrity": "sha512-01gwBFreYydzmU9BmZxpVk6svJJHrVxEN3IOiGl6VO93bVKYETJ0sIth6DASI6mIFdt7NmfX9UiByRzsYHGU9w==" + "license": "MIT" }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -12705,9 +14866,8 @@ }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -12717,14 +14877,12 @@ }, "node_modules/json-buffer": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-diff": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/json-diff/-/json-diff-1.0.3.tgz", - "integrity": "sha512-W0yk/xzjz7bag9v9eS4qthvPG4O07uxNeXwirhvcOqmX4w8HLtB/Pw76o5Z7Pblwvf4vpCi4+iHOlHDnmav/rA==", + "license": "MIT", "dependencies": { "@ewoudenberg/difflib": "0.1.0", "colors": "^1.4.0", @@ -12739,45 +14897,38 @@ }, "node_modules/json-parse-better-errors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "license": "MIT" }, "node_modules/json-size": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-size/-/json-size-1.0.0.tgz", - "integrity": "sha512-sh8Ff4sNVI3FU1LjFXiNpcG9Er9bsn8WbeR79mGj4Ljd+/NBmxqYCV1sPzndUTGsWXa3LVUx3aLlZxpq1DzCBA==", + "license": "MIT", "dependencies": { "utf8-length": "0.0.1" } }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -12787,23 +14938,20 @@ }, "node_modules/jsonata": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/jsonata/-/jsonata-2.0.3.tgz", - "integrity": "sha512-Up2H81MUtjqI/dWwWX7p4+bUMfMrQJVMN/jW6clFMTiYP528fBOBNtRu944QhKTs3+IsVWbgMeUTny5fw2VMUA==", + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/jsonc-parser": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -12813,18 +14961,16 @@ }, "node_modules/jsonparse": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, "engines": [ "node >= 0.2.0" - ] + ], + "license": "MIT" }, "node_modules/JSONStream": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, + "license": "(MIT OR Apache-2.0)", "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -12838,16 +14984,14 @@ }, "node_modules/jsontoxml": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/jsontoxml/-/jsontoxml-1.0.1.tgz", - "integrity": "sha512-dtKGq0K8EWQBRqcAaePSgKR4Hyjfsz/LkurHSV3Cxk4H+h2fWDeaN2jzABz+ZmOJylgXS7FGeWmbZ6jgYUMdJQ==", + "license": "MIT", "engines": { "node": ">=0.2.0" } }, "node_modules/keygrip": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", - "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "license": "MIT", "dependencies": { "tsscmp": "1.0.6" }, @@ -12857,34 +15001,30 @@ }, "node_modules/keyv": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", - "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.0" } }, "node_modules/kind-of": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/kleur": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/koa": { "version": "2.14.1", - "resolved": "https://registry.npmjs.org/koa/-/koa-2.14.1.tgz", - "integrity": "sha512-USJFyZgi2l0wDgqkfD27gL4YGno7TfUkcmOe6UOLFOVuN+J7FwnNu4Dydl4CUQzraM1lBAiGed0M9OVJoT0Kqw==", + "license": "MIT", "dependencies": { "accepts": "^1.3.5", "cache-content-type": "^1.0.0", @@ -12916,8 +15056,7 @@ }, "node_modules/koa-bodyparser": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.4.0.tgz", - "integrity": "sha512-AXPY7wwKZUmbgb8VkTEUFoRNOlx6aWRJwEnQD+zfNf33/7KSAkN4Oo9BqlIk80D+5TvuqlhpQT5dPVcyxl5Zsw==", + "license": "MIT", "dependencies": { "co-body": "^6.0.0", "copy-to": "^2.0.1" @@ -12928,13 +15067,11 @@ }, "node_modules/koa-compose": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", - "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==" + "license": "MIT" }, "node_modules/koa-convert": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", - "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", + "license": "MIT", "dependencies": { "co": "^4.6.0", "koa-compose": "^4.1.0" @@ -12945,8 +15082,7 @@ }, "node_modules/koa2-swagger-ui": { "version": "5.8.0", - "resolved": "https://registry.npmjs.org/koa2-swagger-ui/-/koa2-swagger-ui-5.8.0.tgz", - "integrity": "sha512-uVHh2hajX5Q/6+BkRrK0Rrf84Duc6dB73WIU1mb3cLfellMR1klAIYEX1p1bOsNjB97uqCwyn/cz3Sfi1/IxcQ==", + "license": "MIT", "dependencies": { "@types/koa": "^2.13.6", "handlebars": "^4.7.7", @@ -12956,32 +15092,28 @@ }, "node_modules/kuler": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" + "license": "MIT" }, "node_modules/lazy-ass": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", "dev": true, + "license": "MIT", "engines": { "node": "> 0.8" } }, "node_modules/leven": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -12992,23 +15124,20 @@ }, "node_modules/lilconfig": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/lines-and-columns": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "license": "MIT" }, "node_modules/lint-staged": { "version": "13.2.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.2.tgz", - "integrity": "sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "5.2.0", "cli-truncate": "^3.1.0", @@ -13036,9 +15165,8 @@ }, "node_modules/lint-staged/node_modules/chalk": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -13048,9 +15176,8 @@ }, "node_modules/lint-staged/node_modules/execa": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", @@ -13071,18 +15198,16 @@ }, "node_modules/lint-staged/node_modules/human-signals": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=14.18.0" } }, "node_modules/lint-staged/node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -13092,9 +15217,8 @@ }, "node_modules/lint-staged/node_modules/mimic-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -13104,9 +15228,8 @@ }, "node_modules/lint-staged/node_modules/npm-run-path": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -13119,18 +15242,16 @@ }, "node_modules/lint-staged/node_modules/object-inspect": { "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/lint-staged/node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -13143,9 +15264,8 @@ }, "node_modules/lint-staged/node_modules/path-key": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -13155,9 +15275,8 @@ }, "node_modules/lint-staged/node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -13167,9 +15286,8 @@ }, "node_modules/listr2": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.8.tgz", - "integrity": "sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==", "dev": true, + "license": "MIT", "dependencies": { "cli-truncate": "^2.1.0", "colorette": "^2.0.19", @@ -13194,9 +15312,8 @@ }, "node_modules/listr2/node_modules/cli-truncate": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "dev": true, + "license": "MIT", "dependencies": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" @@ -13210,18 +15327,16 @@ }, "node_modules/listr2/node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/listr2/node_modules/slice-ansi": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -13233,9 +15348,8 @@ }, "node_modules/load-json-file": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "parse-json": "^4.0.0", @@ -13248,9 +15362,8 @@ }, "node_modules/load-json-file/node_modules/parse-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, + "license": "MIT", "dependencies": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -13261,27 +15374,24 @@ }, "node_modules/load-json-file/node_modules/pify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/load-json-file/node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -13294,96 +15404,80 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "license": "MIT" }, "node_modules/lodash._reinterpolate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.camelcase": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.defaults": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" + "license": "MIT" }, "node_modules/lodash.isarguments": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" + "license": "MIT" }, "node_modules/lodash.isfunction": { "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", - "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.ismatch": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.isplainobject": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.kebabcase": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.map": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.memoize": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.mergewith": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", - "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.snakecase": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.startcase": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.template": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", "dev": true, + "license": "MIT", "dependencies": { "lodash._reinterpolate": "^3.0.0", "lodash.templatesettings": "^4.0.0" @@ -13391,29 +15485,25 @@ }, "node_modules/lodash.templatesettings": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", "dev": true, + "license": "MIT", "dependencies": { "lodash._reinterpolate": "^3.0.0" } }, "node_modules/lodash.uniq": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + "license": "MIT" }, "node_modules/lodash.upperfirst": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", - "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/log-symbols": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -13427,9 +15517,8 @@ }, "node_modules/log-update": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.3.0", "cli-cursor": "^3.1.0", @@ -13445,18 +15534,16 @@ }, "node_modules/log-update/node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/log-update/node_modules/slice-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -13471,9 +15558,8 @@ }, "node_modules/log-update/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -13485,8 +15571,7 @@ }, "node_modules/logform": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", - "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", + "license": "MIT", "dependencies": { "@colors/colors": "1.5.0", "fecha": "^4.2.0", @@ -13497,23 +15582,20 @@ }, "node_modules/long": { "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + "license": "Apache-2.0" }, "node_modules/longest": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", - "integrity": "sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/loud-rejection": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", "dev": true, + "license": "MIT", "dependencies": { "currently-unhandled": "^0.4.1", "signal-exit": "^3.0.0" @@ -13524,27 +15606,24 @@ }, "node_modules/lowercase-keys": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, "node_modules/madge": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/madge/-/madge-6.1.0.tgz", - "integrity": "sha512-irWhT5RpFOc6lkzGHKLihonCVgM0YtfNUh4IrFeW3EqHpnt/JHUG3z26j8PeJEktCGB4tmGOOOJi1Rl/ACWucQ==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.1", "commander": "^7.2.0", @@ -13590,17 +15669,15 @@ }, "node_modules/madge/node_modules/commander": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/make-dir": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -13613,32 +15690,28 @@ }, "node_modules/make-dir/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/make-error": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/makeerror": { "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "tmpl": "1.0.5" } }, "node_modules/map-obj": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -13648,13 +15721,11 @@ }, "node_modules/match-json": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/match-json/-/match-json-1.3.5.tgz", - "integrity": "sha512-V5Jw1rIdjt37vfQRqvKtXW4dKbSTpvgwyEPKOBikY90xQ5Wr5yOmfpjcTm12d0Kqq+TfMqlXJkETf4yOF9JhUw==" + "license": "MIT" }, "node_modules/md5": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "license": "BSD-3-Clause", "dependencies": { "charenc": "0.0.2", "crypt": "0.0.2", @@ -13663,17 +15734,15 @@ }, "node_modules/media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/meow": { "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.2.2", @@ -13696,9 +15765,8 @@ }, "node_modules/meow/node_modules/type-fest": { "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -13708,38 +15776,33 @@ }, "node_modules/merge": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", - "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/methods": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/micromatch": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -13750,9 +15813,8 @@ }, "node_modules/mime": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -13762,16 +15824,14 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -13781,35 +15841,31 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/mimic-response": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/min-indent": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -13819,14 +15875,12 @@ }, "node_modules/minimist": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "license": "MIT" }, "node_modules/minimist-options": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, + "license": "MIT", "dependencies": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0", @@ -13838,17 +15892,15 @@ }, "node_modules/minipass": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz", - "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/minizlib": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -13859,8 +15911,7 @@ }, "node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -13870,13 +15921,11 @@ }, "node_modules/minizlib/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -13886,9 +15935,8 @@ }, "node_modules/mocked-env": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", - "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", "dev": true, + "license": "MIT", "dependencies": { "check-more-types": "2.24.0", "debug": "4.3.2", @@ -13901,9 +15949,8 @@ }, "node_modules/mocked-env/node_modules/debug": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -13918,8 +15965,7 @@ }, "node_modules/modclean": { "version": "3.0.0-beta.1", - "resolved": "https://registry.npmjs.org/modclean/-/modclean-3.0.0-beta.1.tgz", - "integrity": "sha512-NyJpuqXMUI190sZePU+dBcwlGaqhfFC+UL5WyNSxmNLOHATg9cVSgRpbY+mUbwUj7t5trb4vYscgXArKevYsdA==", + "license": "MIT", "dependencies": { "await-handler": "^1.1.0", "chalk": "^2.4.1", @@ -13947,16 +15993,14 @@ }, "node_modules/modclean/node_modules/ansi-regex": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/modclean/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -13966,8 +16010,7 @@ }, "node_modules/modclean/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -13979,8 +16022,7 @@ }, "node_modules/modclean/node_modules/cli-cursor": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "license": "MIT", "dependencies": { "restore-cursor": "^2.0.0" }, @@ -13990,34 +16032,29 @@ }, "node_modules/modclean/node_modules/cli-spinners": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", - "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/modclean/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/modclean/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "license": "MIT" }, "node_modules/modclean/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "license": "MIT" }, "node_modules/modclean/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -14035,16 +16072,14 @@ }, "node_modules/modclean/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/modclean/node_modules/log-symbols": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "license": "MIT", "dependencies": { "chalk": "^2.0.1" }, @@ -14054,16 +16089,14 @@ }, "node_modules/modclean/node_modules/mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/modclean/node_modules/onetime": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "license": "MIT", "dependencies": { "mimic-fn": "^1.0.0" }, @@ -14073,8 +16106,7 @@ }, "node_modules/modclean/node_modules/ora": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-2.1.0.tgz", - "integrity": "sha512-hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA==", + "license": "MIT", "dependencies": { "chalk": "^2.3.1", "cli-cursor": "^2.1.0", @@ -14089,8 +16121,7 @@ }, "node_modules/modclean/node_modules/restore-cursor": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "license": "MIT", "dependencies": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" @@ -14101,8 +16132,7 @@ }, "node_modules/modclean/node_modules/rimraf": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -14112,8 +16142,7 @@ }, "node_modules/modclean/node_modules/strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "license": "MIT", "dependencies": { "ansi-regex": "^3.0.0" }, @@ -14123,8 +16152,7 @@ }, "node_modules/modclean/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -14134,18 +16162,16 @@ }, "node_modules/modify-values": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/module-definition": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-3.4.0.tgz", - "integrity": "sha512-XxJ88R1v458pifaSkPNLUTdSPNVGMP2SXVncVmApGO+gAfrLANiYe6JofymCzVceGOMwQE2xogxBSc8uB7XegA==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^3.0.0", "node-source-walk": "^4.0.0" @@ -14159,9 +16185,8 @@ }, "node_modules/module-lookup-amd": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz", - "integrity": "sha512-w9mCNlj0S8qviuHzpakaLVc+/7q50jl9a/kmJ/n8bmXQZgDPkQHnPBb8MUOYh3WpAYkXuNc2c+khsozhIp/amQ==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^2.8.1", "debug": "^4.1.0", @@ -14178,15 +16203,13 @@ }, "node_modules/module-lookup-amd/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/module-lookup-amd/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -14204,16 +16227,14 @@ }, "node_modules/moment": { "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/moment-timezone": { "version": "0.5.43", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz", - "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==", + "license": "MIT", "dependencies": { "moment": "^2.29.4" }, @@ -14223,25 +16244,21 @@ }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "license": "MIT" }, "node_modules/mute-stream": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/nan": { "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==" + "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", "dev": true, + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -14251,33 +16268,28 @@ }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/natural-compare-lite": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/negotiator": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/neo-async": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "license": "MIT" }, "node_modules/node-cache": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz", - "integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==", + "license": "MIT", "dependencies": { "clone": "2.x" }, @@ -14286,9 +16298,8 @@ } }, "node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "version": "2.7.0", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -14306,18 +16317,15 @@ }, "node_modules/node-fetch/node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "license": "MIT" }, "node_modules/node-fetch/node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "license": "BSD-2-Clause" }, "node_modules/node-fetch/node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -14325,8 +16333,7 @@ }, "node_modules/node-gyp-build": { "version": "3.9.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.9.0.tgz", - "integrity": "sha512-zLcTg6P4AbcHPq465ZMFNXx7XpKKJh+7kkN699NiQWisR2uWYOWNWqRHAmbnmKiL4e9aLSlmy5U7rEMUXV59+A==", + "license": "MIT", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -14335,15 +16342,13 @@ }, "node_modules/node-int64": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-notifier": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-10.0.1.tgz", - "integrity": "sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==", "dev": true, + "license": "MIT", "dependencies": { "growly": "^1.3.0", "is-wsl": "^2.2.0", @@ -14355,24 +16360,21 @@ }, "node_modules/node-notifier/node_modules/uuid": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/node-releases": { "version": "2.0.12", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", - "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-source-walk": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.3.0.tgz", - "integrity": "sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.0.0" }, @@ -14382,8 +16384,7 @@ }, "node_modules/nopt": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "license": "ISC", "dependencies": { "abbrev": "1" }, @@ -14396,9 +16397,8 @@ }, "node_modules/normalize-package-data": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^4.0.1", "is-core-module": "^2.5.0", @@ -14411,18 +16411,16 @@ }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-url": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "dev": true, + "license": "MIT", "dependencies": { "prepend-http": "^2.0.0", "query-string": "^5.0.1", @@ -14434,9 +16432,8 @@ }, "node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -14446,8 +16443,7 @@ }, "node_modules/npmlog": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "license": "ISC", "dependencies": { "are-we-there-yet": "^2.0.0", "console-control-strings": "^1.1.0", @@ -14457,63 +16453,54 @@ }, "node_modules/number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/oauth-1.0a": { "version": "2.2.6", - "resolved": "https://registry.npmjs.org/oauth-1.0a/-/oauth-1.0a-2.2.6.tgz", - "integrity": "sha512-6bkxv3N4Gu5lty4viIcIAnq5GbxECviMBeKR3WX/q87SPQ8E8aursPZUtsXDnxCs787af09WPRBLqYrf/lwoYQ==" + "license": "MIT" }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-hash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/object-inspect": { "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object-sizeof": { "version": "2.6.3", - "resolved": "https://registry.npmjs.org/object-sizeof/-/object-sizeof-2.6.3.tgz", - "integrity": "sha512-GNkVRrLh11Qr5BGr73dwwPE200/78QG2rbx30cnXPnMvt7UuttH4Dup5t+LtcQhARkg8Hbr0c8Kiz52+CFxYmw==", + "license": "MIT", "dependencies": { "buffer": "^6.0.3" } }, "node_modules/object-sizeof/node_modules/buffer": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { "type": "github", @@ -14528,6 +16515,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -14535,9 +16523,8 @@ }, "node_modules/object.assign": { "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -14553,9 +16540,8 @@ }, "node_modules/object.entries": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -14567,9 +16553,8 @@ }, "node_modules/object.values": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -14584,8 +16569,7 @@ }, "node_modules/on-finished": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -14595,25 +16579,22 @@ }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/one-time": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "license": "MIT", "dependencies": { "fn.name": "1.x.x" } }, "node_modules/onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -14625,22 +16606,18 @@ } }, "node_modules/only": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", - "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==" + "version": "0.0.2" }, "node_modules/openapi-types": { "version": "12.1.3", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", - "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/optionator": { "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, + "license": "MIT", "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", @@ -14655,9 +16632,8 @@ }, "node_modules/ora": { "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, + "license": "MIT", "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -14678,44 +16654,39 @@ }, "node_modules/os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/p-cancelable": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", - "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/p-is-promise": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -14728,9 +16699,8 @@ }, "node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -14743,9 +16713,8 @@ }, "node_modules/p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -14758,9 +16727,8 @@ }, "node_modules/p-timeout": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", - "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", "dev": true, + "license": "MIT", "dependencies": { "p-finally": "^1.0.0" }, @@ -14770,17 +16738,15 @@ }, "node_modules/p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/p-wait-for": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-3.2.0.tgz", - "integrity": "sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA==", "dev": true, + "license": "MIT", "dependencies": { "p-timeout": "^3.0.0" }, @@ -14793,9 +16759,8 @@ }, "node_modules/p-wait-for/node_modules/p-timeout": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "dev": true, + "license": "MIT", "dependencies": { "p-finally": "^1.0.0" }, @@ -14805,9 +16770,8 @@ }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -14817,14 +16781,12 @@ }, "node_modules/parse-github-repo-url": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz", - "integrity": "sha512-bSWyzBKqcSL4RrncTpGsEKoJ7H8a4L3++ifTAbTFeMHyq2wRV+42DGmQcHIrJIvdcacjIOxEuKH/w4tthF17gg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/parse-json": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -14840,70 +16802,61 @@ }, "node_modules/parse-ms": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", - "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/parse-passwd": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/parse-static-imports": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parse-static-imports/-/parse-static-imports-1.1.0.tgz", - "integrity": "sha512-HlxrZcISCblEV0lzXmAHheH/8qEkKgmqkdxyHTPbSqsTUV8GzqmN1L+SSti+VbNPfbBO3bYLPHDiUs2avbAdbA==" + "license": "MIT" }, "node_modules/parseurl": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "license": "MIT" }, "node_modules/path-scurry": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^9.1.1 || ^10.0.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -14917,38 +16870,33 @@ }, "node_modules/path-scurry/node_modules/lru-cache": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", - "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", "dev": true, + "license": "ISC", "engines": { "node": "14 || >=16.14" } }, "node_modules/path-to-regexp": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", - "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" + "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -14958,9 +16906,8 @@ }, "node_modules/pidtree": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", "dev": true, + "license": "MIT", "bin": { "pidtree": "bin/pidtree.js" }, @@ -14970,8 +16917,7 @@ }, "node_modules/pify": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -14981,18 +16927,16 @@ }, "node_modules/pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, + "license": "MIT", "dependencies": { "pinkie": "^2.0.0" }, @@ -15002,18 +16946,16 @@ }, "node_modules/pirates": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/pkg-dir": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -15023,9 +16965,8 @@ }, "node_modules/pkg-dir/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -15036,9 +16977,8 @@ }, "node_modules/pkg-dir/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -15048,9 +16988,8 @@ }, "node_modules/pkg-dir/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -15063,9 +17002,8 @@ }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -15075,17 +17013,14 @@ }, "node_modules/pluralize": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/postcss": { "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", "dev": true, "funding": [ { @@ -15097,6 +17032,7 @@ "url": "https://tidelift.com/funding/github/npm/postcss" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.4", "picocolors": "^1.0.0", @@ -15108,9 +17044,8 @@ }, "node_modules/postcss-values-parser": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz", - "integrity": "sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==", "dev": true, + "license": "MPL-2.0", "dependencies": { "color-name": "^1.1.4", "is-url-superb": "^4.0.0", @@ -15125,9 +17060,8 @@ }, "node_modules/pprof": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/pprof/-/pprof-3.2.1.tgz", - "integrity": "sha512-KnextTM3EHQ2zqN8fUjB0VpE+njcVR7cOfo7DjJSLKzIbKTPelDtokI04ScR/Vd8CLDj+M99tsaKV+K6FHzpzA==", "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "@mapbox/node-pre-gyp": "^1.0.0", "bindings": "^1.2.1", @@ -15146,22 +17080,19 @@ }, "node_modules/pprof-format": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/pprof-format/-/pprof-format-2.0.7.tgz", - "integrity": "sha512-1qWaGAzwMpaXJP9opRa23nPnt2Egi7RMNoNBptEE/XwHbcn4fC2b/4U4bKc5arkGkIh2ZabpF2bEb+c5GNHEKA==" + "license": "MIT" }, "node_modules/pprof/node_modules/source-map": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", "engines": { "node": ">= 8" } }, "node_modules/precinct": { "version": "8.3.1", - "resolved": "https://registry.npmjs.org/precinct/-/precinct-8.3.1.tgz", - "integrity": "sha512-pVppfMWLp2wF68rwHqBIpPBYY8Kd12lDhk8LVQzOwqllifVR15qNFyod43YLyFpurKRZQKnE7E4pofAagDOm2Q==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^2.20.3", "debug": "^4.3.3", @@ -15186,9 +17117,8 @@ }, "node_modules/precinct/node_modules/@typescript-eslint/types": { "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", "dev": true, + "license": "MIT", "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, @@ -15199,9 +17129,8 @@ }, "node_modules/precinct/node_modules/@typescript-eslint/typescript-estree": { "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "4.33.0", "@typescript-eslint/visitor-keys": "4.33.0", @@ -15226,9 +17155,8 @@ }, "node_modules/precinct/node_modules/@typescript-eslint/visitor-keys": { "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "4.33.0", "eslint-visitor-keys": "^2.0.0" @@ -15243,15 +17171,13 @@ }, "node_modules/precinct/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/precinct/node_modules/detective-amd": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-3.1.2.tgz", - "integrity": "sha512-jffU26dyqJ37JHR/o44La6CxtrDf3Rt9tvd2IbImJYxWKTMdBjctp37qoZ6ZcY80RHg+kzWz4bXn39e4P7cctQ==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^3.0.0", "escodegen": "^2.0.0", @@ -15267,9 +17193,8 @@ }, "node_modules/precinct/node_modules/detective-cjs": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-3.1.3.tgz", - "integrity": "sha512-ljs7P0Yj9MK64B7G0eNl0ThWSYjhAaSYy+fQcpzaKalYl/UoQBOzOeLCSFEY1qEBhziZ3w7l46KG/nH+s+L7BQ==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^3.0.0", "node-source-walk": "^4.0.0" @@ -15280,9 +17205,8 @@ }, "node_modules/precinct/node_modules/detective-es6": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-2.2.2.tgz", - "integrity": "sha512-eZUKCUsbHm8xoeoCM0z6JFwvDfJ5Ww5HANo+jPR7AzkFpW9Mun3t/TqIF2jjeWa2TFbAiGaWESykf2OQp3oeMw==", "dev": true, + "license": "MIT", "dependencies": { "node-source-walk": "^4.0.0" }, @@ -15292,9 +17216,8 @@ }, "node_modules/precinct/node_modules/detective-postcss": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-4.0.0.tgz", - "integrity": "sha512-Fwc/g9VcrowODIAeKRWZfVA/EufxYL7XfuqJQFroBKGikKX83d2G7NFw6kDlSYGG3LNQIyVa+eWv1mqre+v4+A==", "dev": true, + "license": "Apache-2.0", "dependencies": { "debug": "^4.1.1", "is-url": "^1.2.4", @@ -15307,9 +17230,8 @@ }, "node_modules/precinct/node_modules/detective-sass": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-3.0.2.tgz", - "integrity": "sha512-DNVYbaSlmti/eztFGSfBw4nZvwsTaVXEQ4NsT/uFckxhJrNRFUh24d76KzoCC3aarvpZP9m8sC2L1XbLej4F7g==", "dev": true, + "license": "MIT", "dependencies": { "gonzales-pe": "^4.3.0", "node-source-walk": "^4.0.0" @@ -15320,9 +17242,8 @@ }, "node_modules/precinct/node_modules/detective-scss": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-2.0.2.tgz", - "integrity": "sha512-hDWnWh/l0tht/7JQltumpVea/inmkBaanJUcXRB9kEEXVwVUMuZd6z7eusQ6GcBFrfifu3pX/XPyD7StjbAiBg==", "dev": true, + "license": "MIT", "dependencies": { "gonzales-pe": "^4.3.0", "node-source-walk": "^4.0.0" @@ -15333,15 +17254,13 @@ }, "node_modules/precinct/node_modules/detective-stylus": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-1.0.3.tgz", - "integrity": "sha512-4/bfIU5kqjwugymoxLXXLltzQNeQfxGoLm2eIaqtnkWxqbhap9puDVpJPVDx96hnptdERzS5Cy6p9N8/08A69Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/precinct/node_modules/detective-typescript": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-7.0.2.tgz", - "integrity": "sha512-unqovnhxzvkCz3m1/W4QW4qGsvXCU06aU2BAm8tkza+xLnp9SOFnob2QsTxUv5PdnQKfDvWcv9YeOeFckWejwA==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "^4.33.0", "ast-module-types": "^2.7.1", @@ -15354,24 +17273,21 @@ }, "node_modules/precinct/node_modules/detective-typescript/node_modules/ast-module-types": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-2.7.1.tgz", - "integrity": "sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/precinct/node_modules/eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10" } }, "node_modules/precinct/node_modules/get-amd-module-type": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-3.0.2.tgz", - "integrity": "sha512-PcuKwB8ouJnKuAPn6Hk3UtdfKoUV3zXRqVEvj8XGIXqjWfgd1j7QGdXy5Z9OdQfzVt1Sk29HVe/P+X74ccOuqw==", "dev": true, + "license": "MIT", "dependencies": { "ast-module-types": "^3.0.0", "node-source-walk": "^4.2.2" @@ -15382,9 +17298,8 @@ }, "node_modules/precinct/node_modules/postcss-values-parser": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", - "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", "dev": true, + "license": "MIT", "dependencies": { "flatten": "^1.0.2", "indexes-of": "^1.0.1", @@ -15396,9 +17311,8 @@ }, "node_modules/precinct/node_modules/typescript": { "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -15409,27 +17323,24 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prepend-http": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/prettier": { "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -15442,9 +17353,8 @@ }, "node_modules/pretty-bytes": { "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -15454,9 +17364,8 @@ }, "node_modules/pretty-format": { "version": "29.6.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.0.tgz", - "integrity": "sha512-XH+D4n7Ey0iSR6PdAnBs99cWMZdGsdKrR33iUHQNr79w1szKTCIZDVdXuccAsHVwDBp0XeWPfNEoaxP9EZgRmQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.0", "ansi-styles": "^5.0.0", @@ -15468,9 +17377,8 @@ }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -15480,15 +17388,13 @@ }, "node_modules/pretty-format/node_modules/react-is": { "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pretty-ms": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", - "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", "dev": true, + "license": "MIT", "dependencies": { "parse-ms": "^2.1.0" }, @@ -15501,22 +17407,19 @@ }, "node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/progress": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/prom-client": { "version": "14.2.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz", - "integrity": "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==", + "license": "Apache-2.0", "dependencies": { "tdigest": "^0.1.1" }, @@ -15526,9 +17429,8 @@ }, "node_modules/prompts": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, + "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -15539,9 +17441,8 @@ }, "node_modules/protobufjs": { "version": "7.2.5", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.5.tgz", - "integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -15562,13 +17463,11 @@ }, "node_modules/proxy-from-env": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "license": "MIT" }, "node_modules/pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -15576,16 +17475,13 @@ }, "node_modules/punycode": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pure-rand": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", - "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", "dev": true, "funding": [ { @@ -15596,13 +17492,13 @@ "type": "opencollective", "url": "https://opencollective.com/fast-check" } - ] + ], + "license": "MIT" }, "node_modules/q": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6.0", "teleport": ">=0.2.0" @@ -15610,8 +17506,7 @@ }, "node_modules/qs": { "version": "6.11.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz", - "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==", + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -15624,9 +17519,8 @@ }, "node_modules/query-string": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, + "license": "MIT", "dependencies": { "decode-uri-component": "^0.2.0", "object-assign": "^4.1.0", @@ -15636,10 +17530,14 @@ "node": ">=0.10.0" } }, + "node_modules/querystring": { + "version": "0.2.0", + "engines": { + "node": ">=0.4.x" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -15654,33 +17552,30 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/quick-lru": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/quote-unquote": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/quote-unquote/-/quote-unquote-1.0.0.tgz", - "integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ramda": { "version": "0.27.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", - "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/raw-body": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -15693,8 +17588,7 @@ }, "node_modules/raw-body/node_modules/http-errors": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -15708,17 +17602,15 @@ }, "node_modules/raw-body/node_modules/statuses": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/rc": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -15731,17 +17623,15 @@ }, "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/read-pkg": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "license": "MIT", "dependencies": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0", @@ -15754,8 +17644,7 @@ }, "node_modules/read-pkg-up": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "license": "MIT", "dependencies": { "find-up": "^4.1.0", "read-pkg": "^5.2.0", @@ -15770,8 +17659,7 @@ }, "node_modules/read-pkg-up/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -15782,8 +17670,7 @@ }, "node_modules/read-pkg-up/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -15793,8 +17680,7 @@ }, "node_modules/read-pkg-up/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -15807,8 +17693,7 @@ }, "node_modules/read-pkg-up/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -15818,13 +17703,11 @@ }, "node_modules/read-pkg/node_modules/hosted-git-info": { "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + "license": "ISC" }, "node_modules/read-pkg/node_modules/normalize-package-data": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -15834,25 +17717,22 @@ }, "node_modules/read-pkg/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/read-pkg/node_modules/type-fest": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "node_modules/readable-stream": { "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -15865,15 +17745,13 @@ }, "node_modules/readable-stream/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/redent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, + "license": "MIT", "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" @@ -15884,16 +17762,14 @@ }, "node_modules/redis-errors": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/redis-parser": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", + "license": "MIT", "dependencies": { "redis-errors": "^1.0.0" }, @@ -15903,23 +17779,20 @@ }, "node_modules/regenerator-runtime": { "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "license": "MIT" }, "node_modules/regexp-tree": { "version": "0.1.24", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", - "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", "dev": true, + "license": "MIT", "bin": { "regexp-tree": "bin/regexp-tree" } }, "node_modules/regexp.prototype.flags": { "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -15934,9 +17807,8 @@ }, "node_modules/regjsparser": { "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "jsesc": "~0.5.0" }, @@ -15946,8 +17818,6 @@ }, "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, "bin": { "jsesc": "bin/jsesc" @@ -15955,9 +17825,8 @@ }, "node_modules/repeating": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", "dev": true, + "license": "MIT", "dependencies": { "is-finite": "^1.0.0" }, @@ -15967,32 +17836,28 @@ }, "node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-from-string": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/requirejs": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", - "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", "dev": true, + "license": "MIT", "bin": { "r_js": "bin/r.js", "r.js": "bin/r.js" @@ -16003,9 +17868,8 @@ }, "node_modules/requirejs-config-file": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz", - "integrity": "sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==", "dev": true, + "license": "MIT", "dependencies": { "esprima": "^4.0.0", "stringify-object": "^3.2.1" @@ -16016,8 +17880,7 @@ }, "node_modules/resolve": { "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "license": "MIT", "dependencies": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -16032,9 +17895,8 @@ }, "node_modules/resolve-cwd": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, + "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" }, @@ -16044,18 +17906,16 @@ }, "node_modules/resolve-dependency-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz", - "integrity": "sha512-DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/resolve-dir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", "dev": true, + "license": "MIT", "dependencies": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" @@ -16066,18 +17926,16 @@ }, "node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/resolve-global": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", - "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", "dev": true, + "license": "MIT", "dependencies": { "global-dirs": "^0.1.1" }, @@ -16087,27 +17945,24 @@ }, "node_modules/resolve.exports": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/responselike": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", "dev": true, + "license": "MIT", "dependencies": { "lowercase-keys": "^1.0.0" } }, "node_modules/restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, + "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -16118,9 +17973,8 @@ }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -16128,23 +17982,20 @@ }, "node_modules/rfdc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/right-pad": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz", - "integrity": "sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -16157,8 +18008,7 @@ }, "node_modules/rimraf/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -16176,9 +18026,8 @@ }, "node_modules/roarr": { "version": "7.15.0", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-7.15.0.tgz", - "integrity": "sha512-CV9WefQfUXTX6wr8CrEMhfNef3sjIt9wNhE/5PNu4tNWsaoDNDXqq+OGn/RW9A1UPb0qc7FQlswXRaJJJsqn8A==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "boolean": "^3.1.4", "fast-json-stringify": "^2.7.10", @@ -16193,8 +18042,7 @@ }, "node_modules/rudder-transformer-cdk": { "version": "1.4.11", - "resolved": "https://registry.npmjs.org/rudder-transformer-cdk/-/rudder-transformer-cdk-1.4.11.tgz", - "integrity": "sha512-u2t/L47tNe9wyzSpQptLkiECT0/P5Xx8BLmZisfuXQx3lXco57oaDX/Ii1ZhEiHM2zht+NiyrGkvhBKMt1IAyA==", + "license": "ISC", "dependencies": { "get-value": "^3.0.1", "handlebars": "^4.7.7", @@ -16210,17 +18058,14 @@ }, "node_modules/run-async": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -16236,23 +18081,21 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/rxjs": { "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "funding": [ { "type": "github", @@ -16266,22 +18109,21 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safe-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", - "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", "dev": true, + "license": "MIT", "dependencies": { "regexp-tree": "~0.1.1" } }, "node_modules/safe-regex-test": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -16293,22 +18135,19 @@ }, "node_modules/safe-stable-stringify": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz", - "integrity": "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==", + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "license": "MIT" }, "node_modules/sass-lookup": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/sass-lookup/-/sass-lookup-3.0.0.tgz", - "integrity": "sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^2.16.0" }, @@ -16321,14 +18160,16 @@ }, "node_modules/sass-lookup/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.2.1", + "license": "ISC" }, "node_modules/semver": { "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -16341,15 +18182,13 @@ }, "node_modules/semver-compare": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/semver-regex": { "version": "3.1.4", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.4.tgz", - "integrity": "sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -16359,8 +18198,7 @@ }, "node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -16370,23 +18208,20 @@ }, "node_modules/semver/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + "license": "ISC" }, "node_modules/set-value": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-4.1.0.tgz", - "integrity": "sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw==", "funding": [ "https://github.com/sponsors/jonschlinkert", "https://paypal.me/jonathanschlinkert", "https://jonschlinkert.dev/sponsor" ], + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "is-primitive": "^3.0.1" @@ -16397,13 +18232,10 @@ }, "node_modules/setprototypeof": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "license": "ISC" }, "node_modules/sha256": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/sha256/-/sha256-0.2.0.tgz", - "integrity": "sha512-kTWMJUaez5iiT9CcMv8jSq6kMhw3ST0uRdcIWl3D77s6AsLXNXRp3heeqqfu5+Dyfu4hwpQnMzhqHh8iNQxw0w==", "dependencies": { "convert-hex": "~0.1.0", "convert-string": "~0.1.0" @@ -16411,9 +18243,8 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -16423,23 +18254,20 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shellwords": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -16451,42 +18279,36 @@ }, "node_modules/signal-exit": { "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "license": "ISC" }, "node_modules/simple-swizzle": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.3.1" } }, "node_modules/simple-swizzle/node_modules/is-arrayish": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + "license": "MIT" }, "node_modules/sisteransi": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/slice-ansi": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.0.0", "is-fullwidth-code-point": "^4.0.0" @@ -16500,9 +18322,8 @@ }, "node_modules/slice-ansi/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -16512,9 +18333,8 @@ }, "node_modules/sort-keys": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-obj": "^1.0.0" }, @@ -16524,26 +18344,23 @@ }, "node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -16551,8 +18368,7 @@ }, "node_modules/spdx-correct": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -16560,13 +18376,11 @@ }, "node_modules/spdx-exceptions": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -16574,13 +18388,11 @@ }, "node_modules/spdx-license-ids": { "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==" + "license": "CC0-1.0" }, "node_modules/split": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "license": "MIT", "dependencies": { "through": "2" }, @@ -16590,18 +18402,16 @@ }, "node_modules/split2": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, + "license": "ISC", "dependencies": { "readable-stream": "^3.0.0" } }, "node_modules/split2/node_modules/readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -16613,31 +18423,27 @@ }, "node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/stack-generator": { "version": "2.0.10", - "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", - "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", + "license": "MIT", "dependencies": { "stackframe": "^1.3.4" } }, "node_modules/stack-trace": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/stack-utils": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -16647,22 +18453,19 @@ }, "node_modules/stack-utils/node_modules/escape-string-regexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/stackframe": { "version": "1.3.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + "license": "MIT" }, "node_modules/stacktrace-parser": { "version": "0.1.10", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", - "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "license": "MIT", "dependencies": { "type-fest": "^0.7.1" }, @@ -16672,22 +18475,19 @@ }, "node_modules/stacktrace-parser/node_modules/type-fest": { "version": "0.7.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "node_modules/standard-as-callback": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" + "license": "MIT" }, "node_modules/standard-version": { "version": "9.5.0", - "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.5.0.tgz", - "integrity": "sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==", "dev": true, + "license": "ISC", "dependencies": { "chalk": "^2.4.2", "conventional-changelog": "3.1.25", @@ -16713,9 +18513,8 @@ }, "node_modules/standard-version/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -16725,9 +18524,8 @@ }, "node_modules/standard-version/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -16739,9 +18537,8 @@ }, "node_modules/standard-version/node_modules/cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -16750,33 +18547,29 @@ }, "node_modules/standard-version/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/standard-version/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/standard-version/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/standard-version/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -16786,9 +18579,8 @@ }, "node_modules/standard-version/node_modules/yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -16804,31 +18596,26 @@ }, "node_modules/stats-accumulator": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/stats-accumulator/-/stats-accumulator-1.1.3.tgz", - "integrity": "sha512-ys8OR2RWx4Y9xC/fkFUKI3t2ElHpR4Xdp8rIWVCTl4DWmfS80gvxl0LwNKYUio/ibBUpsoMaUYbWldonVfPBFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/statsd-client": { "version": "0.4.7", - "resolved": "https://registry.npmjs.org/statsd-client/-/statsd-client-0.4.7.tgz", - "integrity": "sha512-+sGCE6FednJ/vI7vywErOg/mhVqmf6Zlktz7cdGRnF/cQWXD9ifMgtqU1CIIXmhSwm11SCk4zDN+bwNCvIR/Kg==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + "license": "MIT" }, "node_modules/statuses": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/stream-browserify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "license": "MIT", "dependencies": { "inherits": "~2.0.4", "readable-stream": "^3.5.0" @@ -16836,8 +18623,7 @@ }, "node_modules/stream-browserify/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -16849,49 +18635,43 @@ }, "node_modules/stream-to-array": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz", - "integrity": "sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.1.0" } }, "node_modules/strict-uri-encode": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/string_decoder/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "license": "MIT" }, "node_modules/string-argv": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6.19" } }, "node_modules/string-length": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, + "license": "MIT", "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -16902,15 +18682,12 @@ }, "node_modules/string-similarity": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-4.0.4.tgz", - "integrity": "sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -16923,9 +18700,8 @@ "node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -16937,37 +18713,32 @@ }, "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/string-width/node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "license": "MIT" }, "node_modules/string-width/node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/string.prototype.trimend": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -16979,9 +18750,8 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -16993,9 +18763,8 @@ }, "node_modules/stringify-object": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", @@ -17007,24 +18776,20 @@ }, "node_modules/stringify-object/node_modules/is-obj": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/stringify-package": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", - "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==", - "deprecated": "This module is not used anymore, and has been replaced by @npmcli/package-json", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -17035,9 +18800,8 @@ "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -17047,27 +18811,24 @@ }, "node_modules/strip-bom": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/strip-indent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, + "license": "MIT", "dependencies": { "min-indent": "^1.0.0" }, @@ -17077,9 +18838,8 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -17089,14 +18849,12 @@ }, "node_modules/strnum": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + "license": "MIT" }, "node_modules/stylus-lookup": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-3.0.2.tgz", - "integrity": "sha512-oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^2.8.1", "debug": "^4.1.0" @@ -17110,23 +18868,20 @@ }, "node_modules/stylus-lookup/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/subdirs": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/subdirs/-/subdirs-1.0.1.tgz", - "integrity": "sha512-KSbUKpwQIRcb5Th+l4EzxEZYpCwV/g0pQ348EV7CIM5YEEgzz2L1KJD8FCeTckTiE/TKn2u09DCxpdAL6/iFbg==", + "license": "MIT", "dependencies": { "es6-promise": "^3.0.2" } }, "node_modules/superagent": { "version": "8.0.9", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.9.tgz", - "integrity": "sha512-4C7Bh5pyHTvU33KpZgwrNKh/VQnvgtCSqPRfJAUdmrtSYePVzVg4E4OzsrbkhJj9O7SO6Bnv75K/F8XVZT8YHA==", "dev": true, + "license": "MIT", "dependencies": { "component-emitter": "^1.3.0", "cookiejar": "^2.1.4", @@ -17145,9 +18900,8 @@ }, "node_modules/supertest": { "version": "6.3.3", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.3.tgz", - "integrity": "sha512-EMCG6G8gDu5qEqRQ3JjjPs6+FYT1a7Hv5ApHvtSghmOFJYtsU5S+pSb6Y2EUeCEY3CmEL3mmQ8YWlPOzQomabA==", "dev": true, + "license": "MIT", "dependencies": { "methods": "^1.1.2", "superagent": "^8.0.5" @@ -17158,9 +18912,8 @@ }, "node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -17170,8 +18923,7 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -17181,9 +18933,8 @@ }, "node_modules/swagger-cli": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/swagger-cli/-/swagger-cli-4.0.4.tgz", - "integrity": "sha512-Cp8YYuLny3RJFQ4CvOBTaqmOOgYsem52dPx1xM5S4EUWFblIh2Q8atppMZvXKUr1e9xH5RwipYpmdUzdPcxWcA==", "dev": true, + "license": "MIT", "dependencies": { "@apidevtools/swagger-cli": "4.0.4" }, @@ -17196,9 +18947,8 @@ }, "node_modules/swagger-cli/node_modules/@apidevtools/swagger-cli": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-cli/-/swagger-cli-4.0.4.tgz", - "integrity": "sha512-hdDT3B6GLVovCsRZYDi3+wMcB1HfetTU20l2DC8zD3iFRNMC6QNAZG5fo/6PYeHWBEv7ri4MvnlKodhNB0nt7g==", "dev": true, + "license": "MIT", "dependencies": { "@apidevtools/swagger-parser": "^10.0.1", "chalk": "^4.1.0", @@ -17214,18 +18964,16 @@ }, "node_modules/swagger-cli/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/swagger-cli/node_modules/cliui": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -17234,9 +18982,8 @@ }, "node_modules/swagger-cli/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -17247,9 +18994,8 @@ }, "node_modules/swagger-cli/node_modules/js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -17260,9 +19006,8 @@ }, "node_modules/swagger-cli/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -17272,9 +19017,8 @@ }, "node_modules/swagger-cli/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -17287,9 +19031,8 @@ }, "node_modules/swagger-cli/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -17299,9 +19042,8 @@ }, "node_modules/swagger-cli/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -17313,15 +19055,13 @@ }, "node_modules/swagger-cli/node_modules/y18n": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/swagger-cli/node_modules/yargs": { "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -17341,9 +19081,8 @@ }, "node_modules/swagger-cli/node_modules/yargs-parser": { "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -17354,17 +19093,15 @@ }, "node_modules/tapable": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/tar": { "version": "6.1.15", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", - "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", + "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -17379,30 +19116,26 @@ }, "node_modules/tar/node_modules/minipass": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", "engines": { "node": ">=8" } }, "node_modules/tar/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/tdigest": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", - "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", + "license": "MIT", "dependencies": { "bintrees": "1.0.2" } }, "node_modules/test-exclude": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -17414,9 +19147,8 @@ }, "node_modules/test-exclude/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -17434,43 +19166,37 @@ }, "node_modules/text-extensions": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/text-hex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" + "license": "MIT" }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + "license": "MIT" }, "node_modules/through2": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "3" } }, "node_modules/through2/node_modules/readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -17482,18 +19208,16 @@ }, "node_modules/timed-out": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, + "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -17503,32 +19227,27 @@ }, "node_modules/tmpl": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/to-function": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/to-function/-/to-function-2.0.6.tgz", - "integrity": "sha512-LWfUmW851x5T8+78Nl82CA2j6w0trhoFj4rpS6pFUMgfUMUySDAKPgTvQkUqlWuH3Lihlk5sPyDHSVwmKDSc5Q==", "dependencies": { "component-props": "*" } }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -17538,39 +19257,34 @@ }, "node_modules/toidentifier": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", "engines": { "node": ">=0.6" } }, "node_modules/trim-newlines": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/triple-beam": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" + "license": "MIT" }, "node_modules/truncate-utf8-bytes": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "license": "WTFPL", "dependencies": { "utf8-byte-length": "^1.0.1" } }, "node_modules/ts-graphviz": { "version": "1.5.5", - "resolved": "https://registry.npmjs.org/ts-graphviz/-/ts-graphviz-1.5.5.tgz", - "integrity": "sha512-abon0Tlcgvxcqr8x+p8QH1fTbR2R4cEXKGZfT4OJONZWah2YfqkmERb6hrr82omAc1IHwk5PlF8g4BS/ECYvwQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -17581,9 +19295,8 @@ }, "node_modules/ts-jest": { "version": "29.1.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", - "integrity": "sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==", "dev": true, + "license": "MIT", "dependencies": { "bs-logger": "0.x", "fast-json-stable-stringify": "2.x", @@ -17624,18 +19337,16 @@ }, "node_modules/ts-jest/node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/ts-node": { "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, + "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -17676,18 +19387,16 @@ }, "node_modules/ts-node/node_modules/acorn-walk": { "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/tsconfig-paths": { "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -17697,9 +19406,8 @@ }, "node_modules/tsconfig-paths/node_modules/json5": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -17709,31 +19417,27 @@ }, "node_modules/tsconfig-paths/node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/tslib": { "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==" + "license": "0BSD" }, "node_modules/tsscmp": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", - "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "license": "MIT", "engines": { "node": ">=0.6.x" } }, "node_modules/tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -17746,15 +19450,13 @@ }, "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -17764,25 +19466,22 @@ }, "node_modules/type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/type-fest": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "node_modules/type-is": { "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -17793,9 +19492,8 @@ }, "node_modules/typed-array-length": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -17807,15 +19505,13 @@ }, "node_modules/typedarray": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/typescript": { "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -17826,8 +19522,6 @@ }, "node_modules/ua-parser-js": { "version": "1.0.35", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz", - "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==", "funding": [ { "type": "opencollective", @@ -17838,14 +19532,14 @@ "url": "https://paypal.me/faisalman" } ], + "license": "MIT", "engines": { "node": "*" } }, "node_modules/uglify-js": { "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "license": "BSD-2-Clause", "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -17856,9 +19550,8 @@ }, "node_modules/unbox-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -17871,31 +19564,27 @@ }, "node_modules/uniq": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/universalify": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/unset-value": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-2.0.1.tgz", - "integrity": "sha512-2hvrBfjUE00PkqN+q0XP6yRAOGrR06uSiUoIQGZkc7GxvQ9H7v8quUPNtZjMg4uux69i8HWpIjLPUKwCuRGyNg==", + "license": "MIT", "dependencies": { "has-value": "^2.0.2", "isobject": "^4.0.0" @@ -17906,16 +19595,13 @@ }, "node_modules/unset-value/node_modules/isobject": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/update-browserslist-db": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "funding": [ { @@ -17931,6 +19617,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -17944,17 +19631,23 @@ }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, + "node_modules/url": { + "version": "0.10.3", + "license": "MIT", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, "node_modules/url-parse-lax": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", "dev": true, + "license": "MIT", "dependencies": { "prepend-http": "^2.0.0" }, @@ -17964,47 +19657,55 @@ }, "node_modules/url-to-options": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "license": "MIT" + }, "node_modules/utf8-byte-length": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==" + "license": "WTFPL" }, "node_modules/utf8-length": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/utf8-length/-/utf8-length-0.0.1.tgz", - "integrity": "sha512-j/XH2ftofBiobnyApxlN/J6j/ixwT89WEjDcjT66d2i0+GIn9RZfzt8lpEXXE4jUe4NsjBSUq70kS2euQ4nnMw==" + "license": "MIT" + }, + "node_modules/util": { + "version": "0.12.5", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "license": "MIT" }, "node_modules/uuid": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/v8-to-istanbul": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", "dev": true, + "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -18015,14 +19716,11 @@ } }, "node_modules/valid-url": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", - "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==" + "version": "1.0.9" }, "node_modules/validate-npm-package-license": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -18030,17 +19728,15 @@ }, "node_modules/vary": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/vscode-json-languageservice": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.2.1.tgz", - "integrity": "sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==", "dev": true, + "license": "MIT", "dependencies": { "jsonc-parser": "^3.0.0", "vscode-languageserver-textdocument": "^1.0.3", @@ -18051,59 +19747,51 @@ }, "node_modules/vscode-languageserver-textdocument": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz", - "integrity": "sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/vscode-languageserver-types": { "version": "3.17.2", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz", - "integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/vscode-nls": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz", - "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/vscode-uri": { "version": "3.0.7", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz", - "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/walkdir": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", - "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/walker": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "makeerror": "1.0.12" } }, "node_modules/wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "license": "MIT", "dependencies": { "defaults": "^1.0.3" } }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -18116,9 +19804,8 @@ }, "node_modules/which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, + "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -18132,15 +19819,12 @@ }, "node_modules/which-module": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/which-typed-array": { "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -18158,17 +19842,15 @@ }, "node_modules/wide-align": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "license": "ISC", "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, "node_modules/widest-line": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "dev": true, + "license": "MIT", "dependencies": { "string-width": "^4.0.0" }, @@ -18178,8 +19860,7 @@ }, "node_modules/winston": { "version": "3.8.2", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz", - "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==", + "license": "MIT", "dependencies": { "@colors/colors": "1.5.0", "@dabh/diagnostics": "^2.0.2", @@ -18199,8 +19880,7 @@ }, "node_modules/winston-transport": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", - "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", + "license": "MIT", "dependencies": { "logform": "^2.3.2", "readable-stream": "^3.6.0", @@ -18212,8 +19892,7 @@ }, "node_modules/winston-transport/node_modules/readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -18225,8 +19904,7 @@ }, "node_modules/winston/node_modules/readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -18238,23 +19916,20 @@ }, "node_modules/word-wrap": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/wordwrap": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + "license": "MIT" }, "node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -18270,9 +19945,8 @@ "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -18287,47 +19961,59 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "license": "ISC" + }, + "node_modules/xml2js": { + "version": "0.5.0", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "license": "MIT", + "engines": { + "node": ">=4.0" + } }, "node_modules/xtend": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4" } }, "node_modules/y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/yaml": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", "dev": true, + "license": "ISC", "engines": { "node": ">= 14" } }, "node_modules/yargs": { "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -18343,43 +20029,38 @@ }, "node_modules/yargs-parser": { "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/ylru": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz", - "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==", + "license": "MIT", "engines": { "node": ">= 4.0.0" } }, "node_modules/yn": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index 66d00600ad..8f23db4f7d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rudder-transformer", - "version": "1.43.1", + "version": "1.44.0", "description": "", "homepage": "https://github.com/rudderlabs/rudder-transformer#readme", "bugs": { @@ -36,6 +36,7 @@ "test:js:silent": "npm run test:js -- --silent", "test:js:ci": "npm run test:js -- --coverage --expand --maxWorkers=50%", "test:ts": "jest -c jest.config.typescript.js --detectOpenHandles", + "test:ts:component:generateNwMocks": "npm run test:ts -- component --generate=true", "test:ts:silent": "npm run test:ts -- --silent", "test:ts:ci": "npm run test:ts -- --coverage --expand --maxWorkers=50%", "test:ut:integration": "jest \"user_transformation.integration.test.js\" --detectOpenHandles --notify", @@ -51,10 +52,10 @@ }, "dependencies": { "@amplitude/ua-parser-js": "^0.7.24", - "@aws-sdk/client-personalize": "^3.363.0", + "@aws-sdk/client-personalize": "^3.391.0", "@aws-sdk/client-s3": "^3.370.0", - "@aws-sdk/credential-providers": "^3.363.0", - "@aws-sdk/lib-storage": "^3.370.0", + "@aws-sdk/credential-providers": "^3.391.0", + "@aws-sdk/lib-storage": "^3.391.0", "@bugsnag/js": "^7.20.2", "@datadog/pprof": "^3.1.0", "@koa/router": "^12.0.0", @@ -93,7 +94,7 @@ "moment": "^2.29.4", "moment-timezone": "^0.5.43", "node-cache": "^5.1.2", - "node-fetch": "^2.6.9", + "node-fetch": "^2.6.12", "oauth-1.0a": "^2.2.6", "object-hash": "^3.0.0", "parse-static-imports": "^1.1.0", @@ -113,6 +114,7 @@ "devDependencies": { "@commitlint/config-conventional": "^17.6.3", "@digitalroute/cz-conventional-changelog-for-jira": "^8.0.1", + "@types/fast-json-stable-stringify": "^2.1.0", "@types/jest": "^29.5.1", "@types/koa": "^2.13.6", "@types/koa-bodyparser": "^4.3.10", @@ -120,6 +122,7 @@ "@types/node": "^20.2.5", "@typescript-eslint/eslint-plugin": "^5.61.0", "@typescript-eslint/parser": "^5.59.2", + "axios-mock-adapter": "^1.22.0", "benchmark-suite": "^0.1.8", "commander": "^10.0.1", "commitizen": "^4.3.0", diff --git a/src/adapters/network.js b/src/adapters/network.js index 78552048f0..375d9dc908 100644 --- a/src/adapters/network.js +++ b/src/adapters/network.js @@ -1,7 +1,7 @@ /* eslint-disable no-restricted-syntax */ /* eslint-disable no-undef */ -const _ = require('lodash'); +const lodash = require('lodash'); const http = require('http'); const https = require('https'); const axios = require('axios'); @@ -9,6 +9,8 @@ const log = require('../logger'); const stats = require('../util/stats'); const { removeUndefinedValues } = require('../v0/util'); const { processAxiosResponse } = require('./utils/networkUtils'); +// Only for tests +const { setResponsesForMockAxiosAdapter } = require('../../test/testHelper'); const MAX_CONTENT_LENGTH = parseInt(process.env.MAX_CONTENT_LENGTH, 10) || 100000000; const MAX_BODY_LENGTH = parseInt(process.env.MAX_BODY_LENGTH, 10) || 100000000; @@ -84,6 +86,7 @@ const httpSend = async (options, statTags = {}) => { const requestOptions = enhanceRequestOptions(options); const startTime = new Date(); + const { url, data, method } = requestOptions; try { const response = await axios(requestOptions); clientResponse = { success: true, response }; @@ -92,6 +95,8 @@ const httpSend = async (options, statTags = {}) => { } finally { fireHTTPStats(clientResponse, startTime, statTags); } + + setResponsesForMockAxiosAdapter({ url, data, method, options }, clientResponse); return clientResponse; }; @@ -117,6 +122,7 @@ const httpGET = async (url, options, statTags = {}) => { } finally { fireHTTPStats(clientResponse, startTime, statTags); } + setResponsesForMockAxiosAdapter({ url, options, method: 'GET' }, clientResponse); return clientResponse; }; @@ -142,6 +148,7 @@ const httpDELETE = async (url, options, statTags = {}) => { } finally { fireHTTPStats(clientResponse, startTime, statTags); } + setResponsesForMockAxiosAdapter({ url, options, method: 'DELETE' }, clientResponse); return clientResponse; }; @@ -168,6 +175,7 @@ const httpPOST = async (url, data, options, statTags = {}) => { } finally { fireHTTPStats(clientResponse, startTime, statTags); } + setResponsesForMockAxiosAdapter({ url, data, options, method: 'POST' }, clientResponse); return clientResponse; }; @@ -194,6 +202,7 @@ const httpPUT = async (url, data, options, statTags = {}) => { } finally { fireHTTPStats(clientResponse, startTime, statTags); } + setResponsesForMockAxiosAdapter({ url, data, options, method: 'PUT' }, clientResponse); return clientResponse; }; @@ -220,6 +229,7 @@ const httpPATCH = async (url, data, options, statTags = {}) => { } finally { fireHTTPStats(clientResponse, startTime, statTags); } + setResponsesForMockAxiosAdapter({ url, data, options, method: 'PATCH' }, clientResponse); return clientResponse; }; @@ -227,7 +237,7 @@ const getPayloadData = (body) => { let payload; let payloadFormat; Object.entries(body).forEach(([key, value]) => { - if (!_.isEmpty(value)) { + if (!lodash.isEmpty(value)) { payload = value; payloadFormat = key; } @@ -388,4 +398,5 @@ module.exports = { getPayloadData, getFormData, handleHttpRequest, + enhanceRequestOptions, }; diff --git a/src/adapters/utils/networkUtils.js b/src/adapters/utils/networkUtils.js index 39b0e0504a..a88d803fac 100644 --- a/src/adapters/utils/networkUtils.js +++ b/src/adapters/utils/networkUtils.js @@ -1,5 +1,5 @@ /* eslint-disable eqeqeq */ -const _ = require('lodash'); +const lodash = require('lodash'); const { isEmpty } = require('lodash'); const { isHttpStatusRetryable, @@ -100,7 +100,7 @@ const parseDestResponse = (destResponse, destination = '') => { if ( !isDefinedAndNotNull(responseBody) || !isDefinedAndNotNull(status) || - !_.isNumber(status) || + !lodash.isNumber(status) || status === 0 ) { throw new AbortedError( diff --git a/src/cdk/v1/dcm_floodlight/transform.js b/src/cdk/v1/dcm_floodlight/transform.js index 4025c3cc01..d5835d3e2b 100644 --- a/src/cdk/v1/dcm_floodlight/transform.js +++ b/src/cdk/v1/dcm_floodlight/transform.js @@ -1,6 +1,6 @@ /* eslint-disable no-param-reassign */ const get = require('get-value'); -const _ = require('lodash'); +const lodash = require('lodash'); const { removeUndefinedAndNullValues, isDefinedAndNotNull, @@ -44,7 +44,7 @@ const transformCustomVariable = (customFloodlightVariable, message) => { if ( // the value is not null - !_.isNil(itemValue) && + !lodash.isNil(itemValue) && // the value is string and doesn't have any blacklisted characters !( typeof itemValue === 'string' && BLACKLISTED_CHARACTERS.some((k) => itemValue.includes(k)) diff --git a/src/cdk/v1/new_relic/transform.js b/src/cdk/v1/new_relic/transform.js index 67858910ad..43cebd548f 100644 --- a/src/cdk/v1/new_relic/transform.js +++ b/src/cdk/v1/new_relic/transform.js @@ -1,3 +1,4 @@ +/* eslint-disable no-param-reassign */ const { isBoolean } = require('lodash'); const { Utils } = require('rudder-transformer-cdk'); diff --git a/src/cdk/v2/destinations/dcm_floodlight/utils.js b/src/cdk/v2/destinations/dcm_floodlight/utils.js index e50f4f3b40..bee45bdea3 100644 --- a/src/cdk/v2/destinations/dcm_floodlight/utils.js +++ b/src/cdk/v2/destinations/dcm_floodlight/utils.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const { getValueFromPropertiesOrTraits, getHashFromArray } = require('../../../../v0/util'); const { GENERIC_TRUE_VALUES, GENERIC_FALSE_VALUES } = require('../../../../constants'); const { InstrumentationError } = require('../../../../v0/util/errorTypes'); @@ -35,7 +35,7 @@ const transformCustomVariable = (customFloodlightVariable, message) => { if ( // the value is not null - !_.isNil(itemValue) && + !lodash.isNil(itemValue) && // the value is string and doesn't have any blacklisted characters !( typeof itemValue === 'string' && BLACKLISTED_CHARACTERS.some((k) => itemValue.includes(k)) diff --git a/src/cdk/v2/destinations/eloqua/utils.js b/src/cdk/v2/destinations/eloqua/utils.js index baecffc6dc..a8e2afb3f8 100644 --- a/src/cdk/v2/destinations/eloqua/utils.js +++ b/src/cdk/v2/destinations/eloqua/utils.js @@ -1,10 +1,11 @@ const stringifyValues = (data) => { - Object.keys(data).forEach((key) => { - if (typeof data[key] !== 'string') { - data[key] = JSON.stringify(data[key]); + const output = data; + Object.keys(output).forEach((key) => { + if (typeof output[key] !== 'string') { + output[key] = JSON.stringify(output[key]); } }); - return data; + return output; }; module.exports = { stringifyValues, diff --git a/src/cdk/v2/destinations/launchdarkly_audience/utils.js b/src/cdk/v2/destinations/launchdarkly_audience/utils.js index 5bbcdfb6a3..6128fdfbfc 100644 --- a/src/cdk/v2/destinations/launchdarkly_audience/utils.js +++ b/src/cdk/v2/destinations/launchdarkly_audience/utils.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const { ACTION_TYPES, IDENTIFIER_KEY, MAX_IDENTIFIERS } = require('./config'); /** @@ -61,7 +61,7 @@ const batchIdentifiersList = (listData) => { ...audienceList.remove.map((item) => ({ ...item, type: 'remove' })), ]; - const chunkedData = _.chunk(combinedList, MAX_IDENTIFIERS); + const chunkedData = lodash.chunk(combinedList, MAX_IDENTIFIERS); // Group the chunks by action type (add/remove) const groupedData = chunkedData.map((chunk) => { diff --git a/src/cdk/v2/handler.ts b/src/cdk/v2/handler.ts index 898e83f7b8..4b3868b85b 100644 --- a/src/cdk/v2/handler.ts +++ b/src/cdk/v2/handler.ts @@ -5,6 +5,7 @@ import { ExecutionBindings, StepOutput, } from '@rudderstack/workflow-engine'; +import { FixMe } from '../../util/types'; import tags from '../../v0/util/tags'; @@ -25,7 +26,7 @@ export function getEmptyExecutionBindings() { return { outputs: {}, context, - setContext: (key: string, value: any) => { + setContext: (key: string, value: FixMe) => { context[key] = value; }, }; @@ -34,7 +35,7 @@ export function getEmptyExecutionBindings() { export async function getWorkflowEngine( destName: string, feature: string, - bindings: Record = {}, + bindings: Record = {}, ) { const destRootDir = getRootPathForDestination(destName); const workflowPath = await getWorkflowPath(destRootDir, feature); @@ -52,7 +53,7 @@ const workflowEnginePromiseMap = new Map(); export function getCachedWorkflowEngine( destName: string, feature: string, - bindings: Record = {}, + bindings: Record = {}, ): WorkflowEngine { // Create a new instance of the engine for the destination if needed // TODO: Use cache to avoid long living engine objects @@ -63,7 +64,7 @@ export function getCachedWorkflowEngine( return workflowEnginePromiseMap[destName][feature]; } -export async function executeWorkflow(workflowEngine: WorkflowEngine, parsedEvent: any) { +export async function executeWorkflow(workflowEngine: WorkflowEngine, parsedEvent: FixMe) { try { const result = await workflowEngine.execute(parsedEvent); // TODO: Handle remaining output scenarios @@ -75,9 +76,9 @@ export async function executeWorkflow(workflowEngine: WorkflowEngine, parsedEven export async function processCdkV2Workflow( destType: string, - parsedEvent: any, + parsedEvent: FixMe, feature: string, - bindings: Record = {}, + bindings: Record = {}, ) { try { const workflowEngine = await getCachedWorkflowEngine(destType, feature, bindings); @@ -90,7 +91,7 @@ export async function processCdkV2Workflow( export function executeStep( workflowEngine: WorkflowEngine, stepName: string, - input: any, + input: FixMe, bindings?: ExecutionBindings, ): Promise { return workflowEngine diff --git a/src/cdk/v2/utils.ts b/src/cdk/v2/utils.ts index 9d46f3dace..3fb26c07e0 100644 --- a/src/cdk/v2/utils.ts +++ b/src/cdk/v2/utils.ts @@ -1,14 +1,11 @@ import path from 'path'; import fs from 'fs/promises'; -import { - WorkflowExecutionError, - WorkflowCreationError, - StatusError, -} from '@rudderstack/workflow-engine'; +import { WorkflowExecutionError, WorkflowCreationError } from '@rudderstack/workflow-engine'; import logger from '../../logger'; import { generateErrorObject } from '../../v0/util'; import { PlatformError } from '../../v0/util/errorTypes'; import tags from '../../v0/util/tags'; +import { CatchErr } from '../../util/types'; const CDK_V2_ROOT_DIR = __dirname; @@ -83,7 +80,7 @@ export function getWorkflowEngineErrorMessage(err) { * @param {*} defTags default stat tags * @returns Error type object */ -export function getErrorInfo(err: any, isProd: boolean, defTags) { +export function getErrorInfo(err: CatchErr, isProd: boolean, defTags) { // Handle various CDK error types const message = isProd ? getWorkflowEngineErrorMessage(err) : err.message; @@ -91,7 +88,7 @@ export function getErrorInfo(err: any, isProd: boolean, defTags) { logger.error(`Error occurred during workflow step execution: ${message}`, err); // Determine the error instance - let errInstance: any = err; + let errInstance: CatchErr = err; if (err.originalError) { errInstance = err.originalError; errInstance.message = message; diff --git a/src/controllers/bulkUpload.ts b/src/controllers/bulkUpload.ts index e4d60b2021..85c4fe6b4f 100644 --- a/src/controllers/bulkUpload.ts +++ b/src/controllers/bulkUpload.ts @@ -1,5 +1,7 @@ +/* eslint-disable global-require, import/no-dynamic-require, @typescript-eslint/no-unused-vars */ import { client as errNotificationClient } from '../util/errorNotifier'; import logger from '../logger'; +import { CatchErr } from '../util/types'; // TODO: To be refactored and redisgned const getDestFileUploadHandler = (version, dest) => @@ -7,6 +9,7 @@ const getDestFileUploadHandler = (version, dest) => const getPollStatusHandler = (version, dest) => require(`../${version}/destinations/${dest}/poll`); const getJobStatusHandler = (version, dest) => require(`../${version}/destinations/${dest}/fetchJobStatus`); +const ERROR_MESSAGE_PROCESSOR_STRING = 'Error occurred while processing payload.'; const getCommonMetadata = (ctx) => // TODO: Parse information such as @@ -16,12 +19,23 @@ const getCommonMetadata = (ctx) => namespace: 'Unknown', cluster: 'Unknown', }); + +const getReqMetadata = (ctx) => { + try { + const reqBody = ctx.request.body; + return { destType: reqBody?.destType, importId: reqBody?.importId }; + } catch (error) { + // Do nothing + } + return {}; +}; + export const fileUpload = async (ctx) => { logger.debug( 'Native(Bulk-Upload): Request to transformer:: /fileUpload route', JSON.stringify(ctx.request.body), ); - const getReqMetadata = () => { + const getReqMetadataFileUpload = () => { try { const reqBody = ctx.request.body; return { destType: reqBody?.destType }; @@ -42,16 +56,16 @@ export const fileUpload = async (ctx) => { let response; try { response = await destFileUploadHandler.processFileData(ctx.request.body); - } catch (error: any) { + } catch (error: CatchErr) { response = { statusCode: error?.response?.status || error?.status || 400, - error: error.message || 'Error occurred while processing payload.', + error: error.message || ERROR_MESSAGE_PROCESSOR_STRING, metadata: error.response ? error.response.metadata : null, }; errNotificationClient.notify(error, 'File Upload', { ...response, ...getCommonMetadata(ctx), - ...getReqMetadata(), + ...getReqMetadata(ctx), }); } ctx.body = response; @@ -67,15 +81,6 @@ export const pollStatus = async (ctx) => { 'Native(Bulk-Upload): Request to transformer:: /pollStatus route', JSON.stringify(ctx.request.body), ); - const getReqMetadata = () => { - try { - const reqBody = ctx.request.body; - return { destType: reqBody?.destType, importId: reqBody?.importId }; - } catch (error) { - // Do nothing - } - return {}; - }; const { destType } = ctx.request.body; const destFileUploadHandler = getPollStatusHandler('v0', destType.toLowerCase()); @@ -87,15 +92,15 @@ export const pollStatus = async (ctx) => { } try { response = await destFileUploadHandler.processPolling(ctx.request.body); - } catch (error: any) { + } catch (error: CatchErr) { response = { - statusCode: error.response?.status || error?.status || 400, - error: error.message || 'Error occurred while processing payload.', + statusCode: error.response?.status || 400, + error: error.message || ERROR_MESSAGE_PROCESSOR_STRING, }; errNotificationClient.notify(error, 'Poll Status', { ...response, ...getCommonMetadata(ctx), - ...getReqMetadata(), + ...getReqMetadata(ctx), }); } ctx.body = response; @@ -111,15 +116,6 @@ export const getWarnJobStatus = async (ctx) => { 'Native(Bulk-Upload): Request to transformer:: /getWarningJobs route', JSON.stringify(ctx.request.body), ); - const getReqMetadata = () => { - try { - const reqBody = ctx.request.body; - return { destType: reqBody?.destType, importId: reqBody?.importId }; - } catch (error) { - // Do nothing - } - return {}; - }; const { destType } = ctx.request.body; const destFileUploadHandler = getJobStatusHandler('v0', destType.toLowerCase()); @@ -132,15 +128,15 @@ export const getWarnJobStatus = async (ctx) => { let response; try { response = await destFileUploadHandler.processJobStatus(ctx.request.body, 'warn'); - } catch (error: any) { + } catch (error: CatchErr) { response = { statusCode: error.response ? error.response.status : 400, - error: error.message || 'Error occurred while processing payload.', + error: error.message || ERROR_MESSAGE_PROCESSOR_STRING, }; errNotificationClient.notify(error, 'Job Status', { ...response, ...getCommonMetadata(ctx), - ...getReqMetadata(), + ...getReqMetadata(ctx), }); } ctx.body = response; @@ -156,15 +152,6 @@ export const getFailedJobStatus = async (ctx) => { 'Native(Bulk-Upload): Request to transformer:: /getFailedJobs route', JSON.stringify(ctx.request.body), ); - const getReqMetadata = () => { - try { - const reqBody = ctx.request.body; - return { destType: reqBody?.destType, importId: reqBody?.importId }; - } catch (error) { - // Do nothing - } - return {}; - }; const { destType } = ctx.request.body; const destFileUploadHandler = getJobStatusHandler('v0', destType.toLowerCase()); @@ -177,15 +164,15 @@ export const getFailedJobStatus = async (ctx) => { let response; try { response = await destFileUploadHandler.processJobStatus(ctx.request.body, 'fail'); - } catch (error: any) { + } catch (error: CatchErr) { response = { statusCode: error.response ? error.response.status : 400, - error: error.message || 'Error occurred while processing payload.', + error: error.message || ERROR_MESSAGE_PROCESSOR_STRING, }; errNotificationClient.notify(error, 'Job Status', { ...response, ...getCommonMetadata(ctx), - ...getReqMetadata(), + ...getReqMetadata(ctx), }); } ctx.body = response; diff --git a/src/controllers/delivery.ts b/src/controllers/delivery.ts index d9a514d961..5dee091c46 100644 --- a/src/controllers/delivery.ts +++ b/src/controllers/delivery.ts @@ -7,6 +7,7 @@ import ControllerUtility from './util'; import logger from '../logger'; import DestinationPostTransformationService from '../services/destination/postTransformation'; import tags from '../v0/util/tags'; +import { FixMe } from '../util/types'; export default class DeliveryController { public static async deliverToDestination(ctx: Context) { @@ -49,7 +50,7 @@ export default class DeliveryController { }: { deliveryPayload: ProcessorTransformationOutput; destinationRequestPayload: ProcessorTransformationOutput; - } = ctx.request.body as any; + } = ctx.request.body as FixMe; const response = await DeliveryTestService.doTestDelivery( destination, destinationRequestPayload, diff --git a/src/controllers/destination.ts b/src/controllers/destination.ts index a5137ba170..60eac8a56c 100644 --- a/src/controllers/destination.ts +++ b/src/controllers/destination.ts @@ -14,7 +14,7 @@ import stats from '../util/stats'; import logger from '../logger'; import { getIntegrationVersion } from '../util/utils'; import tags from '../v0/util/tags'; -import { DynamicConfigParser } from '../util/dynamicConfigParser'; +import DynamicConfigParser from '../util/dynamicConfigParser'; export default class DestinationController { public static async destinationTransformAtProcessor(ctx: Context) { @@ -41,7 +41,9 @@ export default class DestinationController { ctx, ) as ProcessorTransformationRequest[]; const timestampCorrectEvents = ControllerUtility.handleTimestampInEvents(events); - events = DynamicConfigParser.process(timestampCorrectEvents) as ProcessorTransformationRequest[]; + events = DynamicConfigParser.process( + timestampCorrectEvents, + ) as ProcessorTransformationRequest[]; resplist = await integrationService.doProcessorTransformation( events, destination, @@ -194,7 +196,7 @@ export default class DestinationController { stats.timing('dest_transform_request_latency', startTime, { destination, feature: tags.FEATURES.BATCH, - version:"v0", + version: 'v0', }); return ctx; } diff --git a/src/controllers/eventTest.ts b/src/controllers/eventTest.ts index 6faf047d70..db6fc8cb6f 100644 --- a/src/controllers/eventTest.ts +++ b/src/controllers/eventTest.ts @@ -1,16 +1,18 @@ import { Context } from 'koa'; import EventTesterService from '../services/eventTest/eventTester'; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +import { CatchErr, FixMe } from '../util/types'; export default class EventTestController { private static API_VERSION = '1'; public static async testEvent(ctx: Context) { const { version, destination }: { version: string; destination: string } = ctx.params as any; - const { events }: { events: any } = ctx.request.body as any; + const { events }: { events: FixMe } = ctx.request.body as FixMe; try { const respList = await EventTesterService.testEvent(events, version, destination); ctx.body = respList; - } catch (err: any) { + } catch (err: CatchErr) { // fail-safety error response ctx.body = { error: err.message || JSON.stringify(err), diff --git a/src/controllers/profile.ts b/src/controllers/profile.ts index 5f2dce4fe6..984f4ac645 100644 --- a/src/controllers/profile.ts +++ b/src/controllers/profile.ts @@ -1,5 +1,4 @@ import { Context } from 'koa'; -import MiscService from '../services/misc'; import ProfileService from '../services/profile'; import ControllerUtility from './util'; @@ -30,7 +29,6 @@ export default class ProfileController { }' */ public static async profile(ctx: Context) { - const requestMetadata = MiscService.getRequestMetadata(ctx); const format = ctx.request.query.format as string; const { credBucketDetails } = ctx.request.body as any; const response = await ProfileService.profile(credBucketDetails, format); diff --git a/src/controllers/regulation.ts b/src/controllers/regulation.ts index a36f1826b7..cefe1f748a 100644 --- a/src/controllers/regulation.ts +++ b/src/controllers/regulation.ts @@ -5,6 +5,8 @@ import ServiceSelector from '../helpers/serviceSelector'; import tags from '../v0/util/tags'; import stats from '../util/stats'; import PostTransformationDestinationService from '../services/destination/postTransformation'; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +import { CatchErr } from '../util/types'; // TODO: refactor this class to new format export default class RegulationController { @@ -34,13 +36,14 @@ export default class RegulationController { ); ctx.body = resplist; ctx.status = resplist[0].statusCode; - } catch (error: any) { + } catch (error: CatchErr) { const metaTO = integrationService.getTags( userDeletionRequests[0].destType, 'unknown', 'unknown', tags.FEATURES.USER_DELETION, ); + // eslint-disable-next-line @typescript-eslint/no-unused-vars const errResp = PostTransformationDestinationService.handleUserDeletionFailureEvents( error, metaTO, @@ -50,7 +53,7 @@ export default class RegulationController { } stats.timing('dest_transform_request_latency', startTime, { feature: tags.FEATURES.USER_DELETION, - version:"v0", + version: 'v0', }); return ctx; } diff --git a/src/controllers/source.ts b/src/controllers/source.ts index a413426cc7..efb6dc746e 100644 --- a/src/controllers/source.ts +++ b/src/controllers/source.ts @@ -12,7 +12,7 @@ export default class SourceController { JSON.stringify(ctx.request.body), ); const requestMetadata = MiscService.getRequestMetadata(ctx); - const events = ctx.request.body as Object[]; + const events = ctx.request.body as object[]; const { version, source }: { version: string; source: string } = ctx.params; const integrationService = ServiceSelector.getNativeSourceService(); try { diff --git a/src/controllers/userTransform.ts b/src/controllers/userTransform.ts index cc64f5db1b..1592aa4755 100644 --- a/src/controllers/userTransform.ts +++ b/src/controllers/userTransform.ts @@ -1,7 +1,5 @@ import { Context } from 'koa'; -import MiscService from '../services/misc'; import { ProcessorTransformationRequest, UserTransformationServiceResponse } from '../types/index'; -import { compileUserLibrary } from '../util/ivmFactory'; import UserTransformService from '../services/userTransform'; import logger from '../logger'; import { @@ -17,7 +15,6 @@ export default class UserTransformController { '(User transform - router:/customTransform ):: Request to transformer', JSON.stringify(ctx.request.body), ); - const requestMetadata = MiscService.getRequestMetadata(ctx); const events = ctx.request.body as ProcessorTransformationRequest[]; const processedRespone: UserTransformationServiceResponse = await UserTransformService.transformRoutine(events); diff --git a/src/controllers/util/index.ts b/src/controllers/util/index.ts index 67a314bc75..e2071968d7 100644 --- a/src/controllers/util/index.ts +++ b/src/controllers/util/index.ts @@ -18,9 +18,9 @@ export default class ControllerUtility { `context.${RETL_TIMESTAMP}`, `context.traits.${RETL_TIMESTAMP}`, `traits.${RETL_TIMESTAMP}`, - ...genericFieldMap['timestamp'], + ...genericFieldMap.timestamp, ], - [EventType.TRACK]: [`properties.${RETL_TIMESTAMP}`, ...genericFieldMap['timestamp']], + [EventType.TRACK]: [`properties.${RETL_TIMESTAMP}`, ...genericFieldMap.timestamp], }; private static getCompatibleStatusCode(status: number): number { diff --git a/src/helpers/serviceSelector.ts b/src/helpers/serviceSelector.ts index 99f897cedc..bac1a17c16 100644 --- a/src/helpers/serviceSelector.ts +++ b/src/helpers/serviceSelector.ts @@ -8,6 +8,7 @@ import SourceService from '../interfaces/SourceService'; import NativeIntegrationSourceService from '../services/source/nativeIntegration'; import { PlatformError } from '../v0/util/errorTypes'; import ComparatorService from '../services/comparator'; +import { FixMe } from '../util/types'; export default class ServiceSelector { private static serviceMap: Map = new Map(); @@ -19,23 +20,23 @@ export default class ServiceSelector { [INTEGRATION_SERVICE.NATIVE_SOURCE]: NativeIntegrationSourceService, }; - private static isCdkDestination(destinationDefinitionConfig: Object) { - return !!destinationDefinitionConfig?.['cdkEnabled']; + private static isCdkDestination(destinationDefinitionConfig: FixMe) { + return !!destinationDefinitionConfig?.cdkEnabled; } - private static isCdkV2Destination(destinationDefinitionConfig: Object) { - return Boolean(destinationDefinitionConfig?.['cdkV2Enabled']); + private static isCdkV2Destination(destinationDefinitionConfig: FixMe) { + return Boolean(destinationDefinitionConfig?.cdkV2Enabled); } - private static isComparatorEnabled(destinationDefinitionConfig: Object): boolean { + private static isComparatorEnabled(destinationDefinitionConfig: FixMe): boolean { return ( process.env.COMPARATOR_ENABLED === 'true' && - !!destinationDefinitionConfig['comparisonTestEnabeld'] + !!destinationDefinitionConfig.comparisonTestEnabeld ); } - private static getSecondaryServiceName(destinationDefinitionConfig: Object): string { - return destinationDefinitionConfig['comparisonService']; + private static getSecondaryServiceName(destinationDefinitionConfig: FixMe): string { + return destinationDefinitionConfig.comparisonService; } private static fetchCachedService(serviceType: string) { @@ -65,7 +66,7 @@ export default class ServiceSelector { private static getPrimaryDestinationService( events: ProcessorTransformationRequest[] | RouterTransformationRequestData[], ): DestinationService { - const destinationDefinitionConfig: Object = + const destinationDefinitionConfig: FixMe = events[0]?.destination?.DestinationDefinition?.Config; if (this.isCdkDestination(destinationDefinitionConfig)) { return this.fetchCachedService(INTEGRATION_SERVICE.CDK_V1_DEST); @@ -76,6 +77,7 @@ export default class ServiceSelector { return this.fetchCachedService(INTEGRATION_SERVICE.NATIVE_DEST); } + // eslint-disable-next-line @typescript-eslint/no-unused-vars public static getSourceService(arg: unknown) { // Implement source event based descision logic for selecting service } diff --git a/src/interfaces/DestinationService.ts b/src/interfaces/DestinationService.ts index b1cae047f8..123da35292 100644 --- a/src/interfaces/DestinationService.ts +++ b/src/interfaces/DestinationService.ts @@ -26,27 +26,27 @@ export default interface DestinationService { events: ProcessorTransformationRequest[], destinationType: string, version: string, - requestMetadata: Object, + requestMetadata: NonNullable, ): Promise; doRouterTransformation( events: RouterTransformationRequestData[], destinationType: string, version: string, - requestMetadata: Object, + requestMetadata: NonNullable, ): Promise; doBatchTransformation( events: RouterTransformationRequestData[], destinationType: string, version: string, - requestMetadata: Object, + requestMetadata: NonNullable, ): RouterTransformationResponse[]; deliver( event: ProcessorTransformationOutput, destinationType: string, - requestMetadata: Object, + requestMetadata: NonNullable, ): Promise; processUserDeletion( diff --git a/src/interfaces/SourceService.ts b/src/interfaces/SourceService.ts index 28d72ee990..99b29f095b 100644 --- a/src/interfaces/SourceService.ts +++ b/src/interfaces/SourceService.ts @@ -4,9 +4,9 @@ export default interface SourceService { getTags(): MetaTransferObject; sourceTransformRoutine( - sourceEvents: Object[], + sourceEvents: NonNullable[], sourceType: string, version: string, - requestMetadata: Object, + requestMetadata: NonNullable, ): Promise; } diff --git a/src/legacy/router.js b/src/legacy/router.js index 361823a185..a8c2b49a1a 100644 --- a/src/legacy/router.js +++ b/src/legacy/router.js @@ -4,7 +4,7 @@ /* eslint-disable import/no-dynamic-require */ /* eslint-disable global-require */ const Router = require('@koa/router'); -const _ = require('lodash'); +const lodash = require('lodash'); const fs = require('fs'); const path = require('path'); const logger = require('../logger'); @@ -88,7 +88,7 @@ const functionsEnabled = () => { return areFunctionsEnabled === 1; }; -// eslint-disable-next-line no-unused-vars +// eslint-disable-next-line @typescript-eslint/no-unused-vars function getCommonMetadata(ctx) { // TODO: Parse information such as // cluster, namespace, etc information @@ -358,7 +358,7 @@ async function routerHandleDest(ctx) { ctx.body = `${destType} doesn't support router transform`; return null; } - const allDestEvents = _.groupBy(input, (event) => event.destination.ID); + const allDestEvents = lodash.groupBy(input, (event) => event.destination.ID); await Promise.all( Object.values(allDestEvents).map(async (destInputArray) => { const newDestInputArray = processDynamicConfig(destInputArray, 'router'); @@ -389,7 +389,10 @@ async function routerHandleDest(ctx) { // Add default stat tags respEvents - .filter((resp) => 'error' in resp && _.isObject(resp.statTags) && !_.isEmpty(resp.statTags)) + .filter( + (resp) => + 'error' in resp && lodash.isObject(resp.statTags) && !lodash.isEmpty(resp.statTags), + ) .forEach((resp) => { // eslint-disable-next-line no-param-reassign resp.statTags = { @@ -526,13 +529,13 @@ if (startDestTransformer) { }); let groupedEvents; if (processSessions) { - groupedEvents = _.groupBy(events, (event) => { + groupedEvents = lodash.groupBy(events, (event) => { // to have the backward-compatibility and being extra careful. We need to remove this (message.anonymousId) in next release. const rudderId = event.metadata.rudderId || event.message.anonymousId; return `${event.destination.ID}_${event.metadata.sourceId}_${rudderId}`; }); } else { - groupedEvents = _.groupBy( + groupedEvents = lodash.groupBy( events, (event) => `${event.metadata.destinationId}_${event.metadata.sourceId}`, ); @@ -587,7 +590,7 @@ if (startDestTransformer) { return { statusCode: 400, error: ev.error, - metadata: _.isEmpty(ev.metadata) ? commonMetadata : ev.metadata, + metadata: lodash.isEmpty(ev.metadata) ? commonMetadata : ev.metadata, }; } if (!isNonFuncObject(ev.transformedEvent)) { @@ -596,12 +599,12 @@ if (startDestTransformer) { error: `returned event in events from user transformation is not an object. transformationVersionId:${transformationVersionId} and returned event: ${JSON.stringify( ev.transformedEvent, )}`, - metadata: _.isEmpty(ev.metadata) ? commonMetadata : ev.metadata, + metadata: lodash.isEmpty(ev.metadata) ? commonMetadata : ev.metadata, }; } return { output: ev.transformedEvent, - metadata: _.isEmpty(ev.metadata) ? commonMetadata : ev.metadata, + metadata: lodash.isEmpty(ev.metadata) ? commonMetadata : ev.metadata, statusCode: 200, }; }), @@ -995,7 +998,7 @@ const batchHandler = (ctx) => { ctx.body = `${destType} doesn't support batching`; return null; } - const allDestEvents = _.groupBy(input, (event) => event.destination.ID); + const allDestEvents = lodash.groupBy(input, (event) => event.destination.ID); const response = { batchedRequests: [], errors: [] }; Object.entries(allDestEvents).forEach(([, destEvents]) => { diff --git a/src/middlewares/routeActivation.ts b/src/middlewares/routeActivation.ts index bf457b2faa..dfdaef964e 100644 --- a/src/middlewares/routeActivation.ts +++ b/src/middlewares/routeActivation.ts @@ -78,6 +78,7 @@ export default class RouteActivationMiddleware { ); } + // eslint-disable-next-line sonarjs/no-identical-functions public static destinationBatchFilter(ctx: Context, next: Next) { const routerRequest = ctx.request.body as RouterTransformationRequest; const destination = routerRequest.destType; diff --git a/src/routes/bulkUpload.ts b/src/routes/bulkUpload.ts index 386cf78c36..e7aaf897c8 100644 --- a/src/routes/bulkUpload.ts +++ b/src/routes/bulkUpload.ts @@ -12,4 +12,6 @@ router.post('/fileUpload', fileUpload); router.post('/pollStatus', pollStatus); router.post('/getFailedJobs', getFailedJobStatus); router.post('/getWarningJobs', getWarnJobStatus); -export const bulkUploadRoutes = router.routes(); +const bulkUploadRoutes = router.routes(); + +export default bulkUploadRoutes; \ No newline at end of file diff --git a/src/routes/delivery.ts b/src/routes/delivery.ts index de4ec65934..141700fd9f 100644 --- a/src/routes/delivery.ts +++ b/src/routes/delivery.ts @@ -17,4 +17,5 @@ router.post( DeliveryController.testDestinationDelivery, ); -export const proxyRoutes = router.routes(); +const proxyRoutes = router.routes(); +export default proxyRoutes; diff --git a/src/routes/destination.ts b/src/routes/destination.ts index bed2a1af20..ee19fd1246 100644 --- a/src/routes/destination.ts +++ b/src/routes/destination.ts @@ -26,4 +26,5 @@ router.post( router.post('/deleteUsers', RegulationController.deleteUsers); -export const destinationRoutes = router.routes(); +const destinationRoutes = router.routes(); +export default destinationRoutes; \ No newline at end of file diff --git a/src/routes/index.ts b/src/routes/index.ts index cfeb4db9ea..d77584bea3 100644 --- a/src/routes/index.ts +++ b/src/routes/index.ts @@ -4,20 +4,23 @@ import { existsSync, readFileSync } from 'fs'; import dotenv from 'dotenv'; import { koaSwagger } from 'koa2-swagger-ui'; import path from 'path'; -import { bulkUploadRoutes } from './bulkUpload'; -import { proxyRoutes } from './delivery'; -import { destinationRoutes } from './destination'; -import { miscRoutes } from './misc'; -import { sourceRoutes } from './source'; -import { testEventRoutes } from './testEvents'; +import userTransformRoutes from './userTransform'; +import bulkUploadRoutes from './bulkUpload'; +import proxyRoutes from './delivery'; +import destinationRoutes from './destination'; +import miscRoutes from './misc'; +import sourceRoutes from './source'; +import testEventRoutes from './testEvents'; import { trackingPlanRoutes } from './trackingPlan'; -import { userTransformRoutes } from './userTransform'; import logger from '../logger'; import { isNotEmpty } from '../v0/util'; dotenv.config(); -export function applicationRoutes(app: Koa) { +// eslint-disable-next-line @typescript-eslint/no-unused-vars +const enableSwagger = process.env.ENABLE_SWAGGER === 'true'; + +export function applicationRoutes(app: Koa) { app.use(bulkUploadRoutes); app.use(proxyRoutes); app.use(destinationRoutes); @@ -28,7 +31,7 @@ export function applicationRoutes(app: Koa) { app.use(userTransformRoutes); } -export function addSwaggerRoutes(app: Koa) { +export function addSwaggerRoutes(app: Koa) { // Ading swagger routes, check swagger docs in http://localhost:9090/docs try { diff --git a/src/routes/misc.ts b/src/routes/misc.ts index 3e30b9dd39..750c1194dd 100644 --- a/src/routes/misc.ts +++ b/src/routes/misc.ts @@ -13,4 +13,5 @@ router.get('/features', MiscController.features); router.get('/debug/pprof/profile', MiscController.getCPUProfile); router.get('/debug/pprof/heap', MiscController.getHeapProfile); -export const miscRoutes = router.routes(); +const miscRoutes = router.routes(); +export default miscRoutes; diff --git a/src/routes/source.ts b/src/routes/source.ts index 675e2286ce..ade26c8700 100644 --- a/src/routes/source.ts +++ b/src/routes/source.ts @@ -11,4 +11,5 @@ router.post( SourceController.sourceTransform, ); -export const sourceRoutes = router.routes(); +const sourceRoutes = router.routes(); +export default sourceRoutes; diff --git a/src/routes/testEvents.ts b/src/routes/testEvents.ts index cbfd78f3ec..f842887b91 100644 --- a/src/routes/testEvents.ts +++ b/src/routes/testEvents.ts @@ -6,4 +6,5 @@ const router = new Router({ prefix: '/test-router' }); router.post('/:version/:destination', EventTestController.testEvent); router.get('/:version/health', EventTestController.status); -export const testEventRoutes = router.routes(); +const testEventRoutes = router.routes(); +export default testEventRoutes; \ No newline at end of file diff --git a/src/routes/userTransform.ts b/src/routes/userTransform.ts index 2f6dcd417c..2727d9ef05 100644 --- a/src/routes/userTransform.ts +++ b/src/routes/userTransform.ts @@ -30,4 +30,5 @@ router.post( UserTransformController.extractLibhandle, ); -export const userTransformRoutes = router.routes(); +const userTransformRoutes = router.routes(); +export default userTransformRoutes; \ No newline at end of file diff --git a/src/services/comparator.ts b/src/services/comparator.ts index ae6e1bcf57..3495b7bbfd 100644 --- a/src/services/comparator.ts +++ b/src/services/comparator.ts @@ -1,3 +1,4 @@ +/* eslint-disable class-methods-use-this */ import IntegrationDestinationService from '../interfaces/DestinationService'; import { DeliveryResponse, @@ -62,7 +63,7 @@ export default class ComparatorService implements IntegrationDestinationService } private getTestThreshold(destination: Destination) { - return destination.DestinationDefinition?.Config['camparisonTestThreshold'] || 0; + return destination.DestinationDefinition?.Config?.camparisonTestThreshold || 0; } private getComparisonLogs( @@ -81,6 +82,7 @@ export default class ComparatorService implements IntegrationDestinationService return; } + // eslint-disable-next-line no-restricted-syntax for (const [index, element] of primaryResplist.entries()) { const objectDiff = CommonUtils.objectDiff(element, secondaryResplist[index]); if (Object.keys(objectDiff).length > 0) { @@ -129,6 +131,7 @@ export default class ComparatorService implements IntegrationDestinationService } let hasComparisonFailed = false; + // eslint-disable-next-line no-restricted-syntax for (const [index, element] of primaryResplist.entries()) { const objectDiff = CommonUtils.objectDiff(element, secondaryResplist[index]); if (Object.keys(objectDiff).length > 0) { @@ -156,7 +159,7 @@ export default class ComparatorService implements IntegrationDestinationService secondaryServiceCallback: any, destinationType: string, version: string, - requestMetadata: Object, + requestMetadata: NonNullable, feature: string, destinationId: string, ): Promise { @@ -194,7 +197,7 @@ export default class ComparatorService implements IntegrationDestinationService events: ProcessorTransformationRequest[], destinationType: string, version: string, - requestMetadata: Object, + requestMetadata: NonNullable, ): Promise { const destinationId = events[0].destination.ID; const primaryStartTime = process.hrtime(); @@ -252,7 +255,7 @@ export default class ComparatorService implements IntegrationDestinationService events: RouterTransformationRequestData[], destinationType: string, version: string, - requestMetadata: Object, + requestMetadata: NonNullable, ): Promise { const destinationId = events[0].destination.ID; const primaryStartTime = process.hrtime(); @@ -310,7 +313,7 @@ export default class ComparatorService implements IntegrationDestinationService events: RouterTransformationRequestData[], destinationType: string, version: string, - requestMetadata: Object, + requestMetadata: NonNullable, ): RouterTransformationResponse[] { const destinationId = events[0].destination.ID; const primaryStartTime = process.hrtime(); @@ -367,7 +370,7 @@ export default class ComparatorService implements IntegrationDestinationService public async deliver( event: ProcessorTransformationOutput, destinationType: string, - requestMetadata: Object, + requestMetadata: NonNullable, ): Promise { const primaryResplist = await this.primaryService.deliver( event, diff --git a/src/services/delivertTest/deliveryTest.ts b/src/services/delivertTest/deliveryTest.ts index 051b67b568..e5713073c1 100644 --- a/src/services/delivertTest/deliveryTest.ts +++ b/src/services/delivertTest/deliveryTest.ts @@ -29,6 +29,7 @@ export default class DeliveryTestService { // This is to make sure we encode `~` in the data coming from the router. // The data coming from the router is already a query parameter string const routerDataVal = new URLSearchParams(routerDestReqPayload.data); + // eslint-disable-next-line no-param-reassign routerDestReqPayload.data = routerDataVal; const proxyDataVal = new URLSearchParams(); diff --git a/src/services/destination/cdkV1Integration.ts b/src/services/destination/cdkV1Integration.ts index 44842fdddb..a016665afb 100644 --- a/src/services/destination/cdkV1Integration.ts +++ b/src/services/destination/cdkV1Integration.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ import { ConfigFactory, Executor, RudderBaseConfig } from 'rudder-transformer-cdk'; import path from 'path'; import IntegrationDestinationService from '../../interfaces/DestinationService'; @@ -17,6 +18,7 @@ import { TransformationError } from '../../v0/util/errorTypes'; import DestinationPostTransformationService from './postTransformation'; import tags from '../../v0/util/tags'; import { getErrorInfo } from '../../cdk/v1/handler'; +import { CatchErr } from '../../util/types'; export default class CDKV1DestinationService implements IntegrationDestinationService { public init() { @@ -63,7 +65,7 @@ export default class CDKV1DestinationService implements IntegrationDestinationSe events: ProcessorTransformationRequest[], destinationType: string, _version: string, - _requestMetadata: Object, + _requestMetadata: NonNullable, ): Promise { const tfConfig = await ConfigFactory.getConfig(destinationType); const respList: ProcessorTransformationResponse[][] = await Promise.all( @@ -76,7 +78,7 @@ export default class CDKV1DestinationService implements IntegrationDestinationSe transformedPayloads, undefined, ); - } catch (error: any) { + } catch (error: CatchErr) { const metaTO = this.getTags( destinationType, event.metadata.destinationId, @@ -100,7 +102,7 @@ export default class CDKV1DestinationService implements IntegrationDestinationSe _events: RouterTransformationRequestData[], _destinationType: string, _version: string, - _requestMetadata: Object, + _requestMetadata: NonNullable, ): Promise { throw new TransformationError('CDKV1 Does not Implement Router Transform Routine'); } @@ -109,7 +111,7 @@ export default class CDKV1DestinationService implements IntegrationDestinationSe _events: RouterTransformationRequestData[], _destinationType: string, _version: any, - _requestMetadata: Object, + _requestMetadata: NonNullable, ): RouterTransformationResponse[] { throw new TransformationError('CDKV1 Does not Implement Batch Transform Routine'); } @@ -117,7 +119,7 @@ export default class CDKV1DestinationService implements IntegrationDestinationSe public deliver( _event: ProcessorTransformationOutput, _destinationType: string, - _requestMetadata: Object, + _requestMetadata: NonNullable, ): Promise { throw new TransformationError('CDV1 Does not Implement Delivery Routine'); } diff --git a/src/services/destination/cdkV2Integration.ts b/src/services/destination/cdkV2Integration.ts index 04a2dcb799..b4c0a15e87 100644 --- a/src/services/destination/cdkV2Integration.ts +++ b/src/services/destination/cdkV2Integration.ts @@ -1,3 +1,5 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +/* eslint-disable class-methods-use-this */ import groupBy from 'lodash/groupBy'; import { processCdkV2Workflow } from '../../cdk/v2/handler'; import IntegrationDestinationService from '../../interfaces/DestinationService'; @@ -17,6 +19,7 @@ import { TransformationError } from '../../v0/util/errorTypes'; import tags from '../../v0/util/tags'; import DestinationPostTransformationService from './postTransformation'; import stats from '../../util/stats'; +import { CatchErr } from '../../util/types'; export default class CDKV2DestinationService implements IntegrationDestinationService { public init() {} @@ -49,7 +52,7 @@ export default class CDKV2DestinationService implements IntegrationDestinationSe events: ProcessorTransformationRequest[], destinationType: string, _version: string, - _requestMetadata: Object, + _requestMetadata: NonNullable, ): Promise { // TODO: Change the promise type const respList: ProcessorTransformationResponse[][] = await Promise.all( @@ -78,7 +81,7 @@ export default class CDKV2DestinationService implements IntegrationDestinationSe transformedPayloads, undefined, ); - } catch (error: any) { + } catch (error: CatchErr) { const metaTo = this.getTags( destinationType, event.metadata.destinationId, @@ -105,9 +108,9 @@ export default class CDKV2DestinationService implements IntegrationDestinationSe events: RouterTransformationRequestData[], destinationType: string, _version: string, - _requestMetadata: Object, + _requestMetadata: NonNullable, ): Promise { - const allDestEvents: Object = groupBy( + const allDestEvents: object = groupBy( events, (ev: RouterTransformationRequestData) => ev.destination?.ID, ); @@ -131,7 +134,7 @@ export default class CDKV2DestinationService implements IntegrationDestinationSe tags.IMPLEMENTATIONS.CDK_V2, destinationType.toUpperCase(), ); - } catch (error: any) { + } catch (error: CatchErr) { metaTo.metadatas = destInputArray.map((input) => input.metadata); const erroredResp = DestinationPostTransformationService.handleRouterTransformFailureEvents( @@ -150,7 +153,7 @@ export default class CDKV2DestinationService implements IntegrationDestinationSe _events: RouterTransformationRequestData[], _destinationType: string, _version: string, - _requestMetadata: Object, + _requestMetadata: NonNullable, ): RouterTransformationResponse[] { throw new TransformationError('CDKV2 Does not Implement Batch Transform Routine'); } @@ -158,7 +161,7 @@ export default class CDKV2DestinationService implements IntegrationDestinationSe public deliver( _event: ProcessorTransformationOutput, _destinationType: string, - _requestMetadata: Object, + _requestMetadata: NonNullable, ): Promise { throw new TransformationError('CDKV2 Does not Implement Delivery Routine'); } diff --git a/src/services/destination/nativeIntegration.ts b/src/services/destination/nativeIntegration.ts index 8cec0f573f..49fb806094 100644 --- a/src/services/destination/nativeIntegration.ts +++ b/src/services/destination/nativeIntegration.ts @@ -1,5 +1,6 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ import groupBy from 'lodash/groupBy'; -import cloneDeep from 'lodash/cloneDeep' +import cloneDeep from 'lodash/cloneDeep'; import IntegrationDestinationService from '../../interfaces/DestinationService'; import { DeliveryResponse, @@ -49,7 +50,7 @@ export default class NativeIntegrationDestinationService implements IntegrationD events: ProcessorTransformationRequest[], destinationType: string, version: string, - _requestMetadata: Object, + _requestMetadata: NonNullable, ): Promise { const destHandler = FetchHandler.getDestHandler(destinationType, version); const respList: ProcessorTransformationResponse[][] = await Promise.all( @@ -87,10 +88,10 @@ export default class NativeIntegrationDestinationService implements IntegrationD events: RouterTransformationRequestData[], destinationType: string, version: string, - _requestMetadata: Object, + _requestMetadata: NonNullable, ): Promise { const destHandler = FetchHandler.getDestHandler(destinationType, version); - const allDestEvents: Object = groupBy( + const allDestEvents: NonNullable = groupBy( events, (ev: RouterTransformationRequestData) => ev.destination?.ID, ); @@ -131,13 +132,13 @@ export default class NativeIntegrationDestinationService implements IntegrationD events: RouterTransformationRequestData[], destinationType: string, version: any, - _requestMetadata: Object, + _requestMetadata: NonNullable, ): RouterTransformationResponse[] { const destHandler = FetchHandler.getDestHandler(destinationType, version); if (!destHandler.batch) { throw new Error(`${destinationType} does not implement batch`); } - const allDestEvents: Object = groupBy( + const allDestEvents: NonNullable = groupBy( events, (ev: RouterTransformationRequestData) => ev.destination?.ID, ); @@ -167,7 +168,7 @@ export default class NativeIntegrationDestinationService implements IntegrationD public async deliver( destinationRequest: ProcessorTransformationOutput, destinationType: string, - _requestMetadata: Object, + _requestMetadata: NonNullable, ): Promise { try { const networkHandler = networkHandlerFactory.getNetworkHandler(destinationType); diff --git a/src/services/destination/postTransformation.ts b/src/services/destination/postTransformation.ts index 9e04f97fac..090e39b059 100644 --- a/src/services/destination/postTransformation.ts +++ b/src/services/destination/postTransformation.ts @@ -1,3 +1,4 @@ +/* eslint-disable no-param-reassign */ import cloneDeep from 'lodash/cloneDeep'; import isObject from 'lodash/isObject'; import isEmpty from 'lodash/isEmpty'; @@ -47,7 +48,7 @@ export default class DestinationPostTransformationService { } public static handleProcessorTransformFailureEvents( - error: Object, + error: NonNullable, metaTo: MetaTransferObject, ): ProcessorTransformationResponse { const errObj = generateErrorObject(error, metaTo.errorDetails); @@ -105,7 +106,7 @@ export default class DestinationPostTransformationService { } public static handleRouterTransformFailureEvents( - error: Object, + error: NonNullable, metaTo: MetaTransferObject, ): RouterTransformationResponse { const errObj = generateErrorObject(error, metaTo.errorDetails); @@ -122,7 +123,7 @@ export default class DestinationPostTransformationService { } public static handleBatchTransformFailureEvents( - error: Object, + error: NonNullable, metaTo: MetaTransferObject, ): RouterTransformationResponse { const errObj = generateErrorObject(error, metaTo.errorDetails); @@ -138,7 +139,7 @@ export default class DestinationPostTransformationService { } public static handleDeliveryFailureEvents( - error: Object, + error: NonNullable, metaTo: MetaTransferObject, ): DeliveryResponse { const errObj = generateErrorObject(error, metaTo.errorDetails, false); @@ -156,7 +157,7 @@ export default class DestinationPostTransformationService { } public static handleUserDeletionFailureEvents( - error: Object, + error: NonNullable, metaTo: MetaTransferObject, ): UserDeletionResponse { const errObj = generateErrorObject(error, metaTo.errorDetails, false); diff --git a/src/services/destination/preTransformation.ts b/src/services/destination/preTransformation.ts index 61ca20f7fe..dd5579b7b9 100644 --- a/src/services/destination/preTransformation.ts +++ b/src/services/destination/preTransformation.ts @@ -1,6 +1,5 @@ import { Context } from 'koa'; import { ProcessorTransformationRequest, RouterTransformationRequestData } from '../../types/index'; -import { DynamicConfigParser } from '../../util/dynamicConfigParser'; export default class PreTransformationDestinationService { public static preProcess( @@ -8,12 +7,13 @@ export default class PreTransformationDestinationService { ctx: Context, ) { const reqParams = ctx.request.query; - events = events.map( + const eventsProcessed = events.map( (event: ProcessorTransformationRequest | RouterTransformationRequestData) => { + // eslint-disable-next-line no-param-reassign event.request = { query: reqParams }; return event; }, ); - return events; + return eventsProcessed; } } diff --git a/src/services/errorReporting.ts b/src/services/errorReporting.ts index ba0bd9b21c..2d3c84ff30 100644 --- a/src/services/errorReporting.ts +++ b/src/services/errorReporting.ts @@ -1,7 +1,7 @@ import { client } from '../util/errorNotifier'; export default class ErrorReportingService { - public static reportError(error: Object, context: string, errorResp: Object) { + public static reportError(error: NonNullable, context: string, errorResp: object) { client.notify(error, context, { ...errorResp, }); diff --git a/src/services/eventTest/eventTester.ts b/src/services/eventTest/eventTester.ts index 3055b947af..d4f30fff78 100644 --- a/src/services/eventTest/eventTester.ts +++ b/src/services/eventTest/eventTester.ts @@ -1,7 +1,9 @@ import { sendToDestination, userTransformHandler } from '../../routerUtils'; +import { FixMe } from '../../util/types'; export default class EventTesterService { private static getDestHandler(version, destination) { + // eslint-disable-next-line global-require, import/no-dynamic-require return require(`../../${version}/destinations/${destination}/transform`); } @@ -9,7 +11,7 @@ export default class EventTesterService { function capitalize(s) { return s === 'id' ? s.toUpperCase() : s.charAt(0).toUpperCase() + s.slice(1); } - const transformedObj = {}; + let transformedObj: FixMe; const { destinationDefinition } = dest; Object.keys(dest).forEach((key) => { transformedObj[capitalize(key)] = dest[key]; @@ -19,7 +21,7 @@ export default class EventTesterService { Object.keys(destinationDefinition).forEach((key) => { destDef[capitalize(key)] = destinationDefinition[key]; }); - transformedObj['DestinationDefinition'] = destDef; + transformedObj.DestinationDefinition = destDef; return transformedObj; } @@ -52,19 +54,19 @@ export default class EventTesterService { libraries, }; - let response = {}; + let response: FixMe; let errorFound = false; if (stage.user_transform) { let librariesVersionIDs = []; - if (event.libraries) { + if (libraries) { librariesVersionIDs = events[0].libraries.map((library) => library.versionId); } const transformationVersionId = ev.destination && - ev.destination['Transformations'] && - ev.destination['Transformations'][0] && - ev.destination['Transformations'][0].versionId; + ev.destination.Transformations && + ev.destination.Transformations[0] && + ev.destination.Transformations[0].versionId; if (transformationVersionId) { try { @@ -78,16 +80,16 @@ export default class EventTesterService { throw new Error(userTransformedEvent.error); } - response['user_transformed_payload'] = userTransformedEvent.transformedEvent; + response.user_transformed_payload = userTransformedEvent.transformedEvent; ev.message = userTransformedEvent.transformedEvent; } catch (err: any) { errorFound = true; - response['user_transformed_payload'] = { + response.user_transformed_payload = { error: err.message || JSON.stringify(err), }; } } else { - response['user_transformed_payload'] = { + response.user_transformed_payload = { error: 'Transformation VersionID not found', }; } @@ -99,18 +101,18 @@ export default class EventTesterService { const desthandler = this.getDestHandler(version, dest); const transformedOutput = await desthandler.process(ev); if (Array.isArray(transformedOutput)) { - response['dest_transformed_payload'] = transformedOutput; + response.dest_transformed_payload = transformedOutput; } else { - response['dest_transformed_payload'] = [transformedOutput]; + response.dest_transformed_payload = [transformedOutput]; } } catch (err: any) { errorFound = true; - response['dest_transformed_payload'] = { + response.dest_transformed_payload = { error: err.message || JSON.stringify(err), }; } } else { - response['dest_transformed_payload'] = { + response.dest_transformed_payload = { error: 'error encountered in user_transformation stage. Aborting.', }; } @@ -119,27 +121,27 @@ export default class EventTesterService { if (stage.dest_transform && stage.send_to_destination) { // send event to destination only after transformation if (!errorFound) { - const destResponses: any[] = []; - const destResponseStatuses: any[] = []; + const destResponses: FixMe[] = []; + const destResponseStatuses: FixMe[] = []; - const transformedPayloads = response['dest_transformed_payload']; + const transformedPayloads = response.dest_transformed_payload; // eslint-disable-next-line no-restricted-syntax for (const payload of transformedPayloads) { // eslint-disable-next-line no-await-in-loop const parsedResponse = await sendToDestination(dest, payload); let contentType = ''; - let response = ''; + let responsePayload = ''; if (parsedResponse.headers) { contentType = parsedResponse.headers['content-type']; if (this.isSupportedContentType(contentType)) { - response = parsedResponse.response; + responsePayload = parsedResponse.response; } } else if (parsedResponse.networkFailure) { - response = parsedResponse.response; + responsePayload = parsedResponse.response; } - destResponses.push(response); + destResponses.push(responsePayload); destResponseStatuses.push(parsedResponse.status); // TODO: Use updated handleResponseTransform function @@ -162,7 +164,7 @@ export default class EventTesterService { destination_response_status: destResponseStatuses, }; } else { - response['destination_response'] = { + response.destination_response = { error: 'error encountered in dest_transformation stage. Aborting.', }; } diff --git a/src/services/misc.ts b/src/services/misc.ts index 2805f58584..fe38b5b2bd 100644 --- a/src/services/misc.ts +++ b/src/services/misc.ts @@ -1,9 +1,10 @@ +/* eslint-disable global-require, import/no-dynamic-require */ import fs from 'fs'; import path from 'path'; import { Context } from 'koa'; import { DestHandlerMap } from '../constants/destinationCanonicalNames'; import { Metadata } from '../types'; -import { getCPUProfile, getHeapProfile, } from '../middleware'; +import { getCPUProfile, getHeapProfile } from '../middleware'; export default class MiscService { public static getDestHandler(dest: string, version: string) { @@ -21,6 +22,7 @@ export default class MiscService { return require(`../${version}/destinations/${dest}/deleteUsers`); } + // eslint-disable-next-line @typescript-eslint/no-unused-vars public static getRequestMetadata(ctx: Context) { // TODO: Parse information such as // cluster, namespace, etc information @@ -69,6 +71,6 @@ export default class MiscService { } public static async getHeapProfile() { - return getHeapProfile() + return getHeapProfile(); } } diff --git a/src/services/profile.ts b/src/services/profile.ts index 5f02b5c2fa..4d7a7104e7 100644 --- a/src/services/profile.ts +++ b/src/services/profile.ts @@ -7,6 +7,8 @@ import v8 from 'v8'; import pprof, { heap } from '@datadog/pprof'; import { promisify } from 'util'; import logger from '../logger'; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +import { CatchErr } from '../util/types'; // The average number of bytes between samples. // 512*1024 = 524288 @@ -22,6 +24,7 @@ heap.start(intervalBytes, stackDepth); export default class ProfileService { private static async promisifiedRead(readable: any) { + // eslint-disable-next-line no-new new Promise((resolve, reject) => { // Instructions for reading data const chunks: any[] = []; @@ -81,11 +84,13 @@ export default class ProfileService { const shouldGenerateLocally = !credBucketDetails.sendTo; logger.info('Before Heapsnapshot converted into a readable stream'); let fileName = ''; - let format = 'pb.gz'; + // eslint-disable-next-line no-param-reassign + format = 'pb.gz'; let profile; if (format && format === 'v8') { const readable = v8.getHeapSnapshot(); snapshotReadableStream = await this.promisifiedRead(readable); + // eslint-disable-next-line no-param-reassign format = 'heapsnapshot'; } else { profile = heap.profile(); @@ -99,7 +104,7 @@ export default class ProfileService { logger.info('Before pipeline'); try { await writeFileProm(fileName, snapshotReadableStream); - } catch (error: any) { + } catch (error: CatchErr) { logger.error('Error occurred:', error); throw new Error(error); } @@ -123,7 +128,7 @@ export default class ProfileService { credBucketDetails.sendTo ? credBucketDetails.sendTo : 'locally' } with filename: ${fileName}`, }; - } catch (error: any) { + } catch (error: CatchErr) { logger.error(error); return { success: false, diff --git a/src/services/source/nativeIntegration.ts b/src/services/source/nativeIntegration.ts index e654940fec..f29d68d054 100644 --- a/src/services/source/nativeIntegration.ts +++ b/src/services/source/nativeIntegration.ts @@ -5,6 +5,7 @@ import { RudderMessage, SourceTransformationResponse, } from '../../types/index'; +import { FixMe } from '../../util/types'; import PostTransformationServiceSource from './postTransformation'; import FetchHandler from '../../helpers/fetchHandlers'; import tags from '../../v0/util/tags'; @@ -25,19 +26,20 @@ export default class NativeIntegrationSourceService implements IntegrationSource } public async sourceTransformRoutine( - sourceEvents: Object[], + sourceEvents: NonNullable[], sourceType: string, version: string, - _requestMetadata: Object, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + _requestMetadata: NonNullable, ): Promise { const sourceHandler = FetchHandler.getSourceHandler(sourceType, version); - const respList: SourceTransformationResponse[] = await Promise.all( + const respList: SourceTransformationResponse[] = await Promise.all( sourceEvents.map(async (sourceEvent) => { try { const respEvents: RudderMessage | RudderMessage[] | SourceTransformationResponse = await sourceHandler.process(sourceEvent); return PostTransformationServiceSource.handleSuccessEventsSource(respEvents); - } catch (error: any) { + } catch (error: FixMe) { const metaTO = this.getTags(); stats.increment('source_transform_errors', { sourceType, diff --git a/src/services/source/postTransformation.ts b/src/services/source/postTransformation.ts index 603f1b1c0a..f732cac3a7 100644 --- a/src/services/source/postTransformation.ts +++ b/src/services/source/postTransformation.ts @@ -1,10 +1,11 @@ import { MetaTransferObject, RudderMessage, SourceTransformationResponse } from '../../types/index'; +import { CatchErr } from '../../util/types'; import { generateErrorObject } from '../../v0/util'; import ErrorReportingService from '../errorReporting'; export default class PostTransformationSourceService { public static handleFailureEventsSource( - error: Object, + error: CatchErr, metaTO: MetaTransferObject, ): SourceTransformationResponse { const errObj = generateErrorObject(error, metaTO.errorDetails); diff --git a/src/services/userTransform.ts b/src/services/userTransform.ts index 74d9203188..14c6d9b9aa 100644 --- a/src/services/userTransform.ts +++ b/src/services/userTransform.ts @@ -8,20 +8,24 @@ import { UserTransformationResponse, UserTransformationServiceResponse, } from '../types/index'; -import { RespStatusError, RetryRequestError, extractStackTraceUptoLastSubstringMatch } from '../util/utils'; +import { + RespStatusError, + RetryRequestError, + extractStackTraceUptoLastSubstringMatch, +} from '../util/utils'; import { getMetadata, isNonFuncObject } from '../v0/util'; import { SUPPORTED_FUNC_NAMES } from '../util/ivmFactory'; import logger from '../logger'; import stats from '../util/stats'; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +import { CatchErr, FixMe } from '../util/types'; export default class UserTransformService { public static async transformRoutine( events: ProcessorTransformationRequest[], ): Promise { - - const startTime = new Date(); let retryStatus = 200; - const groupedEvents: Object = groupBy( + const groupedEvents: NonNullable = groupBy( events, (event: ProcessorTransformationRequest) => `${event.metadata.destinationId}_${event.metadata.sourceId}`, @@ -29,14 +33,14 @@ export default class UserTransformService { stats.counter('user_transform_function_group_size', Object.entries(groupedEvents).length, {}); stats.histogram('user_transform_input_events', events.length, {}); - const transformedEvents: any[] = []; - let librariesVersionIDs: any[] = []; + const transformedEvents: FixMe[] = []; + let librariesVersionIDs: FixMe[] = []; if (events[0].libraries) { librariesVersionIDs = events[0].libraries.map( (library: UserTransformationLibrary) => library.VersionID, ); } - const responses = await Promise.all( + const responses = await Promise.all( Object.entries(groupedEvents).map(async ([dest, destEvents]) => { logger.debug(`dest: ${dest}`); const eventsToProcess = destEvents as ProcessorTransformationRequest[]; @@ -83,7 +87,7 @@ export default class UserTransformService { statusCode: 400, error: ev.error, metadata: isEmpty(ev.metadata) ? commonMetadata : ev.metadata, - } as ProcessorTransformationResponse; + } as unknown as ProcessorTransformationResponse; } if (!isNonFuncObject(ev.transformedEvent)) { return { @@ -101,7 +105,7 @@ export default class UserTransformService { } as ProcessorTransformationResponse; }), ); - } catch (error: any) { + } catch (error: CatchErr) { logger.error(error); let status = 400; const errorString = error.toString(); @@ -150,7 +154,7 @@ export default class UserTransformService { } public static async testTransformRoutine(events, trRevCode, libraryVersionIDs) { - const response: any = {}; + const response: FixMe = {}; try { if (!trRevCode || !trRevCode.code || !trRevCode.codeVersion) { throw new Error('Invalid Request. Missing parameters in transformation code block'); @@ -160,6 +164,7 @@ export default class UserTransformService { } logger.debug(`[CT] Test Input Events: ${JSON.stringify(events)}`); + // eslint-disable-next-line no-param-reassign trRevCode.versionId = 'testVersionId'; response.body = await userTransformHandler()( events, @@ -170,9 +175,11 @@ export default class UserTransformService { ); logger.debug(`[CT] Test Output Events: ${JSON.stringify(response.body.transformedEvents)}`); response.status = 200; - } catch (error: any) { + } catch (error: CatchErr) { response.status = 400; - response.body = { error: extractStackTraceUptoLastSubstringMatch(error.stack, SUPPORTED_FUNC_NAMES) }; + response.body = { + error: extractStackTraceUptoLastSubstringMatch(error.stack, SUPPORTED_FUNC_NAMES), + }; } return response; } diff --git a/src/testRouter.js b/src/testRouter.js index 5c9d56e78d..6080816663 100644 --- a/src/testRouter.js +++ b/src/testRouter.js @@ -28,8 +28,8 @@ const isSupportedContentType = (contentType) => { const testRouter = new Router({ prefix: '/test-router' }); -const getDestHandler = (version, destination) => - require(`./${version}/destinations/${destination}/transform`); +const getDestHandler = (ver, destination) => + require(`./${ver}/destinations/${destination}/transform`); const getDestinations = () => fs.readdirSync(path.resolve(__dirname, version, 'destinations')); diff --git a/src/types/index.ts b/src/types/index.ts index 38ce52f017..ff0c1f88b9 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,3 +1,6 @@ +import { CatchErr, FixMe } from '../util/types'; + +/* eslint-disable @typescript-eslint/no-explicit-any */ type ProcessorTransformationOutput = { version: string; type: string; @@ -25,8 +28,8 @@ type Metadata = { sourceCategory: string; trackingPlanId: string; trackingPlanVersion: number; - sourceTpConfig: Object; - mergedTpConfig: Object; + sourceTpConfig: object; + mergedTpConfig: object; destinationId: string; jobRunId: string; jobId: number; @@ -35,7 +38,7 @@ type Metadata = { sourceJobRunId: string; sourceTaskId: string; sourceTaskRunId: string; - recordId: Object; + recordId: object; destinationType: string; messageId: string; oauthAccessToken: string; @@ -52,21 +55,21 @@ type Metadata = { type UserTransformationInput = { VersionID: string; ID: string; - Config: Object; + Config: object; }; type DestinationDefinition = { ID: string; Name: string; DisplayName: string; - Config: Object; + Config: FixMe; }; type Destination = { ID: string; Name: string; DestinationDefinition: DestinationDefinition; - Config: Object; + Config: FixMe; Enabled: boolean; WorkspaceID: string; Transformations: UserTransformationInput[]; @@ -78,16 +81,16 @@ type UserTransformationLibrary = { }; type ProcessorTransformationRequest = { - request?: Object; - message: Object; + request?: object; + message: object; metadata: Metadata; destination: Destination; libraries: UserTransformationLibrary[]; }; type RouterTransformationRequestData = { - request?: Object; - message: Object; + request?: object; + message: object; metadata: Metadata; destination: Destination; }; @@ -102,7 +105,7 @@ type ProcessorTransformationResponse = { metadata: Metadata; statusCode: number; error?: string; - statTags: Object; + statTags: object; }; type RouterTransformationResponse = { @@ -112,7 +115,7 @@ type RouterTransformationResponse = { batched: boolean; statusCode: number; error: string; - statTags: Object; + statTags: object; }; type SourceTransformationOutput = { @@ -121,17 +124,17 @@ type SourceTransformationOutput = { type SourceTransformationResponse = { output: SourceTransformationOutput; - error: Object; + error: CatchErr; statusCode: number; - outputToSource: Object; - statTags: Object; + outputToSource: object; + statTags: object; }; type DeliveryResponse = { status: number; message: string; - destinationResponse: Object; - statTags: Object; + destinationResponse: object; + statTags: object; authErrorCategory?: string; }; @@ -150,15 +153,15 @@ type RudderMessage = { anonymousId: string; type: MessageType; channel: string; - context: Object; + context: object; originalTimestamp: Date; sentAt: Date; timestamp: Date; event?: string; - integrations?: Object; + integrations?: object; messageId: string; - properties?: Object; - traits?: Object; + properties?: object; + traits?: object; }; type ErrorDetailer = { @@ -187,7 +190,7 @@ type MetaTransferObject = { type UserTransformationResponse = { transformedEvent: RudderMessage; metadata: Metadata; - error: Object; + error: CatchErr; }; type UserTransformationServiceResponse = { @@ -196,8 +199,8 @@ type UserTransformationServiceResponse = { }; type UserDeletionRequest = { - userAttributes: any[]; - config: Object; + userAttributes: FixMe[]; + config: object; destType: string; jobId: string; }; @@ -206,15 +209,15 @@ type UserDeletionResponse = { statusCode: number; error?: string; status?: string; - authErrorCategory: any; - statTags: Object; + authErrorCategory: FixMe; + statTags: object; }; type ComparatorInput = { events: ProcessorTransformationRequest[] | RouterTransformationRequestData[]; destination: string; version: string; - requestMetadata: Object; + requestMetadata: object; feature: string; }; diff --git a/src/util/customTransforrmationsStore.js b/src/util/customTransforrmationsStore.js index 46e2b9c9b5..08d417c07c 100644 --- a/src/util/customTransforrmationsStore.js +++ b/src/util/customTransforrmationsStore.js @@ -4,7 +4,7 @@ const logger = require('../logger'); const { responseStatusHandler } = require('./utils'); const stats = require('./stats'); -const myCache = new NodeCache(); +const myCache = new NodeCache({ stdTTL: 60 * 60 * 24 * 1 }); // const CONFIG_BACKEND_URL = "http://localhost:5000"; const CONFIG_BACKEND_URL = process.env.CONFIG_BACKEND_URL || 'https://api.rudderlabs.com'; diff --git a/src/util/dynamicConfigParser.ts b/src/util/dynamicConfigParser.ts index fc4a02bc84..73ad85a0d2 100644 --- a/src/util/dynamicConfigParser.ts +++ b/src/util/dynamicConfigParser.ts @@ -1,14 +1,15 @@ import cloneDeep from 'lodash/cloneDeep'; import { ProcessorTransformationRequest, RouterTransformationRequestData } from '../types/index'; +import { FixMe } from './types'; /* eslint-disable no-param-reassign */ const get = require('get-value'); const unset = require('unset-value'); -export class DynamicConfigParser { +export default class DynamicConfigParser { private static getDynamicConfigValue( event: ProcessorTransformationRequest | RouterTransformationRequestData, - value: any, + value: FixMe, ) { // this regex checks for pattern "only spaces {{ path || defaultvalue }} only spaces" . // " {{message.traits.key || \"email\" }} " @@ -38,7 +39,7 @@ export class DynamicConfigParser { } private static configureVal( - value: any, + value: FixMe, event: ProcessorTransformationRequest | RouterTransformationRequestData, ) { if (value) { diff --git a/src/util/eventValidation.js b/src/util/eventValidation.js index a920b9bde5..68d895dcc5 100644 --- a/src/util/eventValidation.js +++ b/src/util/eventValidation.js @@ -10,9 +10,10 @@ const hash = require('object-hash'); const logger = require('../logger'); const trackingPlan = require('./trackingPlan'); +const SECONDS_IN_DAY = 60 * 60 * 24 * 1; const eventSchemaCache = new NodeCache(); -const ajv19Cache = new NodeCache({ useClones: false }); -const ajv4Cache = new NodeCache({ useClones: false }); +const ajv19Cache = new NodeCache({ useClones: false, stdTTL: SECONDS_IN_DAY }); +const ajv4Cache = new NodeCache({ useClones: false, stdTTL: SECONDS_IN_DAY }); const { isEmptyObject } = require('../v0/util'); const defaultOptions = { diff --git a/src/util/fetch.js b/src/util/fetch.js index efadc3c884..95856dd7fd 100644 --- a/src/util/fetch.js +++ b/src/util/fetch.js @@ -1,6 +1,7 @@ +/* eslint-disable @typescript-eslint/return-await */ const fetch = require('node-fetch'); const HttpsProxyAgent = require('https-proxy-agent'); -const _ = require('lodash'); +const lodash = require('lodash'); const { RetryRequestError } = require('./utils'); const fetchWithProxy = async (url, options = {}) => { @@ -13,7 +14,7 @@ const fetchWithProxy = async (url, options = {}) => { instanceOptions.agent = new HttpsProxyAgent(process.env.HTTPS_PROXY); } - if (_.isEmpty(instanceOptions)) { + if (lodash.isEmpty(instanceOptions)) { return await fetch(url); } return await fetch(url, instanceOptions); diff --git a/src/util/openfaas/index.js b/src/util/openfaas/index.js index 1b3e531ceb..60ad316e1b 100644 --- a/src/util/openfaas/index.js +++ b/src/util/openfaas/index.js @@ -20,6 +20,7 @@ const FAAS_MAX_INFLIGHT = process.env.FAAS_MAX_INFLIGHT || '4'; const FAAS_EXEC_TIMEOUT = process.env.FAAS_EXEC_TIMEOUT || '4s'; const FAAS_ENABLE_WATCHDOG_ENV_VARS = process.env.FAAS_ENABLE_WATCHDOG_ENV_VARS || 'true'; const CONFIG_BACKEND_URL = process.env.CONFIG_BACKEND_URL || 'https://api.rudderlabs.com'; +const GEOLOCATION_URL = process.env.GEOLOCATION_URL || ''; const FAAS_AST_VID = 'ast'; const FAAS_AST_FN_NAME = 'fn-ast'; @@ -128,6 +129,9 @@ const deployFaasFunction = async (functionName, code, versionId, libraryVersionI envVars.max_inflight = FAAS_MAX_INFLIGHT; envVars.exec_timeout = FAAS_EXEC_TIMEOUT; } + if (GEOLOCATION_URL) { + envVars.geolocation_url = GEOLOCATION_URL; + } // TODO: investigate and add more required labels and annotations const payload = { service: functionName, diff --git a/src/util/types.ts b/src/util/types.ts new file mode 100644 index 0000000000..579c35579c --- /dev/null +++ b/src/util/types.ts @@ -0,0 +1,25 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +export type FixMe = any; + +export type CatchErr = any; + +export interface Config { + cdkEnabled?: boolean; + cdkV2Enabled?: boolean; + comparisonTestEnabeld?: boolean; + comparisonService?: string; + camparisonTestThreshold?: number; +} + +export interface IDestDefinition { + id: string; + name: string; + displayName: string; + config: Config; + options: { + isBeta?: boolean; + hidden?: boolean; + } | null; + isPopular: boolean; + uiConfig: FixMe; +} diff --git a/src/util/utils.js b/src/util/utils.js index 160bbae3c9..0ba6008368 100644 --- a/src/util/utils.js +++ b/src/util/utils.js @@ -1,4 +1,4 @@ -/* eslint-disable max-classes-per-file */ +/* eslint-disable max-classes-per-file, @typescript-eslint/return-await */ const http = require('http'); const https = require('https'); const { Resolver } = require('dns').promises; @@ -36,6 +36,7 @@ const staticLookup = (transformerVersionId) => async (hostname, _, cb) => { return; } + // eslint-disable-next-line no-restricted-syntax for (const ip of ips) { if (ip.startsWith(LOCALHOST_OCTET)) { cb(null, `cannot use ${ip} as IP address`, RECORD_TYPE_A); diff --git a/src/v0/destinations/active_campaign/transform.js b/src/v0/destinations/active_campaign/transform.js index f995254730..905a8e897f 100644 --- a/src/v0/destinations/active_campaign/transform.js +++ b/src/v0/destinations/active_campaign/transform.js @@ -283,7 +283,7 @@ const customFieldProcessor = async (message, category, destination) => { const storedFields = Object.keys(fieldMap); const filteredFieldKeys = []; - fieldKeys.map((fieldKey) => { + fieldKeys.forEach((fieldKey) => { // If the field is present in fieldMap push it to filteredFieldKeys else ignore if (storedFields.includes(fieldKey)) { filteredFieldKeys.push(fieldKey); @@ -297,7 +297,7 @@ const customFieldProcessor = async (message, category, destination) => { // Creating a field array list conating field id and field value which will be merged to the contact // Ref: https://developers.activecampaign.com/reference/sync-a-contacts-data const fieldsArrValues = []; - filteredFieldKeys.map((key) => { + filteredFieldKeys.forEach((key) => { let fPayload; if (Array.isArray(fieldInfo[key])) { fPayload = '||'; @@ -327,7 +327,7 @@ const customListProcessor = async (message, category, destination, contactId) => // The list info is pushed into a list object array const listArr = []; if (Array.isArray(listInfo)) { - listInfo.map((list) => { + listInfo.forEach((list) => { listArr.push(list); }); } else { @@ -337,7 +337,8 @@ const customListProcessor = async (message, category, destination, contactId) => // status information // Ref: https://developers.activecampaign.com/reference/update-list-status-for-contact/ const promises = []; - listArr.map(async (li) => { + // eslint-disable-next-line no-restricted-syntax + for (const li of listArr) { if (li.status === 'subscribe' || li.status === 'unsubscribe') { const endpoint = `${destination.Config.apiUrl}${category.mergeListWithContactUrl}`; const requestData = { @@ -356,7 +357,7 @@ const customListProcessor = async (message, category, destination, contactId) => }); promises.push(res); } - }); + } const responses = await Promise.all(promises); responses.forEach((respItem) => { if (respItem.success === false) { diff --git a/src/v0/destinations/adj/transform.js b/src/v0/destinations/adj/transform.js index 1862012bb1..695654e58a 100644 --- a/src/v0/destinations/adj/transform.js +++ b/src/v0/destinations/adj/transform.js @@ -21,7 +21,12 @@ const rejectParams = ['revenue', 'currency']; function responseBuilderSimple(message, category, destination) { const payload = constructPayload(message, MAPPING_CONFIG[category.name]); - const { appToken, customMappings, environment } = destination.Config; + const { appToken, customMappings, environment, partnerParamsKeys } = destination.Config; + if (!appToken) { + throw new ConfigurationError( + 'App Token is not present. Please configure your app token from config dashbaord', + ); + } const platform = get(message, 'context.device.type'); const id = get(message, 'context.device.id'); if (typeof platform !== 'string' || !platform || !id) { @@ -37,7 +42,7 @@ function responseBuilderSimple(message, category, destination) { throw new InstrumentationError('Device type not valid'); } if (payload.revenue) { - payload.currency = message.properties.currency || 'USD'; + payload.currency = message?.properties?.currency || 'USD'; } const hashMap = getHashFromArray(customMappings, 'from', 'to', false); if (payload && message.event && hashMap[message.event]) { @@ -46,11 +51,11 @@ function responseBuilderSimple(message, category, destination) { Accept: '*/*', }; - const partnerParamsKeysMap = getHashFromArray(destination?.Config?.partnerParamsKeys); + const partnerParamsKeysMap = getHashFromArray(partnerParamsKeys); if (partnerParamsKeysMap) { payload.partner_params = {}; Object.keys(partnerParamsKeysMap).forEach((key) => { - if (message.properties[key]) { + if (message?.properties?.[key]) { payload.partner_params[partnerParamsKeysMap[key]] = message.properties[key].toString(); } }); @@ -81,9 +86,8 @@ function responseBuilderSimple(message, category, destination) { // fail-safety for developer error if (!message.event || !hashMap[message.event]) { throw new ConfigurationError('No event token mapped for this event'); - } else { - throw new TransformationError('Payload could not be constructed'); } + throw new TransformationError('Payload could not be constructed'); } const processEvent = (message, destination) => { diff --git a/src/v0/destinations/adobe_analytics/transform.js b/src/v0/destinations/adobe_analytics/transform.js index c477b4c93c..54806bf578 100644 --- a/src/v0/destinations/adobe_analytics/transform.js +++ b/src/v0/destinations/adobe_analytics/transform.js @@ -36,7 +36,13 @@ const responseBuilderSimple = async (message, destinationConfig, basicPayload) = const { event, context, properties } = message; // set default value of properties.overridePageView to false if not provided properties.overridePageView = properties.overridePageView ?? false; - const { overrideEvars, overrideHiers, overrideLists, overrideCustomProperties } = properties; + const { + overrideEvars, + overrideHiers, + overrideLists, + overrideCustomProperties, + overridePageView, + } = properties; // handle contextData payload = handleContextData(payload, destinationConfig, message); @@ -60,7 +66,7 @@ const responseBuilderSimple = async (message, destinationConfig, basicPayload) = // handle link values // default linktype to 'o', linkName to event name, linkURL to ctx.page.url if not passed in integrations object const adobeIntegrationsObject = getIntegrationsObj(message, 'adobe_analytics'); - if (!properties?.overridePageView) { + if (!overridePageView) { payload.linkType = adobeIntegrationsObject?.linkType || 'o'; payload.linkName = adobeIntegrationsObject?.linkName || event; // setting linkname to page view for page calls @@ -86,7 +92,7 @@ const responseBuilderSimple = async (message, destinationConfig, basicPayload) = // handle pageName, pageUrl const contextPageUrl = context?.page?.url; - if (properties?.overridePageView) { + if (overridePageView) { const propertiesPageUrl = properties?.pageUrl; const pageUrl = contextPageUrl || propertiesPageUrl; if (isDefinedAndNotNullAndNotEmpty(pageUrl)) { @@ -337,7 +343,7 @@ const processTrackEvent = (message, adobeEventName, destinationConfig, extras = const handleTrack = (message, destinationConfig) => { const ORDER_ID_KEY = 'properties.order_id'; - const { event: rawEvent } = message; + const { event: rawEvent, properties } = message; let payload = null; // handle ecommerce events separately // generic events should go to the default @@ -378,12 +384,8 @@ const handleTrack = (message, destinationConfig) => { destinationConfig.rudderEventsToAdobeEvents[event]?.trim(), destinationConfig, ); - } else if (message?.properties?.overrideEventName) { - payload = processTrackEvent( - message, - message?.properties?.overrideEventName, - destinationConfig, - ); + } else if (properties?.overrideEventName) { + payload = processTrackEvent(message, properties.overrideEventName, destinationConfig); } else { throw new ConfigurationError( 'The event is not a supported ECOM event or a mapped custom event. Aborting.', diff --git a/src/v0/destinations/bqstream/transform.js b/src/v0/destinations/bqstream/transform.js index 4db1856535..55679b08a8 100644 --- a/src/v0/destinations/bqstream/transform.js +++ b/src/v0/destinations/bqstream/transform.js @@ -1,14 +1,16 @@ /* eslint-disable no-console */ -const _ = require('lodash'); +const lodash = require('lodash'); const { EventType } = require('../../../constants'); const { defaultBatchRequestConfig, getSuccessRespEvents, checkInvalidRtTfEvents, handleRtTfSingleEventError, + groupEventsByType, } = require('../../util'); const { MAX_ROWS_PER_REQUEST, DESTINATION } = require('./config'); const { InstrumentationError } = require('../../util/errorTypes'); +const { getRearrangedEvents } = require('./util'); const getInsertIdColValue = (properties, insertIdCol) => { if ( @@ -50,11 +52,11 @@ const process = (event) => { }; }; -const batchEvents = (eventsChunk) => { +const batchEachUserSuccessEvents = (eventsChunk) => { const batchedResponseList = []; // arrayChunks = [[e1,e2, ..batchSize], [e1,e2, ..batchSize], ...] - const arrayChunks = _.chunk(eventsChunk, MAX_ROWS_PER_REQUEST); + const arrayChunks = lodash.chunk(eventsChunk, MAX_ROWS_PER_REQUEST); // list of chunks [ [..], [..] ] arrayChunks.forEach((chunk) => { @@ -68,7 +70,7 @@ const batchEvents = (eventsChunk) => { chunk.forEach((ev) => { // Pixel code must be added above "batch": [..] batchResponseList.push(ev.message.properties); - metadata.push(ev.metadata); + metadata.push(ev.metadata[0]); }); batchEventResponse.batchedRequest = { @@ -97,26 +99,23 @@ const batchEvents = (eventsChunk) => { return batchedResponseList; }; -const processRouterDest = (inputs) => { - const errorRespEvents = checkInvalidRtTfEvents(inputs, DESTINATION); - if (errorRespEvents.length > 0) { - return errorRespEvents; - } - - const eventsChunk = []; // temporary variable to divide payload into chunks - const errorRespList = []; - - inputs.forEach((event) => { +const processEachTypedEventList = ( + typedEventList, + eachTypeSuccessEventList, + eachTypeErrorEventsList, +) => { + typedEventList.forEach((event) => { try { if (event.message.statusCode) { // already transformed event - eventsChunk.push(event); + eachTypeSuccessEventList.push(event); } else { // if not transformed - let response = process(event); - response = Array.isArray(response) ? response : [response]; - response.forEach((res) => { - eventsChunk.push({ + const response = process(event); + const transformedEvents = Array.isArray(response) ? response : [response]; + + transformedEvents.forEach((res) => { + eachTypeSuccessEventList.push({ message: res, metadata: event.metadata, destination: event.destination, @@ -124,16 +123,44 @@ const processRouterDest = (inputs) => { }); } } catch (error) { - const errRespEvent = handleRtTfSingleEventError(event, error, DESTINATION); - errorRespList.push(errRespEvent); + const eachUserErrorEvent = handleRtTfSingleEventError(event, error, DESTINATION); + eachTypeErrorEventsList.push(eachUserErrorEvent); } }); +}; - let batchedResponseList = []; - if (eventsChunk.length > 0) { - batchedResponseList = batchEvents(eventsChunk); +const processRouterDest = (inputs) => { + const errorRespEvents = checkInvalidRtTfEvents(inputs, DESTINATION); + if (errorRespEvents.length > 0) { + return errorRespEvents; } - return [...batchedResponseList, ...errorRespList]; + const finalResp = []; + + const batchedEvents = groupEventsByType(inputs); + + batchedEvents.forEach((typedEventList) => { + const eachTypeSuccessEventList = []; // list of events that are transformed successfully + const eachTypeErrorEventsList = []; // list of events that are errored out + processEachTypedEventList(typedEventList, eachTypeSuccessEventList, eachTypeErrorEventsList); + + const orderedEventsList = getRearrangedEvents( + eachTypeSuccessEventList, + eachTypeErrorEventsList, + ); + + orderedEventsList.forEach((eventList) => { + // no error event list will have more than one items in the list + if (eventList[0].error) { + finalResp.push([...eventList]); + } else { + // batch the successful events + const eachTypeBatchedResponse = batchEachUserSuccessEvents(eventList); + finalResp.push([...eachTypeBatchedResponse]); + } + }); + }); + + return finalResp.flat(); }; module.exports = { process, processRouterDest }; diff --git a/src/v0/destinations/bqstream/util.js b/src/v0/destinations/bqstream/util.js index 2448d72d76..4fa926e54e 100644 --- a/src/v0/destinations/bqstream/util.js +++ b/src/v0/destinations/bqstream/util.js @@ -1,149 +1,84 @@ /* eslint-disable no-param-reassign */ -const getValue = require('get-value'); -const { - getDynamicErrorType, - processAxiosResponse, -} = require('../../../adapters/utils/networkUtils'); -const { - REFRESH_TOKEN, - AUTH_STATUS_INACTIVE, -} = require('../../../adapters/networkhandler/authConstants'); -const { isHttpStatusSuccess } = require('../../util'); -const { proxyRequest } = require('../../../adapters/network'); -const { UnhandledStatusCodeError, NetworkError, AbortedError } = require('../../util/errorTypes'); -const tags = require('../../util/tags'); - -const DESTINATION_NAME = 'bqstream'; - -const trimBqStreamResponse = (response) => ({ - code: getValue(response, 'response.response.data.error.code'), // data.error.status which contains PERMISSION_DENIED - status: getValue(response, 'response.response.status'), - statusText: getValue(response, 'response.response.statusText'), - headers: getValue(response, 'response.response.headers'), - data: getValue(response, 'response.response.data'), // Incase of errors, this contains error data - success: getValue(response, 'suceess'), -}); +const { isDefinedAndNotNull } = require('../../util'); /** - * Obtains the Destination OAuth Error Category based on the error code obtained from destination + * Optimizes the error response by merging the metadata of the same error type and adding it to the result array. * - * - If an error code is such that the user will not be allowed inside the destination, - * such error codes fall under AUTH_STATUS_INACTIVE - * - If an error code is such that upon refresh we can get a new token which can be used to send event, - * such error codes fall under REFRESH_TOKEN category - * - If an error code doesn't fall under both categories, we can return an empty string - * @param {string} errorCategory - The error code obtained from the destination - * @returns Destination OAuth Error Category + * @param {Object} item - An object representing an error event with properties like `error`, `jobId`, and `metadata`. + * @param {Map} errorMap - A Map object to store the error events and their metadata. + * @param {Array} resultArray - An array to store the optimized error response. + * @returns {void} */ -const getDestAuthCategory = (errorCategory) => { - switch (errorCategory) { - case 'PERMISSION_DENIED': - return AUTH_STATUS_INACTIVE; - case 'UNAUTHENTICATED': - return REFRESH_TOKEN; - default: - return ''; +const optimizeErrorResponse = (item, errorMap, resultArray) => { + const currentError = item.error; + if (errorMap.has(currentError)) { + // If the error already exists in the map, merge the metadata + const existingErrDetails = errorMap.get(currentError); + existingErrDetails.metadata.push(...item.metadata); + } else { + // Otherwise, add it to the map + errorMap.set(currentError, { ...item }); + resultArray.push([errorMap.get(currentError)]); } }; -const destToRudderStatusMap = { - 403: { - rateLimitExceeded: 429, - default: 400, - }, - 400: { - tableUnavailable: 500, - default: 400, - }, - 500: { default: 500 }, - 503: { default: 500 }, - 401: { default: 500 }, - 404: { default: 400 }, - 501: { default: 400 }, +const convertMetadataToArray = (eventList) => { + const processedEvents = eventList.map((event) => ({ + ...event, + metadata: Array.isArray(event.metadata) ? event.metadata : [event.metadata], + })); + return processedEvents; }; -const getStatusAndCategory = (dresponse, status) => { - const authErrorCategory = getDestAuthCategory(dresponse.error.status); - const reason = - dresponse.error.errors && - Array.isArray(dresponse.error.errors) && - dresponse.error.errors.length > 0 && - dresponse.error.errors[0].reason; +/** + * Formats a list of error events into a composite response. + * + * @param {Array} errorEvents - A list of error events, where each event can have an `error` property and a `metadata` array. + * @returns {Array} The formatted composite response, where each element is an array containing the error details. + */ +const formatCompositeResponse = (errorEvents) => { + const resultArray = []; + const errorMap = new Map(); - const trStatus = destToRudderStatusMap[status] - ? destToRudderStatusMap[status][reason] || destToRudderStatusMap[status].default - : 500; - return { status: trStatus, authErrorCategory }; + // eslint-disable-next-line no-restricted-syntax + for (const item of errorEvents) { + if (isDefinedAndNotNull(item.error)) { + optimizeErrorResponse(item, errorMap, resultArray); + } + } + return resultArray; }; /** - * This class actually handles the response for BigQuery Stream API - * It can also be used for any Google related API but an API related handling has to be done separately - * - * Here we are only trying to handle OAuth related error(s) - * Any destination specific error handling has to be done in their own way - * - * Reference doc for OAuth Errors - * 1. https://cloud.google.com/apigee/docs/api-platform/reference/policies/oauth-http-status-code-reference - * 2. https://cloud.google.com/bigquery/docs/error-messages - * - * Summary: - * Abortable -> 403, 501, 400 - * Retryable -> 5[0-9][02-9], 401(UNAUTHENTICATED) - * "Special Cases": - * status=200, resp.insertErrors.length > 0 === Failure - * 403 => AccessDenied -> AUTH_STATUS_INACTIVE, other 403 => Just abort + * Rearranges the events based on their success or error status. + * If there are no successful events, it groups error events with the same error and their metadata. + * If there are successful events, it returns the batched response of successful events. * + * @param {Array} successEventList - An array of objects representing successful events. + * Each object should have an `id` and `metadata` property. + * @param {Array} errorEventList - An array of objects representing error events. + * Each object should have an `id`, `metadata`, and `error` property. + * @returns {Array} - An array of rearranged events. */ -const processResponse = ({ dresponse, status } = {}) => { - const isSuccess = - !dresponse.error && - isHttpStatusSuccess(status) && - (!dresponse.insertErrors || (dresponse.insertErrors && dresponse.insertErrors.length === 0)); +const getRearrangedEvents = (successEventList, errorEventList) => { + // Convert 'metadata' to an array if it's not already + const processedSuccessfulEvents = convertMetadataToArray(successEventList); + const processedErrorEvents = convertMetadataToArray(errorEventList); - if (!isSuccess) { - if (dresponse.error) { - const { status: trStatus } = getStatusAndCategory(dresponse, status); - throw new NetworkError( - dresponse.error.message || `Request failed for ${DESTINATION_NAME} with status: ${status}`, - trStatus, - { - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(trStatus), - }, - dresponse, - ); - } else if (dresponse.insertErrors && dresponse.insertErrors.length > 0) { - const temp = trimBqStreamResponse(dresponse); - throw new AbortedError( - 'Problem during insert operation', - 400, - { - [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(temp.status || 400), - }, - temp, - getDestAuthCategory(temp.code), - ); - } - throw new UnhandledStatusCodeError('Unhandled error type while sending to destination'); + // if there are no error events, then return the batched response + if (errorEventList.length === 0) { + return [processedSuccessfulEvents]; + } + // if there are no batched response, then return the error events + if (successEventList.length === 0) { + return formatCompositeResponse(processedErrorEvents); } -}; -const responseHandler = (respTransformPayload) => { - const { response, status } = respTransformPayload; - processResponse({ - dresponse: response, - status, - }); - return { - status, - destinationResponse: response, - message: 'Request Processed Successfully', - }; + // if there are both batched response and error events, then order them + const combinedTransformedEventList = [ + [...processedSuccessfulEvents], + ...formatCompositeResponse(processedErrorEvents), + ]; + return combinedTransformedEventList; }; -function networkHandler() { - this.responseHandler = responseHandler; - this.proxy = proxyRequest; - this.processAxiosResponse = processAxiosResponse; -} - -module.exports = { networkHandler }; +module.exports = { getRearrangedEvents }; diff --git a/src/v0/destinations/bqstream/util.test.js b/src/v0/destinations/bqstream/util.test.js new file mode 100644 index 0000000000..c7635772ac --- /dev/null +++ b/src/v0/destinations/bqstream/util.test.js @@ -0,0 +1,267 @@ +const { getRearrangedEvents } = require('./util'); + +describe('getRearrangedEvents', () => { + // Tests that the function returns an array of transformed events when there are no error events + it('should return an array of transformed events when all events are track and successfully transformed', () => { + const eachUserSuccessEventslist = [ + { message: { type: 'track' }, metadata: { jobId: 1 } }, + { message: { type: 'track' }, metadata: { jobId: 3 } }, + { message: { type: 'track' }, metadata: { jobId: 5 } }, + ]; + const eachUserErrorEventsList = []; + const expected = [ + [ + { message: { type: 'track' }, metadata: [{ jobId: 1 }] }, + { message: { type: 'track' }, metadata: [{ jobId: 3 }] }, + { message: { type: 'track' }, metadata: [{ jobId: 5 }] }, + ], + ]; + const result = getRearrangedEvents(eachUserSuccessEventslist, eachUserErrorEventsList); + expect(result).toEqual(expected); + }); + + // Tests that the function returns an empty array when both input arrays are empty + it('should return an empty array when both input arrays are empty', () => { + const eachUserSuccessEventslist = []; + const eachUserErrorEventsList = []; + const expected = [[]]; + const result = getRearrangedEvents(eachUserSuccessEventslist, eachUserErrorEventsList); + expect(result).toEqual(expected); + }); + + // Tests that the function returns an array with only error events when all events are erroneous + it('should return an array with only error events when all events are erroneous', () => { + const eachUserSuccessEventslist = []; + const eachUserErrorEventsList = [ + { + batched: false, + destination: {}, + error: 'Message Type not supported: identify', + metadata: [{ jobId: 3, userId: 'user12345' }], + }, + { + batched: false, + destination: {}, + error: 'Message Type not supported: identify', + metadata: [{ jobId: 4, userId: 'user12345' }], + }, + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [{ jobId: 5, userId: 'user12345' }], + }, + ]; + const expected = [ + [ + { + batched: false, + destination: {}, + error: 'Message Type not supported: identify', + metadata: [ + { jobId: 3, userId: 'user12345' }, + { jobId: 4, userId: 'user12345' }, + ], + }, + ], + [ + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [ + { + jobId: 5, + userId: 'user12345', + }, + ], + }, + ], + ]; + const result = getRearrangedEvents(eachUserSuccessEventslist, eachUserErrorEventsList); + expect(result).toEqual(expected); + }); + // Tests that the function does not return an ordered array of events with both successful and erroneous events + it('case 1 : 1--> success, 2 --> fail, 3 --> success, 4 --> fail, 5 --> success', () => { + const errorEventsList = [ + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [{ jobId: 2, userId: 'user12345' }], + }, + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [{ jobId: 4, userId: 'user12345' }], + }, + ]; + const successEventslist = [ + { message: { type: 'track' }, metadata: { jobId: 1 } }, + { message: { type: 'track' }, metadata: { jobId: 3 } }, + { message: { type: 'track' }, metadata: { jobId: 5 } }, + ]; + const expected = [ + [ + { message: { type: 'track' }, metadata: [{ jobId: 1 }] }, + { message: { type: 'track' }, metadata: [{ jobId: 3 }] }, + { message: { type: 'track' }, metadata: [{ jobId: 5 }] }, + ], + [ + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [ + { jobId: 2, userId: 'user12345' }, + { jobId: 4, userId: 'user12345' }, + ], + }, + ], + ]; + const result = getRearrangedEvents(successEventslist, errorEventsList); + expect(result).toEqual(expected); + }); + + it('case 2 : 1--> success, 2 --> success, 3 --> fail, 4 --> fail, 5 --> success', () => { + const errorEventsList = [ + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [{ jobId: 3, userId: 'user12345' }], + }, + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [{ jobId: 4, userId: 'user12345' }], + }, + ]; + const successEventslist = [ + { message: { type: 'track' }, metadata: { jobId: 1 } }, + { message: { type: 'track' }, metadata: { jobId: 2 } }, + { message: { type: 'track' }, metadata: { jobId: 5 } }, + ]; + const expected = [ + [ + { + message: { + type: 'track', + }, + metadata: [ + { + jobId: 1, + }, + ], + }, + { + message: { + type: 'track', + }, + metadata: [ + { + jobId: 2, + }, + ], + }, + { + message: { + type: 'track', + }, + metadata: [ + { + jobId: 5, + }, + ], + }, + ], + [ + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [ + { + jobId: 3, + userId: 'user12345', + }, + { + jobId: 4, + userId: 'user12345', + }, + ], + }, + ], + ]; + const result = getRearrangedEvents(successEventslist, errorEventsList); + console.log(JSON.stringify(result)); + expect(result).toEqual(expected); + }); + + it('case 3 : 1--> fail, 2 --> success, 3 --> success, 4 --> fail', () => { + const errorEventsList = [ + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [{ jobId: 1, userId: 'user12345' }], + }, + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [{ jobId: 4, userId: 'user12345' }], + }, + ]; + const successEventslist = [ + { message: { type: 'track' }, metadata: { jobId: 2 } }, + { message: { type: 'track' }, metadata: { jobId: 3 } }, + ]; + const expected = [ + [ + { + message: { + type: 'track', + }, + metadata: [ + { + jobId: 2, + }, + ], + }, + { + message: { + type: 'track', + }, + metadata: [ + { + jobId: 3, + }, + ], + }, + ], + [ + { + batched: false, + destination: {}, + error: 'Invalid payload for the destination', + metadata: [ + { + jobId: 1, + userId: 'user12345', + }, + { + jobId: 4, + userId: 'user12345', + }, + ], + }, + ], + ]; + const result = getRearrangedEvents(successEventslist, errorEventsList); + console.log(JSON.stringify(result)); + expect(result).toEqual(expected); + }); +}); diff --git a/src/v0/destinations/branch/transform.js b/src/v0/destinations/branch/transform.js index 362f6cc840..0d47fbd791 100644 --- a/src/v0/destinations/branch/transform.js +++ b/src/v0/destinations/branch/transform.js @@ -44,7 +44,7 @@ function getCategoryAndName(rudderEventName) { for (const category of categoriesList) { let requiredName = null; let requiredCategory = null; - // eslint-disable-next-line array-callback-return + // eslint-disable-next-line array-callback-return, sonarjs/no-ignored-return Object.keys(category.name).find((branchKey) => { if ( typeof branchKey === 'string' && @@ -53,7 +53,9 @@ function getCategoryAndName(rudderEventName) { ) { requiredName = category.name[branchKey]; requiredCategory = category; + return true; } + return false; }); if (requiredName != null && requiredCategory != null) { return { evName: requiredName, category: requiredCategory }; @@ -112,6 +114,7 @@ function mapPayload(category, rudderProperty, rudderPropertiesObj) { let valFound = false; if (category.content_items) { + // eslint-disable-next-line sonarjs/no-ignored-return Object.keys(category.content_items).find((branchMappingProperty) => { if (branchMappingProperty === rudderProperty) { const tmpKeyName = category.content_items[branchMappingProperty]; @@ -168,7 +171,7 @@ function getCommonPayload(message, category, evName) { productObj = {}; for (let i = 0; i < rudderPropertiesObj.products.length; i += 1) { const product = rudderPropertiesObj.products[i]; - // eslint-disable-next-line no-loop-func + // eslint-disable-next-line @typescript-eslint/no-loop-func Object.keys(product).forEach((productProp) => { const { contentItemsObj, eventDataObj, customDataObj } = mapPayload( category, diff --git a/src/v0/destinations/braze/networkHandler.js b/src/v0/destinations/braze/networkHandler.js index 48034af487..cf6d36c2b4 100644 --- a/src/v0/destinations/braze/networkHandler.js +++ b/src/v0/destinations/braze/networkHandler.js @@ -10,6 +10,7 @@ const { NetworkError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); const stats = require('../../../util/stats'); +// eslint-disable-next-line @typescript-eslint/no-unused-vars const responseHandler = (destinationResponse, _dest) => { const message = `Request for ${DESTINATION} Processed Successfully`; const { response, status } = destinationResponse; diff --git a/src/v0/destinations/braze/transform.js b/src/v0/destinations/braze/transform.js index 7650f03b8f..5f651041ea 100644 --- a/src/v0/destinations/braze/transform.js +++ b/src/v0/destinations/braze/transform.js @@ -1,5 +1,5 @@ /* eslint-disable no-nested-ternary,no-param-reassign */ -const _ = require('lodash'); +const lodash = require('lodash'); const get = require('get-value'); const { BrazeDedupUtility, @@ -80,7 +80,7 @@ function getIdentifyPayload(message) { let payload = {}; payload = setAliasObjectWithAnonId(payload, message); payload = setExternalId(payload, message); - return { aliases_to_identify: [payload], merge_behavior: "merge" }; + return { aliases_to_identify: [payload], merge_behavior: 'merge' }; } function populateCustomAttributesWithOperation( @@ -379,6 +379,7 @@ function processGroup(message, destination) { } else if (email) { subscriptionGroup.emails = [email]; } + // eslint-disable-next-line @typescript-eslint/naming-convention const subscription_groups = [subscriptionGroup]; const response = defaultRequestConfig(); response.endpoint = getSubscriptionGroupEndPoint(getEndpointFromConfig(destination)); @@ -518,7 +519,7 @@ const processRouterDest = async (inputs, reqMetadata) => { BrazeDedupUtility.updateUserStore(userStore, lookedUpUsers, destination.ID); } // group events by userId or anonymousId and then call process - const groupedInputs = _.groupBy( + const groupedInputs = lodash.groupBy( inputs, (input) => input.message.userId || input.message.anonymousId, ); @@ -537,7 +538,7 @@ const processRouterDest = async (inputs, reqMetadata) => { const output = await Promise.all(allResps); - const allTransfomredEvents = _.flatMap(output); + const allTransfomredEvents = lodash.flatMap(output); return processBatch(allTransfomredEvents); }; diff --git a/src/v0/destinations/braze/util.js b/src/v0/destinations/braze/util.js index d772503b58..0793ca5891 100644 --- a/src/v0/destinations/braze/util.js +++ b/src/v0/destinations/braze/util.js @@ -1,4 +1,4 @@ -/* eslint-disable camelcase */ +/* eslint-disable */ const _ = require('lodash'); const get = require('get-value'); const stats = require('../../../util/stats'); diff --git a/src/v0/destinations/campaign_manager/networkHandler.js b/src/v0/destinations/campaign_manager/networkHandler.js index a80fff6fe4..cd98de253e 100644 --- a/src/v0/destinations/campaign_manager/networkHandler.js +++ b/src/v0/destinations/campaign_manager/networkHandler.js @@ -52,7 +52,7 @@ const responseHandler = (destinationResponse) => { } throw new NetworkError( - `Campaign Manager: ${response.error.message} during CAMPAIGN_MANAGER response transformation 3`, + `Campaign Manager: ${response.error?.message} during CAMPAIGN_MANAGER response transformation 3`, status, { [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(status), diff --git a/src/v0/destinations/canny/util.js b/src/v0/destinations/canny/util.js index 9666f143df..002d9aa69f 100644 --- a/src/v0/destinations/canny/util.js +++ b/src/v0/destinations/canny/util.js @@ -25,7 +25,7 @@ const retrieveUserId = async (apiKey, message) => { message.traits?.email || message.context?.traits?.email || message.properties?.email; const { userId } = message; - const header = { + const headers = { 'Content-Type': 'application/x-www-form-urlencoded', Accept: JSON_MIME_TYPE, }; @@ -38,10 +38,15 @@ const retrieveUserId = async (apiKey, message) => { } else { requestBody.userID = `${userId}`; } - const response = await httpPOST(url, qs.stringify(requestBody), header, { - destType: 'canny', - feature: 'transformation', - }); + const response = await httpPOST( + url, + qs.stringify(requestBody), + { headers }, + { + destType: 'canny', + feature: 'transformation', + }, + ); logger.debug(response); // If the request fails, throwing error. if (response.success === false) { diff --git a/src/v0/destinations/clevertap/networkHandler.js b/src/v0/destinations/clevertap/networkHandler.js index aafe77e792..35c972e502 100644 --- a/src/v0/destinations/clevertap/networkHandler.js +++ b/src/v0/destinations/clevertap/networkHandler.js @@ -43,6 +43,7 @@ const responseHandler = (destinationResponse) => { }; }; +// eslint-disable-next-line @typescript-eslint/naming-convention class networkHandler { constructor() { this.responseHandler = responseHandler; diff --git a/src/v0/destinations/clevertap/transform.js b/src/v0/destinations/clevertap/transform.js index 7ce864aae2..e3d9ca1083 100644 --- a/src/v0/destinations/clevertap/transform.js +++ b/src/v0/destinations/clevertap/transform.js @@ -232,7 +232,7 @@ const getClevertapProfile = (message, category) => { if (message.traits?.overrideFields) { const { overrideFields } = message.traits; Object.assign(profile, overrideFields); - } else if (message.context.traits?.overrideFields) { + } else if (message.context?.traits?.overrideFields) { const { overrideFields } = message.context.traits; Object.assign(profile, overrideFields); } diff --git a/src/v0/destinations/criteo_audience/networkHandler.js b/src/v0/destinations/criteo_audience/networkHandler.js index 5bf29f63c5..83cde5028f 100644 --- a/src/v0/destinations/criteo_audience/networkHandler.js +++ b/src/v0/destinations/criteo_audience/networkHandler.js @@ -81,6 +81,7 @@ const responseHandler = (destinationResponse) => { }; }; +// eslint-disable-next-line @typescript-eslint/naming-convention class networkHandler { constructor() { this.responseHandler = responseHandler; diff --git a/src/v0/destinations/criteo_audience/util.js b/src/v0/destinations/criteo_audience/util.js index ab58560fb1..a7541f7911 100644 --- a/src/v0/destinations/criteo_audience/util.js +++ b/src/v0/destinations/criteo_audience/util.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const { isDefinedAndNotNullAndNotEmpty } = require('../../util'); const { ConfigurationError, InstrumentationError } = require('../../util/errorTypes'); const { MAX_IDENTIFIERS } = require('./config'); @@ -14,7 +14,7 @@ const populateIdentifiers = (audienceList, audienceType) => { } identifiers.push(userTraits[audienceType]); }); - const identifierChunks = _.chunk(identifiers, MAX_IDENTIFIERS); + const identifierChunks = lodash.chunk(identifiers, MAX_IDENTIFIERS); return identifierChunks; }; diff --git a/src/v0/destinations/customerio/util.js b/src/v0/destinations/customerio/util.js index dec16b355e..735b6a73d9 100644 --- a/src/v0/destinations/customerio/util.js +++ b/src/v0/destinations/customerio/util.js @@ -102,7 +102,7 @@ const isdeviceRelatedEventName = (eventName, destination) => const identifyResponseBuilder = (userId, message) => { const rawPayload = {}; // if userId is not there simply drop the payload - const id = userId || getFieldValueFromMessage(message, "email"); + const id = userId || getFieldValueFromMessage(message, 'email'); if (!id) { throw new InstrumentationError('userId or email is not present'); } @@ -177,6 +177,7 @@ const aliasResponseBuilder = (message, userId) => { if (validateEmail(userId)) { cioProperty = 'email'; } + // eslint-disable-next-line @typescript-eslint/naming-convention let prev_cioProperty = 'id'; if (validateEmail(message.previousId)) { prev_cioProperty = 'email'; @@ -229,12 +230,11 @@ const defaultResponseBuilder = (message, evName, userId, evType, destination, me let requestConfig = defaultPostRequestConfig; // any other event type except identify const token = get(message, 'context.device.token'); - const id = userId || getFieldValueFromMessage(message, "email"); + const id = userId || getFieldValueFromMessage(message, 'email'); // use this if only top level keys are to be sent // DEVICE DELETE from CustomerIO const isDeviceDeleteEvent = deviceDeleteRelatedEventName === evName; if (isDeviceDeleteEvent) { - if (!id || !token) { throw new InstrumentationError('userId/email or device_token not present'); } @@ -253,7 +253,7 @@ const defaultResponseBuilder = (message, evName, userId, evType, destination, me last_used: Math.floor(new Date(timestamp).getTime() / 1000), }; const deviceType = get(message, 'context.device.type'); - if (deviceType && typeof deviceType === "string") { + if (deviceType && typeof deviceType === 'string') { // Ref - https://www.customer.io/docs/api/#operation/add_device // supported platform are "ios", "android" devProps.platform = isAppleFamily(deviceType) ? 'ios' : deviceType.toLowerCase(); @@ -306,9 +306,9 @@ const defaultResponseBuilder = (message, evName, userId, evType, destination, me return { rawPayload, endpoint, requestConfig }; }; -const validateConfigFields = destination => { +const validateConfigFields = (destination) => { const { Config } = destination; - configFieldsToCheck.forEach(configProperty => { + configFieldsToCheck.forEach((configProperty) => { if (!Config[configProperty]) { throw new ConfigurationError(`${configProperty} not found in Configs`); } @@ -323,5 +323,5 @@ module.exports = { defaultResponseBuilder, populateSpecedTraits, isdeviceRelatedEventName, - validateConfigFields + validateConfigFields, }; diff --git a/src/v0/destinations/fb/networkHandler.js b/src/v0/destinations/fb/networkHandler.js index b79b2ab493..06235fab40 100644 --- a/src/v0/destinations/fb/networkHandler.js +++ b/src/v0/destinations/fb/networkHandler.js @@ -11,6 +11,7 @@ const destResponseHandler = (destinationResponse) => { }; }; +// eslint-disable-next-line @typescript-eslint/naming-convention class networkHandler { constructor() { this.prepareProxyRequest = prepareProxyRequest; diff --git a/src/v0/destinations/fb/transform.js b/src/v0/destinations/fb/transform.js index a6a8b71e8d..756c74ba83 100644 --- a/src/v0/destinations/fb/transform.js +++ b/src/v0/destinations/fb/transform.js @@ -161,7 +161,7 @@ function sanityCheckPayloadForTypesAndModifications(updatedEvent) { return clonedUpdatedEvent; } -function getCorrectedTypedValue(pathToKey, value, originalPath) { +function getCorrectedTypedValue(pathToKey, value) { const type = eventPropToTypeMapping[pathToKey]; // TODO: we should remove this eslint rule or comeup with a better way // eslint-disable-next-line valid-typeof @@ -169,10 +169,12 @@ function getCorrectedTypedValue(pathToKey, value, originalPath) { return value; } + const mappingKey = Object.keys(eventPropsMapping).find( + (key) => eventPropsMapping[key] === pathToKey, + ); + throw new InstrumentationError( - `${ - typeof originalPath === 'object' ? JSON.stringify(originalPath) : originalPath - } is not of valid type`, + `Value of ${mappingKey} is not of valid type. It should be of type ${type}`, ); } @@ -221,7 +223,6 @@ function processEventTypeGeneric(message, baseEvent, fbEventName) { updatedEvent.custom_events[0][fbEventPath][length] = getCorrectedTypedValue( fbEventPath, intendValue, - parentArray[length], ); length += 1; count -= 1; @@ -233,7 +234,7 @@ function processEventTypeGeneric(message, baseEvent, fbEventName) { set( updatedEvent.custom_events[0], fbEventPath, - getCorrectedTypedValue(fbEventPath, intendValue, rudderEventPath), + getCorrectedTypedValue(fbEventPath, intendValue), ); } } else { diff --git a/src/v0/destinations/fb_custom_audience/transform.js b/src/v0/destinations/fb_custom_audience/transform.js index 64125ffc3b..f31a3dd42e 100644 --- a/src/v0/destinations/fb_custom_audience/transform.js +++ b/src/v0/destinations/fb_custom_audience/transform.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const get = require('get-value'); const { defaultRequestConfig, @@ -62,7 +62,7 @@ const preparePayload = ( disableFormat, destinationId, ) => { - const prepareFinalPayload = _.cloneDeep(paramsPayload); + const prepareFinalPayload = lodash.cloneDeep(paramsPayload); if (Array.isArray(userSchema)) { prepareFinalPayload.schema = userSchema; } else { diff --git a/src/v0/destinations/fb_custom_audience/util.js b/src/v0/destinations/fb_custom_audience/util.js index 8ec15fe670..9e7198e393 100644 --- a/src/v0/destinations/fb_custom_audience/util.js +++ b/src/v0/destinations/fb_custom_audience/util.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const sha256 = require('sha256'); const get = require('get-value'); const jsonSize = require('json-size'); @@ -31,7 +31,7 @@ const batchingWithPayloadSize = (payload) => { const revisedPayloadArray = []; const noOfBatches = Math.ceil(payloadSize / maxPayloadSize); const revisedRecordsPerPayload = Math.floor(payload.data.length / noOfBatches); - const revisedDataArray = _.chunk(payload.data, revisedRecordsPerPayload); + const revisedDataArray = lodash.chunk(payload.data, revisedRecordsPerPayload); revisedDataArray.forEach((data) => { revisedPayloadArray.push({ ...payload, data }); }); diff --git a/src/v0/destinations/ga/networkHandler.js b/src/v0/destinations/ga/networkHandler.js index ac244fb4a7..a12f9594cd 100644 --- a/src/v0/destinations/ga/networkHandler.js +++ b/src/v0/destinations/ga/networkHandler.js @@ -1,4 +1,7 @@ -const { REFRESH_TOKEN } = require('../../../adapters/networkhandler/authConstants'); +const { + REFRESH_TOKEN, + AUTH_STATUS_INACTIVE, +} = require('../../../adapters/networkhandler/authConstants'); const { processAxiosResponse, getDynamicErrorType, @@ -29,6 +32,18 @@ const gaResponseHandler = (gaResponse) => { if (isInvalidCredsError || response?.error?.status === 'UNAUTHENTICATED') { throw new InvalidAuthTokenError('invalid credentials', 500, response, REFRESH_TOKEN); } + const isInvalidGrantError = + response?.error.code === 403 && + response.error?.errors?.some((errObj) => errObj.reason === 'insufficientPermissions'); + if (isInvalidGrantError) { + throw new InvalidAuthTokenError( + response?.error?.message || 'insufficent permissions', + 400, + response, + AUTH_STATUS_INACTIVE, + ); + } + throw new NetworkError( `Error occurred while completing deletion request: ${response.error?.message}`, status, diff --git a/src/v0/destinations/ga/transform.js b/src/v0/destinations/ga/transform.js index 0c2a0f8a49..c10697c4e1 100644 --- a/src/v0/destinations/ga/transform.js +++ b/src/v0/destinations/ga/transform.js @@ -443,7 +443,7 @@ function processRefundEvent(message, destination) { let { enhancedEcommerce } = destination.Config; enhancedEcommerce = enhancedEcommerce || false; - // eslint-disable-next-line camelcase + // eslint-disable-next-line @typescript-eslint/naming-convention const { products, order_id } = message.properties; if (products && products.length > 0) { const productParams = setProductLevelProperties( @@ -598,7 +598,7 @@ function processProductEvent(message, destination) { const customParamKeys = getCustomParamKeys(destination.Config); Object.assign(parameters, getProductLevelCustomParams(message.properties, 1, customParamKeys)); } - // eslint-disable-next-line camelcase + // eslint-disable-next-line @typescript-eslint/naming-convention const { sku, product_id } = message.properties; // eslint-disable-next-line camelcase const productId = product_id; diff --git a/src/v0/destinations/ga360/transform.js b/src/v0/destinations/ga360/transform.js index a9d4f6b210..c60ea47551 100644 --- a/src/v0/destinations/ga360/transform.js +++ b/src/v0/destinations/ga360/transform.js @@ -401,7 +401,7 @@ function processRefundEvent(message, destination) { let { enhancedEcommerce } = destination.Config; enhancedEcommerce = enhancedEcommerce || false; - // eslint-disable-next-line camelcase + // eslint-disable-next-line @typescript-eslint/naming-convention const { products, order_id } = message.properties; if (products && products.length > 0) { const productParams = setProductLevelProperties( @@ -545,7 +545,7 @@ function processProductEvent(message, destination) { const customParamKeys = getCustomParamKeys(destination.Config); Object.assign(parameters, getProductLevelCustomParams(message.properties, 1, customParamKeys)); } - // eslint-disable-next-line camelcase + // eslint-disable-next-line @typescript-eslint/naming-convention const { sku, product_id } = message.properties; // eslint-disable-next-line camelcase const productId = product_id; diff --git a/src/v0/destinations/ga4/transform.js b/src/v0/destinations/ga4/transform.js index dc89927085..d1d0790fa9 100644 --- a/src/v0/destinations/ga4/transform.js +++ b/src/v0/destinations/ga4/transform.js @@ -106,7 +106,7 @@ const responseBuilder = (message, { Config }) => { } break; default: - throw ConfigurationError('Invalid type of client'); + throw new ConfigurationError('Invalid type of client'); } let payload = {}; @@ -119,7 +119,7 @@ const responseBuilder = (message, { Config }) => { payload.name = evConfigEvent; payload.params = constructPayload(message, mappingConfig[name]); - const { items, mapRootLevelPropertiesToGA4ItemsArray } = getItemsArray(message, item, itemList) + const { items, mapRootLevelPropertiesToGA4ItemsArray } = getItemsArray(message, item, itemList); if (items.length > 0) { payload.params.items = items; @@ -233,7 +233,7 @@ const responseBuilder = (message, { Config }) => { } // Prepare GA4 user properties - const userProperties = prepareUserProperties(message); + const userProperties = prepareUserProperties(message, Config.piiPropertiesToIgnore); if (!isEmptyObject(userProperties)) { rawPayload.user_properties = userProperties; } diff --git a/src/v0/destinations/ga4/utils.js b/src/v0/destinations/ga4/utils.js index b86d14ef1b..d356300ff7 100644 --- a/src/v0/destinations/ga4/utils.js +++ b/src/v0/destinations/ga4/utils.js @@ -166,13 +166,15 @@ const GA4_ITEM_EXCLUSION = [ ]; /** - * Remove arrays and objects from transformed payload - * @param {*} params - * @returns + * Remove arrays and objects from transformed payload + * @param {*} params + * @returns */ const removeInvalidParams = (params) => Object.fromEntries( - Object.entries(params).filter(([key, value]) => key === 'items' || (typeof value !== 'object' && !isEmpty(value))), + Object.entries(params).filter( + ([key, value]) => key === 'items' || (typeof value !== 'object' && !isEmpty(value)), + ), ); /** @@ -244,10 +246,10 @@ const getItem = (message, isItemsRequired) => { /** * Returns items array for ga4 event payload - * @param {*} message - * @param {*} item - * @param {*} itemList - * @returns + * @param {*} message + * @param {*} item + * @param {*} itemList + * @returns */ const getItemsArray = (message, item, itemList) => { let items = []; @@ -269,7 +271,7 @@ const getItemsArray = (message, item, itemList) => { } return { items, mapRootLevelPropertiesToGA4ItemsArray }; -} +}; /** * get exclusion list for a particular event * ga4ExclusionList contains the sourceKeys that are already mapped @@ -398,21 +400,33 @@ const isValidUserProperty = (key, value) => { /** * Function to validate and prepare user_properties * @param {*} message + * @param {*} piiPropertiesToIgnore + * @returns */ -const prepareUserProperties = (message) => { +const prepareUserProperties = (message, piiPropertiesToIgnore = []) => { + // Exclude PII user traits + const piiProperties = []; + if (piiPropertiesToIgnore.length > 0) { + piiPropertiesToIgnore.forEach((property) => { + if (typeof property.piiProperty === 'string' && property.piiProperty.trim() !== '') { + piiProperties.push(property.piiProperty.trim()); + } + }); + } + const userProperties = extractCustomFields( message, {}, ['properties.user_properties', 'context.traits'], - GA4_RESERVED_USER_PROPERTY_EXCLUSION, + [...GA4_RESERVED_USER_PROPERTY_EXCLUSION, ...piiProperties], ); const validatedUserProperties = Object.entries(userProperties) .filter(([key, value]) => isValidUserProperty(key, value)) .reduce((acc, [key, value]) => { - const userProperties = acc; - userProperties[key] = { value }; - return userProperties; + const userPropertiesObj = acc; + userPropertiesObj[key] = { value }; + return userPropertiesObj; }, {}); return validatedUserProperties; diff --git a/src/v0/destinations/ga4/utils.test.js b/src/v0/destinations/ga4/utils.test.js index a39fef6f5e..7826c23d35 100644 --- a/src/v0/destinations/ga4/utils.test.js +++ b/src/v0/destinations/ga4/utils.test.js @@ -2,7 +2,7 @@ const { validateEventName, prepareUserProperties, removeInvalidParams } = requir const userPropertyData = [ { - description: "Should validate and prepare user_properties", + description: 'Should validate and prepare user_properties', input: { userId: 'user@1', group_id: 'group@1', @@ -163,6 +163,256 @@ describe('Google Analytics 4 utils test', () => { }); describe('prepareUserProperties function tests', () => { + // Empty message and context returns empty object + it('should return empty object when message and context are empty', () => { + // Arrange + const message = {}; + const context = {}; + + // Act + const result = prepareUserProperties(message, []); + + // Assert + expect(result).toEqual({}); + }); + + // Filters out reserved and PII properties + it('should filter out reserved and PII properties', () => { + // Arrange + const message = { + context: { + traits: { + property3: 'value3', + property4: 'value4', + pii_property3: 'pii_value3', + pii_property4: 'pii_value4', + }, + }, + properties: { + user_properties: { + property1: 'value1', + property2: 'value2', + pii_property1: 'pii_value1', + pii_property2: 'pii_value2', + }, + }, + }; + + const piiPropertiesToIgnore = [ + { piiProperty: 'pii_property1' }, + { piiProperty: 'pii_property2' }, + { piiProperty: 'pii_property3' }, + { piiProperty: 'pii_property4' }, + ]; + + // Act + const result = prepareUserProperties(message, piiPropertiesToIgnore); + + // Assert + expect(result).toEqual({ + property1: { value: 'value1' }, + property2: { value: 'value2' }, + property3: { value: 'value3' }, + property4: { value: 'value4' }, + }); + }); + + // Validates user properties and returns them in expected format + it('should validate user properties and return them in expected format', () => { + // Arrange + const message = { + context: { + traits: { + valid_property3: 'value3', + _invalid_property3: '12_invalid_value3', + valid_property4: 'value4', + invalid_property4: [], + }, + }, + properties: { + user_properties: { + valid_property1: 'value1', + '12invalid_property1': 'ga_invalid_value1', + valid_property2: 'value2', + ga_invalid_property2: 'google_invalid_value2', + }, + }, + }; + // Act + const result = prepareUserProperties(message, []); + + // Assert + expect(result).toEqual({ + valid_property1: { value: 'value1' }, + valid_property2: { value: 'value2' }, + valid_property3: { value: 'value3' }, + valid_property4: { value: 'value4' }, + }); + }); + + // Invalid user properties are filtered out + + // User properties with invalid value types are filtered out + it('should filter out user properties with invalid value types', () => { + // Arrange + const message = { + context: { + traits: { + valid_property3: 'value3', + invalid_property3: { 456: 'value3' }, + valid_property4: 'value4', + invalid_property4: '01234567890123456789012345678901234567890123456789', + }, + }, + properties: { + user_properties: { + valid_property1: 'value1', + invalid_property1: [123, 456], + valid_property2: 'value2', + }, + }, + }; + + // Act + const result = prepareUserProperties(message, []); + + // Assert + expect(result).toEqual({ + valid_property1: { value: 'value1' }, + valid_property2: { value: 'value2' }, + valid_property3: { value: 'value3' }, + valid_property4: { value: 'value4' }, + }); + }); + + // PII properties are filtered out + it('should filter out PII properties from user_properties', () => { + // Arrange + const message = { + properties: { + user_properties: { + property1: 'value1', + property2: 'value2', + pii_property1: 'pii_value1', + pii_property2: 'pii_value2', + }, + }, + }; + const piiPropertiesToIgnore = [ + { piiProperty: 'pii_property1' }, + { piiProperty: 'pii_property2' }, + ]; + + // Act + const result = prepareUserProperties(message, piiPropertiesToIgnore); + + // Assert + expect(result).toEqual({ + property1: { value: 'value1' }, + property2: { value: 'value2' }, + }); + }); + + // PII properties are undefined + it('should return undefined when user_properties is undefined', () => { + // Arrange + const message = { + properties: { + user_properties: { + property1: 'value1', + property2: 'value2', + pii_property1: 'pii_value1', + pii_property2: 'pii_value2', + }, + }, + }; + const piiPropertiesToIgnore = undefined; + + // Act + const result = prepareUserProperties(message, piiPropertiesToIgnore); + + // Assert + expect(result).toEqual({ + pii_property1: { value: 'pii_value1' }, + pii_property2: { value: 'pii_value2' }, + property1: { value: 'value1' }, + property2: { value: 'value2' }, + }); + }); + + // User properties with valid keys and values are returned in expected format + it('should return user properties with valid keys and values in expected format', () => { + // Arrange + const message = { + properties: { + user_properties: { + property1: 'value1', + property2: 'value2', + }, + }, + }; + + // Act + const result = prepareUserProperties(message, []); + + // Assert + expect(result).toEqual({ + property1: { value: 'value1' }, + property2: { value: 'value2' }, + }); + }); + + // User properties with valid keys but invalid values are filtered out + it('should filter out user properties with invalid values', () => { + // Arrange + const message = { + properties: { + user_properties: { + validKey1: 'validValue1', + validKey2: 'validValue2', + invalidKey1: '', + invalidKey2: + 'invalidValueThatIsTooLongInvalidValueThatIsTooLongInvalidValueThatIsTooLongInvalidValueThatIsTooLong', + validKey4: true, + }, + }, + }; + const piiPropertiesToIgnore = []; + + // Act + const result = prepareUserProperties(message, piiPropertiesToIgnore); + + // Assert + expect(result).toEqual({ + validKey1: { value: 'validValue1' }, + validKey2: { value: 'validValue2' }, + validKey4: { value: true }, + }); + }); + // User properties with keys starting with reserved prefixes are filtered out + it('should filter out user properties with keys starting with reserved prefixes', () => { + // Arrange + const message = { + properties: { + user_properties: { + google_property: 'value1', + ga_property: 'value2', + firebase_property: 'value3', + valid_property: 'value4', + }, + }, + }; + const piiPropertiesToIgnore = []; + + // Act + const result = prepareUserProperties(message, piiPropertiesToIgnore); + + // Assert + expect(result).toEqual({ + valid_property: { value: 'value4' }, + }); + }); + userPropertyData.forEach((dataPoint) => { it(`${dataPoint.description}`, () => { try { diff --git a/src/v0/destinations/google_adwords_enhanced_conversions/networkHandler.js b/src/v0/destinations/google_adwords_enhanced_conversions/networkHandler.js index e79c568238..1f59eb9e40 100644 --- a/src/v0/destinations/google_adwords_enhanced_conversions/networkHandler.js +++ b/src/v0/destinations/google_adwords_enhanced_conversions/networkHandler.js @@ -18,6 +18,8 @@ const { BASE_ENDPOINT } = require('./config'); const { NetworkError, NetworkInstrumentationError } = require('../../util/errorTypes'); const tags = require('../../util/tags'); +const ERROR_MSG_PATH = 'response[0].error.message'; + /** * This function is used for collecting the conversionActionId using the conversion name * @param {*} method @@ -49,8 +51,8 @@ const getConversionActionId = async (method, headers, params) => { if (!isHttpStatusSuccess(gaecConversionActionIdResponse.status)) { throw new NetworkError( `"${JSON.stringify( - get(gaecConversionActionIdResponse, 'response[0].error.message', '') - ? get(gaecConversionActionIdResponse, 'response[0].error.message', '') + get(gaecConversionActionIdResponse, ERROR_MSG_PATH, '') + ? get(gaecConversionActionIdResponse, ERROR_MSG_PATH, '') : gaecConversionActionIdResponse.response, )} during Google_adwords_enhanced_conversions response transformation"`, gaecConversionActionIdResponse.status, @@ -60,7 +62,7 @@ const getConversionActionId = async (method, headers, params) => { gaecConversionActionIdResponse.response, getAuthErrCategoryFromErrDetailsAndStCode( get(gaecConversionActionIdResponse, 'status'), - get(gaecConversionActionIdResponse, 'response[0].error.message'), + get(gaecConversionActionIdResponse, ERROR_MSG_PATH), ), ); } @@ -107,7 +109,23 @@ const responseHandler = (destinationResponse) => { const message = 'Request Processed Successfully'; const { status } = destinationResponse; if (isHttpStatusSuccess(status)) { - // Mostly any error will not have a status of 2xx + // for google ads enhance conversions the partialFailureError returns with status 200 + const { partialFailureError } = destinationResponse.response; + // non-zero code signifies partialFailure + // Ref - https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto + if (partialFailureError && partialFailureError.code !== 0) { + throw new NetworkError( + `[Google Ads Offline Conversions]:: partialFailureError - ${JSON.stringify( + partialFailureError, + )}`, + 400, + { + [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(400), + }, + partialFailureError, + ); + } + return { status, message, @@ -127,7 +145,8 @@ const responseHandler = (destinationResponse) => { getAuthErrCategoryFromErrDetailsAndStCode(status, response), ); }; -// eslint-disable-next-line func-names + +// eslint-disable-next-line func-names, @typescript-eslint/naming-convention class networkHandler { constructor() { this.proxy = ProxyRequest; @@ -136,4 +155,5 @@ class networkHandler { this.prepareProxy = prepareProxyRequest; } } + module.exports = { networkHandler }; diff --git a/src/v0/destinations/google_adwords_enhanced_conversions/transform.js b/src/v0/destinations/google_adwords_enhanced_conversions/transform.js index 24993a3006..898c3f95b0 100644 --- a/src/v0/destinations/google_adwords_enhanced_conversions/transform.js +++ b/src/v0/destinations/google_adwords_enhanced_conversions/transform.js @@ -11,10 +11,7 @@ const { getAccessToken, } = require('../../util'); -const { - InstrumentationError, - ConfigurationError, -} = require('../../util/errorTypes'); +const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); const { trackMapping, BASE_ENDPOINT } = require('./config'); const { JSON_MIME_TYPE } = require('../../util/constant'); diff --git a/src/v0/destinations/google_adwords_offline_conversions/transform.js b/src/v0/destinations/google_adwords_offline_conversions/transform.js index db87d2488e..93b4592c33 100644 --- a/src/v0/destinations/google_adwords_offline_conversions/transform.js +++ b/src/v0/destinations/google_adwords_offline_conversions/transform.js @@ -139,6 +139,7 @@ const process = async (event) => { const getEventChunks = (event, storeSalesEvents, clickCallEvents) => { const { message, metadata, destination } = event; + // eslint-disable-next-line @typescript-eslint/no-shadow message.forEach((message) => { if (message.body.JSON?.isStoreConversion) { storeSalesEvents.push({ message, metadata, destination }); @@ -166,7 +167,7 @@ const batchEvents = (storeSalesEvents) => { if (index === 0) { return; } - batchEventResponse.batchedRequest?.body?.JSON['addConversionPayload']?.operations?.push( + batchEventResponse.batchedRequest?.body?.JSON.addConversionPayload?.operations?.push( storeSalesEvent.message?.body?.JSON?.addConversionPayload?.operations, ); batchEventResponse.metadatas.push(storeSalesEvent.metadata); diff --git a/src/v0/destinations/google_adwords_offline_conversions/utils.js b/src/v0/destinations/google_adwords_offline_conversions/utils.js index 37f17c9fd0..6bdedcc0d4 100644 --- a/src/v0/destinations/google_adwords_offline_conversions/utils.js +++ b/src/v0/destinations/google_adwords_offline_conversions/utils.js @@ -25,11 +25,7 @@ const { } = require('./config'); const { processAxiosResponse } = require('../../../adapters/utils/networkUtils'); const Cache = require('../../util/cache'); -const { - AbortedError, - ConfigurationError, - InstrumentationError, -} = require('../../util/errorTypes'); +const { AbortedError, ConfigurationError, InstrumentationError } = require('../../util/errorTypes'); const conversionActionIdCache = new Cache(CONVERSION_ACTION_ID_CACHE_TTL); diff --git a/src/v0/destinations/google_cloud_function/transform.js b/src/v0/destinations/google_cloud_function/transform.js index e74d539e3f..b218615b44 100644 --- a/src/v0/destinations/google_cloud_function/transform.js +++ b/src/v0/destinations/google_cloud_function/transform.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const { getSuccessRespEvents, checkInvalidRtTfEvents, @@ -22,7 +22,7 @@ function batchEvents(successRespList, maxBatchSize = 10) { const batchedResponseList = []; // arrayChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] - const arrayChunks = _.chunk(successRespList, maxBatchSize); + const arrayChunks = lodash.chunk(successRespList, maxBatchSize); arrayChunks.forEach((chunk) => { const batchEventResponse = generateBatchedPayload(chunk); batchedResponseList.push( diff --git a/src/v0/destinations/hs/HSTransform-v1.js b/src/v0/destinations/hs/HSTransform-v1.js index 13eeabbc45..387ecbf63f 100644 --- a/src/v0/destinations/hs/HSTransform-v1.js +++ b/src/v0/destinations/hs/HSTransform-v1.js @@ -1,5 +1,5 @@ const get = require('get-value'); -const _ = require('lodash'); +const lodash = require('lodash'); const { MappedToDestinationKey, GENERIC_TRUE_VALUES } = require('../../../constants'); const { defaultGetRequestConfig, @@ -286,9 +286,9 @@ const legacyBatchEvents = (destEvents) => { eventsChunk.push(event); } }); - const arrayChunksIdentifyCreateObjects = _.chunk(createAllObjectsEventChunk, maxBatchSize); + const arrayChunksIdentifyCreateObjects = lodash.chunk(createAllObjectsEventChunk, maxBatchSize); - const arrayChunksIdentifyUpdateObjects = _.chunk(updateAllObjectsEventChunk, maxBatchSize); + const arrayChunksIdentifyUpdateObjects = lodash.chunk(updateAllObjectsEventChunk, maxBatchSize); // batching up 'create' all objects endpoint chunks if (arrayChunksIdentifyCreateObjects.length > 0) { batchedResponseList = batchIdentifyForrETL( @@ -308,7 +308,7 @@ const legacyBatchEvents = (destEvents) => { } // eventChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] - const arrayChunksIdentify = _.chunk(eventsChunk, MAX_BATCH_SIZE); + const arrayChunksIdentify = lodash.chunk(eventsChunk, MAX_BATCH_SIZE); // list of chunks [ [..], [..] ] arrayChunksIdentify.forEach((chunk) => { diff --git a/src/v0/destinations/hs/HSTransform-v2.js b/src/v0/destinations/hs/HSTransform-v2.js index 8cea4611e5..75696b4e96 100644 --- a/src/v0/destinations/hs/HSTransform-v2.js +++ b/src/v0/destinations/hs/HSTransform-v2.js @@ -1,5 +1,5 @@ const get = require('get-value'); -const _ = require('lodash'); +const lodash = require('lodash'); const { MappedToDestinationKey, GENERIC_TRUE_VALUES } = require('../../../constants'); const { defaultPostRequestConfig, @@ -417,23 +417,23 @@ const batchEvents = (destEvents) => { } }); - const arrayChunksIdentifyCreateObjects = _.chunk(createAllObjectsEventChunk, maxBatchSize); + const arrayChunksIdentifyCreateObjects = lodash.chunk(createAllObjectsEventChunk, maxBatchSize); - const arrayChunksIdentifyUpdateObjects = _.chunk(updateAllObjectsEventChunk, maxBatchSize); + const arrayChunksIdentifyUpdateObjects = lodash.chunk(updateAllObjectsEventChunk, maxBatchSize); // eventChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] // CRM create contact endpoint chunks - const arrayChunksIdentifyCreateContact = _.chunk( + const arrayChunksIdentifyCreateContact = lodash.chunk( createContactEventsChunk, MAX_BATCH_SIZE_CRM_CONTACT, ); // CRM update contact endpoint chunks - const arrayChunksIdentifyUpdateContact = _.chunk( + const arrayChunksIdentifyUpdateContact = lodash.chunk( updateContactEventsChunk, MAX_BATCH_SIZE_CRM_CONTACT, ); - const arrayChunksIdentifyCreateAssociations = _.chunk( + const arrayChunksIdentifyCreateAssociations = lodash.chunk( associationObjectsEventChunk, MAX_BATCH_SIZE_CRM_OBJECT, ); diff --git a/src/v0/destinations/hs/util.js b/src/v0/destinations/hs/util.js index 11f7a892d5..ca92ed13cd 100644 --- a/src/v0/destinations/hs/util.js +++ b/src/v0/destinations/hs/util.js @@ -407,6 +407,9 @@ const getEventAndPropertiesFromConfig = (message, destination, payload) => { if (!event) { throw new InstrumentationError('event name is required for track call'); } + if (!hubspotEvents) { + throw new InstrumentationError('Event and property mappings are required for track call'); + } event = event.trim().toLowerCase(); let eventName; let eventProperties; diff --git a/src/v0/destinations/intercom/networkHandler.js b/src/v0/destinations/intercom/networkHandler.js index 4133fbe4dc..33f78e8cf6 100644 --- a/src/v0/destinations/intercom/networkHandler.js +++ b/src/v0/destinations/intercom/networkHandler.js @@ -23,6 +23,7 @@ const destResponseHandler = (destinationResponse, dest) => { }; }; +// eslint-disable-next-line @typescript-eslint/naming-convention class networkHandler { constructor() { this.responseHandler = destResponseHandler; diff --git a/src/v0/destinations/intercom/transform.js b/src/v0/destinations/intercom/transform.js index aa088ee5db..552c80527c 100644 --- a/src/v0/destinations/intercom/transform.js +++ b/src/v0/destinations/intercom/transform.js @@ -94,16 +94,17 @@ function validateTrack(payload) { } const checkIfEmailOrUserIdPresent = (message, Config) => { - let user_id = message.userId; - if (Config.sendAnonymousId && !user_id) { - user_id = message.anonymousId; + const { context, anonymousId } = message; + let { userId } = message; + if (Config.sendAnonymousId && !userId) { + userId = anonymousId; } - return !!(user_id || message.context?.traits?.email); + return !!(userId || context.traits?.email); }; function attachUserAndCompany(message, Config) { const email = message.context?.traits?.email; - const { userId, anonymousId } = message; + const { userId, anonymousId, traits, groupId } = message; const requestBody = {}; if (userId) { requestBody.user_id = userId; @@ -115,10 +116,10 @@ function attachUserAndCompany(message, Config) { requestBody.email = email; } const companyObj = { - company_id: message.groupId, + company_id: groupId, }; - if (message.traits?.name) { - companyObj.name = message.traits.name; + if (traits?.name) { + companyObj.name = traits.name; } requestBody.companies = [companyObj]; const response = defaultRequestConfig(); diff --git a/src/v0/destinations/iterable/deleteUsers.js b/src/v0/destinations/iterable/deleteUsers.js new file mode 100644 index 0000000000..834cccd4cb --- /dev/null +++ b/src/v0/destinations/iterable/deleteUsers.js @@ -0,0 +1,80 @@ +const { httpDELETE } = require('../../../adapters/network'); +const { processAxiosResponse } = require('../../../adapters/utils/networkUtils'); +const { isHttpStatusSuccess } = require('../../util'); +const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); +const { NetworkError, ConfigurationError } = require('../../util/errorTypes'); +const { executeCommonValidations } = require('../../util/regulation-api'); +const tags = require('../../util/tags'); +const { JSON_MIME_TYPE } = require('../../util/constant'); + +// Ref-> https://developers.intercom.com/intercom-api-reference/v1.3/reference/permanently-delete-a-user +const userDeletionHandler = async (userAttributes, config) => { + if (!config) { + throw new ConfigurationError('Config for deletion not present'); + } + const { apiKey } = config; + if (!apiKey) { + throw new ConfigurationError('api key for deletion not present'); + } + const validUserIds = []; + userAttributes.forEach((userAttribute) => { + // Dropping the user if userId is not present + if (userAttribute.userId) { + validUserIds.push(userAttribute.userId); + } + }); + const failedUserDeletions = []; + await Promise.all( + validUserIds.map(async (uId) => { + const url = `https://api.iterable.com/api/users/byUserId/${uId}`; + const requestOptions = { + headers: { + 'Content-Type': JSON_MIME_TYPE, + api_key: apiKey, + }, + }; + const resp = await httpDELETE(url, requestOptions, { + destType: 'iterable', + feature: 'deleteUsers', + }); + const handledDelResponse = processAxiosResponse(resp); + if (!isHttpStatusSuccess(handledDelResponse.status) && handledDelResponse.status !== 404) { + if (handledDelResponse.status !== 400) { + // Generic errors such as invalid api key + throw new NetworkError( + `User deletion request failed : ${handledDelResponse.response.msg}`, + handledDelResponse.status, + { + [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(handledDelResponse.status), + }, + handledDelResponse, + ); + } else { + // Specific errors such as user is not found + failedUserDeletions.push({ userId: uId, Reason: handledDelResponse.response.msg }); + } + } + }), + ); + + if (failedUserDeletions.length > 0) { + throw new NetworkError( + `User deletion request failed for userIds : ${JSON.stringify(failedUserDeletions)}`, + 400, + { + [tags.TAG_NAMES.ERROR_TYPE]: getDynamicErrorType(400), + }, + failedUserDeletions, + ); + } + + return { statusCode: 200, status: 'successful' }; +}; +const processDeleteUsers = async (event) => { + const { userAttributes, config } = event; + executeCommonValidations(userAttributes); + const resp = await userDeletionHandler(userAttributes, config); + return resp; +}; + +module.exports = { processDeleteUsers }; diff --git a/src/v0/destinations/iterable/transform.js b/src/v0/destinations/iterable/transform.js index 907030db9f..c54b579a52 100644 --- a/src/v0/destinations/iterable/transform.js +++ b/src/v0/destinations/iterable/transform.js @@ -1,7 +1,6 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const get = require('get-value'); const { - batchEvents, getCatalogEndpoint, hasMultipleResponses, pageEventPayloadBuilder, @@ -23,6 +22,7 @@ const { handleRtTfSingleEventError, removeUndefinedAndNullValues, getDestinationExternalIDInfoForRetl, + groupEventsByType: batchEvents, } = require('../../util'); const { JSON_MIME_TYPE } = require('../../util/constant'); const { mappingConfig, ConfigCategory } = require('./config'); @@ -213,10 +213,10 @@ const processRouterDest = async (inputs, reqMetadata) => { * ] */ - const responses = process(event); - const transformedPayloads = Array.isArray(responses) ? responses : [responses]; - return transformedPayloads.map((response) => ({ - message: response, + const responsesFn = process(event); + const transformedPayloadsArr = Array.isArray(responsesFn) ? responsesFn : [responsesFn]; + return transformedPayloadsArr.map((res) => ({ + message: res, metadata: event.metadata, destination: event.destination, })); @@ -230,13 +230,13 @@ const processRouterDest = async (inputs, reqMetadata) => { * Before flat map : transformedPayloads = [{e1}, {e2}, [{e3}, {e4}, {e5}], {e6}] * After flat map : transformedPayloads = [{e1}, {e2}, {e3}, {e4}, {e5}, {e6}] */ - transformedPayloads = _.flatMap(transformedPayloads); + transformedPayloads = lodash.flatMap(transformedPayloads); return filterEventsAndPrepareBatchRequests(transformedPayloads); }), ); // Flatten the response array containing batched events from multiple groups - const allBatchedEvents = _.flatMap(response); + const allBatchedEvents = lodash.flatMap(response); return allBatchedEvents; }; diff --git a/src/v0/destinations/iterable/util.js b/src/v0/destinations/iterable/util.js index abff7f2838..0b7e402f01 100644 --- a/src/v0/destinations/iterable/util.js +++ b/src/v0/destinations/iterable/util.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const get = require('get-value'); const jsonSize = require('json-size'); const { @@ -22,6 +22,8 @@ const { JSON_MIME_TYPE } = require('../../util/constant'); const { EventType, MappedToDestinationKey } = require('../../../constants'); const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); +const MESSAGE_JSON_PATH = 'message.body.JSON'; + /** * Returns preferUserId param * @param {*} config @@ -168,7 +170,8 @@ const pageOrScreenEventPayloadBuilder = (message, destination, category) => { let rawPayload = {}; const eventType = message.type.toLowerCase(); - const { trackAllPages, trackCategorisedPages, trackNamedPages } = destination.Config; + const { trackAllPages, trackCategorisedPages, trackNamedPages, mapToSingleEvent } = + destination.Config; if (trackAllPages) { rawPayload = constructPayload(message, mappingConfig[category.name]); } else if (trackCategorisedPages && (message.properties?.category || message.category)) { @@ -185,7 +188,7 @@ const pageOrScreenEventPayloadBuilder = (message, destination, category) => { rawPayload.campaignId = rawPayload.campaignId ? parseInt(rawPayload.campaignId, 10) : undefined; rawPayload.templateId = rawPayload.templateId ? parseInt(rawPayload.templateId, 10) : undefined; rawPayload.eventName = - destination.Config.mapToSingleEvent === true + mapToSingleEvent === true ? `Loaded a ${eventType.charAt(0).toUpperCase()}${eventType.slice(1)}` : `${rawPayload.eventName} ${eventType}`; @@ -368,7 +371,7 @@ const prepareAndSplitUpdateUserBatchesBasedOnPayloadSize = ( let nonBatchedRequests = []; chunk.forEach((event) => { - size += jsonSize(get(event, 'message.body.JSON')); + size += jsonSize(get(event, `${MESSAGE_JSON_PATH}`)); if (size > IDENTIFY_MAX_BODY_SIZE_IN_BYTES) { batches.push({ users: usersChunk, @@ -380,7 +383,7 @@ const prepareAndSplitUpdateUserBatchesBasedOnPayloadSize = ( usersChunk = []; metadataChunk = []; nonBatchedRequests = []; - size = jsonSize(get(event, 'message.body.JSON')); + size = jsonSize(get(event, `${MESSAGE_JSON_PATH}`)); } if (registerDeviceOrBrowserTokenEvents[event.metadata.jobId]) { @@ -389,7 +392,7 @@ const prepareAndSplitUpdateUserBatchesBasedOnPayloadSize = ( } metadataChunk.push(event.metadata); - usersChunk.push(get(event, 'message.body.JSON')); + usersChunk.push(get(event, `${MESSAGE_JSON_PATH}`)); }); if (usersChunk.length > 0) { @@ -467,7 +470,7 @@ const processUpdateUserBatch = (chunk, registerDeviceOrBrowserTokenEvents) => { const batchUpdateUserEvents = (updateUserEvents, registerDeviceOrBrowserTokenEvents) => { // Batching update user events // arrayChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] - const updateUserEventsChunks = _.chunk(updateUserEvents, IDENTIFY_MAX_BATCH_SIZE); + const updateUserEventsChunks = lodash.chunk(updateUserEvents, IDENTIFY_MAX_BATCH_SIZE); return updateUserEventsChunks.reduce((batchedResponseList, chunk) => { const batchedResponse = processUpdateUserBatch(chunk, registerDeviceOrBrowserTokenEvents); return batchedResponseList.concat(batchedResponse); @@ -532,7 +535,7 @@ const processCatalogBatch = (chunk) => { const batchCatalogEvents = (catalogEvents) => { // Batching catalog events // arrayChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] - const catalogEventsChunks = _.chunk(catalogEvents, IDENTIFY_MAX_BATCH_SIZE); + const catalogEventsChunks = lodash.chunk(catalogEvents, IDENTIFY_MAX_BATCH_SIZE); return catalogEventsChunks.reduce((batchedResponseList, chunk) => { const batchedResponse = processCatalogBatch(chunk); return batchedResponseList.concat(batchedResponse); @@ -553,7 +556,7 @@ const processTrackBatch = (chunk) => { chunk.forEach((event) => { metadata.push(event.metadata); - events.push(get(event, 'message.body.JSON')); + events.push(get(event, `${MESSAGE_JSON_PATH}`)); }); const batchEventResponse = defaultBatchRequestConfig(); @@ -579,7 +582,7 @@ const processTrackBatch = (chunk) => { const batchTrackEvents = (trackEvents) => { // Batching track events // arrayChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] - const trackEventsChunks = _.chunk(trackEvents, TRACK_MAX_BATCH_SIZE); + const trackEventsChunks = lodash.chunk(trackEvents, TRACK_MAX_BATCH_SIZE); return trackEventsChunks.reduce((batchedResponseList, chunk) => { const batchedResponse = processTrackBatch(chunk); return batchedResponseList.concat(batchedResponse); @@ -649,9 +652,9 @@ const mapRegisterDeviceOrBrowserTokenEventsWithJobId = (events) => { * @returns */ const categorizeEvent = (event) => { - const { message, metadata, destination } = event; + const { message, metadata, destination, error } = event; - if (event?.error) { + if (error) { return { type: 'error', data: event }; } @@ -736,41 +739,7 @@ const filterEventsAndPrepareBatchRequests = (transformedEvents) => { return prepareBatchRequests(filteredEvents); }; -/** - * Groups events with the same message type together in batches. - * Each batch contains events that have the same message type and are from different users. - * - * @param {Array} inputs - An array of events - * @returns {Array} - An array of batches - */ -const batchEvents = (inputs) => { - const batches = []; - let currentInputsArray = inputs; - while (currentInputsArray.length > 0) { - const remainingInputsArray = []; - const userOrderTracker = {}; - const event = currentInputsArray.shift(); - const messageType = event.message.type; - const batch = [event]; - currentInputsArray.forEach((currentInput) => { - const currentMessageType = currentInput.message.type; - const currentUser = currentInput.metadata.userId; - if (currentMessageType === messageType && !userOrderTracker[currentUser]) { - batch.push(currentInput); - } else { - remainingInputsArray.push(currentInput); - userOrderTracker[currentUser] = true; - } - }); - batches.push(batch); - currentInputsArray = remainingInputsArray; - } - - return batches; -}; - module.exports = { - batchEvents, getCatalogEndpoint, hasMultipleResponses, pageEventPayloadBuilder, diff --git a/src/v0/destinations/iterable/util.test.js b/src/v0/destinations/iterable/util.test.js index e7a1ea5862..098960ac77 100644 --- a/src/v0/destinations/iterable/util.test.js +++ b/src/v0/destinations/iterable/util.test.js @@ -1,5 +1,4 @@ const { - batchEvents, pageEventPayloadBuilder, trackEventPayloadBuilder, screenEventPayloadBuilder, @@ -108,103 +107,6 @@ const getTestEcommMessage = () => { return message; }; -const orderEventsFuncData = [ - { - inputs: [ - { message: { type: 'identify' }, metadata: { userId: '1' } }, - { message: { type: 'track' }, metadata: { userId: '1' } }, - { message: { type: 'identify' }, metadata: { userId: '2' } }, - { message: { type: 'track' }, metadata: { userId: '2' } }, - { message: { type: 'track' }, metadata: { userId: '2' } }, - { message: { type: 'identify' }, metadata: { userId: '3' } }, - { message: { type: 'track' }, metadata: { userId: '3' } }, - { message: { type: 'identify' }, metadata: { userId: '4' } }, - { message: { type: 'track' }, metadata: { userId: '4' } }, - { message: { type: 'identify' }, metadata: { userId: '5' } }, - { message: { type: 'track' }, metadata: { userId: '5' } }, - { message: { type: 'identify' }, metadata: { userId: '5' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - ], - output: [ - [ - { message: { type: 'identify' }, metadata: { userId: '1' } }, - { message: { type: 'identify' }, metadata: { userId: '2' } }, - { message: { type: 'identify' }, metadata: { userId: '3' } }, - { message: { type: 'identify' }, metadata: { userId: '4' } }, - { message: { type: 'identify' }, metadata: { userId: '5' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - ], - [ - { message: { type: 'track' }, metadata: { userId: '1' } }, - { message: { type: 'track' }, metadata: { userId: '2' } }, - { message: { type: 'track' }, metadata: { userId: '2' } }, - { message: { type: 'track' }, metadata: { userId: '3' } }, - { message: { type: 'track' }, metadata: { userId: '4' } }, - { message: { type: 'track' }, metadata: { userId: '5' } }, - ], - [ - { message: { type: 'identify' }, metadata: { userId: '5' } }, - ] - ] - }, - { - inputs: [ - { message: { type: 'track' }, metadata: { userId: '3' } }, - { message: { type: 'identify' }, metadata: { userId: '3' } }, - { message: { type: 'identify' }, metadata: { userId: '1' } }, - { message: { type: 'track' }, metadata: { userId: '1' } }, - { message: { type: 'identify' }, metadata: { userId: '5' } }, - { message: { type: 'track' }, metadata: { userId: '5' } }, - { message: { type: 'identify' }, metadata: { userId: '5' } }, - { message: { type: 'identify' }, metadata: { userId: '2' } }, - { message: { type: 'track' }, metadata: { userId: '2' } }, - { message: { type: 'track' }, metadata: { userId: '2' } }, - { message: { type: 'track' }, metadata: { userId: '4' } }, - { message: { type: 'identify' }, metadata: { userId: '4' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - ], - output: [ - [ - { message: { type: 'track' }, metadata: { userId: '3' } }, - { message: { type: 'track' }, metadata: { userId: '4' } }, - ], - [ - { message: { type: 'identify' }, metadata: { userId: '3' } }, - { message: { type: 'identify' }, metadata: { userId: '1' } }, - { message: { type: 'identify' }, metadata: { userId: '5' } }, - { message: { type: 'identify' }, metadata: { userId: '2' } }, - { message: { type: 'identify' }, metadata: { userId: '4' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - { message: { type: 'identify' }, metadata: { userId: '6' } }, - ], - [ - { message: { type: 'track' }, metadata: { userId: '1' } }, - { message: { type: 'track' }, metadata: { userId: '5' } }, - { message: { type: 'track' }, metadata: { userId: '2' } }, - { message: { type: 'track' }, metadata: { userId: '2' } }, - ], - [ - { message: { type: 'identify' }, metadata: { userId: '5' } }, - ] - ] - } -] - -describe('Order Event Tests', () => { - it('Order Event func tests', () => { - orderEventsFuncData.forEach((data) => { - expect(batchEvents(data.inputs)).toEqual(data.output); - }) - }); -}); - describe('iterable utils test', () => { describe('Unit test cases for iterable registerDeviceTokenEventPayloadBuilder', () => { it('for no device type', async () => { diff --git a/src/v0/destinations/klaviyo/transform.js b/src/v0/destinations/klaviyo/transform.js index bb19c5f8fd..86d5880e4c 100644 --- a/src/v0/destinations/klaviyo/transform.js +++ b/src/v0/destinations/klaviyo/transform.js @@ -53,7 +53,7 @@ const { JSON_MIME_TYPE } = require('../../util/constant'); */ const identifyRequestHandler = async (message, category, destination) => { // If listId property is present try to subscribe/member user in list - const { privateApiKey, enforceEmailAsPrimary, flattenProperties } = destination.Config; + const { privateApiKey, enforceEmailAsPrimary, listId, flattenProperties } = destination.Config; const mappedToDestination = get(message, MappedToDestinationKey); if (mappedToDestination) { addExternalIdToTraits(message); @@ -111,10 +111,7 @@ const identifyRequestHandler = async (message, category, destination) => { const responseArray = [profileUpdateResponseBuilder(payload, profileId, category, privateApiKey)]; // check if user wants to subscribe profile or not and listId is present or not - if ( - traitsInfo?.properties?.subscribe && - (traitsInfo.properties?.listId || destination.Config?.listId) - ) { + if (traitsInfo?.properties?.subscribe && (traitsInfo.properties?.listId || listId)) { responseArray.push(subscribeUserToList(message, traitsInfo, destination)); return responseArray; } diff --git a/src/v0/destinations/klaviyo/util.js b/src/v0/destinations/klaviyo/util.js index 3c4882b834..21a492739b 100644 --- a/src/v0/destinations/klaviyo/util.js +++ b/src/v0/destinations/klaviyo/util.js @@ -1,5 +1,5 @@ const { defaultRequestConfig } = require('rudder-transformer-cdk/build/utils'); -const _ = require('lodash'); +const lodash = require('lodash'); const { WhiteListedTraits } = require('../../../constants'); const { @@ -21,6 +21,8 @@ const tags = require('../../util/tags'); const { handleHttpRequest } = require('../../../adapters/network'); const { client: errNotificationClient } = require('../../../util/errorNotifier'); +const REVISION_CONSTANT = '2023-02-22'; + /** * This function calls the create user endpoint ref: https://developers.klaviyo.com/en/reference/create_profile * If the user doesn't exist, it creates a profile for the user and return 201 status code and the response which contains all the profile data @@ -88,7 +90,7 @@ const profileUpdateResponseBuilder = (payload, profileId, category, privateApiKe Authorization: `Klaviyo-API-Key ${privateApiKey}`, 'Content-Type': JSON_MIME_TYPE, Accept: JSON_MIME_TYPE, - revision: '2023-02-22', + revision: REVISION_CONSTANT, }; identifyResponse.body.JSON = removeUndefinedAndNullValues(payload); return identifyResponse; @@ -148,7 +150,7 @@ const subscribeUserToList = (message, traitsInfo, destination) => { Authorization: `Klaviyo-API-Key ${privateApiKey}`, 'Content-Type': JSON_MIME_TYPE, Accept: JSON_MIME_TYPE, - revision: '2023-02-22', + revision: REVISION_CONSTANT, }; response.body.JSON = removeUndefinedAndNullValues(payload); @@ -220,7 +222,7 @@ const generateBatchedPaylaodForArray = (events) => { Authorization: `Klaviyo-API-Key ${destination.Config.privateApiKey}`, 'Content-Type': JSON_MIME_TYPE, Accept: JSON_MIME_TYPE, - revision: '2023-02-22', + revision: REVISION_CONSTANT, }; batchEventResponse = { @@ -237,7 +239,7 @@ const generateBatchedPaylaodForArray = (events) => { * @returns */ const groupSubsribeResponsesUsingListId = (subscribeResponseList) => { - const subscribeEventGroups = _.groupBy( + const subscribeEventGroups = lodash.groupBy( subscribeResponseList, (event) => event.message.body.JSON.data.attributes.list_id, ); @@ -248,7 +250,7 @@ const getBatchedResponseList = (subscribeEventGroups, identifyResponseList) => { let batchedResponseList = []; Object.keys(subscribeEventGroups).forEach((listId) => { // eventChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] - const eventChunks = _.chunk(subscribeEventGroups[listId], MAX_BATCH_SIZE); + const eventChunks = lodash.chunk(subscribeEventGroups[listId], MAX_BATCH_SIZE); const batchedResponse = eventChunks.map((chunk) => { const batchEventResponse = generateBatchedPaylaodForArray(chunk); return getSuccessRespEvents( diff --git a/src/v0/destinations/kustomer/util.js b/src/v0/destinations/kustomer/util.js index dd89f8ed5d..31157b2738 100644 --- a/src/v0/destinations/kustomer/util.js +++ b/src/v0/destinations/kustomer/util.js @@ -1,5 +1,5 @@ /* eslint-disable eqeqeq */ -const _ = require('lodash'); +const lodash = require('lodash'); const set = require('set-value'); const get = require('get-value'); const myAxios = require('../../../util/myAxios'); @@ -26,7 +26,7 @@ const ISO_8601 = /^\d{4}(-\d\d(-\d\d(t\d\d:\d\d(:\d\d)?(\.\d+)?(([+-]\d\d:\d\d)| const transformNumberField = (fieldName) => { const typeDelim = ''; const transformedFieldName = fieldName.trim().replace(/\s+/g, '-'); - if (_.endsWith(transformedFieldName, 'Num')) { + if (lodash.endsWith(transformedFieldName, 'Num')) { return transformedFieldName; } return `${transformedFieldName}${typeDelim}Num`; @@ -35,7 +35,7 @@ const transformNumberField = (fieldName) => { const transformDateField = (fieldName) => { const typeDelim = ''; const transformedFieldName = fieldName.trim().replace(/\s+/g, '-'); - if (_.endsWith(transformedFieldName, 'At')) { + if (lodash.endsWith(transformedFieldName, 'At')) { return transformedFieldName; } return `${transformedFieldName}${typeDelim}At`; @@ -62,7 +62,7 @@ const transformField = (fieldName) => { }; const handleAdvancedtransformations = (event) => { - let cloneEvent = _.cloneDeep(event); + let cloneEvent = lodash.cloneDeep(event); const transformedMeta = {}; let eventName = get(cloneEvent, 'name'); const { meta } = cloneEvent; diff --git a/src/v0/destinations/mailchimp/transform.js b/src/v0/destinations/mailchimp/transform.js index 3ceb669da1..70b37200f4 100644 --- a/src/v0/destinations/mailchimp/transform.js +++ b/src/v0/destinations/mailchimp/transform.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const { defaultPutRequestConfig, handleRtTfSingleEventError, @@ -130,10 +130,10 @@ const batchEvents = (successRespList) => { // audienceId1: [...events] // audienceId2: [...events] // } - const audienceEventGroups = _.groupBy(successRespList, (event) => event.message.audienceId); + const audienceEventGroups = lodash.groupBy(successRespList, (event) => event.message.audienceId); Object.keys(audienceEventGroups).forEach((audienceId) => { // eventChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] - const eventChunks = _.chunk(audienceEventGroups[audienceId], MAX_BATCH_SIZE); + const eventChunks = lodash.chunk(audienceEventGroups[audienceId], MAX_BATCH_SIZE); eventChunks.forEach((chunk) => { const batchEventResponse = generateBatchedPaylaodForArray(audienceId, chunk); batchedResponseList.push( diff --git a/src/v0/destinations/mailjet/transform.js b/src/v0/destinations/mailjet/transform.js index fa87b3ed2a..3e3cfe5c81 100644 --- a/src/v0/destinations/mailjet/transform.js +++ b/src/v0/destinations/mailjet/transform.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const { getErrorRespEvents, getSuccessRespEvents, @@ -98,12 +98,12 @@ const batchEvents = (successRespList) => { "listId2&&Action2": [{message : {}, metadata : {}, destination: {}}], "listId2&&Action1": [{message : {}, metadata : {}, destination: {}}] */ - const eventGroups = _.groupBy(successRespList, (event) => { + const eventGroups = lodash.groupBy(successRespList, (event) => { const { listId, action } = event.message; return `${listId}&&${action}`; }); Object.keys(eventGroups).forEach((combination) => { - const eventChunks = _.chunk(eventGroups[combination], MAX_BATCH_SIZE); + const eventChunks = lodash.chunk(eventGroups[combination], MAX_BATCH_SIZE); // eventChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] eventChunks.forEach((chunk) => { const batchEventResponse = generateBatchedPaylaodForArray(chunk, combination); diff --git a/src/v0/destinations/mailmodo/transform.js b/src/v0/destinations/mailmodo/transform.js index 4f1a3d7e8c..39783c864f 100644 --- a/src/v0/destinations/mailmodo/transform.js +++ b/src/v0/destinations/mailmodo/transform.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const get = require('get-value'); const { isEmpty } = require('lodash'); const { EventType } = require('../../../constants'); @@ -112,7 +112,7 @@ const process = (event) => processEvent(event.message, event.destination); function batchEvents(eventsChunk) { const batchedResponseList = []; - const arrayChunks = _.chunk(eventsChunk, IDENTIFY_MAX_BATCH_SIZE); + const arrayChunks = lodash.chunk(eventsChunk, IDENTIFY_MAX_BATCH_SIZE); // list of chunks [ [..], [..] ] arrayChunks.forEach((chunk) => { diff --git a/src/v0/destinations/marketo/networkHandler.js b/src/v0/destinations/marketo/networkHandler.js index c25a7a246c..7abcc65c02 100644 --- a/src/v0/destinations/marketo/networkHandler.js +++ b/src/v0/destinations/marketo/networkHandler.js @@ -3,7 +3,6 @@ const { marketoResponseHandler } = require('./util'); const { proxyRequest, prepareProxyRequest } = require('../../../adapters/network'); const { processAxiosResponse } = require('../../../adapters/utils/networkUtils'); -// eslint-disable-next-line no-unused-vars const responseHandler = (destinationResponse, destType) => { const message = 'Request Processed Successfully'; const { status, rudderJobMetadata } = destinationResponse; diff --git a/src/v0/destinations/marketo_bulk_upload/util.js b/src/v0/destinations/marketo_bulk_upload/util.js index 0b4eb1e48a..a60f57e50b 100644 --- a/src/v0/destinations/marketo_bulk_upload/util.js +++ b/src/v0/destinations/marketo_bulk_upload/util.js @@ -410,8 +410,9 @@ const getFieldSchemaMap = async (accessToken, munchkinId) => { const checkEventStatusViaSchemaMatching = (event, fieldMap) => { const mismatchedFields = {}; const events = event.input; - events.forEach((event) => { - const { message, metadata } = event; + events.forEach((ev) => { + const { message, metadata } = ev; + // eslint-disable-next-line @typescript-eslint/naming-convention const { job_id } = metadata; Object.entries(message).forEach(([paramName, paramValue]) => { diff --git a/src/v0/destinations/marketo_static_list/networkHandler.js b/src/v0/destinations/marketo_static_list/networkHandler.js index 5a783086b8..30b053b9d3 100644 --- a/src/v0/destinations/marketo_static_list/networkHandler.js +++ b/src/v0/destinations/marketo_static_list/networkHandler.js @@ -4,7 +4,6 @@ const v0Utils = require('../../util'); const { processAxiosResponse } = require('../../../adapters/utils/networkUtils'); const { DESTINATION } = require('./config'); -// eslint-disable-next-line no-unused-vars const responseHandler = (destinationResponse, destType) => { const message = 'Request Processed Successfully'; const { status, rudderJobMetadata } = destinationResponse; @@ -25,6 +24,7 @@ const responseHandler = (destinationResponse, destType) => { }; }; +// eslint-disable-next-line @typescript-eslint/naming-convention class networkHandler { constructor() { this.responseHandler = responseHandler; diff --git a/src/v0/destinations/marketo_static_list/transform.js b/src/v0/destinations/marketo_static_list/transform.js index 7175b5241f..156e26270b 100644 --- a/src/v0/destinations/marketo_static_list/transform.js +++ b/src/v0/destinations/marketo_static_list/transform.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const cloneDeep = require('lodash/cloneDeep'); const { defaultPostRequestConfig, @@ -50,7 +50,7 @@ const batchResponseBuilder = (message, Config, token, leadIds, operation) => { throw new InstrumentationError('No static listId is provided'); } const response = []; - const leadIdsChunks = _.chunk(leadIds, MAX_LEAD_IDS_SIZE); + const leadIdsChunks = lodash.chunk(leadIds, MAX_LEAD_IDS_SIZE); leadIdsChunks.forEach((ids) => { response.push(responseBuilder(endpoint, ids, operation, token)); }); diff --git a/src/v0/destinations/mp/deleteUsers.js b/src/v0/destinations/mp/deleteUsers.js index 52be45f230..5b86cae6ae 100644 --- a/src/v0/destinations/mp/deleteUsers.js +++ b/src/v0/destinations/mp/deleteUsers.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const { handleHttpRequest } = require('../../../adapters/network'); const { isHttpStatusSuccess } = require('../../util'); const { @@ -37,7 +37,7 @@ const deleteProfile = async (userAttributes, config) => { // batchEvents = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] // ref : https://developer.mixpanel.com/reference/delete-profile - const batchEvents = _.chunk(data, DEL_MAX_BATCH_SIZE); + const batchEvents = lodash.chunk(data, DEL_MAX_BATCH_SIZE); await Promise.all( batchEvents.map(async (batchEvent) => { const { processedResponse: handledDelResponse } = await handleHttpRequest( @@ -70,7 +70,7 @@ const deleteProfile = async (userAttributes, config) => { }; const createDeletionTask = async (userAttributes, config) => { - const { token, gdprApiToken } = config; + const { token, gdprApiToken, dataResidency } = config; if (!gdprApiToken) { throw new ConfigurationError( @@ -84,7 +84,7 @@ const createDeletionTask = async (userAttributes, config) => { 'Content-Type': JSON_MIME_TYPE, Authorization: `Bearer ${gdprApiToken}`, }; - const complianceType = config?.dataResidency === 'eu' ? 'GDPR' : 'CCPA'; + const complianceType = dataResidency === 'eu' ? 'GDPR' : 'CCPA'; // batchEvents = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] // ref : https://developer.mixpanel.com/docs/privacy-security#create-a-deletion-task diff --git a/src/v0/destinations/mp/transform.js b/src/v0/destinations/mp/transform.js index 4f55c3dcac..bdae00e1c2 100644 --- a/src/v0/destinations/mp/transform.js +++ b/src/v0/destinations/mp/transform.js @@ -1,3 +1,4 @@ +const lodash = require('lodash'); const get = require('get-value'); const { EventType } = require('../../../constants'); const { @@ -14,9 +15,7 @@ const { getFieldValueFromMessage, checkInvalidRtTfEvents, handleRtTfSingleEventError, - batchMultiplexedEvents, - getSuccessRespEvents, - defaultBatchRequestConfig, + groupEventsByType, } = require('../../util'); const { ConfigCategory, @@ -32,6 +31,8 @@ const { createIdentifyResponse, isImportAuthCredentialsAvailable, combineBatchRequestsWithSameJobIds, + groupEventsByEndpoint, + batchEvents, } = require('./util'); const { InstrumentationError, ConfigurationError } = require('../../util/errorTypes'); const { CommonUtils } = require('../../../util/common'); @@ -380,29 +381,7 @@ const processGroupEvents = (message, type, destination) => { return returnValue; }; -const generateBatchedPayloadForArray = (events) => { - const { batchedRequest } = defaultBatchRequestConfig(); - const batchResponseList = events.flatMap((event) => JSON.parse(event.body.JSON_ARRAY.batch)); - batchedRequest.body.JSON_ARRAY = { batch: JSON.stringify(batchResponseList) }; - batchedRequest.endpoint = events[0].endpoint; - batchedRequest.headers = events[0].headers; - batchedRequest.params = events[0].params; - return batchedRequest; -}; - -const batchEvents = (successRespList, maxBatchSize) => { - const batchResponseList = []; - const batchedEvents = batchMultiplexedEvents(successRespList, maxBatchSize); - batchedEvents.forEach((batch) => { - const batchedRequest = generateBatchedPayloadForArray(batch.events); - batchResponseList.push( - getSuccessRespEvents(batchedRequest, batch.metadata, batch.destination, true), - ); - }); - return batchResponseList; -}; - -const processSingleMessage = async (message, destination) => { +const processSingleMessage = (message, destination) => { const clonedMessage = { ...message }; if (clonedMessage.userId) { clonedMessage.userId = String(clonedMessage.userId); @@ -433,74 +412,7 @@ const processSingleMessage = async (message, destination) => { } }; -const process = async (event) => processSingleMessage(event.message, event.destination); - -const processEvents = async (inputs, reqMetadata) => - await Promise.all( - inputs.map(async (event) => { - try { - if (event.message.statusCode) { - // already transformed event - return { output: event }; - } - - // if not transformed - return { - output: { - message: await process(event), - metadata: event.metadata, - destination: event.destination, - }, - }; - } catch (error) { - const errRespEvent = handleRtTfSingleEventError(event, error, reqMetadata); - return { error: errRespEvent }; - } - }), - ); - -const processAndChunkEvents = async (inputs, reqMetadata) => { - const processedEvents = await processEvents(inputs, reqMetadata); - const engageEventChunks = []; - const groupsEventChunks = []; - const trackEventChunks = []; - const importEventChunks = []; - const batchErrorRespList = []; - processedEvents.forEach((result) => { - if (result.output) { - const event = result.output; - const { destination, metadata } = event; - let { message } = event; - message = CommonUtils.toArray(message); - message.forEach((msg) => { - // eslint-disable-next-line default-case - switch (true) { - case msg.endpoint.includes('engage'): - engageEventChunks.push({ message: msg, destination, metadata }); - break; - case msg.endpoint.includes('groups'): - groupsEventChunks.push({ message: msg, destination, metadata }); - break; - case msg.endpoint.includes('track'): - trackEventChunks.push({ message: msg, destination, metadata }); - break; - case msg.endpoint.includes('import'): - importEventChunks.push({ message: msg, destination, metadata }); - break; - } - }); - } else if (result.error) { - batchErrorRespList.push(result.error); - } - }); - return { - engageEventChunks, - groupsEventChunks, - trackEventChunks, - importEventChunks, - batchErrorRespList, - }; -}; +const process = (event) => processSingleMessage(event.message, event.destination); // Documentation about how Mixpanel handles the utm parameters // Ref: https://help.mixpanel.com/hc/en-us/articles/115004613766-Default-Properties-Collected-by-Mixpanel @@ -511,28 +423,56 @@ const processRouterDest = async (inputs, reqMetadata) => { return errorRespEvents; } - const { - engageEventChunks, - groupsEventChunks, - trackEventChunks, - importEventChunks, - batchErrorRespList, - } = await processAndChunkEvents(inputs, reqMetadata); - - const engageRespList = batchEvents(engageEventChunks, ENGAGE_MAX_BATCH_SIZE); - const groupsRespList = batchEvents(groupsEventChunks, GROUPS_MAX_BATCH_SIZE); - const trackRespList = batchEvents(trackEventChunks, TRACK_MAX_BATCH_SIZE); - const importRespList = batchEvents(importEventChunks, IMPORT_MAX_BATCH_SIZE); - - let batchSuccessRespList = [ - ...engageRespList, - ...groupsRespList, - ...trackRespList, - ...importRespList, - ]; - batchSuccessRespList = combineBatchRequestsWithSameJobIds(batchSuccessRespList); - - return [...batchSuccessRespList, ...batchErrorRespList]; + const groupedEvents = groupEventsByType(inputs); + const response = await Promise.all( + groupedEvents.map(async (listOfEvents) => { + let transformedPayloads = await Promise.all( + listOfEvents.map(async (event) => { + try { + if (event.message.statusCode) { + // already transformed event + return { + message: event.message, + metadata: event.metadata, + destination: event.destination, + }; + } + + let processedEvents = await process(event); + processedEvents = CommonUtils.toArray(processedEvents); + return processedEvents.map((res) => ({ + message: res, + metadata: event.metadata, + destination: event.destination, + })); + } catch (error) { + return handleRtTfSingleEventError(event, error, reqMetadata); + } + }), + ); + + transformedPayloads = lodash.flatMap(transformedPayloads); + const { engageEvents, groupsEvents, trackEvents, importEvents, batchErrorRespList } = + groupEventsByEndpoint(transformedPayloads); + + const engageRespList = batchEvents(engageEvents, ENGAGE_MAX_BATCH_SIZE); + const groupsRespList = batchEvents(groupsEvents, GROUPS_MAX_BATCH_SIZE); + const trackRespList = batchEvents(trackEvents, TRACK_MAX_BATCH_SIZE); + const importRespList = batchEvents(importEvents, IMPORT_MAX_BATCH_SIZE); + const batchSuccessRespList = [ + ...engageRespList, + ...groupsRespList, + ...trackRespList, + ...importRespList, + ]; + + return [...batchSuccessRespList, ...batchErrorRespList]; + }), + ); + + // Flatten the response array containing batched events from multiple groups + const allBatchedEvents = lodash.flatMap(response); + return combineBatchRequestsWithSameJobIds(allBatchedEvents); }; module.exports = { process, processRouterDest }; diff --git a/src/v0/destinations/mp/util.js b/src/v0/destinations/mp/util.js index 5a96c8d64b..35c530855e 100644 --- a/src/v0/destinations/mp/util.js +++ b/src/v0/destinations/mp/util.js @@ -8,6 +8,9 @@ const { isAppleFamily, getBrowserInfo, toUnixTimestamp, + batchMultiplexedEvents, + getSuccessRespEvents, + defaultBatchRequestConfig, } = require('../../util'); const { ConfigCategory, @@ -16,6 +19,7 @@ const { mappingConfig, } = require('./config'); const { InstrumentationError } = require('../../util/errorTypes'); +const { CommonUtils } = require('../../../util/common'); const mPIdentifyConfigJson = mappingConfig[ConfigCategory.IDENTIFY.name]; const mPProfileAndroidConfigJson = mappingConfig[ConfigCategory.PROFILE_ANDROID.name]; @@ -139,6 +143,7 @@ const isImportAuthCredentialsAvailable = (destination) => const findExistingBatch = (batch, metadataMap) => { let existingBatch = null; + // eslint-disable-next-line no-restricted-syntax for (const metadataItem of batch.metadata) { if (metadataMap.has(metadataItem.jobId)) { existingBatch = metadataMap.get(metadataItem.jobId); @@ -154,8 +159,9 @@ const findExistingBatch = (batch, metadataMap) => { * @param {*} mergedBatches An array of merged batch objects. */ const removeDuplicateMetadata = (mergedBatches) => { - for (const batch of mergedBatches) { + mergedBatches.forEach((batch) => { const metadataSet = new Set(); + // eslint-disable-next-line no-param-reassign batch.metadata = batch.metadata.filter((metadataItem) => { if (!metadataSet.has(metadataItem.jobId)) { metadataSet.add(metadataItem.jobId); @@ -163,7 +169,65 @@ const removeDuplicateMetadata = (mergedBatches) => { } return false; }); - } + }); +}; + +/** + * Group events with the same endpoint together in batches + * @param {*} events - An array of events + * @returns + */ +const groupEventsByEndpoint = (events) => { + const eventMap = { + engage: [], + groups: [], + track: [], + import: [], + }; + const batchErrorRespList = []; + + events.forEach((result) => { + if (result.message) { + const { destination, metadata } = result; + const message = CommonUtils.toArray(result.message); + + message.forEach((msg) => { + const endpoint = Object.keys(eventMap).find((key) => msg.endpoint.includes(key)); + + if (endpoint) { + eventMap[endpoint].push({ message: msg, destination, metadata }); + } + }); + } else if (result.error) { + batchErrorRespList.push(result); + } + }); + + return { + engageEvents: eventMap.engage, + groupsEvents: eventMap.groups, + trackEvents: eventMap.track, + importEvents: eventMap.import, + batchErrorRespList, + }; +}; + +const generateBatchedPayloadForArray = (events) => { + const { batchedRequest } = defaultBatchRequestConfig(); + const batchResponseList = events.flatMap((event) => JSON.parse(event.body.JSON_ARRAY.batch)); + batchedRequest.body.JSON_ARRAY = { batch: JSON.stringify(batchResponseList) }; + batchedRequest.endpoint = events[0].endpoint; + batchedRequest.headers = events[0].headers; + batchedRequest.params = events[0].params; + return batchedRequest; +}; + +const batchEvents = (successRespList, maxBatchSize) => { + const batchedEvents = batchMultiplexedEvents(successRespList, maxBatchSize); + return batchedEvents.map((batch) => { + const batchedRequest = generateBatchedPayloadForArray(batch.events); + return getSuccessRespEvents(batchedRequest, batch.metadata, batch.destination, true); + }); }; /** @@ -221,5 +285,7 @@ const combineBatchRequestsWithSameJobIds = (inputBatches) => { module.exports = { createIdentifyResponse, isImportAuthCredentialsAvailable, + groupEventsByEndpoint, + batchEvents, combineBatchRequestsWithSameJobIds, }; diff --git a/src/v0/destinations/mp/util.test.js b/src/v0/destinations/mp/util.test.js index c5cd5b61e8..43594fba6d 100644 --- a/src/v0/destinations/mp/util.test.js +++ b/src/v0/destinations/mp/util.test.js @@ -1,4 +1,9 @@ -const { combineBatchRequestsWithSameJobIds } = require('./util'); +const { + combineBatchRequestsWithSameJobIds, + groupEventsByType, + groupEventsByEndpoint, + batchEvents, +} = require('./util'); const destinationMock = { Config: { @@ -18,7 +23,243 @@ const destinationMock = { Transformations: [], }; +const maxBatchSizeMock = 2; + describe('Mixpanel utils test', () => { + describe('Unit test cases for groupEventsByEndpoint', () => { + it('should return an object with empty arrays for all properties when the events array is empty', () => { + const events = []; + const result = groupEventsByEndpoint(events); + expect(result).toEqual({ + engageEvents: [], + groupsEvents: [], + trackEvents: [], + importEvents: [], + batchErrorRespList: [], + }); + }); + + it('should return an object with all properties containing their respective events when the events array contains events of all types', () => { + const events = [ + { + message: { + endpoint: '/engage', + body: { + JSON_ARRAY: { + batch: '[{prop:1}]', + }, + }, + userId: 'user1', + }, + }, + { + message: { + endpoint: '/engage', + body: { + JSON_ARRAY: { + batch: '[{prop:2}]', + }, + }, + userId: 'user2', + }, + }, + { + message: { + endpoint: '/groups', + body: { + JSON_ARRAY: { + batch: '[{prop:3}]', + }, + }, + userId: 'user1', + }, + }, + { + message: { + endpoint: '/track', + body: { + JSON_ARRAY: { + batch: '[{prop:4}]', + }, + }, + userId: 'user1', + }, + }, + { + message: { + endpoint: '/import', + body: { + JSON_ARRAY: { + batch: '[{prop:5}]', + }, + }, + userId: 'user2', + }, + }, + { error: 'Message type abc not supported' }, + ]; + const result = groupEventsByEndpoint(events); + expect(result).toEqual({ + engageEvents: [ + { + message: { + endpoint: '/engage', + body: { + JSON_ARRAY: { + batch: '[{prop:1}]', + }, + }, + userId: 'user1', + }, + }, + { + message: { + endpoint: '/engage', + body: { + JSON_ARRAY: { + batch: '[{prop:2}]', + }, + }, + userId: 'user2', + }, + }, + ], + groupsEvents: [ + { + message: { + endpoint: '/groups', + body: { + JSON_ARRAY: { + batch: '[{prop:3}]', + }, + }, + userId: 'user1', + }, + }, + ], + trackEvents: [ + { + message: { + endpoint: '/track', + body: { + JSON_ARRAY: { + batch: '[{prop:4}]', + }, + }, + userId: 'user1', + }, + }, + ], + importEvents: [ + { + message: { + endpoint: '/import', + body: { + JSON_ARRAY: { + batch: '[{prop:5}]', + }, + }, + userId: 'user2', + }, + }, + ], + batchErrorRespList: [{ error: 'Message type abc not supported' }], + }); + }); + }); + + describe('Unit test cases for batchEvents', () => { + it('should return an array of batched events with correct payload and metadata', () => { + const successRespList = [ + { + message: { + endpoint: '/engage', + body: { + JSON_ARRAY: { + batch: '[{"prop":1}]', + }, + }, + headers: {}, + params: {}, + userId: 'user1', + }, + metadata: { jobId: 3 }, + }, + { + message: { + endpoint: '/engage', + body: { + JSON_ARRAY: { + batch: '[{"prop":2}]', + }, + }, + headers: {}, + params: {}, + userId: 'user2', + }, + metadata: { jobId: 4 }, + }, + { + message: { + endpoint: '/engage', + body: { + JSON_ARRAY: { + batch: '[{"prop":3}]', + }, + }, + headers: {}, + params: {}, + userId: 'user2', + }, + metadata: { jobId: 6 }, + }, + ]; + + const result = batchEvents(successRespList, maxBatchSizeMock); + + expect(result).toEqual([ + { + batched: true, + batchedRequest: { + body: { FORM: {}, JSON: {}, JSON_ARRAY: { batch: '[{"prop":1},{"prop":2}]' }, XML: {} }, + endpoint: '/engage', + files: {}, + headers: {}, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + destination: undefined, + metadata: [{ jobId: 3 }, { jobId: 4 }], + statusCode: 200, + }, + { + batched: true, + batchedRequest: { + body: { FORM: {}, JSON: {}, JSON_ARRAY: { batch: '[{"prop":3}]' }, XML: {} }, + endpoint: '/engage', + files: {}, + headers: {}, + method: 'POST', + params: {}, + type: 'REST', + version: '1', + }, + destination: undefined, + metadata: [{ jobId: 6 }], + statusCode: 200, + }, + ]); + }); + + it('should return an empty array when successRespList is empty', () => { + const successRespList = []; + const result = batchEvents(successRespList, maxBatchSizeMock); + expect(result).toEqual([]); + }); + }); + describe('Unit test cases for combineBatchRequestsWithSameJobIds', () => { it('Combine batch request with same jobIds', async () => { const input = [ diff --git a/src/v0/destinations/mssql/transform.test.js b/src/v0/destinations/mssql/transform.test.js new file mode 100644 index 0000000000..0892651b21 --- /dev/null +++ b/src/v0/destinations/mssql/transform.test.js @@ -0,0 +1,48 @@ +const { getDataType } = require('../../../../src/warehouse/index'); +const { getDataTypeOverride } = require('./transform'); + +const testCases = [ + { + name: 'normalInt', + data: 1, + type: 'int', + }, + { + name: 'normalFloat', + data: 2.01, + type: 'float', + }, + { + name: 'normalBoolean', + data: true, + type: 'boolean', + }, + { + name: 'normalString', + data: 'mssql transformation[*007}', + type: 'string', + }, + { + name: 'violationErrors', + data: [ + { + message: + 'no schema for eventName : Product Purchased new, eventType : track in trackingPlanID : tp_20dfXJDpotQWHe7hMxfQfgWMZDv::1', + meta: {}, + type: 'Unplanned-Event', + }, + ], + type: 'string', + }, +]; + +describe('MSSQL data types testing', () => { + const options = {}; + options.getDataTypeOverride = getDataTypeOverride; + testCases.forEach((testCase) => { + it(`should return data type ${testCase.type} for this input data ${testCase.data} everytime`, () => { + const dataType = getDataType(testCase.name, testCase.data, options); + expect(dataType).toEqual(testCase.type); + }); + }); +}); diff --git a/src/v0/destinations/ometria/transform.js b/src/v0/destinations/ometria/transform.js index d3a4d71753..6d3c2ab174 100644 --- a/src/v0/destinations/ometria/transform.js +++ b/src/v0/destinations/ometria/transform.js @@ -1,4 +1,4 @@ -/* eslint-disable one-var */ +/* eslint-disable one-var, @typescript-eslint/naming-convention */ /* eslint-disable camelcase */ const { EventType } = require('../../../constants'); const { ConfigurationError, InstrumentationError } = require('../../util/errorTypes'); diff --git a/src/v0/destinations/pardot/transform.js b/src/v0/destinations/pardot/transform.js index b9f78a6c34..bfc7386ef9 100644 --- a/src/v0/destinations/pardot/transform.js +++ b/src/v0/destinations/pardot/transform.js @@ -48,10 +48,7 @@ const { getAccessToken, } = require('../../util'); const { CONFIG_CATEGORIES } = require('./config'); -const { - ConfigurationError, - InstrumentationError, -} = require('../../util/errorTypes'); +const { ConfigurationError, InstrumentationError } = require('../../util/errorTypes'); const buildResponse = (payload, url, destination, token) => { const responseBody = removeUndefinedValues(payload); diff --git a/src/v0/destinations/personalize/scripts/create-trackingid.js b/src/v0/destinations/personalize/scripts/create-trackingid.js index d2a513635a..efd8eaa2f9 100644 --- a/src/v0/destinations/personalize/scripts/create-trackingid.js +++ b/src/v0/destinations/personalize/scripts/create-trackingid.js @@ -10,60 +10,64 @@ const { const { fromEnv } = require('@aws-sdk/credential-providers'); const readline = require('readline'); -let rl = readline.createInterface(process.stdin, process.stdout); -function promtForInput(questionText, envName) { - if (!process.env[envName]) { - rl.question(questionText, (input) => (process.env[envName] = input)); +require('dotenv').config(); + +async function promtForInput(rl, questionText) { + return new Promise((resolve) => { + rl.question(questionText, (input) => { + resolve(input); + }); + }); +} + +async function checkEnvAndpromtForInput(rl, questionText, envVar) { + if (process.env[envVar]) { + return; } + process.env[envVar] = await promtForInput(rl, questionText); } -// get inputs from user -promtForInput('AWS Access Key ID: ', 'AWS_ACCESS_KEY_ID'); -promtForInput('AWS Secret Access Key: ', 'AWS_SECRET_ACCESS_KEY'); -promtForInput('AWS REGION: ', 'AWS_REGION'); -promtForInput('Name of Dataset Group:', 'DATASET_GROUP_NAME'); -promtForInput( - 'Number of fields in Schema in addition to USER_ID, TIMESTAMP, ITEM_ID: ', - 'NUMBER_OF_FIELDS', -); -rl.close(); -const datasetGroup = process.env.DATASET_GROUP_NAME; -const columns = []; -const type = []; - -// eslint-disable-next-line radix -const noOfFields = parseInt(process.env.NUMBER_OF_FIELDS); -columns[0] = 'USER_ID'; -columns[1] = 'ITEM_ID'; -columns[2] = 'TIMESTAMP'; -type[0] = 'string'; -type[1] = 'string'; -type[2] = 'long'; - -for (let i = 4; i <= noOfFields + 3; i += 1) { - columns[i - 1] = readline.question(`Name of field no. ${i}: `); - type[i - 1] = readline.question(`Type of field ${columns[i - 1]}: `); + +async function collectInputs(rl) { + await checkEnvAndpromtForInput(rl, 'AWS Access Key ID: ', 'AWS_ACCESS_KEY_ID'); + await checkEnvAndpromtForInput(rl, 'AWS Secret Access Key: ', 'AWS_SECRET_ACCESS_KEY'); + await checkEnvAndpromtForInput(rl, 'AWS REGION: ', 'AWS_REGION'); + await checkEnvAndpromtForInput(rl, 'Name of Dataset Group: ', 'DATASET_GROUP_NAME'); + await checkEnvAndpromtForInput( + rl, + 'Number of fields in Schema in addition to USER_ID, TIMESTAMP, ITEM_ID: ', + 'NUMBER_OF_FIELDS', + ); } -let schema = { - type: 'record', - name: 'Interactions', - namespace: 'com.amazonaws.personalize.schema', - fields: [ - { name: 'USER_ID', type: 'string' }, - { name: 'ITEM_ID', type: 'string' }, - { name: 'TIMESTAMP', type: 'long' }, - ], - version: '1.0', -}; - -if (noOfFields > 0) { - for (let i = 3; i < noOfFields + 3; i += 1) { - schema.fields.push({ name: columns[i], type: type[i] }); +async function collectFileds(rl) { + const noOfFields = parseInt(process.env.NUMBER_OF_FIELDS); + let schema = { + type: 'record', + name: 'Interactions', + namespace: 'com.amazonaws.personalize.schema', + fields: [ + { name: 'USER_ID', type: 'string' }, + { name: 'ITEM_ID', type: 'string' }, + { name: 'TIMESTAMP', type: 'long' }, + ], + version: '1.0', + }; + + for (let i = 4; i <= noOfFields + 3; i += 1) { + const fieldName = await promtForInput(rl, `Name of field no. ${i}: `); + const typeName = await promtForInput(rl, `Type of field ${fieldName}: `); + schema.fields.push({ name: fieldName, type: typeName }); } + return schema; } (async function () { + let rl = readline.createInterface(process.stdin, process.stdout); + await collectInputs(rl); + const schema = await collectFileds(rl); + rl.close(); + const datasetGroup = process.env.DATASET_GROUP_NAME; try { const client = new PersonalizeClient({ region: process.env.AWS_REGION, diff --git a/src/v0/destinations/personalize/transform.js b/src/v0/destinations/personalize/transform.js index c8eca2af2f..bb547f7b28 100644 --- a/src/v0/destinations/personalize/transform.js +++ b/src/v0/destinations/personalize/transform.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const { KEY_CHECK_LIST, MANDATORY_PROPERTIES } = require('./config'); const { EventType } = require('../../../constants'); const { @@ -42,28 +42,28 @@ const putEventsHandler = (message, destination) => { throw new InstrumentationError(`Mapped property ${keyMap[key]} not found`); } if (isDefined(disableStringify) && disableStringify) { - outputEvent.properties[_.camelCase(key)] = value; + outputEvent.properties[lodash.camelCase(key)] = value; } else { // users using old config will have stringified property by default - outputEvent.properties[_.camelCase(key)] = String(value); + outputEvent.properties[lodash.camelCase(key)] = String(value); } } else if (!MANDATORY_PROPERTIES.includes(key.toUpperCase())) { if ((!isDefinedAndNotNull(value) || isBlank(value)) && key.toUpperCase() !== 'ITEM_ID') { throw new InstrumentationError(`Null values cannot be sent for ${keyMap[key]} `); } if (!(key.toUpperCase() === 'IMPRESSION' || key.toUpperCase() === 'EVENT_VALUE')) - outputEvent[_.camelCase(key)] = String(value); + outputEvent[lodash.camelCase(key)] = String(value); else if (key.toUpperCase() === 'IMPRESSION') { - outputEvent[_.camelCase(key)] = Array.isArray(value) ? value.map(String) : [String(value)]; - outputEvent[_.camelCase(key)] = _.without( - outputEvent[_.camelCase(key)], + outputEvent[lodash.camelCase(key)] = Array.isArray(value) ? value.map(String) : [String(value)]; + outputEvent[lodash.camelCase(key)] = lodash.without( + outputEvent[lodash.camelCase(key)], undefined, null, '', ); } else if (!Number.isNaN(parseFloat(value))) { // for eventValue - outputEvent[_.camelCase(key)] = parseFloat(value); + outputEvent[lodash.camelCase(key)] = parseFloat(value); } else throw new InstrumentationError('EVENT_VALUE should be a float value'); } }); @@ -115,7 +115,7 @@ const putItemsHandler = (message, destination) => { // eslint-disable-next-line no-lonely-if if (!isDefinedAndNotNull(value) || isBlank(value)) { // itemId cannot be null - value = String(_.get(message, keyMap[key])); + value = String(lodash.get(message, keyMap[key])); } } if (!isDefined(value)) { @@ -123,7 +123,7 @@ const putItemsHandler = (message, destination) => { } if (key.toUpperCase() !== 'ITEM_ID') { // itemId is not allowed inside properties - outputItem.properties[_.camelCase(key)] = value; + outputItem.properties[lodash.camelCase(key)] = value; } else { outputItem.itemId = String(value); } @@ -185,7 +185,7 @@ const identifyRequestHandler = (message, destination, eventOperation) => { } if (key.toUpperCase() !== 'USER_ID') { // userId is not allowed inside properties - outputUser.properties[_.camelCase(key)] = value; + outputUser.properties[lodash.camelCase(key)] = value; } }); if (!outputUser.userId) { diff --git a/src/v0/destinations/postgres/transform.test.js b/src/v0/destinations/postgres/transform.test.js new file mode 100644 index 0000000000..9256d5bcde --- /dev/null +++ b/src/v0/destinations/postgres/transform.test.js @@ -0,0 +1,48 @@ +const { getDataType } = require('../../../../src/warehouse/index'); +const { getDataTypeOverride } = require('./transform'); + +const testCases = [ + { + name: 'normalInt', + data: 1, + type: 'int', + }, + { + name: 'normalFloat', + data: 2.01, + type: 'float', + }, + { + name: 'normalBoolean', + data: true, + type: 'boolean', + }, + { + name: 'normalString', + data: 'postgres transformation[*007}', + type: 'string', + }, + { + name: 'violationErrors', + data: [ + { + message: + 'no schema for eventName : Product Purchased new, eventType : track in trackingPlanID : tp_20dfXJDpotQWHe7hMxfQfgWMZDv::1', + meta: {}, + type: 'Unplanned-Event', + }, + ], + type: 'json', + }, +]; + +describe('Postgres data types testing', () => { + const options = {}; + options.getDataTypeOverride = getDataTypeOverride; + testCases.forEach((testCase) => { + it(`should return data type ${testCase.type} for this input data ${testCase.data} everytime`, () => { + const dataType = getDataType(testCase.name, testCase.data, options); + expect(dataType).toEqual(testCase.type); + }); + }); +}); diff --git a/src/v0/destinations/redis/transform.js b/src/v0/destinations/redis/transform.js index 124569c8e8..e9442d8487 100644 --- a/src/v0/destinations/redis/transform.js +++ b/src/v0/destinations/redis/transform.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const flatten = require('flat'); const { isEmpty, isObject } = require('../../util'); @@ -17,7 +17,7 @@ const processValues = (obj) => { } const val = obj[key]; // eslint-disable-next-line no-param-reassign - obj[key] = _.isArray(val) ? JSON.stringify(val) : _.toString(val); + obj[key] = lodash.isArray(val) ? JSON.stringify(val) : lodash.toString(val); }); }; @@ -68,7 +68,7 @@ const process = (event) => { } const hmap = { - key: `${keyPrefix}user:${_.toString(message.userId)}`, + key: `${keyPrefix}user:${lodash.toString(message.userId)}`, fields: {}, }; diff --git a/src/v0/destinations/sendgrid/transform.js b/src/v0/destinations/sendgrid/transform.js index 0f944e5f28..4e68b34c7d 100644 --- a/src/v0/destinations/sendgrid/transform.js +++ b/src/v0/destinations/sendgrid/transform.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const { EventType } = require('../../../constants'); const { ErrorMessage, @@ -211,10 +211,10 @@ const batchEvents = (successRespList) => { "contactListIds3": [{message : {}, metadata : {}, destination: {}}], "contactListIds4": [{message : {}, metadata : {}, destination: {}}] */ - const eventGroups = _.groupBy(identifyCalls, (event) => event.message.body.JSON.contactListIds); + const eventGroups = lodash.groupBy(identifyCalls, (event) => event.message.body.JSON.contactListIds); Object.keys(eventGroups).forEach((combination) => { - const eventChunks = _.chunk(eventGroups[combination], MAX_BATCH_SIZE); + const eventChunks = lodash.chunk(eventGroups[combination], MAX_BATCH_SIZE); // eventChunks = [[e1,e2,e3,..batchSize],[e1,e2,e3,..batchSize]..] eventChunks.forEach((chunk) => { const batchEventResponse = generateBatchedPaylaodForArray(chunk, combination); diff --git a/src/v0/destinations/sendinblue/transform.js b/src/v0/destinations/sendinblue/transform.js index 8e8645f32f..151304db22 100644 --- a/src/v0/destinations/sendinblue/transform.js +++ b/src/v0/destinations/sendinblue/transform.js @@ -1,4 +1,5 @@ /* eslint-disable camelcase */ +/* eslint-disable @typescript-eslint/naming-convention */ const { EventType } = require('../../../constants'); const { defaultRequestConfig, diff --git a/src/v0/destinations/singular/util.js b/src/v0/destinations/singular/util.js index c2a88a9c46..542b049a2e 100644 --- a/src/v0/destinations/singular/util.js +++ b/src/v0/destinations/singular/util.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); const { CONFIG_CATEGORIES, MAPPING_CONFIG, @@ -75,7 +75,7 @@ const exclusionList = { * @param {*} eventName */ const isSessionEvent = (Config, eventName) => { - const mappedSessionEvents = _.map(Config.sessionEventList, 'sessionEventName'); + const mappedSessionEvents = lodash.map(Config.sessionEventList, 'sessionEventName'); return mappedSessionEvents.includes(eventName) || SESSIONEVENTS.includes(eventName.toLowerCase()); }; diff --git a/src/v0/destinations/slack/transform.js b/src/v0/destinations/slack/transform.js index c913f3103e..8db934d71f 100644 --- a/src/v0/destinations/slack/transform.js +++ b/src/v0/destinations/slack/transform.js @@ -1,5 +1,4 @@ -/* eslint-disable no-nested-ternary */ -/* eslint-disable no-prototype-builtins */ +/* eslint-disable no-nested-ternary, no-restricted-syntax, no-prototype-builtins */ const Handlebars = require('handlebars'); const { EventType } = require('../../../constants'); const { diff --git a/src/v0/destinations/snapchat_custom_audience/networkHandler.js b/src/v0/destinations/snapchat_custom_audience/networkHandler.js index 49ea452550..196f9a87fb 100644 --- a/src/v0/destinations/snapchat_custom_audience/networkHandler.js +++ b/src/v0/destinations/snapchat_custom_audience/networkHandler.js @@ -1,9 +1,7 @@ const { removeUndefinedValues, getAuthErrCategoryFromErrDetailsAndStCode } = require('../../util'); const { prepareProxyRequest, getPayloadData, httpSend } = require('../../../adapters/network'); const { isHttpStatusSuccess } = require('../../util/index'); -const { - REFRESH_TOKEN, -} = require('../../../adapters/networkhandler/authConstants'); +const { REFRESH_TOKEN } = require('../../../adapters/networkhandler/authConstants'); const tags = require('../../util/tags'); const { getDynamicErrorType, diff --git a/src/v0/destinations/tiktok_ads/networkHandler.js b/src/v0/destinations/tiktok_ads/networkHandler.js index ade33e5133..1ec31e982a 100644 --- a/src/v0/destinations/tiktok_ads/networkHandler.js +++ b/src/v0/destinations/tiktok_ads/networkHandler.js @@ -40,6 +40,7 @@ const responseHandler = (destinationResponse) => { ); }; +// eslint-disable-next-line @typescript-eslint/naming-convention class networkHandler { constructor() { this.responseHandler = responseHandler; diff --git a/src/v0/destinations/tiktok_ads/transform.js b/src/v0/destinations/tiktok_ads/transform.js index 6bf9cd7270..4e99d83575 100644 --- a/src/v0/destinations/tiktok_ads/transform.js +++ b/src/v0/destinations/tiktok_ads/transform.js @@ -1,4 +1,5 @@ /* eslint-disable camelcase */ +/* eslint-disable @typescript-eslint/naming-convention */ const _ = require('lodash'); const { SHA256 } = require('crypto-js'); const get = require('get-value'); diff --git a/src/v0/destinations/tiktok_ads/util.js b/src/v0/destinations/tiktok_ads/util.js index 98acb794a5..4050a9fe34 100644 --- a/src/v0/destinations/tiktok_ads/util.js +++ b/src/v0/destinations/tiktok_ads/util.js @@ -8,6 +8,7 @@ const { removeUndefinedAndNullValues } = require('../../util'); const getContents = (message) => { const contents = []; const { properties } = message; + // eslint-disable-next-line @typescript-eslint/naming-convention const { products, content_type, contentType } = properties; if (products && Array.isArray(products) && products.length > 0) { products.forEach((product) => { diff --git a/src/v0/destinations/tiktok_ads_offline_events/transform.js b/src/v0/destinations/tiktok_ads_offline_events/transform.js index 0ade5bbfbb..3539c856a3 100644 --- a/src/v0/destinations/tiktok_ads_offline_events/transform.js +++ b/src/v0/destinations/tiktok_ads_offline_events/transform.js @@ -1,6 +1,6 @@ const { SHA256 } = require('crypto-js'); const set = require('set-value'); -const _ = require('lodash'); +const lodash = require('lodash'); const { EventType } = require('../../../constants'); const { constructPayload, @@ -191,7 +191,7 @@ const batchEvents = (eventChunksArray) => { // event_set_id1: [...events] // event_set_id2: [...events] // } - const groupedEventChunks = _.groupBy(eventChunksArray, ({ message }) => { + const groupedEventChunks = lodash.groupBy(eventChunksArray, ({ message }) => { if (Array.isArray(message)) return message[0].event_set_id; return message.event_set_id; }); diff --git a/src/v0/destinations/yahoo_dsp/util.js b/src/v0/destinations/yahoo_dsp/util.js index f47717df51..a069660bde 100644 --- a/src/v0/destinations/yahoo_dsp/util.js +++ b/src/v0/destinations/yahoo_dsp/util.js @@ -1,7 +1,7 @@ const qs = require('qs'); const sha256 = require('sha256'); const { generateJWTToken } = require('../../../util/jwtTokenGenerator'); -const { httpPOST } = require('../../../adapters/network'); +const { httpSend } = require('../../../adapters/network'); const { isDefinedAndNotNullAndNotEmpty } = require('../../util'); const { getDynamicErrorType } = require('../../../adapters/utils/networkUtils'); const { ACCESS_TOKEN_CACHE_TTL, AUDIENCE_ATTRIBUTE, DSP_SUPPORTED_OPERATION } = require('./config'); @@ -119,7 +119,7 @@ const getAccessToken = async (destination) => { }; const request = { - header: { + headers: { 'Content-Type': 'application/x-www-form-urlencoded', Accept: JSON_MIME_TYPE, }, @@ -134,7 +134,7 @@ const getAccessToken = async (destination) => { }), method: 'POST', }; - const dspAuthorisationData = await httpPOST(request.url, request.data, request.header, { + const dspAuthorisationData = await httpSend(request, { destType: 'yahoo_dsp', feature: 'transformation', }); diff --git a/src/v0/sources/auth0/transform.js b/src/v0/sources/auth0/transform.js index 8a0013036b..d2721780d8 100644 --- a/src/v0/sources/auth0/transform.js +++ b/src/v0/sources/auth0/transform.js @@ -41,6 +41,7 @@ function processEvents(eventList) { eventList.forEach((event) => { let response = {}; // eslint-disable-next-line camelcase + // eslint-disable-next-line @typescript-eslint/naming-convention const { data, log_id } = event; // Dropping the event if type is not present if (data && data.type) { diff --git a/src/v0/sources/shopify/transform.js b/src/v0/sources/shopify/transform.js index 5c26bfd844..7bbb928fd8 100644 --- a/src/v0/sources/shopify/transform.js +++ b/src/v0/sources/shopify/transform.js @@ -1,4 +1,5 @@ -const _ = require('lodash'); +/* eslint-disable @typescript-eslint/naming-convention */ +const lodash = require('lodash'); const get = require('get-value'); const stats = require('../../../util/stats'); const { @@ -125,8 +126,8 @@ const trackPayloadBuilder = (event, shopifyTopic) => { const processEvent = async (inputEvent, metricMetadata) => { let message; + const event = lodash.cloneDeep(inputEvent); let redisData; - const event = _.cloneDeep(inputEvent); const shopifyTopic = getShopifyTopic(event); delete event.query_parameters; switch (shopifyTopic) { diff --git a/src/v0/sources/shopify/util.js b/src/v0/sources/shopify/util.js index 76cc255f38..0d81ddc185 100644 --- a/src/v0/sources/shopify/util.js +++ b/src/v0/sources/shopify/util.js @@ -1,8 +1,15 @@ /* eslint-disable camelcase */ +/* eslint-disable @typescript-eslint/naming-convention */ const { v5 } = require('uuid'); const sha256 = require('sha256'); const stats = require('../../../util/stats'); -const { constructPayload, extractCustomFields, flattenJson, generateUUID, isDefinedAndNotNull, } = require('../../util'); +const { + constructPayload, + extractCustomFields, + flattenJson, + generateUUID, + isDefinedAndNotNull, +} = require('../../util'); const { RedisDB } = require('../../../util/redis/redisConnector'); const logger = require('../../../logger'); const { @@ -13,11 +20,10 @@ const { SHOPIFY_TRACK_MAP, SHOPIFY_ADMIN_ONLY_EVENTS, useRedisDatabase, - maxTimeToIdentifyRSGeneratedCall + maxTimeToIdentifyRSGeneratedCall, } = require('./config'); const { TransformationError } = require('../../util/errorTypes'); - const getDataFromRedis = async (key, metricMetadata) => { try { stats.increment('shopify_redis_calls', { @@ -32,8 +38,7 @@ const getDataFromRedis = async (key, metricMetadata) => { }); } return redisData; - } - catch (e) { + } catch (e) { logger.debug(`{{SHOPIFY::}} Get call Failed due redis error ${e}`); stats.increment('shopify_redis_failures', { type: 'get', @@ -112,11 +117,11 @@ const extractEmailFromPayload = (event) => { }; const getCartToken = (message) => { - const { event } = message; + const { event, properties } = message; if (event === SHOPIFY_TRACK_MAP.carts_update) { - return message.properties?.id || message.properties?.token; + return properties?.id || properties?.token; } - return message.properties?.cart_token || null; + return properties?.cart_token || null; }; /** @@ -141,9 +146,9 @@ const getRudderIdFromNoteAtrributes = (noteAttributes, field) => { * -> if true we return `null`; * -> else we don't have any identifer (very edge case) we return `random anonymousId` * No Random SessionId is generated as its not a required field - * @param {*} message - * @param {*} metricMetadata - * @returns + * @param {*} message + * @param {*} metricMetadata + * @returns */ const getAnonymousIdAndSessionId = async (message, metricMetadata, redisData = null) => { let anonymousId; @@ -151,8 +156,8 @@ const getAnonymousIdAndSessionId = async (message, metricMetadata, redisData = n const noteAttributes = message.properties?.note_attributes; // Giving Priority to note_attributes to fetch rudderAnonymousId over Redis due to better efficiency if (isDefinedAndNotNull(noteAttributes)) { - anonymousId = getRudderIdFromNoteAtrributes(noteAttributes, "rudderAnonymousId"); - sessionId = getRudderIdFromNoteAtrributes(noteAttributes, "rudderSessionId"); + anonymousId = getRudderIdFromNoteAtrributes(noteAttributes, 'rudderAnonymousId'); + sessionId = getRudderIdFromNoteAtrributes(noteAttributes, 'rudderSessionId'); } // falling back to cartToken mapping or its hash in case no rudderAnonymousId or rudderSessionId is found if (isDefinedAndNotNull(anonymousId) && isDefinedAndNotNull(sessionId)) { @@ -163,7 +168,10 @@ const getAnonymousIdAndSessionId = async (message, metricMetadata, redisData = n if (SHOPIFY_ADMIN_ONLY_EVENTS.includes(message.event)) { return { anonymousId, sessionId }; } - return { anonymousId: isDefinedAndNotNull(anonymousId) ? anonymousId : generateUUID(), sessionId }; + return { + anonymousId: isDefinedAndNotNull(anonymousId) ? anonymousId : generateUUID(), + sessionId, + }; } if (useRedisDatabase) { if (!isDefinedAndNotNull(redisData)) { @@ -196,8 +204,7 @@ const updateCartItemsInRedis = async (cartToken, newCartItemsHash, metricMetadat ...metricMetadata, }); await RedisDB.setVal(`${cartToken}`, value); - } - catch (e) { + } catch (e) { logger.debug(`{{SHOPIFY::}} itemsHash set call Failed due redis error ${e}`); stats.increment('shopify_redis_failures', { type: 'set', @@ -228,10 +235,10 @@ const checkAndUpdateCartItems = async (inputEvent, redisData, metricMetadata) => } await updateCartItemsInRedis(cartToken, newCartItemsHash, metricMetadata); } else { - const { created_at, updated_at } = inputEvent; + const { created_at, updated_at, line_items } = inputEvent; const timeDifference = Date.parse(updated_at) - Date.parse(created_at); const isTimeWithinThreshold = timeDifference < maxTimeToIdentifyRSGeneratedCall; - const isLineItemsEmpty = inputEvent?.line_items?.length === 0; + const isLineItemsEmpty = line_items?.length === 0; if (isTimeWithinThreshold && isLineItemsEmpty) { return false; diff --git a/src/v0/util/deleteUserUtils.js b/src/v0/util/deleteUserUtils.js index 81607aeb3d..6cf16d7f9e 100644 --- a/src/v0/util/deleteUserUtils.js +++ b/src/v0/util/deleteUserUtils.js @@ -1,4 +1,4 @@ -const _ = require('lodash'); +const lodash = require('lodash'); /** * Takes the userAttributes array fetches userIds at root level of each element * and make batches of Ids accoring to MAX_BATCH_SIZE @@ -14,7 +14,7 @@ const getUserIdBatches = (userAttributes, MAX_BATCH_SIZE) => { userIds.push(userAttribute.userId); } }); - const userIdBatches = _.chunk(userIds, MAX_BATCH_SIZE); + const userIdBatches = lodash.chunk(userIds, MAX_BATCH_SIZE); return userIdBatches; }; diff --git a/src/v0/util/index.js b/src/v0/util/index.js index 8a20104dd0..42a4100510 100644 --- a/src/v0/util/index.js +++ b/src/v0/util/index.js @@ -9,7 +9,7 @@ const Handlebars = require('handlebars'); const fs = require('fs'); const path = require('path'); -const _ = require('lodash'); +const lodash = require('lodash'); const set = require('set-value'); const get = require('get-value'); const uaParser = require('ua-parser-js'); @@ -36,17 +36,18 @@ const { // INLINERS // ======================================================================== -const isDefined = (x) => !_.isUndefined(x); -const isNotEmpty = (x) => !_.isEmpty(x); +const isDefined = (x) => !lodash.isUndefined(x); +const isNotEmpty = (x) => !lodash.isEmpty(x); const isNotNull = (x) => x != null; const isDefinedAndNotNull = (x) => isDefined(x) && isNotNull(x); const isDefinedAndNotNullAndNotEmpty = (x) => isDefined(x) && isNotNull(x) && isNotEmpty(x); -const removeUndefinedValues = (obj) => _.pickBy(obj, isDefined); -const removeNullValues = (obj) => _.pickBy(obj, isNotNull); -const removeUndefinedAndNullValues = (obj) => _.pickBy(obj, isDefinedAndNotNull); -const removeUndefinedAndNullAndEmptyValues = (obj) => _.pickBy(obj, isDefinedAndNotNullAndNotEmpty); -const isBlank = (value) => _.isEmpty(_.toString(value)); -const flattenMap = (collection) => _.flatMap(collection, (x) => x); +const removeUndefinedValues = (obj) => lodash.pickBy(obj, isDefined); +const removeNullValues = (obj) => lodash.pickBy(obj, isNotNull); +const removeUndefinedAndNullValues = (obj) => lodash.pickBy(obj, isDefinedAndNotNull); +const removeUndefinedAndNullAndEmptyValues = (obj) => + lodash.pickBy(obj, isDefinedAndNotNullAndNotEmpty); +const isBlank = (value) => lodash.isEmpty(lodash.toString(value)); +const flattenMap = (collection) => lodash.flatMap(collection, (x) => x); // ======================================================================== // GENERIC UTLITY // ======================================================================== @@ -108,7 +109,7 @@ const isObject = (value) => { }; function isEmpty(input) { - return _.isEmpty(_.toString(input).trim()); + return lodash.isEmpty(lodash.toString(input).trim()); } /** @@ -126,8 +127,8 @@ function isEmptyObject(obj) { /** * Function to check if value is Defined, Not null and Not Empty. - * Create this function, Because existing isDefinedAndNotNullAndNotEmpty(123) is returning false due to lodash _.isEmpty function. - * _.isEmpty is used to detect empty collections/objects and it will return true for Integer, Boolean values. + * Create this function, Because existing isDefinedAndNotNullAndNotEmpty(123) is returning false due to lodash lodash.isEmpty function. + * lodash.isEmpty is used to detect empty collections/objects and it will return true for Integer, Boolean values. * ref: https://github.com/lodash/lodash/issues/496 * @param {*} value 123 * @returns yes @@ -141,7 +142,7 @@ const isDefinedNotNullNotEmpty = (value) => (typeof value === 'string' && value.trim().length === 0) ); -const removeUndefinedNullEmptyExclBoolInt = (obj) => _.pickBy(obj, isDefinedNotNullNotEmpty); +const removeUndefinedNullEmptyExclBoolInt = (obj) => lodash.pickBy(obj, isDefinedNotNullNotEmpty); /** * Recursively removes undefined, null, empty objects, and empty arrays from the given object at all levels. @@ -149,6 +150,7 @@ const removeUndefinedNullEmptyExclBoolInt = (obj) => _.pickBy(obj, isDefinedNotN * @returns */ const removeUndefinedNullValuesAndEmptyObjectArray = (obj) => { + // eslint-disable-next-line @typescript-eslint/no-shadow function recursive(obj) { if (Array.isArray(obj)) { const cleanedArray = obj @@ -239,16 +241,46 @@ const getHashFromArrayWithValueAsObject = (arrays, fromKey = 'from', isLowerCase const getValueFromPropertiesOrTraits = ({ message, key }) => { const keySet = ['properties', 'traits', 'context.traits']; - const val = _.find( - _.map(keySet, (k) => get(message, `${k}.${key}`)), - (v) => !_.isNil(v), + const val = lodash.find( + lodash.map(keySet, (k) => get(message, `${k}.${key}`)), + (v) => !lodash.isNil(v), ); - return !_.isNil(val) ? val : null; + return !lodash.isNil(val) ? val : null; +}; + +/** + * Checks if an object contains a circular reference. + * + * @param {object} obj - The object to check for circular references. + * @param {array} [seen=[]] - An array that keeps track of objects already seen during the recursive traversal. Defaults to an empty array. + * @returns {boolean} - True if a circular reference is found, false otherwise. + */ +const hasCircularReference = (obj, seen = []) => { + if (typeof obj !== 'object' || obj === null) { + return false; + } + + if (seen.includes(obj)) { + return true; + } + + seen.push(obj); + // eslint-disable-next-line no-restricted-syntax + for (const value of Object.values(obj)) { + if (hasCircularReference(value, seen)) { + return true; + } + } + seen.pop(); + return false; }; // function to flatten a json function flattenJson(data, separator = '.', mode = 'normal', flattenArrays = true) { const result = {}; + if (hasCircularReference(data)) { + throw new InstrumentationError("Event has circular reference. Can't flatten the event"); + } // a recursive function to loop through the array of the data function recurse(cur, prop) { @@ -527,7 +559,7 @@ const handleSourceKeysOperation = ({ message, operationObject }) => { // quick sanity check for the undefined values in the list. // if there is any undefined values, return null // without going further for operations - const isAllDefined = _.every(argValues, (v) => !_.isNil(v)); + const isAllDefined = lodash.every(argValues, (v) => !lodash.isNil(v)); if (!isAllDefined) { return null; } @@ -539,9 +571,9 @@ const handleSourceKeysOperation = ({ message, operationObject }) => { result = 1; // eslint-disable-next-line no-restricted-syntax for (const v of argValues) { - if (_.isNumber(v)) { + if (lodash.isNumber(v)) { result *= v; - } else if (_.isString(v) && /^[+-]?(\d+(\.\d*)?|\.\d+)([Ee][+-]?\d+)?$/.test(v)) { + } else if (lodash.isString(v) && /^[+-]?(\d+(\.\d*)?|\.\d+)([Ee][+-]?\d+)?$/.test(v)) { result *= parseFloat(v); } else { // if there is a non number argument simply return null @@ -554,7 +586,7 @@ const handleSourceKeysOperation = ({ message, operationObject }) => { result = 0; // eslint-disable-next-line no-restricted-syntax for (const v of argValues) { - if (_.isNumber(v)) { + if (lodash.isNumber(v)) { result += v; } else { // if there is a non number argument simply return null @@ -1022,7 +1054,7 @@ const constructPayload = (message, mappingJson, destinationName = null) => { if (value || value === 0 || value === false) { if (destKey) { // set the value only if correct - _.set(payload, destKey, value); + lodash.set(payload, destKey, value); } else { // to set to root and flatten later payload[''] = value; @@ -1399,12 +1431,12 @@ const errorStatusCodeKeys = ['response.status', 'code', 'status']; const getErrorStatusCode = (error, defaultStatusCode = HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR) => { try { let defaultStCode = defaultStatusCode; - if (!_.isNumber(defaultStatusCode)) { + if (!lodash.isNumber(defaultStatusCode)) { defaultStCode = HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR; } const errStCode = errorStatusCodeKeys .map((statusKey) => get(error, statusKey)) - .find((stCode) => _.isNumber(stCode)); + .find((stCode) => lodash.isNumber(stCode)); return errStCode || defaultStCode; } catch (err) { logger.error('Failed in getErrorStatusCode', err); @@ -1902,7 +1934,7 @@ const batchMultiplexedEvents = (transformedEventsList, maxBatchSize) => { } if (batchedEvents.length === 0 || eventsNotBatched) { if (transformedMessage.length > maxBatchSize) { - transformedMessage = _.chunk(transformedMessage, maxBatchSize); + transformedMessage = lodash.chunk(transformedMessage, maxBatchSize); } batchedEvents.push({ events: transformedMessage, @@ -1916,6 +1948,38 @@ const batchMultiplexedEvents = (transformedEventsList, maxBatchSize) => { return batchedEvents; }; +/** + * Groups events with the same message type together in batches. + * Each batch contains events that have the same message type and are from different users. + * @param {*} inputs - An array of events + * @returns {*} - An array of batches + */ +const groupEventsByType = (inputs) => { + const batches = []; + let currentInputsArray = inputs; + while (currentInputsArray.length > 0) { + const remainingInputsArray = []; + const userOrderTracker = {}; + const event = currentInputsArray.shift(); + const messageType = event.message.type; + const batch = [event]; + currentInputsArray.forEach((currentInput) => { + const currentMessageType = currentInput.message.type; + const currentUser = currentInput.metadata.userId; + if (currentMessageType === messageType && !userOrderTracker[currentUser]) { + batch.push(currentInput); + } else { + remainingInputsArray.push(currentInput); + userOrderTracker[currentUser] = true; + } + }); + batches.push(batch); + currentInputsArray = remainingInputsArray; + } + + return batches; +}; + /** * This function helps to detarmine type of error occured. According to the response * we set authErrorCategory to take decision if we need to refresh the access_token @@ -2061,6 +2125,8 @@ module.exports = { checkAndCorrectUserId, getAccessToken, formatValues, + groupEventsByType, + hasCircularReference, getAuthErrCategoryFromErrDetailsAndStCode, getAuthErrCategoryFromStCode, }; diff --git a/src/v0/util/index.test.js b/src/v0/util/index.test.js index b575f006fa..ce341e8187 100644 --- a/src/v0/util/index.test.js +++ b/src/v0/util/index.test.js @@ -1,5 +1,6 @@ const utilities = require('.'); const { getFuncTestData } = require('../../../test/testHelper'); +const { hasCircularReference, flattenJson } = require('./index'); // Names of the utility functions to test const functionNames = [ @@ -11,6 +12,7 @@ const functionNames = [ 'extractCustomFields', 'batchMultiplexedEvents', 'removeUndefinedNullValuesAndEmptyObjectArray', + 'groupEventsByType', ]; // Names of the utility functions to test which expects multiple arguments as values and not objects @@ -67,3 +69,49 @@ describe('Utility Functions Tests', () => { }); //Test cases which can't be fit in above test suite, have individual function level test blocks + +describe('hasCircularReference', () => { + it('should return false when object has no circular reference', () => { + const obj = { a: 1, b: 2, c: 3 }; + expect(hasCircularReference(obj)).toBe(false); + }); + + it('should return true when object has circular reference', () => { + const obj = { a: 1, b: 2 }; + obj.c = obj; + expect(hasCircularReference(obj)).toBe(true); + }); + + it('should return true when object has nested objects containing circular reference', () => { + const obj1 = { a: 1 }; + const obj2 = { b: 2 }; + obj1.c = obj2; + obj2.d = obj1; + expect(hasCircularReference(obj1)).toBe(true); + }); + + it('should return false when input is null', () => { + expect(hasCircularReference(null)).toBe(false); + }); + + it('should return false when input is not an object', () => { + expect(hasCircularReference(123)).toBe(false); + }); + + it('should return true when object has self-reference', () => { + const obj = { a: 1 }; + obj.b = obj; + expect(hasCircularReference(obj)).toBe(true); + }); +}); + +// extra test cases for flattenJson +describe('flattenJson', () => { + it('should throw an error when flattening a json object with circular reference', () => { + const data = { name: 'John' }; + data.self = data; + expect(() => flattenJson(data)).toThrow( + "Event has circular reference. Can't flatten the event", + ); + }); +}); diff --git a/src/v0/util/testdata/groupEventsByType.json b/src/v0/util/testdata/groupEventsByType.json new file mode 100644 index 0000000000..168b875036 --- /dev/null +++ b/src/v0/util/testdata/groupEventsByType.json @@ -0,0 +1,624 @@ +[ + { + "description": "Should return an empty array when given an empty events array", + "input": [[]], + "output": [] + }, + { + "description": "Should group multiple events with the different message type and different users together in a batch: Scenario 1", + "input": [ + [ + { + "message": { + "type": "identify", + "userId": "user1" + }, + "metadata": { + "jobId": "1" + } + }, + { + "message": { + "type": "identify", + "userId": "user2" + }, + "metadata": { + "jobId": "2" + } + }, + { + "message": { + "type": "track", + "userId": "user1" + }, + "metadata": { + "jobId": "3" + } + }, + { + "message": { + "type": "identify", + "userId": "user1" + }, + "metadata": { + "jobId": "4" + } + }, + { + "message": { + "type": "identify", + "userId": "user2" + }, + "metadata": { + "jobId": "5" + } + } + ] + ], + "output": [ + [ + { + "message": { + "type": "identify", + "userId": "user1" + }, + "metadata": { + "jobId": "1" + } + }, + { + "message": { + "type": "identify", + "userId": "user2" + }, + "metadata": { + "jobId": "2" + } + } + ], + [ + { + "message": { + "type": "track", + "userId": "user1" + }, + "metadata": { + "jobId": "3" + } + } + ], + [ + { + "message": { + "type": "identify", + "userId": "user1" + }, + "metadata": { + "jobId": "4" + } + }, + { + "message": { + "type": "identify", + "userId": "user2" + }, + "metadata": { + "jobId": "5" + } + } + ] + ] + }, + { + "description": "Should group multiple events with the different message type and different users together in a batch: Scenario 2", + "input": [ + [ + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "1" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "1" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "3" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "3" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "4" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "4" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + } + ] + ], + "output": [ + [ + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "1" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "3" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "4" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + } + ], + [ + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "1" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "3" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "4" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "5" + } + } + ], + [ + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "5" + } + } + ] + ] + }, + { + "description": "Should group multiple events with the different message type and different users together in a batch: Scenario 3", + "input": [ + [ + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "3" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "3" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "1" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "1" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "4" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "4" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + } + ] + ], + "output": [ + [ + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "3" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "4" + } + } + ], + [ + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "3" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "1" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "4" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + }, + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "6" + } + } + ], + [ + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "1" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "5" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "2" + } + }, + { + "message": { + "type": "track" + }, + "metadata": { + "userId": "2" + } + } + ], + [ + { + "message": { + "type": "identify" + }, + "metadata": { + "userId": "5" + } + } + ] + ] + } +] diff --git a/test/__mocks__/axios.js b/test/__mocks__/axios.js index dc3005d909..6a3139c4e9 100644 --- a/test/__mocks__/axios.js +++ b/test/__mocks__/axios.js @@ -40,7 +40,6 @@ const { sendgridGetRequestHandler } = require("./sendgrid.mock"); const { sendinblueGetRequestHandler } = require("./sendinblue.mock"); const { courierGetRequestHandler } = require("./courier.mock"); const { brazePostRequestHandler } = require("./braze.mock"); -const {optimizelyFullStackGetRequestHandler} = require("./optimizely_fullstack.mock"); const urlDirectoryMap = { "api.hubapi.com": "hs", @@ -55,7 +54,6 @@ const urlDirectoryMap = { "api.sendinblue.com": "sendinblue", "api.criteo.com": "criteo_audience", "api.courier.com": "courier", - "cdn.optimizely.com": "optimizely_fullstack", }; const fs = require("fs"); diff --git a/test/__mocks__/data/marketo_static_list/proxy_response.json b/test/__mocks__/data/marketo_static_list/proxy_response.json index 2a58d99da2..290a4f5fbf 100644 --- a/test/__mocks__/data/marketo_static_list/proxy_response.json +++ b/test/__mocks__/data/marketo_static_list/proxy_response.json @@ -96,4 +96,4 @@ }, "status": 200 } -} \ No newline at end of file +} diff --git a/test/__mocks__/data/optimizely_fullstack/response.json b/test/__mocks__/data/optimizely_fullstack/response.json deleted file mode 100644 index e83dd8197f..0000000000 --- a/test/__mocks__/data/optimizely_fullstack/response.json +++ /dev/null @@ -1,180 +0,0 @@ -{ - "https://cdn.optimizely.com/datafiles/abc.json": { - "accountId": "test_account_id", - "projectId": "test_project_id", - "revision": "45", - "attributes": [ - { - "id": "test_attribute_id_1", - "key": "gender" - }, - { - "id": "test_attribute_id_2", - "key": "name" - }, - { - "id": "test_attribute_id_3", - "key": "userId" - }, - { - "id": "test_attribute_id_4", - "key": "anonymousId" - }, - { - "id": "test_attribute_id_5", - "key": "company" - } - ], - "audiences": [ - { - "id": "$opt_test_audience", - "name": "Optimizely-Generated Audience for Backwards Compatibility", - "conditions": "[\"or\", {\"match\": \"exact\", \"name\": \"$opt_test_attribute\", \"type\": \"custom_attribute\", \"value\": \"$opt_test_value\"}]" - } - ], - "version": "4", - "events": [ - { - "id": "test_event_id_1", - "experimentIds": ["test_experiment_id"], - "key": "Product Added" - }, - { - "id": "test_event_id_2", - "experimentIds": ["test_experiment_id"], - "key": "Product Removed" - }, - { - "id": "test_event_id_3", - "experimentIds": ["test_experiment_id"], - "key": "Order Placed" - }, - { - "id": "test_event_id_4", - "experimentIds": ["test_experiment_id"], - "key": "Viewed Meal page" - }, - { - "id": "test_event_id_5", - "experimentIds": ["test_experiment_id"], - "key": "Viewed food page" - }, - { - "id": "test_event_id_6", - "experimentIds": ["test_experiment_id"], - "key": "Viewed Main screen" - }, - { - "id": "test_event_id_7", - "experimentIds": ["test_experiment_id"], - "key": "Home" - }, - { - "id": "test_event_id_8", - "experimentIds": ["test_experiment_id"], - "key": "Index" - } - ], - "anonymizeIP": true, - "botFiltering": false, - "typedAudiences": [], - "variables": [], - "environmentKey": "production", - "sdkKey": "test_sdk_key", - "featureFlags": [ - { - "id": "test_feature_flag_id", - "key": "testfeature", - "experimentIds": ["test_experiment_id"], - "rolloutId": "test_rollout_id", - "variables": [ - { - "id": "test_variable_id", - "key": "sort_method", - "type": "string", - "defaultValue": "alphabetical" - } - ] - } - ], - "rollouts": [ - { - "id": "test_rollout_id", - "experiments": [ - { - "forcedVariations": {}, - "id": "test_experiment_id", - "key": "test_experiment_key", - "status": "Running", - "trafficAllocation": [ - { - "entityId": "test_variation_id", - "endOfRange": 10000 - } - ], - "variations": [ - { - "id": "test_variation_id", - "key": "test_variation_key", - "variables": [ - { - "id": "test_variable_id", - "value": "alphabetical" - } - ], - "featureEnabled": true - } - ], - "layerId": "test_layer_id", - "audienceIds": [] - } - ] - } - ], - "experiments": [ - { - "forcedVariations": {}, - "id": "test_experiment_id", - "key": "test_experiment_key", - "status": "Running", - "trafficAllocation": [ - { - "entityId": "test_variation_id_1", - "endOfRange": 5000 - }, - { - "entityId": "test_variation_id_2", - "endOfRange": 10000 - } - ], - "variations": [ - { - "id": "test_variation_id_1", - "key": "variation_1", - "variables": [ - { - "id": "test_variable_id", - "value": "popular_first" - } - ], - "featureEnabled": true - }, - { - "id": "test_variation_id_2", - "key": "variation_2", - "variables": [ - { - "id": "test_variable_id", - "value": "popular_first" - } - ], - "featureEnabled": true - } - ], - "layerId": "test_layer_id", - "audienceIds": [] - } - ], - "groups": [] - } -} diff --git a/test/__mocks__/data/pardot/proxy_response.json b/test/__mocks__/data/pardot/proxy_response.json deleted file mode 100644 index 53cf0d1255..0000000000 --- a/test/__mocks__/data/pardot/proxy_response.json +++ /dev/null @@ -1,352 +0,0 @@ -{ - "https://pi.pardot.com/api/prospect/version/4/do/upsert/id/123435": { - "data": { - "@attributes": { - "stat": "ok", - "version": 1 - }, - "prospect": { - "id": 123435, - "campaign_id": 42213, - "salutation": null, - "first_name": "Roger12", - "last_name": "Federer12", - "email": "Roger12@waltair.io", - "password": null, - "company": null, - "website": "https://rudderstack.com", - "job_title": null, - "department": null, - "country": "AU", - "address_one": null, - "address_two": null, - "city": null, - "state": null, - "territory": null, - "zip": null, - "phone": null, - "fax": null, - "source": null, - "annual_revenue": null, - "employees": null, - "industry": null, - "years_in_business": null, - "comments": null, - "notes": null, - "score": 14, - "grade": null, - "last_activity_at": null, - "recent_interaction": "Never active.", - "crm_lead_fid": null, - "crm_contact_fid": null, - "crm_owner_fid": "00G2v000004WYXaEAO", - "crm_account_fid": null, - "salesforce_fid": null, - "crm_last_sync": null, - "crm_url": null, - "is_do_not_email": null, - "is_do_not_call": null, - "opted_out": null, - "is_reviewed": 1, - "is_starred": null, - "created_at": "2022-01-21 18:21:46", - "updated_at": "2022-01-21 18:48:41", - "campaign": { - "id": 42113, - "name": "Test", - "crm_fid": "7012y000000MNOCLL4" - }, - "assigned_to": { - "user": { - "id": 38443703, - "email": "test_rudderstack@testcompany.com", - "first_name": "Rudderstack", - "last_name": "User", - "job_title": null, - "role": "Administrator", - "account": 489853, - "created_at": "2021-02-26 06:25:17", - "updated_at": "2021-02-26 06:25:17" - } - }, - "Are_you_shipping_large_fragile_or_bulky_items": false, - "Calendly": false, - "Country_Code": "AU", - "Currency": "AUD", - "Inventory_or_Warehouse_Management_System": false, - "Lead_Status": "New", - "Marketing_Stage": "SAL", - "Record_Type_ID": "TestCompany Lead", - "profile": { - "id": 304, - "name": "Default", - "profile_criteria": [ - { - "id": 1500, - "name": "Shipping Volume", - "matches": "Unknown" - }, - { - "id": 1502, - "name": "Industry", - "matches": "Unknown" - }, - { - "id": 1506, - "name": "Job Title", - "matches": "Unknown" - }, - { - "id": 1508, - "name": "Department", - "matches": "Unknown" - } - ] - }, - "visitors": null, - "visitor_activities": null, - "lists": null - } - }, - "status": 200, - "statusText": "OK" - }, - "https://pi.pardot.com/api/prospect/version/4/do/upsert/email/Roger_12@waltair.io": { - "data": { - "@attributes": { - "stat": "ok", - "version": 1 - }, - "prospect": { - "id": 123435, - "campaign_id": 42213, - "salutation": null, - "first_name": "Roger_12", - "last_name": "Federer_12", - "email": "Roger_12@waltair.io", - "password": null, - "company": null, - "website": "https://rudderstack.com", - "job_title": null, - "department": null, - "country": "AU", - "address_one": null, - "address_two": null, - "city": null, - "state": null, - "territory": null, - "zip": null, - "phone": null, - "fax": null, - "source": null, - "annual_revenue": null, - "employees": null, - "industry": null, - "years_in_business": null, - "comments": null, - "notes": null, - "score": 14, - "grade": null, - "last_activity_at": null, - "recent_interaction": "Never active.", - "crm_lead_fid": null, - "crm_contact_fid": null, - "crm_owner_fid": "00G2v000004WYXaEAO", - "crm_account_fid": null, - "salesforce_fid": null, - "crm_last_sync": null, - "crm_url": null, - "is_do_not_email": null, - "is_do_not_call": null, - "opted_out": null, - "is_reviewed": 1, - "is_starred": null, - "created_at": "2022-01-21 18:21:46", - "updated_at": "2022-01-21 18:48:41", - "campaign": { - "id": 42113, - "name": "Test", - "crm_fid": "7012y000000MNOCLL4" - }, - "assigned_to": { - "user": { - "id": 38443703, - "email": "test_rudderstack@testcompany.com", - "first_name": "Rudderstack", - "last_name": "User", - "job_title": null, - "role": "Administrator", - "account": 489853, - "created_at": "2021-02-26 06:25:17", - "updated_at": "2021-02-26 06:25:17" - } - }, - "Are_you_shipping_large_fragile_or_bulky_items": false, - "Calendly": false, - "Country_Code": "AU", - "Currency": "AUD", - "Inventory_or_Warehouse_Management_System": false, - "Lead_Status": "New", - "Marketing_Stage": "SAL", - "Record_Type_ID": "TestCompany Lead", - "profile": { - "id": 304, - "name": "Default", - "profile_criteria": [ - { - "id": 1500, - "name": "Shipping Volume", - "matches": "Unknown" - }, - { - "id": 1502, - "name": "Industry", - "matches": "Unknown" - }, - { - "id": 1506, - "name": "Job Title", - "matches": "Unknown" - }, - { - "id": 1508, - "name": "Department", - "matches": "Unknown" - } - ] - }, - "visitors": null, - "visitor_activities": null, - "lists": null - } - }, - "status": 201, - "statusText": "Created" - }, - "https://pi.pardot.com/api/prospect/version/4/do/upsert/fid/00Q6r000002LKhTPVR": { - "data": { - "@attributes": { - "stat": "ok", - "version": 1 - }, - "prospect": { - "id": 123435, - "campaign_id": 42213, - "salutation": null, - "first_name": "Roger_12", - "last_name": "Federer_12", - "email": "Roger_12@federer.io", - "password": null, - "company": null, - "website": "https://rudderstack.com", - "job_title": null, - "department": null, - "country": "AU", - "address_one": null, - "address_two": null, - "city": null, - "state": null, - "territory": null, - "zip": null, - "phone": null, - "fax": null, - "source": null, - "annual_revenue": null, - "employees": null, - "industry": null, - "years_in_business": null, - "comments": null, - "notes": null, - "score": 14, - "grade": null, - "last_activity_at": null, - "recent_interaction": "Never active.", - "crm_lead_fid": "00Q6r000002LKhTPVR", - "crm_contact_fid": null, - "crm_owner_fid": "00G2v000004WYXaEAO", - "crm_account_fid": null, - "salesforce_fid": "00Q6r000002LKhTPVR", - "crm_last_sync": "2022-01-21 18:47:37", - "crm_url": "https://testcompany.my.salesforce.com/00Q6r000002LKhTPVR", - "is_do_not_email": null, - "is_do_not_call": null, - "opted_out": null, - "is_reviewed": 1, - "is_starred": null, - "created_at": "2022-01-21 18:21:46", - "updated_at": "2022-01-21 18:48:41", - "campaign": { - "id": 42113, - "name": "Test", - "crm_fid": "7012y000000MNOCLL4" - }, - "assigned_to": { - "user": { - "id": 38443703, - "email": "test_rudderstack@testcompany.com", - "first_name": "Rudderstack", - "last_name": "User", - "job_title": null, - "role": "Administrator", - "account": 489853, - "created_at": "2021-02-26 06:25:17", - "updated_at": "2021-02-26 06:25:17" - } - }, - "Are_you_shipping_large_fragile_or_bulky_items": false, - "Calendly": false, - "Country_Code": "AU", - "Currency": "AUD", - "Inventory_or_Warehouse_Management_System": false, - "Lead_Status": "New", - "Marketing_Stage": "SAL", - "Record_Type_ID": "TestCompany Lead", - "profile": { - "id": 304, - "name": "Default", - "profile_criteria": [ - { - "id": 1500, - "name": "Shipping Volume", - "matches": "Unknown" - }, - { - "id": 1502, - "name": "Industry", - "matches": "Unknown" - }, - { - "id": 1506, - "name": "Job Title", - "matches": "Unknown" - }, - { - "id": 1508, - "name": "Department", - "matches": "Unknown" - } - ] - }, - "visitors": null, - "visitor_activities": null, - "lists": null - } - }, - "status": 200, - "statusText": "OK" - }, - "https://pi.pardot.com/api/prospect/version/4/do/upsert/email/rolex_waltair@mywebsite.io": { - "response": { - "data": { - "@attributes": { - "stat": "fail", - "version": 1, - "err_code": 184 - }, - "err": "access_token is invalid, unknown, or malformed: Inactive token" - } - }, - "status": 401, - "statusText": "Unauthorized" - } -} diff --git a/test/__mocks__/optimizely_fullstack.mock.js b/test/__mocks__/optimizely_fullstack.mock.js deleted file mode 100644 index f2eb3deb8c..0000000000 --- a/test/__mocks__/optimizely_fullstack.mock.js +++ /dev/null @@ -1,19 +0,0 @@ -const optimizelyFullStackGetRequestHandler = (url, mockData) => { - if (url === 'https://cdn.optimizely.com/datafiles/abc.json') { - return { data: mockData, status: 200 }; - } - - return Promise.reject({ - response: { - data: { - code: 'document_not_found', - message: 'document_not_found', - }, - status: 404, - }, - }); -}; - -module.exports = { - optimizelyFullStackGetRequestHandler, -}; diff --git a/test/__tests__/data/clevertap_input.json b/test/__tests__/data/clevertap_input.json index e8aaa4b528..e0bb1241e2 100644 --- a/test/__tests__/data/clevertap_input.json +++ b/test/__tests__/data/clevertap_input.json @@ -2,7 +2,56 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", + "accountId": "476550467", + "trackAnonymous": true, + "enableObjectIdMapping": false + } + }, + "message": { + "channel": "web", + "messageId": "84e26acc-56a5-4835-8233-591137fca468", + "session_id": "3049dc4c-5a95-4ccd-a3e7-d74a7e411f22", + "originalTimestamp": "2019-10-14T09:03:17.562Z", + "anonymousId": "anon_id", + "type": "identify", + "traits": { + "anonymousId": "anon_id", + "email": "jamesDoe@gmail.com", + "name": "James Doe", + "phone": "92374162212", + "gender": "M", + "employed": true, + "birthday": "1614775793", + "education": "Science", + "graduate": true, + "married": true, + "customerType": "Prime", + "msg_push": true, + "msgSms": true, + "msgemail": true, + "msgwhatsapp": false, + "custom_tags": ["Test_User", "Interested_User", "DIY_Hobby"], + "custom_mappings": { + "Office": "Trastkiv", + "Country": "Russia" + }, + "address": { + "city": "kolkata", + "country": "India", + "postalCode": 789223, + "state": "WB", + "street": "" + } + }, + "integrations": { "All": true }, + "sentAt": "2019-10-14T09:03:22.563Z" + } + }, + { + "destination": { + "Config": { + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -65,7 +114,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -91,7 +140,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -116,7 +165,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -139,7 +188,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -161,7 +210,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -184,7 +233,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -279,7 +328,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": false, "enableObjectIdMapping": false @@ -302,7 +351,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -365,7 +414,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -428,7 +477,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": true @@ -499,7 +548,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": true @@ -566,7 +615,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": true @@ -587,7 +636,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": true @@ -608,7 +657,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -682,7 +731,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": true @@ -750,7 +799,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": true @@ -772,7 +821,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -850,7 +899,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -930,7 +979,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": false @@ -1015,7 +1064,7 @@ { "destination": { "Config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "passcode": "sample_passcode", "accountId": "476550467", "trackAnonymous": true, "enableObjectIdMapping": true diff --git a/test/__tests__/data/clevertap_output.json b/test/__tests__/data/clevertap_output.json index fc6a4ee2c3..947cc2da21 100644 --- a/test/__tests__/data/clevertap_output.json +++ b/test/__tests__/data/clevertap_output.json @@ -6,7 +6,52 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", + "Content-Type": "application/json" + }, + "params": {}, + "body": { + "JSON": { + "d": [ + { + "type": "profile", + "profileData": { + "Email": "jamesDoe@gmail.com", + "Name": "James Doe", + "Phone": "92374162212", + "Gender": "M", + "Employed": true, + "DOB": "1614775793", + "Education": "Science", + "Married": true, + "Customer Type": "Prime", + "graduate": true, + "msg_push": true, + "msgSms": true, + "msgemail": true, + "msgwhatsapp": false, + "custom_tags": "[\"Test_User\",\"Interested_User\",\"DIY_Hobby\"]", + "custom_mappings": "{\"Office\":\"Trastkiv\",\"Country\":\"Russia\"}", + "address": "{\"city\":\"kolkata\",\"country\":\"India\",\"postalCode\":789223,\"state\":\"WB\",\"street\":\"\"}" + }, + "identity": "anon_id" + } + ] + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.clevertap.com/1/upload", + "headers": { + "X-CleverTap-Account-Id": "476550467", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -69,7 +114,7 @@ "params": {}, "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "version": "1", @@ -99,7 +144,7 @@ "params": {}, "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "version": "1", @@ -130,7 +175,7 @@ "params": {}, "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "version": "1", @@ -149,7 +194,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -212,7 +257,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -257,7 +302,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -302,7 +347,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -334,7 +379,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -365,7 +410,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -414,7 +459,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "X-CleverTap-Account-Id": "476550467" }, "version": "1", @@ -445,7 +490,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "X-CleverTap-Account-Id": "476550467" }, "version": "1", @@ -458,7 +503,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -505,7 +550,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -537,7 +582,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -585,7 +630,7 @@ "params": {}, "headers": { "Content-Type": "application/json", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "X-CleverTap-Account-Id": "476550467" }, "version": "1", @@ -598,7 +643,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, @@ -645,7 +690,7 @@ "endpoint": "https://api.clevertap.com/1/upload", "headers": { "X-CleverTap-Account-Id": "476550467", - "X-CleverTap-Passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", + "X-CleverTap-Passcode": "sample_passcode", "Content-Type": "application/json" }, "params": {}, diff --git a/test/__tests__/data/customerio_input.json b/test/__tests__/data/customerio_input.json index ea89411524..e2d987fc5a 100644 --- a/test/__tests__/data/customerio_input.json +++ b/test/__tests__/data/customerio_input.json @@ -2584,21 +2584,11 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU" - ], - "web": [ - "useNativeSDK" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU"], + "web": ["useNativeSDK"] }, "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU" - ], + "includeKeys": ["apiKey", "siteID", "datacenterEU"], "saveDestinationResponse": true, "secretKeys": [], "supportedSourceTypes": [ @@ -2674,21 +2664,11 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU" - ], - "web": [ - "useNativeSDK" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU"], + "web": ["useNativeSDK"] }, "excludeKeys": [], - "includeKeys": [ - "apiKey", - "siteID", - "datacenterEU" - ], + "includeKeys": ["apiKey", "siteID", "datacenterEU"], "saveDestinationResponse": true, "secretKeys": [], "supportedSourceTypes": [ @@ -2804,17 +2784,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -2826,12 +2797,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -2945,17 +2911,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -2967,12 +2924,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -3085,17 +3037,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -3107,12 +3050,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -3225,17 +3163,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -3247,12 +3176,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -3362,17 +3286,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -3384,12 +3299,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -3503,17 +3413,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -3525,12 +3426,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -3644,17 +3540,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -3666,12 +3553,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -3785,17 +3667,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -3807,12 +3680,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -3925,17 +3793,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -3947,12 +3806,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -4062,17 +3916,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -4084,12 +3929,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -4203,17 +4043,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -4225,12 +4056,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -4308,17 +4134,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -4330,12 +4147,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -4413,17 +4225,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -4435,12 +4238,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -4521,17 +4319,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -4543,12 +4332,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -4629,17 +4413,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -4651,12 +4426,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -4738,17 +4508,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -4760,12 +4521,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -4847,17 +4603,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -4869,12 +4616,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -4956,17 +4698,8 @@ "DisplayName": "Customer IO", "Config": { "destConfig": { - "defaultConfig": [ - "apiKey", - "siteID", - "datacenterEU", - "deviceTokenEventName" - ], - "web": [ - "useNativeSDK", - "blackListedEvents", - "whiteListedEvents" - ] + "defaultConfig": ["apiKey", "siteID", "datacenterEU", "deviceTokenEventName"], + "web": ["useNativeSDK", "blackListedEvents", "whiteListedEvents"] }, "excludeKeys": [], "includeKeys": [ @@ -4978,12 +4711,7 @@ ], "saveDestinationResponse": true, "secretKeys": [], - "supportedMessageTypes": [ - "identify", - "page", - "screen", - "track" - ], + "supportedMessageTypes": ["identify", "page", "screen", "track"], "supportedSourceTypes": [ "android", "ios", @@ -5167,4 +4895,4 @@ } } } -] \ No newline at end of file +] diff --git a/test/__tests__/data/fb_output.json b/test/__tests__/data/fb_output.json index a974fffe7e..2923e1720e 100644 --- a/test/__tests__/data/fb_output.json +++ b/test/__tests__/data/fb_output.json @@ -3,10 +3,10 @@ "message": "If properties.revenue is present, properties.currency is required." }, { - "message": "{\"product_id\":123} is not of valid type" + "message": "Value of properties.products.sub.product_id is not of valid type. It should be of type string" }, { - "message": "properties.revenue is not of valid type" + "message": "Value of properties.revenue is not of valid type. It should be of type number" }, { "body": { @@ -307,4 +307,4 @@ "userId": "c82cbdff-e5be-4009-ac78-cdeea09ab4b1", "statusCode": 200 } -] \ No newline at end of file +] diff --git a/test/__tests__/data/fb_router_output.json b/test/__tests__/data/fb_router_output.json index 508d83cc60..5dd568cca5 100644 --- a/test/__tests__/data/fb_router_output.json +++ b/test/__tests__/data/fb_router_output.json @@ -35,6 +35,6 @@ }, "batched": false, "statusCode": 400, - "error": "{\"product_id\":123} is not of valid type" + "error": "Value of properties.products.sub.product_id is not of valid type. It should be of type string" } ] diff --git a/test/__tests__/data/google_adwords_enhanced_conversions_proxy_input.json b/test/__tests__/data/google_adwords_enhanced_conversions_proxy_input.json index 612efeb99a..430cfbd05f 100644 --- a/test/__tests__/data/google_adwords_enhanced_conversions_proxy_input.json +++ b/test/__tests__/data/google_adwords_enhanced_conversions_proxy_input.json @@ -158,4 +158,4 @@ }, "files": {} } -] \ No newline at end of file +] diff --git a/test/__tests__/data/google_adwords_offline_conversions.json b/test/__tests__/data/google_adwords_offline_conversions.json index 9bdb5cda45..3c7b54ac4c 100644 --- a/test/__tests__/data/google_adwords_offline_conversions.json +++ b/test/__tests__/data/google_adwords_offline_conversions.json @@ -4600,4 +4600,4 @@ } ] } -] \ No newline at end of file +] diff --git a/test/__tests__/data/google_adwords_remarketing_lists_proxy_input.json b/test/__tests__/data/google_adwords_remarketing_lists_proxy_input.json index 3cd282ec2a..ff74720bc3 100644 --- a/test/__tests__/data/google_adwords_remarketing_lists_proxy_input.json +++ b/test/__tests__/data/google_adwords_remarketing_lists_proxy_input.json @@ -135,4 +135,4 @@ }, "files": {} } -] \ No newline at end of file +] diff --git a/test/__tests__/data/hs_input.json b/test/__tests__/data/hs_input.json index 9889503dee..0dab49824f 100644 --- a/test/__tests__/data/hs_input.json +++ b/test/__tests__/data/hs_input.json @@ -3139,5 +3139,47 @@ }, "Enabled": true } + }, + { + "description": "[HS] (New API v3) - (newPrivateAppApi) sample track call when hubspotEvents is undefined", + "message": { + "type": "track", + "traits": {}, + "context": { + "externalId": [ + { + "id": "osvaldocostaferreira98@gmail.com", + "type": "HS-contacts", + "identifierType": "email" + } + ] + }, + "event": "Purchase", + "properties": { + "Revenue": "name1" + } + }, + "destination": { + "Config": { + "authorizationType": "newPrivateAppApi", + "hubID": "", + "apiKey": "", + "accessToken": "dummy-access-token", + "apiVersion": "newApi", + "lookupField": "lookupField", + "eventFilteringOption": "disable", + "blacklistedEvents": [ + { + "eventName": "" + } + ], + "whitelistedEvents": [ + { + "eventName": "" + } + ] + }, + "Enabled": true + } } ] diff --git a/test/__tests__/data/hs_output.json b/test/__tests__/data/hs_output.json index 6167ea69f3..72fe50ba0d 100644 --- a/test/__tests__/data/hs_output.json +++ b/test/__tests__/data/hs_output.json @@ -826,5 +826,18 @@ "type": "REST", "version": "1" } - ] + ], + + { + "statusCode": 400, + "error": "Event and property mappings are required for track call", + "statTags": { + "errorCategory": "dataValidation", + "errorType": "instrumentation", + "destType": "HS", + "module": "destination", + "implementation": "native", + "feature": "processor" + } + } ] diff --git a/test/__tests__/data/marketo_static_list_proxy_output.json b/test/__tests__/data/marketo_static_list_proxy_output.json index 8ac482b5be..ec52d0c37c 100644 --- a/test/__tests__/data/marketo_static_list_proxy_output.json +++ b/test/__tests__/data/marketo_static_list_proxy_output.json @@ -126,4 +126,4 @@ } } } -] \ No newline at end of file +] diff --git a/test/__tests__/data/mp_router_output.json b/test/__tests__/data/mp_router_output.json index acd6912c01..d1af209e8b 100644 --- a/test/__tests__/data/mp_router_output.json +++ b/test/__tests__/data/mp_router_output.json @@ -1,4 +1,55 @@ [ + { + "batchedRequest": { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.mixpanel.com/import/", + "headers": { + "Content-Type": "application/json", + "Authorization": "Basic dGVzdF9hcGlfc2VjcmV0Og==" + }, + "params": { + "strict": 1 + }, + "body": { + "JSON": {}, + "JSON_ARRAY": { + "batch": "[{\"event\":\"Loaded a Page\",\"properties\":{\"ip\":\"0.0.0.0\",\"$user_id\":\"hjikl\",\"$current_url\":\"https://docs.rudderstack.com/destinations/mixpanel\",\"$screen_dpi\":2,\"mp_lib\":\"RudderLabs JavaScript SDK\",\"$app_build_number\":\"1.0.0\",\"$app_version_string\":\"1.0.5\",\"$insert_id\":\"dd266c67-9199-4a52-ba32-f46ddde67312\",\"token\":\"test_api_token\",\"distinct_id\":\"hjikl\",\"time\":1688624942,\"name\":\"Contact Us\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"}}]" + }, + "XML": {}, + "FORM": {} + }, + "files": {} + }, + "metadata": [ + { + "jobId": 1, + "additionalProp": 1 + } + ], + "batched": true, + "statusCode": 200, + "destination": { + "Config": { + "apiSecret": "test_api_secret", + "token": "test_api_token", + "prefixProperties": true, + "useNativeSDK": false, + "useOldMapping": true, + "strictMode": true + }, + "DestinationDefinition": { + "DisplayName": "Mixpanel", + "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", + "Name": "MP" + }, + "Enabled": true, + "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", + "Name": "Mixpanel", + "Transformations": [] + } + }, { "batchedRequest": [ { @@ -11,7 +62,7 @@ "body": { "JSON": {}, "JSON_ARRAY": { - "batch": "[{\"$append\":{\"$transactions\":{\"$time\":\"2023-07-06T06:29:02.402Z\",\"$amount\":18.9}},\"$token\":\"test_api_token\",\"$distinct_id\":\"userId01\"},{\"$set\":{\"$email\":\"mickey@disney.com\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$firstName\":\"Mickey\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"test_api_token\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"$ip\":\"0.0.0.0\",\"$time\":1688624942},{\"$set\":{\"$created\":\"2020-01-23T08:54:02.362Z\",\"$email\":\"mickey@disney.com\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$name\":\"Mickey Mouse\",\"$firstName\":\"Mickey\",\"$lastName\":\"Mouse\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"test_api_token\",\"$distinct_id\":\"$device:anonId01\",\"$ip\":\"0.0.0.0\",\"$time\":1688624942}]" + "batch": "[{\"$append\":{\"$transactions\":{\"$time\":\"2023-07-06T06:29:02.402Z\",\"$amount\":18.9}},\"$token\":\"test_api_token\",\"$distinct_id\":\"userId01\"}]" }, "XML": {}, "FORM": {} @@ -33,7 +84,7 @@ "body": { "JSON": {}, "JSON_ARRAY": { - "batch": "[{\"event\":\"Loaded a Page\",\"properties\":{\"ip\":\"0.0.0.0\",\"$user_id\":\"hjikl\",\"$current_url\":\"https://docs.rudderstack.com/destinations/mixpanel\",\"$screen_dpi\":2,\"mp_lib\":\"RudderLabs JavaScript SDK\",\"$app_build_number\":\"1.0.0\",\"$app_version_string\":\"1.0.5\",\"$insert_id\":\"dd266c67-9199-4a52-ba32-f46ddde67312\",\"token\":\"test_api_token\",\"distinct_id\":\"hjikl\",\"time\":1688624942,\"name\":\"Contact Us\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"}},{\"event\":\"Product Viewed\",\"properties\":{\"name\":\"T-Shirt\",\"revenue\":18.9,\"$user_id\":\"userId01\",\"$os\":\"iOS\",\"$screen_height\":1794,\"$screen_width\":1080,\"$screen_dpi\":420,\"$carrier\":\"Android\",\"$os_version\":\"8.1.0\",\"$device\":\"generic_x86\",\"$manufacturer\":\"Google\",\"$model\":\"Android SDK built for x86\",\"mp_device_model\":\"Android SDK built for x86\",\"$wifi\":true,\"$bluetooth_enabled\":false,\"mp_lib\":\"com.rudderstack.android.sdk.core\",\"$app_build_number\":\"1\",\"$app_version_string\":\"1.0\",\"$insert_id\":\"id2\",\"token\":\"test_api_token\",\"distinct_id\":\"userId01\",\"time\":1688624942,\"$device_id\":\"anonId01\"}}]" + "batch": "[{\"event\":\"Product Viewed\",\"properties\":{\"name\":\"T-Shirt\",\"revenue\":18.9,\"$user_id\":\"userId01\",\"$os\":\"iOS\",\"$screen_height\":1794,\"$screen_width\":1080,\"$screen_dpi\":420,\"$carrier\":\"Android\",\"$os_version\":\"8.1.0\",\"$device\":\"generic_x86\",\"$manufacturer\":\"Google\",\"$model\":\"Android SDK built for x86\",\"mp_device_model\":\"Android SDK built for x86\",\"$wifi\":true,\"$bluetooth_enabled\":false,\"mp_lib\":\"com.rudderstack.android.sdk.core\",\"$app_build_number\":\"1\",\"$app_version_string\":\"1.0\",\"$insert_id\":\"id2\",\"token\":\"test_api_token\",\"distinct_id\":\"userId01\",\"time\":1688624942,\"$device_id\":\"anonId01\"}}]" }, "XML": {}, "FORM": {} @@ -45,18 +96,6 @@ { "jobId": 2, "additionalProp": 2 - }, - { - "jobId": 3, - "additionalProp": 3 - }, - { - "jobId": 4, - "additionalProp": 4 - }, - { - "jobId": 1, - "additionalProp": 1 } ], "batched": true, @@ -92,7 +131,7 @@ "body": { "JSON": {}, "JSON_ARRAY": { - "batch": "[{\"$set\":{\"$carrier\":\"Android\",\"$manufacturer\":\"Google\",\"$model\":\"Android SDK built for x86\",\"$screen_height\":1794,\"$screen_width\":1080,\"$wifi\":true,\"anonymousId\":\"5094f5704b9cf2b3\",\"userId\":\"test_user_id\",\"$ios_devices\":[\"test_device_token\"],\"$os\":\"iOS\",\"$ios_device_model\":\"Android SDK built for x86\",\"$ios_version\":\"8.1.0\",\"$ios_app_release\":\"1\",\"$ios_app_version\":\"1.0\"},\"$token\":\"test_api_token\",\"$distinct_id\":\"test_user_id\",\"$time\":null},{\"$token\":\"test_api_token\",\"$distinct_id\":\"userId06\",\"$set\":{\"company\":[\"testComp\"]},\"$ip\":\"0.0.0.0\"}]" + "batch": "[{\"$set\":{\"$email\":\"mickey@disney.com\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$firstName\":\"Mickey\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"test_api_token\",\"$distinct_id\":\"e6ab2c5e-2cda-44a9-a962-e2f67df78bca\",\"$ip\":\"0.0.0.0\",\"$time\":1688624942},{\"$set\":{\"$created\":\"2020-01-23T08:54:02.362Z\",\"$email\":\"mickey@disney.com\",\"$country_code\":\"USA\",\"$city\":\"Disney\",\"$initial_referrer\":\"https://docs.rudderstack.com\",\"$initial_referring_domain\":\"docs.rudderstack.com\",\"$name\":\"Mickey Mouse\",\"$firstName\":\"Mickey\",\"$lastName\":\"Mouse\",\"$browser\":\"Chrome\",\"$browser_version\":\"79.0.3945.117\"},\"$token\":\"test_api_token\",\"$distinct_id\":\"$device:anonId01\",\"$ip\":\"0.0.0.0\",\"$time\":1688624942},{\"$set\":{\"$carrier\":\"Android\",\"$manufacturer\":\"Google\",\"$model\":\"Android SDK built for x86\",\"$screen_height\":1794,\"$screen_width\":1080,\"$wifi\":true,\"anonymousId\":\"5094f5704b9cf2b3\",\"userId\":\"test_user_id\",\"$ios_devices\":[\"test_device_token\"],\"$os\":\"iOS\",\"$ios_device_model\":\"Android SDK built for x86\",\"$ios_version\":\"8.1.0\",\"$ios_app_release\":\"1\",\"$ios_app_version\":\"1.0\"},\"$token\":\"test_api_token\",\"$distinct_id\":\"test_user_id\",\"$time\":null}]" }, "XML": {}, "FORM": {} @@ -103,13 +142,74 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.mixpanel.com/groups/", + "endpoint": "https://api.mixpanel.com/import/", + "headers": { + "Content-Type": "application/json", + "Authorization": "Basic dGVzdF9hcGlfc2VjcmV0Og==" + }, + "params": { + "strict": 1 + }, + "body": { + "JSON": {}, + "JSON_ARRAY": { + "batch": "[{\"event\":\"$merge\",\"properties\":{\"$distinct_ids\":[\"test_user_id\",\"5094f5704b9cf2b3\"],\"token\":\"test_api_token\"}}]" + }, + "XML": {}, + "FORM": {} + }, + "files": {} + } + ], + "metadata": [ + { + "jobId": 3, + "additionalProp": 3 + }, + { + "jobId": 4, + "additionalProp": 4 + }, + { + "jobId": 5, + "additionalProp": 5 + } + ], + "batched": true, + "statusCode": 200, + "destination": { + "Config": { + "apiSecret": "test_api_secret", + "token": "test_api_token", + "prefixProperties": true, + "useNativeSDK": false, + "useOldMapping": true, + "strictMode": true + }, + "DestinationDefinition": { + "DisplayName": "Mixpanel", + "ID": "1WhbSZ6uA3H5ChVifHpfL2H6sie", + "Name": "MP" + }, + "Enabled": true, + "ID": "1WhcOCGgj9asZu850HvugU2C3Aq", + "Name": "Mixpanel", + "Transformations": [] + } + }, + { + "batchedRequest": [ + { + "version": "1", + "type": "REST", + "method": "POST", + "endpoint": "https://api.mixpanel.com/engage/", "headers": {}, "params": {}, "body": { "JSON": {}, "JSON_ARRAY": { - "batch": "[{\"$token\":\"test_api_token\",\"$group_key\":\"company\",\"$group_id\":\"testComp\",\"$set\":{\"company\":\"testComp\"}}]" + "batch": "[{\"$token\":\"test_api_token\",\"$distinct_id\":\"userId06\",\"$set\":{\"company\":[\"testComp\"]},\"$ip\":\"0.0.0.0\"}]" }, "XML": {}, "FORM": {} @@ -120,18 +220,13 @@ "version": "1", "type": "REST", "method": "POST", - "endpoint": "https://api.mixpanel.com/import/", - "headers": { - "Content-Type": "application/json", - "Authorization": "Basic dGVzdF9hcGlfc2VjcmV0Og==" - }, - "params": { - "strict": 1 - }, + "endpoint": "https://api.mixpanel.com/groups/", + "headers": {}, + "params": {}, "body": { "JSON": {}, "JSON_ARRAY": { - "batch": "[{\"event\":\"$merge\",\"properties\":{\"$distinct_ids\":[\"test_user_id\",\"5094f5704b9cf2b3\"],\"token\":\"test_api_token\"}}]" + "batch": "[{\"$token\":\"test_api_token\",\"$group_key\":\"company\",\"$group_id\":\"testComp\",\"$set\":{\"company\":\"testComp\"}}]" }, "XML": {}, "FORM": {} @@ -140,10 +235,6 @@ } ], "metadata": [ - { - "jobId": 5, - "additionalProp": 5 - }, { "jobId": 6, "additionalProp": 6 @@ -155,8 +246,11 @@ "Config": { "apiSecret": "test_api_secret", "token": "test_api_token", - "prefixProperties": true, - "useNativeSDK": false, + "groupKeySettings": [ + { + "groupKey": "company" + } + ], "strictMode": true }, "DestinationDefinition": { diff --git a/test/__tests__/data/optimizely_fullstack.json b/test/__tests__/data/optimizely_fullstack.json deleted file mode 100644 index 1331d38033..0000000000 --- a/test/__tests__/data/optimizely_fullstack.json +++ /dev/null @@ -1,1641 +0,0 @@ -[ - { - "description": "Missing Data File URL", - "input": { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true - } - }, - "destination": { - "Config": { - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id" - } - } - }, - "output": { - "error": "Data File Url is not present. Aborting" - } - }, - { - "description": "Identify call: Missing Variation ID in integration object", - "input": { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id" - } - } - }, - "output": { - "error": "Variation ID is not present in the integrations object" - } - }, - { - "description": "Missing Account ID", - "input": { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id" - } - } - }, - "output": { - "error": "Account ID is not present. Aborting" - } - }, - { - "description": "Missing Campaign ID", - "input": { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "experimentId": "test_experiment_id" - } - } - }, - "output": { - "error": "Campaign ID is not present. Aborting" - } - }, - { - "description": "Missing Experiment ID", - "input": { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id" - } - } - }, - "output": { - "error": "Experiment ID is not present. Aborting" - } - }, - { - "description": "Page: Track Categorized Page and Track Named Pages toggle are disabled", - "input": { - "message": { - "type": "page", - "channel": "web", - "name": "Home", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "123" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id", - "trackCategorizedPages": false, - "trackNamedPages": false - } - } - }, - "output": { - "error": "Both 'Track Categorized Pages' and 'Track Named Pages' toggles are disabled in webapp. Please enable at one of them to send page/screen events to Optimizely." - } - }, - { - "description": "Invalid Configuration (Track known users toggle is on and userId is missing in request)", - "input": { - "message": { - "type": "track", - "channel": "web", - "event": "Product Added", - "properties": { - "price": 999, - "quantity": 1 - }, - "context": { - "traits": { - "firstName": "John", - "age": 27 - } - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "optimizely_fullstack": { - "variationId": "123" - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id", - "trackCategorizedPages": false, - "trackNamedPages": false, - "trackKnownUsers": true - } - } - }, - "output": { - "error": "UserId is required for event tracking when the 'Track Known Users' setting is enabled. Please include a 'userId' in your event payload" - } - }, - { - "description": "Invalid Configuration (Track known users toggle is off and anonymousId is missing in request)", - "input": { - "message": { - "type": "track", - "channel": "web", - "event": "Product Added", - "properties": { - "price": 999, - "quantity": 1 - }, - "context": { - "traits": { - "firstName": "John", - "age": 27 - } - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "123" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id" - } - } - }, - "output": { - "error": "AnonymousId is required when 'Track Known Users' setting is disabled" - } - }, - { - "description": "Track call without event", - "input": { - "message": { - "type": "track", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id" - } - } - }, - "output": { - "error": "Event is not present. Aborting." - } - }, - { - "description": "Invalid data file url", - "input": { - "message": { - "type": "track", - "event": "Product Added", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35" - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/wrong_cdn.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id" - } - } - }, - "output": { - "error": "Data File Lookup Failed due to {\"code\":\"document_not_found\",\"message\":\"document_not_found\"}" - } - }, - { - "description": "Invalid data file url", - "input": { - "message": { - "type": "track", - "event": "Product Added", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "123" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id", - "eventMapping": [ - { - "from": "Product Added", - "to": "product_added" - } - ] - } - } - }, - "output": { - "error": "Event 'product_added' is not present in data file. Make sure event exists in Optimizely." - } - }, - { - "description": "Identify call (Decision Event) with userId", - "input": { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe", - "country": "US" - }, - "sessionId": 1685626914716 - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "timestamp": "2023-02-10T12:16:07.251Z", - "userId": "userId123", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "attributeMapping": [ - { - "from": "organization", - "to": "company" - }, - { - "from": "fullName", - "to": "name" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": false, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "attributes": [ - { - "entity_id": "test_attribute_id_5", - "key": "company", - "type": "custom", - "value": "RudderStack" - }, - { - "entity_id": "test_attribute_id_2", - "key": "name", - "type": "custom", - "value": "John Doe" - } - ], - "snapshots": [ - { - "decisions": [ - { - "campaign_id": "test_campaign_id", - "experiment_id": "test_experiment_id", - "variation_id": "test_variation_id_1" - } - ], - "events": [ - { - "entity_id": "test_campaign_id", - "type": "campaign_activated", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff" - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Identify call (Decision Event) with anonymousId", - "input": { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe", - "country": "US" - }, - "sessionId": 1685626914716 - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "timestamp": "2023-02-10T12:16:07.251Z", - "userId": "userId123", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": false - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": false, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "97c46c81-3140-456d-b2a9-690d70aaca35", - "snapshots": [ - { - "decisions": [ - { - "campaign_id": "test_campaign_id", - "experiment_id": "test_experiment_id", - "variation_id": "test_variation_id_1" - } - ], - "events": [ - { - "entity_id": "test_campaign_id", - "type": "campaign_activated", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff" - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Identify call (Decision Event) with projectId is empty", - "input": { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe", - "country": "US" - }, - "sessionId": 1685626914716 - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "timestamp": "2023-02-10T12:16:07.251Z", - "userId": "userId123", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "projectId": "", - "attributeMapping": [ - { - "from": "organization", - "to": "company" - }, - { - "from": "fullName", - "to": "name" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": false, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "attributes": [ - { - "entity_id": "test_attribute_id_5", - "key": "company", - "type": "custom", - "value": "RudderStack" - }, - { - "entity_id": "test_attribute_id_2", - "key": "name", - "type": "custom", - "value": "John Doe" - } - ], - "snapshots": [ - { - "decisions": [ - { - "campaign_id": "test_campaign_id", - "experiment_id": "test_experiment_id", - "variation_id": "test_variation_id_1" - } - ], - "events": [ - { - "entity_id": "test_campaign_id", - "type": "campaign_activated", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff" - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track call (Conversion event) with userId", - "input": { - "message": { - "type": "track", - "event": "product_added", - "userId": "userId123", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar", - "revenue": 123, - "quantity": 2 - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_2" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "eventMapping": [ - { - "from": "Product Searched", - "to": "Searched" - }, - { - "from": "product_added", - "to": "Product Added" - } - ], - "attributeMapping": [ - { - "from": "organization", - "to": "company" - }, - { - "from": "fullName", - "to": "name" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "attributes": [ - { - "entity_id": "test_attribute_id_5", - "key": "company", - "type": "custom", - "value": "RudderStack" - }, - { - "entity_id": "test_attribute_id_2", - "key": "name", - "type": "custom", - "value": "John Doe" - } - ], - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_1", - "key": "Product Added", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "quantity": 2, - "revenue": 12300, - "tags": { - "foo": "bar" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track call (Conversion event) without event mapping configured in webapp", - "input": { - "message": { - "type": "track", - "event": "Product Added", - "channel": "web", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "timestamp": "2023-02-10T12:16:07.251Z", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "123" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id" - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": false, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "97c46c81-3140-456d-b2a9-690d70aaca35", - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_1", - "key": "Product Added", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "tags": {} - } - ] - } - ] - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track call: Missing Variation ID in integration object ", - "input": { - "message": { - "type": "track", - "event": "product_added", - "userId": "userId123", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar", - "revenue": 123, - "quantity": 2 - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "eventMapping": [ - { - "from": "Product Searched", - "to": "Searched" - }, - { - "from": "product_added", - "to": "Product Added" - } - ], - "attributeMapping": [ - { - "from": "organization", - "to": "company" - }, - { - "from": "fullName", - "to": "name" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "attributes": [ - { - "entity_id": "test_attribute_id_5", - "key": "company", - "type": "custom", - "value": "RudderStack" - }, - { - "entity_id": "test_attribute_id_2", - "key": "name", - "type": "custom", - "value": "John Doe" - } - ], - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_1", - "key": "Product Added", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "quantity": 2, - "revenue": 12300, - "tags": { - "foo": "bar" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track Categorized and Named Page", - "input": { - "message": { - "type": "page", - "name": "Meal", - "userId": "userId123", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar", - "category": "food" - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "pageMapping": [ - { - "from": "meal", - "to": "Viewed Meal Page" - }, - { - "from": "food", - "to": "Product Added" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_1", - "key": "Product Added", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "tags": { - "foo": "bar", - "category": "food" - } - }, - { - "entity_id": "test_event_id_4", - "key": "Viewed Meal page", - "timestamp": 1676031367251, - "uuid": "generated_uuid", - "tags": { - "foo": "bar", - "category": "food" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track Categorized and Named Page without event mapping configured in webapp", - "input": { - "message": { - "type": "page", - "name": "home", - "userId": "userId123", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar", - "category": "index" - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "pageMapping": [ - { - "from": "", - "to": "" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_8", - "key": "Index", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "tags": { - "foo": "bar", - "category": "index" - } - }, - { - "entity_id": "test_event_id_7", - "key": "Home", - "timestamp": 1676031367251, - "uuid": "generated_uuid", - "tags": { - "foo": "bar", - "category": "index" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track Categorized Page: trackCategorizedPages,trackNamedPages toggle are enabled and name is not provided", - "input": { - "message": { - "type": "page", - "userId": "userId123", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar", - "category": "food" - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "pageMapping": [ - { - "from": "meal", - "to": "Viewed Meal Page" - }, - { - "from": "food", - "to": "Product Added" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_1", - "key": "Product Added", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "tags": { - "foo": "bar", - "category": "food" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track Named Page: trackCategorizedPages,trackNamedPages toggle are enabled and category is not provided", - "input": { - "message": { - "type": "page", - "userId": "userId123", - "name": "Meal", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar" - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "pageMapping": [ - { - "from": "meal", - "to": "Viewed Meal Page" - }, - { - "from": "food", - "to": "Product Added" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_4", - "key": "Viewed Meal page", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "tags": { - "foo": "bar" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track Named Page: trackCategorizedPages,trackNamedPages toggle are enabled and category mapping is wrong", - "input": { - "message": { - "type": "page", - "userId": "userId123", - "name": "Meal", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar" - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "pageMapping": [ - { - "from": "meal", - "to": "Viewed Meal Page" - }, - { - "from": "food", - "to": "ABC" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_4", - "key": "Viewed Meal page", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "tags": { - "foo": "bar" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - }, - { - "description": "Track Named Page: mapping is not provided for page name in webapp", - "input": { - "message": { - "type": "page", - "userId": "userId123", - "name": "Meal", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar" - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": false, - "trackNamedPages": true, - "pageMapping": [ - { - "from": "Home", - "to": "Viewed Home Page" - }, - { - "from": "food", - "to": "Product Added" - } - ] - } - } - }, - "output": { - "error": "Events [meal] are not present in the data file. Make sure events exist in Optimizely." - } - }, - { - "description": "Track Categorized and Named Screen", - "input": { - "message": { - "type": "screen", - "name": "Home", - "userId": "userId123", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar", - "category": "food" - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": true, - "trackNamedPages": true, - "pageMapping": [ - { - "from": "home", - "to": "Viewed Main Screen" - }, - { - "from": "food", - "to": "Product Added" - } - ] - } - } - }, - "output": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_1", - "key": "Product Added", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "tags": { - "foo": "bar", - "category": "food" - } - }, - { - "entity_id": "test_event_id_6", - "key": "Viewed Main screen", - "timestamp": 1676031367251, - "uuid": "generated_uuid", - "tags": { - "foo": "bar", - "category": "food" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - } - } -] diff --git a/test/__tests__/data/optimizely_fullstack_router.json b/test/__tests__/data/optimizely_fullstack_router.json deleted file mode 100644 index 6be928afc9..0000000000 --- a/test/__tests__/data/optimizely_fullstack_router.json +++ /dev/null @@ -1,494 +0,0 @@ -[ - { - "input": [ - { - "message": { - "type": "identify", - "channel": "web", - "properties": {}, - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe", - "country": "US" - }, - "sessionId": 1685626914716 - }, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "timestamp": "2023-02-10T12:16:07.251Z", - "userId": "userId123", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "attributeMapping": [ - { - "from": "organization", - "to": "company" - }, - { - "from": "fullName", - "to": "name" - } - ] - } - }, - "metadata": { - "jobId": 1 - } - }, - { - "message": { - "type": "track", - "event": "product_added", - "userId": "userId123", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar", - "revenue": 123, - "quantity": 2 - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_2" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "eventMapping": [ - { - "from": "Product Searched", - "to": "Searched" - }, - { - "from": "product_added", - "to": "Product Added" - } - ], - "attributeMapping": [ - { - "from": "organization", - "to": "company" - }, - { - "from": "fullName", - "to": "name" - } - ] - } - }, - "metadata": { - "jobId": 2 - } - }, - { - "message": { - "type": "page", - "userId": "userId123", - "channel": "web", - "context": { - "traits": { - "organization": "RudderStack", - "fullName": "John Doe" - }, - "sessionId": 1685626914716 - }, - "rudderId": "5354b3f2-cb72-4355-a2b5-a298c3837c7d", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "timestamp": "2023-02-10T12:16:07.251Z", - "properties": { - "foo": "bar", - "category": "food" - }, - "anonymousId": "856365b8-da4b-4c13-9098-84df18559446", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "test_variation_id_1" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": true, - "trackNamedPages": false, - "pageMapping": [ - { - "from": "meal", - "to": "Viewed Meal Page" - }, - { - "from": "food", - "to": "Product Added" - } - ] - } - }, - "metadata": { - "jobId": 3 - } - }, - { - "message": { - "type": "page", - "channel": "web", - "name": "Home", - "properties": {}, - "context": {}, - "rudderId": "8f8fa6b5-8e24-489c-8e22-61f23f2e364f", - "messageId": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "anonymousId": "97c46c81-3140-456d-b2a9-690d70aaca35", - "integrations": { - "All": true, - "optimizely_fullstack": { - "variationId": "123" - } - } - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "experimentId": "test_experiment_id", - "trackCategorizedPages": false, - "trackNamedPages": false - } - }, - "metadata": { - "jobId": 4 - } - } - ], - "output": [ - { - "batched": false, - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": false, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "attributes": [ - { - "entity_id": "test_attribute_id_5", - "key": "company", - "type": "custom", - "value": "RudderStack" - }, - { - "entity_id": "test_attribute_id_2", - "key": "name", - "type": "custom", - "value": "John Doe" - } - ], - "snapshots": [ - { - "decisions": [ - { - "campaign_id": "test_campaign_id", - "experiment_id": "test_experiment_id", - "variation_id": "test_variation_id_1" - } - ], - "events": [ - { - "entity_id": "test_campaign_id", - "type": "campaign_activated", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff" - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "attributeMapping": [ - { - "from": "organization", - "to": "company" - }, - { - "from": "fullName", - "to": "name" - } - ] - } - }, - "metadata": [ - { - "jobId": 1 - } - ], - "statusCode": 200 - }, - { - "batched": false, - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "attributes": [ - { - "entity_id": "test_attribute_id_5", - "key": "company", - "type": "custom", - "value": "RudderStack" - }, - { - "entity_id": "test_attribute_id_2", - "key": "name", - "type": "custom", - "value": "John Doe" - } - ], - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_1", - "key": "Product Added", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "quantity": 2, - "revenue": 12300, - "tags": { - "foo": "bar" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "eventMapping": [ - { - "from": "Product Searched", - "to": "Searched" - }, - { - "from": "product_added", - "to": "Product Added" - } - ], - "attributeMapping": [ - { - "from": "organization", - "to": "company" - }, - { - "from": "fullName", - "to": "name" - } - ] - } - }, - "metadata": [ - { - "jobId": 2 - } - ], - "statusCode": 200 - }, - { - "batched": false, - "batchedRequest": { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://logx.optimizely.com/v1/events", - "headers": { - "Content-Type": "application/json" - }, - "params": {}, - "body": { - "JSON": { - "account_id": "test_account_id", - "anonymize_ip": true, - "enrich_decisions": true, - "client_name": "RudderStack", - "client_version": "1.0.0", - "visitors": [ - { - "visitor_id": "userId123", - "snapshots": [ - { - "decisions": [], - "events": [ - { - "entity_id": "test_event_id_1", - "key": "Product Added", - "timestamp": 1676031367251, - "uuid": "2116ef8c-efc3-4ca4-851b-02ee60dad6ff", - "tags": { - "foo": "bar", - "category": "food" - } - } - ] - } - ], - "session_id": "1685626914716" - } - ] - }, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": {} - }, - "files": {} - }, - "destination": { - "Config": { - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "accountId": "test_account_id", - "campaignId": "test_campaign_id", - "experimentId": "test_experiment_id", - "trackKnownUsers": true, - "anonymizeIp": true, - "trackCategorizedPages": true, - "trackNamedPages": false, - "pageMapping": [ - { - "from": "meal", - "to": "Viewed Meal Page" - }, - { - "from": "food", - "to": "Product Added" - } - ] - } - }, - "metadata": [ - { - "jobId": 3 - } - ], - "statusCode": 200 - }, - { - "batched": false, - "destination": { - "Config": { - "accountId": "test_account_id", - "campaignId": "test_campagin_id", - "dataFileUrl": "https://cdn.optimizely.com/datafiles/abc.json", - "experimentId": "test_experiment_id", - "trackCategorizedPages": false, - "trackNamedPages": false - } - }, - "error": "Both 'Track Categorized Pages' and 'Track Named Pages' toggles are disabled in webapp. Please enable at one of them to send page/screen events to Optimizely.", - "metadata": [ - { - "jobId": 4 - } - ], - "statTags": { - "errorCategory": "dataValidation", - "errorType": "configuration" - }, - "statusCode": 400 - } - ] - } -] diff --git a/test/__tests__/data/pardot_proxy_input.json b/test/__tests__/data/pardot_proxy_input.json deleted file mode 100644 index f5f62dea72..0000000000 --- a/test/__tests__/data/pardot_proxy_input.json +++ /dev/null @@ -1,106 +0,0 @@ -[ - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://pi.pardot.com/api/prospect/version/4/do/upsert/id/123435", - "headers": { - "Authorization": "Bearer myToken", - "Pardot-Business-Unit-Id": "0Uv2v000000k9tHCAQ" - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "first_name": "Roger12", - "last_name": "Federer12", - "website": "https://rudderstack.com", - "score": 14, - "campaign_id": 42213 - } - }, - "files": {}, - "params": { - "destination": "pardot" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://pi.pardot.com/api/prospect/version/4/do/upsert/email/Roger_12@waltair.io", - "headers": { - "Authorization": "Bearer myToken", - "Pardot-Business-Unit-Id": "0Uv2v000000k9tHCAQ" - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "first_name": "Roger_12", - "last_name": "Federer_12", - "website": "https://rudderstack.com", - "score": 14, - "campaign_id": 42213 - } - }, - "files": {}, - "params": { - "destination": "pardot" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://pi.pardot.com/api/prospect/version/4/do/upsert/fid/00Q6r000002LKhTPVR", - "headers": { - "Authorization": "Bearer myToken", - "Pardot-Business-Unit-Id": "0Uv2v000000k9tHCAQ" - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "first_name": "Nick", - "last_name": "Kyrgios", - "website": "https://rudderstack.com", - "score": 12, - "campaign_id": 42213 - } - }, - "files": {}, - "params": { - "destination": "pardot" - } - }, - { - "version": "1", - "type": "REST", - "method": "POST", - "endpoint": "https://pi.pardot.com/api/prospect/version/4/do/upsert/email/rolex_waltair@mywebsite.io", - "headers": { - "Authorization": "Bearer myExpiredToken", - "Pardot-Business-Unit-Id": "0Uv2v000000k9tHCAQ" - }, - "body": { - "JSON": {}, - "JSON_ARRAY": {}, - "XML": {}, - "FORM": { - "first_name": "Rolex", - "last_name": "Waltair", - "website": "https://rudderstack.com", - "score": 15, - "campaign_id": 42213 - } - }, - "files": {}, - "params": { - "destination": "pardot" - } - } -] \ No newline at end of file diff --git a/test/__tests__/data/pardot_proxy_output.json b/test/__tests__/data/pardot_proxy_output.json deleted file mode 100644 index 46783b3d69..0000000000 --- a/test/__tests__/data/pardot_proxy_output.json +++ /dev/null @@ -1,378 +0,0 @@ -[ - { - "output": { - "message": "Request Processed Successfully", - "status": 200, - "destinationResponse": { - "response": { - "@attributes": { - "stat": "ok", - "version": 1 - }, - "prospect": { - "id": 123435, - "campaign_id": 42213, - "salutation": null, - "first_name": "Roger12", - "last_name": "Federer12", - "email": "Roger12@waltair.io", - "password": null, - "company": null, - "website": "https://rudderstack.com", - "job_title": null, - "department": null, - "country": "AU", - "address_one": null, - "address_two": null, - "city": null, - "state": null, - "territory": null, - "zip": null, - "phone": null, - "fax": null, - "source": null, - "annual_revenue": null, - "employees": null, - "industry": null, - "years_in_business": null, - "comments": null, - "notes": null, - "score": 14, - "grade": null, - "last_activity_at": null, - "recent_interaction": "Never active.", - "crm_lead_fid": null, - "crm_contact_fid": null, - "crm_owner_fid": "00G2v000004WYXaEAO", - "crm_account_fid": null, - "salesforce_fid": null, - "crm_last_sync": null, - "crm_url": null, - "is_do_not_email": null, - "is_do_not_call": null, - "opted_out": null, - "is_reviewed": 1, - "is_starred": null, - "created_at": "2022-01-21 18:21:46", - "updated_at": "2022-01-21 18:48:41", - "campaign": { - "id": 42113, - "name": "Test", - "crm_fid": "7012y000000MNOCLL4" - }, - "assigned_to": { - "user": { - "id": 38443703, - "email": "test_rudderstack@testcompany.com", - "first_name": "Rudderstack", - "last_name": "User", - "job_title": null, - "role": "Administrator", - "account": 489853, - "created_at": "2021-02-26 06:25:17", - "updated_at": "2021-02-26 06:25:17" - } - }, - "Are_you_shipping_large_fragile_or_bulky_items": false, - "Calendly": false, - "Country_Code": "AU", - "Currency": "AUD", - "Inventory_or_Warehouse_Management_System": false, - "Lead_Status": "New", - "Marketing_Stage": "SAL", - "Record_Type_ID": "TestCompany Lead", - "profile": { - "id": 304, - "name": "Default", - "profile_criteria": [ - { - "id": 1500, - "name": "Shipping Volume", - "matches": "Unknown" - }, - { - "id": 1502, - "name": "Industry", - "matches": "Unknown" - }, - { - "id": 1506, - "name": "Job Title", - "matches": "Unknown" - }, - { - "id": 1508, - "name": "Department", - "matches": "Unknown" - } - ] - }, - "visitors": null, - "visitor_activities": null, - "lists": null - } - }, - "status": 200 - } - } - }, - { - "output": { - "message": "Request Processed Successfully", - "status": 201, - "destinationResponse": { - "response": { - "@attributes": { - "stat": "ok", - "version": 1 - }, - "prospect": { - "id": 123435, - "campaign_id": 42213, - "salutation": null, - "first_name": "Roger_12", - "last_name": "Federer_12", - "email": "Roger_12@waltair.io", - "password": null, - "company": null, - "website": "https://rudderstack.com", - "job_title": null, - "department": null, - "country": "AU", - "address_one": null, - "address_two": null, - "city": null, - "state": null, - "territory": null, - "zip": null, - "phone": null, - "fax": null, - "source": null, - "annual_revenue": null, - "employees": null, - "industry": null, - "years_in_business": null, - "comments": null, - "notes": null, - "score": 14, - "grade": null, - "last_activity_at": null, - "recent_interaction": "Never active.", - "crm_lead_fid": null, - "crm_contact_fid": null, - "crm_owner_fid": "00G2v000004WYXaEAO", - "crm_account_fid": null, - "salesforce_fid": null, - "crm_last_sync": null, - "crm_url": null, - "is_do_not_email": null, - "is_do_not_call": null, - "opted_out": null, - "is_reviewed": 1, - "is_starred": null, - "created_at": "2022-01-21 18:21:46", - "updated_at": "2022-01-21 18:48:41", - "campaign": { - "id": 42113, - "name": "Test", - "crm_fid": "7012y000000MNOCLL4" - }, - "assigned_to": { - "user": { - "id": 38443703, - "email": "test_rudderstack@testcompany.com", - "first_name": "Rudderstack", - "last_name": "User", - "job_title": null, - "role": "Administrator", - "account": 489853, - "created_at": "2021-02-26 06:25:17", - "updated_at": "2021-02-26 06:25:17" - } - }, - "Are_you_shipping_large_fragile_or_bulky_items": false, - "Calendly": false, - "Country_Code": "AU", - "Currency": "AUD", - "Inventory_or_Warehouse_Management_System": false, - "Lead_Status": "New", - "Marketing_Stage": "SAL", - "Record_Type_ID": "TestCompany Lead", - "profile": { - "id": 304, - "name": "Default", - "profile_criteria": [ - { - "id": 1500, - "name": "Shipping Volume", - "matches": "Unknown" - }, - { - "id": 1502, - "name": "Industry", - "matches": "Unknown" - }, - { - "id": 1506, - "name": "Job Title", - "matches": "Unknown" - }, - { - "id": 1508, - "name": "Department", - "matches": "Unknown" - } - ] - }, - "visitors": null, - "visitor_activities": null, - "lists": null - } - }, - "status": 201 - } - } - }, - { - "output": { - "message": "Request Processed Successfully", - "status": 200, - "destinationResponse": { - "response": { - "@attributes": { - "stat": "ok", - "version": 1 - }, - "prospect": { - "id": 123435, - "campaign_id": 42213, - "salutation": null, - "first_name": "Roger_12", - "last_name": "Federer_12", - "email": "Roger_12@federer.io", - "password": null, - "company": null, - "website": "https://rudderstack.com", - "job_title": null, - "department": null, - "country": "AU", - "address_one": null, - "address_two": null, - "city": null, - "state": null, - "territory": null, - "zip": null, - "phone": null, - "fax": null, - "source": null, - "annual_revenue": null, - "employees": null, - "industry": null, - "years_in_business": null, - "comments": null, - "notes": null, - "score": 14, - "grade": null, - "last_activity_at": null, - "recent_interaction": "Never active.", - "crm_lead_fid": "00Q6r000002LKhTPVR", - "crm_contact_fid": null, - "crm_owner_fid": "00G2v000004WYXaEAO", - "crm_account_fid": null, - "salesforce_fid": "00Q6r000002LKhTPVR", - "crm_last_sync": "2022-01-21 18:47:37", - "crm_url": "https://testcompany.my.salesforce.com/00Q6r000002LKhTPVR", - "is_do_not_email": null, - "is_do_not_call": null, - "opted_out": null, - "is_reviewed": 1, - "is_starred": null, - "created_at": "2022-01-21 18:21:46", - "updated_at": "2022-01-21 18:48:41", - "campaign": { - "id": 42113, - "name": "Test", - "crm_fid": "7012y000000MNOCLL4" - }, - "assigned_to": { - "user": { - "id": 38443703, - "email": "test_rudderstack@testcompany.com", - "first_name": "Rudderstack", - "last_name": "User", - "job_title": null, - "role": "Administrator", - "account": 489853, - "created_at": "2021-02-26 06:25:17", - "updated_at": "2021-02-26 06:25:17" - } - }, - "Are_you_shipping_large_fragile_or_bulky_items": false, - "Calendly": false, - "Country_Code": "AU", - "Currency": "AUD", - "Inventory_or_Warehouse_Management_System": false, - "Lead_Status": "New", - "Marketing_Stage": "SAL", - "Record_Type_ID": "TestCompany Lead", - "profile": { - "id": 304, - "name": "Default", - "profile_criteria": [ - { - "id": 1500, - "name": "Shipping Volume", - "matches": "Unknown" - }, - { - "id": 1502, - "name": "Industry", - "matches": "Unknown" - }, - { - "id": 1506, - "name": "Job Title", - "matches": "Unknown" - }, - { - "id": 1508, - "name": "Department", - "matches": "Unknown" - } - ] - }, - "visitors": null, - "visitor_activities": null, - "lists": null - } - }, - "status": 200 - } - } - }, - { - "output": { - "message": "access_token is invalid, unknown, or malformed: Inactive token during Pardot response transformation", - "status": 500, - "authErrorCategory": "REFRESH_TOKEN", - "destinationResponse": { - "@attributes": { - "stat": "fail", - "version": 1, - "err_code": 184 - }, - "err": "access_token is invalid, unknown, or malformed: Inactive token" - }, - "statTags": { - "destType": "PARDOT", - "errorCategory": "network", - "destinationId": "Non-determininable", - "workspaceId": "Non-determininable", - "errorType": "retryable", - "feature": "dataDelivery", - "implementation": "native", - "module": "destination" - } - } - } -] diff --git a/test/__tests__/data/slack_input.json b/test/__tests__/data/slack_input.json index f9a0b49841..e29624490c 100644 --- a/test/__tests__/data/slack_input.json +++ b/test/__tests__/data/slack_input.json @@ -1412,4 +1412,4 @@ "sourceId": "1YhwKyDcKstudlGxkeN5p2wgsrp" } } -] \ No newline at end of file +] diff --git a/test/__tests__/data/slack_output.json b/test/__tests__/data/slack_output.json index 63d7934a00..c772aa3b19 100644 --- a/test/__tests__/data/slack_output.json +++ b/test/__tests__/data/slack_output.json @@ -161,4 +161,4 @@ { "error": "Event is denied. Please check configuration." } -] \ No newline at end of file +] diff --git a/test/__tests__/mssql.test.js b/test/__tests__/mssql.test.js deleted file mode 100644 index 7e883d2c30..0000000000 --- a/test/__tests__/mssql.test.js +++ /dev/null @@ -1,50 +0,0 @@ -const { getDataType } = require("../../src/warehouse/index"); -const { - getDataTypeOverride -} = require("../../src/v0/destinations/mssql/transform"); - -var testCases = [ - { - name: "normalInt", - data: 1, - type: "int" - }, - { - name: "normalFloat", - data: 2.01, - type: "float" - }, - { - name: "normalBoolean", - data: true, - type: "boolean" - }, - { - name: "normalString", - data: "mssql transformation[*007}", - type: "string" - }, - { - name: "violationErrors", - data: [ - { - message: - "no schema for eventName : Product Purchased new, eventType : track in trackingPlanID : tp_20dfXJDpotQWHe7hMxfQfgWMZDv::1", - meta: {}, - type: "Unplanned-Event" - } - ], - type: "string" - } -]; - -describe("MSSQL data types testing", () => { - let options = {}; - options.getDataTypeOverride = getDataTypeOverride; - testCases.forEach(testCase => { - it(`should return data type ${testCase.type} for this input data ${testCase.data} everytime`, () => { - var dataType = getDataType(testCase.name, testCase.data, options); - expect(dataType).toEqual(testCase.type); - }); - }); -}); diff --git a/test/__tests__/optimizely_fullstack-cdk.test.ts b/test/__tests__/optimizely_fullstack-cdk.test.ts deleted file mode 100644 index b51cd18b11..0000000000 --- a/test/__tests__/optimizely_fullstack-cdk.test.ts +++ /dev/null @@ -1,60 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import { processCdkV2Workflow } from '../../src/cdk/v2/handler'; -import tags from '../../src/v0/util/tags'; - -const integration = 'optimizely_fullstack'; -const destName = 'Optimizely Fullstack'; - -jest.mock('../../src/v0/util/index', () => { - const originalModule = jest.requireActual('../../src/v0/util/index'); - return { - ...originalModule, - generateUUID: jest.fn(() => 'generated_uuid'), - }; -}); - -// Processor Test files -const testDataFile = fs.readFileSync(path.resolve(__dirname, `./data/${integration}.json`), { - encoding: 'utf8', -}); -const testData = JSON.parse(testDataFile); - -// Router Test files -const routerTestDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router.json`), - { encoding: 'utf8' }, -); -const routerTestData = JSON.parse(routerTestDataFile); - -describe(`${destName} Tests`, () => { - describe('Processor Tests', () => { - testData.forEach((dataPoint, index) => { - it(`${destName} - payload: ${index}`, async () => { - try { - const output = await processCdkV2Workflow( - integration, - dataPoint.input, - tags.FEATURES.PROCESSOR, - ); - expect(output).toEqual(dataPoint.output); - } catch (error: any) { - expect(error.message).toEqual(dataPoint.output.error); - } - }); - }); - }); - - describe('Router Tests', () => { - routerTestData.forEach((dataPoint) => { - it('Optimizely fullstack router test case', async () => { - const output = await processCdkV2Workflow( - integration, - dataPoint.input, - tags.FEATURES.ROUTER, - ); - expect(output).toEqual(dataPoint.output); - }); - }); - }); -}); diff --git a/test/__tests__/pardot.test.js b/test/__tests__/pardot.test.js deleted file mode 100644 index d766d3b856..0000000000 --- a/test/__tests__/pardot.test.js +++ /dev/null @@ -1,28 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -const integration = "pardot"; -const name = "pardot"; - -const version = "v0"; - -const transformer = require(`../../src/${version}/destinations/${integration}/transform`); - -//for router test -const inputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_input.json`) -); -const outputRouterDataFile = fs.readFileSync( - path.resolve(__dirname, `./data/${integration}_router_output.json`) -); -const inputRouterData = JSON.parse(inputRouterDataFile); -const expectedRouterData = JSON.parse(outputRouterDataFile); - -describe(`${name} Router Tests`, () => { - describe("Router Tests", () => { - it(`${name} Payload`, async () => { - const routerOutput = await transformer.processRouterDest(inputRouterData); - expect(routerOutput).toEqual(expectedRouterData); - }); - }); -}); diff --git a/test/__tests__/postgres.test.js b/test/__tests__/postgres.test.js deleted file mode 100644 index 354fedba09..0000000000 --- a/test/__tests__/postgres.test.js +++ /dev/null @@ -1,50 +0,0 @@ -const { getDataType } = require("../../src/warehouse/index"); -const { - getDataTypeOverride -} = require("../../src/v0/destinations/postgres/transform"); - -var testCases = [ - { - name: "normalInt", - data: 1, - type: "int" - }, - { - name: "normalFloat", - data: 2.01, - type: "float" - }, - { - name: "normalBoolean", - data: true, - type: "boolean" - }, - { - name: "normalString", - data: "postgres transformation[*007}", - type: "string" - }, - { - name: "violationErrors", - data: [ - { - message: - "no schema for eventName : Product Purchased new, eventType : track in trackingPlanID : tp_20dfXJDpotQWHe7hMxfQfgWMZDv::1", - meta: {}, - type: "Unplanned-Event" - } - ], - type: "json" - } -]; - -describe("Postgres data types testing", () => { - let options = {}; - options.getDataTypeOverride = getDataTypeOverride; - testCases.forEach(testCase => { - it(`should return data type ${testCase.type} for this input data ${testCase.data} everytime`, () => { - var dataType = getDataType(testCase.name, testCase.data, options); - expect(dataType).toEqual(testCase.type); - }); - }); -}); diff --git a/test/__tests__/proxy.test.ts b/test/__tests__/proxy.test.ts index 9f13c198fc..15769fc8dc 100644 --- a/test/__tests__/proxy.test.ts +++ b/test/__tests__/proxy.test.ts @@ -1,12 +1,13 @@ const name = 'Proxy'; -import fs from 'fs'; -import path from 'path'; +import fs, { appendFileSync } from 'fs'; +import path, { join } from 'path'; import request from 'supertest'; import { createHttpTerminator } from 'http-terminator'; import { mockedAxiosClient } from '../__mocks__/network'; import Koa from 'koa'; import bodyParser from 'koa-bodyparser'; import { applicationRoutes } from '../../src/routes'; +import { responses } from '../testHelper'; let server: any; const OLD_ENV = process.env; @@ -37,7 +38,6 @@ const version = '1'; const destinations = [ 'marketo', 'braze', - 'pardot', 'google_adwords_remarketing_lists', 'google_adwords_enhanced_conversions', 'facebook_pixel', @@ -48,7 +48,7 @@ const destinations = [ 'marketo_static_list', 'criteo_audience', 'tiktok_ads', - 'intercom' + 'intercom', ]; // start of generic tests @@ -89,6 +89,20 @@ destinations.forEach((destination) => { expect(response.body).toEqual(expectedData[index]); }); }); + afterAll(() => { + if (process.env.GEN_AXIOS_FOR_TESTS === 'true') { + const callsDataStr = responses.join('\n'); + const calls = ` + export const networkCallsData = [ + ${callsDataStr} + ] + `; + appendFileSync( + join(__dirname, '..', 'integrations', 'destinations', destination, 'network.ts'), + calls, + ); + } + }); }); }); // destination tests end diff --git a/test/deleteUsers/README.md b/test/deleteUsers/README.md deleted file mode 100644 index c3170f3a8c..0000000000 --- a/test/deleteUsers/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# DeleteUsers Tests - -All the tests data for deleteUsers are to be present in **tests**/data/deleteUsers/${destination}/ - -### Files and their significance - -- **`handler_input.json`** - Input data for `handleDeletionOfUsers` function in `versionedRouter.js`(alias for `_deleteUsers_proxy_input.json`) -- **`handler_output.json`** - Output of `handleDeletionOfUsers` function in `versionedRouter.js`(alias for `_deleteUsers_proxy_output.json`) -- **`nw_client_data.json`** - the mock http responses(An example can be seen in the case of `ga`) - -### Fields in new files - -#### nw_client_data.json - -- Type: Array> -- The array of object is how many responses have to be sent back -- Each of the object contains below mentioned fields - - type: - - Indicates what type of http client invocation it is - - Recommended to be sent - - Supported values: - - post - - get - - delete - - constructor - - if nothing is mentioned, `post` is considered by default - - reqParams: - - Type: Array - - Optional - - Indicates the expected arguments that are to be sent to the http client instance - - We would `recommend` to also add this as part of your `nw_client_data.json` - - response: - - Type: object - - Required - - The response that needs to be returned from the http client diff --git a/test/deleteUsers/data/af/handler_input.json b/test/deleteUsers/data/af/handler_input.json deleted file mode 100644 index 7685ec7a73..0000000000 --- a/test/deleteUsers/data/af/handler_input.json +++ /dev/null @@ -1,177 +0,0 @@ -[ - { - "request": { - "body": [ - { - "destType": "AF", - "userAttributes": [ - { - "userId": "test_user_id", - "android_advertising_id": "1665148898336-5539842602053895577" - } - ], - "config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "appleAppId": "123456789", - "androidAppId": "AnAID", - "apiToken": "dummyApiToken" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "AF", - "userAttributes": [ - { - "userId": "test_user_id", - "ios_advertising_id": "1665148898336-5539842602053895577" - } - ], - "config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "appleAppId": "123456789", - "androidAppId": "AnAID", - "apiToken": "dummyApiToken", - "statusCallbackUrls": "https://examplecontroller.com/opengdpr_callbacks" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "AF", - "userAttributes": [ - { - "userId": "test_user_id", - "appsflyer_id": "jklhajksfh" - }, - { - "userId": "user_sdk2", - "appsflyer_id": "jklhajksfh" - } - ], - "config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "apiToken": "dummyApiToken" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "AF", - "userAttributes": [ - { - "userId": "test_user_id", - "appsflyer_id": "jklhajksfh" - }, - { - "userId": "user_sdk2", - "appsflyer_id": "jklhajksfh" - } - ], - "config": { - "devKey": "ef1d42390426e3f7c90ac78272e74344", - "appleAppId": "123456789", - "statusCallbackUrls": "https://examplecontroller.com/opengdpr_callbacks,https://examplecontroller.com/opengdpr_callbacks,https://examplecontroller.com/opengdpr_callbacks,https://examplecontroller.com/opengdpr_callbacks", - "apiToken": "dummyApiToken" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "AF", - "userAttributes": [ - { - "email": "testUser@testMail.com", - "android_advertising_id": "1234" - }, - { - "userId": "user_sdk2", - "android_advertising_id": "1234" - } - ], - "config": { - "devKey": "abcde", - "appleAppId": "asdfasdf", - "groupTypeTrait": "email", - "groupValueTrait": "age", - "trackProductsOnce": false, - "trackRevenuePerProduct": false, - "apiToken": "dummyApiToken" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "AF", - "userAttributes": [ - { - "email": "testUser@testMail.com", - "ios_advertising_id": "1234" - }, - { - "userId": "user_sdk2", - "ios_advertising_id": "1234" - } - ], - "config": { - "devKey": "abcde", - "androidAppId": "com.rudder.rs", - "groupTypeTrait": "email", - "groupValueTrait": "age", - "trackProductsOnce": false, - "trackRevenuePerProduct": false, - "apiToken": "dummyApiToken" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "AF", - "userAttributes": [ - { - "email": "testUser@testMail.com", - "userId": "user1234" - }, - { - "userId": "user_sdk2", - "ios_advertising_id": "1234" - } - ], - "config": { - "devKey": "abcde", - "androidAppId": "com.rudder.rs", - "groupTypeTrait": "email", - "groupValueTrait": "age", - "trackProductsOnce": false, - "trackRevenuePerProduct": false, - "apiToken": "dummyApiToken" - } - } - ] - } - } -] diff --git a/test/deleteUsers/data/af/handler_output.json b/test/deleteUsers/data/af/handler_output.json deleted file mode 100644 index 33363c69d3..0000000000 --- a/test/deleteUsers/data/af/handler_output.json +++ /dev/null @@ -1,44 +0,0 @@ -[ - [ - { - "statusCode": 400, - "error": "User deletion request failed" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ], - [ - { - "statusCode": 400, - "error": "API Token and one of Apple ID or Android App Id are required fields for user deletion" - } - ], - [ - { - "statusCode": 400, - "error": "You can send utmost 3 callBackUrls" - } - ], - [ - { - "statusCode": 400, - "error": "androidAppId is required for android_advertising_id type identifier" - } - ], - [ - { - "statusCode": 400, - "error": "appleAppId is required for ios_advertising_id type identifier" - } - ], - [ - { - "statusCode": 400, - "error": "none of the possible identityTypes i.e.(ios_advertising_id, android_advertising_id, appsflyer_id) is provided for deletion" - } - ] -] diff --git a/test/deleteUsers/data/af/nw_client_data.json b/test/deleteUsers/data/af/nw_client_data.json deleted file mode 100644 index b7ecfc1596..0000000000 --- a/test/deleteUsers/data/af/nw_client_data.json +++ /dev/null @@ -1,58 +0,0 @@ -[ - [ - { - "type": "post", - "reqParams": [ - "https://hq1.appsflyer.com/gdpr/opengdpr_requests?api_token=dummyApiToken", - { - "subject_request_type": "erasure", - "subject_identities": { - "identity_format": "raw", - "identity_type": "android_advertising_id", - "identity_value": "1665148898336-5539842602053895577" - }, - "property_id": "AnAID", - "subject_request_id": "f31a16f4-2357-47b5-aba0-d83742f2fd66", - "submitted_time": "2022-12-26T12:51:27.570Z" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "error": { - "code": 400, - "af_gdpr_code": "e411", - "message": "AppID given in 'property_id' is incorrect or does not belong to your account" - } - }, - "status": 400 - } - } - } - ], - [ - { - "type": "post", - "reqParams": [ - "https://hq1.appsflyer.com/gdpr/opengdpr_requests?api_token=dummyApiToken", - { - "subject_request_type": "erasure", - "subject_identities": { - "identity_format": "raw", - "identity_type": "ios_advertising_id", - "identity_value": "1665148898336-5539842602053895577" - }, - "property_id": "123456789", - "subject_request_id": "f31a16f4-2357-47b5-aba0-d83742f2fd66", - "submitted_time": "2022-12-26T12:51:27.570Z" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - } - ] -] diff --git a/test/deleteUsers/data/am/handler_input.json b/test/deleteUsers/data/am/handler_input.json deleted file mode 100644 index 66b97d4a4d..0000000000 --- a/test/deleteUsers/data/am/handler_input.json +++ /dev/null @@ -1,380 +0,0 @@ -[ - { - "request": { - "body": [ - { - "jobId": "423451324652346", - "destType": "AM", - "userAttributes": [ - { - "userIderror": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - } - ], - "config": { - "apiKey": "1234", - "apiSecret": "abcd" - } - } - ] - } - } -] - - diff --git a/test/deleteUsers/data/am/handler_output.json b/test/deleteUsers/data/am/handler_output.json deleted file mode 100644 index c453a831d9..0000000000 --- a/test/deleteUsers/data/am/handler_output.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - [ - { - "statusCode": 400, - "error": "User deletion request failed" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ], - [ - { - "statusCode": 400, - "error": "Config for deletion not present" - } - ], - [ - { - "statusCode": 400, - "error": "api key/secret for deletion not present" - } - ] -] diff --git a/test/deleteUsers/data/am/nw_client_data.json b/test/deleteUsers/data/am/nw_client_data.json deleted file mode 100644 index 3abf39691a..0000000000 --- a/test/deleteUsers/data/am/nw_client_data.json +++ /dev/null @@ -1,91 +0,0 @@ -[ - [ - { - "type": "post", - "reqParams": [ - "https://amplitude.com/api/2/deletions/users", - { - "userIds": ["Batch1"] - }, - { - "Content-Type": "application/json", - "Authorization": "Basic MTIzNDphYmNk" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "code": 403, - "message": "HTTP 403: Forbidden (Invalid API Key)", - "status": "Forbidden" - }, - "status": 400 - } - } - }, - { - "type": "post", - "reqParams": [ - "https://amplitude.com/api/2/deletions/users", - { - "userIds": ["Batch2"] - }, - { - "Content-Type": "application/json", - "Authorization": "Basic MTIzNDphYmNk" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "Nothing scheduled due to invalid amplitude/user ids for app XXXXX" - } - } - } - ], - [ - { - "type": "post", - "reqParams": [ - "https://amplitude.com/api/2/deletions/users", - { - "userIds": ["Batch1"] - }, - { - "Content-Type": "application/json", - "Authorization": "Basic MTIzNDphYmNk" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "Mocking" - } - } - }, - { - "type": "post", - "reqParams": [ - "https://amplitude.com/api/2/deletions/users", - { - "userIds": ["Batch2"] - }, - { - "Content-Type": "application/json", - "Authorization": "Basic MTIzNDphYmNk" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "Mocking" - } - } - } - ] -] diff --git a/test/deleteUsers/data/braze/handler_input.json b/test/deleteUsers/data/braze/handler_input.json deleted file mode 100644 index 6a8ad60f4d..0000000000 --- a/test/deleteUsers/data/braze/handler_input.json +++ /dev/null @@ -1,393 +0,0 @@ -[ - { - "request": { - "body": [ - { - "destType": "BRAZE", - "userAttributes": [ - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - } - ], - "config": { - "dataCenter": "US-03", - "restApiKey": "1234" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "BRAZE", - "userAttributes": [ - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - } - ], - "config": { - "dataCenter": "US-03", - "restApiKey": "1234" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "BRAZE", - "userAttributes": [ - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - } - ] - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "BRAZE", - "userAttributes": [ - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - } - ], - "config": { - "dataCenter": "US-03" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "BRAZE", - "userAttributes": [ - { - "name": "a" - } - ], - "config": { - "restApiKey": "b1bd90e2-d203-480a-962c-f7bb03ea0afe", - "dataCenter": "US-03" - } - } - ] - } - } -] diff --git a/test/deleteUsers/data/braze/handler_output.json b/test/deleteUsers/data/braze/handler_output.json deleted file mode 100644 index 7df562646a..0000000000 --- a/test/deleteUsers/data/braze/handler_output.json +++ /dev/null @@ -1,32 +0,0 @@ -[ - [ - { - "statusCode": 400, - "error": "User deletion request failed" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ], - [ - { - "statusCode": 400, - "error": "Config for deletion not present" - } - ], - [ - { - "statusCode": 400, - "error": "data center / api key for deletion not present" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ] -] diff --git a/test/deleteUsers/data/braze/nw_client_data.json b/test/deleteUsers/data/braze/nw_client_data.json deleted file mode 100644 index 34b2d488da..0000000000 --- a/test/deleteUsers/data/braze/nw_client_data.json +++ /dev/null @@ -1,97 +0,0 @@ -[ - [ - { - "type": "post", - "reqParams": [ - "https://rest.iad-03.braze.com/users/delete", - { - "externalIds": ["Batch1"] - }, - { - "Content-Type": "application/json", - "Authorization": "Bearer ${restApiKey}" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "code": 400, - "message": "Bad Req", - "status": "Fail Case" - }, - "status": 400 - } - } - }, - { - "type": "post", - "reqParams": [ - "https://rest.iad-03.braze.com/users/delete", - { - "externalIds": ["Batch2"] - }, - { - "Content-Type": "application/json", - "Authorization": "Bearer ${restApiKey}" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "1" - } - } - } - ], - [ - { - "type": "post", - "reqParams": [ - "https://rest.iad-03.braze.com/users/delete", - { - "externalIds": ["Batch4"] - }, - { - "Content-Type": "application/json", - "Authorization": "Bearer ${restApiKey}" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": { - "deleted": 50, - "message": "success" - } - } - } - }, - { - "type": "post", - "reqParams": [ - "https://rest.iad-03.braze.com/users/delete", - { - "externalIds": ["Batch"] - }, - { - "Content-Type": "application/json", - "Authorization": "Bearer ${restApiKey}" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": { - "deleted": 50, - "message": "success" - } - } - } - } - ] -] diff --git a/test/deleteUsers/data/clevertap/handler_input.json b/test/deleteUsers/data/clevertap/handler_input.json deleted file mode 100644 index 61c9446cf7..0000000000 --- a/test/deleteUsers/data/clevertap/handler_input.json +++ /dev/null @@ -1,441 +0,0 @@ -[ - { - "request": { - "body": [ - { - "destType": "CLEVERTAP", - "userAttributes": [ - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - } - ], - "config": { - "accountId": "476550467", - "trackAnonymous": true, - "enableObjectIdMapping": false - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "CLEVERTAP", - "userAttributes": [ - { - "email": "testUser@testMail.com" - }, - { - "userId": "user_sdk2" - } - ], - "config": { - "passcode": "fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1", - "trackAnonymous": true, - "enableObjectIdMapping": false - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "CLEVERTAP", - "userAttributes": [ - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - }, - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - } - ], - "config": { - "accountId": "testFail", - "passcode": "tofail", - "trackAnonymous": true, - "enableObjectIdMapping": false - } - } - ] - } - } -] diff --git a/test/deleteUsers/data/clevertap/handler_output.json b/test/deleteUsers/data/clevertap/handler_output.json deleted file mode 100644 index cff9494cef..0000000000 --- a/test/deleteUsers/data/clevertap/handler_output.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - [ - { - "statusCode": 400, - "error": "Project ID and Passcode is required for delete user" - } - ], - [ - { - "statusCode": 400, - "error": "Project ID and Passcode is required for delete user" - } - ], - [ - { - "statusCode": 400, - "error": "User deletion request failed" - } - ] -] diff --git a/test/deleteUsers/data/clevertap/nw_client_data.json b/test/deleteUsers/data/clevertap/nw_client_data.json deleted file mode 100644 index 75a4f4550f..0000000000 --- a/test/deleteUsers/data/clevertap/nw_client_data.json +++ /dev/null @@ -1,177 +0,0 @@ -[ - [ - { - "type": "post", - "reqParams": [ - "https://api.clevertap.com/1/delete/profiles.json", - { - "identity": [ - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "user_sdk2" - ] - }, - { - "X-CleverTap-Account-Id": "testFail", - "X-CleverTap-Passcode": "tofail" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "code": 400, - "message": "Bad Req", - "status": "Fail Case" - }, - "status": 400 - } - } - }, - { - "type": "post", - "reqParams": [ - "https://api.clevertap.com/1/delete/profiles.json", - { - "identity": [ - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2", - "test_user_id", - "user_sdk2" - ] - }, - { - "X-CleverTap-Account-Id": "testFail", - "X-CleverTap-Passcode": "tofail" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "rpoxy" - } - } - } - ] -] diff --git a/test/deleteUsers/data/engage/handler_input.json b/test/deleteUsers/data/engage/handler_input.json deleted file mode 100644 index c999787e60..0000000000 --- a/test/deleteUsers/data/engage/handler_input.json +++ /dev/null @@ -1,133 +0,0 @@ -[ - { - "request": { - "body": [ - { - "destType": "ENGAGE", - "userAttributes": [ - { - "userId": "1" - }, - { - "userId": "2" - }, - { - "userId": "3" - } - ], - "config": { - "publicKey": "abcd", - "privateKey": "efgh" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "ENGAGE", - "userAttributes": [ - { - "userId": "4" - }, - { - "userId": "5" - }, - { - "userId": "6" - } - ], - "config": { - "publicKey": "abcd", - "privateKey": "efgh" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "ENGAGE", - "userAttributes": [ - { - "userId": "7" - }, - { - "userId": "8" - }, - { - "userId": "9" - } - ], - "config": { - "publicKey": "abcd", - "privateKey": "efgh" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "ENGAGE", - "userAttributes": [ - { - "userId": "1" - } - ], - "config": { - "publicKey": "abcd", - "privateKey": "efgh" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "ENGAGE", - "userAttributes": [ - { - "userId": "userid1" - }, - { - "userId": "user_sdk2" - } - ], - "config": { - "privateKey": "abcd" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "ENGAGE", - "userAttributes": [ - { - "email": "testUser@testMail.com" - }, - { - "userId": "user_sdk2" - } - ], - "config": { - "publicKey": "abcd", - "privateKey": "efgh" - } - } - ] - } - } -] diff --git a/test/deleteUsers/data/engage/handler_output.json b/test/deleteUsers/data/engage/handler_output.json deleted file mode 100644 index 1c3f854391..0000000000 --- a/test/deleteUsers/data/engage/handler_output.json +++ /dev/null @@ -1,39 +0,0 @@ -[ - [ - { - "statusCode": 400, - "error": "User deletion request failed" - } - ], - [ - { - "statusCode": 400, - "error": "User deletion request failed" - } - ], - [ - { - "statusCode": 400, - "error": "User deletion request failed" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ], - - [ - { - "statusCode": 400, - "error": "Public key is a required field for user deletion" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ] -] diff --git a/test/deleteUsers/data/engage/nw_client_data.json b/test/deleteUsers/data/engage/nw_client_data.json deleted file mode 100644 index 833b440766..0000000000 --- a/test/deleteUsers/data/engage/nw_client_data.json +++ /dev/null @@ -1,197 +0,0 @@ -[ - [ - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/1", - {}, - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "code": 400, - "message": "Bad Req", - "status": "Fail first" - }, - "status": 400 - } - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/2", - {}, - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/3", - {}, - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - } - ], - [ - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/4", - {}, - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/5", - {}, - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/6", - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "code": 400, - "message": "Bad Req", - "status": "fail 6 " - }, - "status": 400 - } - } - } - ], - [ - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/7", - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/8", - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "code": 400, - "message": "Bad Req", - "status": "fail mid case 8" - }, - "status": 400 - } - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/9", - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - } - ], - [ - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/1", - {}, - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - } - ], - [ - { - "type": "delete", - "reqParams": [ - "https://api.engage.so/v1/users/user_sdk2", - {}, - { - "Content-Type": "application/json", - "Authorization": "Basic YWJjZDplZmdo" - } - ], - "response": { - "status": 200, - "statusText": "success" - } - } - ] -] diff --git a/test/deleteUsers/data/ga/handler_input.json b/test/deleteUsers/data/ga/handler_input.json deleted file mode 100644 index 7470e3cc29..0000000000 --- a/test/deleteUsers/data/ga/handler_input.json +++ /dev/null @@ -1,83 +0,0 @@ -[ - { - "getValue": { - "x-rudder-dest-info": "{\"secret\": { \"access_token\": \"valid_token\" }}" - }, - "request": { - "body": [ - { - "destType": "GA", - "userAttributes": [ - { - "userId": "test_user_1" - }, - { - "userId": "test_user_2" - } - ], - "config": { - "trackingID": "UA-123456789-5", - "useNativeSDK": false - } - } - ] - } - }, - { - "getValue": { - "x-rudder-dest-info": "{\"secret\": { \"access_token\": \"expired_token\" }}" - }, - "request": { - "body": [ - { - "destType": "GA", - "userAttributes": [ - { - "userId": "test_user_3" - }, - { - "userId": "test_user_4" - } - ], - "config": { - "trackingID": "UA-123456789-6", - "useNativeSDK": false - } - } - ] - } - }, - { - "getValue": { - "x-rudder-dest-info": "{\"secret\": { \"access_token\": \"valid_token_1\" }}" - }, - "request": { - "body": [ - { - "destType": "GA", - "userAttributes": [ - { - "userId": "test_user_5" - }, - { - "userId": "test_user_6" - }, - { - "userId": "test_user_7" - }, - { - "userId": "test_user_8" - }, - { - "userId": "test_user_9" - } - ], - "config": { - "trackingID": "UA-123456789-7", - "useNativeSDK": false - } - } - ] - } - } -] diff --git a/test/deleteUsers/data/ga/handler_output.json b/test/deleteUsers/data/ga/handler_output.json deleted file mode 100644 index db31670781..0000000000 --- a/test/deleteUsers/data/ga/handler_output.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - [ - { - "statusCode": 200, - "status": "successful" - } - ], - [ - { - "statusCode": 500, - "authErrorCategory": "REFRESH_TOKEN", - "error": "invalid credentials" - } - ], - [ - { - "statusCode": 403, - "error": "Error occurred while completing deletion request: [dummy response] The parameter used to query is not correct" - } - ] -] diff --git a/test/deleteUsers/data/ga/nw_client_data.json b/test/deleteUsers/data/ga/nw_client_data.json deleted file mode 100644 index 7cbeaf726c..0000000000 --- a/test/deleteUsers/data/ga/nw_client_data.json +++ /dev/null @@ -1,316 +0,0 @@ -[ - [ - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_1" - }, - "webPropertyId": "UA-123456789-5" - }, - { - "headers": { - "Authorization": "Bearer valid_token", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "data": { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_1" - }, - "webPropertyId": "UA-123456789-5", - "deletionRequestTime": "2022-11-04T10:39:57.933Z" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_1" - }, - "webPropertyId": "UA-123456789-5" - }, - { - "headers": { - "Authorization": "Bearer valid_token", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "data": { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_2" - }, - "webPropertyId": "UA-123456789-5", - "deletionRequestTime": "2022-11-04T10:39:57.933Z" - }, - "status": 200, - "statusText": "OK" - } - } - ], - [ - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_3" - }, - "webPropertyId": "UA-123456789-6" - }, - { - "headers": { - "Authorization": "Bearer expired_token", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "data": { - "error": { - "code": 401, - "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", - "status": "UNAUTHENTICATED" - } - }, - "status": 200, - "statusText": "OK" - } - }, - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_4" - }, - "webPropertyId": "UA-123456789-6" - }, - { - "headers": { - "Authorization": "Bearer expired_token", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "data": { - "error": { - "code": 401, - "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", - "status": "UNAUTHENTICATED" - } - }, - "status": 200, - "statusText": "OK" - } - } - ], - [ - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_5" - }, - "webPropertyId": "UA-123456789-7" - }, - { - "headers": { - "Authorization": "Bearer valid_token_1", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "data": { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_5" - }, - "webPropertyId": "UA-123456789-7", - "deletionRequestTime": "2022-11-04T10:39:57.933Z" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_6" - }, - "webPropertyId": "UA-123456789-7" - }, - { - "headers": { - "Authorization": "Bearer valid_token_1", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "data": { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_6" - }, - "webPropertyId": "UA-123456789-7", - "deletionRequestTime": "2022-11-04T10:39:57.933Z" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_7" - }, - "webPropertyId": "UA-123456789-7" - }, - { - "headers": { - "Authorization": "Bearer valid_token_1", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "response": { - "data": { - "error": { - "errors": [ - { - "domain": "global", - "reason": "invalidParameter", - "message": "[dummy response] The parameter used to query is not correct" - } - ], - "code": 403, - "message": "[dummy response] The parameter used to query is not correct" - } - }, - "status": 403, - "statusText": "Bad Request" - } - } - }, - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_8" - }, - "webPropertyId": "UA-123456789-7" - }, - { - "headers": { - "Authorization": "Bearer valid_token_1", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "data": { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_8" - }, - "webPropertyId": "UA-123456789-7", - "deletionRequestTime": "2022-11-04T10:39:57.933Z" - }, - "status": 200, - "statusText": "OK" - } - }, - { - "type": "post", - "reqParams": [ - "https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert", - { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_9" - }, - "webPropertyId": "UA-123456789-7" - }, - { - "headers": { - "Authorization": "Bearer valid_token_1", - "Accept": "application/json", - "Content-Type": "application/json" - } - } - ], - "response": { - "data": { - "kind": "analytics#userDeletionRequest", - "id": { - "type": "USER_ID", - "userId": "test_user_9" - }, - "webPropertyId": "UA-123456789-7", - "deletionRequestTime": "2022-11-04T10:39:57.933Z" - }, - "status": 200, - "statusText": "OK" - } - } - ] -] diff --git a/test/deleteUsers/data/intercom/nw_client_data.json b/test/deleteUsers/data/intercom/nw_client_data.json deleted file mode 100644 index 462a68cbfd..0000000000 --- a/test/deleteUsers/data/intercom/nw_client_data.json +++ /dev/null @@ -1,96 +0,0 @@ -[ - [ - { - "type": "post", - "reqParams": [ - "https://api.intercom.io/users/1", - { - "intercom_user_id": 1 - }, - { - "Accept": "application/json", - "Authorization": "Bearer API_KEY" - } - ], - "response": { - "code": 401, - "statusText": "Unauthorized", - "response": { - "data": { - "type": "error.list", - "request_id": "0022e6v5qc7m04jeu5pg", - "errors": [ - { - "code": "unauthorized", - "message": "Access Token Invalid" - } - ] - }, - "status": 400 - } - } - }, - { - "type": "post", - "reqParams": [ - "https://api.intercom.io/user_delete_requests", - { - "intercom_user_id": 12 - }, - { - "Accept": "application/json", - "Authorization": "Bearer API_KEY" - } - ], - "response": { - "status": 200, - "statusText": "ok", - "data": { - "id": 12 - } - } - } - ], - [ - { - "type": "post", - "reqParams": [ - "https://api.intercom.io/user_delete_requests", - { - "intercom_user_id": 7 - }, - { - "Accept": "application/json", - "Authorization": "Bearer API_KEY" - } - ], - "response": { - "status": 200, - "statusText": "ok", - "data": { - "id": 7 - } - } - }, - { - "type": "post", - "reqParams": [ - "https://api.intercom.io/user_delete_requests", - { - "intercom_user_id": 9 - }, - { - "Accept": "application/json", - "Authorization": "Bearer API_KEY" - } - ], - "response": { - "status": 200, - "statusText": "ok", - "data": { - "id": 9 - } - } - } - ] -] diff --git a/test/deleteUsers/data/intercom/handler_input.json b/test/deleteUsers/data/iterable/handler_input.json similarity index 56% rename from test/deleteUsers/data/intercom/handler_input.json rename to test/deleteUsers/data/iterable/handler_input.json index d843db83bc..8ebc859089 100644 --- a/test/deleteUsers/data/intercom/handler_input.json +++ b/test/deleteUsers/data/iterable/handler_input.json @@ -3,18 +3,12 @@ "request": { "body": [ { - "destType": "INTERCOM", + "destType": "ITERABLE", "userAttributes": [ { - "userId": "1" - }, - { - "userId": "12" + "userId": "rudder1" } - ], - "config": { - "apiKey": "API_KEY" - } + ] } ] } @@ -23,17 +17,14 @@ "request": { "body": [ { - "destType": "INTERCOM", + "destType": "ITERABLE", "userAttributes": [ { - "userId": "7" - }, - { - "userId": "9" + "userId": "rudder2" } ], "config": { - "apiKey": "API_KEY" + "apiToken": "dummyApiKey" } } ] @@ -43,15 +34,18 @@ "request": { "body": [ { - "destType": "INTERCOM", + "destType": "ITERABLE", "userAttributes": [ { - "userId": "6188c2c5f47e464b4abf3235" + "userId": "rudder1" }, { - "userId": "user_sdk2" + "userId": "rudder2" } - ] + ], + "config": { + "apiKey": "dummyApiKey" + } } ] } @@ -60,16 +54,18 @@ "request": { "body": [ { - "destType": "INTERCOM", + "destType": "ITERABLE", "userAttributes": [ { - "userId": "6188c2c5f47e464b4abf3235" + "userId": "rudder3" }, { - "userId": "user_sdk2" + "userId": "rudder4" } ], - "config": {} + "config": { + "apiKey": "invalidKey" + } } ] } @@ -78,10 +74,17 @@ "request": { "body": [ { - "destType": "INTERCOM", - "userAttributes": [{}], + "destType": "ITERABLE", + "userAttributes": [ + { + "userId": "rudder5" + }, + { + "userId": "rudder6" + } + ], "config": { - "apiKey": "a=" + "apiKey": "dummyApiKey" } } ] diff --git a/test/deleteUsers/data/intercom/handler_output.json b/test/deleteUsers/data/iterable/handler_output.json similarity index 58% rename from test/deleteUsers/data/intercom/handler_output.json rename to test/deleteUsers/data/iterable/handler_output.json index 156c6ec114..b053d04df4 100644 --- a/test/deleteUsers/data/intercom/handler_output.json +++ b/test/deleteUsers/data/iterable/handler_output.json @@ -2,25 +2,25 @@ [ { "statusCode": 400, - "error": "User deletion request failed" + "error": "Config for deletion not present" } ], [ { - "statusCode": 200, - "status": "successful" + "statusCode": 400, + "error": "api key for deletion not present" } ], [ { "statusCode": 400, - "error": "Config for deletion not present" + "error": "User deletion request failed for userIds : [{\"userId\":\"rudder2\",\"Reason\":\"User does not exist. Email: UserId: rudder2\"}]" } ], [ { - "statusCode": 400, - "error": "api key for deletion not present" + "error": "User deletion request failed : Invalid API key", + "statusCode": 401 } ], [ diff --git a/test/deleteUsers/data/iterable/nw_client_data.json b/test/deleteUsers/data/iterable/nw_client_data.json new file mode 100644 index 0000000000..159c301b11 --- /dev/null +++ b/test/deleteUsers/data/iterable/nw_client_data.json @@ -0,0 +1,138 @@ +[ + [ + { + "type": "delete", + "reqParams": [ + "https://api.iterable.com/api/users/byUserId/rudder1", + {}, + { + "Accept": "application/json", + "api_key": "dummyApiKey" + } + ], + "response": { + "response": { + "data": { + "msg": "All users associated with rudder1 were successfully deleted", + "code": "Success", + "params": null + }, + "status": 200 + } + } + }, + { + "type": "delete", + "reqParams": [ + "https://api.iterable.com/api/users/byUserId/rudder2", + {}, + { + "Accept": "application/json", + "api_key": "dummyApiKey" + } + ], + "response": { + "response": { + "data": { + "msg": "User does not exist. Email: UserId: rudder2", + "code": "BadParams", + "params": null + }, + "status": 400 + } + } + } + ], + [ + { + "type": "delete", + "reqParams": [ + "https://api.iterable.com/api/users/byUserId/rudder3", + {}, + { + "Accept": "application/json", + "api_key": "invalidKey" + } + ], + "response": { + "response": { + "data": { + "msg": "Invalid API key", + "code": "Success", + "params": { + "endpoint": "/api/users/byUserId/rudder3" + } + }, + "status": 401 + } + } + }, + { + "type": "delete", + "reqParams": [ + "https://api.iterable.com/api/users/byUserId/rudder4", + {}, + { + "Accept": "application/json", + "api_key": "invalidKey" + } + ], + "response": { + "response": { + "data": { + "msg": "Invalid API key", + "code": "Success", + "params": { + "endpoint": "/api/users/byUserId/rudder3" + } + }, + "status": 401 + } + } + } + ], + [ + { + "type": "delete", + "reqParams": [ + "https://api.iterable.com/api/users/byUserId/rudder5", + {}, + { + "Accept": "application/json", + "api_key": "dummyApiKey" + } + ], + "response": { + "response": { + "data": { + "msg": "All users associated with rudder5 were successfully deleted", + "code": "Success", + "params": null + }, + "status": 200 + } + } + }, + { + "type": "delete", + "reqParams": [ + "https://api.iterable.com/api/users/byUserId/rudder6", + {}, + { + "Accept": "application/json", + "api_key": "dummyApiKey" + } + ], + "response": { + "response": { + "data": { + "msg": "All users associated with rudder6 were successfully deleted", + "code": "Success", + "params": null + }, + "status": 200 + } + } + } + ] +] diff --git a/test/deleteUsers/data/mp/handler_input.json b/test/deleteUsers/data/mp/handler_input.json deleted file mode 100644 index 17bf5818c2..0000000000 --- a/test/deleteUsers/data/mp/handler_input.json +++ /dev/null @@ -1,3155 +0,0 @@ -[ - { - "request": { - "body": [ - { - "destType": "MP", - "userAttributes": [ - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - } - ], - "config": { - "token": "testToken", - "prefixProperties": true, - "useNativeSDK": false - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "MP", - "userAttributes": [ - { - "userId": "rudder1" - }, - { - "userId": "rudder1" - } - ], - "config": { - "token": "testToken", - "prefixProperties": true, - "useNativeSDK": false - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "MP", - "userAttributes": [ - { - "userId": "test_user_id" - }, - { - "userId": "user_sdk2" - } - ], - "config": { - "apiKey": "dummyApiKey", - "prefixProperties": true, - "useNativeSDK": false - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "MP", - "userAttributes": [ - { - "name": "test1" - } - ], - "config": { - "token": "testToken", - "prefixProperties": true, - "useNativeSDK": false - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "MP", - "userAttributes": [ - { - "userId": "rudder1" - }, - { - "userId": "rudder2" - }, - { - "userId": "rudder3" - } - ], - "config": { - "token": "test_token", - "prefixProperties": true, - "useNativeSDK": false, - "userDeletionApi": "task", - "gdprApiToken": "test_gdpr_token" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "MP", - "userAttributes": [ - { - "userId": "rudder1" - } - ], - "config": { - "token": "test_token", - "prefixProperties": true, - "useNativeSDK": false, - "userDeletionApi": "task", - "dataResidency": "eu" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "MP", - "userAttributes": [ - { - "userId": "rudder1" - } - ], - "config": { - "token": "test_token", - "prefixProperties": true, - "useNativeSDK": false, - "dataResidency": "eu" - } - } - ] - } - } -] diff --git a/test/deleteUsers/data/mp/handler_output.json b/test/deleteUsers/data/mp/handler_output.json deleted file mode 100644 index ddf8387375..0000000000 --- a/test/deleteUsers/data/mp/handler_output.json +++ /dev/null @@ -1,44 +0,0 @@ -[ - [ - { - "statusCode": 400, - "error": "User deletion request failed for `delete profile` api" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ], - [ - { - "statusCode": 400, - "error": "API Token is a required field for user deletion" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ], - [ - { - "statusCode": 400, - "error": "GDPR API Token is a required field for creating deletion task in mixpanel" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ] -] diff --git a/test/deleteUsers/data/mp/nw_client_data.json b/test/deleteUsers/data/mp/nw_client_data.json deleted file mode 100644 index 7a045d9065..0000000000 --- a/test/deleteUsers/data/mp/nw_client_data.json +++ /dev/null @@ -1,6159 +0,0 @@ -[ - [ - { - "type": "post", - "reqParams": [ - "https://api.mixpanel.com/engage", - [ - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - } - ], - { - "Content-Type": "application/json", - "Accept": "text/plain" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "code": 400, - "message": "Bad Req", - "status": "Fail Case" - }, - "status": 400 - } - } - }, - { - "type": "post", - "reqParams": [ - "https://api.mixpanel.com/engage", - [ - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - } - ], - { - "Content-Type": "application/json", - "Accept": "text/plain" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "1" - } - } - } - ], - { - "type": "post", - "reqParams": [ - "https://api.mixpanel.com/engage", - [ - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - }, - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - } - ], - { - "Content-Type": "application/json", - "Accept": "text/plain" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "1" - } - } - }, - [ - { - "type": "post", - "reqParams": [ - "https://mixpanel.com/api/app/data-deletions/v3.0/?token=test_token", - { - "distinct_ids": ["rudder1", "rudder3"], - "compliance_type": "CCPA" - }, - { - "Content-Type": "application/json", - "Authorization": "Bearer test_gdpr_token" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "1" - } - } - }, - { - "type": "post", - "reqParams": [ - "https://mixpanel.com/api/app/data-deletions/v3.0/?token=test_token", - { - "distinct_ids": ["rudder2"], - "compliance_type": "GDPR" - }, - { - "Content-Type": "application/json", - "Authorization": "Bearer test_gdpr_token" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "1" - } - } - } - ], - { - "type": "post", - "reqParams": [ - "https://api-eu.mixpanel.com/engage", - [ - { - "$distinct_id": "rudder1", - "$token": "dummyAccessToken", - "$delete": null, - "$ignore_alias": true - } - ], - { - "Content-Type": "application/json", - "Accept": "text/plain" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": "1" - } - } - } -] diff --git a/test/deleteUsers/data/sendgrid/handler_input.json b/test/deleteUsers/data/sendgrid/handler_input.json deleted file mode 100644 index 253657dbde..0000000000 --- a/test/deleteUsers/data/sendgrid/handler_input.json +++ /dev/null @@ -1,921 +0,0 @@ -[ - { - "request": { - "body": [ - { - "destType": "SENDGRID", - "userAttributes": [ - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - } - ], - "config": { - "apiKey": "1234" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "SENDGRID", - "userAttributes": [ - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - }, - { - "userId": "test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id" - }, - { - "userId": "user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2" - } - ], - "config": { - "apiKey": "1234" - } - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "SENDGRID", - "userAttributes": [ - { - "userId": "eab57ccf-6322-498e-9338-7761c6dc0656" - }, - { - "userId": "47983ca9-7cc6-4942-8ff0-ac443g95658d" - } - ], - "config": {} - } - ] - } - }, - { - "request": { - "body": [ - { - "destType": "SENDGRID", - "userAttributes": { - "userId": "eab57ccf-6322-498e-9338-7761c6dc0656" - }, - "config": { - "apiKey": "1234" - } - } - ] - } - } -] diff --git a/test/deleteUsers/data/sendgrid/handler_output.json b/test/deleteUsers/data/sendgrid/handler_output.json deleted file mode 100644 index 201821f50a..0000000000 --- a/test/deleteUsers/data/sendgrid/handler_output.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - [ - { - "statusCode": 400, - "error": "User deletion request failed" - } - ], - [ - { - "statusCode": 200, - "status": "successful" - } - ], - [ - { - "statusCode": 400, - "error": "apiKey is required for deleting user" - } - ], - [ - { - "statusCode": 400, - "error": "userAttributes is not an array" - } - ] -] diff --git a/test/deleteUsers/data/sendgrid/nw_client_data.json b/test/deleteUsers/data/sendgrid/nw_client_data.json deleted file mode 100644 index e6bc96bb7f..0000000000 --- a/test/deleteUsers/data/sendgrid/nw_client_data.json +++ /dev/null @@ -1,117 +0,0 @@ -[ - [ - { - "type": "delete", - "reqParams": [ - "https://api.sendgrid.com/v3/marketing/contacts?ids=[batch1]", - { - "Authorization": "Bearer 1234" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - "message": { - "job_id": "bb33b1f9-e7d6-4a6c-bf1c-a2143275e257" - } - } - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.sendgrid.com/v3/marketing/contacts?ids=[batch2]", - { - "Authorization": "Bearer 1234" - } - ], - "response": { - "code": 400, - "statusText": "fail", - "response": { - "data": { - "code": 400, - "message": "Bad Req", - "status": "Fail Case" - }, - "status": 400 - } - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.sendgrid.com/v3/marketing/contacts?ids=[batch3]", - { - "Authorization": "Bearer 1234" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": { - "job_id": "bb33b1f9-e7d6-4a6c-bf1c-a2143275e257" - } - } - } - } - ], - [ - { - "type": "delete", - "reqParams": [ - "https://api.sendgrid.com/v3/marketing/contacts?ids=[batch1]", - { - "Authorization": "Bearer 1234" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - "message": { - "job_id": "bb33b1f9-e7d6-4a6c-bf1c-a2143275e257" - } - } - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.sendgrid.com/v3/marketing/contacts?ids=[batch2]", - { - "Authorization": "Bearer 1234" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": { - "job_id": "bb33b1f9-e7d6-4a6c-bf1c-a2143275e257" - } - } - } - }, - { - "type": "delete", - "reqParams": [ - "https://api.sendgrid.com/v3/marketing/contacts?ids=[batch3]", - { - "Authorization": "Bearer 1234" - } - ], - "response": { - "status": 200, - "statusText": "OK", - "data": { - " message": { - "job_id": "bb33b1f9-e7d6-4a6c-bf1c-a2143275e257" - } - } - } - } - ] -] diff --git a/test/deleteUsers/deleteUsers.test.ts b/test/deleteUsers/deleteUsers.test.ts deleted file mode 100644 index 18cebc7085..0000000000 --- a/test/deleteUsers/deleteUsers.test.ts +++ /dev/null @@ -1,67 +0,0 @@ -const name = 'DeleteUsers'; -import logger from '../../src/logger'; -import { formAxiosMock, validateMockAxiosClientReqParams } from '../__mocks__/gen-axios.mock'; -const deleteUserDestinations = [ - 'am', - 'braze', - 'intercom', - 'mp', - 'af', - 'clevertap', - 'engage', - 'ga', - 'sendgrid', -]; -// Note: Useful for troubleshooting not to be used in production -const exclusionDestList: string[] = []; -import RegulationController from '../../src/controllers/regulation'; - -// delete user tests -deleteUserDestinations - .filter((d) => !exclusionDestList.includes(d)) - .forEach((destination) => { - const inputData = require(`./data/${destination}/handler_input.json`); - const expectedData = require(`./data/${destination}/handler_output.json`); - - let axiosResponses; - describe(`${name} Tests: ${destination}`, () => { - jest.unmock('axios'); - beforeAll(() => { - try { - axiosResponses = require(`./data/${destination}/nw_client_data.json`); - } catch (error) { - // Do nothing - logger.error(`Error while reading /${destination}/nw_client_data.json: ${error}`); - } - if (Array.isArray(axiosResponses)) { - formAxiosMock(axiosResponses); - } else { - // backward compatibility - jest.mock('axios'); - } - }); - - inputData.forEach((input, index) => { - it(`Payload - ${index}`, async () => { - try { - input.get = jest.fn((destInfoKey) => { - return input.getValue && input.getValue[destInfoKey]; - }); - - const output = await RegulationController.deleteUsers(input); - // validate the axios arguments - if (Array.isArray(axiosResponses) && Array.isArray(axiosResponses[index])) { - axiosResponses[index].forEach((axsRsp) => { - validateMockAxiosClientReqParams({ - resp: axsRsp, - }); - }); - } - expect(output.body).toEqual(expectedData[index]); - } catch (error: any) { - expect(error.message).toEqual(expectedData[index].error); - } - }); - }); - }); - }); diff --git a/test/integrations/component.test.ts b/test/integrations/component.test.ts index 374649dfad..5e011e4115 100644 --- a/test/integrations/component.test.ts +++ b/test/integrations/component.test.ts @@ -1,21 +1,51 @@ import { join } from 'path'; import Koa from 'koa'; import request from 'supertest'; +// Mocking of axios calls +import axios from 'axios'; +// new-library we are using import bodyParser from 'koa-bodyparser'; import { Command } from 'commander'; import { createHttpTerminator } from 'http-terminator'; -import { TestCaseData } from './testTypes'; +import { MockHttpCallsData, TestCaseData } from './testTypes'; import { applicationRoutes } from '../../src/routes/index'; -import { getTestDataFilePaths, getTestData } from './testUtils'; -import tags from '../../src/v0/util/tags'; +import MockAxiosAdapter from 'axios-mock-adapter'; +import { + getTestDataFilePaths, + getTestData, + getMockHttpCallsData, + getAllTestMockDataFilePaths, + addMock, +} from './testUtils'; +import tags, { FEATURES } from '../../src/v0/util/tags'; import { Server } from 'http'; +import { appendFileSync } from 'fs'; +import { responses } from '../testHelper'; +import utils from '../../src/v0/util'; +import isMatch from 'lodash/isMatch'; // To run single destination test cases // npm run test:ts -- component --destination=adobe_analytics + +// Use below command to generate mocks +// npm run test:ts -- component --destination=zendesk --generate=true +// npm run test:ts:component:generateNwMocks -- --destination=zendesk const command = new Command(); command.allowUnknownOption().option('-d, --destination ', 'Enter Destination Name').parse(); +// This option will only work when destination option is also provided +command + .allowUnknownOption() + .option('-g, --generate ', 'Enter "true" If you want to generate network file') + .parse(); const opts = command.opts(); +if (opts.generate === 'true' && !opts.destination) { + throw new Error('Invalid option, generate should be true for a destination'); +} + +if (opts.generate === 'true') { + process.env.GEN_AXIOS_FOR_TESTS = 'true'; +} let server: Server; @@ -31,9 +61,38 @@ beforeAll(async () => { }); afterAll(async () => { + if (opts.generate === 'true') { + const callsDataStr = responses.join('\n'); + const calls = ` + export const networkCallsData = [ + ${callsDataStr} + ] + `; + appendFileSync(join(__dirname, 'destinations', opts.destination, 'network.ts'), calls); + } await createHttpTerminator({ server }).terminate(); }); +let mock; +if (!opts.generate || opts.generate === 'false') { + // unmock already existing axios-mocking + mock = new MockAxiosAdapter(axios, { onNoMatch: 'passthrough' }); + const registerAxiosMocks = (axiosMocks: MockHttpCallsData[]) => { + axiosMocks.forEach((axiosMock) => addMock(mock, axiosMock)); + }; + // // all the axios requests will be stored in this map + const allTestMockDataFilePaths = getAllTestMockDataFilePaths(__dirname, opts.destination); + const allAxiosRequests = allTestMockDataFilePaths + .filter((d) => !d.includes('/af/')) + .map((currPath) => { + const mockNetworkCallsData: MockHttpCallsData[] = getMockHttpCallsData(currPath); + return mockNetworkCallsData; + }) + .flat(); + registerAxiosMocks(allAxiosRequests); +} + +// END const rootDir = __dirname; const allTestDataFilePaths = getTestDataFilePaths(rootDir, opts.destination); const DEFAULT_VERSION = 'v0'; @@ -65,7 +124,7 @@ const testRoute = async (route, tcData: TestCaseData) => { const outputResp = tcData.output.response || ({} as any); expect(response.status).toEqual(outputResp.status); - if (outputResp && outputResp.body) { + if (outputResp?.body) { expect(response.body).toEqual(outputResp.body); } @@ -87,7 +146,7 @@ const destinationTestHandler = async (tcData: TestCaseData) => { route = `/${join(tcData.version || DEFAULT_VERSION, 'destinations', tcData.name, 'proxy')}`; break; case tags.FEATURES.USER_DELETION: - route = 'deleteUsers'; + route = '/deleteUsers'; break; case tags.FEATURES.PROCESSOR: // Processor transformation @@ -114,8 +173,14 @@ const sourceTestHandler = async (tcData) => { // Trigger the test suites describe.each(allTestDataFilePaths)('%s Tests', (testDataPath) => { + beforeEach(() => { + jest.clearAllMocks(); + }); + // add special mocks for specific destinations const testData: TestCaseData[] = getTestData(testDataPath); test.each(testData)('$name - $module - $feature -> $description', async (tcData) => { + tcData?.mockFns?.(mock); + switch (tcData.module) { case tags.MODULES.DESTINATION: await destinationTestHandler(tcData); diff --git a/test/integrations/destinations/active_campaign/network.ts b/test/integrations/destinations/active_campaign/network.ts new file mode 100644 index 0000000000..34834096b1 --- /dev/null +++ b/test/integrations/destinations/active_campaign/network.ts @@ -0,0 +1,1966 @@ +export const networkCallsData = [ + { + httpReq: { + data: { + contact: { + email: 'jamesDoe@gmail.com', + firstName: 'James', + lastName: 'Doe', + phone: '92374162212', + }, + }, + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contact/sync', + }, + httpRes: { + data: { + contact: { + cdate: '2018-09-28T13:50:41-05:00', + email: 'jamesDoe@gmail.com', + id: '2', + links: { + bounceLogs: 'https://:account.api-us1.com/api/:version/contacts/113/bounceLogs', + contactAutomations: + 'https://:account.api-us1.com/api/:version/contacts/113/contactAutomations', + contactData: 'https://:account.api-us1.com/api/:version/contacts/113/contactData', + contactDeals: 'https://:account.api-us1.com/api/:version/contacts/113/contactDeals', + contactGoals: 'https://:account.api-us1.com/api/:version/contacts/113/contactGoals', + contactLists: 'https://:account.api-us1.com/api/:version/contacts/113/contactLists', + contactLogs: 'https://:account.api-us1.com/api/:version/contacts/113/contactLogs', + contactTags: 'https://:account.api-us1.com/api/:version/contacts/113/contactTags', + deals: 'https://:account.api-us1.com/api/:version/contacts/113/deals', + fieldValues: 'https://:account.api-us1.com/api/:version/contacts/113/fieldValues', + geoIps: 'https://:account.api-us1.com/api/:version/contacts/113/geoIps', + notes: 'https://:account.api-us1.com/api/:version/contacts/113/notes', + organization: 'https://:account.api-us1.com/api/:version/contacts/113/organization', + plusAppend: 'https://:account.api-us1.com/api/:version/contacts/113/plusAppend', + scoreValues: 'https://:account.api-us1.com/api/:version/contacts/113/scoreValues', + trackingLogs: 'https://:account.api-us1.com/api/:version/contacts/113/trackingLogs', + }, + organization: '', + orgid: '', + udate: '2018-09-28T13:50:41-05:00', + }, + fieldValues: [ + { + cdate: '2020-08-01T10:54:59-05:00', + contact: '113', + field: '1', + id: '11797', + links: { + field: 'https://:account.api-us1.com/api/3/fieldValues/11797/field', + owner: 'https://:account.api-us1.com/api/3/fieldValues/11797/owner', + }, + owner: '113', + udate: '2020-08-01T14:13:34-05:00', + value: 'The Value for First Field', + }, + { + cdate: '2020-08-01T10:54:59-05:00', + contact: '113', + field: '6', + id: '11798', + links: { + field: 'https://:account.api-us1.com/api/3/fieldValues/11798/field', + owner: 'https://:account.api-us1.com/api/3/fieldValues/11798/owner', + }, + owner: '113', + udate: '2020-08-01T14:13:34-05:00', + value: '2008-01-20', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/tags?limit=100', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + data: { tag: { description: '', tag: 'Test_User', tagType: 'contact' } }, + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/tags', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + description: '', + id: 1, + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + tag: 'Test_User', + tagType: 'contact', + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + data: { tag: { description: '', tag: 'Interested_User', tagType: 'contact' } }, + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/tags', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + description: '', + id: 2, + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + tag: 'Interested_User', + tagType: 'contact', + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: '5' } }, + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 3, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: '5', + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: 1 } }, + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 4, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: 1, + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: 2 } }, + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 5, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: 2, + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactList: { contact: '2', list: 2, status: '1' } }, + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactLists', + }, + httpRes: { data: { contactList: { contact: '2', list: 2, status: '1' } }, status: 200 }, + }, + { + httpReq: { + data: { contactList: { contact: '2', list: 3, status: '2' } }, + headers: { + 'Api-Token': 'dummyApiToken', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactLists', + }, + httpRes: { data: { contactList: { contact: '2', list: 3, status: '2' } }, status: 200 }, + }, + { + httpReq: { + headers: { Accept: 'application/json, text/plain, */*', 'Api-Token': 'dummyApiToken' }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/fields?limit=100', + }, + httpRes: { + data: { + fieldOptions: [], + fieldRels: [], + fields: [ + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Random description', + id: '4', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Random', + type: 'multivalue', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Likes description', + id: '3', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Likes', + type: 'multivalue', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:43:38-06:00', + cols: '0', + defval: null, + descript: null, + id: '2', + isrequired: '0', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/2/options', + relations: 'https://:account.api-us1.com/api/:version/fields/2/relations', + }, + options: [], + ordernum: '2', + perstag: 'ANOTHER_TEST_TITLE', + relations: [], + rows: '0', + service: '', + show_in_list: '0', + title: 'Another Test Title', + type: '', + udate: '2018-11-15T21:43:38-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Country description', + id: '1', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Country', + type: 'textarea', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Office description', + id: '0', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Office', + type: 'textarea', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + ], + meta: { total: '4' }, + }, + status: 200, + }, + }, + { + httpReq: { + data: { + contact: { + email: 'jamesDoe@gmail.com', + firstName: 'James', + lastName: 'Doe', + phone: '92374162212', + }, + }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contact/sync', + }, + httpRes: { + data: { + contact: { + cdate: '2018-09-28T13:50:41-05:00', + email: 'jamesDoe@gmail.com', + id: '2', + links: { + bounceLogs: 'https://:account.api-us1.com/api/:version/contacts/113/bounceLogs', + contactAutomations: + 'https://:account.api-us1.com/api/:version/contacts/113/contactAutomations', + contactData: 'https://:account.api-us1.com/api/:version/contacts/113/contactData', + contactDeals: 'https://:account.api-us1.com/api/:version/contacts/113/contactDeals', + contactGoals: 'https://:account.api-us1.com/api/:version/contacts/113/contactGoals', + contactLists: 'https://:account.api-us1.com/api/:version/contacts/113/contactLists', + contactLogs: 'https://:account.api-us1.com/api/:version/contacts/113/contactLogs', + contactTags: 'https://:account.api-us1.com/api/:version/contacts/113/contactTags', + deals: 'https://:account.api-us1.com/api/:version/contacts/113/deals', + fieldValues: 'https://:account.api-us1.com/api/:version/contacts/113/fieldValues', + geoIps: 'https://:account.api-us1.com/api/:version/contacts/113/geoIps', + notes: 'https://:account.api-us1.com/api/:version/contacts/113/notes', + organization: 'https://:account.api-us1.com/api/:version/contacts/113/organization', + plusAppend: 'https://:account.api-us1.com/api/:version/contacts/113/plusAppend', + scoreValues: 'https://:account.api-us1.com/api/:version/contacts/113/scoreValues', + trackingLogs: 'https://:account.api-us1.com/api/:version/contacts/113/trackingLogs', + }, + organization: '', + orgid: '', + udate: '2018-09-28T13:50:41-05:00', + }, + fieldValues: [ + { + cdate: '2020-08-01T10:54:59-05:00', + contact: '113', + field: '1', + id: '11797', + links: { + field: 'https://:account.api-us1.com/api/3/fieldValues/11797/field', + owner: 'https://:account.api-us1.com/api/3/fieldValues/11797/owner', + }, + owner: '113', + udate: '2020-08-01T14:13:34-05:00', + value: 'The Value for First Field', + }, + { + cdate: '2020-08-01T10:54:59-05:00', + contact: '113', + field: '6', + id: '11798', + links: { + field: 'https://:account.api-us1.com/api/3/fieldValues/11798/field', + owner: 'https://:account.api-us1.com/api/3/fieldValues/11798/owner', + }, + owner: '113', + udate: '2020-08-01T14:13:34-05:00', + value: '2008-01-20', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactList: { contact: '2', list: 2, status: '1' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactLists', + }, + httpRes: { data: { contactList: { contact: '2', list: 2, status: '1' } }, status: 200 }, + }, + { + httpReq: { + data: { contactList: { contact: '2', list: 3, status: '2' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactLists', + }, + httpRes: { data: { contactList: { contact: '2', list: 3, status: '2' } }, status: 200 }, + }, + { + httpReq: { + headers: { Accept: 'application/json, text/plain, */*', 'Api-Token': 'dummyApiKey' }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/fields?limit=100', + }, + httpRes: { + data: { + fieldOptions: [], + fieldRels: [], + fields: [ + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Random description', + id: '4', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Random', + type: 'multivalue', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Likes description', + id: '3', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Likes', + type: 'multivalue', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:43:38-06:00', + cols: '0', + defval: null, + descript: null, + id: '2', + isrequired: '0', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/2/options', + relations: 'https://:account.api-us1.com/api/:version/fields/2/relations', + }, + options: [], + ordernum: '2', + perstag: 'ANOTHER_TEST_TITLE', + relations: [], + rows: '0', + service: '', + show_in_list: '0', + title: 'Another Test Title', + type: '', + udate: '2018-11-15T21:43:38-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Country description', + id: '1', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Country', + type: 'textarea', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Office description', + id: '0', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Office', + type: 'textarea', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + ], + meta: { total: '4' }, + }, + status: 200, + }, + }, + { + httpReq: { + data: { + contact: { + email: 'jamesDoe@gmail.com', + firstName: 'James', + lastName: 'Doe', + phone: '92374162212', + }, + }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contact/sync', + }, + httpRes: { + data: { + contact: { + cdate: '2018-09-28T13:50:41-05:00', + email: 'jamesDoe@gmail.com', + id: '2', + links: { + bounceLogs: 'https://:account.api-us1.com/api/:version/contacts/113/bounceLogs', + contactAutomations: + 'https://:account.api-us1.com/api/:version/contacts/113/contactAutomations', + contactData: 'https://:account.api-us1.com/api/:version/contacts/113/contactData', + contactDeals: 'https://:account.api-us1.com/api/:version/contacts/113/contactDeals', + contactGoals: 'https://:account.api-us1.com/api/:version/contacts/113/contactGoals', + contactLists: 'https://:account.api-us1.com/api/:version/contacts/113/contactLists', + contactLogs: 'https://:account.api-us1.com/api/:version/contacts/113/contactLogs', + contactTags: 'https://:account.api-us1.com/api/:version/contacts/113/contactTags', + deals: 'https://:account.api-us1.com/api/:version/contacts/113/deals', + fieldValues: 'https://:account.api-us1.com/api/:version/contacts/113/fieldValues', + geoIps: 'https://:account.api-us1.com/api/:version/contacts/113/geoIps', + notes: 'https://:account.api-us1.com/api/:version/contacts/113/notes', + organization: 'https://:account.api-us1.com/api/:version/contacts/113/organization', + plusAppend: 'https://:account.api-us1.com/api/:version/contacts/113/plusAppend', + scoreValues: 'https://:account.api-us1.com/api/:version/contacts/113/scoreValues', + trackingLogs: 'https://:account.api-us1.com/api/:version/contacts/113/trackingLogs', + }, + organization: '', + orgid: '', + udate: '2018-09-28T13:50:41-05:00', + }, + fieldValues: [ + { + cdate: '2020-08-01T10:54:59-05:00', + contact: '113', + field: '1', + id: '11797', + links: { + field: 'https://:account.api-us1.com/api/3/fieldValues/11797/field', + owner: 'https://:account.api-us1.com/api/3/fieldValues/11797/owner', + }, + owner: '113', + udate: '2020-08-01T14:13:34-05:00', + value: 'The Value for First Field', + }, + { + cdate: '2020-08-01T10:54:59-05:00', + contact: '113', + field: '6', + id: '11798', + links: { + field: 'https://:account.api-us1.com/api/3/fieldValues/11798/field', + owner: 'https://:account.api-us1.com/api/3/fieldValues/11798/owner', + }, + owner: '113', + udate: '2020-08-01T14:13:34-05:00', + value: '2008-01-20', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/tags?limit=100', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + data: { tag: { description: '', tag: 'Test_User', tagType: 'contact' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/tags', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + description: '', + id: 6, + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + tag: 'Test_User', + tagType: 'contact', + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + data: { tag: { description: '', tag: 'Interested_User', tagType: 'contact' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/tags', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + description: '', + id: 7, + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + tag: 'Interested_User', + tagType: 'contact', + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: '5' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 8, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: '5', + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: 6 } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 9, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: 6, + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: 7 } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 10, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: 7, + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactList: { contact: '2', list: 2, status: '1' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactLists', + }, + httpRes: { data: { contactList: { contact: '2', list: 2, status: '1' } }, status: 200 }, + }, + { + httpReq: { + data: { contactList: { contact: '2', list: 3, status: '2' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactLists', + }, + httpRes: { data: { contactList: { contact: '2', list: 3, status: '2' } }, status: 200 }, + }, + { + httpReq: { + headers: { Accept: 'application/json, text/plain, */*', 'Api-Token': 'dummyApiKey' }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/fields?limit=100', + }, + httpRes: { + data: { + fieldOptions: [], + fieldRels: [], + fields: [ + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Random description', + id: '4', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Random', + type: 'multivalue', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Likes description', + id: '3', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Likes', + type: 'multivalue', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:43:38-06:00', + cols: '0', + defval: null, + descript: null, + id: '2', + isrequired: '0', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/2/options', + relations: 'https://:account.api-us1.com/api/:version/fields/2/relations', + }, + options: [], + ordernum: '2', + perstag: 'ANOTHER_TEST_TITLE', + relations: [], + rows: '0', + service: '', + show_in_list: '0', + title: 'Another Test Title', + type: '', + udate: '2018-11-15T21:43:38-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Country description', + id: '1', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Country', + type: 'textarea', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Office description', + id: '0', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Office', + type: 'textarea', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + ], + meta: { total: '4' }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + 'Api-Token': 'dummyApiKey', + + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/eventTrackingEvents', + }, + httpRes: { + data: { + eventTrackingEvents: [{ name: '__pagevisit' }, { name: '__redir' }], + meta: { total: 2 }, + }, + status: 200, + }, + }, + { + httpReq: { + data: { eventTrackingEvent: { name: 'ScreenViewed' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/eventTrackingEvents', + }, + httpRes: { data: { eventTrackingEvent: { name: 'ScreenViewed' } }, status: 201 }, + }, + { + httpReq: { + headers: { 'Api-Token': 'dummyApiKey', Accept: 'application/json, text/plain, */*' }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/eventTrackingEvents', + }, + httpRes: { + data: { + eventTrackingEvents: [{ name: '__pagevisit' }, { name: '__redir' }], + meta: { total: 2 }, + }, + status: 200, + }, + }, + { + httpReq: { + data: { eventTrackingEvent: { name: 'Tracking Action' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/eventTrackingEvents', + }, + httpRes: { data: { eventTrackingEvent: { name: 'Tracking Action' } }, status: 201 }, + }, + { + httpReq: { + data: { contact: { email: 'jamesDoe@gmail.com', phone: '92374162212' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contact/sync', + }, + httpRes: { + data: { + contact: { + cdate: '2018-09-28T13:50:41-05:00', + email: 'jamesDoe@gmail.com', + id: '2', + links: { + bounceLogs: 'https://:account.api-us1.com/api/:version/contacts/113/bounceLogs', + contactAutomations: + 'https://:account.api-us1.com/api/:version/contacts/113/contactAutomations', + contactData: 'https://:account.api-us1.com/api/:version/contacts/113/contactData', + contactDeals: 'https://:account.api-us1.com/api/:version/contacts/113/contactDeals', + contactGoals: 'https://:account.api-us1.com/api/:version/contacts/113/contactGoals', + contactLists: 'https://:account.api-us1.com/api/:version/contacts/113/contactLists', + contactLogs: 'https://:account.api-us1.com/api/:version/contacts/113/contactLogs', + contactTags: 'https://:account.api-us1.com/api/:version/contacts/113/contactTags', + deals: 'https://:account.api-us1.com/api/:version/contacts/113/deals', + fieldValues: 'https://:account.api-us1.com/api/:version/contacts/113/fieldValues', + geoIps: 'https://:account.api-us1.com/api/:version/contacts/113/geoIps', + notes: 'https://:account.api-us1.com/api/:version/contacts/113/notes', + organization: 'https://:account.api-us1.com/api/:version/contacts/113/organization', + plusAppend: 'https://:account.api-us1.com/api/:version/contacts/113/plusAppend', + scoreValues: 'https://:account.api-us1.com/api/:version/contacts/113/scoreValues', + trackingLogs: 'https://:account.api-us1.com/api/:version/contacts/113/trackingLogs', + }, + organization: '', + orgid: '', + udate: '2018-09-28T13:50:41-05:00', + }, + fieldValues: [ + { + cdate: '2020-08-01T10:54:59-05:00', + contact: '113', + field: '1', + id: '11797', + links: { + field: 'https://:account.api-us1.com/api/3/fieldValues/11797/field', + owner: 'https://:account.api-us1.com/api/3/fieldValues/11797/owner', + }, + owner: '113', + udate: '2020-08-01T14:13:34-05:00', + value: 'The Value for First Field', + }, + { + cdate: '2020-08-01T10:54:59-05:00', + contact: '113', + field: '6', + id: '11798', + links: { + field: 'https://:account.api-us1.com/api/3/fieldValues/11798/field', + owner: 'https://:account.api-us1.com/api/3/fieldValues/11798/owner', + }, + owner: '113', + udate: '2020-08-01T14:13:34-05:00', + value: '2008-01-20', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/tags?limit=100', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + data: { tag: { description: '', tag: 'Test_User', tagType: 'contact' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/tags', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + description: '', + id: 11, + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + tag: 'Test_User', + tagType: 'contact', + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + data: { tag: { description: '', tag: 'Interested_User', tagType: 'contact' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/tags', + }, + httpRes: { + data: { + meta: { total: '5' }, + tag: { + cdate: '2018-09-29T19:21:25-05:00', + description: '', + id: 12, + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/16/contactGoalTags', + }, + tag: 'Interested_User', + tagType: 'contact', + }, + tags: [ + { + cdate: '2018-08-17T09:43:15-05:00', + description: '', + id: '1', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/1/contactGoalTags', + }, + tag: 'one', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:16-05:00', + description: '', + id: '2', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/2/contactGoalTags', + }, + tag: 'two', + tagType: 'contact', + }, + { + cdate: '2018-08-17T13:41:18-05:00', + description: '', + id: '3', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/3/contactGoalTags', + }, + tag: 'three', + tagType: 'contact', + }, + { + cdate: '2018-08-28T11:54:36-05:00', + description: '', + id: '4', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/4/contactGoalTags', + }, + tag: 'test1', + tagType: 'template', + }, + { + cdate: '2018-08-28T11:54:38-05:00', + description: '', + id: '5', + links: { + contactGoalTags: 'https://:account.api-us1.com/api/:version/tags/5/contactGoalTags', + }, + tag: 'DIY_Hobby', + tagType: 'template', + }, + ], + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: '5' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 13, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: '5', + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: 11 } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 14, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: 11, + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactTag: { contact: '2', tag: 12 } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactTags', + }, + httpRes: { + data: { + contactTag: { + cdate: '2017-06-08T16:11:53-05:00', + contact: '2', + id: 15, + links: { contact: '/1/contact', tag: '/1/tag' }, + }, + tag: 12, + }, + status: 201, + }, + }, + { + httpReq: { + data: { contactList: { contact: '2', list: 2, status: '1' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactLists', + }, + httpRes: { data: { contactList: { contact: '2', list: 2, status: '1' } }, status: 200 }, + }, + { + httpReq: { + data: { contactList: { contact: '2', list: 3, status: '2' } }, + headers: { + 'Api-Token': 'dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'POST', + + url: 'https://active.campaigns.rudder.com/api/3/contactLists', + }, + httpRes: { data: { contactList: { contact: '2', list: 3, status: '2' } }, status: 200 }, + }, + { + httpReq: { + headers: { Accept: 'application/json, text/plain, */*', 'Api-Token': 'dummyApiKey' }, + + method: 'GET', + + url: 'https://active.campaigns.rudder.com/api/3/fields?limit=100', + }, + httpRes: { + data: { + fieldOptions: [], + fieldRels: [], + fields: [ + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Random description', + id: '4', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Random', + type: 'multivalue', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Likes description', + id: '3', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Likes', + type: 'multivalue', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:43:38-06:00', + cols: '0', + defval: null, + descript: null, + id: '2', + isrequired: '0', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/2/options', + relations: 'https://:account.api-us1.com/api/:version/fields/2/relations', + }, + options: [], + ordernum: '2', + perstag: 'ANOTHER_TEST_TITLE', + relations: [], + rows: '0', + service: '', + show_in_list: '0', + title: 'Another Test Title', + type: '', + udate: '2018-11-15T21:43:38-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Country description', + id: '1', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Country', + type: 'textarea', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + { + cdate: '2018-11-15T21:42:40-06:00', + cols: '2', + defval: 'Defaut Value', + descript: 'Office description', + id: '0', + isrequired: '1', + links: { + options: 'https://:account.api-us1.com/api/:version/fields/1/options', + relations: 'https://:account.api-us1.com/api/:version/fields/1/relations', + }, + options: [], + ordernum: '3', + perstag: 'PERSONALIZEDTAG', + relations: [], + rows: '2', + service: 'google', + show_in_list: '1', + title: 'Office', + type: 'textarea', + udate: '2018-11-15T21:49:52-06:00', + visible: '1', + }, + ], + meta: { total: '4' }, + }, + status: 200, + }, + }, +]; diff --git a/test/integrations/destinations/adj/processor/data.ts b/test/integrations/destinations/adj/processor/data.ts index 97fc3554f2..2c208d0d08 100644 --- a/test/integrations/destinations/adj/processor/data.ts +++ b/test/integrations/destinations/adj/processor/data.ts @@ -2084,7 +2084,7 @@ export const data = [ }, { name: 'adj', - description: 'Test 17', + description: 'Test 18 -> No adverstisingId present', feature: 'processor', module: 'destination', version: 'v0', @@ -2104,7 +2104,6 @@ export const data = [ }, device: { adTrackingEnabled: true, - advertisingId: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', manufacturer: 'Google', model: 'AOSP on IA Emulator', @@ -2160,12 +2159,101 @@ export const data = [ }, }, Config: { - appToken: 'testAppToken', customMappings: [ { from: 'Application Installed', to: '3fdmll' }, { from: 'First Investment', to: 'testEventToken' }, ], - partnerParamsKeys: [], + environment: true, + }, + Enabled: true, + Transformations: [], + IsProcessorEnabled: true, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: 'App Token is not present. Please configure your app token from config dashbaord', + statTags: { + destType: 'ADJ', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'processor', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + { + name: 'adj', + description: 'Test 19 -> No properties object in message body', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + "type": "track", + "event": "Application Installed", + "sentAt": "2022-09-28T20:14:44.995Z", + "userId": "sample_user_id", + "context": { + "device": { + "id": "sample_device_id", + "type": "android", + "advertisingId": "_sample" + }, + "traits": { + "userId": "_sample_uid", + "anonymousId": "_sample_anonid" + } + }, + "timestamp": "2022-09-28T20:14:43.314Z", + "request_ip": "71.189.106.156", + "originalTimestamp": "2022-09-28T20:14:44.995Z" + }, + destination: { + ID: '1i3Em7GMU9xVEiDlZUN8c88BMS9', + Name: 'ADJ', + DestinationDefinition: { + ID: '1i3DeZo6eSUKrS3KzDUqjbBPCDJ', + Name: 'ADJ', + DisplayName: 'Adjust', + Config: { + destConfig: { + android: ['useNativeSDK'], + defaultConfig: ['appToken', 'customMappings', 'delay', 'environment'], + ios: ['useNativeSDK'], + reactnative: ['useNativeSDK'], + }, + excludeKeys: [], + includeKeys: ['appToken', 'customMappings', 'delay'], + supportedSourceTypes: ['android', 'ios', 'reactnative', 'cloud'], + }, + }, + Config: { + appToken: 'testAppToken', + customMappings: [ + { from: 'Application Installed', to: '3fdmll' }], + partnerParamsKeys: [ + { from: 'key1', to: 'partnerParamKey-1' }, + { from: 'key2', to: 'partnerParamKey-2' }, + { from: 'revenue', to: 'price' }, + { from: 'novalue', to: 'check' }, + { from: 'Custom_Val_NA', to: 'Custom_dest' }, + ], environment: true, }, Enabled: true, @@ -2189,28 +2277,21 @@ export const data = [ endpoint: 'https://s2s.adjust.com/event', headers: { Accept: '*/*' }, params: { - callback_params: - '{"key1":"value1","key2":"value2","key3.k4":"v4","key3.k5.k6":"v6","key5[0].k":"v1","key5[1].k":"v2"}', - revenue: 20.38, - android_id: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', - gps_adid: '3f034872-5e28-45a1-9eda-ce22a3e36d1a', - att_status: 3, - tracking_enabled: true, - currency: 'EUR', - ip_address: '[::1]', + event_token: "3fdmll", + ip_address: "71.189.106.156", + android_id: 'sample_device_id', + gps_adid: "_sample", s2s: 1, app_token: 'testAppToken', - event_token: 'testEventToken', environment: 'production', }, body: { JSON: {}, XML: {}, JSON_ARRAY: {}, FORM: {} }, files: {}, - userId: '21e13f4bc7ceddad', + userId: '', }, statusCode: 200, }, ], }, }, - }, -]; + },]; diff --git a/test/integrations/destinations/af/deleteUsers/data.ts b/test/integrations/destinations/af/deleteUsers/data.ts new file mode 100644 index 0000000000..c552b79f67 --- /dev/null +++ b/test/integrations/destinations/af/deleteUsers/data.ts @@ -0,0 +1,302 @@ +import { cloneDeep } from 'lodash'; +import { FEATURES } from '../../../../../src/v0/util/tags'; +import { networkCallsData } from '../network'; +import { addMock } from '../../../testUtils'; +import MockAdapter from 'axios-mock-adapter'; +import utils from '../../../../../src/v0/util'; + +const defaultMockFns = () => { + jest.spyOn(Date.prototype, 'toISOString').mockReturnValue('2023-09-24T11:22:24.018Z'); + jest.spyOn(utils, 'generateUUID').mockReturnValue('97fcd7b2-cc24-47d7-b776-057b7b199513'); +}; + +const requests = [ + { + request: { + body: [ + { + destType: 'AF', + userAttributes: [ + { + userId: 'test_user_id', + appsflyer_id: 'jklhajksfh', + }, + { + userId: 'user_sdk2', + appsflyer_id: 'jklhajksfh', + }, + ], + config: { + devKey: 'ef1d42390426e3f7c90ac78272e74344', + apiToken: 'dummyApiToken', + }, + }, + ], + }, + }, + { + request: { + body: [ + { + destType: 'AF', + userAttributes: [ + { + userId: 'test_user_id', + appsflyer_id: 'jklhajksfh', + }, + { + userId: 'user_sdk2', + appsflyer_id: 'jklhajksfh', + }, + ], + config: { + devKey: 'ef1d42390426e3f7c90ac78272e74344', + appleAppId: '123456789', + statusCallbackUrls: + 'https://examplecontroller.com/opengdpr_callbacks,https://examplecontroller.com/opengdpr_callbacks,https://examplecontroller.com/opengdpr_callbacks,https://examplecontroller.com/opengdpr_callbacks', + apiToken: 'dummyApiToken', + }, + }, + ], + }, + }, + { + request: { + body: [ + { + destType: 'AF', + userAttributes: [ + { + email: 'testUser@testMail.com', + android_advertising_id: '1234', + }, + { + userId: 'user_sdk2', + android_advertising_id: '1234', + }, + ], + config: { + devKey: 'abcde', + appleAppId: 'asdfasdf', + groupTypeTrait: 'email', + groupValueTrait: 'age', + trackProductsOnce: false, + trackRevenuePerProduct: false, + apiToken: 'dummyApiToken', + }, + }, + ], + }, + }, + { + request: { + body: [ + { + destType: 'AF', + userAttributes: [ + { + email: 'testUser@testMail.com', + ios_advertising_id: '1234', + }, + { + userId: 'user_sdk2', + ios_advertising_id: '1234', + }, + ], + config: { + devKey: 'abcde', + androidAppId: 'com.rudder.rs', + groupTypeTrait: 'email', + groupValueTrait: 'age', + trackProductsOnce: false, + trackRevenuePerProduct: false, + apiToken: 'dummyApiToken', + }, + }, + ], + }, + }, + { + request: { + body: [ + { + destType: 'AF', + userAttributes: [ + { + email: 'testUser@testMail.com', + userId: 'user1234', + }, + { + userId: 'user_sdk2', + ios_advertising_id: '1234', + }, + ], + config: { + devKey: 'abcde', + androidAppId: 'com.rudder.rs', + groupTypeTrait: 'email', + groupValueTrait: 'age', + trackProductsOnce: false, + trackRevenuePerProduct: false, + apiToken: 'dummyApiToken', + }, + }, + ], + }, + }, +]; +const resultBodies = [ + [ + { + statusCode: 400, + error: + 'API Token and one of Apple ID or Android App Id are required fields for user deletion', + }, + ], + [ + { + statusCode: 400, + error: 'You can send utmost 3 callBackUrls', + }, + ], + [ + { + statusCode: 400, + error: 'androidAppId is required for android_advertising_id type identifier', + }, + ], + [ + { + statusCode: 400, + error: 'appleAppId is required for ios_advertising_id type identifier', + }, + ], + [ + { + statusCode: 400, + error: + 'none of the possible identityTypes i.e.(ios_advertising_id, android_advertising_id, appsflyer_id) is provided for deletion', + }, + ], +]; +const parentCaseVars = { + name: 'af', + description: 'Test ', + feature: FEATURES.USER_DELETION, + module: 'destination', + version: 'v0', + input: {}, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, +}; +const nonNetworkCases = requests.map((req, index) => { + const testCase = cloneDeep(parentCaseVars); + testCase.description = `Test ${2 + index}`; + testCase.input = req; + testCase.output.response.status = resultBodies[index][0].statusCode; + //@ts-ignore + testCase.output.response.body = resultBodies[index]; + return testCase; +}); + +export const data = [ + { + name: 'af', + description: 'Test 0', + feature: FEATURES.USER_DELETION, + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'AF', + userAttributes: [ + { + userId: 'test_user_id', + android_advertising_id: '1665148898336-5539842602053895577', + }, + ], + config: { + devKey: 'ef1d42390426e3f7c90ac78272e74344', + appleAppId: '123456789', + androidAppId: 'AnAID', + apiToken: 'dummyApiToken', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + mockFns: (mockAdapter: MockAdapter) => { + const nwData = networkCallsData[0]; + addMock(mockAdapter, nwData); + defaultMockFns(); + }, + }, + { + name: 'af', + description: 'Test 1', + feature: FEATURES.USER_DELETION, + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'AF', + userAttributes: [ + { + userId: 'test_user_id', + ios_advertising_id: '1665148898336-5539842602053895577', + }, + ], + config: { + devKey: 'ef1d42390426e3f7c90ac78272e74344', + appleAppId: '123456789', + androidAppId: 'AnAID', + apiToken: 'dummyApiToken', + statusCallbackUrls: 'https://examplecontroller.com/opengdpr_callbacks', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + mockFns: (mockAdapter: MockAdapter) => { + const nwData = networkCallsData[1]; + addMock(mockAdapter, nwData); + defaultMockFns(); + }, + }, + ...nonNetworkCases, +]; diff --git a/test/integrations/destinations/af/network.ts b/test/integrations/destinations/af/network.ts new file mode 100644 index 0000000000..2e9557539e --- /dev/null +++ b/test/integrations/destinations/af/network.ts @@ -0,0 +1,67 @@ +import { JSON_MIME_TYPE } from '../../../../src/v0/util/constant'; + +export const networkCallsData = [ + { + httpReq: { + method: 'post', + url: 'https://hq1.appsflyer.com/api/gdpr/v1/opendsr_request', + headers: { + 'Content-Type': JSON_MIME_TYPE, + + Authorization: 'Bearer dummyApiToken', + }, + data: { + subject_request_type: 'erasure', + subject_identities: [ + { + identity_format: 'raw', + identity_type: 'android_advertising_id', + identity_value: '1665148898336-5539842602053895577', + }, + ], + property_id: 'AnAID', + subject_request_id: '97fcd7b2-cc24-47d7-b776-057b7b199513', + submitted_time: '2023-09-24T11:22:24.018Z', + }, + }, + httpRes: { + data: { + error: { + code: 400, + af_gdpr_code: 'e411', + message: "AppID given in 'property_id' is incorrect or does not belong to your account", + }, + }, + status: 400, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://hq1.appsflyer.com/api/gdpr/v1/opendsr_request', + data: { + subject_request_type: 'erasure', + subject_identities: [ + { + identity_format: 'raw', + identity_type: 'ios_advertising_id', + identity_value: '1665148898336-5539842602053895577', + }, + ], + status_callback_urls: ['https://examplecontroller.com/opengdpr_callbacks'], + property_id: '123456789', + subject_request_id: '97fcd7b2-cc24-47d7-b776-057b7b199513', + submitted_time: '2023-09-24T11:22:24.018Z', + }, + headers: { + 'Content-Type': JSON_MIME_TYPE, + + Authorization: 'Bearer dummyApiToken', + }, + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, +]; diff --git a/test/integrations/destinations/am/deleteUsers/data.ts b/test/integrations/destinations/am/deleteUsers/data.ts new file mode 100644 index 0000000000..bd10a4d7e0 --- /dev/null +++ b/test/integrations/destinations/am/deleteUsers/data.ts @@ -0,0 +1,396 @@ +export const data = [ + { + name: 'am', + description: 'Test 0', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + jobId: '423451324652346', + destType: 'AM', + userAttributes: [ + { + userIderror: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + ], + config: { + apiKey: '1234', + apiSecret: 'abcd', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/am/network.ts b/test/integrations/destinations/am/network.ts new file mode 100644 index 0000000000..81daa29621 --- /dev/null +++ b/test/integrations/destinations/am/network.ts @@ -0,0 +1,209 @@ +const deleteNwData = [ + { + httpReq: { + method: 'post', + url: 'https://amplitude.com/api/2/deletions/users', + data: { + user_ids: [ + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + ], + requester: 'RudderStack', + ignore_invalid_id: 'true', + }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic MTIzNDphYmNk', + }, + }, + httpRes: { + data: { + code: 403, + message: 'HTTP 403: Forbidden (Invalid API Key)', + status: 'Forbidden', + }, + status: 400, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://amplitude.com/api/2/deletions/users', + data: { + user_ids: [ + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + ], + requester: 'RudderStack', + ignore_invalid_id: 'true', + }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic MTIzNDphYmNk', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': 'Nothing scheduled due to invalid amplitude/user ids for app XXXXX', + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://amplitude.com/api/2/deletions/users', + data: { + userIds: ['Batch1'], + }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic MTIzNDphYmNk', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': 'Mocking', + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://amplitude.com/api/2/deletions/users', + data: { + userIds: ['Batch2'], + }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Basic MTIzNDphYmNk', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': 'Mocking', + }, + }, + }, +]; +export const networkCallsData = [...deleteNwData]; diff --git a/test/integrations/destinations/bqstream/router/data.ts b/test/integrations/destinations/bqstream/router/data.ts index 0f6e663ad0..e44ce4af15 100644 --- a/test/integrations/destinations/bqstream/router/data.ts +++ b/test/integrations/destinations/bqstream/router/data.ts @@ -13,66 +13,141 @@ export const data = [ message: { type: 'track', event: 'insert product', - sentAt: '2021-09-08T11:10:45.466Z', userId: 'user12345', - channel: 'web', - context: { - os: { - name: '', - version: '', - }, - app: { - name: 'RudderLabs JavaScript SDK', - build: '1.0.0', - version: '1.1.18', - namespace: 'com.rudderlabs.javascript', - }, - page: { - url: 'http://127.0.0.1:5500/index.html', - path: '/index.html', - title: 'Document', - search: '', - tab_url: 'http://127.0.0.1:5500/index.html', - referrer: '$direct', - initial_referrer: '$direct', - referring_domain: '', - initial_referring_domain: '', - }, - locale: 'en-GB', - screen: { - width: 1536, - height: 960, - density: 2, - innerWidth: 1536, - innerHeight: 776, - }, - traits: {}, - library: { - name: 'RudderLabs JavaScript SDK', - version: '1.1.18', - }, - campaign: {}, - userAgent: - 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', - }, - rudderId: 'fa2994a5-2a81-45fd-9919-fcf5596ad380', - messageId: 'e2d1a383-d9a2-4e03-a9dc-131d153c4d95', - timestamp: '2021-11-15T14:06:42.497+05:30', + properties: { count: 10, productId: 10, productName: 'Product-10', }, - receivedAt: '2021-11-15T14:06:42.497+05:30', - request_ip: '[::1]', anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', - integrations: { - All: true, - }, - originalTimestamp: '2021-09-08T11:10:45.466Z', }, metadata: { jobId: 1, + userId: 'user12345', + }, + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + projectId: 'gc-project-id', + datasetId: 'gc_dataset', + tableId: 'gc_table', + insertId: 'productId', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'bqstream test', + }, + }, + { + message: { + type: 'track', + event: 'insert product', + userId: 'user12345', + properties: { + count: 20, + productId: 20, + productName: 'Product-20', + }, + }, + metadata: { + jobId: 2, + userId: 'user12345', + }, + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + projectId: 'gc-project-id', + datasetId: 'gc_dataset', + tableId: 'gc_table', + insertId: 'productId', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'bqstream test', + }, + }, + { + message: { + type: 'identify', + event: 'insert product', + userId: 'user12345', + traits: { + count: 20, + productId: 20, + productName: 'Product-20', + }, + anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', + }, + metadata: { + jobId: 3, + userId: 'user12345', + }, + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + projectId: 'gc-project-id', + datasetId: 'gc_dataset', + tableId: 'gc_table', + insertId: 'productId', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'bqstream test', + }, + }, + { + message: { + type: 'track', + event: 'insert product', + userId: 'user12345', + properties: { + count: 20, + productId: 20, + productName: 'Product-20', + }, + anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', + }, + metadata: { + jobId: 5, + userId: 'user123', + }, + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + projectId: 'gc-project-id', + datasetId: 'gc_dataset', + tableId: 'gc_table', + insertId: 'productId', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'bqstream test', + }, + }, + { + message: { + type: 'track', + event: 'insert product', + userId: 'user12345', + properties: { + count: 20, + productId: 20, + productName: 'Product-20', + }, + anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', + }, + metadata: { + jobId: 6, + userId: 'user124', }, destination: { Config: { @@ -84,7 +159,7 @@ export const data = [ eventDelivery: true, eventDeliveryTS: 1636965406397, }, - Enabled: true, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', Name: 'bqstream test', }, @@ -93,19 +168,70 @@ export const data = [ message: { type: 'track', event: 'insert product', - sentAt: '2021-09-08T11:10:45.466Z', + userId: 'user12345', - channel: 'web', + }, + metadata: { + jobId: 7, + userId: 'user124', + }, + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + projectId: 'gc-project-id', + datasetId: 'gc_dataset', + tableId: 'gc_table', + insertId: 'productId', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'bqstream test', + }, + }, + { + message: { + type: 'track', + event: 'insert product', + userId: 'user12345', + }, + metadata: { + jobId: 8, + userId: 'user125', + }, + destination: { + Config: { + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + projectId: 'gc-project-id', + datasetId: 'gc_dataset', + tableId: 'gc_table', + insertId: 'productId', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + }, + + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'bqstream test', + }, + }, + { + message: { + type: 'identify', + event: 'insert product', + + userId: 'user12345', + context: { os: { - name: '', + Name: '', version: '', }, app: { - name: 'RudderLabs JavaScript SDK', + Name: 'RudderLabs JavaScript SDK', build: '1.0.0', version: '1.1.18', - namespace: 'com.rudderlabs.javascript', + Namespace: 'com.rudderlabs.javascript', }, page: { url: 'http://127.0.0.1:5500/index.html', @@ -128,31 +254,25 @@ export const data = [ }, traits: {}, library: { - name: 'RudderLabs JavaScript SDK', + Name: 'RudderLabs JavaScript SDK', version: '1.1.18', }, campaign: {}, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36', }, - rudderId: 'fa2994a5-2a81-45fd-9919-fcf5596ad380', - messageId: 'e2d1a383-d9a2-4e03-a9dc-131d153c4d95', - timestamp: '2021-11-15T14:06:42.497+05:30', - properties: { + + traits: { count: 20, productId: 20, productName: 'Product-20', }, receivedAt: '2021-11-15T14:06:42.497+05:30', - request_ip: '[::1]', anonymousId: 'd8b2ed61-7fa5-4ef8-bd92-6a506157c0cf', - integrations: { - All: true, - }, - originalTimestamp: '2021-09-08T11:10:45.466Z', }, metadata: { - jobId: 2, + jobId: 9, + userId: 'user125', }, destination: { Config: { @@ -164,7 +284,7 @@ export const data = [ eventDelivery: true, eventDeliveryTS: 1636965406397, }, - Enabled: true, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', Name: 'bqstream test', }, @@ -181,49 +301,143 @@ export const data = [ body: { output: [ { + batched: true, batchedRequest: { datasetId: 'gc_dataset', projectId: 'gc-project-id', properties: [ { count: 10, + insertId: '10', productId: 10, productName: 'Product-10', - insertId: '10', }, { count: 20, + insertId: '20', productId: 20, productName: 'Product-20', + }, + { + count: 20, insertId: '20', + productId: 20, + productName: 'Product-20', + }, + { + count: 20, + insertId: '20', + productId: 20, + productName: 'Product-20', }, ], tableId: 'gc_table', }, + destination: { + Config: { + datasetId: 'gc_dataset', + eventDelivery: true, + eventDeliveryTS: 1636965406397, + insertId: 'productId', + projectId: 'gc-project-id', + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + tableId: 'gc_table', + }, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'bqstream test', + }, metadata: [ { jobId: 1, + userId: 'user12345', }, { jobId: 2, + userId: 'user12345', + }, + { + jobId: 5, + userId: 'user123', + }, + { + jobId: 6, + userId: 'user124', }, ], - batched: true, statusCode: 200, + }, + { + batched: false, destination: { Config: { - rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', - projectId: 'gc-project-id', datasetId: 'gc_dataset', - tableId: 'gc_table', + eventDelivery: true, + eventDeliveryTS: 1636965406397, insertId: 'productId', + projectId: 'gc-project-id', + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + tableId: 'gc_table', + }, + ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', + Name: 'bqstream test', + }, + error: 'Invalid payload for the destination', + metadata: [ + { + jobId: 7, + userId: 'user124', + }, + { + jobId: 8, + userId: 'user125', + }, + ], + statTags: { + destType: 'BQSTREAM', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, + }, + { + batched: false, + destination: { + Config: { + datasetId: 'gc_dataset', eventDelivery: true, eventDeliveryTS: 1636965406397, + insertId: 'productId', + projectId: 'gc-project-id', + rudderAccountId: '1z8LpaSAuFR9TPWL6fECZfjmRa-', + tableId: 'gc_table', }, - Enabled: true, ID: '1WXjIHpu7ETXgjfiGPW3kCUgZFR', Name: 'bqstream test', }, + + error: 'Message Type not supported: identify', + metadata: [ + { + jobId: 3, + userId: 'user12345', + }, + { + jobId: 9, + userId: 'user125', + }, + ], + statTags: { + destType: 'BQSTREAM', + errorCategory: 'dataValidation', + errorType: 'instrumentation', + feature: 'router', + implementation: 'native', + module: 'destination', + }, + statusCode: 400, }, ], }, diff --git a/test/integrations/destinations/braze/deleteUsers/data.ts b/test/integrations/destinations/braze/deleteUsers/data.ts new file mode 100644 index 0000000000..cad61fd12d --- /dev/null +++ b/test/integrations/destinations/braze/deleteUsers/data.ts @@ -0,0 +1,483 @@ +export const data = [ + { + name: 'braze', + description: 'Test 0', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'BRAZE', + userAttributes: [ + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + ], + config: { + dataCenter: 'US-03', + restApiKey: '1234', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'Test 1', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'BRAZE', + userAttributes: [ + { + userId: 'test_user_id10', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id18', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id51', + }, + ], + config: { + dataCenter: 'US-03', + restApiKey: '1234', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'Test 2', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'BRAZE', + userAttributes: [ + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + ], + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'Config for deletion not present', + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'Test 3', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'BRAZE', + userAttributes: [ + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + ], + config: { + dataCenter: 'US-03', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'data center / api key for deletion not present', + }, + ], + }, + }, + }, + { + name: 'braze', + description: 'Test 4', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'BRAZE', + userAttributes: [ + { + name: 'a', + }, + ], + config: { + restApiKey: 'b1bd90e2-d203-480a-962c-f7bb03ea0afe', + dataCenter: 'US-03', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/braze/network.ts b/test/integrations/destinations/braze/network.ts new file mode 100644 index 0000000000..4dfd5fa2a5 --- /dev/null +++ b/test/integrations/destinations/braze/network.ts @@ -0,0 +1,191 @@ +const deleteNwData = [ + { + httpReq: { + method: 'post', + url: 'https://rest.iad-03.braze.com/users/delete', + data: { + external_ids: [ + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + ], + }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + data: { + code: 400, + message: 'Bad Req', + status: 'Fail Case', + }, + status: 400, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://rest.iad-03.braze.com/users/delete', + data: { + external_ids: [ + 'test_user_id10', + 'user_sdk2', + 'test_user_id18', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + ], + }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + deleted: 50, + message: 'success', + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://rest.iad-03.braze.com/users/delete', + data: { external_ids: ['test_user_id51'] }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': { + deleted: '1', + message: 'success', + }, + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://rest.iad-03.braze.com/users/delete', + data: { + externalIds: ['test_user_id'], + }, + headers: { + 'Content-Type': 'application/json', + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': { + deleted: 1, + message: 'success', + }, + }, + }, + }, +]; +export const networkCallsData = [...deleteNwData]; diff --git a/test/integrations/destinations/canny/data.ts b/test/integrations/destinations/canny/data.ts index dfd6028908..3c6823ca1b 100644 --- a/test/integrations/destinations/canny/data.ts +++ b/test/integrations/destinations/canny/data.ts @@ -1,3 +1,6 @@ +import { enhanceRequestOptions } from '../../../../src/adapters/network'; +import qs from 'qs'; + export const data = [ { name: 'canny', diff --git a/test/integrations/destinations/canny/network.ts b/test/integrations/destinations/canny/network.ts new file mode 100644 index 0000000000..db1b639632 --- /dev/null +++ b/test/integrations/destinations/canny/network.ts @@ -0,0 +1,83 @@ +export const networkCallsData = [ + { + httpReq: { + headers: { + Accept: 'application/json', + 'Content-Type': 'application/x-www-form-urlencoded', + }, + data: 'apiKey=apikey123&email=test%40rudderstack.com', + method: 'POST', + url: 'https://canny.io/api/v1/users/retrieve', + }, + httpRes: { + data: { + data: { + avatarURL: 'https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png', + created: '2022-07-15T11:16:32.648Z', + email: 'test@rudderstack.com', + id: '52d14c90fff7c80abcd12345', + isAdmin: true, + lastActivity: '2022-07-18T14:24:43.632Z', + name: 'Rudder Test', + url: 'https://ruderstack.canny.io/admin/users/dummyUser', + userID: null, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Accept: 'application/json', + 'Content-Type': 'application/x-www-form-urlencoded', + }, + data: 'apiKey=apikey123&email=test%40rudderstack.com', + method: 'POST', + url: 'https://canny.io/api/v1/users/retrieve', + }, + httpRes: { + data: { + data: { + avatarURL: 'https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png', + created: '2022-07-15T11:16:32.648Z', + email: 'test@rudderstack.com', + id: '52d14c90fff7c80abcd12345', + isAdmin: true, + lastActivity: '2022-07-18T14:24:43.632Z', + name: 'Rudder Test', + url: 'https://ruderstack.canny.io/admin/users/dummyUser', + userID: null, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Accept: 'application/json', + 'Content-Type': 'application/x-www-form-urlencoded', + }, + data: 'apiKey=apikey123&email=test%40rudderstack.com', + method: 'POST', + url: 'https://canny.io/api/v1/users/retrieve', + }, + httpRes: { + data: { + data: { + avatarURL: 'https://canny.io/images/cddfd145056cd4bc04132ee0e7de04ee.png', + created: '2022-07-15T11:16:32.648Z', + email: 'test@rudderstack.com', + id: '52d14c90fff7c80abcd12345', + isAdmin: true, + lastActivity: '2022-07-18T14:24:43.632Z', + name: 'Rudder Test', + url: 'https://ruderstack.canny.io/admin/users/dummyUser', + userID: null, + }, + }, + status: 200, + }, + }, +]; diff --git a/test/integrations/destinations/clevertap/deleteUsers/data.ts b/test/integrations/destinations/clevertap/deleteUsers/data.ts new file mode 100644 index 0000000000..c0eb447a53 --- /dev/null +++ b/test/integrations/destinations/clevertap/deleteUsers/data.ts @@ -0,0 +1,495 @@ +export const data = [ + { + name: 'clevertap', + description: 'Test 0', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'CLEVERTAP', + userAttributes: [ + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + ], + config: { + accountId: '476550467', + trackAnonymous: true, + enableObjectIdMapping: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'Project ID and Passcode is required for delete user', + }, + ], + }, + }, + }, + { + name: 'clevertap', + description: 'Test 1', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'CLEVERTAP', + userAttributes: [ + { + email: 'testUser@testMail.com', + }, + { + userId: 'user_sdk2', + }, + ], + config: { + passcode: 'fbee74a147828e2932c701d19dc1f2dcfa4ac0048be3aa3a88d427090a59dc1c0fa002f1', + trackAnonymous: true, + enableObjectIdMapping: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'Project ID and Passcode is required for delete user', + }, + ], + }, + }, + }, + { + name: 'clevertap', + description: 'Test 2', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'CLEVERTAP', + userAttributes: [ + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + ], + config: { + accountId: 'testFail', + passcode: 'tofail', + trackAnonymous: true, + enableObjectIdMapping: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/clevertap/network.ts b/test/integrations/destinations/clevertap/network.ts new file mode 100644 index 0000000000..458d6faba0 --- /dev/null +++ b/test/integrations/destinations/clevertap/network.ts @@ -0,0 +1,175 @@ +const deleteNwData = [ + { + httpReq: { + method: 'post', + url: 'https://api.clevertap.com/1/delete/profiles.json', + data: { + identity: [ + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'user_sdk2', + ], + }, + headers: { + 'Content-Type': 'application/json', + 'X-CleverTap-Account-Id': 'testFail', + 'X-CleverTap-Passcode': 'tofail', + }, + }, + httpRes: { + data: { + code: 400, + message: 'Bad Req', + status: 'Fail Case', + }, + status: 400, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://api.clevertap.com/1/delete/profiles.json', + data: { + identity: [ + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + 'test_user_id', + 'user_sdk2', + ], + }, + headers: { + 'Content-Type': 'application/json', + 'X-CleverTap-Account-Id': 'testFail', + 'X-CleverTap-Passcode': 'tofail', + }, + maxContentLength: 100000000, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': 'rpoxy', + }, + }, + }, +]; +export const networkCallsData = [...deleteNwData]; diff --git a/test/integrations/destinations/engage/deleteUsers/data.ts b/test/integrations/destinations/engage/deleteUsers/data.ts new file mode 100644 index 0000000000..5a6ea9d268 --- /dev/null +++ b/test/integrations/destinations/engage/deleteUsers/data.ts @@ -0,0 +1,241 @@ +export const data = [ + { + name: 'engage', + description: 'Test 0', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'ENGAGE', + userAttributes: [ + { + userId: '1', + }, + { + userId: '2', + }, + { + userId: '3', + }, + ], + config: { + publicKey: 'abcd', + privateKey: 'efgh', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + }, + { + name: 'engage', + description: 'Test 1', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'ENGAGE', + userAttributes: [ + { + userId: '4', + }, + { + userId: '5', + }, + { + userId: '6', + }, + ], + config: { + publicKey: 'abcd', + privateKey: 'efgh', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + }, + { + name: 'engage', + description: 'Test 2', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'ENGAGE', + userAttributes: [ + { + userId: '7', + }, + { + userId: '8', + }, + { + userId: '9', + }, + ], + config: { + publicKey: 'abcd', + privateKey: 'efgh', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + }, + { + name: 'engage', + description: 'Test 3', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'ENGAGE', + userAttributes: [ + { + userId: '12', + }, + ], + config: { + publicKey: 'abcd', + privateKey: 'efgh', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, + { + name: 'engage', + description: 'Test 4', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'ENGAGE', + userAttributes: [ + { + userId: 'userid1', + }, + { + userId: 'user_sdk2', + }, + ], + config: { + privateKey: 'abcd', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'Public key is a required field for user deletion', + }, + ], + }, + }, + }, + { + name: 'engage', + description: 'Test 5', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'ENGAGE', + userAttributes: [ + { + email: 'testUser@testMail.com', + }, + { + userId: 'user_sdk2', + }, + ], + config: { + publicKey: 'abcd', + privateKey: 'efgh', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/engage/network.ts b/test/integrations/destinations/engage/network.ts new file mode 100644 index 0000000000..a675603d4e --- /dev/null +++ b/test/integrations/destinations/engage/network.ts @@ -0,0 +1,141 @@ +const deleteNwData = [ + { + httpReq: { + method: 'delete', + url: 'https://api.engage.so/v1/users/1', + }, + httpRes: { + data: { + code: 400, + message: 'Bad Req', + status: 'Fail first', + }, + status: 400, + }, + }, + { + httpReq: { + method: 'delete', + url: 'https://api.engage.so/v1/users/2', + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, + { + httpReq: { + method: 'delete', + url: 'https://api.engage.so/v1/users/3', + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, + { + httpReq: { + method: 'delete', + + url: 'https://api.engage.so/v1/users/4', + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, + { + httpReq: { + method: 'delete', + + url: 'https://api.engage.so/v1/users/5', + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, + { + httpReq: { + method: 'delete', + + url: 'https://api.engage.so/v1/users/6', + 'Content-Type': 'application/json', + Authorization: 'Basic YWJjZDplZmdo', + }, + httpRes: { + data: { + code: 400, + message: 'Bad Req', + status: 'fail 6 ', + }, + status: 400, + }, + }, + { + httpReq: { + method: 'delete', + + url: 'https://api.engage.so/v1/users/7', + 'Content-Type': 'application/json', + Authorization: 'Basic YWJjZDplZmdo', + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, + { + httpReq: { + method: 'delete', + + url: 'https://api.engage.so/v1/users/8', + 'Content-Type': 'application/json', + Authorization: 'Basic YWJjZDplZmdo', + }, + httpRes: { + data: { + code: 400, + message: 'Bad Req', + status: 'fail mid case 8', + }, + status: 400, + }, + }, + { + httpReq: { + method: 'delete', + + url: 'https://api.engage.so/v1/users/9', + 'Content-Type': 'application/json', + Authorization: 'Basic YWJjZDplZmdo', + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, + { + httpReq: { + method: 'delete', + + url: 'https://api.engage.so/v1/users/12', + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, + { + httpReq: { + method: 'delete', + + url: 'https://api.engage.so/v1/users/user_sdk2', + }, + httpRes: { + status: 200, + statusText: 'success', + }, + }, +]; +export const networkCallsData = [...deleteNwData]; diff --git a/test/integrations/destinations/ga/deleteUsers/data.ts b/test/integrations/destinations/ga/deleteUsers/data.ts new file mode 100644 index 0000000000..6cbc5d5cfe --- /dev/null +++ b/test/integrations/destinations/ga/deleteUsers/data.ts @@ -0,0 +1,181 @@ +import { AUTH_STATUS_INACTIVE } from '../../../../../src/adapters/networkhandler/authConstants'; + +export const data = [ + { + name: 'ga', + description: 'Test 0', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + headers: { + 'x-rudder-dest-info': '{"secret": { "access_token": "valid_token" }}', + }, + body: [ + { + destType: 'GA', + userAttributes: [ + { + userId: 'test_user_1', + }, + { + userId: 'test_user_2', + }, + ], + config: { + trackingID: 'UA-123456789-5', + useNativeSDK: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 1', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + headers: { + 'x-rudder-dest-info': '{"secret": { "access_token": "expired_token" }}', + }, + body: [ + { + destType: 'GA', + userAttributes: [ + { + userId: 'test_user_3', + }, + { + userId: 'test_user_4', + }, + ], + config: { + trackingID: 'UA-123456789-6', + useNativeSDK: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 500, + body: [ + { + statusCode: 500, + authErrorCategory: 'REFRESH_TOKEN', + error: 'invalid credentials', + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 2', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + headers: { + 'x-rudder-dest-info': '{"secret": { "access_token": "valid_token_1" }}', + }, + body: [ + { + destType: 'GA', + userAttributes: [ + { + userId: 'test_user_5', + }, + { + userId: 'test_user_6', + }, + { + userId: 'test_user_7', + }, + { + userId: 'test_user_8', + }, + { + userId: 'test_user_9', + }, + ], + config: { + trackingID: 'UA-123456789-7', + useNativeSDK: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 403, + body: [ + { + statusCode: 403, + error: + 'Error occurred while completing deletion request: [dummy response] The parameter used to query is not correct', + }, + ], + }, + }, + }, + { + name: 'ga', + description: 'Test 3', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + headers: { + 'x-rudder-dest-info': '{"secret": { "access_token": "no_permissions_token" }}', + }, + body: [ + { + destType: 'GA', + userAttributes: [ + { + userId: 'test_user_20', + }, + ], + config: { + trackingID: 'UA-123456789-7', + useNativeSDK: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + authErrorCategory: AUTH_STATUS_INACTIVE, + error: 'User does not have sufficient permissions', + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/ga/network.ts b/test/integrations/destinations/ga/network.ts new file mode 100644 index 0000000000..acfe5db430 --- /dev/null +++ b/test/integrations/destinations/ga/network.ts @@ -0,0 +1,327 @@ +const deleteNwData = [ + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_1', + }, + webPropertyId: 'UA-123456789-5', + }, + headers: { + Authorization: 'Bearer valid_token', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_1', + }, + webPropertyId: 'UA-123456789-5', + deletionRequestTime: '2022-11-04T10:39:57.933Z', + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_2', + }, + webPropertyId: 'UA-123456789-5', + }, + headers: { + Authorization: 'Bearer valid_token', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_2', + }, + webPropertyId: 'UA-123456789-5', + deletionRequestTime: '2022-11-04T10:39:57.933Z', + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_3', + }, + webPropertyId: 'UA-123456789-6', + }, + headers: { + Authorization: 'Bearer expired_token', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + error: { + code: 401, + message: + 'Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.', + status: 'UNAUTHENTICATED', + }, + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_4', + }, + webPropertyId: 'UA-123456789-6', + }, + headers: { + Authorization: 'Bearer expired_token', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + error: { + code: 401, + message: + 'Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.', + status: 'UNAUTHENTICATED', + }, + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_5', + }, + webPropertyId: 'UA-123456789-7', + }, + headers: { + Authorization: 'Bearer valid_token_1', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_5', + }, + webPropertyId: 'UA-123456789-7', + deletionRequestTime: '2022-11-04T10:39:57.933Z', + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_6', + }, + webPropertyId: 'UA-123456789-7', + }, + headers: { + Authorization: 'Bearer valid_token_1', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_6', + }, + webPropertyId: 'UA-123456789-7', + deletionRequestTime: '2022-11-04T10:39:57.933Z', + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_7', + }, + webPropertyId: 'UA-123456789-7', + }, + headers: { + Authorization: 'Bearer valid_token_1', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + error: { + errors: [ + { + domain: 'global', + reason: 'invalidParameter', + message: '[dummy response] The parameter used to query is not correct', + }, + ], + code: 403, + message: '[dummy response] The parameter used to query is not correct', + }, + }, + status: 403, + statusText: 'Bad Request', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_8', + }, + webPropertyId: 'UA-123456789-7', + }, + headers: { + Authorization: 'Bearer valid_token_1', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_8', + }, + webPropertyId: 'UA-123456789-7', + deletionRequestTime: '2022-11-04T10:39:57.933Z', + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_9', + }, + webPropertyId: 'UA-123456789-7', + }, + headers: { + Authorization: 'Bearer valid_token_1', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_9', + }, + webPropertyId: 'UA-123456789-7', + deletionRequestTime: '2022-11-04T10:39:57.933Z', + }, + status: 200, + statusText: 'OK', + }, + }, + { + httpReq: { + method: 'post', + url: 'https://www.googleapis.com/analytics/v3/userDeletion/userDeletionRequests:upsert', + data: { + kind: 'analytics#userDeletionRequest', + id: { + type: 'USER_ID', + userId: 'test_user_20', + }, + webPropertyId: 'UA-123456789-7', + }, + headers: { + Authorization: 'Bearer no_permissions_token', + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + error: { + errors: [ + { + reason: 'insufficientPermissions', + }, + ], + code: 403, + message: 'User does not have sufficient permissions', + }, + }, + status: 200, + statusText: 'OK', + }, + }, +]; +export const networkCallsData = [...deleteNwData]; diff --git a/test/integrations/destinations/intercom/deleteUsers/data.ts b/test/integrations/destinations/intercom/deleteUsers/data.ts new file mode 100644 index 0000000000..a45af0a98f --- /dev/null +++ b/test/integrations/destinations/intercom/deleteUsers/data.ts @@ -0,0 +1,180 @@ +export const data = [ + { + name: 'intercom', + description: 'Test 0', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'INTERCOM', + userAttributes: [ + { + userId: '1', + }, + { + userId: '12', + }, + ], + config: { + apiKey: 'API_KEY', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Test 1', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'INTERCOM', + userAttributes: [ + { + userId: '7', + }, + { + userId: '9', + }, + ], + config: { + apiKey: 'API_KEY', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Test 2', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'INTERCOM', + userAttributes: [ + { + userId: '6188c2c5f47e464b4abf3235', + }, + { + userId: 'user_sdk2', + }, + ], + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'Config for deletion not present', + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Test 3', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'INTERCOM', + userAttributes: [ + { + userId: '6188c2c5f47e464b4abf3235', + }, + { + userId: 'user_sdk2', + }, + ], + config: {}, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'api key for deletion not present', + }, + ], + }, + }, + }, + { + name: 'intercom', + description: 'Test 4', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'INTERCOM', + userAttributes: [{}], + config: { + apiKey: 'a=', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/intercom/network.ts b/test/integrations/destinations/intercom/network.ts new file mode 100644 index 0000000000..9f064d63ea --- /dev/null +++ b/test/integrations/destinations/intercom/network.ts @@ -0,0 +1,93 @@ +const deleteNwData = [ + { + httpReq: { + method: 'post', + url: 'https://api.intercom.io/user_delete_requests', + data: { + intercom_user_id: '1', + }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer API_KEY', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + data: { + type: 'error.list', + request_id: '0022e6v5qc7m04jeu5pg', + errors: [ + { + code: 'unauthorized', + message: 'Access Token Invalid', + }, + ], + }, + status: 400, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://api.intercom.io/user_delete_requests', + data: { + intercom_user_id: '12', + }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer API_KEY', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + status: 200, + statusText: 'ok', + data: { + id: 12, + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://api.intercom.io/user_delete_requests', + data: { + intercom_user_id: '7', + }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer API_KEY', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + status: 200, + statusText: 'ok', + data: { + id: 7, + }, + }, + }, + { + httpReq: { + method: 'post', + url: 'https://api.intercom.io/user_delete_requests', + data: { + intercom_user_id: '9', + }, + headers: { + Accept: 'application/json', + Authorization: 'Bearer API_KEY', + 'Content-Type': 'application/json', + }, + }, + httpRes: { + status: 200, + statusText: 'ok', + data: { + id: 9, + }, + }, + }, +]; +export const networkCallsData = [...deleteNwData]; diff --git a/test/integrations/destinations/marketo_static_list/network.ts b/test/integrations/destinations/marketo_static_list/network.ts new file mode 100644 index 0000000000..c369e1af26 --- /dev/null +++ b/test/integrations/destinations/marketo_static_list/network.ts @@ -0,0 +1,22 @@ +export const networkCallsData = [ + { + httpReq: { + method: 'GET', + params: { + client_id: 'marketo_client_id_success', + client_secret: 'marketo_client_secret_success', + grant_type: 'client_credentials', + }, + url: 'https://marketo_acct_id_success.mktorest.com/identity/oauth/token', + }, + httpRes: { + data: { + access_token: 'access_token_success', + expires_in: 3599, + scope: 'integrations@rudderstack.com', + token_type: 'bearer', + }, + status: 200, + }, + }, +]; diff --git a/test/integrations/destinations/mautic/network.ts b/test/integrations/destinations/mautic/network.ts new file mode 100644 index 0000000000..593a630641 --- /dev/null +++ b/test/integrations/destinations/mautic/network.ts @@ -0,0 +1,3232 @@ +export const networkCallsData = [ + { + httpReq: { + headers: { + Authorization: 'Basic VGVzdFJ1ZGRlcmxhYnM0NTgyM0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://ruddertest2.mautic.net/api/contacts?where%5B0%5D%5Bcol%5D=email&where%5B0%5D%5Bexpr%5D=eq&where%5B0%5D%5Bval%5D=abc@xyz.com', + }, + httpRes: { data: { contacts: {}, total: 0 }, status: 200 }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic VGVzdFJ1ZGRlcmxhYnM0NTgyM0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://ruddertest2.mautic.net/api/contacts?where%5B0%5D%5Bcol%5D=email&where%5B0%5D%5Bexpr%5D=eq&where%5B0%5D%5Bval%5D=abc@xyz.com', + }, + httpRes: { data: { contacts: {}, total: 0 }, status: 200 }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic VGVzdFJ1ZGRlcmxhYnM0NTgyM0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://ruddertest2.mautic.net/api/contacts?where%5B0%5D%5Bcol%5D=email&where%5B0%5D%5Bexpr%5D=eq&where%5B0%5D%5Bval%5D=hijibi@gmail.com', + }, + httpRes: { + data: { + contacts: { + '247': { + color: null, + createdBy: 1, + createdByUser: 'shruti rudderlabs', + dateAdded: '2022-08-21T16:30:21+00:00', + dateIdentified: '2022-08-21T16:30:21+00:00', + dateModified: '2022-08-21T18:08:06+00:00', + doNotContact: [], + fields: { + all: { + address1: null, + address2: null, + attribution: null, + attribution_date: null, + b2b_or_b2c: null, + car_or_truck: null, + cart_status: 'Full', + city: 'kolkata', + company: null, + company_size: null, + country: 'India', + crm_id: null, + datetime: null, + email: 'hijibi@gmail.com', + facebook: null, + fax: null, + firstname: 'hijibiji', + foursquare: null, + haspurchased: '0', + id: '247', + instagram: null, + last_active: null, + lastname: 'Test', + linkedin: null, + mobile: null, + nps__recommend: 9, + phone: '123456789', + points: 123, + position: 'lead', + preferred_locale: null, + products: null, + prospect_or_customer: 'Customer', + role: 'Individual Contributor', + sandbox: '0', + skype: null, + state: null, + subscription_status: 'New', + timezone: null, + title: 'abcd', + twitter: null, + website: 'https://test.com', + zipcode: null, + }, + core: { + address1: { + alias: 'address1', + default_value: null, + group: 'core', + id: '11', + is_fixed: '1', + label: 'Address Line 1', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + address2: { + alias: 'address2', + default_value: null, + group: 'core', + id: '12', + is_fixed: '1', + label: 'Address Line 2', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + attribution: { + alias: 'attribution', + default_value: null, + group: 'core', + id: '21', + is_fixed: '1', + label: 'Attribution', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";i:4;s:9:"precision";i:2;}', + type: 'number', + value: null, + }, + attribution_date: { + alias: 'attribution_date', + default_value: null, + group: 'core', + id: '20', + is_fixed: '1', + label: 'Attribution Date', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + b2b_or_b2c: { + alias: 'b2b_or_b2c', + default_value: null, + group: 'core', + id: '47', + is_fixed: '0', + label: 'B2B or B2C', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:3:"B2B";s:5:"value";s:3:"B2B";}i:1;a:2:{s:5:"label";s:3:"B2C";s:5:"value";s:3:"B2C";}}}', + type: 'select', + value: null, + }, + car_or_truck: { + alias: 'car_or_truck', + default_value: null, + group: 'core', + id: '52', + is_fixed: '0', + label: 'Car or Truck', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"Car";s:5:"value";s:3:"Car";}i:1;a:2:{s:5:"label";s:5:"Truck";s:5:"value";s:5:"Truck";}i:2;a:2:{s:5:"label";s:4:"Both";s:5:"value";s:4:"Both";}}}', + type: 'select', + value: null, + }, + cart_status: { + alias: 'cart_status', + default_value: null, + group: 'core', + id: '55', + is_fixed: '0', + label: 'Cart Status', + normalizedValue: 'Full', + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:5:"Empty";s:5:"value";s:5:"Empty";}i:1;a:2:{s:5:"label";s:4:"Full";s:5:"value";s:4:"Full";}}}', + type: 'select', + value: 'Full', + }, + city: { + alias: 'city', + default_value: null, + group: 'core', + id: '13', + is_fixed: '1', + label: 'City', + normalizedValue: 'kolkata', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'kolkata', + }, + company: { + alias: 'company', + default_value: null, + group: 'core', + id: '4', + is_fixed: '1', + label: 'Primary company', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + company_size: { + alias: 'company_size', + default_value: null, + group: 'core', + id: '53', + is_fixed: '0', + label: 'Company size Custom', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:7:{i:0;a:2:{s:5:"label";s:15:"Less than 1,000";s:5:"value";s:15:"Less than 1,000";}i:1;a:2:{s:5:"label";s:14:"1,000 - 10,000";s:5:"value";s:14:"1,000 - 10,000";}i:2;a:2:{s:5:"label";s:16:"10,000 - 100,000";s:5:"value";s:16:"10,000 - 100,000";}i:3;a:2:{s:5:"label";s:17:"100,000 - 500,000";s:5:"value";s:17:"100,000 - 500,000";}i:4;a:2:{s:5:"label";s:12:"500,000 - 1M";s:5:"value";s:12:"500,000 - 1M";}i:5;a:2:{s:5:"label";s:7:"1M - 5M";s:5:"value";s:7:"1M - 5M";}i:6;a:2:{s:5:"label";s:3:"5M+";s:5:"value";s:3:"5M+";}}}', + type: 'select', + value: null, + }, + country: { + alias: 'country', + default_value: null, + group: 'core', + id: '16', + is_fixed: '1', + label: 'Country', + normalizedValue: 'India', + object: 'lead', + properties: 'a:0:{}', + type: 'country', + value: 'India', + }, + crm_id: { + alias: 'crm_id', + default_value: null, + group: 'core', + id: '45', + is_fixed: '0', + label: 'CRM ID', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + datetime: { + alias: 'datetime', + default_value: null, + group: 'core', + id: '50', + is_fixed: '0', + label: 'Webinar date/time signup', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + email: { + alias: 'email', + default_value: null, + group: 'core', + id: '6', + is_fixed: '1', + label: 'Email', + normalizedValue: 'hijibi@gmail.com', + object: 'lead', + properties: 'a:0:{}', + type: 'email', + value: 'hijibi@gmail.com', + }, + fax: { + alias: 'fax', + default_value: null, + group: 'core', + id: '10', + is_fixed: '0', + label: 'Fax', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + firstname: { + alias: 'firstname', + default_value: null, + group: 'core', + id: '2', + is_fixed: '1', + label: 'First Name', + normalizedValue: 'hijibiji', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'hijibiji', + }, + haspurchased: { + alias: 'haspurchased', + default_value: null, + group: 'core', + id: '46', + is_fixed: '0', + label: 'hasPurchased', + normalizedValue: 'No', + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: '0', + }, + last_active: { + alias: 'last_active', + default_value: null, + group: 'core', + id: '58', + is_fixed: '1', + label: 'Date Last Active', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + lastname: { + alias: 'lastname', + default_value: null, + group: 'core', + id: '3', + is_fixed: '1', + label: 'Last Name', + normalizedValue: 'Test', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'Test', + }, + mobile: { + alias: 'mobile', + default_value: null, + group: 'core', + id: '7', + is_fixed: '1', + label: 'Mobile', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + nps__recommend: { + alias: 'nps__recommend', + default_value: null, + group: 'core', + id: '56', + is_fixed: '0', + label: 'NPS - Recommend', + normalizedValue: 9, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";s:1:"3";s:9:"precision";s:0:"";}', + type: 'number', + value: 9, + }, + phone: { + alias: 'phone', + default_value: null, + group: 'core', + id: '8', + is_fixed: '1', + label: 'Phone', + normalizedValue: '123456789', + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: '123456789', + }, + points: { + alias: 'points', + default_value: '0', + group: 'core', + id: '9', + is_fixed: '1', + label: 'Points', + normalizedValue: 123, + object: 'lead', + properties: 'a:0:{}', + type: 'number', + value: 123, + }, + position: { + alias: 'position', + default_value: null, + group: 'core', + id: '5', + is_fixed: '1', + label: 'Position', + normalizedValue: 'lead', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'lead', + }, + preferred_locale: { + alias: 'preferred_locale', + default_value: null, + group: 'core', + id: '17', + is_fixed: '1', + label: 'Preferred Locale', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'locale', + value: null, + }, + products: { + alias: 'products', + default_value: null, + group: 'core', + id: '48', + is_fixed: '0', + label: 'Products', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:27:"Mautic Marketing Automation";s:5:"value";s:27:"Mautic Marketing Automation";}i:1;a:2:{s:5:"label";s:28:"Maven Marketing Intelligence";s:5:"value";s:28:"Maven Marketing Intelligence";}i:2;a:2:{s:5:"label";s:28:"Maestro Marketing Management";s:5:"value";s:28:"Maestro Marketing Management";}}}', + type: 'select', + value: null, + }, + prospect_or_customer: { + alias: 'prospect_or_customer', + default_value: null, + group: 'core', + id: '51', + is_fixed: '0', + label: 'Prospect or Customer', + normalizedValue: 'Customer', + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:8:"Prospect";s:5:"value";s:8:"Prospect";}i:1;a:2:{s:5:"label";s:8:"Customer";s:5:"value";s:8:"Customer";}}}', + type: 'select', + value: 'Customer', + }, + role: { + alias: 'role', + default_value: null, + group: 'core', + id: '57', + is_fixed: '0', + label: 'Role', + normalizedValue: 'Individual Contributor', + object: 'lead', + properties: + 'a:1:{s:4:"list";a:5:{i:0;a:2:{s:5:"label";s:22:"Individual Contributor";s:5:"value";s:22:"Individual Contributor";}i:1;a:2:{s:5:"label";s:7:"Manager";s:5:"value";s:7:"Manager";}i:2;a:2:{s:5:"label";s:8:"Director";s:5:"value";s:8:"Director";}i:3;a:2:{s:5:"label";s:9:"Executive";s:5:"value";s:9:"Executive";}i:4;a:2:{s:5:"label";s:10:"Consultant";s:5:"value";s:10:"Consultant";}}}', + type: 'select', + value: 'Individual Contributor', + }, + sandbox: { + alias: 'sandbox', + default_value: null, + group: 'core', + id: '54', + is_fixed: '0', + label: 'Sandbox', + normalizedValue: 'No', + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: '0', + }, + state: { + alias: 'state', + default_value: null, + group: 'core', + id: '14', + is_fixed: '1', + label: 'State', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'region', + value: null, + }, + subscription_status: { + alias: 'subscription_status', + default_value: null, + group: 'core', + id: '49', + is_fixed: '0', + label: 'Subscription Status', + normalizedValue: 'New', + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"New";s:5:"value";s:3:"New";}i:1;a:2:{s:5:"label";s:8:"Existing";s:5:"value";s:8:"Existing";}i:2;a:2:{s:5:"label";s:6:"Former";s:5:"value";s:6:"Former";}}}', + type: 'select', + value: 'New', + }, + timezone: { + alias: 'timezone', + default_value: null, + group: 'core', + id: '18', + is_fixed: '1', + label: 'Preferred Timezone', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'timezone', + value: null, + }, + title: { + alias: 'title', + default_value: null, + group: 'core', + id: '1', + is_fixed: '1', + label: 'Title', + normalizedValue: 'abcd', + object: 'lead', + properties: 'a:1:{s:4:"list";a:3:{i:0;s:2:"Mr";i:1;s:3:"Mrs";i:2;s:4:"Miss";}}', + type: 'lookup', + value: 'abcd', + }, + website: { + alias: 'website', + default_value: null, + group: 'core', + id: '22', + is_fixed: '0', + label: 'Website', + normalizedValue: 'https://test.com', + object: 'lead', + properties: 'a:0:{}', + type: 'url', + value: 'https://test.com', + }, + zipcode: { + alias: 'zipcode', + default_value: null, + group: 'core', + id: '15', + is_fixed: '1', + label: 'Zip Code', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + personal: [], + professional: [], + social: { + facebook: { + alias: 'facebook', + default_value: null, + group: 'social', + id: '23', + is_fixed: '0', + label: 'Facebook', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + foursquare: { + alias: 'foursquare', + default_value: null, + group: 'social', + id: '24', + is_fixed: '0', + label: 'Foursquare', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + instagram: { + alias: 'instagram', + default_value: null, + group: 'social', + id: '26', + is_fixed: '0', + label: 'Instagram', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + linkedin: { + alias: 'linkedin', + default_value: null, + group: 'social', + id: '27', + is_fixed: '0', + label: 'LinkedIn', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + skype: { + alias: 'skype', + default_value: null, + group: 'social', + id: '28', + is_fixed: '0', + label: 'Skype', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + twitter: { + alias: 'twitter', + default_value: null, + group: 'social', + id: '29', + is_fixed: '0', + label: 'Twitter', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + }, + frequencyRules: [], + id: 247, + ipAddresses: [ + { + id: 1, + ipAddress: '127.0.0.1', + ipDetails: { + city: '', + country: '', + extra: '', + isp: '', + latitude: '', + longitude: '', + organization: '', + region: '', + timezone: '', + zipcode: '', + }, + }, + ], + isPublished: true, + lastActive: null, + modifiedBy: 1, + modifiedByUser: 'shruti rudderlabs', + owner: null, + points: 123, + preferredProfileImage: null, + stage: null, + tags: [], + utmtags: [], + }, + }, + total: 1, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic VGVzdDQ1ODIzUnVkZGVybGFic0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://ruddertest2.mautic.net/api/contacts?where%5B0%5D%5Bcol%5D=email&where%5B0%5D%5Bexpr%5D=eq&where%5B0%5D%5Bval%5D=hijibi@gmail.com', + }, + httpRes: { + data: { + contacts: { + '247': { + color: null, + createdBy: 1, + createdByUser: 'shruti rudderlabs', + dateAdded: '2022-08-21T16:30:21+00:00', + dateIdentified: '2022-08-21T16:30:21+00:00', + dateModified: '2022-08-21T18:08:06+00:00', + doNotContact: [], + fields: { + all: { + address1: null, + address2: null, + attribution: null, + attribution_date: null, + b2b_or_b2c: null, + car_or_truck: null, + cart_status: 'Full', + city: 'kolkata', + company: null, + company_size: null, + country: 'India', + crm_id: null, + datetime: null, + email: 'hijibi@gmail.com', + facebook: null, + fax: null, + firstname: 'hijibiji', + foursquare: null, + haspurchased: '0', + id: '247', + instagram: null, + last_active: null, + lastname: 'Test', + linkedin: null, + mobile: null, + nps__recommend: 9, + phone: '123456789', + points: 123, + position: 'lead', + preferred_locale: null, + products: null, + prospect_or_customer: 'Customer', + role: 'Individual Contributor', + sandbox: '0', + skype: null, + state: null, + subscription_status: 'New', + timezone: null, + title: 'abcd', + twitter: null, + website: 'https://test.com', + zipcode: null, + }, + core: { + address1: { + alias: 'address1', + default_value: null, + group: 'core', + id: '11', + is_fixed: '1', + label: 'Address Line 1', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + address2: { + alias: 'address2', + default_value: null, + group: 'core', + id: '12', + is_fixed: '1', + label: 'Address Line 2', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + attribution: { + alias: 'attribution', + default_value: null, + group: 'core', + id: '21', + is_fixed: '1', + label: 'Attribution', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";i:4;s:9:"precision";i:2;}', + type: 'number', + value: null, + }, + attribution_date: { + alias: 'attribution_date', + default_value: null, + group: 'core', + id: '20', + is_fixed: '1', + label: 'Attribution Date', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + b2b_or_b2c: { + alias: 'b2b_or_b2c', + default_value: null, + group: 'core', + id: '47', + is_fixed: '0', + label: 'B2B or B2C', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:3:"B2B";s:5:"value";s:3:"B2B";}i:1;a:2:{s:5:"label";s:3:"B2C";s:5:"value";s:3:"B2C";}}}', + type: 'select', + value: null, + }, + car_or_truck: { + alias: 'car_or_truck', + default_value: null, + group: 'core', + id: '52', + is_fixed: '0', + label: 'Car or Truck', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"Car";s:5:"value";s:3:"Car";}i:1;a:2:{s:5:"label";s:5:"Truck";s:5:"value";s:5:"Truck";}i:2;a:2:{s:5:"label";s:4:"Both";s:5:"value";s:4:"Both";}}}', + type: 'select', + value: null, + }, + cart_status: { + alias: 'cart_status', + default_value: null, + group: 'core', + id: '55', + is_fixed: '0', + label: 'Cart Status', + normalizedValue: 'Full', + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:5:"Empty";s:5:"value";s:5:"Empty";}i:1;a:2:{s:5:"label";s:4:"Full";s:5:"value";s:4:"Full";}}}', + type: 'select', + value: 'Full', + }, + city: { + alias: 'city', + default_value: null, + group: 'core', + id: '13', + is_fixed: '1', + label: 'City', + normalizedValue: 'kolkata', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'kolkata', + }, + company: { + alias: 'company', + default_value: null, + group: 'core', + id: '4', + is_fixed: '1', + label: 'Primary company', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + company_size: { + alias: 'company_size', + default_value: null, + group: 'core', + id: '53', + is_fixed: '0', + label: 'Company size Custom', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:7:{i:0;a:2:{s:5:"label";s:15:"Less than 1,000";s:5:"value";s:15:"Less than 1,000";}i:1;a:2:{s:5:"label";s:14:"1,000 - 10,000";s:5:"value";s:14:"1,000 - 10,000";}i:2;a:2:{s:5:"label";s:16:"10,000 - 100,000";s:5:"value";s:16:"10,000 - 100,000";}i:3;a:2:{s:5:"label";s:17:"100,000 - 500,000";s:5:"value";s:17:"100,000 - 500,000";}i:4;a:2:{s:5:"label";s:12:"500,000 - 1M";s:5:"value";s:12:"500,000 - 1M";}i:5;a:2:{s:5:"label";s:7:"1M - 5M";s:5:"value";s:7:"1M - 5M";}i:6;a:2:{s:5:"label";s:3:"5M+";s:5:"value";s:3:"5M+";}}}', + type: 'select', + value: null, + }, + country: { + alias: 'country', + default_value: null, + group: 'core', + id: '16', + is_fixed: '1', + label: 'Country', + normalizedValue: 'India', + object: 'lead', + properties: 'a:0:{}', + type: 'country', + value: 'India', + }, + crm_id: { + alias: 'crm_id', + default_value: null, + group: 'core', + id: '45', + is_fixed: '0', + label: 'CRM ID', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + datetime: { + alias: 'datetime', + default_value: null, + group: 'core', + id: '50', + is_fixed: '0', + label: 'Webinar date/time signup', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + email: { + alias: 'email', + default_value: null, + group: 'core', + id: '6', + is_fixed: '1', + label: 'Email', + normalizedValue: 'hijibi@gmail.com', + object: 'lead', + properties: 'a:0:{}', + type: 'email', + value: 'hijibi@gmail.com', + }, + fax: { + alias: 'fax', + default_value: null, + group: 'core', + id: '10', + is_fixed: '0', + label: 'Fax', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + firstname: { + alias: 'firstname', + default_value: null, + group: 'core', + id: '2', + is_fixed: '1', + label: 'First Name', + normalizedValue: 'hijibiji', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'hijibiji', + }, + haspurchased: { + alias: 'haspurchased', + default_value: null, + group: 'core', + id: '46', + is_fixed: '0', + label: 'hasPurchased', + normalizedValue: 'No', + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: '0', + }, + last_active: { + alias: 'last_active', + default_value: null, + group: 'core', + id: '58', + is_fixed: '1', + label: 'Date Last Active', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + lastname: { + alias: 'lastname', + default_value: null, + group: 'core', + id: '3', + is_fixed: '1', + label: 'Last Name', + normalizedValue: 'Test', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'Test', + }, + mobile: { + alias: 'mobile', + default_value: null, + group: 'core', + id: '7', + is_fixed: '1', + label: 'Mobile', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + nps__recommend: { + alias: 'nps__recommend', + default_value: null, + group: 'core', + id: '56', + is_fixed: '0', + label: 'NPS - Recommend', + normalizedValue: 9, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";s:1:"3";s:9:"precision";s:0:"";}', + type: 'number', + value: 9, + }, + phone: { + alias: 'phone', + default_value: null, + group: 'core', + id: '8', + is_fixed: '1', + label: 'Phone', + normalizedValue: '123456789', + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: '123456789', + }, + points: { + alias: 'points', + default_value: '0', + group: 'core', + id: '9', + is_fixed: '1', + label: 'Points', + normalizedValue: 123, + object: 'lead', + properties: 'a:0:{}', + type: 'number', + value: 123, + }, + position: { + alias: 'position', + default_value: null, + group: 'core', + id: '5', + is_fixed: '1', + label: 'Position', + normalizedValue: 'lead', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'lead', + }, + preferred_locale: { + alias: 'preferred_locale', + default_value: null, + group: 'core', + id: '17', + is_fixed: '1', + label: 'Preferred Locale', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'locale', + value: null, + }, + products: { + alias: 'products', + default_value: null, + group: 'core', + id: '48', + is_fixed: '0', + label: 'Products', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:27:"Mautic Marketing Automation";s:5:"value";s:27:"Mautic Marketing Automation";}i:1;a:2:{s:5:"label";s:28:"Maven Marketing Intelligence";s:5:"value";s:28:"Maven Marketing Intelligence";}i:2;a:2:{s:5:"label";s:28:"Maestro Marketing Management";s:5:"value";s:28:"Maestro Marketing Management";}}}', + type: 'select', + value: null, + }, + prospect_or_customer: { + alias: 'prospect_or_customer', + default_value: null, + group: 'core', + id: '51', + is_fixed: '0', + label: 'Prospect or Customer', + normalizedValue: 'Customer', + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:8:"Prospect";s:5:"value";s:8:"Prospect";}i:1;a:2:{s:5:"label";s:8:"Customer";s:5:"value";s:8:"Customer";}}}', + type: 'select', + value: 'Customer', + }, + role: { + alias: 'role', + default_value: null, + group: 'core', + id: '57', + is_fixed: '0', + label: 'Role', + normalizedValue: 'Individual Contributor', + object: 'lead', + properties: + 'a:1:{s:4:"list";a:5:{i:0;a:2:{s:5:"label";s:22:"Individual Contributor";s:5:"value";s:22:"Individual Contributor";}i:1;a:2:{s:5:"label";s:7:"Manager";s:5:"value";s:7:"Manager";}i:2;a:2:{s:5:"label";s:8:"Director";s:5:"value";s:8:"Director";}i:3;a:2:{s:5:"label";s:9:"Executive";s:5:"value";s:9:"Executive";}i:4;a:2:{s:5:"label";s:10:"Consultant";s:5:"value";s:10:"Consultant";}}}', + type: 'select', + value: 'Individual Contributor', + }, + sandbox: { + alias: 'sandbox', + default_value: null, + group: 'core', + id: '54', + is_fixed: '0', + label: 'Sandbox', + normalizedValue: 'No', + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: '0', + }, + state: { + alias: 'state', + default_value: null, + group: 'core', + id: '14', + is_fixed: '1', + label: 'State', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'region', + value: null, + }, + subscription_status: { + alias: 'subscription_status', + default_value: null, + group: 'core', + id: '49', + is_fixed: '0', + label: 'Subscription Status', + normalizedValue: 'New', + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"New";s:5:"value";s:3:"New";}i:1;a:2:{s:5:"label";s:8:"Existing";s:5:"value";s:8:"Existing";}i:2;a:2:{s:5:"label";s:6:"Former";s:5:"value";s:6:"Former";}}}', + type: 'select', + value: 'New', + }, + timezone: { + alias: 'timezone', + default_value: null, + group: 'core', + id: '18', + is_fixed: '1', + label: 'Preferred Timezone', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'timezone', + value: null, + }, + title: { + alias: 'title', + default_value: null, + group: 'core', + id: '1', + is_fixed: '1', + label: 'Title', + normalizedValue: 'abcd', + object: 'lead', + properties: 'a:1:{s:4:"list";a:3:{i:0;s:2:"Mr";i:1;s:3:"Mrs";i:2;s:4:"Miss";}}', + type: 'lookup', + value: 'abcd', + }, + website: { + alias: 'website', + default_value: null, + group: 'core', + id: '22', + is_fixed: '0', + label: 'Website', + normalizedValue: 'https://test.com', + object: 'lead', + properties: 'a:0:{}', + type: 'url', + value: 'https://test.com', + }, + zipcode: { + alias: 'zipcode', + default_value: null, + group: 'core', + id: '15', + is_fixed: '1', + label: 'Zip Code', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + personal: [], + professional: [], + social: { + facebook: { + alias: 'facebook', + default_value: null, + group: 'social', + id: '23', + is_fixed: '0', + label: 'Facebook', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + foursquare: { + alias: 'foursquare', + default_value: null, + group: 'social', + id: '24', + is_fixed: '0', + label: 'Foursquare', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + instagram: { + alias: 'instagram', + default_value: null, + group: 'social', + id: '26', + is_fixed: '0', + label: 'Instagram', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + linkedin: { + alias: 'linkedin', + default_value: null, + group: 'social', + id: '27', + is_fixed: '0', + label: 'LinkedIn', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + skype: { + alias: 'skype', + default_value: null, + group: 'social', + id: '28', + is_fixed: '0', + label: 'Skype', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + twitter: { + alias: 'twitter', + default_value: null, + group: 'social', + id: '29', + is_fixed: '0', + label: 'Twitter', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + }, + frequencyRules: [], + id: 247, + ipAddresses: [ + { + id: 1, + ipAddress: '127.0.0.1', + ipDetails: { + city: '', + country: '', + extra: '', + isp: '', + latitude: '', + longitude: '', + organization: '', + region: '', + timezone: '', + zipcode: '', + }, + }, + ], + isPublished: true, + lastActive: null, + modifiedBy: 1, + modifiedByUser: 'shruti rudderlabs', + owner: null, + points: 123, + preferredProfileImage: null, + stage: null, + tags: [], + utmtags: [], + }, + }, + total: 1, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic VGVzdDQ1ODIzUnVkZGVybGFic0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://ruddertest2.mautic.net/api/contacts?where%5B0%5D%5Bcol%5D=lastname&where%5B0%5D%5Bexpr%5D=eq&where%5B0%5D%5Bval%5D=kumar', + }, + httpRes: { + data: { + contacts: { + '248': { + color: null, + createdBy: 1, + createdByUser: 'test rudderlabs', + dateAdded: '2022-08-18T12:19:27+00:00', + dateIdentified: '2022-08-18T12:19:27+00:00', + dateModified: '2022-08-23T11:46:30+00:00', + doNotContact: [], + fields: { + all: { + address1: null, + address2: null, + attribution: null, + attribution_date: null, + b2b_or_b2c: null, + car_or_truck: null, + cart_status: null, + city: null, + company: null, + company_size: null, + country: null, + crm_id: null, + datetime: null, + email: 'xyz@abc.com', + facebook: null, + fax: null, + firstname: 'rudderstack', + foursquare: null, + haspurchased: '1', + id: '248', + instagram: null, + last_active: '2022-08-23 11:46:27', + lastname: 'kumar', + linkedin: null, + mobile: null, + nps__recommend: null, + phone: null, + points: 0, + position: null, + preferred_locale: null, + products: null, + prospect_or_customer: null, + role: null, + sandbox: null, + skype: null, + state: 'Uttar Pradesh', + subscription_status: null, + timezone: null, + title: null, + twitter: null, + website: null, + zipcode: null, + }, + core: { + address1: { + alias: 'address1', + default_value: null, + group: 'core', + id: '11', + is_fixed: '1', + label: 'Address Line 1', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + address2: { + alias: 'address2', + default_value: null, + group: 'core', + id: '12', + is_fixed: '1', + label: 'Address Line 2', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + attribution: { + alias: 'attribution', + default_value: null, + group: 'core', + id: '21', + is_fixed: '1', + label: 'Attribution', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";i:4;s:9:"precision";i:2;}', + type: 'number', + value: null, + }, + attribution_date: { + alias: 'attribution_date', + default_value: null, + group: 'core', + id: '20', + is_fixed: '1', + label: 'Attribution Date', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + b2b_or_b2c: { + alias: 'b2b_or_b2c', + default_value: null, + group: 'core', + id: '47', + is_fixed: '0', + label: 'B2B or B2C', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:3:"B2B";s:5:"value";s:3:"B2B";}i:1;a:2:{s:5:"label";s:3:"B2C";s:5:"value";s:3:"B2C";}}}', + type: 'select', + value: null, + }, + car_or_truck: { + alias: 'car_or_truck', + default_value: null, + group: 'core', + id: '52', + is_fixed: '0', + label: 'Car or Truck', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"Car";s:5:"value";s:3:"Car";}i:1;a:2:{s:5:"label";s:5:"Truck";s:5:"value";s:5:"Truck";}i:2;a:2:{s:5:"label";s:4:"Both";s:5:"value";s:4:"Both";}}}', + type: 'select', + value: null, + }, + cart_status: { + alias: 'cart_status', + default_value: null, + group: 'core', + id: '55', + is_fixed: '0', + label: 'Cart Status', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:5:"Empty";s:5:"value";s:5:"Empty";}i:1;a:2:{s:5:"label";s:4:"Full";s:5:"value";s:4:"Full";}}}', + type: 'select', + value: null, + }, + city: { + alias: 'city', + default_value: null, + group: 'core', + id: '13', + is_fixed: '1', + label: 'City', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + company: { + alias: 'company', + default_value: null, + group: 'core', + id: '4', + is_fixed: '1', + label: 'Primary company', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + company_size: { + alias: 'company_size', + default_value: null, + group: 'core', + id: '53', + is_fixed: '0', + label: 'Company size Custom', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:7:{i:0;a:2:{s:5:"label";s:15:"Less than 1,000";s:5:"value";s:15:"Less than 1,000";}i:1;a:2:{s:5:"label";s:14:"1,000 - 10,000";s:5:"value";s:14:"1,000 - 10,000";}i:2;a:2:{s:5:"label";s:16:"10,000 - 100,000";s:5:"value";s:16:"10,000 - 100,000";}i:3;a:2:{s:5:"label";s:17:"100,000 - 500,000";s:5:"value";s:17:"100,000 - 500,000";}i:4;a:2:{s:5:"label";s:12:"500,000 - 1M";s:5:"value";s:12:"500,000 - 1M";}i:5;a:2:{s:5:"label";s:7:"1M - 5M";s:5:"value";s:7:"1M - 5M";}i:6;a:2:{s:5:"label";s:3:"5M+";s:5:"value";s:3:"5M+";}}}', + type: 'select', + value: null, + }, + country: { + alias: 'country', + default_value: null, + group: 'core', + id: '16', + is_fixed: '1', + label: 'Country', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'country', + value: null, + }, + crm_id: { + alias: 'crm_id', + default_value: null, + group: 'core', + id: '45', + is_fixed: '0', + label: 'CRM ID', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + datetime: { + alias: 'datetime', + default_value: null, + group: 'core', + id: '50', + is_fixed: '0', + label: 'Webinar date/time signup', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + email: { + alias: 'email', + default_value: null, + group: 'core', + id: '6', + is_fixed: '1', + label: 'Email', + normalizedValue: 'xyz@abc.com', + object: 'lead', + properties: 'a:0:{}', + type: 'email', + value: 'xyz@abc.com', + }, + fax: { + alias: 'fax', + default_value: null, + group: 'core', + id: '10', + is_fixed: '0', + label: 'Fax', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + firstname: { + alias: 'firstname', + default_value: null, + group: 'core', + id: '2', + is_fixed: '1', + label: 'First Name', + normalizedValue: 'rudderstack', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'rudderstack', + }, + haspurchased: { + alias: 'haspurchased', + default_value: null, + group: 'core', + id: '46', + is_fixed: '0', + label: 'hasPurchased', + normalizedValue: 'Yes', + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: '1', + }, + last_active: { + alias: 'last_active', + default_value: null, + group: 'core', + id: '58', + is_fixed: '1', + label: 'Date Last Active', + normalizedValue: '2022-08-23 11:46:27', + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: '2022-08-23 11:46:27', + }, + lastname: { + alias: 'lastname', + default_value: null, + group: 'core', + id: '3', + is_fixed: '1', + label: 'Last Name', + normalizedValue: 'kumar', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'kumar', + }, + mobile: { + alias: 'mobile', + default_value: null, + group: 'core', + id: '7', + is_fixed: '1', + label: 'Mobile', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + nps__recommend: { + alias: 'nps__recommend', + default_value: null, + group: 'core', + id: '56', + is_fixed: '0', + label: 'NPS - Recommend', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";s:1:"3";s:9:"precision";s:0:"";}', + type: 'number', + value: null, + }, + phone: { + alias: 'phone', + default_value: null, + group: 'core', + id: '8', + is_fixed: '1', + label: 'Phone', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + points: { + alias: 'points', + default_value: '0', + group: 'core', + id: '9', + is_fixed: '1', + label: 'Points', + normalizedValue: 0, + object: 'lead', + properties: 'a:0:{}', + type: 'number', + value: 0, + }, + position: { + alias: 'position', + default_value: null, + group: 'core', + id: '5', + is_fixed: '1', + label: 'Position', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + preferred_locale: { + alias: 'preferred_locale', + default_value: null, + group: 'core', + id: '17', + is_fixed: '1', + label: 'Preferred Locale', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'locale', + value: null, + }, + products: { + alias: 'products', + default_value: null, + group: 'core', + id: '48', + is_fixed: '0', + label: 'Products', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:27:"Mautic Marketing Automation";s:5:"value";s:27:"Mautic Marketing Automation";}i:1;a:2:{s:5:"label";s:28:"Maven Marketing Intelligence";s:5:"value";s:28:"Maven Marketing Intelligence";}i:2;a:2:{s:5:"label";s:28:"Maestro Marketing Management";s:5:"value";s:28:"Maestro Marketing Management";}}}', + type: 'select', + value: null, + }, + prospect_or_customer: { + alias: 'prospect_or_customer', + default_value: null, + group: 'core', + id: '51', + is_fixed: '0', + label: 'Prospect or Customer', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:8:"Prospect";s:5:"value";s:8:"Prospect";}i:1;a:2:{s:5:"label";s:8:"Customer";s:5:"value";s:8:"Customer";}}}', + type: 'select', + value: null, + }, + role: { + alias: 'role', + default_value: null, + group: 'core', + id: '57', + is_fixed: '0', + label: 'Role', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:5:{i:0;a:2:{s:5:"label";s:22:"Individual Contributor";s:5:"value";s:22:"Individual Contributor";}i:1;a:2:{s:5:"label";s:7:"Manager";s:5:"value";s:7:"Manager";}i:2;a:2:{s:5:"label";s:8:"Director";s:5:"value";s:8:"Director";}i:3;a:2:{s:5:"label";s:9:"Executive";s:5:"value";s:9:"Executive";}i:4;a:2:{s:5:"label";s:10:"Consultant";s:5:"value";s:10:"Consultant";}}}', + type: 'select', + value: null, + }, + sandbox: { + alias: 'sandbox', + default_value: null, + group: 'core', + id: '54', + is_fixed: '0', + label: 'Sandbox', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: null, + }, + state: { + alias: 'state', + default_value: null, + group: 'core', + id: '14', + is_fixed: '1', + label: 'State', + normalizedValue: 'Uttar Pradesh', + object: 'lead', + properties: 'a:0:{}', + type: 'region', + value: 'Uttar Pradesh', + }, + subscription_status: { + alias: 'subscription_status', + default_value: null, + group: 'core', + id: '49', + is_fixed: '0', + label: 'Subscription Status', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"New";s:5:"value";s:3:"New";}i:1;a:2:{s:5:"label";s:8:"Existing";s:5:"value";s:8:"Existing";}i:2;a:2:{s:5:"label";s:6:"Former";s:5:"value";s:6:"Former";}}}', + type: 'select', + value: null, + }, + timezone: { + alias: 'timezone', + default_value: null, + group: 'core', + id: '18', + is_fixed: '1', + label: 'Preferred Timezone', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'timezone', + value: null, + }, + title: { + alias: 'title', + default_value: null, + group: 'core', + id: '1', + is_fixed: '1', + label: 'Title', + normalizedValue: null, + object: 'lead', + properties: 'a:1:{s:4:"list";a:3:{i:0;s:2:"Mr";i:1;s:3:"Mrs";i:2;s:4:"Miss";}}', + type: 'lookup', + value: null, + }, + website: { + alias: 'website', + default_value: null, + group: 'core', + id: '22', + is_fixed: '0', + label: 'Website', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'url', + value: null, + }, + zipcode: { + alias: 'zipcode', + default_value: null, + group: 'core', + id: '15', + is_fixed: '1', + label: 'Zip Code', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + personal: [], + professional: [], + social: { + facebook: { + alias: 'facebook', + default_value: null, + group: 'social', + id: '23', + is_fixed: '0', + label: 'Facebook', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + foursquare: { + alias: 'foursquare', + default_value: null, + group: 'social', + id: '24', + is_fixed: '0', + label: 'Foursquare', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + instagram: { + alias: 'instagram', + default_value: null, + group: 'social', + id: '26', + is_fixed: '0', + label: 'Instagram', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + linkedin: { + alias: 'linkedin', + default_value: null, + group: 'social', + id: '27', + is_fixed: '0', + label: 'LinkedIn', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + skype: { + alias: 'skype', + default_value: null, + group: 'social', + id: '28', + is_fixed: '0', + label: 'Skype', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + twitter: { + alias: 'twitter', + default_value: null, + group: 'social', + id: '29', + is_fixed: '0', + label: 'Twitter', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + }, + frequencyRules: [], + id: 248, + ipAddresses: [ + { + id: 1, + ipAddress: '130.0.1.21', + ipDetails: { + city: null, + country: 'United Kingdom', + extra: '', + isp: '', + latitude: 51.4964, + longitude: -0.1224, + organization: '', + region: '', + timezone: 'Europe/London', + zipcode: null, + }, + }, + ], + isPublished: true, + lastActive: '2022-08-23T11:46:27+00:00', + modifiedBy: 1, + modifiedByUser: 'test rudderlabs', + owner: null, + points: 0, + preferredProfileImage: null, + stage: null, + tags: [], + utmtags: [], + }, + '249': { + color: null, + createdBy: 1, + createdByUser: 'test rudderlabs', + dateAdded: '2022-08-18T12:20:05+00:00', + dateIdentified: '2022-08-18T12:20:05+00:00', + dateModified: '2022-08-24T09:19:10+00:00', + doNotContact: [], + fields: { + all: { + address1: null, + address2: null, + attribution: null, + attribution_date: null, + b2b_or_b2c: null, + car_or_truck: null, + cart_status: null, + city: null, + company: 'test', + company_size: null, + country: null, + crm_id: null, + datetime: null, + email: 'x1yz@abc.com', + facebook: null, + fax: null, + firstname: 'Kamlesh', + foursquare: null, + haspurchased: null, + id: '249', + instagram: null, + last_active: '2022-08-18 12:20:05', + lastname: 'kumar', + linkedin: null, + mobile: null, + nps__recommend: null, + phone: null, + points: 0, + position: null, + preferred_locale: null, + products: null, + prospect_or_customer: null, + role: null, + sandbox: null, + skype: null, + state: 'Uttar Pradesh', + subscription_status: null, + timezone: null, + title: null, + twitter: null, + website: null, + zipcode: null, + }, + core: { + address1: { + alias: 'address1', + default_value: null, + group: 'core', + id: '11', + is_fixed: '1', + label: 'Address Line 1', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + address2: { + alias: 'address2', + default_value: null, + group: 'core', + id: '12', + is_fixed: '1', + label: 'Address Line 2', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + attribution: { + alias: 'attribution', + default_value: null, + group: 'core', + id: '21', + is_fixed: '1', + label: 'Attribution', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";i:4;s:9:"precision";i:2;}', + type: 'number', + value: null, + }, + attribution_date: { + alias: 'attribution_date', + default_value: null, + group: 'core', + id: '20', + is_fixed: '1', + label: 'Attribution Date', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + b2b_or_b2c: { + alias: 'b2b_or_b2c', + default_value: null, + group: 'core', + id: '47', + is_fixed: '0', + label: 'B2B or B2C', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:3:"B2B";s:5:"value";s:3:"B2B";}i:1;a:2:{s:5:"label";s:3:"B2C";s:5:"value";s:3:"B2C";}}}', + type: 'select', + value: null, + }, + car_or_truck: { + alias: 'car_or_truck', + default_value: null, + group: 'core', + id: '52', + is_fixed: '0', + label: 'Car or Truck', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"Car";s:5:"value";s:3:"Car";}i:1;a:2:{s:5:"label";s:5:"Truck";s:5:"value";s:5:"Truck";}i:2;a:2:{s:5:"label";s:4:"Both";s:5:"value";s:4:"Both";}}}', + type: 'select', + value: null, + }, + cart_status: { + alias: 'cart_status', + default_value: null, + group: 'core', + id: '55', + is_fixed: '0', + label: 'Cart Status', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:5:"Empty";s:5:"value";s:5:"Empty";}i:1;a:2:{s:5:"label";s:4:"Full";s:5:"value";s:4:"Full";}}}', + type: 'select', + value: null, + }, + city: { + alias: 'city', + default_value: null, + group: 'core', + id: '13', + is_fixed: '1', + label: 'City', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + company: { + alias: 'company', + default_value: null, + group: 'core', + id: '4', + is_fixed: '1', + label: 'Primary company', + normalizedValue: 'test', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'test', + }, + company_size: { + alias: 'company_size', + default_value: null, + group: 'core', + id: '53', + is_fixed: '0', + label: 'Company size Custom', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:7:{i:0;a:2:{s:5:"label";s:15:"Less than 1,000";s:5:"value";s:15:"Less than 1,000";}i:1;a:2:{s:5:"label";s:14:"1,000 - 10,000";s:5:"value";s:14:"1,000 - 10,000";}i:2;a:2:{s:5:"label";s:16:"10,000 - 100,000";s:5:"value";s:16:"10,000 - 100,000";}i:3;a:2:{s:5:"label";s:17:"100,000 - 500,000";s:5:"value";s:17:"100,000 - 500,000";}i:4;a:2:{s:5:"label";s:12:"500,000 - 1M";s:5:"value";s:12:"500,000 - 1M";}i:5;a:2:{s:5:"label";s:7:"1M - 5M";s:5:"value";s:7:"1M - 5M";}i:6;a:2:{s:5:"label";s:3:"5M+";s:5:"value";s:3:"5M+";}}}', + type: 'select', + value: null, + }, + country: { + alias: 'country', + default_value: null, + group: 'core', + id: '16', + is_fixed: '1', + label: 'Country', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'country', + value: null, + }, + crm_id: { + alias: 'crm_id', + default_value: null, + group: 'core', + id: '45', + is_fixed: '0', + label: 'CRM ID', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + datetime: { + alias: 'datetime', + default_value: null, + group: 'core', + id: '50', + is_fixed: '0', + label: 'Webinar date/time signup', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + email: { + alias: 'email', + default_value: null, + group: 'core', + id: '6', + is_fixed: '1', + label: 'Email', + normalizedValue: 'x1yz@abc.com', + object: 'lead', + properties: 'a:0:{}', + type: 'email', + value: 'x1yz@abc.com', + }, + fax: { + alias: 'fax', + default_value: null, + group: 'core', + id: '10', + is_fixed: '0', + label: 'Fax', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + firstname: { + alias: 'firstname', + default_value: null, + group: 'core', + id: '2', + is_fixed: '1', + label: 'First Name', + normalizedValue: 'Kamlesh', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'Kamlesh', + }, + haspurchased: { + alias: 'haspurchased', + default_value: null, + group: 'core', + id: '46', + is_fixed: '0', + label: 'hasPurchased', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: null, + }, + last_active: { + alias: 'last_active', + default_value: null, + group: 'core', + id: '58', + is_fixed: '1', + label: 'Date Last Active', + normalizedValue: '2022-08-18 12:20:05', + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: '2022-08-18 12:20:05', + }, + lastname: { + alias: 'lastname', + default_value: null, + group: 'core', + id: '3', + is_fixed: '1', + label: 'Last Name', + normalizedValue: 'kumar', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'kumar', + }, + mobile: { + alias: 'mobile', + default_value: null, + group: 'core', + id: '7', + is_fixed: '1', + label: 'Mobile', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + nps__recommend: { + alias: 'nps__recommend', + default_value: null, + group: 'core', + id: '56', + is_fixed: '0', + label: 'NPS - Recommend', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";s:1:"3";s:9:"precision";s:0:"";}', + type: 'number', + value: null, + }, + phone: { + alias: 'phone', + default_value: null, + group: 'core', + id: '8', + is_fixed: '1', + label: 'Phone', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + points: { + alias: 'points', + default_value: '0', + group: 'core', + id: '9', + is_fixed: '1', + label: 'Points', + normalizedValue: 0, + object: 'lead', + properties: 'a:0:{}', + type: 'number', + value: 0, + }, + position: { + alias: 'position', + default_value: null, + group: 'core', + id: '5', + is_fixed: '1', + label: 'Position', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + preferred_locale: { + alias: 'preferred_locale', + default_value: null, + group: 'core', + id: '17', + is_fixed: '1', + label: 'Preferred Locale', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'locale', + value: null, + }, + products: { + alias: 'products', + default_value: null, + group: 'core', + id: '48', + is_fixed: '0', + label: 'Products', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:27:"Mautic Marketing Automation";s:5:"value";s:27:"Mautic Marketing Automation";}i:1;a:2:{s:5:"label";s:28:"Maven Marketing Intelligence";s:5:"value";s:28:"Maven Marketing Intelligence";}i:2;a:2:{s:5:"label";s:28:"Maestro Marketing Management";s:5:"value";s:28:"Maestro Marketing Management";}}}', + type: 'select', + value: null, + }, + prospect_or_customer: { + alias: 'prospect_or_customer', + default_value: null, + group: 'core', + id: '51', + is_fixed: '0', + label: 'Prospect or Customer', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:8:"Prospect";s:5:"value";s:8:"Prospect";}i:1;a:2:{s:5:"label";s:8:"Customer";s:5:"value";s:8:"Customer";}}}', + type: 'select', + value: null, + }, + role: { + alias: 'role', + default_value: null, + group: 'core', + id: '57', + is_fixed: '0', + label: 'Role', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:5:{i:0;a:2:{s:5:"label";s:22:"Individual Contributor";s:5:"value";s:22:"Individual Contributor";}i:1;a:2:{s:5:"label";s:7:"Manager";s:5:"value";s:7:"Manager";}i:2;a:2:{s:5:"label";s:8:"Director";s:5:"value";s:8:"Director";}i:3;a:2:{s:5:"label";s:9:"Executive";s:5:"value";s:9:"Executive";}i:4;a:2:{s:5:"label";s:10:"Consultant";s:5:"value";s:10:"Consultant";}}}', + type: 'select', + value: null, + }, + sandbox: { + alias: 'sandbox', + default_value: null, + group: 'core', + id: '54', + is_fixed: '0', + label: 'Sandbox', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: null, + }, + state: { + alias: 'state', + default_value: null, + group: 'core', + id: '14', + is_fixed: '1', + label: 'State', + normalizedValue: 'Uttar Pradesh', + object: 'lead', + properties: 'a:0:{}', + type: 'region', + value: 'Uttar Pradesh', + }, + subscription_status: { + alias: 'subscription_status', + default_value: null, + group: 'core', + id: '49', + is_fixed: '0', + label: 'Subscription Status', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"New";s:5:"value";s:3:"New";}i:1;a:2:{s:5:"label";s:8:"Existing";s:5:"value";s:8:"Existing";}i:2;a:2:{s:5:"label";s:6:"Former";s:5:"value";s:6:"Former";}}}', + type: 'select', + value: null, + }, + timezone: { + alias: 'timezone', + default_value: null, + group: 'core', + id: '18', + is_fixed: '1', + label: 'Preferred Timezone', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'timezone', + value: null, + }, + title: { + alias: 'title', + default_value: null, + group: 'core', + id: '1', + is_fixed: '1', + label: 'Title', + normalizedValue: null, + object: 'lead', + properties: 'a:1:{s:4:"list";a:3:{i:0;s:2:"Mr";i:1;s:3:"Mrs";i:2;s:4:"Miss";}}', + type: 'lookup', + value: null, + }, + website: { + alias: 'website', + default_value: null, + group: 'core', + id: '22', + is_fixed: '0', + label: 'Website', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'url', + value: null, + }, + zipcode: { + alias: 'zipcode', + default_value: null, + group: 'core', + id: '15', + is_fixed: '1', + label: 'Zip Code', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + personal: [], + professional: [], + social: { + facebook: { + alias: 'facebook', + default_value: null, + group: 'social', + id: '23', + is_fixed: '0', + label: 'Facebook', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + foursquare: { + alias: 'foursquare', + default_value: null, + group: 'social', + id: '24', + is_fixed: '0', + label: 'Foursquare', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + instagram: { + alias: 'instagram', + default_value: null, + group: 'social', + id: '26', + is_fixed: '0', + label: 'Instagram', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + linkedin: { + alias: 'linkedin', + default_value: null, + group: 'social', + id: '27', + is_fixed: '0', + label: 'LinkedIn', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + skype: { + alias: 'skype', + default_value: null, + group: 'social', + id: '28', + is_fixed: '0', + label: 'Skype', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + twitter: { + alias: 'twitter', + default_value: null, + group: 'social', + id: '29', + is_fixed: '0', + label: 'Twitter', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + }, + frequencyRules: [], + id: 249, + ipAddresses: [ + { + id: 1, + ipAddress: '130.0.1.21', + ipDetails: { + city: null, + country: 'United Kingdom', + extra: '', + isp: '', + latitude: 51.4964, + longitude: -0.1224, + organization: '', + region: '', + timezone: 'Europe/London', + zipcode: null, + }, + }, + ], + isPublished: true, + lastActive: '2022-08-18T12:20:05+00:00', + modifiedBy: 1, + modifiedByUser: 'test rudderlabs', + owner: null, + points: 0, + preferredProfileImage: null, + stage: null, + tags: [], + utmtags: [], + }, + '254': { + color: null, + createdBy: 1, + createdByUser: 'test rudderlabs', + dateAdded: '2022-08-18T13:20:27+00:00', + dateIdentified: '2022-08-18T13:20:27+00:00', + dateModified: '2022-08-18T13:20:27+00:00', + doNotContact: [], + fields: { + all: { + address1: null, + address2: null, + attribution: null, + attribution_date: null, + b2b_or_b2c: null, + car_or_truck: null, + cart_status: null, + city: null, + company: null, + company_size: null, + country: null, + crm_id: null, + datetime: null, + email: null, + facebook: null, + fax: null, + firstname: null, + foursquare: null, + haspurchased: '1', + id: '254', + instagram: null, + last_active: '2020-02-02 00:23:09', + lastname: 'Kumar', + linkedin: null, + mobile: null, + nps__recommend: null, + phone: null, + points: 0, + position: null, + preferred_locale: null, + products: null, + prospect_or_customer: null, + role: null, + sandbox: null, + skype: null, + state: null, + subscription_status: null, + timezone: null, + title: null, + twitter: null, + website: null, + zipcode: null, + }, + core: { + address1: { + alias: 'address1', + default_value: null, + group: 'core', + id: '11', + is_fixed: '1', + label: 'Address Line 1', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + address2: { + alias: 'address2', + default_value: null, + group: 'core', + id: '12', + is_fixed: '1', + label: 'Address Line 2', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + attribution: { + alias: 'attribution', + default_value: null, + group: 'core', + id: '21', + is_fixed: '1', + label: 'Attribution', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";i:4;s:9:"precision";i:2;}', + type: 'number', + value: null, + }, + attribution_date: { + alias: 'attribution_date', + default_value: null, + group: 'core', + id: '20', + is_fixed: '1', + label: 'Attribution Date', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + b2b_or_b2c: { + alias: 'b2b_or_b2c', + default_value: null, + group: 'core', + id: '47', + is_fixed: '0', + label: 'B2B or B2C', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:3:"B2B";s:5:"value";s:3:"B2B";}i:1;a:2:{s:5:"label";s:3:"B2C";s:5:"value";s:3:"B2C";}}}', + type: 'select', + value: null, + }, + car_or_truck: { + alias: 'car_or_truck', + default_value: null, + group: 'core', + id: '52', + is_fixed: '0', + label: 'Car or Truck', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"Car";s:5:"value";s:3:"Car";}i:1;a:2:{s:5:"label";s:5:"Truck";s:5:"value";s:5:"Truck";}i:2;a:2:{s:5:"label";s:4:"Both";s:5:"value";s:4:"Both";}}}', + type: 'select', + value: null, + }, + cart_status: { + alias: 'cart_status', + default_value: null, + group: 'core', + id: '55', + is_fixed: '0', + label: 'Cart Status', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:5:"Empty";s:5:"value";s:5:"Empty";}i:1;a:2:{s:5:"label";s:4:"Full";s:5:"value";s:4:"Full";}}}', + type: 'select', + value: null, + }, + city: { + alias: 'city', + default_value: null, + group: 'core', + id: '13', + is_fixed: '1', + label: 'City', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + company: { + alias: 'company', + default_value: null, + group: 'core', + id: '4', + is_fixed: '1', + label: 'Primary company', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + company_size: { + alias: 'company_size', + default_value: null, + group: 'core', + id: '53', + is_fixed: '0', + label: 'Company size Custom', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:7:{i:0;a:2:{s:5:"label";s:15:"Less than 1,000";s:5:"value";s:15:"Less than 1,000";}i:1;a:2:{s:5:"label";s:14:"1,000 - 10,000";s:5:"value";s:14:"1,000 - 10,000";}i:2;a:2:{s:5:"label";s:16:"10,000 - 100,000";s:5:"value";s:16:"10,000 - 100,000";}i:3;a:2:{s:5:"label";s:17:"100,000 - 500,000";s:5:"value";s:17:"100,000 - 500,000";}i:4;a:2:{s:5:"label";s:12:"500,000 - 1M";s:5:"value";s:12:"500,000 - 1M";}i:5;a:2:{s:5:"label";s:7:"1M - 5M";s:5:"value";s:7:"1M - 5M";}i:6;a:2:{s:5:"label";s:3:"5M+";s:5:"value";s:3:"5M+";}}}', + type: 'select', + value: null, + }, + country: { + alias: 'country', + default_value: null, + group: 'core', + id: '16', + is_fixed: '1', + label: 'Country', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'country', + value: null, + }, + crm_id: { + alias: 'crm_id', + default_value: null, + group: 'core', + id: '45', + is_fixed: '0', + label: 'CRM ID', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + datetime: { + alias: 'datetime', + default_value: null, + group: 'core', + id: '50', + is_fixed: '0', + label: 'Webinar date/time signup', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: null, + }, + email: { + alias: 'email', + default_value: null, + group: 'core', + id: '6', + is_fixed: '1', + label: 'Email', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'email', + value: null, + }, + fax: { + alias: 'fax', + default_value: null, + group: 'core', + id: '10', + is_fixed: '0', + label: 'Fax', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + firstname: { + alias: 'firstname', + default_value: null, + group: 'core', + id: '2', + is_fixed: '1', + label: 'First Name', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + haspurchased: { + alias: 'haspurchased', + default_value: null, + group: 'core', + id: '46', + is_fixed: '0', + label: 'hasPurchased', + normalizedValue: 'Yes', + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: '1', + }, + last_active: { + alias: 'last_active', + default_value: null, + group: 'core', + id: '58', + is_fixed: '1', + label: 'Date Last Active', + normalizedValue: '2020-02-02 00:23:09', + object: 'lead', + properties: 'a:0:{}', + type: 'datetime', + value: '2020-02-02 00:23:09', + }, + lastname: { + alias: 'lastname', + default_value: null, + group: 'core', + id: '3', + is_fixed: '1', + label: 'Last Name', + normalizedValue: 'Kumar', + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: 'Kumar', + }, + mobile: { + alias: 'mobile', + default_value: null, + group: 'core', + id: '7', + is_fixed: '1', + label: 'Mobile', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + nps__recommend: { + alias: 'nps__recommend', + default_value: null, + group: 'core', + id: '56', + is_fixed: '0', + label: 'NPS - Recommend', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:9:"roundmode";s:1:"3";s:9:"precision";s:0:"";}', + type: 'number', + value: null, + }, + phone: { + alias: 'phone', + default_value: null, + group: 'core', + id: '8', + is_fixed: '1', + label: 'Phone', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'tel', + value: null, + }, + points: { + alias: 'points', + default_value: '0', + group: 'core', + id: '9', + is_fixed: '1', + label: 'Points', + normalizedValue: 0, + object: 'lead', + properties: 'a:0:{}', + type: 'number', + value: 0, + }, + position: { + alias: 'position', + default_value: null, + group: 'core', + id: '5', + is_fixed: '1', + label: 'Position', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + preferred_locale: { + alias: 'preferred_locale', + default_value: null, + group: 'core', + id: '17', + is_fixed: '1', + label: 'Preferred Locale', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'locale', + value: null, + }, + products: { + alias: 'products', + default_value: null, + group: 'core', + id: '48', + is_fixed: '0', + label: 'Products', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:27:"Mautic Marketing Automation";s:5:"value";s:27:"Mautic Marketing Automation";}i:1;a:2:{s:5:"label";s:28:"Maven Marketing Intelligence";s:5:"value";s:28:"Maven Marketing Intelligence";}i:2;a:2:{s:5:"label";s:28:"Maestro Marketing Management";s:5:"value";s:28:"Maestro Marketing Management";}}}', + type: 'select', + value: null, + }, + prospect_or_customer: { + alias: 'prospect_or_customer', + default_value: null, + group: 'core', + id: '51', + is_fixed: '0', + label: 'Prospect or Customer', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:2:{i:0;a:2:{s:5:"label";s:8:"Prospect";s:5:"value";s:8:"Prospect";}i:1;a:2:{s:5:"label";s:8:"Customer";s:5:"value";s:8:"Customer";}}}', + type: 'select', + value: null, + }, + role: { + alias: 'role', + default_value: null, + group: 'core', + id: '57', + is_fixed: '0', + label: 'Role', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:5:{i:0;a:2:{s:5:"label";s:22:"Individual Contributor";s:5:"value";s:22:"Individual Contributor";}i:1;a:2:{s:5:"label";s:7:"Manager";s:5:"value";s:7:"Manager";}i:2;a:2:{s:5:"label";s:8:"Director";s:5:"value";s:8:"Director";}i:3;a:2:{s:5:"label";s:9:"Executive";s:5:"value";s:9:"Executive";}i:4;a:2:{s:5:"label";s:10:"Consultant";s:5:"value";s:10:"Consultant";}}}', + type: 'select', + value: null, + }, + sandbox: { + alias: 'sandbox', + default_value: null, + group: 'core', + id: '54', + is_fixed: '0', + label: 'Sandbox', + normalizedValue: null, + object: 'lead', + properties: 'a:2:{s:2:"no";s:2:"No";s:3:"yes";s:3:"Yes";}', + type: 'boolean', + value: null, + }, + state: { + alias: 'state', + default_value: null, + group: 'core', + id: '14', + is_fixed: '1', + label: 'State', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'region', + value: null, + }, + subscription_status: { + alias: 'subscription_status', + default_value: null, + group: 'core', + id: '49', + is_fixed: '0', + label: 'Subscription Status', + normalizedValue: null, + object: 'lead', + properties: + 'a:1:{s:4:"list";a:3:{i:0;a:2:{s:5:"label";s:3:"New";s:5:"value";s:3:"New";}i:1;a:2:{s:5:"label";s:8:"Existing";s:5:"value";s:8:"Existing";}i:2;a:2:{s:5:"label";s:6:"Former";s:5:"value";s:6:"Former";}}}', + type: 'select', + value: null, + }, + timezone: { + alias: 'timezone', + default_value: null, + group: 'core', + id: '18', + is_fixed: '1', + label: 'Preferred Timezone', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'timezone', + value: null, + }, + title: { + alias: 'title', + default_value: null, + group: 'core', + id: '1', + is_fixed: '1', + label: 'Title', + normalizedValue: null, + object: 'lead', + properties: 'a:1:{s:4:"list";a:3:{i:0;s:2:"Mr";i:1;s:3:"Mrs";i:2;s:4:"Miss";}}', + type: 'lookup', + value: null, + }, + website: { + alias: 'website', + default_value: null, + group: 'core', + id: '22', + is_fixed: '0', + label: 'Website', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'url', + value: null, + }, + zipcode: { + alias: 'zipcode', + default_value: null, + group: 'core', + id: '15', + is_fixed: '1', + label: 'Zip Code', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + personal: [], + professional: [], + social: { + facebook: { + alias: 'facebook', + default_value: null, + group: 'social', + id: '23', + is_fixed: '0', + label: 'Facebook', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + foursquare: { + alias: 'foursquare', + default_value: null, + group: 'social', + id: '24', + is_fixed: '0', + label: 'Foursquare', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + instagram: { + alias: 'instagram', + default_value: null, + group: 'social', + id: '26', + is_fixed: '0', + label: 'Instagram', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + linkedin: { + alias: 'linkedin', + default_value: null, + group: 'social', + id: '27', + is_fixed: '0', + label: 'LinkedIn', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + skype: { + alias: 'skype', + default_value: null, + group: 'social', + id: '28', + is_fixed: '0', + label: 'Skype', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + twitter: { + alias: 'twitter', + default_value: null, + group: 'social', + id: '29', + is_fixed: '0', + label: 'Twitter', + normalizedValue: null, + object: 'lead', + properties: 'a:0:{}', + type: 'text', + value: null, + }, + }, + }, + frequencyRules: [], + id: 254, + ipAddresses: [], + isPublished: true, + lastActive: '2020-02-02T00:23:09+00:00', + modifiedBy: 1, + modifiedByUser: 'test rudderlabs', + owner: null, + points: 0, + preferredProfileImage: null, + stage: null, + tags: [], + utmtags: [], + }, + }, + total: '3', + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic VGVzdDQ1ODIzUnVkZGVybGFic0BnbWFpbC5jb206ZHVtbXlQYXNzd29yZA==', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://ruddertest2.mautic.net/api/contacts?where%5B0%5D%5Bcol%5D=lastname&where%5B0%5D%5Bexpr%5D=eq&where%5B0%5D%5Bval%5D=Singh', + }, + httpRes: { data: { Conatcts: {}, Total: 0 }, status: 200 }, + }, +]; diff --git a/test/integrations/destinations/mp/deleteUsers/data.ts b/test/integrations/destinations/mp/deleteUsers/data.ts new file mode 100644 index 0000000000..0f469b508f --- /dev/null +++ b/test/integrations/destinations/mp/deleteUsers/data.ts @@ -0,0 +1,3281 @@ +export const data = [ + { + name: 'mp', + description: 'Test 0', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'MP', + userAttributes: [ + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + ], + config: { + token: 'testToken', + prefixProperties: true, + useNativeSDK: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed for `delete profile` api', + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 1', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'MP', + userAttributes: [ + { + userId: 'rudder1', + }, + { + userId: 'rudder1', + }, + ], + config: { + token: 'testToken', + prefixProperties: true, + useNativeSDK: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 2', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'MP', + userAttributes: [ + { + userId: 'test_user_id', + }, + { + userId: 'user_sdk2', + }, + ], + config: { + apiKey: 'dummyApiKey', + prefixProperties: true, + useNativeSDK: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'API Token is a required field for user deletion', + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 3', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'MP', + userAttributes: [ + { + name: 'test1', + }, + ], + config: { + token: 'testToken', + prefixProperties: true, + useNativeSDK: false, + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 4', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'MP', + userAttributes: [ + { + userId: 'rudder1', + }, + { + userId: 'rudder2', + }, + { + userId: 'rudder3', + }, + ], + config: { + token: 'test_token', + prefixProperties: true, + useNativeSDK: false, + userDeletionApi: 'task', + gdprApiToken: 'test_gdpr_token', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 5', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'MP', + userAttributes: [ + { + userId: 'rudder1', + }, + ], + config: { + token: 'test_token', + prefixProperties: true, + useNativeSDK: false, + userDeletionApi: 'task', + dataResidency: 'eu', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'GDPR API Token is a required field for creating deletion task in mixpanel', + }, + ], + }, + }, + }, + { + name: 'mp', + description: 'Test 6', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'MP', + userAttributes: [ + { + userId: 'rudder1', + }, + ], + config: { + token: 'test_token', + prefixProperties: true, + useNativeSDK: false, + dataResidency: 'eu', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/mp/network.ts b/test/integrations/destinations/mp/network.ts new file mode 100644 index 0000000000..a386451a21 --- /dev/null +++ b/test/integrations/destinations/mp/network.ts @@ -0,0 +1,1150 @@ +const deleteNwData = [ + { + httpReq: { + method: 'post', + + url: 'https://api.mixpanel.com/engage', + data: [ + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + ], + headers: { + 'Content-Type': 'application/json', + Accept: 'text/plain', + }, + }, + httpRes: { + data: { + code: 400, + message: 'Bad Req', + status: 'Fail Case', + }, + status: 400, + }, + }, + { + httpReq: { + method: 'post', + + url: 'https://api.mixpanel.com/engage', + data: [ + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + { $distinct_id: 'rudder1', $token: 'testToken', $delete: null, $ignore_alias: true }, + ], + headers: { + 'Content-Type': 'application/json', + Accept: 'text/plain', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': '1', + }, + }, + }, + { + httpReq: { + method: 'post', + + url: 'https://api.mixpanel.com/engage', + data: [ + { + $distinct_id: 'rudder1', + $token: 'dummyAccessToken', + $delete: null, + $ignore_alias: true, + }, + { + $distinct_id: 'rudder1', + $token: 'dummyAccessToken', + $delete: null, + $ignore_alias: true, + }, + ], + headers: { + 'Content-Type': 'application/json', + Accept: 'text/plain', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': '1', + }, + }, + }, + { + httpReq: { + method: 'post', + + url: 'https://mixpanel.com/api/app/data-deletions/v3.0/?token=test_token', + data: { + distinct_ids: ['rudder1', 'rudder2', 'rudder3'], + compliance_type: 'CCPA', + }, + headers: { + 'Content-Type': 'application/json', + + Authorization: 'Bearer test_gdpr_token', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': '1', + }, + }, + }, + { + httpReq: { + method: 'post', + + url: 'https://mixpanel.com/api/app/data-deletions/v3.0/?token=test_token', + data: { + distinct_ids: ['rudder2'], + compliance_type: 'GDPR', + }, + headers: { + 'Content-Type': 'application/json', + Accept: 'text/plain', + Authorization: 'Bearer test_gdpr_token', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': '1', + }, + }, + }, + { + httpReq: { + method: 'post', + + url: 'https://api-eu.mixpanel.com/engage', + data: [ + { + $distinct_id: 'rudder1', + $token: 'dummyAccessToken', + $delete: null, + $ignore_alias: true, + }, + ], + headers: { + 'Content-Type': 'application/json', + Accept: 'text/plain', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': '1', + }, + }, + }, +]; +export const networkCallsData = [...deleteNwData]; diff --git a/test/integrations/destinations/optimizely_fullstack/network.ts b/test/integrations/destinations/optimizely_fullstack/network.ts new file mode 100644 index 0000000000..e6a1101ab9 --- /dev/null +++ b/test/integrations/destinations/optimizely_fullstack/network.ts @@ -0,0 +1,206 @@ +const deleteNwData = [ + { + httpReq: { + method: 'get', + url: 'https://cdn.optimizely.com/datafiles/abc.json', + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + accountId: 'test_account_id', + projectId: 'test_project_id', + revision: '45', + attributes: [ + { + id: 'test_attribute_id_1', + key: 'gender', + }, + { + id: 'test_attribute_id_2', + key: 'name', + }, + { + id: 'test_attribute_id_3', + key: 'userId', + }, + { + id: 'test_attribute_id_4', + key: 'anonymousId', + }, + { + id: 'test_attribute_id_5', + key: 'company', + }, + ], + audiences: [ + { + id: '$opt_test_audience', + name: 'Optimizely-Generated Audience for Backwards Compatibility', + conditions: + '["or", {"match": "exact", "name": "$opt_test_attribute", "type": "custom_attribute", "value": "$opt_test_value"}]', + }, + ], + version: '4', + events: [ + { + id: 'test_event_id_1', + experimentIds: ['test_experiment_id'], + key: 'Product Added', + }, + { + id: 'test_event_id_2', + experimentIds: ['test_experiment_id'], + key: 'Product Removed', + }, + { + id: 'test_event_id_3', + experimentIds: ['test_experiment_id'], + key: 'Order Placed', + }, + { + id: 'test_event_id_4', + experimentIds: ['test_experiment_id'], + key: 'Viewed Meal page', + }, + { + id: 'test_event_id_5', + experimentIds: ['test_experiment_id'], + key: 'Viewed food page', + }, + { + id: 'test_event_id_6', + experimentIds: ['test_experiment_id'], + key: 'Viewed Main screen', + }, + { + id: 'test_event_id_7', + experimentIds: ['test_experiment_id'], + key: 'Home', + }, + { + id: 'test_event_id_8', + experimentIds: ['test_experiment_id'], + key: 'Index', + }, + ], + anonymizeIP: true, + botFiltering: false, + typedAudiences: [], + variables: [], + environmentKey: 'production', + sdkKey: 'test_sdk_key', + featureFlags: [ + { + id: 'test_feature_flag_id', + key: 'testfeature', + experimentIds: ['test_experiment_id'], + rolloutId: 'test_rollout_id', + variables: [ + { + id: 'test_variable_id', + key: 'sort_method', + type: 'string', + defaultValue: 'alphabetical', + }, + ], + }, + ], + rollouts: [ + { + id: 'test_rollout_id', + experiments: [ + { + forcedVariations: {}, + id: 'test_experiment_id', + key: 'test_experiment_key', + status: 'Running', + trafficAllocation: [ + { + entityId: 'test_variation_id', + endOfRange: 10000, + }, + ], + variations: [ + { + id: 'test_variation_id', + key: 'test_variation_key', + variables: [ + { + id: 'test_variable_id', + value: 'alphabetical', + }, + ], + featureEnabled: true, + }, + ], + layerId: 'test_layer_id', + audienceIds: [], + }, + ], + }, + ], + experiments: [ + { + forcedVariations: {}, + id: 'test_experiment_id', + key: 'test_experiment_key', + status: 'Running', + trafficAllocation: [ + { + entityId: 'test_variation_id_1', + endOfRange: 5000, + }, + { + entityId: 'test_variation_id_2', + endOfRange: 10000, + }, + ], + variations: [ + { + id: 'test_variation_id_1', + key: 'variation_1', + variables: [ + { + id: 'test_variable_id', + value: 'popular_first', + }, + ], + featureEnabled: true, + }, + { + id: 'test_variation_id_2', + key: 'variation_2', + variables: [ + { + id: 'test_variable_id', + value: 'popular_first', + }, + ], + featureEnabled: true, + }, + ], + layerId: 'test_layer_id', + audienceIds: [], + }, + ], + groups: [], + }, + }, + }, + { + httpReq: { + method: 'get', + url: 'https://cdn.optimizely.com/datafiles/wrong_cdn.json', + }, + httpRes: { + status: 404, + statusText: 'Not Found', + data: { + code: 'document_not_found', + message: 'document_not_found', + }, + }, + }, +]; +export const networkCallsData = [...deleteNwData]; diff --git a/test/integrations/destinations/optimizely_fullstack/processor/data.ts b/test/integrations/destinations/optimizely_fullstack/processor/data.ts new file mode 100644 index 0000000000..47ce3314fd --- /dev/null +++ b/test/integrations/destinations/optimizely_fullstack/processor/data.ts @@ -0,0 +1,2170 @@ +import utils from '../../../../../src/v0/util'; +export const mockFns = (_) => { + // @ts-ignore + jest.spyOn(utils, 'generateUUID').mockImplementation(() => 'generated_uuid'); +}; +export const data = [ + { + name: 'optimizely_fullstack', + description: 'Missing Data File URL', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + integrations: { + All: true, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + }, + }, + metadata: { + jobId: 1, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Data File Url is not present. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Data File Url is not present. Aborting', + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'platform', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 1, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Identify call: Missing Variation ID in integration object', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + integrations: { + All: true, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + }, + }, + metadata: { + jobId: 2, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Variation ID is not present in the integrations object: Workflow: procWorkflow, Step: validateInputForIdentify, ChildStep: undefined, OriginalError: Variation ID is not present in the integrations object', + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'platform', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 2, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Missing Account ID', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + integrations: { + All: true, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + }, + }, + metadata: { + jobId: 3, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Account ID is not present. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Account ID is not present. Aborting', + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'platform', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 3, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Missing Campaign ID', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + integrations: { + All: true, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + experimentId: 'test_experiment_id', + }, + }, + metadata: { + jobId: 4, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Campaign ID is not present. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Campaign ID is not present. Aborting', + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'platform', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 4, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Missing Experiment ID', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + integrations: { + All: true, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + }, + }, + metadata: { + jobId: 5, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Experiment ID is not present. Aborting: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: Experiment ID is not present. Aborting', + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'platform', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 5, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Page: Track Categorized Page and Track Named Pages toggle are disabled', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + channel: 'web', + name: 'Home', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + integrations: { + All: true, + optimizely_fullstack: { + variationId: '123', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + trackCategorizedPages: false, + trackNamedPages: false, + }, + }, + metadata: { + jobId: 6, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + "Both 'Track Categorized Pages' and 'Track Named Pages' toggles are disabled in webapp. Please enable at one of them to send page/screen events to Optimizely.: Workflow: procWorkflow, Step: validateInputForPageAndScreen, ChildStep: undefined, OriginalError: Both 'Track Categorized Pages' and 'Track Named Pages' toggles are disabled in webapp. Please enable at one of them to send page/screen events to Optimizely.", + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'platform', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 6, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: + 'Invalid Configuration (Track known users toggle is on and userId is missing in request)', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + channel: 'web', + event: 'Product Added', + properties: { + price: 999, + quantity: 1, + }, + context: { + traits: { + firstName: 'John', + age: 27, + }, + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + optimizely_fullstack: { + variationId: '123', + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + trackCategorizedPages: false, + trackNamedPages: false, + trackKnownUsers: true, + }, + }, + metadata: { + jobId: 7, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + "UserId is required for event tracking when the 'Track Known Users' setting is enabled. Please include a 'userId' in your event payload: Workflow: procWorkflow, Step: validateInput, ChildStep: undefined, OriginalError: UserId is required for event tracking when the 'Track Known Users' setting is enabled. Please include a 'userId' in your event payload", + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'platform', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 7, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Track call without event', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + }, + }, + metadata: { + jobId: 9, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Event is not present. Aborting.: Workflow: procWorkflow, Step: validateInputForTrack, ChildStep: undefined, OriginalError: Event is not present. Aborting.', + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'platform', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 9, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Invalid data file url', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Product Added', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/wrong_cdn.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + }, + }, + metadata: { + jobId: 10, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + 'Data File Lookup Failed due to {"code":"document_not_found","message":"document_not_found"}: Workflow: procWorkflow, Step: dataFile, ChildStep: undefined, OriginalError: Data File Lookup Failed due to {"code":"document_not_found","message":"document_not_found"}', + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'platform', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 10, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Event not present in data-file', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Product Added', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + integrations: { + All: true, + optimizely_fullstack: { + variationId: '123', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + eventMapping: [ + { + from: 'Product Added', + to: 'product_added', + }, + ], + }, + }, + metadata: { + jobId: 11, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + error: + "Event 'product_added' is not present in data file. Make sure event exists in Optimizely.: Workflow: procWorkflow, Step: prepareTrackPayload, ChildStep: optimizelyEvent, OriginalError: Event 'product_added' is not present in data file. Make sure event exists in Optimizely.", + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'platform', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + metadata: { + jobId: 11, + }, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Identify call (Decision Event) with userId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: { + traits: { + organization: 'RudderStack', + fullName: 'John Doe', + country: 'US', + }, + sessionId: 1685626914716, + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + timestamp: '2023-02-10T12:16:07.251Z', + userId: 'userId123', + integrations: { + All: true, + optimizely_fullstack: { + variationId: 'test_variation_id_1', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + attributeMapping: [ + { + from: 'organization', + to: 'company', + }, + { + from: 'fullName', + to: 'name', + }, + ], + }, + }, + metadata: { + jobId: 12, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 12 }, + output: { + body: { + FORM: {}, + JSON: { + account_id: 'test_account_id', + anonymize_ip: false, + client_name: 'RudderStack', + client_version: '1.0.0', + enrich_decisions: true, + visitors: [ + { + attributes: [ + { + entity_id: 'test_attribute_id_5', + key: 'company', + type: 'custom', + value: 'RudderStack', + }, + { + entity_id: 'test_attribute_id_2', + key: 'name', + type: 'custom', + value: 'John Doe', + }, + ], + session_id: '1685626914716', + snapshots: [ + { + decisions: [ + { + campaign_id: 'test_campaign_id', + experiment_id: 'test_experiment_id', + variation_id: 'test_variation_id_1', + }, + ], + events: [ + { + entity_id: 'test_campaign_id', + timestamp: 1676031367251, + type: 'campaign_activated', + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + }, + ], + }, + ], + visitor_id: 'userId123', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + }, + endpoint: 'https://logx.optimizely.com/v1/events', + files: {}, + headers: { 'Content-Type': 'application/json' }, + method: 'POST', + params: {}, + type: 'REST', + userId: '', + version: '1', + }, + statusCode: 200, + }, + ], + }, + }, + }, + + { + name: 'optimizely_fullstack', + description: 'Identify call (Decision Event) with anonymousId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: { + traits: { + organization: 'RudderStack', + fullName: 'John Doe', + country: 'US', + }, + sessionId: 1685626914716, + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + timestamp: '2023-02-10T12:16:07.251Z', + userId: 'userId123', + integrations: { + All: true, + optimizely_fullstack: { + variationId: 'test_variation_id_1', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: false, + }, + }, + metadata: { + jobId: 13, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 13 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: false, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: '97c46c81-3140-456d-b2a9-690d70aaca35', + snapshots: [ + { + decisions: [ + { + campaign_id: 'test_campaign_id', + experiment_id: 'test_experiment_id', + variation_id: 'test_variation_id_1', + }, + ], + events: [ + { + entity_id: 'test_campaign_id', + type: 'campaign_activated', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + userId: '', + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Identify call (Decision Event) with projectId is empty"', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: { + traits: { + organization: 'RudderStack', + fullName: 'John Doe', + country: 'US', + }, + sessionId: 1685626914716, + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + timestamp: '2023-02-10T12:16:07.251Z', + userId: 'userId123', + integrations: { + All: true, + optimizely_fullstack: { + variationId: 'test_variation_id_1', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + projectId: '', + attributeMapping: [ + { + from: 'organization', + to: 'company', + }, + { + from: 'fullName', + to: 'name', + }, + ], + }, + }, + metadata: { + jobId: 14, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 14 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + userId: '', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: false, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + attributes: [ + { + entity_id: 'test_attribute_id_5', + key: 'company', + type: 'custom', + value: 'RudderStack', + }, + { + entity_id: 'test_attribute_id_2', + key: 'name', + type: 'custom', + value: 'John Doe', + }, + ], + snapshots: [ + { + decisions: [ + { + campaign_id: 'test_campaign_id', + experiment_id: 'test_experiment_id', + variation_id: 'test_variation_id_1', + }, + ], + events: [ + { + entity_id: 'test_campaign_id', + type: 'campaign_activated', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Track Named Page: mapping is not provided for page name in webapp', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + userId: 'userId123', + name: 'Meal', + channel: 'web', + context: { + traits: { + organization: 'RudderStack', + fullName: 'John Doe', + }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { + foo: 'bar', + }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { + variationId: 'test_variation_id_1', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: false, + trackNamedPages: true, + pageMapping: [ + { + from: 'Home', + to: 'Viewed Home Page', + }, + { + from: 'food', + to: 'Product Added', + }, + ], + }, + }, + metadata: { + jobId: 15, + }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 15 }, + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'platform', + feature: 'processor', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + error: + 'Events [meal] are not present in the data file. Make sure events exist in Optimizely.: Workflow: procWorkflow, Step: preparePageOrScreenPayload, ChildStep: optimizelyEvents, OriginalError: Events [meal] are not present in the data file. Make sure events exist in Optimizely.', + }, + ], + }, + }, + }, + + { + name: 'optimizely_fullstack', + description: 'Track call (Conversion event) with userId', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'product_added', + userId: 'userId123', + channel: 'web', + context: { + traits: { organization: 'RudderStack', fullName: 'John Doe' }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { foo: 'bar', revenue: 123, quantity: 2 }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { variationId: 'test_variation_id_2' }, + }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + eventMapping: [ + { from: 'Product Searched', to: 'Searched' }, + { from: 'product_added', to: 'Product Added' }, + ], + attributeMapping: [ + { from: 'organization', to: 'company' }, + { from: 'fullName', to: 'name' }, + ], + }, + }, + metadata: { jobId: 20 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 20 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + attributes: [ + { + entity_id: 'test_attribute_id_5', + key: 'company', + type: 'custom', + value: 'RudderStack', + }, + { + entity_id: 'test_attribute_id_2', + key: 'name', + type: 'custom', + value: 'John Doe', + }, + ], + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_1', + key: 'Product Added', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + quantity: 2, + revenue: 12300, + tags: { foo: 'bar' }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Track call (Conversion event) without event mapping configured in webapp', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'Product Added', + channel: 'web', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + timestamp: '2023-02-10T12:16:07.251Z', + integrations: { All: true, optimizely_fullstack: { variationId: '123' } }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + }, + }, + metadata: { jobId: 21 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 21 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: false, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: '97c46c81-3140-456d-b2a9-690d70aaca35', + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_1', + key: 'Product Added', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + tags: {}, + }, + ], + }, + ], + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Track call: Missing Variation ID in integration object ', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'track', + event: 'product_added', + userId: 'userId123', + channel: 'web', + context: { + traits: { organization: 'RudderStack', fullName: 'John Doe' }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { foo: 'bar', revenue: 123, quantity: 2 }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { All: true }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + eventMapping: [ + { from: 'Product Searched', to: 'Searched' }, + { from: 'product_added', to: 'Product Added' }, + ], + attributeMapping: [ + { from: 'organization', to: 'company' }, + { from: 'fullName', to: 'name' }, + ], + }, + }, + metadata: { jobId: 22 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 22 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + attributes: [ + { + entity_id: 'test_attribute_id_5', + key: 'company', + type: 'custom', + value: 'RudderStack', + }, + { + entity_id: 'test_attribute_id_2', + key: 'name', + type: 'custom', + value: 'John Doe', + }, + ], + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_1', + key: 'Product Added', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + quantity: 2, + revenue: 12300, + tags: { foo: 'bar' }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Track Categorized and Named Page', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + name: 'Meal', + userId: 'userId123', + channel: 'web', + context: { + traits: { organization: 'RudderStack', fullName: 'John Doe' }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { foo: 'bar', category: 'food' }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { variationId: 'test_variation_id_1' }, + }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: true, + trackNamedPages: true, + pageMapping: [ + { from: 'meal', to: 'Viewed Meal Page' }, + { from: 'food', to: 'Product Added' }, + ], + }, + }, + metadata: { jobId: 23 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 23 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_1', + key: 'Product Added', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + tags: { foo: 'bar', category: 'food' }, + }, + { + entity_id: 'test_event_id_4', + key: 'Viewed Meal page', + timestamp: 1676031367251, + uuid: 'generated_uuid', + tags: { foo: 'bar', category: 'food' }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Track Categorized and Named Page without event mapping configured in webapp', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + name: 'home', + userId: 'userId123', + channel: 'web', + context: { + traits: { organization: 'RudderStack', fullName: 'John Doe' }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { foo: 'bar', category: 'index' }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { variationId: 'test_variation_id_1' }, + }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: true, + trackNamedPages: true, + pageMapping: [{ from: '', to: '' }], + }, + }, + metadata: { jobId: 24 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 24 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_8', + key: 'Index', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + tags: { foo: 'bar', category: 'index' }, + }, + { + entity_id: 'test_event_id_7', + key: 'Home', + timestamp: 1676031367251, + uuid: 'generated_uuid', + tags: { foo: 'bar', category: 'index' }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: + 'Track Categorized Page: trackCategorizedPages,trackNamedPages toggle are enabled and name is not provided', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + userId: 'userId123', + channel: 'web', + context: { + traits: { organization: 'RudderStack', fullName: 'John Doe' }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { foo: 'bar', category: 'food' }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { variationId: 'test_variation_id_1' }, + }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: true, + trackNamedPages: true, + pageMapping: [ + { from: 'meal', to: 'Viewed Meal Page' }, + { from: 'food', to: 'Product Added' }, + ], + }, + }, + metadata: { jobId: 25 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 25 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_1', + key: 'Product Added', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + tags: { foo: 'bar', category: 'food' }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: + 'Track Named Page: trackCategorizedPages,trackNamedPages toggle are enabled and category is not provided', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + userId: 'userId123', + name: 'Meal', + channel: 'web', + context: { + traits: { organization: 'RudderStack', fullName: 'John Doe' }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { foo: 'bar' }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { variationId: 'test_variation_id_1' }, + }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: true, + trackNamedPages: true, + pageMapping: [ + { from: 'meal', to: 'Viewed Meal Page' }, + { from: 'food', to: 'Product Added' }, + ], + }, + }, + metadata: { jobId: 26 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 26 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_4', + key: 'Viewed Meal page', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + tags: { foo: 'bar' }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: + 'Track Named Page: trackCategorizedPages,trackNamedPages toggle are enabled and category mapping is wrong', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'page', + userId: 'userId123', + name: 'Meal', + channel: 'web', + context: { + traits: { organization: 'RudderStack', fullName: 'John Doe' }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { foo: 'bar' }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { variationId: 'test_variation_id_1' }, + }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: true, + trackNamedPages: true, + pageMapping: [ + { from: 'meal', to: 'Viewed Meal Page' }, + { from: 'food', to: 'ABC' }, + ], + }, + }, + metadata: { jobId: 27 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 27 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_4', + key: 'Viewed Meal page', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + tags: { foo: 'bar' }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, + { + name: 'optimizely_fullstack', + description: 'Track Categorized and Named Screen', + feature: 'processor', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + message: { + type: 'screen', + name: 'Home', + userId: 'userId123', + channel: 'web', + context: { + traits: { organization: 'RudderStack', fullName: 'John Doe' }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { foo: 'bar', category: 'food' }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { variationId: 'test_variation_id_1' }, + }, + }, + destination: { + DestinationDefinition: { Config: { cdkV2Enabled: true } }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: true, + trackNamedPages: true, + pageMapping: [ + { from: 'home', to: 'Viewed Main Screen' }, + { from: 'food', to: 'Product Added' }, + ], + }, + }, + metadata: { jobId: 28 }, + }, + ], + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: [ + { + metadata: { jobId: 28 }, + output: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { 'Content-Type': 'application/json' }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_1', + key: 'Product Added', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + tags: { foo: 'bar', category: 'food' }, + }, + { + entity_id: 'test_event_id_6', + key: 'Viewed Main screen', + timestamp: 1676031367251, + uuid: 'generated_uuid', + tags: { foo: 'bar', category: 'food' }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + userId: '', + }, + statusCode: 200, + }, + ], + }, + }, + }, +].map((d) => ({ ...d, mockFns })); diff --git a/test/integrations/destinations/optimizely_fullstack/router/data.ts b/test/integrations/destinations/optimizely_fullstack/router/data.ts new file mode 100644 index 0000000000..1803881f30 --- /dev/null +++ b/test/integrations/destinations/optimizely_fullstack/router/data.ts @@ -0,0 +1,563 @@ +import { FEATURES } from '../../../../../src/v0/util/tags'; +import { mockFns } from '../processor/data'; + +export const data = [ + { + name: 'optimizely_fullstack', + description: 'Test 0', + feature: FEATURES.ROUTER, + module: 'destination', + version: 'v0', + input: { + request: { + body: { + input: [ + { + message: { + type: 'identify', + channel: 'web', + properties: {}, + context: { + traits: { + organization: 'RudderStack', + fullName: 'John Doe', + country: 'US', + }, + sessionId: 1685626914716, + }, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + timestamp: '2023-02-10T12:16:07.251Z', + userId: 'userId123', + integrations: { + All: true, + optimizely_fullstack: { + variationId: 'test_variation_id_1', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + attributeMapping: [ + { + from: 'organization', + to: 'company', + }, + { + from: 'fullName', + to: 'name', + }, + ], + }, + }, + metadata: { + jobId: 1, + }, + }, + { + message: { + type: 'track', + event: 'product_added', + userId: 'userId123', + channel: 'web', + context: { + traits: { + organization: 'RudderStack', + fullName: 'John Doe', + }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { + foo: 'bar', + revenue: 123, + quantity: 2, + }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { + variationId: 'test_variation_id_2', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + eventMapping: [ + { + from: 'Product Searched', + to: 'Searched', + }, + { + from: 'product_added', + to: 'Product Added', + }, + ], + attributeMapping: [ + { + from: 'organization', + to: 'company', + }, + { + from: 'fullName', + to: 'name', + }, + ], + }, + }, + metadata: { + jobId: 2, + }, + }, + { + message: { + type: 'page', + userId: 'userId123', + channel: 'web', + context: { + traits: { + organization: 'RudderStack', + fullName: 'John Doe', + }, + sessionId: 1685626914716, + }, + rudderId: '5354b3f2-cb72-4355-a2b5-a298c3837c7d', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + timestamp: '2023-02-10T12:16:07.251Z', + properties: { + foo: 'bar', + category: 'food', + }, + anonymousId: '856365b8-da4b-4c13-9098-84df18559446', + integrations: { + All: true, + optimizely_fullstack: { + variationId: 'test_variation_id_1', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: true, + trackNamedPages: false, + pageMapping: [ + { + from: 'meal', + to: 'Viewed Meal Page', + }, + { + from: 'food', + to: 'Product Added', + }, + ], + }, + }, + metadata: { + jobId: 3, + }, + }, + { + message: { + type: 'page', + channel: 'web', + name: 'Home', + properties: {}, + context: {}, + rudderId: '8f8fa6b5-8e24-489c-8e22-61f23f2e364f', + messageId: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + anonymousId: '97c46c81-3140-456d-b2a9-690d70aaca35', + integrations: { + All: true, + optimizely_fullstack: { + variationId: '123', + }, + }, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + experimentId: 'test_experiment_id', + trackCategorizedPages: false, + trackNamedPages: false, + }, + }, + metadata: { + jobId: 4, + }, + }, + ], + destType: 'optimizely_fullstack', + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: [ + { + batched: false, + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: false, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + attributes: [ + { + entity_id: 'test_attribute_id_5', + key: 'company', + type: 'custom', + value: 'RudderStack', + }, + { + entity_id: 'test_attribute_id_2', + key: 'name', + type: 'custom', + value: 'John Doe', + }, + ], + snapshots: [ + { + decisions: [ + { + campaign_id: 'test_campaign_id', + experiment_id: 'test_experiment_id', + variation_id: 'test_variation_id_1', + }, + ], + events: [ + { + entity_id: 'test_campaign_id', + type: 'campaign_activated', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + attributeMapping: [ + { + from: 'organization', + to: 'company', + }, + { + from: 'fullName', + to: 'name', + }, + ], + }, + }, + metadata: [ + { + jobId: 1, + }, + ], + statusCode: 200, + }, + { + batched: false, + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + attributes: [ + { + entity_id: 'test_attribute_id_5', + key: 'company', + type: 'custom', + value: 'RudderStack', + }, + { + entity_id: 'test_attribute_id_2', + key: 'name', + type: 'custom', + value: 'John Doe', + }, + ], + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_1', + key: 'Product Added', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + quantity: 2, + revenue: 12300, + tags: { + foo: 'bar', + }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + eventMapping: [ + { + from: 'Product Searched', + to: 'Searched', + }, + { + from: 'product_added', + to: 'Product Added', + }, + ], + attributeMapping: [ + { + from: 'organization', + to: 'company', + }, + { + from: 'fullName', + to: 'name', + }, + ], + }, + }, + metadata: [ + { + jobId: 2, + }, + ], + statusCode: 200, + }, + { + batched: false, + batchedRequest: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://logx.optimizely.com/v1/events', + headers: { + 'Content-Type': 'application/json', + }, + params: {}, + body: { + JSON: { + account_id: 'test_account_id', + anonymize_ip: true, + enrich_decisions: true, + client_name: 'RudderStack', + client_version: '1.0.0', + visitors: [ + { + visitor_id: 'userId123', + snapshots: [ + { + decisions: [], + events: [ + { + entity_id: 'test_event_id_1', + key: 'Product Added', + timestamp: 1676031367251, + uuid: '2116ef8c-efc3-4ca4-851b-02ee60dad6ff', + tags: { + foo: 'bar', + category: 'food', + }, + }, + ], + }, + ], + session_id: '1685626914716', + }, + ], + }, + JSON_ARRAY: {}, + XML: {}, + FORM: {}, + }, + files: {}, + }, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + accountId: 'test_account_id', + campaignId: 'test_campaign_id', + experimentId: 'test_experiment_id', + trackKnownUsers: true, + anonymizeIp: true, + trackCategorizedPages: true, + trackNamedPages: false, + pageMapping: [ + { + from: 'meal', + to: 'Viewed Meal Page', + }, + { + from: 'food', + to: 'Product Added', + }, + ], + }, + }, + metadata: [ + { + jobId: 3, + }, + ], + statusCode: 200, + }, + { + batched: false, + destination: { + DestinationDefinition: { + Config: { + cdkV2Enabled: true, + }, + }, + Config: { + accountId: 'test_account_id', + campaignId: 'test_campagin_id', + dataFileUrl: 'https://cdn.optimizely.com/datafiles/abc.json', + experimentId: 'test_experiment_id', + trackCategorizedPages: false, + trackNamedPages: false, + }, + }, + error: + "Both 'Track Categorized Pages' and 'Track Named Pages' toggles are disabled in webapp. Please enable at one of them to send page/screen events to Optimizely.", + metadata: [ + { + jobId: 4, + }, + ], + statTags: { + destType: 'OPTIMIZELY_FULLSTACK', + errorCategory: 'dataValidation', + errorType: 'configuration', + feature: 'router', + implementation: 'cdkV2', + module: 'destination', + }, + statusCode: 400, + }, + ], + }, + }, + }, + mockFns, + }, +]; diff --git a/test/integrations/destinations/pardot/network.ts b/test/integrations/destinations/pardot/network.ts new file mode 100644 index 0000000000..bbbe0d70f9 --- /dev/null +++ b/test/integrations/destinations/pardot/network.ts @@ -0,0 +1,440 @@ +import { enhanceRequestOptions, getFormData } from '../../../../src/adapters/network'; + +export const networkCallsData = [ + // 2nd proxy test-case + { + httpReq: { + url: 'https://pi.pardot.com/api/prospect/version/4/do/upsert/email/Roger_12@waltair.io', + data: getFormData({ + first_name: 'Roger_12', + last_name: 'Federer_12', + website: 'https://rudderstack.com', + score: 14, + campaign_id: 42213, + format: 'json', + }).toString(), + params: { destination: 'pardot' }, + headers: { + Authorization: 'Bearer myToken', + 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + '@attributes': { + stat: 'ok', + version: 1, + }, + prospect: { + id: 123435, + campaign_id: 42213, + salutation: null, + first_name: 'Roger_12', + last_name: 'Federer_12', + email: 'Roger_12@waltair.io', + password: null, + company: null, + website: 'https://rudderstack.com', + job_title: null, + department: null, + country: 'AU', + address_one: null, + address_two: null, + city: null, + state: null, + territory: null, + zip: null, + phone: null, + fax: null, + source: null, + annual_revenue: null, + employees: null, + industry: null, + years_in_business: null, + comments: null, + notes: null, + score: 14, + grade: null, + last_activity_at: null, + recent_interaction: 'Never active.', + crm_lead_fid: null, + crm_contact_fid: null, + crm_owner_fid: '00G2v000004WYXaEAO', + crm_account_fid: null, + salesforce_fid: null, + crm_last_sync: null, + crm_url: null, + is_do_not_email: null, + is_do_not_call: null, + opted_out: null, + is_reviewed: 1, + is_starred: null, + created_at: '2022-01-21 18:21:46', + updated_at: '2022-01-21 18:48:41', + campaign: { + id: 42113, + name: 'Test', + crm_fid: '7012y000000MNOCLL4', + }, + assigned_to: { + user: { + id: 38443703, + email: 'test_rudderstack@testcompany.com', + first_name: 'Rudderstack', + last_name: 'User', + job_title: null, + role: 'Administrator', + account: 489853, + created_at: '2021-02-26 06:25:17', + updated_at: '2021-02-26 06:25:17', + }, + }, + Are_you_shipping_large_fragile_or_bulky_items: false, + Calendly: false, + Country_Code: 'AU', + Currency: 'AUD', + Inventory_or_Warehouse_Management_System: false, + Lead_Status: 'New', + Marketing_Stage: 'SAL', + Record_Type_ID: 'TestCompany Lead', + profile: { + id: 304, + name: 'Default', + profile_criteria: [ + { + id: 1500, + name: 'Shipping Volume', + matches: 'Unknown', + }, + { + id: 1502, + name: 'Industry', + matches: 'Unknown', + }, + { + id: 1506, + name: 'Job Title', + matches: 'Unknown', + }, + { + id: 1508, + name: 'Department', + matches: 'Unknown', + }, + ], + }, + visitors: null, + visitor_activities: null, + lists: null, + }, + }, + status: 201, + statusText: 'Created', + }, + }, + // 4th proxy test-case + { + httpReq: { + url: 'https://pi.pardot.com/api/prospect/version/4/do/upsert/email/rolex_waltair@mywebsite.io', + data: getFormData({ + first_name: 'Rolex', + last_name: 'Waltair', + website: 'https://rudderstack.com', + score: 15, + campaign_id: 42213, + format: 'json', + }).toString(), + params: { destination: 'pardot' }, + headers: { + Authorization: 'Bearer myExpiredToken', + 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + '@attributes': { + stat: 'fail', + version: 1, + err_code: 184, + }, + err: 'access_token is invalid, unknown, or malformed: Inactive token', + }, + status: 401, + statusText: 'Unauthorized', + }, + }, + // 1st proxy test-case + { + httpReq: { + url: 'https://pi.pardot.com/api/prospect/version/4/do/upsert/id/123435', + data: getFormData({ + first_name: 'Roger12', + last_name: 'Federer12', + website: 'https://rudderstack.com', + score: 14, + campaign_id: 42213, + format: 'json', + }).toString(), + params: { destination: 'pardot' }, + headers: { + Authorization: 'Bearer myToken', + 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + '@attributes': { + stat: 'ok', + version: 1, + }, + prospect: { + id: 123435, + campaign_id: 42213, + salutation: null, + first_name: 'Roger12', + last_name: 'Federer12', + email: 'Roger12@waltair.io', + password: null, + company: null, + website: 'https://rudderstack.com', + job_title: null, + department: null, + country: 'AU', + address_one: null, + address_two: null, + city: null, + state: null, + territory: null, + zip: null, + phone: null, + fax: null, + source: null, + annual_revenue: null, + employees: null, + industry: null, + years_in_business: null, + comments: null, + notes: null, + score: 14, + grade: null, + last_activity_at: null, + recent_interaction: 'Never active.', + crm_lead_fid: null, + crm_contact_fid: null, + crm_owner_fid: '00G2v000004WYXaEAO', + crm_account_fid: null, + salesforce_fid: null, + crm_last_sync: null, + crm_url: null, + is_do_not_email: null, + is_do_not_call: null, + opted_out: null, + is_reviewed: 1, + is_starred: null, + created_at: '2022-01-21 18:21:46', + updated_at: '2022-01-21 18:48:41', + campaign: { + id: 42113, + name: 'Test', + crm_fid: '7012y000000MNOCLL4', + }, + assigned_to: { + user: { + id: 38443703, + email: 'test_rudderstack@testcompany.com', + first_name: 'Rudderstack', + last_name: 'User', + job_title: null, + role: 'Administrator', + account: 489853, + created_at: '2021-02-26 06:25:17', + updated_at: '2021-02-26 06:25:17', + }, + }, + Are_you_shipping_large_fragile_or_bulky_items: false, + Calendly: false, + Country_Code: 'AU', + Currency: 'AUD', + Inventory_or_Warehouse_Management_System: false, + Lead_Status: 'New', + Marketing_Stage: 'SAL', + Record_Type_ID: 'TestCompany Lead', + profile: { + id: 304, + name: 'Default', + profile_criteria: [ + { + id: 1500, + name: 'Shipping Volume', + matches: 'Unknown', + }, + { + id: 1502, + name: 'Industry', + matches: 'Unknown', + }, + { + id: 1506, + name: 'Job Title', + matches: 'Unknown', + }, + { + id: 1508, + name: 'Department', + matches: 'Unknown', + }, + ], + }, + visitors: null, + visitor_activities: null, + lists: null, + }, + }, + status: 200, + statusText: 'OK', + }, + }, + // 3rd proxy test-case + { + httpReq: { + url: 'https://pi.pardot.com/api/prospect/version/4/do/upsert/fid/00Q6r000002LKhTPVR', + data: getFormData({ + first_name: 'Nick', + last_name: 'Kyrgios', + website: 'https://rudderstack.com', + score: 12, + campaign_id: 42213, + format: 'json', + }).toString(), + params: { destination: 'pardot' }, + headers: { + Authorization: 'Bearer myToken', + 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + 'User-Agent': 'RudderLabs', + }, + method: 'POST', + }, + httpRes: { + data: { + '@attributes': { + stat: 'ok', + version: 1, + }, + prospect: { + id: 123435, + campaign_id: 42213, + salutation: null, + first_name: 'Roger_12', + last_name: 'Federer_12', + email: 'Roger_12@federer.io', + password: null, + company: null, + website: 'https://rudderstack.com', + job_title: null, + department: null, + country: 'AU', + address_one: null, + address_two: null, + city: null, + state: null, + territory: null, + zip: null, + phone: null, + fax: null, + source: null, + annual_revenue: null, + employees: null, + industry: null, + years_in_business: null, + comments: null, + notes: null, + score: 14, + grade: null, + last_activity_at: null, + recent_interaction: 'Never active.', + crm_lead_fid: '00Q6r000002LKhTPVR', + crm_contact_fid: null, + crm_owner_fid: '00G2v000004WYXaEAO', + crm_account_fid: null, + salesforce_fid: '00Q6r000002LKhTPVR', + crm_last_sync: '2022-01-21 18:47:37', + crm_url: 'https://testcompany.my.salesforce.com/00Q6r000002LKhTPVR', + is_do_not_email: null, + is_do_not_call: null, + opted_out: null, + is_reviewed: 1, + is_starred: null, + created_at: '2022-01-21 18:21:46', + updated_at: '2022-01-21 18:48:41', + campaign: { + id: 42113, + name: 'Test', + crm_fid: '7012y000000MNOCLL4', + }, + assigned_to: { + user: { + id: 38443703, + email: 'test_rudderstack@testcompany.com', + first_name: 'Rudderstack', + last_name: 'User', + job_title: null, + role: 'Administrator', + account: 489853, + created_at: '2021-02-26 06:25:17', + updated_at: '2021-02-26 06:25:17', + }, + }, + Are_you_shipping_large_fragile_or_bulky_items: false, + Calendly: false, + Country_Code: 'AU', + Currency: 'AUD', + Inventory_or_Warehouse_Management_System: false, + Lead_Status: 'New', + Marketing_Stage: 'SAL', + Record_Type_ID: 'TestCompany Lead', + profile: { + id: 304, + name: 'Default', + profile_criteria: [ + { + id: 1500, + name: 'Shipping Volume', + matches: 'Unknown', + }, + { + id: 1502, + name: 'Industry', + matches: 'Unknown', + }, + { + id: 1506, + name: 'Job Title', + matches: 'Unknown', + }, + { + id: 1508, + name: 'Department', + matches: 'Unknown', + }, + ], + }, + visitors: null, + visitor_activities: null, + lists: null, + }, + }, + status: 200, + statusText: 'OK', + }, + }, +]; diff --git a/test/integrations/destinations/pardot/router/data.ts b/test/integrations/destinations/pardot/router/data.ts index 28680deafc..7c2a2a11e3 100644 --- a/test/integrations/destinations/pardot/router/data.ts +++ b/test/integrations/destinations/pardot/router/data.ts @@ -1,3 +1,5 @@ +import { FEATURES, MODULES } from '../../../../../src/v0/util/tags'; + export const data = [ { name: 'pardot', @@ -1014,4 +1016,555 @@ export const data = [ }, }, }, + { + name: 'pardot', + description: 'Test proxy - 0', + feature: FEATURES.DATA_DELIVERY, + module: MODULES.DESTINATION, + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://pi.pardot.com/api/prospect/version/4/do/upsert/id/123435', + headers: { + Authorization: 'Bearer myToken', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + first_name: 'Roger12', + last_name: 'Federer12', + website: 'https://rudderstack.com', + score: 14, + campaign_id: 42213, + }, + }, + files: {}, + params: { + destination: 'pardot', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + message: 'Request Processed Successfully', + status: 200, + destinationResponse: { + response: { + '@attributes': { + stat: 'ok', + version: 1, + }, + prospect: { + id: 123435, + campaign_id: 42213, + salutation: null, + first_name: 'Roger12', + last_name: 'Federer12', + email: 'Roger12@waltair.io', + password: null, + company: null, + website: 'https://rudderstack.com', + job_title: null, + department: null, + country: 'AU', + address_one: null, + address_two: null, + city: null, + state: null, + territory: null, + zip: null, + phone: null, + fax: null, + source: null, + annual_revenue: null, + employees: null, + industry: null, + years_in_business: null, + comments: null, + notes: null, + score: 14, + grade: null, + last_activity_at: null, + recent_interaction: 'Never active.', + crm_lead_fid: null, + crm_contact_fid: null, + crm_owner_fid: '00G2v000004WYXaEAO', + crm_account_fid: null, + salesforce_fid: null, + crm_last_sync: null, + crm_url: null, + is_do_not_email: null, + is_do_not_call: null, + opted_out: null, + is_reviewed: 1, + is_starred: null, + created_at: '2022-01-21 18:21:46', + updated_at: '2022-01-21 18:48:41', + campaign: { + id: 42113, + name: 'Test', + crm_fid: '7012y000000MNOCLL4', + }, + assigned_to: { + user: { + id: 38443703, + email: 'test_rudderstack@testcompany.com', + first_name: 'Rudderstack', + last_name: 'User', + job_title: null, + role: 'Administrator', + account: 489853, + created_at: '2021-02-26 06:25:17', + updated_at: '2021-02-26 06:25:17', + }, + }, + Are_you_shipping_large_fragile_or_bulky_items: false, + Calendly: false, + Country_Code: 'AU', + Currency: 'AUD', + Inventory_or_Warehouse_Management_System: false, + Lead_Status: 'New', + Marketing_Stage: 'SAL', + Record_Type_ID: 'TestCompany Lead', + profile: { + id: 304, + name: 'Default', + profile_criteria: [ + { + id: 1500, + name: 'Shipping Volume', + matches: 'Unknown', + }, + { + id: 1502, + name: 'Industry', + matches: 'Unknown', + }, + { + id: 1506, + name: 'Job Title', + matches: 'Unknown', + }, + { + id: 1508, + name: 'Department', + matches: 'Unknown', + }, + ], + }, + visitors: null, + visitor_activities: null, + lists: null, + }, + }, + status: 200, + }, + }, + }, + }, + }, + }, + { + name: 'pardot', + description: 'Test proxy - 1', + feature: FEATURES.DATA_DELIVERY, + module: MODULES.DESTINATION, + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://pi.pardot.com/api/prospect/version/4/do/upsert/email/Roger_12@waltair.io', + headers: { + Authorization: 'Bearer myToken', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + first_name: 'Roger_12', + last_name: 'Federer_12', + website: 'https://rudderstack.com', + score: 14, + campaign_id: 42213, + }, + }, + files: {}, + params: { + destination: 'pardot', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + message: 'Request Processed Successfully', + status: 201, + destinationResponse: { + response: { + '@attributes': { + stat: 'ok', + version: 1, + }, + prospect: { + id: 123435, + campaign_id: 42213, + salutation: null, + first_name: 'Roger_12', + last_name: 'Federer_12', + email: 'Roger_12@waltair.io', + password: null, + company: null, + website: 'https://rudderstack.com', + job_title: null, + department: null, + country: 'AU', + address_one: null, + address_two: null, + city: null, + state: null, + territory: null, + zip: null, + phone: null, + fax: null, + source: null, + annual_revenue: null, + employees: null, + industry: null, + years_in_business: null, + comments: null, + notes: null, + score: 14, + grade: null, + last_activity_at: null, + recent_interaction: 'Never active.', + crm_lead_fid: null, + crm_contact_fid: null, + crm_owner_fid: '00G2v000004WYXaEAO', + crm_account_fid: null, + salesforce_fid: null, + crm_last_sync: null, + crm_url: null, + is_do_not_email: null, + is_do_not_call: null, + opted_out: null, + is_reviewed: 1, + is_starred: null, + created_at: '2022-01-21 18:21:46', + updated_at: '2022-01-21 18:48:41', + campaign: { + id: 42113, + name: 'Test', + crm_fid: '7012y000000MNOCLL4', + }, + assigned_to: { + user: { + id: 38443703, + email: 'test_rudderstack@testcompany.com', + first_name: 'Rudderstack', + last_name: 'User', + job_title: null, + role: 'Administrator', + account: 489853, + created_at: '2021-02-26 06:25:17', + updated_at: '2021-02-26 06:25:17', + }, + }, + Are_you_shipping_large_fragile_or_bulky_items: false, + Calendly: false, + Country_Code: 'AU', + Currency: 'AUD', + Inventory_or_Warehouse_Management_System: false, + Lead_Status: 'New', + Marketing_Stage: 'SAL', + Record_Type_ID: 'TestCompany Lead', + profile: { + id: 304, + name: 'Default', + profile_criteria: [ + { + id: 1500, + name: 'Shipping Volume', + matches: 'Unknown', + }, + { + id: 1502, + name: 'Industry', + matches: 'Unknown', + }, + { + id: 1506, + name: 'Job Title', + matches: 'Unknown', + }, + { + id: 1508, + name: 'Department', + matches: 'Unknown', + }, + ], + }, + visitors: null, + visitor_activities: null, + lists: null, + }, + }, + status: 201, + }, + }, + }, + }, + }, + }, + { + name: 'pardot', + description: 'Test proxy - 2', + feature: FEATURES.DATA_DELIVERY, + module: MODULES.DESTINATION, + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: 'https://pi.pardot.com/api/prospect/version/4/do/upsert/fid/00Q6r000002LKhTPVR', + headers: { + Authorization: 'Bearer myToken', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + first_name: 'Nick', + last_name: 'Kyrgios', + website: 'https://rudderstack.com', + score: 12, + campaign_id: 42213, + }, + }, + files: {}, + params: { + destination: 'pardot', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 200, + body: { + output: { + message: 'Request Processed Successfully', + status: 200, + destinationResponse: { + response: { + '@attributes': { + stat: 'ok', + version: 1, + }, + prospect: { + id: 123435, + campaign_id: 42213, + salutation: null, + first_name: 'Roger_12', + last_name: 'Federer_12', + email: 'Roger_12@federer.io', + password: null, + company: null, + website: 'https://rudderstack.com', + job_title: null, + department: null, + country: 'AU', + address_one: null, + address_two: null, + city: null, + state: null, + territory: null, + zip: null, + phone: null, + fax: null, + source: null, + annual_revenue: null, + employees: null, + industry: null, + years_in_business: null, + comments: null, + notes: null, + score: 14, + grade: null, + last_activity_at: null, + recent_interaction: 'Never active.', + crm_lead_fid: '00Q6r000002LKhTPVR', + crm_contact_fid: null, + crm_owner_fid: '00G2v000004WYXaEAO', + crm_account_fid: null, + salesforce_fid: '00Q6r000002LKhTPVR', + crm_last_sync: '2022-01-21 18:47:37', + crm_url: 'https://testcompany.my.salesforce.com/00Q6r000002LKhTPVR', + is_do_not_email: null, + is_do_not_call: null, + opted_out: null, + is_reviewed: 1, + is_starred: null, + created_at: '2022-01-21 18:21:46', + updated_at: '2022-01-21 18:48:41', + campaign: { + id: 42113, + name: 'Test', + crm_fid: '7012y000000MNOCLL4', + }, + assigned_to: { + user: { + id: 38443703, + email: 'test_rudderstack@testcompany.com', + first_name: 'Rudderstack', + last_name: 'User', + job_title: null, + role: 'Administrator', + account: 489853, + created_at: '2021-02-26 06:25:17', + updated_at: '2021-02-26 06:25:17', + }, + }, + Are_you_shipping_large_fragile_or_bulky_items: false, + Calendly: false, + Country_Code: 'AU', + Currency: 'AUD', + Inventory_or_Warehouse_Management_System: false, + Lead_Status: 'New', + Marketing_Stage: 'SAL', + Record_Type_ID: 'TestCompany Lead', + profile: { + id: 304, + name: 'Default', + profile_criteria: [ + { + id: 1500, + name: 'Shipping Volume', + matches: 'Unknown', + }, + { + id: 1502, + name: 'Industry', + matches: 'Unknown', + }, + { + id: 1506, + name: 'Job Title', + matches: 'Unknown', + }, + { + id: 1508, + name: 'Department', + matches: 'Unknown', + }, + ], + }, + visitors: null, + visitor_activities: null, + lists: null, + }, + }, + status: 200, + }, + }, + }, + }, + }, + }, + { + name: 'pardot', + description: 'Test proxy - 3', + feature: FEATURES.DATA_DELIVERY, + module: MODULES.DESTINATION, + version: 'v0', + input: { + request: { + body: { + version: '1', + type: 'REST', + method: 'POST', + endpoint: + 'https://pi.pardot.com/api/prospect/version/4/do/upsert/email/rolex_waltair@mywebsite.io', + headers: { + Authorization: 'Bearer myExpiredToken', + 'Pardot-Business-Unit-Id': '0Uv2v000000k9tHCAQ', + }, + body: { + JSON: {}, + JSON_ARRAY: {}, + XML: {}, + FORM: { + first_name: 'Rolex', + last_name: 'Waltair', + website: 'https://rudderstack.com', + score: 15, + campaign_id: 42213, + }, + }, + files: {}, + params: { + destination: 'pardot', + }, + }, + method: 'POST', + }, + }, + output: { + response: { + status: 500, + body: { + output: { + message: + 'access_token is invalid, unknown, or malformed: Inactive token during Pardot response transformation', + status: 500, + authErrorCategory: 'REFRESH_TOKEN', + destinationResponse: { + '@attributes': { + stat: 'fail', + version: 1, + err_code: 184, + }, + err: 'access_token is invalid, unknown, or malformed: Inactive token', + }, + statTags: { + destType: 'PARDOT', + errorCategory: 'network', + destinationId: 'Non-determininable', + workspaceId: 'Non-determininable', + errorType: 'retryable', + feature: 'dataDelivery', + implementation: 'native', + module: 'destination', + }, + }, + }, + }, + }, + }, ]; diff --git a/test/integrations/destinations/sendgrid/deleteUsers/data.ts b/test/integrations/destinations/sendgrid/deleteUsers/data.ts new file mode 100644 index 0000000000..85c6e1275f --- /dev/null +++ b/test/integrations/destinations/sendgrid/deleteUsers/data.ts @@ -0,0 +1,1275 @@ +export const data = [ + { + name: 'sendgrid', + description: 'Test 0', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'SENDGRID', + userAttributes: [ + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + ], + config: { + apiKey: '1234', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'User deletion request failed', + }, + ], + }, + }, + }, + { + name: 'sendgrid', + description: 'Test 1', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'SENDGRID', + userAttributes: [ + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + { + userId: + 'test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + }, + { + userId: + 'user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + }, + ], + config: { + apiKey: '1234', + }, + }, + ], + }, + }, + output: { + response: { + status: 200, + body: [ + { + statusCode: 200, + status: 'successful', + }, + ], + }, + }, + }, + { + name: 'sendgrid', + description: 'Test 2', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'SENDGRID', + userAttributes: [ + { + userId: 'eab57ccf-6322-498e-9338-7761c6dc0656', + }, + { + userId: '47983ca9-7cc6-4942-8ff0-ac443g95658d', + }, + ], + config: {}, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'apiKey is required for deleting user', + }, + ], + }, + }, + }, + { + name: 'sendgrid', + description: 'Test 3', + feature: 'userDeletion', + module: 'destination', + version: 'v0', + input: { + request: { + body: [ + { + destType: 'SENDGRID', + userAttributes: { + userId: 'eab57ccf-6322-498e-9338-7761c6dc0656', + }, + config: { + apiKey: '1234', + }, + }, + ], + }, + }, + output: { + response: { + status: 400, + body: [ + { + statusCode: 400, + error: 'userAttributes is not an array', + }, + ], + }, + }, + }, +]; diff --git a/test/integrations/destinations/sendgrid/network.ts b/test/integrations/destinations/sendgrid/network.ts new file mode 100644 index 0000000000..18a8a8d34d --- /dev/null +++ b/test/integrations/destinations/sendgrid/network.ts @@ -0,0 +1,110 @@ +const deleteNwData = [ + { + httpReq: { + method: 'delete', + url: 'https://api.sendgrid.com/v3/marketing/contacts?ids=test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + headers: { + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + message: { + job_id: 'bb33b1f9-e7d6-4a6c-bf1c-a2143275e257', + }, + }, + }, + }, + { + httpReq: { + method: 'delete', + url: 'https://api.sendgrid.com/v3/marketing/contacts?ids=user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + headers: { + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + data: { + code: 400, + message: 'Bad Req', + status: 'Fail Case', + }, + status: 400, + }, + }, + { + httpReq: { + method: 'delete', + url: 'https://api.sendgrid.com/v3/marketing/contacts?ids=[user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2]', + headers: { + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': { + job_id: 'bb33b1f9-e7d6-4a6c-bf1c-a2143275e257', + }, + }, + }, + }, + { + httpReq: { + method: 'delete', + url: 'https://api.sendgrid.com/v3/marketing/contacts?ids=[user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2]', + headers: { + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + message: { + job_id: 'bb33b1f9-e7d6-4a6c-bf1c-a2143275e257', + }, + }, + }, + }, + { + httpReq: { + method: 'delete', + url: 'https://api.sendgrid.com/v3/marketing/contacts?ids=test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id', + headers: { + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': { + job_id: 'bb33b1f9-e7d6-4a6c-bf1c-a2143275e257', + }, + }, + }, + }, + { + httpReq: { + method: 'delete', + url: 'https://api.sendgrid.com/v3/marketing/contacts?ids=user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2,test_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_idtest_user_id,user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2user_sdk2', + headers: { + Authorization: 'Bearer 1234', + }, + }, + httpRes: { + status: 200, + statusText: 'OK', + data: { + ' message': { + job_id: 'bb33b1f9-e7d6-4a6c-bf1c-a2143275e257', + }, + }, + }, + }, +]; +export const networkCallsData = [...deleteNwData]; diff --git a/test/integrations/destinations/trengo/network.ts b/test/integrations/destinations/trengo/network.ts new file mode 100644 index 0000000000..e409489b8f --- /dev/null +++ b/test/integrations/destinations/trengo/network.ts @@ -0,0 +1,1326 @@ +export const networkCallsData = [ + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=9830311521', + }, + httpRes: { + data: { + data: [ + { + abbr: 'T', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + ], + color: '#607d8b', + custom_field_data: null, + display_name: 'Haz matsumi phone 2 (+98 30311521)', + email: null, + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 30311521', + full_name: 'Thalmor Bretz', + id: 90002431001, + identifier: '+98 30311521', + is_phone: true, + is_private: false, + name: 'Thalmor Bretz', + phone: '+98 30311521', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=j@d.com', + }, + httpRes: { + data: { + data: [], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=j@d.com', + }, + httpRes: { + data: { + data: [], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=null', + }, + httpRes: { data: { error: 'Request failed', status: 404 }, status: 200 }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=12345678910', + }, + httpRes: { + data: { + data: [], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=99999666661', + }, + httpRes: { data: { error: 'Request failed', status: 404 }, status: 200 }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=98765432100', + }, + httpRes: { + data: { + data: [ + { + abbr: 'T', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + ], + color: '#607d8b', + custom_field_data: null, + display_name: 'Michael Scott (+98 30311521)', + email: null, + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 765432100', + full_name: 'Michael Scott', + id: 90002431001, + identifier: '+98 765432100', + is_phone: true, + is_private: false, + name: 'Michael Scott', + phone: '+98 765432100', + pivot: null, + profile: [], + profile_image: null, + }, + { + abbr: 'T', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + ], + color: '#607d8b', + custom_field_data: null, + display_name: 'Michael G Scott (+98 30311521)', + email: null, + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 765432100', + full_name: 'Michael G Scott', + id: 90002431003, + identifier: '+98 765432100', + is_phone: true, + is_private: false, + name: 'Michael G Scott', + phone: '+98 765432100', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=test@outlook.com', + }, + httpRes: { + data: { + data: [ + { + abbr: 'U', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'email • 5xcyI53Nf7@trengomail.com', + emailChannel: { + add_conversation_to_reply: 1, + auto_reply_body: + '

Dear [name],

This is a confirmation that we received your email and registered it as ticket #[ticket_number]. You can always reply to this email if you want to add additional information.

Kinds regards,

Team Rudder

', + auto_reply_enabled: 1, + auto_reply_subject: null, + branding: 1, + branding_service_name: 'Rudder', + channel_id: 405980, + created_at: '2021-05-13 08:47:56', + email_theme_id: null, + embed_attachments: 1, + font_family: null, + meta: { + selectedFolders: [], + syncFolders: [], + syncStatus: null, + zapier_consent: null, + }, + prepend_ticket_number_to_subject: 0, + sender_email: null, + sender_email_id: null, + sender_name: 'Rudder', + sender_name_personal: '[agent.first_name] | Rudder', + signature: + '

Kind regards,

[agent.first_name] [agent.last_name]
Rudder

', + spam_setting: 1, + split_by_sender: 0, + split_by_subject: 1, + type: 'TRENGO', + updated_at: '2021-05-13 08:47:56', + }, + id: 405980, + is_private: false, + name: 'Email', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'email • 5xcyI53Nf7@trengomail.com', + title: 'email', + type: 'EMAIL', + username: '5xcyI53Nf7', + users: [], + }, + ], + color: '#00bcd4', + custom_field_data: null, + display_name: 'test Phone tct (test@outlook.com)', + email: 'test@outlook.com', + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 303115423', + full_name: 'test Email', + id: 97694755, + identifier: 'test@outlook.com', + is_phone: true, + is_private: false, + name: 'test Email', + phone: '98303115423', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=test@outlook.com', + }, + httpRes: { + data: { + data: [ + { + abbr: 'U', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'email • 5xcyI53Nf7@trengomail.com', + emailChannel: { + add_conversation_to_reply: 1, + auto_reply_body: + '

Dear [name],

This is a confirmation that we received your email and registered it as ticket #[ticket_number]. You can always reply to this email if you want to add additional information.

Kinds regards,

Team Rudder

', + auto_reply_enabled: 1, + auto_reply_subject: null, + branding: 1, + branding_service_name: 'Rudder', + channel_id: 405980, + created_at: '2021-05-13 08:47:56', + email_theme_id: null, + embed_attachments: 1, + font_family: null, + meta: { + selectedFolders: [], + syncFolders: [], + syncStatus: null, + zapier_consent: null, + }, + prepend_ticket_number_to_subject: 0, + sender_email: null, + sender_email_id: null, + sender_name: 'Rudder', + sender_name_personal: '[agent.first_name] | Rudder', + signature: + '

Kind regards,

[agent.first_name] [agent.last_name]
Rudder

', + spam_setting: 1, + split_by_sender: 0, + split_by_subject: 1, + type: 'TRENGO', + updated_at: '2021-05-13 08:47:56', + }, + id: 405980, + is_private: false, + name: 'Email', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'email • 5xcyI53Nf7@trengomail.com', + title: 'email', + type: 'EMAIL', + username: '5xcyI53Nf7', + users: [], + }, + ], + color: '#00bcd4', + custom_field_data: null, + display_name: 'test Phone tct (test@outlook.com)', + email: 'test@outlook.com', + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 303115423', + full_name: 'test Email', + id: 97694755, + identifier: 'test@outlook.com', + is_phone: true, + is_private: false, + name: 'test Email', + phone: '98303115423', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=98765432100', + }, + httpRes: { + data: { + data: [ + { + abbr: 'T', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + ], + color: '#607d8b', + custom_field_data: null, + display_name: 'Michael Scott (+98 30311521)', + email: null, + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 765432100', + full_name: 'Michael Scott', + id: 90002431001, + identifier: '+98 765432100', + is_phone: true, + is_private: false, + name: 'Michael Scott', + phone: '+98 765432100', + pivot: null, + profile: [], + profile_image: null, + }, + { + abbr: 'T', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + ], + color: '#607d8b', + custom_field_data: null, + display_name: 'Michael G Scott (+98 30311521)', + email: null, + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 765432100', + full_name: 'Michael G Scott', + id: 90002431003, + identifier: '+98 765432100', + is_phone: true, + is_private: false, + name: 'Michael G Scott', + phone: '+98 765432100', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=test@outlook.com', + }, + httpRes: { + data: { + data: [ + { + abbr: 'U', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'email • 5xcyI53Nf7@trengomail.com', + emailChannel: { + add_conversation_to_reply: 1, + auto_reply_body: + '

Dear [name],

This is a confirmation that we received your email and registered it as ticket #[ticket_number]. You can always reply to this email if you want to add additional information.

Kinds regards,

Team Rudder

', + auto_reply_enabled: 1, + auto_reply_subject: null, + branding: 1, + branding_service_name: 'Rudder', + channel_id: 405980, + created_at: '2021-05-13 08:47:56', + email_theme_id: null, + embed_attachments: 1, + font_family: null, + meta: { + selectedFolders: [], + syncFolders: [], + syncStatus: null, + zapier_consent: null, + }, + prepend_ticket_number_to_subject: 0, + sender_email: null, + sender_email_id: null, + sender_name: 'Rudder', + sender_name_personal: '[agent.first_name] | Rudder', + signature: + '

Kind regards,

[agent.first_name] [agent.last_name]
Rudder

', + spam_setting: 1, + split_by_sender: 0, + split_by_subject: 1, + type: 'TRENGO', + updated_at: '2021-05-13 08:47:56', + }, + id: 405980, + is_private: false, + name: 'Email', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'email • 5xcyI53Nf7@trengomail.com', + title: 'email', + type: 'EMAIL', + username: '5xcyI53Nf7', + users: [], + }, + ], + color: '#00bcd4', + custom_field_data: null, + display_name: 'test Phone tct (test@outlook.com)', + email: 'test@outlook.com', + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 303115423', + full_name: 'test Email', + id: 97694755, + identifier: 'test@outlook.com', + is_phone: true, + is_private: false, + name: 'test Email', + phone: '98303115423', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=test@outlook.com', + }, + httpRes: { + data: { + data: [ + { + abbr: 'U', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'email • 5xcyI53Nf7@trengomail.com', + emailChannel: { + add_conversation_to_reply: 1, + auto_reply_body: + '

Dear [name],

This is a confirmation that we received your email and registered it as ticket #[ticket_number]. You can always reply to this email if you want to add additional information.

Kinds regards,

Team Rudder

', + auto_reply_enabled: 1, + auto_reply_subject: null, + branding: 1, + branding_service_name: 'Rudder', + channel_id: 405980, + created_at: '2021-05-13 08:47:56', + email_theme_id: null, + embed_attachments: 1, + font_family: null, + meta: { + selectedFolders: [], + syncFolders: [], + syncStatus: null, + zapier_consent: null, + }, + prepend_ticket_number_to_subject: 0, + sender_email: null, + sender_email_id: null, + sender_name: 'Rudder', + sender_name_personal: '[agent.first_name] | Rudder', + signature: + '

Kind regards,

[agent.first_name] [agent.last_name]
Rudder

', + spam_setting: 1, + split_by_sender: 0, + split_by_subject: 1, + type: 'TRENGO', + updated_at: '2021-05-13 08:47:56', + }, + id: 405980, + is_private: false, + name: 'Email', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'email • 5xcyI53Nf7@trengomail.com', + title: 'email', + type: 'EMAIL', + username: '5xcyI53Nf7', + users: [], + }, + ], + color: '#00bcd4', + custom_field_data: null, + display_name: 'test Phone tct (test@outlook.com)', + email: 'test@outlook.com', + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 303115423', + full_name: 'test Email', + id: 97694755, + identifier: 'test@outlook.com', + is_phone: true, + is_private: false, + name: 'test Email', + phone: '98303115423', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=test@outlook.com', + }, + httpRes: { + data: { + data: [ + { + abbr: 'U', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'email • 5xcyI53Nf7@trengomail.com', + emailChannel: { + add_conversation_to_reply: 1, + auto_reply_body: + '

Dear [name],

This is a confirmation that we received your email and registered it as ticket #[ticket_number]. You can always reply to this email if you want to add additional information.

Kinds regards,

Team Rudder

', + auto_reply_enabled: 1, + auto_reply_subject: null, + branding: 1, + branding_service_name: 'Rudder', + channel_id: 405980, + created_at: '2021-05-13 08:47:56', + email_theme_id: null, + embed_attachments: 1, + font_family: null, + meta: { + selectedFolders: [], + syncFolders: [], + syncStatus: null, + zapier_consent: null, + }, + prepend_ticket_number_to_subject: 0, + sender_email: null, + sender_email_id: null, + sender_name: 'Rudder', + sender_name_personal: '[agent.first_name] | Rudder', + signature: + '

Kind regards,

[agent.first_name] [agent.last_name]
Rudder

', + spam_setting: 1, + split_by_sender: 0, + split_by_subject: 1, + type: 'TRENGO', + updated_at: '2021-05-13 08:47:56', + }, + id: 405980, + is_private: false, + name: 'Email', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'email • 5xcyI53Nf7@trengomail.com', + title: 'email', + type: 'EMAIL', + username: '5xcyI53Nf7', + users: [], + }, + ], + color: '#00bcd4', + custom_field_data: null, + display_name: 'test Phone tct (test@outlook.com)', + email: 'test@outlook.com', + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 303115423', + full_name: 'test Email', + id: 97694755, + identifier: 'test@outlook.com', + is_phone: true, + is_private: false, + name: 'test Email', + phone: '98303115423', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=test@outlook.com', + }, + httpRes: { + data: { + data: [ + { + abbr: 'U', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'email • 5xcyI53Nf7@trengomail.com', + emailChannel: { + add_conversation_to_reply: 1, + auto_reply_body: + '

Dear [name],

This is a confirmation that we received your email and registered it as ticket #[ticket_number]. You can always reply to this email if you want to add additional information.

Kinds regards,

Team Rudder

', + auto_reply_enabled: 1, + auto_reply_subject: null, + branding: 1, + branding_service_name: 'Rudder', + channel_id: 405980, + created_at: '2021-05-13 08:47:56', + email_theme_id: null, + embed_attachments: 1, + font_family: null, + meta: { + selectedFolders: [], + syncFolders: [], + syncStatus: null, + zapier_consent: null, + }, + prepend_ticket_number_to_subject: 0, + sender_email: null, + sender_email_id: null, + sender_name: 'Rudder', + sender_name_personal: '[agent.first_name] | Rudder', + signature: + '

Kind regards,

[agent.first_name] [agent.last_name]
Rudder

', + spam_setting: 1, + split_by_sender: 0, + split_by_subject: 1, + type: 'TRENGO', + updated_at: '2021-05-13 08:47:56', + }, + id: 405980, + is_private: false, + name: 'Email', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'email • 5xcyI53Nf7@trengomail.com', + title: 'email', + type: 'EMAIL', + username: '5xcyI53Nf7', + users: [], + }, + ], + color: '#00bcd4', + custom_field_data: null, + display_name: 'test Phone tct (test@outlook.com)', + email: 'test@outlook.com', + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 303115423', + full_name: 'test Email', + id: 97694755, + identifier: 'test@outlook.com', + is_phone: true, + is_private: false, + name: 'test Email', + phone: '98303115423', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Bearer trengo_integration_test_api_token', + }, + + method: 'GET', + + url: 'https://app.trengo.com/api/v2/contacts?page=1&term=9830311521', + }, + httpRes: { + data: { + data: [ + { + abbr: 'T', + avatar: 'https://app.trengo.com/img/defaultpic.png', + channels: [ + { + auto_reply: 'ENABLED', + business_hour_id: 125020, + color: null, + display_name: 'sms • SMS', + emailChannel: null, + id: 406005, + is_private: false, + name: 'Sms', + notification_email: null, + notification_sound: 'chat.mp3', + password_is_null: false, + phone: '', + reassign_reopened_ticket: false, + reopen_closed_ticket: 1, + reopen_closed_ticket_time_window_days: '30', + show_contact_fields: 1, + show_ticket_fields: 1, + status: 'ACTIVE', + text: 'sms • SMS', + title: 'sms', + type: 'SMS', + username: null, + users: [], + }, + ], + color: '#607d8b', + custom_field_data: null, + display_name: 'Haz matsumi phone 2 (+98 30311521)', + email: null, + formatted_custom_field_data: { 'Customer number': null, Policy: null }, + formatted_phone: '+98 30311521', + full_name: 'Thalmor Bretz', + id: 90002431001, + identifier: '+98 30311521', + is_phone: true, + is_private: false, + name: 'Thalmor Bretz', + phone: '+98 30311521', + pivot: null, + profile: [], + profile_image: null, + }, + ], + links: { + first: 'https://app.trengo.com/api/v2/contacts?page=1', + last: null, + next: null, + prev: null, + }, + meta: { + current_page: 1, + from: 1, + path: 'https://app.trengo.com/api/v2/contacts', + per_page: 25, + to: 1, + }, + }, + status: 200, + }, + }, +]; diff --git a/test/integrations/destinations/user/network.ts b/test/integrations/destinations/user/network.ts new file mode 100644 index 0000000000..dff2e0726d --- /dev/null +++ b/test/integrations/destinations/user/network.ts @@ -0,0 +1,441 @@ +export const networkCallsData = [ + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/users-by-id/user@123/', + }, + httpRes: { + data: { + browser_language: null, + companies: [ + { id: 21, member_since: '2022-09-12T12:40:30.548068Z', name: 'parkings group' }, + { id: 19, member_since: '2022-09-12T12:37:58.522773Z', name: 'rudder constructors' }, + ], + created_at: '2022-09-06T11:52:48.828444Z', + custom_id: 'user@123', + email: null, + first_seen: '2022-09-06T11:52:48.812722Z', + gender: 'unknown', + gravatar_url: null, + id: 52, + last_seen: '2022-09-06T12:35:17.230000Z', + lists: [], + name: null, + notifications: true, + page_views: 2, + phone_number: '2345678901', + score: 0, + status: 'visitor', + tags: [], + unsubscribed: false, + updated_at: '2022-09-12T03:19:33.356280Z', + user_key: 'ngze13ffndcv', + web_push_subscription: false, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/companies-by-id/group@795/', + }, + httpRes: { + data: { + address: '6th floor,california,usa', + category: null, + city: null, + companyowner: 'secret', + country: 'usa', + created_at: '2022-09-12T12:40:30.548068Z', + custom_id: 'group@795', + description: null, + email: 'business@rudderstack.com', + employees: [52], + founded: '15 aug, 1947', + id: 21, + isprivatefunded: 'no', + isprofitable: 'no', + name: 'rudder ventures', + phone_numbers: null, + postal_code: null, + region: null, + size: null, + tags: [], + updated_at: '2022-09-13T11:23:09.481891Z', + user_custom_id: 'user@123', + }, + status: 200, + }, + }, + { + httpReq: { + data: { + address: '6th StSan FranciscoCA94103USAtestuser', + city: 'San Francisco', + custom_id: 'group@795', + email: 'business@rudderstack.com', + name: 'rudder ventures', + postal_code: '94103', + user_custom_id: 'user@123', + }, + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'PUT', + + url: 'https://commander.user.com/api/public/companies/21/', + }, + httpRes: { + data: { + address: 'San FranciscoUSA94103CA6th St', + city: 'San Francisco', + companyowner: 'secret', + country: 'usa', + created_at: '2022-09-12T12:40:30.548068Z', + custom_id: 'group@795', + description: null, + email: 'business@rudderstack.com', + employees: [52], + founded: '15 aug, 1947', + id: 21, + isprivatefunded: 'no', + isprofitable: 'no', + name: 'rudder ventures', + phone_numbers: null, + postal_code: null, + region: null, + size: null, + tags: [], + updated_at: '2022-09-13T11:47:31.748497Z', + user_custom_id: 'user@123', + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/users/search/?email=test@rudderstack.com', + }, + httpRes: { + data: { + browser_language: null, + companies: [], + country: 'india', + created_at: '2022-09-13T06:16:25.576355Z', + custom_id: 'test@12', + email: 'test@rudderstack.com', + gender: 'male', + google_url: 'www.google.com', + id: 59, + lists: [], + name: 'test rudderstack', + notifications: true, + phone_number: '9225467887', + score: 0, + status: 'user', + tags: [{ id: 5, name: 'productuser' }], + unsubscribed: false, + updated_at: '2022-09-13T06:16:25.576376Z', + user_key: 'ctlfkj37dbag', + web_push_subscription: false, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/users/search/?key=lel1c5u1wuk8', + }, + httpRes: { + data: { + browser_language: null, + companies: [], + created_at: '2022-09-05T07:21:39.171977Z', + email: 'rahulverma@test.com', + gender: 'unknown', + gravatar_url: null, + id: 27, + lists: [], + name: 'rahul verma', + notifications: true, + phone_number: '+919432239876', + score: 0, + status: 'visitor', + tags: [ + { id: 1, name: 'updated' }, + { id: 2, name: 'verified' }, + ], + unsubscribed: false, + updated_at: '2022-09-05T07:21:39.171990Z', + user_key: 'lel1c5u1wuk8', + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/users/search/?email=test@rudderstack.com', + }, + httpRes: { + data: { + browser_language: null, + companies: [], + country: 'india', + created_at: '2022-09-13T06:16:25.576355Z', + custom_id: 'test@12', + email: 'test@rudderstack.com', + gender: 'male', + google_url: 'www.google.com', + id: 59, + lists: [], + name: 'test rudderstack', + notifications: true, + phone_number: '9225467887', + score: 0, + status: 'user', + tags: [{ id: 5, name: 'productuser' }], + unsubscribed: false, + updated_at: '2022-09-13T06:16:25.576376Z', + user_key: 'ctlfkj37dbag', + web_push_subscription: false, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/users-by-id/43/', + }, + httpRes: { + data: { + browser_language: null, + companies: [], + created_at: '2022-09-05T11:04:45.547861Z', + custom_id: '43', + email: null, + first_seen: '2022-09-05T11:04:45.535122Z', + gender: 'unknown', + gravatar_url: null, + id: 44, + last_seen: null, + lists: [], + name: null, + page_views: 0, + score: 0, + status: 'visitor', + tags: [], + unsubscribed: false, + updated_at: '2022-09-05T11:04:45.547876Z', + user_key: 'rpl0vjwysmc0', + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/users-by-id/43/', + }, + httpRes: { + data: { + browser_language: null, + companies: [], + created_at: '2022-09-05T11:04:45.547861Z', + custom_id: '43', + email: null, + first_seen: '2022-09-05T11:04:45.535122Z', + gender: 'unknown', + gravatar_url: null, + id: 44, + last_seen: null, + lists: [], + name: null, + page_views: 0, + score: 0, + status: 'visitor', + tags: [], + unsubscribed: false, + updated_at: '2022-09-05T11:04:45.547876Z', + user_key: 'rpl0vjwysmc0', + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/users-by-id/user@123/', + }, + httpRes: { + data: { + browser_language: null, + companies: [ + { id: 21, member_since: '2022-09-12T12:40:30.548068Z', name: 'parkings group' }, + { id: 19, member_since: '2022-09-12T12:37:58.522773Z', name: 'rudder constructors' }, + ], + created_at: '2022-09-06T11:52:48.828444Z', + custom_id: 'user@123', + email: null, + first_seen: '2022-09-06T11:52:48.812722Z', + gender: 'unknown', + gravatar_url: null, + id: 52, + last_seen: '2022-09-06T12:35:17.230000Z', + lists: [], + name: null, + notifications: true, + page_views: 2, + phone_number: '2345678901', + score: 0, + status: 'visitor', + tags: [], + unsubscribed: false, + updated_at: '2022-09-12T03:19:33.356280Z', + user_key: 'ngze13ffndcv', + web_push_subscription: false, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'GET', + + url: 'https://commander.user.com/api/public/companies-by-id/group@795/', + }, + httpRes: { + data: { + address: '6th floor,california,usa', + category: null, + city: null, + companyowner: 'secret', + country: 'usa', + created_at: '2022-09-12T12:40:30.548068Z', + custom_id: 'group@795', + description: null, + email: 'business@rudderstack.com', + employees: [52], + founded: '15 aug, 1947', + id: 21, + isprivatefunded: 'no', + isprofitable: 'no', + name: 'rudder ventures', + phone_numbers: null, + postal_code: null, + region: null, + size: null, + tags: [], + updated_at: '2022-09-13T11:23:09.481891Z', + user_custom_id: 'user@123', + }, + status: 200, + }, + }, + { + httpReq: { + data: { + address: '6th StSan FranciscoCA94103USAtestuser', + city: 'San Francisco', + custom_id: 'group@795', + email: 'business@rudderstack.com', + name: 'rudder ventures', + postal_code: '94103', + user_custom_id: 'user@123', + }, + headers: { + Authorization: 'Token dummyApiKey', + 'Content-Type': 'application/json', + }, + + method: 'PUT', + + url: 'https://commander.user.com/api/public/companies/21/', + }, + httpRes: { + data: { + address: 'San FranciscoUSA94103CA6th St', + city: 'San Francisco', + companyowner: 'secret', + country: 'usa', + created_at: '2022-09-12T12:40:30.548068Z', + custom_id: 'group@795', + description: null, + email: 'business@rudderstack.com', + employees: [52], + founded: '15 aug, 1947', + id: 21, + isprivatefunded: 'no', + isprofitable: 'no', + name: 'rudder ventures', + phone_numbers: null, + postal_code: null, + region: null, + size: null, + tags: [], + updated_at: '2022-09-13T11:47:31.748497Z', + user_custom_id: 'user@123', + }, + status: 200, + }, + }, +]; diff --git a/test/integrations/destinations/yahoo_dsp/network.ts b/test/integrations/destinations/yahoo_dsp/network.ts new file mode 100644 index 0000000000..2dcd0d2a9f --- /dev/null +++ b/test/integrations/destinations/yahoo_dsp/network.ts @@ -0,0 +1,22 @@ +export const networkCallsData = [ + { + httpReq: { + headers: { + Accept: 'application/json', + 'Content-Type': 'application/x-www-form-urlencoded', + }, + data: 'grant_type=client_credentials&scope=dsp-api-access&realm=dsp&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&client_assertion=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJodHRwczovL2lkLmIyYi55YWhvb2luYy5jb20vaWRlbnRpdHkvb2F1dGgyL2FjY2Vzc190b2tlbj9yZWFsbT1kc3AiLCJzdWIiOiJhYmNkZWY4LWY0OS00Y2Q2LWI0YzUtOTU4YjNkNjZkNDMxIiwiaXNzIjoiYWJjZGVmOC1mNDktNGNkNi1iNGM1LTk1OGIzZDY2ZDQzMSIsImV4cCI6MTY5NTMwODk5MCwiaWF0IjoxNjk1MzA1MzkwfQ.HdBZJ0PoI8L0LRRdfbYtbJbmtrOAQmfu2APbuIQguIA', + method: 'POST', + url: 'https://id.b2b.yahooinc.com/identity/oauth2/access_token', + }, + httpRes: { + data: { + access_token: 'testAuthToken', + expires_in: 3599, + scope: 'dsp-api-access', + token_type: 'Bearer', + }, + status: 200, + }, + }, +]; diff --git a/test/integrations/destinations/yahoo_dsp/processor/data.ts b/test/integrations/destinations/yahoo_dsp/processor/data.ts index cb5145ed3a..eb607d60fb 100644 --- a/test/integrations/destinations/yahoo_dsp/processor/data.ts +++ b/test/integrations/destinations/yahoo_dsp/processor/data.ts @@ -1,3 +1,11 @@ +import { addMock } from '../../../testUtils'; +import { networkCallsData } from '../network'; + +export const mockFns = (mockAdapter) => { + addMock(mockAdapter, networkCallsData[0]); + // 21 September 2023 19:39:50 GMT+05:30 + Date.now = jest.fn(() => 1695305390000); +}; export const data = [ { name: 'yahoo_dsp', @@ -1107,4 +1115,6 @@ export const data = [ }, }, }, -]; +].map((d) => { + return { ...d, mockFns }; +}); diff --git a/test/integrations/destinations/yahoo_dsp/router/data.ts b/test/integrations/destinations/yahoo_dsp/router/data.ts index ea340fb6be..59c71b300c 100644 --- a/test/integrations/destinations/yahoo_dsp/router/data.ts +++ b/test/integrations/destinations/yahoo_dsp/router/data.ts @@ -1,3 +1,5 @@ +import { mockFns } from '../processor/data'; + export const data = [ { name: 'yahoo_dsp', @@ -144,5 +146,6 @@ export const data = [ }, }, }, + mockFns, }, ]; diff --git a/test/integrations/destinations/zendesk/network.ts b/test/integrations/destinations/zendesk/network.ts new file mode 100644 index 0000000000..bc80f0cd0a --- /dev/null +++ b/test/integrations/destinations/zendesk/network.ts @@ -0,0 +1,1825 @@ +export const networkCallsData = [ + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organization_fields.json', + }, + httpRes: { + data: { + count: 1, + next_page: null, + organization_fields: [ + { + active: true, + created_at: '2020-03-23T18:14:35Z', + description: 'email', + id: 900000015126, + key: 'email', + position: 0, + raw_description: 'email', + raw_title: 'email', + regexp_for_validation: null, + system: false, + title: 'email', + type: 'text', + updated_at: '2020-03-23T18:14:35Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organization_fields/900000015126.json', + }, + ], + previous_page: null, + }, + status: 200, + }, + }, + { + httpReq: { + data: { + organization: { + domain_names: 'cw124.com', + external_id: 'group-124', + name: 'test-org124', + organization_fields: { email: 'group_email_124@xyz.com', id: 'group-124' }, + }, + }, + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organizations/create_or_update.json', + }, + httpRes: { + data: { + organization: { + created_at: '2020-03-17T10:21:14Z', + details: null, + domain_names: ['cw124.com'], + external_id: 'group-124', + group_id: null, + id: 900001329943, + name: 'test-org124', + notes: null, + organization_fields: { email: 'group_email_124@xyz.com' }, + shared_comments: false, + shared_tickets: false, + tags: [], + updated_at: '2020-03-23T19:33:08Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organizations/900001329943.json', + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/search.json?query=example124@email.com', + }, + httpRes: { + data: { + count: 1, + next_page: null, + previous_page: null, + users: [ + { + active: true, + alias: null, + chat_only: false, + created_at: '2020-03-17T10:21:15Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'example124@email.com', + external_id: 'abcd-124', + iana_time_zone: 'America/New_York', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'abcd124', + notes: null, + only_private_comments: false, + organization_id: null, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Eastern Time (US & Canada)', + two_factor_auth_enabled: false, + updated_at: '2020-03-17T12:16:59Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483.json', + user_fields: { birthday: null }, + verified: true, + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2//users/900113780483/organization_memberships.json', + }, + httpRes: { error: 'Request failed' }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic cnVkZGVybGFidGVzdDJAZW1haWwuY29tL3Rva2VuOmR1bW15QXBpVG9rZW4=', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabtest2.zendesk.com/api/v2/users/search.json?query=testemail2@email', + }, + httpRes: { data: { count: 0, next_page: null, previous_page: null, users: [] }, status: 200 }, + }, + { + httpReq: { + data: { + user: { + email: 'testemail2@email', + external_id: '0000000000', + name: 'John Wick', + verified: true, + }, + }, + headers: { + Authorization: 'Basic cnVkZGVybGFidGVzdDJAZW1haWwuY29tL3Rva2VuOmR1bW15QXBpVG9rZW4=', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabtest2.zendesk.com/api/v2/users/create_or_update.json', + }, + httpRes: { data: { user: {} }, status: 200 }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organization_fields.json', + }, + httpRes: { + data: { + count: 1, + next_page: null, + organization_fields: [ + { + active: true, + created_at: '2020-03-23T18:14:35Z', + description: 'email', + id: 900000015126, + key: 'email', + position: 0, + raw_description: 'email', + raw_title: 'email', + regexp_for_validation: null, + system: false, + title: 'email', + type: 'text', + updated_at: '2020-03-23T18:14:35Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organization_fields/900000015126.json', + }, + ], + previous_page: null, + }, + status: 200, + }, + }, + { + httpReq: { + data: { + organization: { + domain_names: 'cw124.com', + external_id: 'group-124', + name: 'test-org124', + organization_fields: { email: 'group_email_124@xyz.com', id: 'group-124' }, + }, + }, + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organizations/create_or_update.json', + }, + httpRes: { + data: { + organization: { + created_at: '2020-03-17T10:21:14Z', + details: null, + domain_names: ['cw124.com'], + external_id: 'group-124', + group_id: null, + id: 900001329943, + name: 'test-org124', + notes: null, + organization_fields: { email: 'group_email_124@xyz.com' }, + shared_comments: false, + shared_tickets: false, + tags: [], + updated_at: '2020-03-23T19:33:08Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organizations/900001329943.json', + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/search.json?query=example124@email.com', + }, + httpRes: { + data: { + count: 1, + next_page: null, + previous_page: null, + users: [ + { + active: true, + alias: null, + chat_only: false, + created_at: '2020-03-17T10:21:15Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'example124@email.com', + external_id: 'abcd-124', + iana_time_zone: 'America/New_York', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'abcd124', + notes: null, + only_private_comments: false, + organization_id: null, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Eastern Time (US & Canada)', + two_factor_auth_enabled: false, + updated_at: '2020-03-17T12:16:59Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483.json', + user_fields: { birthday: null }, + verified: true, + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2//users/900113780483/organization_memberships.json', + }, + httpRes: { error: 'Request failed' }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/search.json?query=example124@email.com', + }, + httpRes: { + data: { + count: 1, + next_page: null, + previous_page: null, + users: [ + { + active: true, + alias: null, + chat_only: false, + created_at: '2020-03-17T10:21:15Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'example124@email.com', + external_id: 'abcd-124', + iana_time_zone: 'America/New_York', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'abcd124', + notes: null, + only_private_comments: false, + organization_id: null, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Eastern Time (US & Canada)', + two_factor_auth_enabled: false, + updated_at: '2020-03-17T12:16:59Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483.json', + user_fields: { birthday: null }, + verified: true, + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/search.json?query=example124@email.com', + }, + httpRes: { + data: { + count: 1, + next_page: null, + previous_page: null, + users: [ + { + active: true, + alias: null, + chat_only: false, + created_at: '2020-03-17T10:21:15Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'example124@email.com', + external_id: 'abcd-124', + iana_time_zone: 'America/New_York', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'abcd124', + notes: null, + only_private_comments: false, + organization_id: null, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Eastern Time (US & Canada)', + two_factor_auth_enabled: false, + updated_at: '2020-03-17T12:16:59Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483.json', + user_fields: { birthday: null }, + verified: true, + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483/organization_memberships.json', + }, + httpRes: { + data: { + count: 1, + next_page: null, + organization_memberships: [ + { + created_at: '2020-03-23T15:56:56Z', + default: true, + id: 900004877903, + organization_id: 900001329943, + updated_at: '2020-03-23T15:56:56Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organization_memberships/900004877903.json', + user_id: 900113780483, + }, + ], + previous_page: null, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/search.json?query=example124@email.com', + }, + httpRes: { + data: { + count: 1, + next_page: null, + previous_page: null, + users: [ + { + active: true, + alias: null, + chat_only: false, + created_at: '2020-03-17T10:21:15Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'example124@email.com', + external_id: 'abcd-124', + iana_time_zone: 'America/New_York', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'abcd124', + notes: null, + only_private_comments: false, + organization_id: null, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Eastern Time (US & Canada)', + two_factor_auth_enabled: false, + updated_at: '2020-03-17T12:16:59Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483.json', + user_fields: { birthday: null }, + verified: true, + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483/organization_memberships.json', + }, + httpRes: { + data: { + count: 1, + next_page: null, + organization_memberships: [ + { + created_at: '2020-03-23T15:56:56Z', + default: true, + id: 900004877903, + organization_id: 900001329943, + updated_at: '2020-03-23T15:56:56Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/organization_memberships/900004877903.json', + user_id: 900113780483, + }, + ], + previous_page: null, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjQ=', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + data: { + user_field: { active: true, description: 'country', key: 'country', title: 'country' }, + }, + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjQ=', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjQ=', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + data: { + user_field: { active: true, description: 'country', key: 'country', title: 'country' }, + }, + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjQ=', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjQ=', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + data: { + user_field: { active: true, description: 'country', key: 'country', title: 'country' }, + }, + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjQ=', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjQ=', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/search.json?query=johnwick@example.com', + }, + httpRes: { error: 'Request failed', status: 200 }, + }, + { + httpReq: { + data: { + user: { + email: 'johnwick@example.com', + external_id: '0000000000', + name: 'John Wick', + verified: true, + }, + }, + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjM=', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/create_or_update.json', + }, + httpRes: { + data: { + user: { + active: true, + alias: null, + chat_only: false, + created_at: '2020-03-17T10:21:15Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'example124@email.com', + external_id: 'abcd-124', + iana_time_zone: 'America/New_York', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'abcd124', + notes: null, + only_private_comments: false, + organization_id: 900001329943, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Eastern Time (US & Canada)', + two_factor_auth_enabled: false, + updated_at: '2020-03-23T15:56:56Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483.json', + user_fields: { birthday: null }, + verified: true, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjM=', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/search.json?query=johnwick@example.com', + }, + httpRes: { error: 'Request failed', status: 200 }, + }, + { + httpReq: { + data: { + user: { + email: 'johnwick@example.com', + external_id: '0000000000', + name: 'John Wick', + verified: true, + }, + }, + headers: { + Authorization: 'Basic dGVzdEBydWRkZXIuY29tL3Rva2VuOm15RHVtbXlBcGlUb2tlbjM=', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/create_or_update.json', + }, + httpRes: { + data: { + user: { + active: true, + alias: null, + chat_only: false, + created_at: '2020-03-17T10:21:15Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'example124@email.com', + external_id: 'abcd-124', + iana_time_zone: 'America/New_York', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'abcd124', + notes: null, + only_private_comments: false, + organization_id: 900001329943, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Eastern Time (US & Canada)', + two_factor_auth_enabled: false, + updated_at: '2020-03-23T15:56:56Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483.json', + user_fields: { birthday: null }, + verified: true, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMi90b2tlbjpteUR1bW15QXBpVG9rZW4y', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://blendohelp.zendesk.com/api/v2/organization_fields.json', + }, + httpRes: { error: 'Request failed', status: 200 }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields.json', + }, + httpRes: { + data: { + count: 3, + next_page: null, + previous_page: null, + user_fields: [ + { + active: true, + created_at: '2020-03-18T08:19:58Z', + description: 'birthday', + id: 900000013606, + key: 'birthday', + position: 0, + raw_description: 'birthday', + raw_title: 'birthday', + regexp_for_validation: null, + system: false, + title: 'birthday', + type: 'text', + updated_at: '2020-03-18T08:19:58Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000013606.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'age', + id: 900000014483, + key: 'age', + position: 1, + raw_description: 'age', + raw_title: 'age', + regexp_for_validation: null, + system: false, + title: 'age', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000014483.json', + }, + { + active: true, + created_at: '2020-03-23T17:38:44Z', + description: 'firstname', + id: 900000015106, + key: 'firstname', + position: 2, + raw_description: 'firstname', + raw_title: 'firstname', + regexp_for_validation: null, + system: false, + title: 'firstname', + type: 'text', + updated_at: '2020-03-23T17:38:44Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/user_fields/900000015106.json', + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/search.json?query=abcd-144', + }, + httpRes: { + data: { + count: 1, + facets: null, + next_page: null, + previous_page: null, + users: [ + { + active: true, + alias: null, + created_at: '2022-11-24T09:03:54Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'test1000@email.com', + external_id: 'abcd-144', + iana_time_zone: 'Asia/Kolkata', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'name-1000 user', + notes: null, + only_private_comments: false, + organization_id: null, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + result_type: 'user', + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Asia/Kolkata', + two_factor_auth_enabled: false, + updated_at: '2022-11-24T09:03:54Z', + url: 'https://rudderstack6787.zendesk.com/api/v2/users/10865192864273.json', + user_fields: {}, + verified: true, + }, + ], + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic bXlEdW1teVVzZXJOYW1lMS90b2tlbjpteUR1bW15QXBpVG9rZW40', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/900113780483/identities', + }, + httpRes: { + data: { + count: 2, + identities: [ + { + created_at: '2022-11-02T08:03:28Z', + deliverable_state: 'deliverable', + id: 7535981118877, + primary: true, + type: 'email', + undeliverable_count: 0, + updated_at: '2022-11-02T10:23:28Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/7533979645597/identities/7535981118877.json', + user_id: 900113780483, + value: 'example119@email.com', + verified: false, + }, + { + created_at: '2022-11-02T04:23:46Z', + deliverable_state: 'deliverable', + id: 7534173321117, + primary: false, + type: 'email', + undeliverable_count: 0, + updated_at: '2022-11-02T10:23:28Z', + url: 'https://rudderlabshelp.zendesk.com/api/v2/users/7533979645597/identities/7534173321117.json', + user_id: 900113780483, + value: 'example115@email.com', + verified: true, + }, + ], + next_page: null, + previous_page: null, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic cnVkZGVybGFidGVzdDFAZW1haWwuY29tL3Rva2VuOmR1bW15QXBpVG9rZW4=', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabtest1.zendesk.com/api/v2/users/search.json?query=testemail1@email', + }, + httpRes: { data: { count: 0, next_page: null, previous_page: null, users: [] }, status: 200 }, + }, + { + httpReq: { + data: { + user: { + email: 'testemail1@email', + external_id: '0000000000', + name: 'John Wick', + verified: true, + }, + }, + headers: { + Authorization: 'Basic cnVkZGVybGFidGVzdDFAZW1haWwuY29tL3Rva2VuOmR1bW15QXBpVG9rZW4=', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabtest1.zendesk.com/api/v2/users/create_or_update.json', + }, + httpRes: { + data: { + user: { + active: true, + alias: null, + chat_only: false, + created_at: '2020-03-17T10:21:15Z', + custom_role_id: null, + default_group_id: null, + details: null, + email: 'testemail1@email', + external_id: 'exId-123', + iana_time_zone: 'America/New_York', + id: 900113780483, + last_login_at: null, + locale: 'en-US', + locale_id: 1, + moderator: false, + name: 'John Wick', + notes: null, + only_private_comments: false, + organization_id: 900001329943, + phone: null, + photo: null, + report_csv: false, + restricted_agent: true, + role: 'end-user', + role_type: null, + shared: false, + shared_agent: false, + shared_phone_number: null, + signature: null, + suspended: false, + tags: [], + ticket_restriction: 'requested', + time_zone: 'Eastern Time (US & Canada)', + two_factor_auth_enabled: false, + updated_at: '2020-03-23T15:56:56Z', + url: 'https://rudderlabtest1.zendesk.com/api/v2/users/900113780483.json', + user_fields: { birthday: null }, + verified: true, + }, + }, + status: 200, + }, + }, + { + httpReq: { + headers: { + Authorization: 'Basic cnVkZGVybGFidGVzdDJAZW1haWwuY29tL3Rva2VuOmR1bW15QXBpVG9rZW4=', + 'Content-Type': 'application/json', + }, + method: 'GET', + url: 'https://rudderlabtest2.zendesk.com/api/v2/users/search.json?query=testemail2@email', + }, + httpRes: { data: { count: 0, next_page: null, previous_page: null, users: [] }, status: 200 }, + }, + { + httpReq: { + data: { + user: { + email: 'testemail2@email', + external_id: '0000000000', + name: 'John Wick', + verified: true, + }, + }, + headers: { + Authorization: 'Basic cnVkZGVybGFidGVzdDJAZW1haWwuY29tL3Rva2VuOmR1bW15QXBpVG9rZW4=', + 'Content-Type': 'application/json', + }, + method: 'POST', + url: 'https://rudderlabtest2.zendesk.com/api/v2/users/create_or_update.json', + }, + httpRes: { data: { user: {} }, status: 200 }, + }, +]; diff --git a/test/integrations/testTypes.ts b/test/integrations/testTypes.ts index 57d9c812e9..51667e8044 100644 --- a/test/integrations/testTypes.ts +++ b/test/integrations/testTypes.ts @@ -1,3 +1,6 @@ +import { AxiosResponse } from 'axios'; +import MockAdapter from 'axios-mock-adapter'; + export interface requestType { method: string; body?: any; @@ -34,4 +37,10 @@ export interface TestCaseData { input: inputType; output: outputType; mock?: mockType[]; + mockFns?: (mockAdapter: MockAdapter) => {}; } + +export type MockHttpCallsData = { + httpReq: Record; + httpRes: Partial; +}; diff --git a/test/integrations/testUtils.ts b/test/integrations/testUtils.ts index 815b211d20..8511ac41f4 100644 --- a/test/integrations/testUtils.ts +++ b/test/integrations/testUtils.ts @@ -1,6 +1,8 @@ import { globSync } from 'glob'; import { join } from 'path'; -import { TestCaseData } from './testTypes'; +import { MockHttpCallsData, TestCaseData } from './testTypes'; +import MockAdapter from 'axios-mock-adapter'; +import isMatch from 'lodash/isMatch'; export const getTestDataFilePaths = (dirPath: string, destination: string = ''): string[] => { const globPattern = join(dirPath, '**', 'data.ts'); @@ -14,3 +16,52 @@ export const getTestDataFilePaths = (dirPath: string, destination: string = ''): export const getTestData = (filePath): TestCaseData[] => { return require(filePath).data as TestCaseData[]; }; + +export const getMockHttpCallsData = (filePath): MockHttpCallsData[] => { + return require(filePath).networkCallsData as MockHttpCallsData[]; +}; + +export const getAllTestMockDataFilePaths = (dirPath: string, destination: string): string[] => { + const globPattern = join(dirPath, '**', 'network.ts'); + let testFilePaths = globSync(globPattern); + if (destination) { + testFilePaths = testFilePaths.filter((testFile) => testFile.includes(destination)); + } + return testFilePaths; +}; + +export const addMock = (mock: MockAdapter, axiosMock: MockHttpCallsData) => { + const { url, method, data: reqData, ...opts } = axiosMock.httpReq; + const { data, headers, status } = axiosMock.httpRes; + + const headersAsymMatch = { + asymmetricMatch: function (actual) { + return isMatch(actual, opts.headers); + }, + }; + + switch (method.toLowerCase()) { + case 'get': + // @ts-ignore + mock.onGet(url, reqData, headersAsymMatch).reply(status, data, headers); + break; + case 'delete': + // @ts-ignore + mock.onDelete(url, reqData, headersAsymMatch).reply(status, data, headers); + break; + case 'post': + // @ts-ignore + mock.onPost(url, reqData, headersAsymMatch).reply(status, data, headers); + break; + case 'patch': + // @ts-ignore + mock.onPatch(url, reqData, headersAsymMatch).reply(status, data, headers); + break; + case 'put': + // @ts-ignore + mock.onPut(url, reqData, headersAsymMatch).reply(status, data, headers); + break; + default: + break; + } +}; diff --git a/test/testHelper.js b/test/testHelper.js index 649f8cab13..5fe97fed67 100644 --- a/test/testHelper.js +++ b/test/testHelper.js @@ -7,6 +7,19 @@ const getFuncTestData = (dirPath, filePath) => { return testData; }; +const responses = []; + +const setResponsesForMockAxiosAdapter = ({url, method, data, options}, {response}) => { + if (process.env.GEN_AXIOS_FOR_TESTS === 'true') { + const reqObj = {url, ...options, method} + if (data) { + reqObj.data = data + } + responses.push(`{httpReq: ${JSON.stringify(reqObj)},httpRes: ${JSON.stringify(response)}},`) + } +} module.exports = { getFuncTestData, + responses, + setResponsesForMockAxiosAdapter }; From cbe333a9e4eea7088bfe46a2aaf09d489a7bc7c7 Mon Sep 17 00:00:00 2001 From: Anant Jain <62471433+anantjain45823@users.noreply.github.com> Date: Thu, 5 Oct 2023 12:48:34 +0530 Subject: [PATCH 6/7] fix: criteo_aud auth_token expire code incorporated (#2687) * fix: criteo_aud auth_token expire code incorporated * test cases added --- .../criteo_audience/networkHandler.js | 6 +++- .../data/criteo_audience/proxy_response.json | 17 +++++++++ .../data/criteo_audience_proxy_input.json | 35 +++++++++++++++++++ .../data/criteo_audience_proxy_output.json | 32 +++++++++++++++-- 4 files changed, 87 insertions(+), 3 deletions(-) diff --git a/src/v0/destinations/criteo_audience/networkHandler.js b/src/v0/destinations/criteo_audience/networkHandler.js index 83cde5028f..f4369cdc9e 100644 --- a/src/v0/destinations/criteo_audience/networkHandler.js +++ b/src/v0/destinations/criteo_audience/networkHandler.js @@ -26,7 +26,11 @@ const criteoAudienceRespHandler = (destResponse, stageMsg) => { // https://developers.criteo.com/marketing-solutions/docs/api-error-types#error-category-types // to handle the case when authorization-token is invalid - if (status === 401 && matchErrorCode('authorization-token-invalid', response)) { + if ( + status === 401 && + (matchErrorCode('authorization-token-invalid', response) || + matchErrorCode('authorization-token-expired', response)) + ) { throw new NetworkError( `${response?.errors[0]?.title} ${stageMsg}`, status, diff --git a/test/__mocks__/data/criteo_audience/proxy_response.json b/test/__mocks__/data/criteo_audience/proxy_response.json index 0950419ea7..a16dbf26cd 100644 --- a/test/__mocks__/data/criteo_audience/proxy_response.json +++ b/test/__mocks__/data/criteo_audience/proxy_response.json @@ -2,6 +2,23 @@ "https://api.criteo.com/2022-10/audiences/34894/contactlist": { "status": 200 }, + "https://api.criteo.com/2022-10/audiences/3485/contactlist": { + "code": "400", + "response": { + "data": { + "errors": [ + { + "traceIdentifier": "80a1a0ba3981b04da847d05700752c77", + "type": "authorization", + "code": "authorization-token-expired", + "instance": "/2022-10/audiences/123/contactlist", + "title": "The authorization token has expired" + } + ] + }, + "status": 401 + } + }, "https://api.criteo.com/2022-10/audiences/34895/contactlist": { "code": "400", "response": { diff --git a/test/__tests__/data/criteo_audience_proxy_input.json b/test/__tests__/data/criteo_audience_proxy_input.json index 84f15fc470..acecfa4389 100644 --- a/test/__tests__/data/criteo_audience_proxy_input.json +++ b/test/__tests__/data/criteo_audience_proxy_input.json @@ -33,6 +33,41 @@ "destination": "criteo_audience" } }, + { + "version": "1", + "type": "REST", + "method": "PATCH", + "endpoint": "https://api.criteo.com/2022-10/audiences/3485/contactlist", + "headers": { + "Authorization": "Bearer success_access_token", + "Content-Type": "application/json", + "Accept": "application/json" + }, + "body": { + "JSON": { + "data": { + "type": "ContactlistAmendment", + "attributes": { + "operation": "add", + "identifierType": "madid", + "identifiers": [ + "sample_madid", + "sample_madid_1", + "sample_madid_2" + ], + "internalIdentifiers": false + } + } + }, + "JSON_ARRAY": {}, + "XML": {}, + "FORM": {} + }, + "files": {}, + "params": { + "destination": "criteo_audience" + } + }, { "version": "1", "type": "REST", diff --git a/test/__tests__/data/criteo_audience_proxy_output.json b/test/__tests__/data/criteo_audience_proxy_output.json index 0508ec9632..a564d497cb 100644 --- a/test/__tests__/data/criteo_audience_proxy_output.json +++ b/test/__tests__/data/criteo_audience_proxy_output.json @@ -1,5 +1,5 @@ [ - { +{ "output": { "status": 200, "message": "Request Processed Successfully", @@ -9,6 +9,34 @@ } } }, + { + "output": { + "status": 401, + "authErrorCategory": "REFRESH_TOKEN", + "destinationResponse": { + "errors": [ + { + "traceIdentifier": "80a1a0ba3981b04da847d05700752c77", + "type": "authorization", + "code": "authorization-token-expired", + "instance": "/2022-10/audiences/123/contactlist", + "title": "The authorization token has expired" + } + ] + }, + "message": "The authorization token has expired during criteo_audience response transformation", + "statTags": { + "destType": "CRITEO_AUDIENCE", + "errorCategory": "network", + "destinationId": "Non-determininable", + "workspaceId": "Non-determininable", + "errorType": "aborted", + "feature": "dataDelivery", + "implementation": "native", + "module": "destination" + } + } + }, { "output": { "status": 401, @@ -48,7 +76,7 @@ "traceIdentifier": "80a1a0ba3981b04da847d05700752c77", "type": "authorization" } - ] +] }, "status": 404 }, From 13473a0514d508b3e8bf9f35d83f421f4ad821a7 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Fri, 6 Oct 2023 08:17:58 +0000 Subject: [PATCH 7/7] chore(release): 1.44.1 --- CHANGELOG.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 621c6709bc..a92a073191 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [1.44.1](https://github.com/rudderlabs/rudder-transformer/compare/v1.44.0...v1.44.1) (2023-10-06) + + +### Bug Fixes + +* criteo_aud auth_token expire code incorporated ([#2687](https://github.com/rudderlabs/rudder-transformer/issues/2687)) ([cbe333a](https://github.com/rudderlabs/rudder-transformer/commit/cbe333a9e4eea7088bfe46a2aaf09d489a7bc7c7)) + ## [1.44.0](https://github.com/rudderlabs/rudder-transformer/compare/v1.43.1...v1.44.0) (2023-09-29) diff --git a/package-lock.json b/package-lock.json index 895ec6c211..f39c2db7b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rudder-transformer", - "version": "1.44.0", + "version": "1.44.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rudder-transformer", - "version": "1.44.0", + "version": "1.44.1", "license": "ISC", "dependencies": { "@amplitude/ua-parser-js": "^0.7.24", diff --git a/package.json b/package.json index 8f23db4f7d..43b4abbb86 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rudder-transformer", - "version": "1.44.0", + "version": "1.44.1", "description": "", "homepage": "https://github.com/rudderlabs/rudder-transformer#readme", "bugs": {