@adtrackify/at-service-common 5.1.2 → 5.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/__tests__/clients/acuity-client.spec.js +20 -21
- package/dist/cjs/__tests__/clients/acuity-client.spec.js.map +1 -1
- package/dist/cjs/__tests__/clients/cross-platform-compression.spec.js +86 -97
- package/dist/cjs/__tests__/clients/cross-platform-compression.spec.js.map +1 -1
- package/dist/cjs/__tests__/clients/dynamodb-client.spec.js +95 -94
- package/dist/cjs/__tests__/clients/dynamodb-client.spec.js.map +1 -1
- package/dist/cjs/__tests__/clients/event-collector-client.spec.js +58 -58
- package/dist/cjs/__tests__/clients/event-collector-client.spec.js.map +1 -1
- package/dist/cjs/__tests__/clients/liveintent-client.spec.js +37 -0
- package/dist/cjs/__tests__/clients/liveintent-client.spec.js.map +1 -0
- package/dist/cjs/__tests__/clients/open-exchange-rates-client.spec.js +17 -18
- package/dist/cjs/__tests__/clients/open-exchange-rates-client.spec.js.map +1 -1
- package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js +255 -273
- package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js.map +1 -1
- package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.js +125 -137
- package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.js.map +1 -1
- package/dist/cjs/__tests__/clients/sqs-client.spec.js +77 -78
- package/dist/cjs/__tests__/clients/sqs-client.spec.js.map +1 -1
- package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js +430 -431
- package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js.map +1 -1
- package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.js +29 -30
- package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/db/destinations-db-service.spec.js +47 -45
- package/dist/cjs/__tests__/db/destinations-db-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/db/products-db-service.spec.js +40 -41
- package/dist/cjs/__tests__/db/products-db-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/db/shared-read-db-services.spec.js +26 -27
- package/dist/cjs/__tests__/db/shared-read-db-services.spec.js.map +1 -1
- package/dist/cjs/__tests__/db/shopify-app-installs-db-service.spec.js +37 -38
- package/dist/cjs/__tests__/db/shopify-app-installs-db-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/db/subscriptions-db-service.spec.js +35 -36
- package/dist/cjs/__tests__/db/subscriptions-db-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/db/user-accounts-db-service.spec.js +27 -28
- package/dist/cjs/__tests__/db/user-accounts-db-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/helpers/account-users-helper.spec.js +64 -65
- package/dist/cjs/__tests__/helpers/account-users-helper.spec.js.map +1 -1
- package/dist/cjs/__tests__/helpers/acuity-helper.spec.js +18 -19
- package/dist/cjs/__tests__/helpers/acuity-helper.spec.js.map +1 -1
- package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.js +23 -24
- package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.js.map +1 -1
- package/dist/cjs/__tests__/helpers/cognito-auth-helper.spec.js +16 -17
- package/dist/cjs/__tests__/helpers/cognito-auth-helper.spec.js.map +1 -1
- package/dist/cjs/__tests__/helpers/order-calculation-helper.spec.js +42 -43
- package/dist/cjs/__tests__/helpers/order-calculation-helper.spec.js.map +1 -1
- package/dist/cjs/__tests__/helpers/public-api-response-helper.spec.js +23 -24
- package/dist/cjs/__tests__/helpers/public-api-response-helper.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/helpers.spec.js +114 -115
- package/dist/cjs/__tests__/identity-cache/helpers.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-cache-alias-write.spec.js +29 -30
- package/dist/cjs/__tests__/identity-cache/identity-cache-alias-write.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js +19 -20
- package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js +200 -223
- package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js +114 -123
- package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-client.spec.js +107 -110
- package/dist/cjs/__tests__/identity-cache/identity-client.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-hit.spec.js +31 -32
- package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-hit.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-miss.spec.js +47 -60
- package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-miss.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-gateway-constructor.spec.js +15 -16
- package/dist/cjs/__tests__/identity-cache/identity-gateway-constructor.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.js +28 -35
- package/dist/cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js +27 -28
- package/dist/cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-gateway-stale-cache.spec.js +52 -74
- package/dist/cjs/__tests__/identity-cache/identity-gateway-stale-cache.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.d.ts +18 -14
- package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.js +30 -37
- package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js +424 -403
- package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/volatile-traits-optimization.spec.js +218 -219
- package/dist/cjs/__tests__/identity-cache/volatile-traits-optimization.spec.js.map +1 -1
- package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.js +117 -118
- package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.js.map +1 -1
- package/dist/cjs/__tests__/libs/compress-decompress.spec.js +7 -8
- package/dist/cjs/__tests__/libs/compress-decompress.spec.js.map +1 -1
- package/dist/cjs/__tests__/libs/contacts.spec.js +101 -102
- package/dist/cjs/__tests__/libs/contacts.spec.js.map +1 -1
- package/dist/cjs/__tests__/libs/currency.spec.js +56 -57
- package/dist/cjs/__tests__/libs/currency.spec.js.map +1 -1
- package/dist/cjs/__tests__/libs/dates.spec.js +94 -82
- package/dist/cjs/__tests__/libs/dates.spec.js.map +1 -1
- package/dist/cjs/__tests__/libs/domain.spec.js +68 -69
- package/dist/cjs/__tests__/libs/domain.spec.js.map +1 -1
- package/dist/cjs/__tests__/libs/numbers.spec.js +249 -250
- package/dist/cjs/__tests__/libs/numbers.spec.js.map +1 -1
- package/dist/cjs/__tests__/s3-client/s3-client.spec.js +16 -15
- package/dist/cjs/__tests__/s3-client/s3-client.spec.js.map +1 -1
- package/dist/cjs/__tests__/services/acuity-api-service.spec.js +32 -35
- package/dist/cjs/__tests__/services/acuity-api-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/services/cost/cost-calculation-types.spec.js +14 -15
- package/dist/cjs/__tests__/services/cost/cost-calculation-types.spec.js.map +1 -1
- package/dist/cjs/__tests__/services/cost/cost-calculator-service.spec.js +949 -1187
- package/dist/cjs/__tests__/services/cost/cost-calculator-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/services/cost/cost-currency-service.spec.js +39 -40
- package/dist/cjs/__tests__/services/cost/cost-currency-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/services/cost/cost-filter-service.spec.js +204 -201
- package/dist/cjs/__tests__/services/cost/cost-filter-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js +174 -299
- package/dist/cjs/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.js +39 -41
- package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.js +22 -27
- package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/services/events/collect-queue-tracking-service.spec.js +64 -67
- package/dist/cjs/__tests__/services/events/collect-queue-tracking-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/services/events/tracking-event-sqs-service.spec.js +51 -54
- package/dist/cjs/__tests__/services/events/tracking-event-sqs-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/services/liveintent-api-service.spec.js +67 -0
- package/dist/cjs/__tests__/services/liveintent-api-service.spec.js.map +1 -0
- package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.js +9 -10
- package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.js.map +1 -1
- package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.js +58 -69
- package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.js.map +1 -1
- package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.js +31 -32
- package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.js.map +1 -1
- package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.js +64 -65
- package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.js.map +1 -1
- package/dist/cjs/clients/generic/cognito-client.js +14 -14
- package/dist/cjs/clients/generic/cognito-client.js.map +1 -1
- package/dist/cjs/clients/generic/dynamodb-client.js +9 -9
- package/dist/cjs/clients/generic/dynamodb-client.js.map +1 -1
- package/dist/cjs/clients/generic/eventbridge-client.js +2 -2
- package/dist/cjs/clients/generic/eventbridge-client.js.map +1 -1
- package/dist/cjs/clients/generic/http-client.js +5 -5
- package/dist/cjs/clients/generic/http-client.js.map +1 -1
- package/dist/cjs/clients/generic/lambda-invoke-client.js.map +1 -1
- package/dist/cjs/clients/generic/location-client.js +2 -2
- package/dist/cjs/clients/generic/location-client.js.map +1 -1
- package/dist/cjs/clients/generic/redis-client.js +2 -13
- package/dist/cjs/clients/generic/redis-client.js.map +1 -1
- package/dist/cjs/clients/generic/s3-client.d.ts +1 -0
- package/dist/cjs/clients/generic/s3-client.js +19 -19
- package/dist/cjs/clients/generic/s3-client.js.map +1 -1
- package/dist/cjs/clients/generic/singlestore-db-client.d.ts +2 -2
- package/dist/cjs/clients/generic/singlestore-db-client.js +8 -18
- package/dist/cjs/clients/generic/singlestore-db-client.js.map +1 -1
- package/dist/cjs/clients/generic/sqs-bundled-client.js +2 -2
- package/dist/cjs/clients/generic/sqs-bundled-client.js.map +1 -1
- package/dist/cjs/clients/generic/sqs-bundled-client.types.js +1 -1
- package/dist/cjs/clients/generic/sqs-bundled-client.types.js.map +1 -1
- package/dist/cjs/clients/generic/sqs-client.d.ts +1 -1
- package/dist/cjs/clients/generic/sqs-client.js +2 -2
- package/dist/cjs/clients/generic/sqs-client.js.map +1 -1
- package/dist/cjs/clients/generic/sqs-unbundle.js +7 -6
- package/dist/cjs/clients/generic/sqs-unbundle.js.map +1 -1
- package/dist/cjs/clients/internal-api/accounts-client.js +14 -14
- package/dist/cjs/clients/internal-api/accounts-client.js.map +1 -1
- package/dist/cjs/clients/internal-api/cache-lambda-client.js.map +1 -1
- package/dist/cjs/clients/internal-api/db-management-client.js.map +1 -1
- package/dist/cjs/clients/internal-api/destinations-client.d.ts +2 -1
- package/dist/cjs/clients/internal-api/destinations-client.js +15 -8
- package/dist/cjs/clients/internal-api/destinations-client.js.map +1 -1
- package/dist/cjs/clients/internal-api/event-collector-client.js.map +1 -1
- package/dist/cjs/clients/internal-api/identity-client.js.map +1 -1
- package/dist/cjs/clients/internal-api/shopify-app-install-client.js.map +1 -1
- package/dist/cjs/clients/internal-api/subscriptions-client.js.map +1 -1
- package/dist/cjs/clients/internal-api/users-auth-client.js +11 -11
- package/dist/cjs/clients/internal-api/users-auth-client.js.map +1 -1
- package/dist/cjs/clients/third-party/acuity-client.js.map +1 -1
- package/dist/cjs/clients/third-party/emailable-client.js.map +1 -1
- package/dist/cjs/clients/third-party/index.d.ts +1 -0
- package/dist/cjs/clients/third-party/index.js +1 -0
- package/dist/cjs/clients/third-party/index.js.map +1 -1
- package/dist/cjs/clients/third-party/liveintent-client.d.ts +11 -0
- package/dist/cjs/clients/third-party/liveintent-client.js +25 -0
- package/dist/cjs/clients/third-party/liveintent-client.js.map +1 -0
- package/dist/cjs/clients/third-party/loops-client.js.map +1 -1
- package/dist/cjs/clients/third-party/open-exchange-rates-client.js.map +1 -1
- package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.js.map +1 -1
- package/dist/cjs/clients/third-party/shopify-client.js +15 -15
- package/dist/cjs/clients/third-party/shopify-client.js.map +1 -1
- package/dist/cjs/constants/sqs.js +5 -5
- package/dist/cjs/constants/sqs.js.map +1 -1
- package/dist/cjs/helpers/account-users-helper.js.map +1 -1
- package/dist/cjs/helpers/acuity-helper.js.map +1 -1
- package/dist/cjs/helpers/api-key-auth-helper.d.ts +1 -2
- package/dist/cjs/helpers/api-key-auth-helper.js.map +1 -1
- package/dist/cjs/helpers/api-key-authorizer-helper.js.map +1 -1
- package/dist/cjs/helpers/cognito-auth-helper.d.ts +1 -2
- package/dist/cjs/helpers/cognito-auth-helper.js.map +1 -1
- package/dist/cjs/helpers/input-validation-helper.d.ts +1 -1
- package/dist/cjs/helpers/input-validation-helper.js.map +1 -1
- package/dist/cjs/helpers/logging-helper.d.ts +5 -5
- package/dist/cjs/helpers/logging-helper.js +7 -17
- package/dist/cjs/helpers/logging-helper.js.map +1 -1
- package/dist/cjs/helpers/order-calculation-helper.js.map +1 -1
- package/dist/cjs/helpers/public-api-response-helper.js.map +1 -1
- package/dist/cjs/helpers/response-helper.js.map +1 -1
- package/dist/cjs/helpers/shopify-helper.js.map +1 -1
- package/dist/cjs/helpers/sqs-utils.js +4 -8
- package/dist/cjs/helpers/sqs-utils.js.map +1 -1
- package/dist/cjs/libs/api-router/public-api-router.d.ts +2 -2
- package/dist/cjs/libs/api-router/public-api-router.js.map +1 -1
- package/dist/cjs/libs/api-router/route-matcher.js.map +1 -1
- package/dist/cjs/libs/click-id-parser.js +1 -1
- package/dist/cjs/libs/click-id-parser.js.map +1 -1
- package/dist/cjs/libs/compression.d.ts +1 -1
- package/dist/cjs/libs/compression.js.map +1 -1
- package/dist/cjs/libs/contacts.js.map +1 -1
- package/dist/cjs/libs/cookie.js +1 -1
- package/dist/cjs/libs/cookie.js.map +1 -1
- package/dist/cjs/libs/crypto.js.map +1 -1
- package/dist/cjs/libs/csv.js.map +1 -1
- package/dist/cjs/libs/currency.js.map +1 -1
- package/dist/cjs/libs/dates.d.ts +1 -0
- package/dist/cjs/libs/dates.js +18 -1
- package/dist/cjs/libs/dates.js.map +1 -1
- package/dist/cjs/libs/domain.js.map +1 -1
- package/dist/cjs/libs/emails.js.map +1 -1
- package/dist/cjs/libs/http-error.js.map +1 -1
- package/dist/cjs/libs/http-status-codes.js +1 -1
- package/dist/cjs/libs/http-status-codes.js.map +1 -1
- package/dist/cjs/libs/numbers.js.map +1 -1
- package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +1 -0
- package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +2 -2
- package/dist/cjs/libs/referrer-parser/referrer-parser-util.js.map +1 -1
- package/dist/cjs/libs/strings.js.map +1 -1
- package/dist/cjs/libs/traits.js.map +1 -1
- package/dist/cjs/libs/url.js.map +1 -1
- package/dist/cjs/services/acuity-api-service.js.map +1 -1
- package/dist/cjs/services/cache/product-cache-service.js.map +1 -1
- package/dist/cjs/services/cost/cost-calculation-types.js +2 -1
- package/dist/cjs/services/cost/cost-calculation-types.js.map +1 -1
- package/dist/cjs/services/cost/cost-calculator-service.js +10 -43
- package/dist/cjs/services/cost/cost-calculator-service.js.map +1 -1
- package/dist/cjs/services/cost/cost-currency-service.js.map +1 -1
- package/dist/cjs/services/cost/cost-filter-service.js +7 -16
- package/dist/cjs/services/cost/cost-filter-service.js.map +1 -1
- package/dist/cjs/services/cost/order-cost/order-cost-resolution-service.js +9 -24
- package/dist/cjs/services/cost/order-cost/order-cost-resolution-service.js.map +1 -1
- package/dist/cjs/services/db/accounts-db-service.js.map +1 -1
- package/dist/cjs/services/db/api-keys-db-service.js.map +1 -1
- package/dist/cjs/services/db/contact-enrichments-db-service.js.map +1 -1
- package/dist/cjs/services/db/custom-measures-db-service.js.map +1 -1
- package/dist/cjs/services/db/destinations-db-service.js.map +1 -1
- package/dist/cjs/services/db/identity-cache-db-service.d.ts +1 -1
- package/dist/cjs/services/db/identity-cache-db-service.js.map +1 -1
- package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js +1 -5
- package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -1
- package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +7 -21
- package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -1
- package/dist/cjs/services/db/identity-cache-dynamodb-service/key-builders.js +7 -7
- package/dist/cjs/services/db/identity-cache-dynamodb-service/key-builders.js.map +1 -1
- package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js +3 -3
- package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js.map +1 -1
- package/dist/cjs/services/db/index.d.ts +0 -1
- package/dist/cjs/services/db/index.js +0 -1
- package/dist/cjs/services/db/index.js.map +1 -1
- package/dist/cjs/services/db/log-events-db-service.js.map +1 -1
- package/dist/cjs/services/db/pixels-db-service.js.map +1 -1
- package/dist/cjs/services/db/products-db-service.js +16 -45
- package/dist/cjs/services/db/products-db-service.js.map +1 -1
- package/dist/cjs/services/db/purchasable-contacts-db-service.js.map +1 -1
- package/dist/cjs/services/db/purchased-contacts/purchased-contacts-db-service.js.map +1 -1
- package/dist/cjs/services/db/shopify-app-installs-db-service.js.map +1 -1
- package/dist/cjs/services/db/shopify-products-cache-db-service.js.map +1 -1
- package/dist/cjs/services/db/subscriptions-db-service.js.map +1 -1
- package/dist/cjs/services/db/tracking-events-db-service.js.map +1 -1
- package/dist/cjs/services/db/user-accounts-db-service.js.map +1 -1
- package/dist/cjs/services/email-verification/contact-email-verification-service.js.map +1 -1
- package/dist/cjs/services/email-verification/email-verification-service.js.map +1 -1
- package/dist/cjs/services/eventbridge-integration-service.js.map +1 -1
- package/dist/cjs/services/events/build-collect-queue-tracking-event.js +2 -2
- package/dist/cjs/services/events/build-collect-queue-tracking-event.js.map +1 -1
- package/dist/cjs/services/events/collect-queue-tracking-service.js.map +1 -1
- package/dist/cjs/services/events/log-event-service.js.map +1 -1
- package/dist/cjs/services/events/metric-event-service.js.map +1 -1
- package/dist/cjs/services/events/tracking-event-sqs-service.js.map +1 -1
- package/dist/cjs/services/generic-cache-service.js.map +1 -1
- package/dist/cjs/services/index.d.ts +1 -1
- package/dist/cjs/services/index.js +1 -1
- package/dist/cjs/services/index.js.map +1 -1
- package/dist/cjs/services/ipdata-lookup-service.d.ts +1 -1
- package/dist/cjs/services/ipdata-lookup-service.js.map +1 -1
- package/dist/cjs/services/liveintent-api-service.d.ts +15 -0
- package/dist/cjs/services/liveintent-api-service.js +59 -0
- package/dist/cjs/services/liveintent-api-service.js.map +1 -0
- package/dist/cjs/services/shopify/products/shopify-products-serviceV2.js.map +1 -1
- package/dist/cjs/services/shopify/shopify-graphql-transformer.js +1 -1
- package/dist/cjs/services/shopify/shopify-graphql-transformer.js.map +1 -1
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.js +8 -17
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/internal-events/event-detail-types.js +4 -4
- package/dist/cjs/types/internal-events/event-detail-types.js.map +1 -1
- package/dist/cjs/types/liveintent-types.d.ts +8 -0
- package/dist/cjs/types/liveintent-types.js +3 -0
- package/dist/cjs/types/liveintent-types.js.map +1 -0
- package/dist/cjs/types/public-api-types.js +1 -1
- package/dist/cjs/types/public-api-types.js.map +1 -1
- package/dist/cjs/types/shopify-graphql-types/admin.types.js +491 -491
- package/dist/cjs/types/shopify-graphql-types/admin.types.js.map +1 -1
- package/dist/cjs/types/shopify-rest-types.d.ts +1 -1
- package/dist/cjs/utils/compression.d.ts +2 -0
- package/dist/cjs/utils/compression.js +11 -11
- package/dist/cjs/utils/compression.js.map +1 -1
- package/dist/cjs/utils/custom-measure-formula-utils.js.map +1 -1
- package/dist/cjs/utils/retry-envelope.js +4 -3
- package/dist/cjs/utils/retry-envelope.js.map +1 -1
- package/dist/cjs/utils/size.js +3 -2
- package/dist/cjs/utils/size.js.map +1 -1
- package/dist/esm/__tests__/clients/acuity-client.spec.js +5 -6
- package/dist/esm/__tests__/clients/acuity-client.spec.js.map +1 -1
- package/dist/esm/__tests__/clients/cross-platform-compression.spec.js +0 -1
- package/dist/esm/__tests__/clients/cross-platform-compression.spec.js.map +1 -1
- package/dist/esm/__tests__/clients/dynamodb-client.spec.js +42 -41
- package/dist/esm/__tests__/clients/dynamodb-client.spec.js.map +1 -1
- package/dist/esm/__tests__/clients/event-collector-client.spec.js +18 -18
- package/dist/esm/__tests__/clients/event-collector-client.spec.js.map +1 -1
- package/dist/esm/__tests__/clients/liveintent-client.spec.js +35 -0
- package/dist/esm/__tests__/clients/liveintent-client.spec.js.map +1 -0
- package/dist/esm/__tests__/clients/open-exchange-rates-client.spec.js +3 -4
- package/dist/esm/__tests__/clients/open-exchange-rates-client.spec.js.map +1 -1
- package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js +47 -55
- package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js.map +1 -1
- package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.js +1 -3
- package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.js.map +1 -1
- package/dist/esm/__tests__/clients/sqs-client.spec.js +21 -22
- package/dist/esm/__tests__/clients/sqs-client.spec.js.map +1 -1
- package/dist/esm/__tests__/clients/sqs-unbundle.spec.js +8 -9
- package/dist/esm/__tests__/clients/sqs-unbundle.spec.js.map +1 -1
- package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.js +5 -6
- package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.js.map +1 -1
- package/dist/esm/__tests__/db/destinations-db-service.spec.js +11 -9
- package/dist/esm/__tests__/db/destinations-db-service.spec.js.map +1 -1
- package/dist/esm/__tests__/db/products-db-service.spec.js +8 -9
- package/dist/esm/__tests__/db/products-db-service.spec.js.map +1 -1
- package/dist/esm/__tests__/db/shared-read-db-services.spec.js +6 -7
- package/dist/esm/__tests__/db/shared-read-db-services.spec.js.map +1 -1
- package/dist/esm/__tests__/db/shopify-app-installs-db-service.spec.js +12 -13
- package/dist/esm/__tests__/db/shopify-app-installs-db-service.spec.js.map +1 -1
- package/dist/esm/__tests__/db/subscriptions-db-service.spec.js +11 -12
- package/dist/esm/__tests__/db/subscriptions-db-service.spec.js.map +1 -1
- package/dist/esm/__tests__/db/user-accounts-db-service.spec.js +6 -7
- package/dist/esm/__tests__/db/user-accounts-db-service.spec.js.map +1 -1
- package/dist/esm/__tests__/helpers/account-users-helper.spec.js +3 -4
- package/dist/esm/__tests__/helpers/account-users-helper.spec.js.map +1 -1
- package/dist/esm/__tests__/helpers/acuity-helper.spec.js +0 -1
- package/dist/esm/__tests__/helpers/acuity-helper.spec.js.map +1 -1
- package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.js +3 -4
- package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.js.map +1 -1
- package/dist/esm/__tests__/helpers/cognito-auth-helper.spec.js +1 -2
- package/dist/esm/__tests__/helpers/cognito-auth-helper.spec.js.map +1 -1
- package/dist/esm/__tests__/helpers/order-calculation-helper.spec.js +4 -5
- package/dist/esm/__tests__/helpers/order-calculation-helper.spec.js.map +1 -1
- package/dist/esm/__tests__/helpers/public-api-response-helper.spec.js +1 -2
- package/dist/esm/__tests__/helpers/public-api-response-helper.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/helpers.spec.js +1 -2
- package/dist/esm/__tests__/identity-cache/helpers.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-cache-alias-write.spec.js +15 -16
- package/dist/esm/__tests__/identity-cache/identity-cache-alias-write.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js +1 -2
- package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js +29 -52
- package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js +31 -40
- package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-client.spec.js +21 -24
- package/dist/esm/__tests__/identity-cache/identity-client.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.js +0 -1
- package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.js +4 -17
- package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.js +0 -1
- package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.js +2 -9
- package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js +0 -1
- package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.js +7 -29
- package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.d.ts +18 -14
- package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.js +30 -37
- package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js +37 -16
- package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/volatile-traits-optimization.spec.js +5 -6
- package/dist/esm/__tests__/identity-cache/volatile-traits-optimization.spec.js.map +1 -1
- package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.js +9 -10
- package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.js.map +1 -1
- package/dist/esm/__tests__/libs/compress-decompress.spec.js +1 -2
- package/dist/esm/__tests__/libs/compress-decompress.spec.js.map +1 -1
- package/dist/esm/__tests__/libs/contacts.spec.js +0 -1
- package/dist/esm/__tests__/libs/contacts.spec.js.map +1 -1
- package/dist/esm/__tests__/libs/currency.spec.js +3 -4
- package/dist/esm/__tests__/libs/currency.spec.js.map +1 -1
- package/dist/esm/__tests__/libs/dates.spec.js +23 -11
- package/dist/esm/__tests__/libs/dates.spec.js.map +1 -1
- package/dist/esm/__tests__/libs/domain.spec.js +0 -1
- package/dist/esm/__tests__/libs/domain.spec.js.map +1 -1
- package/dist/esm/__tests__/libs/numbers.spec.js +0 -1
- package/dist/esm/__tests__/libs/numbers.spec.js.map +1 -1
- package/dist/esm/__tests__/s3-client/s3-client.spec.js +7 -6
- package/dist/esm/__tests__/s3-client/s3-client.spec.js.map +1 -1
- package/dist/esm/__tests__/services/acuity-api-service.spec.js +10 -13
- package/dist/esm/__tests__/services/acuity-api-service.spec.js.map +1 -1
- package/dist/esm/__tests__/services/cost/cost-calculation-types.spec.js +0 -1
- package/dist/esm/__tests__/services/cost/cost-calculation-types.spec.js.map +1 -1
- package/dist/esm/__tests__/services/cost/cost-calculator-service.spec.js +280 -518
- package/dist/esm/__tests__/services/cost/cost-calculator-service.spec.js.map +1 -1
- package/dist/esm/__tests__/services/cost/cost-currency-service.spec.js +3 -4
- package/dist/esm/__tests__/services/cost/cost-currency-service.spec.js.map +1 -1
- package/dist/esm/__tests__/services/cost/cost-filter-service.spec.js +22 -19
- package/dist/esm/__tests__/services/cost/cost-filter-service.spec.js.map +1 -1
- package/dist/esm/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js +41 -133
- package/dist/esm/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js.map +1 -1
- package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.js +6 -8
- package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.js.map +1 -1
- package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.js +5 -10
- package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.js.map +1 -1
- package/dist/esm/__tests__/services/events/collect-queue-tracking-service.spec.js +14 -17
- package/dist/esm/__tests__/services/events/collect-queue-tracking-service.spec.js.map +1 -1
- package/dist/esm/__tests__/services/events/tracking-event-sqs-service.spec.js +16 -19
- package/dist/esm/__tests__/services/events/tracking-event-sqs-service.spec.js.map +1 -1
- package/dist/esm/__tests__/services/liveintent-api-service.spec.js +65 -0
- package/dist/esm/__tests__/services/liveintent-api-service.spec.js.map +1 -0
- package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.js +1 -2
- package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.js.map +1 -1
- package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.js +14 -15
- package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.js.map +1 -1
- package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.js +1 -2
- package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.js.map +1 -1
- package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.js +0 -1
- package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.js.map +1 -1
- package/dist/esm/clients/generic/cognito-client.js +2 -2
- package/dist/esm/clients/generic/cognito-client.js.map +1 -1
- package/dist/esm/clients/generic/dynamodb-client.js +9 -9
- package/dist/esm/clients/generic/dynamodb-client.js.map +1 -1
- package/dist/esm/clients/generic/eventbridge-client.js +1 -1
- package/dist/esm/clients/generic/eventbridge-client.js.map +1 -1
- package/dist/esm/clients/generic/http-client.js +5 -5
- package/dist/esm/clients/generic/http-client.js.map +1 -1
- package/dist/esm/clients/generic/lambda-invoke-client.js.map +1 -1
- package/dist/esm/clients/generic/location-client.js +1 -1
- package/dist/esm/clients/generic/location-client.js.map +1 -1
- package/dist/esm/clients/generic/redis-client.js +2 -13
- package/dist/esm/clients/generic/redis-client.js.map +1 -1
- package/dist/esm/clients/generic/s3-client.d.ts +1 -0
- package/dist/esm/clients/generic/s3-client.js +1 -1
- package/dist/esm/clients/generic/s3-client.js.map +1 -1
- package/dist/esm/clients/generic/singlestore-db-client.d.ts +2 -2
- package/dist/esm/clients/generic/singlestore-db-client.js +1 -1
- package/dist/esm/clients/generic/singlestore-db-client.js.map +1 -1
- package/dist/esm/clients/generic/sqs-bundled-client.js +2 -2
- package/dist/esm/clients/generic/sqs-bundled-client.js.map +1 -1
- package/dist/esm/clients/generic/sqs-client.d.ts +1 -1
- package/dist/esm/clients/generic/sqs-client.js +2 -2
- package/dist/esm/clients/generic/sqs-client.js.map +1 -1
- package/dist/esm/clients/generic/sqs-unbundle.js +2 -2
- package/dist/esm/clients/generic/sqs-unbundle.js.map +1 -1
- package/dist/esm/clients/internal-api/accounts-client.js +1 -1
- package/dist/esm/clients/internal-api/accounts-client.js.map +1 -1
- package/dist/esm/clients/internal-api/cache-lambda-client.js.map +1 -1
- package/dist/esm/clients/internal-api/destinations-client.d.ts +2 -1
- package/dist/esm/clients/internal-api/destinations-client.js +8 -1
- package/dist/esm/clients/internal-api/destinations-client.js.map +1 -1
- package/dist/esm/clients/internal-api/event-collector-client.js.map +1 -1
- package/dist/esm/clients/internal-api/identity-client.js.map +1 -1
- package/dist/esm/clients/internal-api/users-auth-client.js +1 -1
- package/dist/esm/clients/internal-api/users-auth-client.js.map +1 -1
- package/dist/esm/clients/third-party/emailable-client.js.map +1 -1
- package/dist/esm/clients/third-party/index.d.ts +1 -0
- package/dist/esm/clients/third-party/index.js +1 -0
- package/dist/esm/clients/third-party/index.js.map +1 -1
- package/dist/esm/clients/third-party/liveintent-client.d.ts +11 -0
- package/dist/esm/clients/third-party/liveintent-client.js +21 -0
- package/dist/esm/clients/third-party/liveintent-client.js.map +1 -0
- package/dist/esm/clients/third-party/loops-client.js.map +1 -1
- package/dist/esm/clients/third-party/open-exchange-rates-client.js.map +1 -1
- package/dist/esm/clients/third-party/shopify/shopify-graphql-client.js +1 -1
- package/dist/esm/clients/third-party/shopify/shopify-graphql-client.js.map +1 -1
- package/dist/esm/clients/third-party/shopify-client.js +1 -1
- package/dist/esm/clients/third-party/shopify-client.js.map +1 -1
- package/dist/esm/constants/sqs.js +3 -3
- package/dist/esm/constants/sqs.js.map +1 -1
- package/dist/esm/helpers/account-users-helper.js.map +1 -1
- package/dist/esm/helpers/acuity-helper.js.map +1 -1
- package/dist/esm/helpers/api-key-auth-helper.d.ts +1 -2
- package/dist/esm/helpers/api-key-auth-helper.js.map +1 -1
- package/dist/esm/helpers/api-key-authorizer-helper.js.map +1 -1
- package/dist/esm/helpers/cognito-auth-helper.d.ts +1 -2
- package/dist/esm/helpers/cognito-auth-helper.js.map +1 -1
- package/dist/esm/helpers/input-validation-helper.d.ts +1 -1
- package/dist/esm/helpers/input-validation-helper.js.map +1 -1
- package/dist/esm/helpers/logging-helper.d.ts +5 -5
- package/dist/esm/helpers/logging-helper.js.map +1 -1
- package/dist/esm/helpers/order-calculation-helper.js.map +1 -1
- package/dist/esm/helpers/public-api-response-helper.js.map +1 -1
- package/dist/esm/helpers/response-helper.js.map +1 -1
- package/dist/esm/helpers/shopify-helper.js.map +1 -1
- package/dist/esm/helpers/sqs-utils.js +1 -6
- package/dist/esm/helpers/sqs-utils.js.map +1 -1
- package/dist/esm/libs/api-router/public-api-router.d.ts +2 -2
- package/dist/esm/libs/api-router/public-api-router.js.map +1 -1
- package/dist/esm/libs/api-router/route-matcher.js.map +1 -1
- package/dist/esm/libs/click-id-parser.js.map +1 -1
- package/dist/esm/libs/compression.d.ts +1 -1
- package/dist/esm/libs/compression.js.map +1 -1
- package/dist/esm/libs/contacts.js.map +1 -1
- package/dist/esm/libs/cookie.js.map +1 -1
- package/dist/esm/libs/csv.js.map +1 -1
- package/dist/esm/libs/currency.js.map +1 -1
- package/dist/esm/libs/dates.d.ts +1 -0
- package/dist/esm/libs/dates.js +16 -0
- package/dist/esm/libs/dates.js.map +1 -1
- package/dist/esm/libs/domain.js.map +1 -1
- package/dist/esm/libs/emails.js.map +1 -1
- package/dist/esm/libs/http-error.js.map +1 -1
- package/dist/esm/libs/numbers.js.map +1 -1
- package/dist/esm/libs/referrer-parser/referrer-parser-util.d.ts +1 -0
- package/dist/esm/libs/referrer-parser/referrer-parser-util.js +2 -2
- package/dist/esm/libs/referrer-parser/referrer-parser-util.js.map +1 -1
- package/dist/esm/libs/strings.js.map +1 -1
- package/dist/esm/libs/traits.js.map +1 -1
- package/dist/esm/services/acuity-api-service.js.map +1 -1
- package/dist/esm/services/cache/product-cache-service.js.map +1 -1
- package/dist/esm/services/cost/cost-calculation-types.js.map +1 -1
- package/dist/esm/services/cost/cost-calculator-service.js +10 -43
- package/dist/esm/services/cost/cost-calculator-service.js.map +1 -1
- package/dist/esm/services/cost/cost-currency-service.js.map +1 -1
- package/dist/esm/services/cost/cost-filter-service.js +7 -16
- package/dist/esm/services/cost/cost-filter-service.js.map +1 -1
- package/dist/esm/services/cost/order-cost/order-cost-resolution-service.js +9 -24
- package/dist/esm/services/cost/order-cost/order-cost-resolution-service.js.map +1 -1
- package/dist/esm/services/db/accounts-db-service.js.map +1 -1
- package/dist/esm/services/db/api-keys-db-service.js.map +1 -1
- package/dist/esm/services/db/contact-enrichments-db-service.js.map +1 -1
- package/dist/esm/services/db/custom-measures-db-service.js.map +1 -1
- package/dist/esm/services/db/identity-cache-db-service.d.ts +1 -1
- package/dist/esm/services/db/identity-cache-db-service.js.map +1 -1
- package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js +2 -6
- package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -1
- package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +8 -22
- package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -1
- package/dist/esm/services/db/identity-cache-dynamodb-service/types.js.map +1 -1
- package/dist/esm/services/db/index.d.ts +0 -1
- package/dist/esm/services/db/index.js +0 -1
- package/dist/esm/services/db/index.js.map +1 -1
- package/dist/esm/services/db/log-events-db-service.js.map +1 -1
- package/dist/esm/services/db/products-db-service.js +16 -45
- package/dist/esm/services/db/products-db-service.js.map +1 -1
- package/dist/esm/services/db/purchasable-contacts-db-service.js.map +1 -1
- package/dist/esm/services/db/purchased-contacts/purchased-contacts-db-service.js.map +1 -1
- package/dist/esm/services/db/shopify-app-installs-db-service.js.map +1 -1
- package/dist/esm/services/db/shopify-products-cache-db-service.js.map +1 -1
- package/dist/esm/services/db/subscriptions-db-service.js.map +1 -1
- package/dist/esm/services/db/tracking-events-db-service.js.map +1 -1
- package/dist/esm/services/email-verification/contact-email-verification-service.js.map +1 -1
- package/dist/esm/services/email-verification/email-verification-service.js.map +1 -1
- package/dist/esm/services/events/build-collect-queue-tracking-event.js.map +1 -1
- package/dist/esm/services/events/collect-queue-tracking-service.js +1 -1
- package/dist/esm/services/events/collect-queue-tracking-service.js.map +1 -1
- package/dist/esm/services/events/log-event-service.js.map +1 -1
- package/dist/esm/services/events/metric-event-service.js.map +1 -1
- package/dist/esm/services/events/tracking-event-sqs-service.js.map +1 -1
- package/dist/esm/services/generic-cache-service.js.map +1 -1
- package/dist/esm/services/index.d.ts +1 -1
- package/dist/esm/services/index.js +1 -1
- package/dist/esm/services/index.js.map +1 -1
- package/dist/esm/services/ipdata-lookup-service.d.ts +1 -1
- package/dist/esm/services/ipdata-lookup-service.js.map +1 -1
- package/dist/esm/services/liveintent-api-service.d.ts +15 -0
- package/dist/esm/services/liveintent-api-service.js +55 -0
- package/dist/esm/services/liveintent-api-service.js.map +1 -0
- package/dist/esm/services/shopify/products/shopify-products-serviceV2.js.map +1 -1
- package/dist/esm/services/shopify/shopify-graphql-transformer.js +1 -1
- package/dist/esm/services/shopify/shopify-graphql-transformer.js.map +1 -1
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/liveintent-types.d.ts +8 -0
- package/dist/esm/types/liveintent-types.js +2 -0
- package/dist/esm/types/liveintent-types.js.map +1 -0
- package/dist/esm/types/shopify-rest-types.d.ts +1 -1
- package/dist/esm/utils/compression.d.ts +2 -0
- package/dist/esm/utils/compression.js +3 -3
- package/dist/esm/utils/compression.js.map +1 -1
- package/dist/esm/utils/custom-measure-formula-utils.js.map +1 -1
- package/dist/esm/utils/retry-envelope.js.map +1 -1
- package/dist/esm/utils/size.js.map +1 -1
- package/package.json +136 -139
- package/dist/cjs/__tests__/clients/client-timeout-inventory.spec.js +0 -21
- package/dist/cjs/__tests__/clients/client-timeout-inventory.spec.js.map +0 -1
- package/dist/cjs/__tests__/clients/redis-client.spec.js +0 -79
- package/dist/cjs/__tests__/clients/redis-client.spec.js.map +0 -1
- package/dist/cjs/__tests__/services/currency-exchange-rate-lookup-service.spec.js +0 -40
- package/dist/cjs/__tests__/services/currency-exchange-rate-lookup-service.spec.js.map +0 -1
- package/dist/cjs/clients/third-party/exchange-rate-api-client.d.ts +0 -17
- package/dist/cjs/clients/third-party/exchange-rate-api-client.js +0 -20
- package/dist/cjs/clients/third-party/exchange-rate-api-client.js.map +0 -1
- package/dist/cjs/services/currency-exchange-rate-lookup-service.d.ts +0 -12
- package/dist/cjs/services/currency-exchange-rate-lookup-service.js +0 -98
- package/dist/cjs/services/currency-exchange-rate-lookup-service.js.map +0 -1
- package/dist/cjs/services/db/currency-exchange-rates-db-service.d.ts +0 -21
- package/dist/cjs/services/db/currency-exchange-rates-db-service.js +0 -40
- package/dist/cjs/services/db/currency-exchange-rates-db-service.js.map +0 -1
- package/dist/esm/__tests__/clients/client-timeout-inventory.spec.js +0 -19
- package/dist/esm/__tests__/clients/client-timeout-inventory.spec.js.map +0 -1
- package/dist/esm/__tests__/clients/redis-client.spec.d.ts +0 -1
- package/dist/esm/__tests__/clients/redis-client.spec.js +0 -77
- package/dist/esm/__tests__/clients/redis-client.spec.js.map +0 -1
- package/dist/esm/__tests__/services/currency-exchange-rate-lookup-service.spec.d.ts +0 -1
- package/dist/esm/__tests__/services/currency-exchange-rate-lookup-service.spec.js +0 -38
- package/dist/esm/__tests__/services/currency-exchange-rate-lookup-service.spec.js.map +0 -1
- package/dist/esm/clients/third-party/exchange-rate-api-client.d.ts +0 -17
- package/dist/esm/clients/third-party/exchange-rate-api-client.js +0 -16
- package/dist/esm/clients/third-party/exchange-rate-api-client.js.map +0 -1
- package/dist/esm/services/currency-exchange-rate-lookup-service.d.ts +0 -12
- package/dist/esm/services/currency-exchange-rate-lookup-service.js +0 -94
- package/dist/esm/services/currency-exchange-rate-lookup-service.js.map +0 -1
- package/dist/esm/services/db/currency-exchange-rates-db-service.d.ts +0 -21
- package/dist/esm/services/db/currency-exchange-rates-db-service.js +0 -36
- package/dist/esm/services/db/currency-exchange-rates-db-service.js.map +0 -1
- /package/dist/cjs/__tests__/clients/{client-timeout-inventory.spec.d.ts → liveintent-client.spec.d.ts} +0 -0
- /package/dist/cjs/__tests__/{clients/redis-client.spec.d.ts → services/liveintent-api-service.spec.d.ts} +0 -0
- /package/dist/{cjs/__tests__/services/currency-exchange-rate-lookup-service.spec.d.ts → esm/__tests__/clients/liveintent-client.spec.d.ts} +0 -0
- /package/dist/esm/__tests__/{clients/client-timeout-inventory.spec.d.ts → services/liveintent-api-service.spec.d.ts} +0 -0
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
3
|
const at_tracking_event_types_1 = require("@adtrackify/at-tracking-event-types");
|
|
5
4
|
const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
describe('Volatile Traits Optimization - Tier Classification', () => {
|
|
6
|
+
afterEach(() => {
|
|
7
|
+
jest.resetModules();
|
|
9
8
|
});
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
describe('TIER: NONE — Cache is fresh', () => {
|
|
10
|
+
it('should return NONE when cached and incoming are identical', () => {
|
|
12
11
|
const identity = {
|
|
13
12
|
identityId: 'test-id',
|
|
14
13
|
traits: {
|
|
@@ -20,14 +19,14 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
20
19
|
},
|
|
21
20
|
};
|
|
22
21
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(identity, identity);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.NONE);
|
|
23
|
+
expect(result.isCacheStale).toBe(false);
|
|
24
|
+
expect(result.isIpAddressStale).toBe(false);
|
|
25
|
+
expect(result.isUserAgentStale).toBe(false);
|
|
26
|
+
expect(result.isEmailsStale).toBe(false);
|
|
27
|
+
expect(result.isAddressesStale).toBe(false);
|
|
29
28
|
});
|
|
30
|
-
|
|
29
|
+
it('should return NONE when incoming is subset of cached', () => {
|
|
31
30
|
const cachedIdentity = {
|
|
32
31
|
identityId: 'test-id',
|
|
33
32
|
traits: {
|
|
@@ -44,12 +43,12 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
44
43
|
},
|
|
45
44
|
};
|
|
46
45
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.NONE);
|
|
47
|
+
expect(result.isCacheStale).toBe(false);
|
|
49
48
|
});
|
|
50
49
|
});
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
describe('TIER: VOLATILE_ONLY — Only session traits changed', () => {
|
|
51
|
+
it('should return VOLATILE_ONLY when only ipAddress is stale', () => {
|
|
53
52
|
const cachedIdentity = {
|
|
54
53
|
identityId: 'test-id',
|
|
55
54
|
traits: {
|
|
@@ -65,12 +64,12 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
65
64
|
},
|
|
66
65
|
};
|
|
67
66
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
|
|
68
|
+
expect(result.isCacheStale).toBe(false);
|
|
69
|
+
expect(result.isIpAddressStale).toBe(true);
|
|
70
|
+
expect(result.isUserAgentStale).toBe(false);
|
|
72
71
|
});
|
|
73
|
-
|
|
72
|
+
it('should return VOLATILE_ONLY when only userAgent is stale', () => {
|
|
74
73
|
const cachedIdentity = {
|
|
75
74
|
identityId: 'test-id',
|
|
76
75
|
traits: {
|
|
@@ -86,12 +85,12 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
86
85
|
},
|
|
87
86
|
};
|
|
88
87
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
88
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
|
|
89
|
+
expect(result.isCacheStale).toBe(false);
|
|
90
|
+
expect(result.isUserAgentStale).toBe(true);
|
|
91
|
+
expect(result.isIpAddressStale).toBe(false);
|
|
93
92
|
});
|
|
94
|
-
|
|
93
|
+
it('should return VOLATILE_ONLY when only IP-sourced addresses are stale', () => {
|
|
95
94
|
const cachedIdentity = {
|
|
96
95
|
identityId: 'test-id',
|
|
97
96
|
traits: {
|
|
@@ -107,12 +106,12 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
107
106
|
},
|
|
108
107
|
};
|
|
109
108
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
109
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
|
|
110
|
+
expect(result.isCacheStale).toBe(false);
|
|
111
|
+
expect(result.isIpAddressesStale).toBe(true);
|
|
112
|
+
expect(result.isNonIpAddressesStale).toBe(false);
|
|
114
113
|
});
|
|
115
|
-
|
|
114
|
+
it('should return VOLATILE_ONLY when ipAddress AND userAgent are both stale', () => {
|
|
116
115
|
const cachedIdentity = {
|
|
117
116
|
identityId: 'test-id',
|
|
118
117
|
traits: {
|
|
@@ -130,12 +129,12 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
130
129
|
},
|
|
131
130
|
};
|
|
132
131
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
132
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
|
|
133
|
+
expect(result.isCacheStale).toBe(false);
|
|
134
|
+
expect(result.isIpAddressStale).toBe(true);
|
|
135
|
+
expect(result.isUserAgentStale).toBe(true);
|
|
137
136
|
});
|
|
138
|
-
|
|
137
|
+
it('should return VOLATILE_ONLY when ipAddress AND IP-sourced address are both stale', () => {
|
|
139
138
|
const cachedIdentity = {
|
|
140
139
|
identityId: 'test-id',
|
|
141
140
|
traits: {
|
|
@@ -153,12 +152,12 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
153
152
|
},
|
|
154
153
|
};
|
|
155
154
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
155
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
|
|
156
|
+
expect(result.isCacheStale).toBe(false);
|
|
157
|
+
expect(result.isIpAddressStale).toBe(true);
|
|
158
|
+
expect(result.isIpAddressesStale).toBe(true);
|
|
160
159
|
});
|
|
161
|
-
|
|
160
|
+
it('should return VOLATILE_ONLY when all volatile traits are stale but no identity traits', () => {
|
|
162
161
|
const cachedIdentity = {
|
|
163
162
|
identityId: 'test-id',
|
|
164
163
|
traits: {
|
|
@@ -178,15 +177,15 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
178
177
|
},
|
|
179
178
|
};
|
|
180
179
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
180
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
|
|
181
|
+
expect(result.isCacheStale).toBe(false);
|
|
182
|
+
expect(result.isIpAddressStale).toBe(true);
|
|
183
|
+
expect(result.isUserAgentStale).toBe(true);
|
|
184
|
+
expect(result.isIpAddressesStale).toBe(true);
|
|
186
185
|
});
|
|
187
186
|
});
|
|
188
|
-
|
|
189
|
-
|
|
187
|
+
describe('TIER: ADDRESS_UPDATE — Non-IP address changed', () => {
|
|
188
|
+
it('should return ADDRESS_UPDATE when only non-IP address is new', () => {
|
|
190
189
|
const cachedIdentity = {
|
|
191
190
|
identityId: 'test-id',
|
|
192
191
|
traits: {
|
|
@@ -202,12 +201,12 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
202
201
|
},
|
|
203
202
|
};
|
|
204
203
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
204
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
|
|
205
|
+
expect(result.isCacheStale).toBe(true);
|
|
206
|
+
expect(result.isNonIpAddressesStale).toBe(true);
|
|
207
|
+
expect(result.isIpAddressesStale).toBe(false);
|
|
209
208
|
});
|
|
210
|
-
|
|
209
|
+
it('should return ADDRESS_UPDATE when non-IP address AND volatile traits are both stale', () => {
|
|
211
210
|
const cachedIdentity = {
|
|
212
211
|
identityId: 'test-id',
|
|
213
212
|
traits: {
|
|
@@ -227,13 +226,13 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
227
226
|
},
|
|
228
227
|
};
|
|
229
228
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
229
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
|
|
230
|
+
expect(result.isCacheStale).toBe(true);
|
|
231
|
+
expect(result.isNonIpAddressesStale).toBe(true);
|
|
232
|
+
expect(result.isIpAddressStale).toBe(true);
|
|
233
|
+
expect(result.isUserAgentStale).toBe(true);
|
|
235
234
|
});
|
|
236
|
-
|
|
235
|
+
it('should return ADDRESS_UPDATE when new input address added to existing addresses', () => {
|
|
237
236
|
const cachedIdentity = {
|
|
238
237
|
identityId: 'test-id',
|
|
239
238
|
traits: {
|
|
@@ -252,11 +251,11 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
252
251
|
},
|
|
253
252
|
};
|
|
254
253
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
254
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
|
|
255
|
+
expect(result.isCacheStale).toBe(true);
|
|
256
|
+
expect(result.isNonIpAddressesStale).toBe(true);
|
|
258
257
|
});
|
|
259
|
-
|
|
258
|
+
it('should return ADDRESS_UPDATE when address with PII (no source field) is added', () => {
|
|
260
259
|
const cachedIdentity = {
|
|
261
260
|
identityId: 'test-id',
|
|
262
261
|
traits: {
|
|
@@ -272,13 +271,13 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
272
271
|
},
|
|
273
272
|
};
|
|
274
273
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
274
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
|
|
275
|
+
expect(result.isCacheStale).toBe(true);
|
|
276
|
+
expect(result.isNonIpAddressesStale).toBe(true);
|
|
278
277
|
});
|
|
279
278
|
});
|
|
280
|
-
|
|
281
|
-
|
|
279
|
+
describe('TIER: IDENTITY_STALE — Identity-defining traits changed', () => {
|
|
280
|
+
it('should return IDENTITY_STALE when emails are stale', () => {
|
|
282
281
|
const cachedIdentity = {
|
|
283
282
|
identityId: 'test-id',
|
|
284
283
|
traits: { emails: ['old@email.com'] },
|
|
@@ -288,11 +287,11 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
288
287
|
traits: { emails: ['old@email.com', 'new@email.com'] },
|
|
289
288
|
};
|
|
290
289
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
290
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
|
|
291
|
+
expect(result.isCacheStale).toBe(true);
|
|
292
|
+
expect(result.isEmailsStale).toBe(true);
|
|
294
293
|
});
|
|
295
|
-
|
|
294
|
+
it('should return IDENTITY_STALE when phones are stale', () => {
|
|
296
295
|
const cachedIdentity = {
|
|
297
296
|
identityId: 'test-id',
|
|
298
297
|
traits: { phones: ['+1234567890'] },
|
|
@@ -302,11 +301,11 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
302
301
|
traits: { phones: ['+1234567890', '+9876543210'] },
|
|
303
302
|
};
|
|
304
303
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
304
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
|
|
305
|
+
expect(result.isCacheStale).toBe(true);
|
|
306
|
+
expect(result.isPhonesStale).toBe(true);
|
|
308
307
|
});
|
|
309
|
-
|
|
308
|
+
it('should return IDENTITY_STALE when userIds are stale', () => {
|
|
310
309
|
const cachedIdentity = {
|
|
311
310
|
identityId: 'test-id',
|
|
312
311
|
traits: { userIds: ['user1'] },
|
|
@@ -316,11 +315,11 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
316
315
|
traits: { userIds: ['user1', 'user2'] },
|
|
317
316
|
};
|
|
318
317
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
318
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
|
|
319
|
+
expect(result.isCacheStale).toBe(true);
|
|
320
|
+
expect(result.isUserIdsStale).toBe(true);
|
|
322
321
|
});
|
|
323
|
-
|
|
322
|
+
it('should return IDENTITY_STALE when clickInfos are stale', () => {
|
|
324
323
|
const cachedIdentity = {
|
|
325
324
|
identityId: 'test-id',
|
|
326
325
|
traits: { click: { gclid: 'old_gclid' } },
|
|
@@ -330,11 +329,11 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
330
329
|
traits: { click: { gclid: 'new_gclid' } },
|
|
331
330
|
};
|
|
332
331
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
332
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
|
|
333
|
+
expect(result.isCacheStale).toBe(true);
|
|
334
|
+
expect(result.isClickInfosStale).toBe(true);
|
|
336
335
|
});
|
|
337
|
-
|
|
336
|
+
it('should return IDENTITY_STALE when identityId is stale', () => {
|
|
338
337
|
const cachedIdentity = {
|
|
339
338
|
identityId: 'old-id',
|
|
340
339
|
traits: { emails: ['test@email.com'] },
|
|
@@ -344,11 +343,11 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
344
343
|
traits: { emails: ['test@email.com'] },
|
|
345
344
|
};
|
|
346
345
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
346
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
|
|
347
|
+
expect(result.isCacheStale).toBe(true);
|
|
348
|
+
expect(result.isIdentityIdStale).toBe(true);
|
|
350
349
|
});
|
|
351
|
-
|
|
350
|
+
it('should return IDENTITY_STALE when emails stale AND volatile traits stale (highest tier wins)', () => {
|
|
352
351
|
const cachedIdentity = {
|
|
353
352
|
identityId: 'test-id',
|
|
354
353
|
traits: {
|
|
@@ -366,13 +365,13 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
366
365
|
},
|
|
367
366
|
};
|
|
368
367
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
368
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
|
|
369
|
+
expect(result.isCacheStale).toBe(true);
|
|
370
|
+
expect(result.isEmailsStale).toBe(true);
|
|
371
|
+
expect(result.isIpAddressStale).toBe(true);
|
|
372
|
+
expect(result.isUserAgentStale).toBe(true);
|
|
374
373
|
});
|
|
375
|
-
|
|
374
|
+
it('should return IDENTITY_STALE when emails stale AND non-IP address stale (highest tier wins)', () => {
|
|
376
375
|
const cachedIdentity = {
|
|
377
376
|
identityId: 'test-id',
|
|
378
377
|
traits: {
|
|
@@ -388,19 +387,19 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
388
387
|
},
|
|
389
388
|
};
|
|
390
389
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
390
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
|
|
391
|
+
expect(result.isCacheStale).toBe(true);
|
|
392
|
+
expect(result.isEmailsStale).toBe(true);
|
|
393
|
+
expect(result.isNonIpAddressesStale).toBe(true);
|
|
395
394
|
});
|
|
396
395
|
});
|
|
397
396
|
});
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
397
|
+
describe('Volatile Traits Optimization - Address Source Filtering', () => {
|
|
398
|
+
afterEach(() => {
|
|
399
|
+
jest.resetModules();
|
|
401
400
|
});
|
|
402
|
-
|
|
403
|
-
|
|
401
|
+
describe('isAddressIpSourced inference', () => {
|
|
402
|
+
it('should treat address with s: IP_ADDRESS as IP-sourced', () => {
|
|
404
403
|
const cachedIdentity = {
|
|
405
404
|
identityId: 'test-id',
|
|
406
405
|
traits: { addresses: [] },
|
|
@@ -412,11 +411,11 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
412
411
|
},
|
|
413
412
|
};
|
|
414
413
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
414
|
+
expect(result.isIpAddressesStale).toBe(true);
|
|
415
|
+
expect(result.isNonIpAddressesStale).toBe(false);
|
|
416
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
|
|
418
417
|
});
|
|
419
|
-
|
|
418
|
+
it('should treat address with s: INPUT as non-IP-sourced', () => {
|
|
420
419
|
const cachedIdentity = {
|
|
421
420
|
identityId: 'test-id',
|
|
422
421
|
traits: { addresses: [] },
|
|
@@ -428,11 +427,11 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
428
427
|
},
|
|
429
428
|
};
|
|
430
429
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
430
|
+
expect(result.isNonIpAddressesStale).toBe(true);
|
|
431
|
+
expect(result.isIpAddressesStale).toBe(false);
|
|
432
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
|
|
434
433
|
});
|
|
435
|
-
|
|
434
|
+
it('should treat address without s but with firstName/lastName as non-IP (inferred input)', () => {
|
|
436
435
|
const cachedIdentity = {
|
|
437
436
|
identityId: 'test-id',
|
|
438
437
|
traits: { addresses: [] },
|
|
@@ -444,11 +443,11 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
444
443
|
},
|
|
445
444
|
};
|
|
446
445
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
446
|
+
expect(result.isNonIpAddressesStale).toBe(true);
|
|
447
|
+
expect(result.isIpAddressesStale).toBe(false);
|
|
448
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
|
|
450
449
|
});
|
|
451
|
-
|
|
450
|
+
it('should treat address without s but with email as non-IP (inferred input)', () => {
|
|
452
451
|
const cachedIdentity = {
|
|
453
452
|
identityId: 'test-id',
|
|
454
453
|
traits: { addresses: [] },
|
|
@@ -460,10 +459,10 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
460
459
|
},
|
|
461
460
|
};
|
|
462
461
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
463
|
-
|
|
464
|
-
|
|
462
|
+
expect(result.isNonIpAddressesStale).toBe(true);
|
|
463
|
+
expect(result.isIpAddressesStale).toBe(false);
|
|
465
464
|
});
|
|
466
|
-
|
|
465
|
+
it('should treat address without s but with phone as non-IP (inferred input)', () => {
|
|
467
466
|
const cachedIdentity = {
|
|
468
467
|
identityId: 'test-id',
|
|
469
468
|
traits: { addresses: [] },
|
|
@@ -475,10 +474,10 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
475
474
|
},
|
|
476
475
|
};
|
|
477
476
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
478
|
-
|
|
479
|
-
|
|
477
|
+
expect(result.isNonIpAddressesStale).toBe(true);
|
|
478
|
+
expect(result.isIpAddressesStale).toBe(false);
|
|
480
479
|
});
|
|
481
|
-
|
|
480
|
+
it('should treat address without s and without PII as IP-sourced (inferred IP)', () => {
|
|
482
481
|
const cachedIdentity = {
|
|
483
482
|
identityId: 'test-id',
|
|
484
483
|
traits: { addresses: [] },
|
|
@@ -490,13 +489,13 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
490
489
|
},
|
|
491
490
|
};
|
|
492
491
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
492
|
+
expect(result.isIpAddressesStale).toBe(true);
|
|
493
|
+
expect(result.isNonIpAddressesStale).toBe(false);
|
|
494
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
|
|
496
495
|
});
|
|
497
496
|
});
|
|
498
|
-
|
|
499
|
-
|
|
497
|
+
describe('filterAddressesBySource behavior', () => {
|
|
498
|
+
it('should correctly separate IP and non-IP addresses when mixed', () => {
|
|
500
499
|
const cachedIdentity = {
|
|
501
500
|
identityId: 'test-id',
|
|
502
501
|
traits: {
|
|
@@ -517,13 +516,13 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
517
516
|
},
|
|
518
517
|
};
|
|
519
518
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
519
|
+
expect(result.isIpAddressesStale).toBe(true);
|
|
520
|
+
expect(result.isNonIpAddressesStale).toBe(true);
|
|
521
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
|
|
523
522
|
});
|
|
524
523
|
});
|
|
525
|
-
|
|
526
|
-
|
|
524
|
+
describe('hasNewNonIpAddress detection', () => {
|
|
525
|
+
it('should detect new input address as stale', () => {
|
|
527
526
|
const cachedIdentity = {
|
|
528
527
|
identityId: 'test-id',
|
|
529
528
|
traits: {
|
|
@@ -540,10 +539,10 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
540
539
|
},
|
|
541
540
|
};
|
|
542
541
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
543
|
-
|
|
544
|
-
|
|
542
|
+
expect(result.isNonIpAddressesStale).toBe(true);
|
|
543
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
|
|
545
544
|
});
|
|
546
|
-
|
|
545
|
+
it('should NOT mark non-IP stale when only IP address is new', () => {
|
|
547
546
|
const cachedIdentity = {
|
|
548
547
|
identityId: 'test-id',
|
|
549
548
|
traits: {
|
|
@@ -563,13 +562,13 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
563
562
|
},
|
|
564
563
|
};
|
|
565
564
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
565
|
+
expect(result.isIpAddressesStale).toBe(true);
|
|
566
|
+
expect(result.isNonIpAddressesStale).toBe(false);
|
|
567
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
|
|
569
568
|
});
|
|
570
569
|
});
|
|
571
|
-
|
|
572
|
-
|
|
570
|
+
describe('hasNewIpAddress detection', () => {
|
|
571
|
+
it('should detect new IP address for tracking purposes', () => {
|
|
573
572
|
const cachedIdentity = {
|
|
574
573
|
identityId: 'test-id',
|
|
575
574
|
traits: {
|
|
@@ -583,12 +582,12 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
583
582
|
},
|
|
584
583
|
};
|
|
585
584
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
586
|
-
|
|
587
|
-
|
|
585
|
+
expect(result.isIpAddressesStale).toBe(true);
|
|
586
|
+
expect(result.isAddressesStale).toBe(true);
|
|
588
587
|
});
|
|
589
588
|
});
|
|
590
|
-
|
|
591
|
-
|
|
589
|
+
describe('Empty addresses edge cases', () => {
|
|
590
|
+
it('should return ADDRESS_UPDATE when cached empty and incoming has non-IP address', () => {
|
|
592
591
|
const cachedIdentity = {
|
|
593
592
|
identityId: 'test-id',
|
|
594
593
|
traits: { addresses: [] },
|
|
@@ -600,11 +599,11 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
600
599
|
},
|
|
601
600
|
};
|
|
602
601
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
602
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
|
|
603
|
+
expect(result.isCacheStale).toBe(true);
|
|
604
|
+
expect(result.isNonIpAddressesStale).toBe(true);
|
|
606
605
|
});
|
|
607
|
-
|
|
606
|
+
it('should return VOLATILE_ONLY when cached empty and incoming has only IP address', () => {
|
|
608
607
|
const cachedIdentity = {
|
|
609
608
|
identityId: 'test-id',
|
|
610
609
|
traits: { addresses: [] },
|
|
@@ -616,12 +615,12 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
616
615
|
},
|
|
617
616
|
};
|
|
618
617
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
618
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
|
|
619
|
+
expect(result.isCacheStale).toBe(false);
|
|
620
|
+
expect(result.isIpAddressesStale).toBe(true);
|
|
621
|
+
expect(result.isNonIpAddressesStale).toBe(false);
|
|
623
622
|
});
|
|
624
|
-
|
|
623
|
+
it('should return NONE when both cached and incoming have empty addresses', () => {
|
|
625
624
|
const cachedIdentity = {
|
|
626
625
|
identityId: 'test-id',
|
|
627
626
|
traits: { addresses: [] },
|
|
@@ -631,12 +630,12 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
631
630
|
traits: { addresses: [] },
|
|
632
631
|
};
|
|
633
632
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
634
|
-
|
|
635
|
-
|
|
633
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.NONE);
|
|
634
|
+
expect(result.isAddressesStale).toBe(false);
|
|
636
635
|
});
|
|
637
636
|
});
|
|
638
|
-
|
|
639
|
-
|
|
637
|
+
describe('All addresses have s field explicitly set', () => {
|
|
638
|
+
it('should correctly identify source when all addresses have explicit s field', () => {
|
|
640
639
|
const cachedIdentity = {
|
|
641
640
|
identityId: 'test-id',
|
|
642
641
|
traits: {
|
|
@@ -658,13 +657,13 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
658
657
|
},
|
|
659
658
|
};
|
|
660
659
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
660
|
+
expect(result.isIpAddressesStale).toBe(true);
|
|
661
|
+
expect(result.isNonIpAddressesStale).toBe(true);
|
|
662
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
|
|
664
663
|
});
|
|
665
664
|
});
|
|
666
|
-
|
|
667
|
-
|
|
665
|
+
describe('Mixed addresses: some IP, some input — only input changes', () => {
|
|
666
|
+
it('should return ADDRESS_UPDATE when only input address changes', () => {
|
|
668
667
|
const cachedIdentity = {
|
|
669
668
|
identityId: 'test-id',
|
|
670
669
|
traits: {
|
|
@@ -685,17 +684,17 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
685
684
|
},
|
|
686
685
|
};
|
|
687
686
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
687
|
+
expect(result.isIpAddressesStale).toBe(false);
|
|
688
|
+
expect(result.isNonIpAddressesStale).toBe(true);
|
|
689
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
|
|
691
690
|
});
|
|
692
691
|
});
|
|
693
692
|
});
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
693
|
+
describe('Volatile Traits Optimization - checkScalarTraitChanged behavior', () => {
|
|
694
|
+
afterEach(() => {
|
|
695
|
+
jest.resetModules();
|
|
697
696
|
});
|
|
698
|
-
|
|
697
|
+
it('should NOT mark stale when incoming is empty/undefined but cached has value', () => {
|
|
699
698
|
const cachedIdentity = {
|
|
700
699
|
identityId: 'test-id',
|
|
701
700
|
traits: {
|
|
@@ -708,11 +707,11 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
708
707
|
traits: {},
|
|
709
708
|
};
|
|
710
709
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
710
|
+
expect(result.isIpAddressStale).toBe(false);
|
|
711
|
+
expect(result.isUserAgentStale).toBe(false);
|
|
712
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.NONE);
|
|
714
713
|
});
|
|
715
|
-
|
|
714
|
+
it('should mark stale when cached is undefined but incoming has value', () => {
|
|
716
715
|
const cachedIdentity = {
|
|
717
716
|
identityId: 'test-id',
|
|
718
717
|
traits: {},
|
|
@@ -725,11 +724,11 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
725
724
|
},
|
|
726
725
|
};
|
|
727
726
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
727
|
+
expect(result.isIpAddressStale).toBe(true);
|
|
728
|
+
expect(result.isUserAgentStale).toBe(true);
|
|
729
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
|
|
731
730
|
});
|
|
732
|
-
|
|
731
|
+
it('should mark stale when both have values but they differ', () => {
|
|
733
732
|
const cachedIdentity = {
|
|
734
733
|
identityId: 'test-id',
|
|
735
734
|
traits: { ipAddress: '192.168.1.1' },
|
|
@@ -739,36 +738,36 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
739
738
|
traits: { ipAddress: '10.0.0.1' },
|
|
740
739
|
};
|
|
741
740
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
742
|
-
|
|
741
|
+
expect(result.isIpAddressStale).toBe(true);
|
|
743
742
|
});
|
|
744
743
|
});
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
744
|
+
describe('Volatile Traits Optimization - Error Handling', () => {
|
|
745
|
+
afterEach(() => {
|
|
746
|
+
jest.resetModules();
|
|
748
747
|
});
|
|
749
|
-
|
|
748
|
+
it('should return NONE when both identities have same identityId but malformed traits', () => {
|
|
750
749
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)({ identityId: 'test', traits: 'not-an-object' }, { identityId: 'test', traits: 123 });
|
|
751
|
-
|
|
752
|
-
|
|
750
|
+
expect(result.isCacheStale).toBe(false);
|
|
751
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.NONE);
|
|
753
752
|
});
|
|
754
|
-
|
|
753
|
+
it('should return IDENTITY_STALE when cached identity is null but incoming has identityId', () => {
|
|
755
754
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(null, { identityId: 'test', traits: {} });
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
755
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
|
|
756
|
+
expect(result.isCacheStale).toBe(true);
|
|
757
|
+
expect(result.isIdentityIdStale).toBe(true);
|
|
759
758
|
});
|
|
760
|
-
|
|
759
|
+
it('should return IDENTITY_STALE when cached identity is undefined but incoming has identityId', () => {
|
|
761
760
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(undefined, { identityId: 'test', traits: {} });
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
761
|
+
expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
|
|
762
|
+
expect(result.isCacheStale).toBe(true);
|
|
763
|
+
expect(result.isIdentityIdStale).toBe(true);
|
|
765
764
|
});
|
|
766
765
|
});
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
766
|
+
describe('Volatile Traits Optimization - Backward Compatibility', () => {
|
|
767
|
+
afterEach(() => {
|
|
768
|
+
jest.resetModules();
|
|
770
769
|
});
|
|
771
|
-
|
|
770
|
+
it('should maintain isAddressesStale=true when either IP or non-IP addresses are stale', () => {
|
|
772
771
|
const cachedIdentity = {
|
|
773
772
|
identityId: 'test-id',
|
|
774
773
|
traits: {
|
|
@@ -782,11 +781,11 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
782
781
|
},
|
|
783
782
|
};
|
|
784
783
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
784
|
+
expect(result.isAddressesStale).toBe(true);
|
|
785
|
+
expect(result.isIpAddressesStale).toBe(true);
|
|
786
|
+
expect(result.isNonIpAddressesStale).toBe(false);
|
|
788
787
|
});
|
|
789
|
-
|
|
788
|
+
it('should include all stale trait tracker fields', () => {
|
|
790
789
|
const cachedIdentity = {
|
|
791
790
|
identityId: 'test-id',
|
|
792
791
|
traits: {},
|
|
@@ -796,25 +795,25 @@ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
|
|
|
796
795
|
traits: {},
|
|
797
796
|
};
|
|
798
797
|
const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
798
|
+
expect(result).toHaveProperty('cachedTraits');
|
|
799
|
+
expect(result).toHaveProperty('incomingTraits');
|
|
800
|
+
expect(result).toHaveProperty('isIdentityIdStale');
|
|
801
|
+
expect(result).toHaveProperty('isUserIdsStale');
|
|
802
|
+
expect(result).toHaveProperty('isIdsStale');
|
|
803
|
+
expect(result).toHaveProperty('isEmailsStale');
|
|
804
|
+
expect(result).toHaveProperty('isPhonesStale');
|
|
805
|
+
expect(result).toHaveProperty('isShopifyYIdsStale');
|
|
806
|
+
expect(result).toHaveProperty('isGendersStale');
|
|
807
|
+
expect(result).toHaveProperty('isDobsStale');
|
|
808
|
+
expect(result).toHaveProperty('isAddressesStale');
|
|
809
|
+
expect(result).toHaveProperty('isIpAddressesStale');
|
|
810
|
+
expect(result).toHaveProperty('isNonIpAddressesStale');
|
|
811
|
+
expect(result).toHaveProperty('isClickInfosStale');
|
|
812
|
+
expect(result).toHaveProperty('isIpAddressStale');
|
|
813
|
+
expect(result).toHaveProperty('isUserAgentStale');
|
|
814
|
+
expect(result).toHaveProperty('isThirdPartyContactsStale');
|
|
815
|
+
expect(result).toHaveProperty('isCacheStale');
|
|
816
|
+
expect(result).toHaveProperty('staleTier');
|
|
818
817
|
});
|
|
819
818
|
});
|
|
820
819
|
//# sourceMappingURL=volatile-traits-optimization.spec.js.map
|