@adtrackify/at-service-common 3.18.11 → 3.18.13
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.d.ts +1 -0
- package/dist/cjs/__tests__/clients/acuity-client.spec.js +34 -0
- package/dist/cjs/__tests__/clients/acuity-client.spec.js.map +1 -0
- package/dist/cjs/__tests__/clients/cross-platform-compression.spec.d.ts +1 -0
- package/dist/cjs/__tests__/clients/cross-platform-compression.spec.js +355 -0
- package/dist/cjs/__tests__/clients/cross-platform-compression.spec.js.map +1 -0
- package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.d.ts +1 -1
- package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js +921 -921
- package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.d.ts +1 -0
- package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.js +576 -0
- package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.js.map +1 -0
- package/dist/cjs/__tests__/clients/sqs-client.spec.d.ts +1 -1
- package/dist/cjs/__tests__/clients/sqs-client.spec.js +191 -191
- package/dist/cjs/__tests__/clients/sqs-unbundle.spec.d.ts +1 -1
- package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js +1357 -1228
- package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js.map +1 -1
- package/dist/cjs/__tests__/db/shared-read-db-services.spec.d.ts +1 -1
- package/dist/cjs/__tests__/db/shared-read-db-services.spec.js +89 -89
- package/dist/cjs/__tests__/helpers/account-users-helper.spec.d.ts +1 -1
- package/dist/cjs/__tests__/helpers/account-users-helper.spec.js +220 -220
- package/dist/cjs/__tests__/helpers/acuity-helper.spec.d.ts +1 -0
- package/dist/cjs/__tests__/helpers/acuity-helper.spec.js +26 -0
- package/dist/cjs/__tests__/helpers/acuity-helper.spec.js.map +1 -0
- package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.d.ts +1 -1
- package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.js +82 -82
- package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js +674 -674
- package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.d.ts +1 -1
- package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js +588 -588
- package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.d.ts +1 -1
- package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.js +584 -584
- package/dist/cjs/__tests__/libs/compress-decompress.spec.d.ts +1 -1
- package/dist/cjs/__tests__/libs/compress-decompress.spec.js +16 -16
- package/dist/cjs/__tests__/libs/currency.spec.d.ts +1 -1
- package/dist/cjs/__tests__/libs/currency.spec.js +220 -220
- package/dist/cjs/__tests__/libs/dates.spec.d.ts +1 -1
- package/dist/cjs/__tests__/libs/dates.spec.js +130 -130
- package/dist/cjs/__tests__/libs/domain.spec.d.ts +1 -1
- package/dist/cjs/__tests__/libs/domain.spec.js +107 -107
- package/dist/cjs/__tests__/libs/numbers.spec.d.ts +1 -1
- package/dist/cjs/__tests__/libs/numbers.spec.js +261 -261
- package/dist/cjs/__tests__/s3-client/s3-client.spec.d.ts +1 -1
- package/dist/cjs/__tests__/s3-client/s3-client.spec.js +33 -33
- package/dist/cjs/__tests__/services/acuity-api-service.spec.d.ts +1 -0
- package/dist/cjs/__tests__/services/acuity-api-service.spec.js +52 -0
- package/dist/cjs/__tests__/services/acuity-api-service.spec.js.map +1 -0
- package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.d.ts +1 -1
- package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.js +35 -35
- package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.d.ts +1 -1
- package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.js +181 -181
- package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.d.ts +1 -1
- package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.js +69 -69
- package/dist/cjs/clients/generic/cognito-client.d.ts +23 -23
- package/dist/cjs/clients/generic/cognito-client.js +209 -209
- package/dist/cjs/clients/generic/dynamodb-client.d.ts +18 -18
- package/dist/cjs/clients/generic/dynamodb-client.js +172 -172
- package/dist/cjs/clients/generic/eventbridge-client.d.ts +14 -14
- package/dist/cjs/clients/generic/eventbridge-client.js +51 -51
- package/dist/cjs/clients/generic/http-client.d.ts +14 -14
- package/dist/cjs/clients/generic/http-client.js +61 -61
- package/dist/cjs/clients/generic/index.d.ts +13 -13
- package/dist/cjs/clients/generic/index.js +29 -29
- package/dist/cjs/clients/generic/lambda-invoke-client.d.ts +10 -10
- package/dist/cjs/clients/generic/lambda-invoke-client.js +39 -39
- package/dist/cjs/clients/generic/location-client.d.ts +8 -8
- package/dist/cjs/clients/generic/location-client.js +31 -31
- package/dist/cjs/clients/generic/redis-client.d.ts +33 -33
- package/dist/cjs/clients/generic/redis-client.js +191 -191
- package/dist/cjs/clients/generic/s3-client.d.ts +23 -23
- package/dist/cjs/clients/generic/s3-client.js +216 -216
- package/dist/cjs/clients/generic/singlestore-db-client.d.ts +14 -14
- package/dist/cjs/clients/generic/singlestore-db-client.js +67 -67
- package/dist/cjs/clients/generic/sqs-bundled-client.d.ts +15 -15
- package/dist/cjs/clients/generic/sqs-bundled-client.js +311 -311
- package/dist/cjs/clients/generic/sqs-bundled-client.types.d.ts +53 -53
- package/dist/cjs/clients/generic/sqs-bundled-client.types.js +17 -17
- package/dist/cjs/clients/generic/sqs-client.d.ts +53 -53
- package/dist/cjs/clients/generic/sqs-client.js +285 -285
- package/dist/cjs/clients/generic/sqs-unbundle.d.ts +32 -32
- package/dist/cjs/clients/generic/sqs-unbundle.js +144 -144
- package/dist/cjs/clients/index.d.ts +3 -3
- package/dist/cjs/clients/index.js +19 -19
- package/dist/cjs/clients/internal-api/accounts-client.d.ts +91 -91
- package/dist/cjs/clients/internal-api/accounts-client.js +129 -129
- package/dist/cjs/clients/internal-api/cache-lambda-client.d.ts +26 -26
- package/dist/cjs/clients/internal-api/cache-lambda-client.js +89 -89
- package/dist/cjs/clients/internal-api/db-management-client.d.ts +18 -18
- package/dist/cjs/clients/internal-api/db-management-client.js +36 -36
- package/dist/cjs/clients/internal-api/destinations-client.d.ts +34 -34
- package/dist/cjs/clients/internal-api/destinations-client.js +79 -79
- package/dist/cjs/clients/internal-api/event-collector-client.d.ts +20 -20
- package/dist/cjs/clients/internal-api/event-collector-client.js +36 -36
- package/dist/cjs/clients/internal-api/identity-client.d.ts +31 -31
- package/dist/cjs/clients/internal-api/identity-client.js +91 -91
- package/dist/cjs/clients/internal-api/index.d.ts +9 -9
- package/dist/cjs/clients/internal-api/index.js +25 -25
- package/dist/cjs/clients/internal-api/shopify-app-install-client.d.ts +37 -37
- package/dist/cjs/clients/internal-api/shopify-app-install-client.js +81 -81
- package/dist/cjs/clients/internal-api/subscriptions-client.d.ts +26 -26
- package/dist/cjs/clients/internal-api/subscriptions-client.js +77 -77
- package/dist/cjs/clients/internal-api/users-auth-client.d.ts +35 -35
- package/dist/cjs/clients/internal-api/users-auth-client.js +110 -110
- package/dist/cjs/clients/third-party/acuity-client.d.ts +9 -0
- package/dist/cjs/clients/third-party/acuity-client.js +35 -0
- package/dist/cjs/clients/third-party/acuity-client.js.map +1 -0
- package/dist/cjs/clients/third-party/emailable-client.d.ts +7 -7
- package/dist/cjs/clients/third-party/emailable-client.js +25 -25
- package/dist/cjs/clients/third-party/exchange-rate-api-client.d.ts +17 -17
- package/dist/cjs/clients/third-party/exchange-rate-api-client.js +19 -19
- package/dist/cjs/clients/third-party/index.d.ts +5 -4
- package/dist/cjs/clients/third-party/index.js +21 -20
- package/dist/cjs/clients/third-party/index.js.map +1 -1
- package/dist/cjs/clients/third-party/loops-client.d.ts +10 -10
- package/dist/cjs/clients/third-party/loops-client.js +30 -30
- package/dist/cjs/clients/third-party/shopify/graphql-order-queries.d.ts +25 -25
- package/dist/cjs/clients/third-party/shopify/graphql-order-queries.js +4 -4
- package/dist/cjs/clients/third-party/shopify/graphql-product-queries.d.ts +2 -2
- package/dist/cjs/clients/third-party/shopify/graphql-product-queries.js +5 -5
- package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.d.ts +10 -10
- package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.js +161 -161
- package/dist/cjs/clients/third-party/shopify-client.d.ts +29 -29
- package/dist/cjs/clients/third-party/shopify-client.js +146 -146
- package/dist/cjs/constants/index.d.ts +1 -1
- package/dist/cjs/constants/index.js +17 -17
- package/dist/cjs/constants/sqs.d.ts +20 -20
- package/dist/cjs/constants/sqs.js +26 -26
- package/dist/cjs/helpers/account-users-helper.d.ts +2 -2
- package/dist/cjs/helpers/account-users-helper.js +22 -22
- package/dist/cjs/helpers/acuity-helper.d.ts +2 -0
- package/dist/cjs/helpers/acuity-helper.js +23 -0
- package/dist/cjs/helpers/acuity-helper.js.map +1 -0
- package/dist/cjs/helpers/api-key-auth-helper.d.ts +9 -9
- package/dist/cjs/helpers/api-key-auth-helper.js +40 -40
- package/dist/cjs/helpers/api-key-authorizer-helper.d.ts +36 -36
- package/dist/cjs/helpers/api-key-authorizer-helper.js +87 -87
- package/dist/cjs/helpers/identity-cache-helper.d.ts +21 -21
- package/dist/cjs/helpers/identity-cache-helper.js +156 -156
- package/dist/cjs/helpers/index.d.ts +10 -9
- package/dist/cjs/helpers/index.js +26 -25
- package/dist/cjs/helpers/index.js.map +1 -1
- package/dist/cjs/helpers/input-validation-helper.d.ts +3 -3
- package/dist/cjs/helpers/input-validation-helper.js +22 -22
- package/dist/cjs/helpers/logging-helper.d.ts +16 -16
- package/dist/cjs/helpers/logging-helper.js +84 -84
- package/dist/cjs/helpers/response-helper.d.ts +18 -18
- package/dist/cjs/helpers/response-helper.js +43 -43
- package/dist/cjs/helpers/shopify-helper.d.ts +9 -9
- package/dist/cjs/helpers/shopify-helper.js +26 -26
- package/dist/cjs/helpers/sqs-utils.d.ts +6 -6
- package/dist/cjs/helpers/sqs-utils.js +14 -14
- package/dist/cjs/index.d.ts +7 -7
- package/dist/cjs/index.js +23 -23
- package/dist/cjs/libs/api-router/index.d.ts +2 -2
- package/dist/cjs/libs/api-router/index.js +18 -18
- package/dist/cjs/libs/api-router/public-api-router.d.ts +3 -3
- package/dist/cjs/libs/api-router/public-api-router.js +36 -36
- package/dist/cjs/libs/api-router/route-matcher.d.ts +21 -21
- package/dist/cjs/libs/api-router/route-matcher.js +36 -36
- package/dist/cjs/libs/click-id-parser.d.ts +23 -23
- package/dist/cjs/libs/click-id-parser.js +49 -49
- package/dist/cjs/libs/compression.d.ts +2 -2
- package/dist/cjs/libs/compression.js +33 -33
- package/dist/cjs/libs/cookie.d.ts +17 -17
- package/dist/cjs/libs/cookie.js +76 -76
- package/dist/cjs/libs/crypto.d.ts +4 -4
- package/dist/cjs/libs/crypto.js +25 -25
- package/dist/cjs/libs/csv.d.ts +2 -2
- package/dist/cjs/libs/csv.js +35 -35
- package/dist/cjs/libs/currency.d.ts +1 -1
- package/dist/cjs/libs/currency.js +29 -29
- package/dist/cjs/libs/dates.d.ts +12 -12
- package/dist/cjs/libs/dates.js +96 -96
- package/dist/cjs/libs/domain.d.ts +2 -2
- package/dist/cjs/libs/domain.js +38 -38
- package/dist/cjs/libs/emails.d.ts +6 -6
- package/dist/cjs/libs/emails.js +122 -122
- package/dist/cjs/libs/http-error.d.ts +21 -21
- package/dist/cjs/libs/http-error.js +63 -63
- package/dist/cjs/libs/http-status-codes.d.ts +58 -58
- package/dist/cjs/libs/http-status-codes.js +62 -62
- package/dist/cjs/libs/index.d.ts +18 -18
- package/dist/cjs/libs/index.js +34 -34
- package/dist/cjs/libs/numbers.d.ts +1 -1
- package/dist/cjs/libs/numbers.js +15 -15
- package/dist/cjs/libs/referrer-parser/index.d.ts +2 -2
- package/dist/cjs/libs/referrer-parser/index.js +18 -18
- package/dist/cjs/libs/referrer-parser/referrer-data.d.ts +9 -9
- package/dist/cjs/libs/referrer-parser/referrer-data.js +3307 -3307
- package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
- package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +131 -131
- package/dist/cjs/libs/strings.d.ts +3 -3
- package/dist/cjs/libs/strings.js +46 -46
- package/dist/cjs/libs/traits.d.ts +6 -6
- package/dist/cjs/libs/traits.js +65 -65
- package/dist/cjs/libs/url.d.ts +1 -1
- package/dist/cjs/libs/url.js +13 -13
- package/dist/cjs/services/acuity-api-service.d.ts +8 -0
- package/dist/cjs/services/acuity-api-service.js +55 -0
- package/dist/cjs/services/acuity-api-service.js.map +1 -0
- package/dist/cjs/services/cache/generic-cached-object.d.ts +5 -5
- package/dist/cjs/services/cache/generic-cached-object.js +2 -2
- package/dist/cjs/services/cache/index.d.ts +1 -1
- package/dist/cjs/services/cache/index.js +17 -17
- package/dist/cjs/services/cache/product-cache-service.d.ts +21 -21
- package/dist/cjs/services/cache/product-cache-service.js +76 -76
- package/dist/cjs/services/currency-exchange-rate-lookup-service.d.ts +11 -11
- package/dist/cjs/services/currency-exchange-rate-lookup-service.js +66 -66
- package/dist/cjs/services/db/accounts-db-service.d.ts +9 -9
- package/dist/cjs/services/db/accounts-db-service.js +33 -33
- package/dist/cjs/services/db/api-keys-db-service.d.ts +10 -10
- package/dist/cjs/services/db/api-keys-db-service.js +36 -36
- package/dist/cjs/services/db/currency-exchange-rates-db-service.d.ts +21 -21
- package/dist/cjs/services/db/currency-exchange-rates-db-service.js +39 -39
- package/dist/cjs/services/db/destinations-db-service.d.ts +12 -12
- package/dist/cjs/services/db/destinations-db-service.js +76 -76
- package/dist/cjs/services/db/identity-cache-db-service.d.ts +28 -28
- package/dist/cjs/services/db/identity-cache-db-service.js +320 -320
- package/dist/cjs/services/db/index.d.ts +13 -13
- package/dist/cjs/services/db/index.js +29 -29
- package/dist/cjs/services/db/log-events-db-service.d.ts +11 -11
- package/dist/cjs/services/db/log-events-db-service.js +181 -181
- package/dist/cjs/services/db/pixels-db-service.d.ts +8 -8
- package/dist/cjs/services/db/pixels-db-service.js +35 -35
- package/dist/cjs/services/db/purchasable-contacts-db-service.d.ts +9 -9
- package/dist/cjs/services/db/purchasable-contacts-db-service.js +43 -43
- package/dist/cjs/services/db/purchased-contacts-db-service.d.ts +17 -17
- package/dist/cjs/services/db/purchased-contacts-db-service.js +143 -143
- package/dist/cjs/services/db/shopify-app-installs-db-service.d.ts +8 -8
- package/dist/cjs/services/db/shopify-app-installs-db-service.js +51 -51
- package/dist/cjs/services/db/shopify-products-cache-db-service.d.ts +16 -16
- package/dist/cjs/services/db/shopify-products-cache-db-service.js +73 -73
- package/dist/cjs/services/db/subscriptions-db-service.d.ts +10 -10
- package/dist/cjs/services/db/subscriptions-db-service.js +34 -34
- package/dist/cjs/services/db/tracking-events-db-service.d.ts +20 -20
- package/dist/cjs/services/db/tracking-events-db-service.js +165 -165
- package/dist/cjs/services/eventbridge-integration-service.d.ts +9 -9
- package/dist/cjs/services/eventbridge-integration-service.js +28 -28
- package/dist/cjs/services/events/index.d.ts +3 -3
- package/dist/cjs/services/events/index.js +19 -19
- package/dist/cjs/services/events/log-event-service.d.ts +19 -19
- package/dist/cjs/services/events/log-event-service.js +77 -77
- package/dist/cjs/services/events/metric-event-service.d.ts +9 -9
- package/dist/cjs/services/events/metric-event-service.js +49 -49
- package/dist/cjs/services/events/tracking-event-sqs-service.d.ts +8 -8
- package/dist/cjs/services/events/tracking-event-sqs-service.js +34 -34
- package/dist/cjs/services/generic-cache-service.d.ts +7 -7
- package/dist/cjs/services/generic-cache-service.js +33 -33
- package/dist/cjs/services/index.d.ts +9 -8
- package/dist/cjs/services/index.js +25 -24
- package/dist/cjs/services/index.js.map +1 -1
- package/dist/cjs/services/ipdata-lookup-service.d.ts +20 -20
- package/dist/cjs/services/ipdata-lookup-service.js +112 -112
- package/dist/cjs/services/shopify/index.d.ts +2 -2
- package/dist/cjs/services/shopify/index.js +18 -18
- package/dist/cjs/services/shopify/products/index.d.ts +1 -1
- package/dist/cjs/services/shopify/products/index.js +17 -17
- package/dist/cjs/services/shopify/products/shopify-products-serviceV2.d.ts +17 -17
- package/dist/cjs/services/shopify/products/shopify-products-serviceV2.js +112 -112
- package/dist/cjs/services/shopify/shopify-graphql-transformer.d.ts +8 -8
- package/dist/cjs/services/shopify/shopify-graphql-transformer.js +141 -141
- package/dist/cjs/types/acuity-types.d.ts +74 -0
- package/dist/cjs/types/acuity-types.js +3 -0
- package/dist/cjs/types/acuity-types.js.map +1 -0
- package/dist/cjs/types/api-response.d.ts +6 -6
- package/dist/cjs/types/api-response.js +2 -2
- package/dist/cjs/types/index.d.ts +4 -3
- package/dist/cjs/types/index.js +33 -32
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/internal-events/event-detail-types.d.ts +20 -20
- package/dist/cjs/types/internal-events/event-detail-types.js +27 -27
- package/dist/cjs/types/internal-events/index.d.ts +1 -1
- package/dist/cjs/types/internal-events/index.js +17 -17
- package/dist/cjs/types/shopify-graphql-types/admin.generated.d.ts +123 -123
- package/dist/cjs/types/shopify-graphql-types/admin.generated.js +2 -2
- package/dist/cjs/types/shopify-graphql-types/admin.types.d.ts +26289 -26289
- package/dist/cjs/types/shopify-graphql-types/admin.types.js +5311 -5311
- package/dist/cjs/types/shopify-graphql-types/index.d.ts +2 -2
- package/dist/cjs/types/shopify-graphql-types/index.js +18 -18
- package/dist/cjs/types/shopify-rest-types.d.ts +767 -767
- package/dist/cjs/types/shopify-rest-types.js +2 -2
- package/dist/cjs/utils/compression.d.ts +36 -36
- package/dist/cjs/utils/compression.js +198 -198
- package/dist/cjs/utils/index.d.ts +3 -3
- package/dist/cjs/utils/index.js +19 -19
- package/dist/cjs/utils/retry-envelope.d.ts +12 -12
- package/dist/cjs/utils/retry-envelope.js +28 -28
- package/dist/cjs/utils/size.d.ts +2 -2
- package/dist/cjs/utils/size.js +49 -49
- package/dist/esm/__tests__/clients/acuity-client.spec.d.ts +1 -0
- package/dist/esm/__tests__/clients/acuity-client.spec.js +32 -0
- package/dist/esm/__tests__/clients/acuity-client.spec.js.map +1 -0
- package/dist/esm/__tests__/clients/cross-platform-compression.spec.d.ts +1 -0
- package/dist/esm/__tests__/clients/cross-platform-compression.spec.js +330 -0
- package/dist/esm/__tests__/clients/cross-platform-compression.spec.js.map +1 -0
- package/dist/esm/__tests__/clients/sqs-bundled-client.spec.d.ts +1 -1
- package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js +896 -896
- package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.d.ts +1 -0
- package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.js +551 -0
- package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.js.map +1 -0
- package/dist/esm/__tests__/clients/sqs-client.spec.d.ts +1 -1
- package/dist/esm/__tests__/clients/sqs-client.spec.js +189 -189
- package/dist/esm/__tests__/clients/sqs-unbundle.spec.d.ts +1 -1
- package/dist/esm/__tests__/clients/sqs-unbundle.spec.js +1355 -1226
- package/dist/esm/__tests__/clients/sqs-unbundle.spec.js.map +1 -1
- package/dist/esm/__tests__/db/shared-read-db-services.spec.d.ts +1 -1
- package/dist/esm/__tests__/db/shared-read-db-services.spec.js +87 -87
- package/dist/esm/__tests__/helpers/account-users-helper.spec.d.ts +1 -1
- package/dist/esm/__tests__/helpers/account-users-helper.spec.js +218 -218
- package/dist/esm/__tests__/helpers/acuity-helper.spec.d.ts +1 -0
- package/dist/esm/__tests__/helpers/acuity-helper.spec.js +24 -0
- package/dist/esm/__tests__/helpers/acuity-helper.spec.js.map +1 -0
- package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.d.ts +1 -1
- package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.js +80 -80
- package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
- package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js +672 -672
- package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.d.ts +1 -1
- package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js +586 -586
- package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.d.ts +1 -1
- package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.js +582 -582
- package/dist/esm/__tests__/libs/compress-decompress.spec.d.ts +1 -1
- package/dist/esm/__tests__/libs/compress-decompress.spec.js +14 -14
- package/dist/esm/__tests__/libs/currency.spec.d.ts +1 -1
- package/dist/esm/__tests__/libs/currency.spec.js +218 -218
- package/dist/esm/__tests__/libs/dates.spec.d.ts +1 -1
- package/dist/esm/__tests__/libs/dates.spec.js +128 -128
- package/dist/esm/__tests__/libs/domain.spec.d.ts +1 -1
- package/dist/esm/__tests__/libs/domain.spec.js +105 -105
- package/dist/esm/__tests__/libs/numbers.spec.d.ts +1 -1
- package/dist/esm/__tests__/libs/numbers.spec.js +259 -259
- package/dist/esm/__tests__/s3-client/s3-client.spec.d.ts +1 -1
- package/dist/esm/__tests__/s3-client/s3-client.spec.js +31 -31
- package/dist/esm/__tests__/services/acuity-api-service.spec.d.ts +1 -0
- package/dist/esm/__tests__/services/acuity-api-service.spec.js +50 -0
- package/dist/esm/__tests__/services/acuity-api-service.spec.js.map +1 -0
- package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.d.ts +1 -1
- package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.js +33 -33
- package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.d.ts +1 -1
- package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.js +156 -156
- package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.d.ts +1 -1
- package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.js +67 -67
- package/dist/esm/clients/generic/cognito-client.d.ts +23 -23
- package/dist/esm/clients/generic/cognito-client.js +204 -204
- package/dist/esm/clients/generic/dynamodb-client.d.ts +18 -18
- package/dist/esm/clients/generic/dynamodb-client.js +168 -168
- package/dist/esm/clients/generic/eventbridge-client.d.ts +14 -14
- package/dist/esm/clients/generic/eventbridge-client.js +47 -47
- package/dist/esm/clients/generic/http-client.d.ts +14 -14
- package/dist/esm/clients/generic/http-client.js +53 -53
- package/dist/esm/clients/generic/index.d.ts +13 -13
- package/dist/esm/clients/generic/index.js +13 -13
- package/dist/esm/clients/generic/lambda-invoke-client.d.ts +10 -10
- package/dist/esm/clients/generic/lambda-invoke-client.js +35 -35
- package/dist/esm/clients/generic/location-client.d.ts +8 -8
- package/dist/esm/clients/generic/location-client.js +27 -27
- package/dist/esm/clients/generic/redis-client.d.ts +33 -33
- package/dist/esm/clients/generic/redis-client.js +184 -184
- package/dist/esm/clients/generic/s3-client.d.ts +23 -23
- package/dist/esm/clients/generic/s3-client.js +209 -209
- package/dist/esm/clients/generic/singlestore-db-client.d.ts +14 -14
- package/dist/esm/clients/generic/singlestore-db-client.js +40 -40
- package/dist/esm/clients/generic/sqs-bundled-client.d.ts +15 -15
- package/dist/esm/clients/generic/sqs-bundled-client.js +307 -307
- package/dist/esm/clients/generic/sqs-bundled-client.types.d.ts +53 -53
- package/dist/esm/clients/generic/sqs-bundled-client.types.js +14 -14
- package/dist/esm/clients/generic/sqs-client.d.ts +53 -53
- package/dist/esm/clients/generic/sqs-client.js +281 -281
- package/dist/esm/clients/generic/sqs-unbundle.d.ts +32 -32
- package/dist/esm/clients/generic/sqs-unbundle.js +137 -137
- package/dist/esm/clients/index.d.ts +3 -3
- package/dist/esm/clients/index.js +3 -3
- package/dist/esm/clients/internal-api/accounts-client.d.ts +91 -91
- package/dist/esm/clients/internal-api/accounts-client.js +125 -125
- package/dist/esm/clients/internal-api/cache-lambda-client.d.ts +26 -26
- package/dist/esm/clients/internal-api/cache-lambda-client.js +85 -85
- package/dist/esm/clients/internal-api/db-management-client.d.ts +18 -18
- package/dist/esm/clients/internal-api/db-management-client.js +32 -32
- package/dist/esm/clients/internal-api/destinations-client.d.ts +34 -34
- package/dist/esm/clients/internal-api/destinations-client.js +75 -75
- package/dist/esm/clients/internal-api/event-collector-client.d.ts +20 -20
- package/dist/esm/clients/internal-api/event-collector-client.js +32 -32
- package/dist/esm/clients/internal-api/identity-client.d.ts +31 -31
- package/dist/esm/clients/internal-api/identity-client.js +87 -87
- package/dist/esm/clients/internal-api/index.d.ts +9 -9
- package/dist/esm/clients/internal-api/index.js +9 -9
- package/dist/esm/clients/internal-api/shopify-app-install-client.d.ts +37 -37
- package/dist/esm/clients/internal-api/shopify-app-install-client.js +77 -77
- package/dist/esm/clients/internal-api/subscriptions-client.d.ts +26 -26
- package/dist/esm/clients/internal-api/subscriptions-client.js +73 -73
- package/dist/esm/clients/internal-api/users-auth-client.d.ts +35 -35
- package/dist/esm/clients/internal-api/users-auth-client.js +106 -106
- package/dist/esm/clients/third-party/acuity-client.d.ts +9 -0
- package/dist/esm/clients/third-party/acuity-client.js +31 -0
- package/dist/esm/clients/third-party/acuity-client.js.map +1 -0
- package/dist/esm/clients/third-party/emailable-client.d.ts +7 -7
- package/dist/esm/clients/third-party/emailable-client.js +21 -21
- package/dist/esm/clients/third-party/exchange-rate-api-client.d.ts +17 -17
- package/dist/esm/clients/third-party/exchange-rate-api-client.js +15 -15
- package/dist/esm/clients/third-party/index.d.ts +5 -4
- package/dist/esm/clients/third-party/index.js +5 -4
- package/dist/esm/clients/third-party/index.js.map +1 -1
- package/dist/esm/clients/third-party/loops-client.d.ts +10 -10
- package/dist/esm/clients/third-party/loops-client.js +26 -26
- package/dist/esm/clients/third-party/shopify/graphql-order-queries.d.ts +25 -25
- package/dist/esm/clients/third-party/shopify/graphql-order-queries.js +1 -1
- package/dist/esm/clients/third-party/shopify/graphql-product-queries.d.ts +2 -2
- package/dist/esm/clients/third-party/shopify/graphql-product-queries.js +2 -2
- package/dist/esm/clients/third-party/shopify/shopify-graphql-client.d.ts +10 -10
- package/dist/esm/clients/third-party/shopify/shopify-graphql-client.js +157 -157
- package/dist/esm/clients/third-party/shopify-client.d.ts +29 -29
- package/dist/esm/clients/third-party/shopify-client.js +142 -142
- package/dist/esm/constants/index.d.ts +1 -1
- package/dist/esm/constants/index.js +1 -1
- package/dist/esm/constants/sqs.d.ts +20 -20
- package/dist/esm/constants/sqs.js +22 -22
- package/dist/esm/helpers/account-users-helper.d.ts +2 -2
- package/dist/esm/helpers/account-users-helper.js +18 -18
- package/dist/esm/helpers/acuity-helper.d.ts +2 -0
- package/dist/esm/helpers/acuity-helper.js +19 -0
- package/dist/esm/helpers/acuity-helper.js.map +1 -0
- package/dist/esm/helpers/api-key-auth-helper.d.ts +9 -9
- package/dist/esm/helpers/api-key-auth-helper.js +35 -35
- package/dist/esm/helpers/api-key-authorizer-helper.d.ts +36 -36
- package/dist/esm/helpers/api-key-authorizer-helper.js +83 -83
- package/dist/esm/helpers/identity-cache-helper.d.ts +21 -21
- package/dist/esm/helpers/identity-cache-helper.js +151 -151
- package/dist/esm/helpers/index.d.ts +10 -9
- package/dist/esm/helpers/index.js +10 -9
- package/dist/esm/helpers/index.js.map +1 -1
- package/dist/esm/helpers/input-validation-helper.d.ts +3 -3
- package/dist/esm/helpers/input-validation-helper.js +18 -18
- package/dist/esm/helpers/logging-helper.d.ts +16 -16
- package/dist/esm/helpers/logging-helper.js +56 -56
- package/dist/esm/helpers/response-helper.d.ts +18 -18
- package/dist/esm/helpers/response-helper.js +37 -37
- package/dist/esm/helpers/shopify-helper.d.ts +9 -9
- package/dist/esm/helpers/shopify-helper.js +21 -21
- package/dist/esm/helpers/sqs-utils.d.ts +6 -6
- package/dist/esm/helpers/sqs-utils.js +9 -9
- package/dist/esm/index.d.ts +7 -7
- package/dist/esm/index.js +7 -7
- package/dist/esm/libs/api-router/index.d.ts +2 -2
- package/dist/esm/libs/api-router/index.js +2 -2
- package/dist/esm/libs/api-router/public-api-router.d.ts +3 -3
- package/dist/esm/libs/api-router/public-api-router.js +32 -32
- package/dist/esm/libs/api-router/route-matcher.d.ts +21 -21
- package/dist/esm/libs/api-router/route-matcher.js +30 -30
- package/dist/esm/libs/click-id-parser.d.ts +23 -23
- package/dist/esm/libs/click-id-parser.js +45 -45
- package/dist/esm/libs/compression.d.ts +2 -2
- package/dist/esm/libs/compression.js +25 -25
- package/dist/esm/libs/cookie.d.ts +17 -17
- package/dist/esm/libs/cookie.js +70 -70
- package/dist/esm/libs/crypto.d.ts +4 -4
- package/dist/esm/libs/crypto.js +15 -15
- package/dist/esm/libs/csv.d.ts +2 -2
- package/dist/esm/libs/csv.js +30 -30
- package/dist/esm/libs/currency.d.ts +1 -1
- package/dist/esm/libs/currency.js +22 -22
- package/dist/esm/libs/dates.d.ts +12 -12
- package/dist/esm/libs/dates.js +83 -83
- package/dist/esm/libs/domain.d.ts +2 -2
- package/dist/esm/libs/domain.js +33 -33
- package/dist/esm/libs/emails.d.ts +6 -6
- package/dist/esm/libs/emails.js +115 -115
- package/dist/esm/libs/http-error.d.ts +21 -21
- package/dist/esm/libs/http-error.js +59 -59
- package/dist/esm/libs/http-status-codes.d.ts +58 -58
- package/dist/esm/libs/http-status-codes.js +59 -59
- package/dist/esm/libs/index.d.ts +18 -18
- package/dist/esm/libs/index.js +18 -18
- package/dist/esm/libs/numbers.d.ts +1 -1
- package/dist/esm/libs/numbers.js +11 -11
- package/dist/esm/libs/referrer-parser/index.d.ts +2 -2
- package/dist/esm/libs/referrer-parser/index.js +2 -2
- package/dist/esm/libs/referrer-parser/referrer-data.d.ts +9 -9
- package/dist/esm/libs/referrer-parser/referrer-data.js +3304 -3304
- package/dist/esm/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
- package/dist/esm/libs/referrer-parser/referrer-parser-util.js +124 -124
- package/dist/esm/libs/strings.d.ts +3 -3
- package/dist/esm/libs/strings.js +40 -40
- package/dist/esm/libs/traits.d.ts +6 -6
- package/dist/esm/libs/traits.js +54 -54
- package/dist/esm/libs/url.d.ts +1 -1
- package/dist/esm/libs/url.js +9 -9
- package/dist/esm/services/acuity-api-service.d.ts +8 -0
- package/dist/esm/services/acuity-api-service.js +51 -0
- package/dist/esm/services/acuity-api-service.js.map +1 -0
- package/dist/esm/services/cache/generic-cached-object.d.ts +5 -5
- package/dist/esm/services/cache/generic-cached-object.js +1 -1
- package/dist/esm/services/cache/index.d.ts +1 -1
- package/dist/esm/services/cache/index.js +1 -1
- package/dist/esm/services/cache/product-cache-service.d.ts +21 -21
- package/dist/esm/services/cache/product-cache-service.js +68 -68
- package/dist/esm/services/currency-exchange-rate-lookup-service.d.ts +11 -11
- package/dist/esm/services/currency-exchange-rate-lookup-service.js +62 -62
- package/dist/esm/services/db/accounts-db-service.d.ts +9 -9
- package/dist/esm/services/db/accounts-db-service.js +29 -29
- package/dist/esm/services/db/api-keys-db-service.d.ts +10 -10
- package/dist/esm/services/db/api-keys-db-service.js +32 -32
- package/dist/esm/services/db/currency-exchange-rates-db-service.d.ts +21 -21
- package/dist/esm/services/db/currency-exchange-rates-db-service.js +35 -35
- package/dist/esm/services/db/destinations-db-service.d.ts +12 -12
- package/dist/esm/services/db/destinations-db-service.js +72 -72
- package/dist/esm/services/db/identity-cache-db-service.d.ts +28 -28
- package/dist/esm/services/db/identity-cache-db-service.js +313 -313
- package/dist/esm/services/db/index.d.ts +13 -13
- package/dist/esm/services/db/index.js +13 -13
- package/dist/esm/services/db/log-events-db-service.d.ts +11 -11
- package/dist/esm/services/db/log-events-db-service.js +177 -177
- package/dist/esm/services/db/pixels-db-service.d.ts +8 -8
- package/dist/esm/services/db/pixels-db-service.js +31 -31
- package/dist/esm/services/db/purchasable-contacts-db-service.d.ts +9 -9
- package/dist/esm/services/db/purchasable-contacts-db-service.js +39 -39
- package/dist/esm/services/db/purchased-contacts-db-service.d.ts +17 -17
- package/dist/esm/services/db/purchased-contacts-db-service.js +139 -139
- package/dist/esm/services/db/shopify-app-installs-db-service.d.ts +8 -8
- package/dist/esm/services/db/shopify-app-installs-db-service.js +47 -47
- package/dist/esm/services/db/shopify-products-cache-db-service.d.ts +16 -16
- package/dist/esm/services/db/shopify-products-cache-db-service.js +66 -66
- package/dist/esm/services/db/subscriptions-db-service.d.ts +10 -10
- package/dist/esm/services/db/subscriptions-db-service.js +30 -30
- package/dist/esm/services/db/tracking-events-db-service.d.ts +20 -20
- package/dist/esm/services/db/tracking-events-db-service.js +161 -161
- package/dist/esm/services/eventbridge-integration-service.d.ts +9 -9
- package/dist/esm/services/eventbridge-integration-service.js +24 -24
- package/dist/esm/services/events/index.d.ts +3 -3
- package/dist/esm/services/events/index.js +3 -3
- package/dist/esm/services/events/log-event-service.d.ts +19 -19
- package/dist/esm/services/events/log-event-service.js +73 -73
- package/dist/esm/services/events/metric-event-service.d.ts +9 -9
- package/dist/esm/services/events/metric-event-service.js +45 -45
- package/dist/esm/services/events/tracking-event-sqs-service.d.ts +8 -8
- package/dist/esm/services/events/tracking-event-sqs-service.js +30 -30
- package/dist/esm/services/generic-cache-service.d.ts +7 -7
- package/dist/esm/services/generic-cache-service.js +29 -29
- package/dist/esm/services/index.d.ts +9 -8
- package/dist/esm/services/index.js +9 -8
- package/dist/esm/services/index.js.map +1 -1
- package/dist/esm/services/ipdata-lookup-service.d.ts +20 -20
- package/dist/esm/services/ipdata-lookup-service.js +108 -108
- package/dist/esm/services/shopify/index.d.ts +2 -2
- package/dist/esm/services/shopify/index.js +2 -2
- package/dist/esm/services/shopify/products/index.d.ts +1 -1
- package/dist/esm/services/shopify/products/index.js +1 -1
- package/dist/esm/services/shopify/products/shopify-products-serviceV2.d.ts +17 -17
- package/dist/esm/services/shopify/products/shopify-products-serviceV2.js +108 -108
- package/dist/esm/services/shopify/shopify-graphql-transformer.d.ts +8 -8
- package/dist/esm/services/shopify/shopify-graphql-transformer.js +138 -138
- package/dist/esm/types/acuity-types.d.ts +74 -0
- package/dist/esm/types/acuity-types.js +2 -0
- package/dist/esm/types/acuity-types.js.map +1 -0
- package/dist/esm/types/api-response.d.ts +6 -6
- package/dist/esm/types/api-response.js +1 -1
- package/dist/esm/types/index.d.ts +4 -3
- package/dist/esm/types/index.js +4 -3
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/internal-events/event-detail-types.d.ts +20 -20
- package/dist/esm/types/internal-events/event-detail-types.js +24 -24
- package/dist/esm/types/internal-events/index.d.ts +1 -1
- package/dist/esm/types/internal-events/index.js +1 -1
- package/dist/esm/types/shopify-graphql-types/admin.generated.d.ts +123 -123
- package/dist/esm/types/shopify-graphql-types/admin.generated.js +1 -1
- package/dist/esm/types/shopify-graphql-types/admin.types.d.ts +26289 -26289
- package/dist/esm/types/shopify-graphql-types/admin.types.js +5299 -5299
- package/dist/esm/types/shopify-graphql-types/index.d.ts +2 -2
- package/dist/esm/types/shopify-graphql-types/index.js +2 -2
- package/dist/esm/types/shopify-rest-types.d.ts +767 -767
- package/dist/esm/types/shopify-rest-types.js +1 -1
- package/dist/esm/utils/compression.d.ts +36 -36
- package/dist/esm/utils/compression.js +187 -187
- package/dist/esm/utils/index.d.ts +3 -3
- package/dist/esm/utils/index.js +3 -3
- package/dist/esm/utils/retry-envelope.d.ts +12 -12
- package/dist/esm/utils/retry-envelope.js +22 -22
- package/dist/esm/utils/size.d.ts +2 -2
- package/dist/esm/utils/size.js +44 -44
- package/package.json +134 -134
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=shopify-rest-types.js.map
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
import { CompressionAlgorithm } from '../clients/generic/sqs-bundled-client.types.js';
|
|
4
|
-
export declare function getZstdUncompressedSize(buffer: Buffer): number | undefined;
|
|
5
|
-
export declare function getGzipUncompressedSize(buffer: Buffer): number | undefined;
|
|
6
|
-
export declare enum CompressionOperation {
|
|
7
|
-
COMPRESS = "compress",
|
|
8
|
-
DECOMPRESS = "decompress"
|
|
9
|
-
}
|
|
10
|
-
export declare function compress(data: Buffer, algorithm: CompressionAlgorithm, level?: number): Promise<Buffer>;
|
|
11
|
-
export declare function decompress(data: Buffer, algorithm: CompressionAlgorithm): Promise<Buffer>;
|
|
12
|
-
export declare function compressToBase64(data: unknown, algorithm: CompressionAlgorithm, level?: number): Promise<{
|
|
13
|
-
base64: string;
|
|
14
|
-
originalSize: number;
|
|
15
|
-
compressedSize: number;
|
|
16
|
-
}>;
|
|
17
|
-
export declare const DECOMPRESSION_LIMITS: {
|
|
18
|
-
readonly MAX_DECOMPRESSED_SIZE_BYTES: number;
|
|
19
|
-
readonly MAX_COMPRESSION_RATIO: 100;
|
|
20
|
-
readonly DEFAULT_TIMEOUT_MS: 30000;
|
|
21
|
-
};
|
|
22
|
-
export declare class DecompressionBombError extends Error {
|
|
23
|
-
readonly compressedSize: number;
|
|
24
|
-
readonly decompressedSize: number;
|
|
25
|
-
readonly limit: number;
|
|
26
|
-
constructor(compressedSize: number, decompressedSize: number, limit: number);
|
|
27
|
-
}
|
|
28
|
-
export declare class CompressionTimeoutError extends Error {
|
|
29
|
-
readonly operation: CompressionOperation;
|
|
30
|
-
readonly timeoutMs: number;
|
|
31
|
-
constructor(operation: CompressionOperation, timeoutMs: number);
|
|
32
|
-
}
|
|
33
|
-
export declare function decompressFromBase64<T>(base64: string, algorithm: CompressionAlgorithm, options?: {
|
|
34
|
-
maxDecompressedSizeBytes?: number;
|
|
35
|
-
timeoutMs?: number;
|
|
36
|
-
}): Promise<T>;
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { CompressionAlgorithm } from '../clients/generic/sqs-bundled-client.types.js';
|
|
4
|
+
export declare function getZstdUncompressedSize(buffer: Buffer): number | undefined;
|
|
5
|
+
export declare function getGzipUncompressedSize(buffer: Buffer): number | undefined;
|
|
6
|
+
export declare enum CompressionOperation {
|
|
7
|
+
COMPRESS = "compress",
|
|
8
|
+
DECOMPRESS = "decompress"
|
|
9
|
+
}
|
|
10
|
+
export declare function compress(data: Buffer, algorithm: CompressionAlgorithm, level?: number): Promise<Buffer>;
|
|
11
|
+
export declare function decompress(data: Buffer, algorithm: CompressionAlgorithm): Promise<Buffer>;
|
|
12
|
+
export declare function compressToBase64(data: unknown, algorithm: CompressionAlgorithm, level?: number): Promise<{
|
|
13
|
+
base64: string;
|
|
14
|
+
originalSize: number;
|
|
15
|
+
compressedSize: number;
|
|
16
|
+
}>;
|
|
17
|
+
export declare const DECOMPRESSION_LIMITS: {
|
|
18
|
+
readonly MAX_DECOMPRESSED_SIZE_BYTES: number;
|
|
19
|
+
readonly MAX_COMPRESSION_RATIO: 100;
|
|
20
|
+
readonly DEFAULT_TIMEOUT_MS: 30000;
|
|
21
|
+
};
|
|
22
|
+
export declare class DecompressionBombError extends Error {
|
|
23
|
+
readonly compressedSize: number;
|
|
24
|
+
readonly decompressedSize: number;
|
|
25
|
+
readonly limit: number;
|
|
26
|
+
constructor(compressedSize: number, decompressedSize: number, limit: number);
|
|
27
|
+
}
|
|
28
|
+
export declare class CompressionTimeoutError extends Error {
|
|
29
|
+
readonly operation: CompressionOperation;
|
|
30
|
+
readonly timeoutMs: number;
|
|
31
|
+
constructor(operation: CompressionOperation, timeoutMs: number);
|
|
32
|
+
}
|
|
33
|
+
export declare function decompressFromBase64<T>(base64: string, algorithm: CompressionAlgorithm, options?: {
|
|
34
|
+
maxDecompressedSizeBytes?: number;
|
|
35
|
+
timeoutMs?: number;
|
|
36
|
+
}): Promise<T>;
|
|
@@ -1,188 +1,188 @@
|
|
|
1
|
-
import { promisify } from 'node:util';
|
|
2
|
-
import { zstdCompress as zstdCompressCallback, zstdDecompress as zstdDecompressCallback, gunzip as gunzipCallback, constants, } from 'node:zlib';
|
|
3
|
-
import { CompressionAlgorithm } from '../clients/generic/sqs-bundled-client.types.js';
|
|
4
|
-
const zstdCompressNative = promisify(zstdCompressCallback);
|
|
5
|
-
const zstdDecompressNative = promisify(zstdDecompressCallback);
|
|
6
|
-
const gunzipNative = promisify(gunzipCallback);
|
|
7
|
-
const ZSTD_MAGIC = 0xfd2fb528;
|
|
8
|
-
const GZIP_MAGIC_BYTE_0 = 0x1f;
|
|
9
|
-
const GZIP_MAGIC_BYTE_1 = 0x8b;
|
|
10
|
-
const GZIP_MIN_SIZE = 18;
|
|
11
|
-
export function getZstdUncompressedSize(buffer) {
|
|
12
|
-
if (buffer.length < 5) {
|
|
13
|
-
return undefined;
|
|
14
|
-
}
|
|
15
|
-
const magic = buffer.readUInt32LE(0);
|
|
16
|
-
if (magic !== ZSTD_MAGIC) {
|
|
17
|
-
return undefined;
|
|
18
|
-
}
|
|
19
|
-
const frameHeaderDescriptor = buffer[4];
|
|
20
|
-
if (frameHeaderDescriptor === undefined) {
|
|
21
|
-
return undefined;
|
|
22
|
-
}
|
|
23
|
-
const singleSegmentFlag = (frameHeaderDescriptor >> 5) & 0x01;
|
|
24
|
-
const contentSizeFlag = (frameHeaderDescriptor >> 6) & 0x03;
|
|
25
|
-
const dictionaryIdFlag = frameHeaderDescriptor & 0x03;
|
|
26
|
-
const dictIdSizes = [0, 1, 2, 4];
|
|
27
|
-
const dictIdSize = dictIdSizes[dictionaryIdFlag];
|
|
28
|
-
let fcsSize;
|
|
29
|
-
if (contentSizeFlag === 0) {
|
|
30
|
-
fcsSize = singleSegmentFlag === 1 ? 1 : 0;
|
|
31
|
-
}
|
|
32
|
-
else if (contentSizeFlag === 1) {
|
|
33
|
-
fcsSize = 2;
|
|
34
|
-
}
|
|
35
|
-
else if (contentSizeFlag === 2) {
|
|
36
|
-
fcsSize = 4;
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
fcsSize = 8;
|
|
40
|
-
}
|
|
41
|
-
if (fcsSize === 0) {
|
|
42
|
-
return undefined;
|
|
43
|
-
}
|
|
44
|
-
const windowDescriptorSize = singleSegmentFlag === 1 ? 0 : 1;
|
|
45
|
-
const fcsOffset = 5 + windowDescriptorSize + dictIdSize;
|
|
46
|
-
if (buffer.length < fcsOffset + fcsSize) {
|
|
47
|
-
return undefined;
|
|
48
|
-
}
|
|
49
|
-
if (fcsSize === 1) {
|
|
50
|
-
return buffer.readUInt8(fcsOffset);
|
|
51
|
-
}
|
|
52
|
-
else if (fcsSize === 2) {
|
|
53
|
-
return buffer.readUInt16LE(fcsOffset) + 256;
|
|
54
|
-
}
|
|
55
|
-
else if (fcsSize === 4) {
|
|
56
|
-
return buffer.readUInt32LE(fcsOffset);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
const bigValue = buffer.readBigUInt64LE(fcsOffset);
|
|
60
|
-
if (bigValue > BigInt(Number.MAX_SAFE_INTEGER)) {
|
|
61
|
-
return Number.MAX_SAFE_INTEGER;
|
|
62
|
-
}
|
|
63
|
-
return Number(bigValue);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
export function getGzipUncompressedSize(buffer) {
|
|
67
|
-
if (buffer.length < GZIP_MIN_SIZE) {
|
|
68
|
-
return undefined;
|
|
69
|
-
}
|
|
70
|
-
if (buffer[0] !== GZIP_MAGIC_BYTE_0 || buffer[1] !== GZIP_MAGIC_BYTE_1) {
|
|
71
|
-
return undefined;
|
|
72
|
-
}
|
|
73
|
-
return buffer.readUInt32LE(buffer.length - 4);
|
|
74
|
-
}
|
|
75
|
-
export var CompressionOperation;
|
|
76
|
-
(function (CompressionOperation) {
|
|
77
|
-
CompressionOperation["COMPRESS"] = "compress";
|
|
78
|
-
CompressionOperation["DECOMPRESS"] = "decompress";
|
|
79
|
-
})(CompressionOperation || (CompressionOperation = {}));
|
|
80
|
-
export async function compress(data, algorithm, level = 3) {
|
|
81
|
-
switch (algorithm) {
|
|
82
|
-
case CompressionAlgorithm.NONE:
|
|
83
|
-
return data;
|
|
84
|
-
case CompressionAlgorithm.ZSTD:
|
|
85
|
-
return await zstdCompressNative(data, {
|
|
86
|
-
params: {
|
|
87
|
-
[constants.ZSTD_c_compressionLevel]: level,
|
|
88
|
-
},
|
|
89
|
-
});
|
|
90
|
-
default:
|
|
91
|
-
throw new Error(`Unsupported compression algorithm: ${algorithm}`);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
export async function decompress(data, algorithm) {
|
|
95
|
-
switch (algorithm) {
|
|
96
|
-
case CompressionAlgorithm.NONE:
|
|
97
|
-
return data;
|
|
98
|
-
case CompressionAlgorithm.ZSTD:
|
|
99
|
-
return await zstdDecompressNative(data);
|
|
100
|
-
case CompressionAlgorithm.GZIP:
|
|
101
|
-
return await gunzipNative(data);
|
|
102
|
-
default:
|
|
103
|
-
throw new Error(`Unsupported compression algorithm: ${algorithm}`);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
export async function compressToBase64(data, algorithm, level = 3) {
|
|
107
|
-
const json = JSON.stringify(data);
|
|
108
|
-
const originalSize = Buffer.byteLength(json, 'utf8');
|
|
109
|
-
if (algorithm === CompressionAlgorithm.NONE) {
|
|
110
|
-
return { base64: '', originalSize, compressedSize: originalSize };
|
|
111
|
-
}
|
|
112
|
-
const compressed = await compress(Buffer.from(json, 'utf8'), algorithm, level);
|
|
113
|
-
const base64 = compressed.toString('base64');
|
|
114
|
-
return {
|
|
115
|
-
base64,
|
|
116
|
-
originalSize,
|
|
117
|
-
compressedSize: Buffer.byteLength(base64, 'utf8'),
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
export const DECOMPRESSION_LIMITS = {
|
|
121
|
-
MAX_DECOMPRESSED_SIZE_BYTES: 10 * 1024 * 1024,
|
|
122
|
-
MAX_COMPRESSION_RATIO: 100,
|
|
123
|
-
DEFAULT_TIMEOUT_MS: 30000,
|
|
124
|
-
};
|
|
125
|
-
export class DecompressionBombError extends Error {
|
|
126
|
-
compressedSize;
|
|
127
|
-
decompressedSize;
|
|
128
|
-
limit;
|
|
129
|
-
constructor(compressedSize, decompressedSize, limit) {
|
|
130
|
-
super(`Decompression bomb detected: ${decompressedSize} bytes exceeds limit of ${limit} bytes ` +
|
|
131
|
-
`(compression ratio: ${(decompressedSize / compressedSize).toFixed(1)}x)`);
|
|
132
|
-
this.compressedSize = compressedSize;
|
|
133
|
-
this.decompressedSize = decompressedSize;
|
|
134
|
-
this.limit = limit;
|
|
135
|
-
this.name = 'DecompressionBombError';
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
export class CompressionTimeoutError extends Error {
|
|
139
|
-
operation;
|
|
140
|
-
timeoutMs;
|
|
141
|
-
constructor(operation, timeoutMs) {
|
|
142
|
-
super(`${operation} operation timed out after ${timeoutMs}ms`);
|
|
143
|
-
this.operation = operation;
|
|
144
|
-
this.timeoutMs = timeoutMs;
|
|
145
|
-
this.name = 'CompressionTimeoutError';
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
async function withTimeout(operation, timeoutMs, operationName) {
|
|
149
|
-
let timeoutId;
|
|
150
|
-
const timeoutPromise = new Promise((_, reject) => {
|
|
151
|
-
timeoutId = setTimeout(() => {
|
|
152
|
-
reject(new CompressionTimeoutError(operationName, timeoutMs));
|
|
153
|
-
}, timeoutMs);
|
|
154
|
-
});
|
|
155
|
-
try {
|
|
156
|
-
return await Promise.race([operation, timeoutPromise]);
|
|
157
|
-
}
|
|
158
|
-
finally {
|
|
159
|
-
if (timeoutId)
|
|
160
|
-
clearTimeout(timeoutId);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
export async function decompressFromBase64(base64, algorithm, options) {
|
|
164
|
-
if (algorithm === CompressionAlgorithm.NONE) {
|
|
165
|
-
throw new Error('Cannot decompress NONE algorithm from base64');
|
|
166
|
-
}
|
|
167
|
-
const maxSize = options?.maxDecompressedSizeBytes ?? DECOMPRESSION_LIMITS.MAX_DECOMPRESSED_SIZE_BYTES;
|
|
168
|
-
const timeoutMs = options?.timeoutMs ?? DECOMPRESSION_LIMITS.DEFAULT_TIMEOUT_MS;
|
|
169
|
-
const compressed = Buffer.from(base64, 'base64');
|
|
170
|
-
if (algorithm === CompressionAlgorithm.ZSTD) {
|
|
171
|
-
const headerSize = getZstdUncompressedSize(compressed);
|
|
172
|
-
if (headerSize !== undefined && headerSize > maxSize) {
|
|
173
|
-
throw new DecompressionBombError(compressed.length, headerSize, maxSize);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
if (algorithm === CompressionAlgorithm.GZIP) {
|
|
177
|
-
const headerSize = getGzipUncompressedSize(compressed);
|
|
178
|
-
if (headerSize !== undefined && headerSize > maxSize) {
|
|
179
|
-
throw new DecompressionBombError(compressed.length, headerSize, maxSize);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
const decompressed = await withTimeout(decompress(compressed, algorithm), timeoutMs, CompressionOperation.DECOMPRESS);
|
|
183
|
-
if (decompressed.length > maxSize) {
|
|
184
|
-
throw new DecompressionBombError(compressed.length, decompressed.length, maxSize);
|
|
185
|
-
}
|
|
186
|
-
return JSON.parse(decompressed.toString('utf8'));
|
|
187
|
-
}
|
|
1
|
+
import { promisify } from 'node:util';
|
|
2
|
+
import { zstdCompress as zstdCompressCallback, zstdDecompress as zstdDecompressCallback, gunzip as gunzipCallback, constants, } from 'node:zlib';
|
|
3
|
+
import { CompressionAlgorithm } from '../clients/generic/sqs-bundled-client.types.js';
|
|
4
|
+
const zstdCompressNative = promisify(zstdCompressCallback);
|
|
5
|
+
const zstdDecompressNative = promisify(zstdDecompressCallback);
|
|
6
|
+
const gunzipNative = promisify(gunzipCallback);
|
|
7
|
+
const ZSTD_MAGIC = 0xfd2fb528;
|
|
8
|
+
const GZIP_MAGIC_BYTE_0 = 0x1f;
|
|
9
|
+
const GZIP_MAGIC_BYTE_1 = 0x8b;
|
|
10
|
+
const GZIP_MIN_SIZE = 18;
|
|
11
|
+
export function getZstdUncompressedSize(buffer) {
|
|
12
|
+
if (buffer.length < 5) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
const magic = buffer.readUInt32LE(0);
|
|
16
|
+
if (magic !== ZSTD_MAGIC) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
const frameHeaderDescriptor = buffer[4];
|
|
20
|
+
if (frameHeaderDescriptor === undefined) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
const singleSegmentFlag = (frameHeaderDescriptor >> 5) & 0x01;
|
|
24
|
+
const contentSizeFlag = (frameHeaderDescriptor >> 6) & 0x03;
|
|
25
|
+
const dictionaryIdFlag = frameHeaderDescriptor & 0x03;
|
|
26
|
+
const dictIdSizes = [0, 1, 2, 4];
|
|
27
|
+
const dictIdSize = dictIdSizes[dictionaryIdFlag];
|
|
28
|
+
let fcsSize;
|
|
29
|
+
if (contentSizeFlag === 0) {
|
|
30
|
+
fcsSize = singleSegmentFlag === 1 ? 1 : 0;
|
|
31
|
+
}
|
|
32
|
+
else if (contentSizeFlag === 1) {
|
|
33
|
+
fcsSize = 2;
|
|
34
|
+
}
|
|
35
|
+
else if (contentSizeFlag === 2) {
|
|
36
|
+
fcsSize = 4;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
fcsSize = 8;
|
|
40
|
+
}
|
|
41
|
+
if (fcsSize === 0) {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
const windowDescriptorSize = singleSegmentFlag === 1 ? 0 : 1;
|
|
45
|
+
const fcsOffset = 5 + windowDescriptorSize + dictIdSize;
|
|
46
|
+
if (buffer.length < fcsOffset + fcsSize) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
if (fcsSize === 1) {
|
|
50
|
+
return buffer.readUInt8(fcsOffset);
|
|
51
|
+
}
|
|
52
|
+
else if (fcsSize === 2) {
|
|
53
|
+
return buffer.readUInt16LE(fcsOffset) + 256;
|
|
54
|
+
}
|
|
55
|
+
else if (fcsSize === 4) {
|
|
56
|
+
return buffer.readUInt32LE(fcsOffset);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
const bigValue = buffer.readBigUInt64LE(fcsOffset);
|
|
60
|
+
if (bigValue > BigInt(Number.MAX_SAFE_INTEGER)) {
|
|
61
|
+
return Number.MAX_SAFE_INTEGER;
|
|
62
|
+
}
|
|
63
|
+
return Number(bigValue);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export function getGzipUncompressedSize(buffer) {
|
|
67
|
+
if (buffer.length < GZIP_MIN_SIZE) {
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
if (buffer[0] !== GZIP_MAGIC_BYTE_0 || buffer[1] !== GZIP_MAGIC_BYTE_1) {
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
return buffer.readUInt32LE(buffer.length - 4);
|
|
74
|
+
}
|
|
75
|
+
export var CompressionOperation;
|
|
76
|
+
(function (CompressionOperation) {
|
|
77
|
+
CompressionOperation["COMPRESS"] = "compress";
|
|
78
|
+
CompressionOperation["DECOMPRESS"] = "decompress";
|
|
79
|
+
})(CompressionOperation || (CompressionOperation = {}));
|
|
80
|
+
export async function compress(data, algorithm, level = 3) {
|
|
81
|
+
switch (algorithm) {
|
|
82
|
+
case CompressionAlgorithm.NONE:
|
|
83
|
+
return data;
|
|
84
|
+
case CompressionAlgorithm.ZSTD:
|
|
85
|
+
return await zstdCompressNative(data, {
|
|
86
|
+
params: {
|
|
87
|
+
[constants.ZSTD_c_compressionLevel]: level,
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
default:
|
|
91
|
+
throw new Error(`Unsupported compression algorithm: ${algorithm}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export async function decompress(data, algorithm) {
|
|
95
|
+
switch (algorithm) {
|
|
96
|
+
case CompressionAlgorithm.NONE:
|
|
97
|
+
return data;
|
|
98
|
+
case CompressionAlgorithm.ZSTD:
|
|
99
|
+
return await zstdDecompressNative(data);
|
|
100
|
+
case CompressionAlgorithm.GZIP:
|
|
101
|
+
return await gunzipNative(data);
|
|
102
|
+
default:
|
|
103
|
+
throw new Error(`Unsupported compression algorithm: ${algorithm}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
export async function compressToBase64(data, algorithm, level = 3) {
|
|
107
|
+
const json = JSON.stringify(data);
|
|
108
|
+
const originalSize = Buffer.byteLength(json, 'utf8');
|
|
109
|
+
if (algorithm === CompressionAlgorithm.NONE) {
|
|
110
|
+
return { base64: '', originalSize, compressedSize: originalSize };
|
|
111
|
+
}
|
|
112
|
+
const compressed = await compress(Buffer.from(json, 'utf8'), algorithm, level);
|
|
113
|
+
const base64 = compressed.toString('base64');
|
|
114
|
+
return {
|
|
115
|
+
base64,
|
|
116
|
+
originalSize,
|
|
117
|
+
compressedSize: Buffer.byteLength(base64, 'utf8'),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
export const DECOMPRESSION_LIMITS = {
|
|
121
|
+
MAX_DECOMPRESSED_SIZE_BYTES: 10 * 1024 * 1024,
|
|
122
|
+
MAX_COMPRESSION_RATIO: 100,
|
|
123
|
+
DEFAULT_TIMEOUT_MS: 30000,
|
|
124
|
+
};
|
|
125
|
+
export class DecompressionBombError extends Error {
|
|
126
|
+
compressedSize;
|
|
127
|
+
decompressedSize;
|
|
128
|
+
limit;
|
|
129
|
+
constructor(compressedSize, decompressedSize, limit) {
|
|
130
|
+
super(`Decompression bomb detected: ${decompressedSize} bytes exceeds limit of ${limit} bytes ` +
|
|
131
|
+
`(compression ratio: ${(decompressedSize / compressedSize).toFixed(1)}x)`);
|
|
132
|
+
this.compressedSize = compressedSize;
|
|
133
|
+
this.decompressedSize = decompressedSize;
|
|
134
|
+
this.limit = limit;
|
|
135
|
+
this.name = 'DecompressionBombError';
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
export class CompressionTimeoutError extends Error {
|
|
139
|
+
operation;
|
|
140
|
+
timeoutMs;
|
|
141
|
+
constructor(operation, timeoutMs) {
|
|
142
|
+
super(`${operation} operation timed out after ${timeoutMs}ms`);
|
|
143
|
+
this.operation = operation;
|
|
144
|
+
this.timeoutMs = timeoutMs;
|
|
145
|
+
this.name = 'CompressionTimeoutError';
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
async function withTimeout(operation, timeoutMs, operationName) {
|
|
149
|
+
let timeoutId;
|
|
150
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
151
|
+
timeoutId = setTimeout(() => {
|
|
152
|
+
reject(new CompressionTimeoutError(operationName, timeoutMs));
|
|
153
|
+
}, timeoutMs);
|
|
154
|
+
});
|
|
155
|
+
try {
|
|
156
|
+
return await Promise.race([operation, timeoutPromise]);
|
|
157
|
+
}
|
|
158
|
+
finally {
|
|
159
|
+
if (timeoutId)
|
|
160
|
+
clearTimeout(timeoutId);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
export async function decompressFromBase64(base64, algorithm, options) {
|
|
164
|
+
if (algorithm === CompressionAlgorithm.NONE) {
|
|
165
|
+
throw new Error('Cannot decompress NONE algorithm from base64');
|
|
166
|
+
}
|
|
167
|
+
const maxSize = options?.maxDecompressedSizeBytes ?? DECOMPRESSION_LIMITS.MAX_DECOMPRESSED_SIZE_BYTES;
|
|
168
|
+
const timeoutMs = options?.timeoutMs ?? DECOMPRESSION_LIMITS.DEFAULT_TIMEOUT_MS;
|
|
169
|
+
const compressed = Buffer.from(base64, 'base64');
|
|
170
|
+
if (algorithm === CompressionAlgorithm.ZSTD) {
|
|
171
|
+
const headerSize = getZstdUncompressedSize(compressed);
|
|
172
|
+
if (headerSize !== undefined && headerSize > maxSize) {
|
|
173
|
+
throw new DecompressionBombError(compressed.length, headerSize, maxSize);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
if (algorithm === CompressionAlgorithm.GZIP) {
|
|
177
|
+
const headerSize = getGzipUncompressedSize(compressed);
|
|
178
|
+
if (headerSize !== undefined && headerSize > maxSize) {
|
|
179
|
+
throw new DecompressionBombError(compressed.length, headerSize, maxSize);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
const decompressed = await withTimeout(decompress(compressed, algorithm), timeoutMs, CompressionOperation.DECOMPRESS);
|
|
183
|
+
if (decompressed.length > maxSize) {
|
|
184
|
+
throw new DecompressionBombError(compressed.length, decompressed.length, maxSize);
|
|
185
|
+
}
|
|
186
|
+
return JSON.parse(decompressed.toString('utf8'));
|
|
187
|
+
}
|
|
188
188
|
//# sourceMappingURL=compression.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './size.js';
|
|
2
|
-
export * from './compression.js';
|
|
3
|
-
export * from './retry-envelope.js';
|
|
1
|
+
export * from './size.js';
|
|
2
|
+
export * from './compression.js';
|
|
3
|
+
export * from './retry-envelope.js';
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './size.js';
|
|
2
|
-
export * from './compression.js';
|
|
3
|
-
export * from './retry-envelope.js';
|
|
1
|
+
export * from './size.js';
|
|
2
|
+
export * from './compression.js';
|
|
3
|
+
export * from './retry-envelope.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export interface RetryEnvelope<T> {
|
|
2
|
-
item: T;
|
|
3
|
-
retryCount: number;
|
|
4
|
-
firstFailedAt: string;
|
|
5
|
-
lastError: string;
|
|
6
|
-
}
|
|
7
|
-
export declare function isRetryEnvelope<T>(payload: unknown): payload is RetryEnvelope<T>;
|
|
8
|
-
export declare function unwrapItem<T>(payload: T | RetryEnvelope<T>): {
|
|
9
|
-
item: T;
|
|
10
|
-
retryCount: number;
|
|
11
|
-
};
|
|
12
|
-
export declare function createRetryEnvelope<T>(item: T, currentRetryCount: number, originalPayload: T | RetryEnvelope<T>, error: unknown): RetryEnvelope<T>;
|
|
1
|
+
export interface RetryEnvelope<T> {
|
|
2
|
+
item: T;
|
|
3
|
+
retryCount: number;
|
|
4
|
+
firstFailedAt: string;
|
|
5
|
+
lastError: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function isRetryEnvelope<T>(payload: unknown): payload is RetryEnvelope<T>;
|
|
8
|
+
export declare function unwrapItem<T>(payload: T | RetryEnvelope<T>): {
|
|
9
|
+
item: T;
|
|
10
|
+
retryCount: number;
|
|
11
|
+
};
|
|
12
|
+
export declare function createRetryEnvelope<T>(item: T, currentRetryCount: number, originalPayload: T | RetryEnvelope<T>, error: unknown): RetryEnvelope<T>;
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
export function isRetryEnvelope(payload) {
|
|
2
|
-
return (typeof payload === 'object' &&
|
|
3
|
-
payload !== null &&
|
|
4
|
-
'item' in payload &&
|
|
5
|
-
'retryCount' in payload &&
|
|
6
|
-
typeof payload.retryCount === 'number');
|
|
7
|
-
}
|
|
8
|
-
export function unwrapItem(payload) {
|
|
9
|
-
if (isRetryEnvelope(payload)) {
|
|
10
|
-
return { item: payload.item, retryCount: payload.retryCount };
|
|
11
|
-
}
|
|
12
|
-
return { item: payload, retryCount: 0 };
|
|
13
|
-
}
|
|
14
|
-
export function createRetryEnvelope(item, currentRetryCount, originalPayload, error) {
|
|
15
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
16
|
-
return {
|
|
17
|
-
item,
|
|
18
|
-
retryCount: currentRetryCount + 1,
|
|
19
|
-
firstFailedAt: isRetryEnvelope(originalPayload) ? originalPayload.firstFailedAt : new Date().toISOString(),
|
|
20
|
-
lastError: errorMessage,
|
|
21
|
-
};
|
|
22
|
-
}
|
|
1
|
+
export function isRetryEnvelope(payload) {
|
|
2
|
+
return (typeof payload === 'object' &&
|
|
3
|
+
payload !== null &&
|
|
4
|
+
'item' in payload &&
|
|
5
|
+
'retryCount' in payload &&
|
|
6
|
+
typeof payload.retryCount === 'number');
|
|
7
|
+
}
|
|
8
|
+
export function unwrapItem(payload) {
|
|
9
|
+
if (isRetryEnvelope(payload)) {
|
|
10
|
+
return { item: payload.item, retryCount: payload.retryCount };
|
|
11
|
+
}
|
|
12
|
+
return { item: payload, retryCount: 0 };
|
|
13
|
+
}
|
|
14
|
+
export function createRetryEnvelope(item, currentRetryCount, originalPayload, error) {
|
|
15
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
16
|
+
return {
|
|
17
|
+
item,
|
|
18
|
+
retryCount: currentRetryCount + 1,
|
|
19
|
+
firstFailedAt: isRetryEnvelope(originalPayload) ? originalPayload.firstFailedAt : new Date().toISOString(),
|
|
20
|
+
lastError: errorMessage,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
23
|
//# sourceMappingURL=retry-envelope.js.map
|
package/dist/esm/utils/size.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function sizeInBytes(obj: unknown): number;
|
|
2
|
-
export declare function chunkArrayBySize<T>(array: T[], maxChunkSizeBytes: number, maxItemsPerChunk?: number): T[][];
|
|
1
|
+
export declare function sizeInBytes(obj: unknown): number;
|
|
2
|
+
export declare function chunkArrayBySize<T>(array: T[], maxChunkSizeBytes: number, maxItemsPerChunk?: number): T[][];
|
package/dist/esm/utils/size.js
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
import { Logger } from '../helpers/logging-helper.js';
|
|
2
|
-
export function sizeInBytes(obj) {
|
|
3
|
-
try {
|
|
4
|
-
return new TextEncoder().encode(JSON.stringify(obj)).length;
|
|
5
|
-
}
|
|
6
|
-
catch (error) {
|
|
7
|
-
Logger.warn('sizeInBytes: failed to stringify object, returning fallback size', {
|
|
8
|
-
error,
|
|
9
|
-
objectType: typeof obj,
|
|
10
|
-
});
|
|
11
|
-
return 1024 * 1024;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
export function chunkArrayBySize(array, maxChunkSizeBytes, maxItemsPerChunk) {
|
|
15
|
-
const chunks = [];
|
|
16
|
-
let currentChunk = [];
|
|
17
|
-
let currentChunkSize = 0;
|
|
18
|
-
for (const item of array) {
|
|
19
|
-
const itemSize = sizeInBytes(item);
|
|
20
|
-
const arrayOverhead = 2 + Math.max(0, currentChunk.length);
|
|
21
|
-
const wouldExceedSize = currentChunkSize + itemSize + arrayOverhead > maxChunkSizeBytes;
|
|
22
|
-
const wouldExceedCount = maxItemsPerChunk !== undefined && currentChunk.length >= maxItemsPerChunk;
|
|
23
|
-
if ((wouldExceedSize || wouldExceedCount) && currentChunk.length > 0) {
|
|
24
|
-
chunks.push(currentChunk);
|
|
25
|
-
currentChunk = [];
|
|
26
|
-
currentChunkSize = 0;
|
|
27
|
-
}
|
|
28
|
-
if (itemSize > maxChunkSizeBytes) {
|
|
29
|
-
if (currentChunk.length > 0) {
|
|
30
|
-
chunks.push(currentChunk);
|
|
31
|
-
currentChunk = [];
|
|
32
|
-
currentChunkSize = 0;
|
|
33
|
-
}
|
|
34
|
-
chunks.push([item]);
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
|
-
currentChunk.push(item);
|
|
38
|
-
currentChunkSize += itemSize;
|
|
39
|
-
}
|
|
40
|
-
if (currentChunk.length > 0) {
|
|
41
|
-
chunks.push(currentChunk);
|
|
42
|
-
}
|
|
43
|
-
return chunks;
|
|
44
|
-
}
|
|
1
|
+
import { Logger } from '../helpers/logging-helper.js';
|
|
2
|
+
export function sizeInBytes(obj) {
|
|
3
|
+
try {
|
|
4
|
+
return new TextEncoder().encode(JSON.stringify(obj)).length;
|
|
5
|
+
}
|
|
6
|
+
catch (error) {
|
|
7
|
+
Logger.warn('sizeInBytes: failed to stringify object, returning fallback size', {
|
|
8
|
+
error,
|
|
9
|
+
objectType: typeof obj,
|
|
10
|
+
});
|
|
11
|
+
return 1024 * 1024;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function chunkArrayBySize(array, maxChunkSizeBytes, maxItemsPerChunk) {
|
|
15
|
+
const chunks = [];
|
|
16
|
+
let currentChunk = [];
|
|
17
|
+
let currentChunkSize = 0;
|
|
18
|
+
for (const item of array) {
|
|
19
|
+
const itemSize = sizeInBytes(item);
|
|
20
|
+
const arrayOverhead = 2 + Math.max(0, currentChunk.length);
|
|
21
|
+
const wouldExceedSize = currentChunkSize + itemSize + arrayOverhead > maxChunkSizeBytes;
|
|
22
|
+
const wouldExceedCount = maxItemsPerChunk !== undefined && currentChunk.length >= maxItemsPerChunk;
|
|
23
|
+
if ((wouldExceedSize || wouldExceedCount) && currentChunk.length > 0) {
|
|
24
|
+
chunks.push(currentChunk);
|
|
25
|
+
currentChunk = [];
|
|
26
|
+
currentChunkSize = 0;
|
|
27
|
+
}
|
|
28
|
+
if (itemSize > maxChunkSizeBytes) {
|
|
29
|
+
if (currentChunk.length > 0) {
|
|
30
|
+
chunks.push(currentChunk);
|
|
31
|
+
currentChunk = [];
|
|
32
|
+
currentChunkSize = 0;
|
|
33
|
+
}
|
|
34
|
+
chunks.push([item]);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
currentChunk.push(item);
|
|
38
|
+
currentChunkSize += itemSize;
|
|
39
|
+
}
|
|
40
|
+
if (currentChunk.length > 0) {
|
|
41
|
+
chunks.push(currentChunk);
|
|
42
|
+
}
|
|
43
|
+
return chunks;
|
|
44
|
+
}
|
|
45
45
|
//# sourceMappingURL=size.js.map
|