@adtrackify/at-service-common 3.17.8 → 3.18.0
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/sqs-bundled-client.spec.d.ts +1 -0
- package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js +225 -0
- package/dist/cjs/__tests__/clients/sqs-bundled-client.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 +194 -121
- package/dist/cjs/__tests__/clients/sqs-client.spec.js.map +1 -1
- package/dist/cjs/__tests__/clients/sqs-unbundle.spec.d.ts +1 -0
- package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js +377 -0
- package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js.map +1 -0
- 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/api-key-auth-helper.spec.d.ts +1 -1
- package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.js +74 -74
- 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__/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__/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 +197 -197
- 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 -10
- package/dist/cjs/clients/generic/index.js +29 -26
- package/dist/cjs/clients/generic/index.js.map +1 -1
- 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 -0
- package/dist/cjs/clients/generic/sqs-bundled-client.js +240 -0
- package/dist/cjs/clients/generic/sqs-bundled-client.js.map +1 -0
- package/dist/cjs/clients/generic/sqs-bundled-client.types.d.ts +43 -0
- package/dist/cjs/clients/generic/sqs-bundled-client.types.js +17 -0
- package/dist/cjs/clients/generic/sqs-bundled-client.types.js.map +1 -0
- package/dist/cjs/clients/generic/sqs-client.d.ts +48 -33
- package/dist/cjs/clients/generic/sqs-client.js +273 -111
- package/dist/cjs/clients/generic/sqs-client.js.map +1 -1
- package/dist/cjs/clients/generic/sqs-unbundle.d.ts +32 -0
- package/dist/cjs/clients/generic/sqs-unbundle.js +145 -0
- package/dist/cjs/clients/generic/sqs-unbundle.js.map +1 -0
- 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/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 +4 -4
- package/dist/cjs/clients/third-party/index.js +20 -20
- 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 +30 -30
- 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 +180 -180
- 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 -0
- package/dist/cjs/constants/index.js +18 -0
- package/dist/cjs/constants/index.js.map +1 -0
- package/dist/cjs/constants/sqs.d.ts +11 -0
- package/dist/cjs/constants/sqs.js +15 -0
- package/dist/cjs/constants/sqs.js.map +1 -0
- 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/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 +85 -85
- 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 +9 -9
- package/dist/cjs/helpers/index.js +25 -25
- 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 -5
- package/dist/cjs/index.js +23 -21
- package/dist/cjs/index.js.map +1 -1
- 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/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 +9 -9
- package/dist/cjs/services/events/log-event-service.js +56 -56
- 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 +8 -8
- package/dist/cjs/services/index.js +24 -24
- 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/api-response.d.ts +6 -6
- package/dist/cjs/types/api-response.js +2 -2
- package/dist/cjs/types/index.d.ts +1 -1
- package/dist/cjs/types/index.js +17 -17
- 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/utils/compression.d.ts +35 -0
- package/dist/cjs/utils/compression.js +177 -0
- package/dist/cjs/utils/compression.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +3 -0
- package/dist/cjs/utils/index.js +20 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/retry-envelope.d.ts +12 -0
- package/dist/cjs/utils/retry-envelope.js +31 -0
- package/dist/cjs/utils/retry-envelope.js.map +1 -0
- package/dist/cjs/utils/size.d.ts +2 -0
- package/dist/cjs/utils/size.js +49 -0
- package/dist/cjs/utils/size.js.map +1 -0
- package/dist/esm/__tests__/clients/sqs-bundled-client.spec.d.ts +1 -0
- package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js +200 -0
- package/dist/esm/__tests__/clients/sqs-bundled-client.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 +192 -119
- package/dist/esm/__tests__/clients/sqs-client.spec.js.map +1 -1
- package/dist/esm/__tests__/clients/sqs-unbundle.spec.d.ts +1 -0
- package/dist/esm/__tests__/clients/sqs-unbundle.spec.js +375 -0
- package/dist/esm/__tests__/clients/sqs-unbundle.spec.js.map +1 -0
- 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/api-key-auth-helper.spec.d.ts +1 -1
- package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.js +72 -72
- 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__/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__/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 +172 -172
- 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 -10
- package/dist/esm/clients/generic/index.js +13 -10
- package/dist/esm/clients/generic/index.js.map +1 -1
- 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 -0
- package/dist/esm/clients/generic/sqs-bundled-client.js +236 -0
- package/dist/esm/clients/generic/sqs-bundled-client.js.map +1 -0
- package/dist/esm/clients/generic/sqs-bundled-client.types.d.ts +43 -0
- package/dist/esm/clients/generic/sqs-bundled-client.types.js +14 -0
- package/dist/esm/clients/generic/sqs-bundled-client.types.js.map +1 -0
- package/dist/esm/clients/generic/sqs-client.d.ts +48 -33
- package/dist/esm/clients/generic/sqs-client.js +269 -107
- package/dist/esm/clients/generic/sqs-client.js.map +1 -1
- package/dist/esm/clients/generic/sqs-unbundle.d.ts +32 -0
- package/dist/esm/clients/generic/sqs-unbundle.js +138 -0
- package/dist/esm/clients/generic/sqs-unbundle.js.map +1 -0
- 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/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 +4 -4
- package/dist/esm/clients/third-party/index.js +4 -4
- 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 +27 -27
- 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 +177 -177
- 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 -0
- package/dist/esm/constants/index.js +2 -0
- package/dist/esm/constants/index.js.map +1 -0
- package/dist/esm/constants/sqs.d.ts +11 -0
- package/dist/esm/constants/sqs.js +12 -0
- package/dist/esm/constants/sqs.js.map +1 -0
- 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/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 +81 -81
- 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 +9 -9
- package/dist/esm/helpers/index.js +9 -9
- 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 -5
- package/dist/esm/index.js +7 -5
- package/dist/esm/index.js.map +1 -1
- 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/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 +9 -9
- package/dist/esm/services/events/log-event-service.js +52 -52
- 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 +8 -8
- package/dist/esm/services/index.js +8 -8
- 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/api-response.d.ts +6 -6
- package/dist/esm/types/api-response.js +1 -1
- package/dist/esm/types/index.d.ts +1 -1
- package/dist/esm/types/index.js +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/utils/compression.d.ts +35 -0
- package/dist/esm/utils/compression.js +167 -0
- package/dist/esm/utils/compression.js.map +1 -0
- package/dist/esm/utils/index.d.ts +3 -0
- package/dist/esm/utils/index.js +4 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/retry-envelope.d.ts +12 -0
- package/dist/esm/utils/retry-envelope.js +25 -0
- package/dist/esm/utils/retry-envelope.js.map +1 -0
- package/dist/esm/utils/size.d.ts +2 -0
- package/dist/esm/utils/size.js +44 -0
- package/dist/esm/utils/size.js.map +1 -0
- package/package.json +135 -135
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './admin.generated';
|
|
2
|
-
export * from './admin.types';
|
|
1
|
+
export * from './admin.generated';
|
|
2
|
+
export * from './admin.types';
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./admin.generated"), exports);
|
|
18
|
-
__exportStar(require("./admin.types"), exports);
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./admin.generated"), exports);
|
|
18
|
+
__exportStar(require("./admin.types"), exports);
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/// <reference path="../../../src/utils/zstd.d.ts" />
|
|
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 enum CompressionOperation {
|
|
6
|
+
COMPRESS = "compress",
|
|
7
|
+
DECOMPRESS = "decompress"
|
|
8
|
+
}
|
|
9
|
+
export declare function compress(data: Buffer, algorithm: CompressionAlgorithm, level?: number): Promise<Buffer>;
|
|
10
|
+
export declare function decompress(data: Buffer, algorithm: CompressionAlgorithm): Promise<Buffer>;
|
|
11
|
+
export declare function compressToBase64(data: unknown, algorithm: CompressionAlgorithm, level?: number): Promise<{
|
|
12
|
+
base64: string;
|
|
13
|
+
originalSize: number;
|
|
14
|
+
compressedSize: number;
|
|
15
|
+
}>;
|
|
16
|
+
export declare const DECOMPRESSION_LIMITS: {
|
|
17
|
+
readonly MAX_DECOMPRESSED_SIZE_BYTES: number;
|
|
18
|
+
readonly MAX_COMPRESSION_RATIO: 100;
|
|
19
|
+
readonly DEFAULT_TIMEOUT_MS: 30000;
|
|
20
|
+
};
|
|
21
|
+
export declare class DecompressionBombError extends Error {
|
|
22
|
+
readonly compressedSize: number;
|
|
23
|
+
readonly decompressedSize: number;
|
|
24
|
+
readonly limit: number;
|
|
25
|
+
constructor(compressedSize: number, decompressedSize: number, limit: number);
|
|
26
|
+
}
|
|
27
|
+
export declare class CompressionTimeoutError extends Error {
|
|
28
|
+
readonly operation: CompressionOperation;
|
|
29
|
+
readonly timeoutMs: number;
|
|
30
|
+
constructor(operation: CompressionOperation, timeoutMs: number);
|
|
31
|
+
}
|
|
32
|
+
export declare function decompressFromBase64<T>(base64: string, algorithm: CompressionAlgorithm, options?: {
|
|
33
|
+
maxDecompressedSizeBytes?: number;
|
|
34
|
+
timeoutMs?: number;
|
|
35
|
+
}): Promise<T>;
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decompressFromBase64 = exports.CompressionTimeoutError = exports.DecompressionBombError = exports.DECOMPRESSION_LIMITS = exports.compressToBase64 = exports.decompress = exports.compress = exports.CompressionOperation = exports.getZstdUncompressedSize = void 0;
|
|
4
|
+
const node_util_1 = require("node:util");
|
|
5
|
+
const node_zlib_1 = require("node:zlib");
|
|
6
|
+
const sqs_bundled_client_types_js_1 = require("../clients/generic/sqs-bundled-client.types.js");
|
|
7
|
+
const zstdCompressNative = (0, node_util_1.promisify)(node_zlib_1.zstdCompress);
|
|
8
|
+
const zstdDecompressNative = (0, node_util_1.promisify)(node_zlib_1.zstdDecompress);
|
|
9
|
+
const ZSTD_MAGIC = 0xfd2fb528;
|
|
10
|
+
function getZstdUncompressedSize(buffer) {
|
|
11
|
+
if (buffer.length < 5) {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
const magic = buffer.readUInt32LE(0);
|
|
15
|
+
if (magic !== ZSTD_MAGIC) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
const frameHeaderDescriptor = buffer[4];
|
|
19
|
+
if (frameHeaderDescriptor === undefined) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
const singleSegmentFlag = (frameHeaderDescriptor >> 5) & 0x01;
|
|
23
|
+
const contentSizeFlag = (frameHeaderDescriptor >> 6) & 0x03;
|
|
24
|
+
const dictionaryIdFlag = frameHeaderDescriptor & 0x03;
|
|
25
|
+
const dictIdSizes = [0, 1, 2, 4];
|
|
26
|
+
const dictIdSize = dictIdSizes[dictionaryIdFlag];
|
|
27
|
+
let fcsSize;
|
|
28
|
+
if (contentSizeFlag === 0) {
|
|
29
|
+
fcsSize = singleSegmentFlag === 1 ? 1 : 0;
|
|
30
|
+
}
|
|
31
|
+
else if (contentSizeFlag === 1) {
|
|
32
|
+
fcsSize = 2;
|
|
33
|
+
}
|
|
34
|
+
else if (contentSizeFlag === 2) {
|
|
35
|
+
fcsSize = 4;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
fcsSize = 8;
|
|
39
|
+
}
|
|
40
|
+
if (fcsSize === 0) {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
const windowDescriptorSize = singleSegmentFlag === 1 ? 0 : 1;
|
|
44
|
+
const fcsOffset = 5 + windowDescriptorSize + dictIdSize;
|
|
45
|
+
if (buffer.length < fcsOffset + fcsSize) {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
if (fcsSize === 1) {
|
|
49
|
+
return buffer.readUInt8(fcsOffset);
|
|
50
|
+
}
|
|
51
|
+
else if (fcsSize === 2) {
|
|
52
|
+
return buffer.readUInt16LE(fcsOffset) + 256;
|
|
53
|
+
}
|
|
54
|
+
else if (fcsSize === 4) {
|
|
55
|
+
return buffer.readUInt32LE(fcsOffset);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
const bigValue = buffer.readBigUInt64LE(fcsOffset);
|
|
59
|
+
if (bigValue > BigInt(Number.MAX_SAFE_INTEGER)) {
|
|
60
|
+
return Number.MAX_SAFE_INTEGER;
|
|
61
|
+
}
|
|
62
|
+
return Number(bigValue);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.getZstdUncompressedSize = getZstdUncompressedSize;
|
|
66
|
+
var CompressionOperation;
|
|
67
|
+
(function (CompressionOperation) {
|
|
68
|
+
CompressionOperation["COMPRESS"] = "compress";
|
|
69
|
+
CompressionOperation["DECOMPRESS"] = "decompress";
|
|
70
|
+
})(CompressionOperation = exports.CompressionOperation || (exports.CompressionOperation = {}));
|
|
71
|
+
async function compress(data, algorithm, level = 3) {
|
|
72
|
+
switch (algorithm) {
|
|
73
|
+
case sqs_bundled_client_types_js_1.CompressionAlgorithm.NONE:
|
|
74
|
+
return data;
|
|
75
|
+
case sqs_bundled_client_types_js_1.CompressionAlgorithm.ZSTD:
|
|
76
|
+
return await zstdCompressNative(data, {
|
|
77
|
+
params: {
|
|
78
|
+
[node_zlib_1.ZSTD_c_compressionLevel]: level,
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
default:
|
|
82
|
+
throw new Error(`Unsupported compression algorithm: ${algorithm}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.compress = compress;
|
|
86
|
+
async function decompress(data, algorithm) {
|
|
87
|
+
switch (algorithm) {
|
|
88
|
+
case sqs_bundled_client_types_js_1.CompressionAlgorithm.NONE:
|
|
89
|
+
return data;
|
|
90
|
+
case sqs_bundled_client_types_js_1.CompressionAlgorithm.ZSTD:
|
|
91
|
+
return await zstdDecompressNative(data);
|
|
92
|
+
default:
|
|
93
|
+
throw new Error(`Unsupported compression algorithm: ${algorithm}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.decompress = decompress;
|
|
97
|
+
async function compressToBase64(data, algorithm, level = 3) {
|
|
98
|
+
const json = JSON.stringify(data);
|
|
99
|
+
const originalSize = Buffer.byteLength(json, 'utf8');
|
|
100
|
+
if (algorithm === sqs_bundled_client_types_js_1.CompressionAlgorithm.NONE) {
|
|
101
|
+
return { base64: '', originalSize, compressedSize: originalSize };
|
|
102
|
+
}
|
|
103
|
+
const compressed = await compress(Buffer.from(json, 'utf8'), algorithm, level);
|
|
104
|
+
const base64 = compressed.toString('base64');
|
|
105
|
+
return {
|
|
106
|
+
base64,
|
|
107
|
+
originalSize,
|
|
108
|
+
compressedSize: Buffer.byteLength(base64, 'utf8'),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
exports.compressToBase64 = compressToBase64;
|
|
112
|
+
exports.DECOMPRESSION_LIMITS = {
|
|
113
|
+
MAX_DECOMPRESSED_SIZE_BYTES: 10 * 1024 * 1024,
|
|
114
|
+
MAX_COMPRESSION_RATIO: 100,
|
|
115
|
+
DEFAULT_TIMEOUT_MS: 30000,
|
|
116
|
+
};
|
|
117
|
+
class DecompressionBombError extends Error {
|
|
118
|
+
compressedSize;
|
|
119
|
+
decompressedSize;
|
|
120
|
+
limit;
|
|
121
|
+
constructor(compressedSize, decompressedSize, limit) {
|
|
122
|
+
super(`Decompression bomb detected: ${decompressedSize} bytes exceeds limit of ${limit} bytes ` +
|
|
123
|
+
`(compression ratio: ${(decompressedSize / compressedSize).toFixed(1)}x)`);
|
|
124
|
+
this.compressedSize = compressedSize;
|
|
125
|
+
this.decompressedSize = decompressedSize;
|
|
126
|
+
this.limit = limit;
|
|
127
|
+
this.name = 'DecompressionBombError';
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
exports.DecompressionBombError = DecompressionBombError;
|
|
131
|
+
class CompressionTimeoutError extends Error {
|
|
132
|
+
operation;
|
|
133
|
+
timeoutMs;
|
|
134
|
+
constructor(operation, timeoutMs) {
|
|
135
|
+
super(`${operation} operation timed out after ${timeoutMs}ms`);
|
|
136
|
+
this.operation = operation;
|
|
137
|
+
this.timeoutMs = timeoutMs;
|
|
138
|
+
this.name = 'CompressionTimeoutError';
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
exports.CompressionTimeoutError = CompressionTimeoutError;
|
|
142
|
+
async function withTimeout(operation, timeoutMs, operationName) {
|
|
143
|
+
let timeoutId;
|
|
144
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
145
|
+
timeoutId = setTimeout(() => {
|
|
146
|
+
reject(new CompressionTimeoutError(operationName, timeoutMs));
|
|
147
|
+
}, timeoutMs);
|
|
148
|
+
});
|
|
149
|
+
try {
|
|
150
|
+
return await Promise.race([operation, timeoutPromise]);
|
|
151
|
+
}
|
|
152
|
+
finally {
|
|
153
|
+
if (timeoutId)
|
|
154
|
+
clearTimeout(timeoutId);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
async function decompressFromBase64(base64, algorithm, options) {
|
|
158
|
+
if (algorithm === sqs_bundled_client_types_js_1.CompressionAlgorithm.NONE) {
|
|
159
|
+
throw new Error('Cannot decompress NONE algorithm from base64');
|
|
160
|
+
}
|
|
161
|
+
const maxSize = options?.maxDecompressedSizeBytes ?? exports.DECOMPRESSION_LIMITS.MAX_DECOMPRESSED_SIZE_BYTES;
|
|
162
|
+
const timeoutMs = options?.timeoutMs ?? exports.DECOMPRESSION_LIMITS.DEFAULT_TIMEOUT_MS;
|
|
163
|
+
const compressed = Buffer.from(base64, 'base64');
|
|
164
|
+
if (algorithm === sqs_bundled_client_types_js_1.CompressionAlgorithm.ZSTD) {
|
|
165
|
+
const headerSize = getZstdUncompressedSize(compressed);
|
|
166
|
+
if (headerSize !== undefined && headerSize > maxSize) {
|
|
167
|
+
throw new DecompressionBombError(compressed.length, headerSize, maxSize);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
const decompressed = await withTimeout(decompress(compressed, algorithm), timeoutMs, CompressionOperation.DECOMPRESS);
|
|
171
|
+
if (decompressed.length > maxSize) {
|
|
172
|
+
throw new DecompressionBombError(compressed.length, decompressed.length, maxSize);
|
|
173
|
+
}
|
|
174
|
+
return JSON.parse(decompressed.toString('utf8'));
|
|
175
|
+
}
|
|
176
|
+
exports.decompressFromBase64 = decompressFromBase64;
|
|
177
|
+
//# sourceMappingURL=compression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compression.js","sourceRoot":"","sources":["../../../src/utils/compression.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./size.js"), exports);
|
|
18
|
+
__exportStar(require("./compression.js"), exports);
|
|
19
|
+
__exportStar(require("./retry-envelope.js"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,mDAAiC;AACjC,sDAAoC"}
|
|
@@ -0,0 +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>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createRetryEnvelope = exports.unwrapItem = exports.isRetryEnvelope = void 0;
|
|
4
|
+
function isRetryEnvelope(payload) {
|
|
5
|
+
return (typeof payload === 'object' &&
|
|
6
|
+
payload !== null &&
|
|
7
|
+
'item' in payload &&
|
|
8
|
+
'retryCount' in payload &&
|
|
9
|
+
typeof payload.retryCount === 'number');
|
|
10
|
+
}
|
|
11
|
+
exports.isRetryEnvelope = isRetryEnvelope;
|
|
12
|
+
function unwrapItem(payload) {
|
|
13
|
+
if (isRetryEnvelope(payload)) {
|
|
14
|
+
return { item: payload.item, retryCount: payload.retryCount };
|
|
15
|
+
}
|
|
16
|
+
return { item: payload, retryCount: 0 };
|
|
17
|
+
}
|
|
18
|
+
exports.unwrapItem = unwrapItem;
|
|
19
|
+
function createRetryEnvelope(item, currentRetryCount, originalPayload, error) {
|
|
20
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
21
|
+
return {
|
|
22
|
+
item,
|
|
23
|
+
retryCount: currentRetryCount + 1,
|
|
24
|
+
firstFailedAt: isRetryEnvelope(originalPayload)
|
|
25
|
+
? originalPayload.firstFailedAt
|
|
26
|
+
: new Date().toISOString(),
|
|
27
|
+
lastError: errorMessage,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
exports.createRetryEnvelope = createRetryEnvelope;
|
|
31
|
+
//# sourceMappingURL=retry-envelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry-envelope.js","sourceRoot":"","sources":["../../../src/utils/retry-envelope.ts"],"names":[],"mappings":";;;AAcA,SAAgB,eAAe,CAAI,OAAgB;IACjD,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,MAAM,IAAI,OAAO;QACjB,YAAY,IAAI,OAAO;QACvB,OAAQ,OAA4B,CAAC,UAAU,KAAK,QAAQ,CAC7D,CAAC;AACJ,CAAC;AARD,0CAQC;AAMD,SAAgB,UAAU,CAAI,OAA6B;IACzD,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE;QAC5B,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;KAC/D;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;AAC1C,CAAC;AALD,gCAKC;AAMD,SAAgB,mBAAmB,CACjC,IAAO,EACP,iBAAyB,EACzB,eAAqC,EACrC,KAAc;IAEd,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5E,OAAO;QACL,IAAI;QACJ,UAAU,EAAE,iBAAiB,GAAG,CAAC;QACjC,aAAa,EAAE,eAAe,CAAC,eAAe,CAAC;YAC7C,CAAC,CAAC,eAAe,CAAC,aAAa;YAC/B,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,SAAS,EAAE,YAAY;KACxB,CAAC;AACJ,CAAC;AAhBD,kDAgBC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.chunkArrayBySize = exports.sizeInBytes = void 0;
|
|
4
|
+
const logging_helper_js_1 = require("../helpers/logging-helper.js");
|
|
5
|
+
function sizeInBytes(obj) {
|
|
6
|
+
try {
|
|
7
|
+
return new TextEncoder().encode(JSON.stringify(obj)).length;
|
|
8
|
+
}
|
|
9
|
+
catch (error) {
|
|
10
|
+
logging_helper_js_1.Logger.warn('sizeInBytes: failed to stringify object, returning fallback size', {
|
|
11
|
+
error,
|
|
12
|
+
objectType: typeof obj,
|
|
13
|
+
});
|
|
14
|
+
return 1024 * 1024;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.sizeInBytes = sizeInBytes;
|
|
18
|
+
function chunkArrayBySize(array, maxChunkSizeBytes, maxItemsPerChunk) {
|
|
19
|
+
const chunks = [];
|
|
20
|
+
let currentChunk = [];
|
|
21
|
+
let currentChunkSize = 0;
|
|
22
|
+
for (const item of array) {
|
|
23
|
+
const itemSize = sizeInBytes(item);
|
|
24
|
+
const wouldExceedSize = currentChunkSize + itemSize > maxChunkSizeBytes;
|
|
25
|
+
const wouldExceedCount = maxItemsPerChunk !== undefined && currentChunk.length >= maxItemsPerChunk;
|
|
26
|
+
if ((wouldExceedSize || wouldExceedCount) && currentChunk.length > 0) {
|
|
27
|
+
chunks.push(currentChunk);
|
|
28
|
+
currentChunk = [];
|
|
29
|
+
currentChunkSize = 0;
|
|
30
|
+
}
|
|
31
|
+
if (itemSize > maxChunkSizeBytes) {
|
|
32
|
+
if (currentChunk.length > 0) {
|
|
33
|
+
chunks.push(currentChunk);
|
|
34
|
+
currentChunk = [];
|
|
35
|
+
currentChunkSize = 0;
|
|
36
|
+
}
|
|
37
|
+
chunks.push([item]);
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
currentChunk.push(item);
|
|
41
|
+
currentChunkSize += itemSize;
|
|
42
|
+
}
|
|
43
|
+
if (currentChunk.length > 0) {
|
|
44
|
+
chunks.push(currentChunk);
|
|
45
|
+
}
|
|
46
|
+
return chunks;
|
|
47
|
+
}
|
|
48
|
+
exports.chunkArrayBySize = chunkArrayBySize;
|
|
49
|
+
//# sourceMappingURL=size.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"size.js","sourceRoot":"","sources":["../../../src/utils/size.ts"],"names":[],"mappings":";;;AAAA,oEAAsD;AAMtD,SAAgB,WAAW,CAAC,GAAY;IACtC,IAAI;QACF,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;KAC7D;IAAC,OAAO,KAAK,EAAE;QACd,0BAAM,CAAC,IAAI,CAAC,kEAAkE,EAAE;YAC9E,KAAK;YACL,UAAU,EAAE,OAAO,GAAG;SACvB,CAAC,CAAC;QACH,OAAO,IAAI,GAAG,IAAI,CAAC;KACpB;AACH,CAAC;AAVD,kCAUC;AAYD,SAAgB,gBAAgB,CAC9B,KAAU,EACV,iBAAyB,EACzB,gBAAyB;IAEzB,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,IAAI,YAAY,GAAQ,EAAE,CAAC;IAC3B,IAAI,gBAAgB,GAAG,CAAC,CAAC;IAEzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAGnC,MAAM,eAAe,GAAG,gBAAgB,GAAG,QAAQ,GAAG,iBAAiB,CAAC;QACxE,MAAM,gBAAgB,GACpB,gBAAgB,KAAK,SAAS,IAAI,YAAY,CAAC,MAAM,IAAI,gBAAgB,CAAC;QAE5E,IAAI,CAAC,eAAe,IAAI,gBAAgB,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YACpE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1B,YAAY,GAAG,EAAE,CAAC;YAClB,gBAAgB,GAAG,CAAC,CAAC;SACtB;QAGD,IAAI,QAAQ,GAAG,iBAAiB,EAAE;YAEhC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC1B,YAAY,GAAG,EAAE,CAAC;gBAClB,gBAAgB,GAAG,CAAC,CAAC;aACtB;YACD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACpB,SAAS;SACV;QAED,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,gBAAgB,IAAI,QAAQ,CAAC;KAC9B;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC3B;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AA5CD,4CA4CC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { BundledSQSClient } from '../../clients/generic/sqs-bundled-client';
|
|
2
|
+
import { CompressionAlgorithm } from '../../clients/generic/sqs-bundled-client.types';
|
|
3
|
+
jest.mock('../../helpers/logging-helper', () => ({
|
|
4
|
+
Logger: {
|
|
5
|
+
debug: jest.fn(),
|
|
6
|
+
info: jest.fn(),
|
|
7
|
+
warn: jest.fn(),
|
|
8
|
+
error: jest.fn(),
|
|
9
|
+
},
|
|
10
|
+
}));
|
|
11
|
+
function makeTestEvent(id, name = 'test', value) {
|
|
12
|
+
return { id, name, value };
|
|
13
|
+
}
|
|
14
|
+
describe('BundledSQSClient', () => {
|
|
15
|
+
let mockSqsClient;
|
|
16
|
+
let bundledClient;
|
|
17
|
+
beforeEach(() => {
|
|
18
|
+
mockSqsClient = {
|
|
19
|
+
buildAndSendMessagesV2: jest.fn().mockResolvedValue({
|
|
20
|
+
successCount: 1,
|
|
21
|
+
failedCount: 0,
|
|
22
|
+
batchCount: 1,
|
|
23
|
+
failedMessages: [],
|
|
24
|
+
}),
|
|
25
|
+
queueUrl: 'https://sqs.us-east-1.amazonaws.com/123456789/test-queue',
|
|
26
|
+
};
|
|
27
|
+
bundledClient = new BundledSQSClient(mockSqsClient, {
|
|
28
|
+
compression: CompressionAlgorithm.ZSTD,
|
|
29
|
+
compressionLevel: 3,
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
describe('sendBundled', () => {
|
|
33
|
+
it('returns empty result for empty items array', async () => {
|
|
34
|
+
const result = await bundledClient.sendBundled('test-message', []);
|
|
35
|
+
expect(result.totalItems).toBe(0);
|
|
36
|
+
expect(result.bundleCount).toBe(0);
|
|
37
|
+
expect(result.messageCount).toBe(0);
|
|
38
|
+
expect(mockSqsClient.buildAndSendMessagesV2).not.toHaveBeenCalled();
|
|
39
|
+
});
|
|
40
|
+
it('bundles and sends small items', async () => {
|
|
41
|
+
const items = [makeTestEvent('1'), makeTestEvent('2'), makeTestEvent('3')];
|
|
42
|
+
const result = await bundledClient.sendBundled('test-message', items);
|
|
43
|
+
expect(result.totalItems).toBe(3);
|
|
44
|
+
expect(result.bundleCount).toBeGreaterThanOrEqual(1);
|
|
45
|
+
expect(mockSqsClient.buildAndSendMessagesV2).toHaveBeenCalledTimes(1);
|
|
46
|
+
const sentEnvelopes = mockSqsClient.buildAndSendMessagesV2.mock.calls[0][1];
|
|
47
|
+
expect(sentEnvelopes.length).toBeGreaterThanOrEqual(1);
|
|
48
|
+
const envelope = sentEnvelopes[0];
|
|
49
|
+
expect(envelope.v).toBe(1);
|
|
50
|
+
expect(envelope.c).toBe(CompressionAlgorithm.ZSTD);
|
|
51
|
+
expect(envelope.n).toBe(3);
|
|
52
|
+
expect(typeof envelope.p).toBe('string');
|
|
53
|
+
});
|
|
54
|
+
it('tracks compression metrics', async () => {
|
|
55
|
+
const items = Array.from({ length: 100 }, (_, i) => makeTestEvent(`event-${i}`, `name-${i}`, i * 100));
|
|
56
|
+
const result = await bundledClient.sendBundled('test-message', items);
|
|
57
|
+
expect(result.metrics.originalSizeBytes).toBeGreaterThan(0);
|
|
58
|
+
expect(result.metrics.finalSizeBytes).toBeGreaterThan(0);
|
|
59
|
+
expect(result.metrics.compressionRatio).toBeGreaterThan(1);
|
|
60
|
+
expect(result.metrics.compressionTimeMs).toBeGreaterThanOrEqual(0);
|
|
61
|
+
});
|
|
62
|
+
it('sends items without compression when NONE specified', async () => {
|
|
63
|
+
const noCompressionClient = new BundledSQSClient(mockSqsClient, {
|
|
64
|
+
compression: CompressionAlgorithm.NONE,
|
|
65
|
+
});
|
|
66
|
+
const items = [makeTestEvent('1')];
|
|
67
|
+
await noCompressionClient.sendBundled('test-message', items);
|
|
68
|
+
const sentEnvelopes = mockSqsClient.buildAndSendMessagesV2.mock.calls[0][1];
|
|
69
|
+
const envelope = sentEnvelopes[0];
|
|
70
|
+
expect(envelope.c).toBe(CompressionAlgorithm.NONE);
|
|
71
|
+
expect(Array.isArray(envelope.p)).toBe(true);
|
|
72
|
+
});
|
|
73
|
+
it('respects maxItemsPerBundle config', async () => {
|
|
74
|
+
const client = new BundledSQSClient(mockSqsClient, {
|
|
75
|
+
compression: CompressionAlgorithm.ZSTD,
|
|
76
|
+
maxItemsPerBundle: 10,
|
|
77
|
+
});
|
|
78
|
+
const items = Array.from({ length: 25 }, (_, i) => makeTestEvent(`${i}`));
|
|
79
|
+
mockSqsClient.buildAndSendMessagesV2.mockResolvedValue({
|
|
80
|
+
successCount: 3,
|
|
81
|
+
failedCount: 0,
|
|
82
|
+
batchCount: 1,
|
|
83
|
+
failedMessages: [],
|
|
84
|
+
});
|
|
85
|
+
const result = await client.sendBundled('test-message', items);
|
|
86
|
+
expect(result.totalItems).toBe(25);
|
|
87
|
+
expect(result.bundleCount).toBeGreaterThanOrEqual(2);
|
|
88
|
+
const sentEnvelopes = mockSqsClient.buildAndSendMessagesV2.mock.calls[0][1];
|
|
89
|
+
for (const envelope of sentEnvelopes) {
|
|
90
|
+
expect(envelope.n).toBeLessThanOrEqual(10);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
it('calculates billable requests based on size', async () => {
|
|
94
|
+
const items = Array.from({ length: 50 }, (_, i) => makeTestEvent(`${i}`, 'name', i * 10));
|
|
95
|
+
const result = await bundledClient.sendBundled('test-message', items);
|
|
96
|
+
expect(result.billableRequests).toBeGreaterThanOrEqual(1);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
describe('retry behavior', () => {
|
|
100
|
+
it('retries failed messages', async () => {
|
|
101
|
+
mockSqsClient.buildAndSendMessagesV2
|
|
102
|
+
.mockResolvedValueOnce({
|
|
103
|
+
successCount: 0,
|
|
104
|
+
failedCount: 1,
|
|
105
|
+
batchCount: 1,
|
|
106
|
+
failedMessages: [{ v: 1, c: 'zstd', n: 1, p: 'test' }],
|
|
107
|
+
})
|
|
108
|
+
.mockResolvedValueOnce({
|
|
109
|
+
successCount: 1,
|
|
110
|
+
failedCount: 0,
|
|
111
|
+
batchCount: 1,
|
|
112
|
+
failedMessages: [],
|
|
113
|
+
});
|
|
114
|
+
const items = [makeTestEvent('1')];
|
|
115
|
+
const result = await bundledClient.sendBundled('test-message', items);
|
|
116
|
+
expect(mockSqsClient.buildAndSendMessagesV2).toHaveBeenCalledTimes(2);
|
|
117
|
+
expect(result.failedBundles).toBe(0);
|
|
118
|
+
});
|
|
119
|
+
it('stops retrying after max retries', async () => {
|
|
120
|
+
mockSqsClient.buildAndSendMessagesV2.mockResolvedValue({
|
|
121
|
+
successCount: 0,
|
|
122
|
+
failedCount: 1,
|
|
123
|
+
batchCount: 1,
|
|
124
|
+
failedMessages: [{ v: 1, c: 'zstd', n: 1, p: 'test' }],
|
|
125
|
+
});
|
|
126
|
+
const items = [makeTestEvent('1')];
|
|
127
|
+
const result = await bundledClient.sendBundled('test-message', items);
|
|
128
|
+
expect(mockSqsClient.buildAndSendMessagesV2).toHaveBeenCalledTimes(3);
|
|
129
|
+
expect(result.failedBundles).toBeGreaterThan(0);
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
describe('auto-resize', () => {
|
|
133
|
+
it('is enabled by default', () => {
|
|
134
|
+
const client = new BundledSQSClient(mockSqsClient);
|
|
135
|
+
expect(client.config.autoResize).toBe(true);
|
|
136
|
+
});
|
|
137
|
+
it('can be configured to be disabled', () => {
|
|
138
|
+
const client = new BundledSQSClient(mockSqsClient, {
|
|
139
|
+
autoResize: false,
|
|
140
|
+
});
|
|
141
|
+
expect(client.config.autoResize).toBe(false);
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
describe('integration: end-to-end bundle flow', () => {
|
|
145
|
+
it('produces envelopes that unbundleRecords can process', async () => {
|
|
146
|
+
const { unbundleRecords } = await import('../../clients/generic/sqs-unbundle');
|
|
147
|
+
const items = [
|
|
148
|
+
makeTestEvent('event-1', 'purchase', 99.99),
|
|
149
|
+
makeTestEvent('event-2', 'add_to_cart', 29.99),
|
|
150
|
+
makeTestEvent('event-3', 'page_view'),
|
|
151
|
+
];
|
|
152
|
+
let capturedEnvelope = null;
|
|
153
|
+
mockSqsClient.buildAndSendMessagesV2.mockImplementation(async (_type, envelopes) => {
|
|
154
|
+
capturedEnvelope = envelopes[0];
|
|
155
|
+
return {
|
|
156
|
+
successCount: envelopes.length,
|
|
157
|
+
failedCount: 0,
|
|
158
|
+
batchCount: 1,
|
|
159
|
+
failedMessages: [],
|
|
160
|
+
};
|
|
161
|
+
});
|
|
162
|
+
await bundledClient.sendBundled('test-message', items);
|
|
163
|
+
expect(capturedEnvelope).not.toBeNull();
|
|
164
|
+
const sqsRecord = {
|
|
165
|
+
messageId: 'msg-1',
|
|
166
|
+
body: JSON.stringify({ messageBody: capturedEnvelope }),
|
|
167
|
+
};
|
|
168
|
+
const { items: unbundledItems, stats } = await unbundleRecords([sqsRecord]);
|
|
169
|
+
expect(unbundledItems).toHaveLength(3);
|
|
170
|
+
expect(unbundledItems[0]).toEqual({ id: 'event-1', name: 'purchase', value: 99.99 });
|
|
171
|
+
expect(unbundledItems[1]).toEqual({ id: 'event-2', name: 'add_to_cart', value: 29.99 });
|
|
172
|
+
expect(unbundledItems[2]).toEqual({ id: 'event-3', name: 'page_view' });
|
|
173
|
+
expect(stats.bundledRecords).toBe(1);
|
|
174
|
+
});
|
|
175
|
+
it('maintains compatibility with large bundles', async () => {
|
|
176
|
+
const { unbundleRecords } = await import('../../clients/generic/sqs-unbundle');
|
|
177
|
+
const items = Array.from({ length: 200 }, (_, i) => makeTestEvent(`event-${i}`, `type-${i % 5}`, i * 1.5));
|
|
178
|
+
let capturedEnvelopes = [];
|
|
179
|
+
mockSqsClient.buildAndSendMessagesV2.mockImplementation(async (_type, envelopes) => {
|
|
180
|
+
capturedEnvelopes = envelopes;
|
|
181
|
+
return {
|
|
182
|
+
successCount: envelopes.length,
|
|
183
|
+
failedCount: 0,
|
|
184
|
+
batchCount: 1,
|
|
185
|
+
failedMessages: [],
|
|
186
|
+
};
|
|
187
|
+
});
|
|
188
|
+
await bundledClient.sendBundled('test-message', items);
|
|
189
|
+
const sqsRecords = capturedEnvelopes.map((env, i) => ({
|
|
190
|
+
messageId: `msg-${i}`,
|
|
191
|
+
body: JSON.stringify({ messageBody: env }),
|
|
192
|
+
}));
|
|
193
|
+
const { items: unbundledItems } = await unbundleRecords(sqsRecords);
|
|
194
|
+
expect(unbundledItems).toHaveLength(200);
|
|
195
|
+
expect(unbundledItems[0].id).toBe('event-0');
|
|
196
|
+
expect(unbundledItems[199].id).toBe('event-199');
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
//# sourceMappingURL=sqs-bundled-client.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqs-bundled-client.spec.js","sourceRoot":"","sources":["../../../../src/__tests__/clients/sqs-bundled-client.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|