@modainteract/moda-interact-shared 1.4.0 → 1.5.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/{chunk-I4WVQ6D7.js → chunk-SU2DAOEC.js} +65 -10
- package/dist/chunk-SU2DAOEC.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +15 -1
- package/dist/shopify/index.d.ts +366 -1
- package/dist/shopify/index.js +15 -1
- package/package.json +1 -1
- package/dist/chunk-I4WVQ6D7.js.map +0 -1
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
// src/shopify/constants.ts
|
|
6
6
|
var SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V1 = 1;
|
|
7
7
|
var SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V2 = 2;
|
|
8
|
+
var SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V3 = 3;
|
|
8
9
|
var SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION = SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V1;
|
|
9
10
|
var SHOPIFY_COMMERCE_EVENT_TYPES = {
|
|
10
11
|
CHECKOUT_OBSERVED: "checkout.observed",
|
|
@@ -16,6 +17,9 @@ var SHOPIFY_RECOVERY_EVENT_TYPES_V2 = {
|
|
|
16
17
|
CHECKOUT_UPDATED: "checkout.updated",
|
|
17
18
|
ORDER_COMPLETED: "order.completed"
|
|
18
19
|
};
|
|
20
|
+
var SHOPIFY_RECOVERY_EVENT_TYPES_V3 = {
|
|
21
|
+
CHECKOUT_UPDATED: "checkout.updated"
|
|
22
|
+
};
|
|
19
23
|
var SHOPIFY_WEBHOOK_OUTBOX_DESTINATIONS = {
|
|
20
24
|
CHECKOUT_EVENTS: "CHECKOUT_EVENTS",
|
|
21
25
|
ORDER_EVENTS: "ORDER_EVENTS"
|
|
@@ -277,8 +281,52 @@ function createShopifyOrderCorrelationOrderingKey(input) {
|
|
|
277
281
|
return `${input.shopId}:${input.orderId}`;
|
|
278
282
|
}
|
|
279
283
|
|
|
280
|
-
// src/shopify/
|
|
284
|
+
// src/shopify/v3/checkout-updated.schema.ts
|
|
281
285
|
import { z as z10 } from "zod";
|
|
286
|
+
var MAX_CART_TOKEN_LENGTH = 100;
|
|
287
|
+
var CheckoutUpdatedPayloadV3Schema = z10.object({
|
|
288
|
+
checkoutToken: z10.string().min(1),
|
|
289
|
+
cartToken: z10.string().min(1).max(MAX_CART_TOKEN_LENGTH).nullable().optional(),
|
|
290
|
+
checkoutCreatedAt: z10.iso.datetime().nullable().optional(),
|
|
291
|
+
abandonedCheckoutUrl: z10.url().max(MAX_URL_LENGTH).nullable().optional()
|
|
292
|
+
}).strict();
|
|
293
|
+
|
|
294
|
+
// src/shopify/v3/recovery-event.schema.ts
|
|
295
|
+
import { z as z11 } from "zod";
|
|
296
|
+
var ShopifyRecoveryEventBaseV3Schema = z11.object({
|
|
297
|
+
schemaVersion: z11.literal(SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V3),
|
|
298
|
+
receiptId: z11.string().min(1),
|
|
299
|
+
deliveryId: z11.string().min(1),
|
|
300
|
+
eventId: z11.string().min(1).nullable(),
|
|
301
|
+
source: z11.literal("shopify"),
|
|
302
|
+
providerTopic: z11.string().min(1),
|
|
303
|
+
tenant: ShopifyTenantSchema,
|
|
304
|
+
occurredAt: z11.iso.datetime().nullable(),
|
|
305
|
+
receivedAt: z11.iso.datetime(),
|
|
306
|
+
traceId: z11.string().min(1),
|
|
307
|
+
orderingKey: z11.string().min(1),
|
|
308
|
+
internationalContext: InternationalContextSchema.optional()
|
|
309
|
+
}).strict();
|
|
310
|
+
var ShopifyCheckoutUpdatedEventV3Schema = ShopifyRecoveryEventBaseV3Schema.extend({
|
|
311
|
+
eventType: z11.literal(SHOPIFY_RECOVERY_EVENT_TYPES_V3.CHECKOUT_UPDATED),
|
|
312
|
+
payload: CheckoutUpdatedPayloadV3Schema
|
|
313
|
+
}).strict();
|
|
314
|
+
|
|
315
|
+
// src/shopify/recovery-event.schema.ts
|
|
316
|
+
import { z as z12 } from "zod";
|
|
317
|
+
var ShopifyRecoveryEventSchema = z12.union([
|
|
318
|
+
ShopifyRecoveryEventV2Schema,
|
|
319
|
+
ShopifyCheckoutUpdatedEventV3Schema
|
|
320
|
+
]);
|
|
321
|
+
function parseShopifyRecoveryEvent(input) {
|
|
322
|
+
return ShopifyRecoveryEventSchema.parse(input);
|
|
323
|
+
}
|
|
324
|
+
function safeParseShopifyRecoveryEvent(input) {
|
|
325
|
+
return ShopifyRecoveryEventSchema.safeParse(input);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
// src/shopify/queue-contracts.ts
|
|
329
|
+
import { z as z13 } from "zod";
|
|
282
330
|
var SHOPIFY_WEBHOOK_QUEUE_CONTRACTS = {
|
|
283
331
|
CHECKOUT_EVENTS: {
|
|
284
332
|
queueName: "checkout-events",
|
|
@@ -315,15 +363,15 @@ var SHOPIFY_DISCOUNT_SYNC_WEBHOOK_TOPICS = [
|
|
|
315
363
|
"discounts/redeemcode_added",
|
|
316
364
|
"discounts/redeemcode_removed"
|
|
317
365
|
];
|
|
318
|
-
var ShopifyDiscountSyncReasonSchema =
|
|
319
|
-
var ShopifyDiscountSyncWebhookTopicSchema =
|
|
320
|
-
var ShopifyDiscountSyncJobSchema =
|
|
321
|
-
schemaVersion:
|
|
322
|
-
shopId:
|
|
323
|
-
shopDomain:
|
|
366
|
+
var ShopifyDiscountSyncReasonSchema = z13.enum(SHOPIFY_DISCOUNT_SYNC_REASONS);
|
|
367
|
+
var ShopifyDiscountSyncWebhookTopicSchema = z13.enum(SHOPIFY_DISCOUNT_SYNC_WEBHOOK_TOPICS);
|
|
368
|
+
var ShopifyDiscountSyncJobSchema = z13.object({
|
|
369
|
+
schemaVersion: z13.literal(1),
|
|
370
|
+
shopId: z13.string().trim().min(1).max(128),
|
|
371
|
+
shopDomain: z13.string().trim().min(1).max(512),
|
|
324
372
|
reason: ShopifyDiscountSyncReasonSchema,
|
|
325
|
-
requestedAt:
|
|
326
|
-
deliveryId:
|
|
373
|
+
requestedAt: z13.iso.datetime({ offset: true }),
|
|
374
|
+
deliveryId: z13.string().trim().min(1).nullable(),
|
|
327
375
|
webhookTopic: ShopifyDiscountSyncWebhookTopicSchema.nullable()
|
|
328
376
|
}).strict().superRefine((value, ctx) => {
|
|
329
377
|
if (value.reason === "DISCOUNT_WEBHOOK") {
|
|
@@ -361,9 +409,11 @@ function safeParseShopifyDiscountSyncJob(input) {
|
|
|
361
409
|
export {
|
|
362
410
|
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V1,
|
|
363
411
|
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V2,
|
|
412
|
+
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V3,
|
|
364
413
|
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION,
|
|
365
414
|
SHOPIFY_COMMERCE_EVENT_TYPES,
|
|
366
415
|
SHOPIFY_RECOVERY_EVENT_TYPES_V2,
|
|
416
|
+
SHOPIFY_RECOVERY_EVENT_TYPES_V3,
|
|
367
417
|
SHOPIFY_WEBHOOK_OUTBOX_DESTINATIONS,
|
|
368
418
|
MAX_URL_LENGTH,
|
|
369
419
|
MAX_LINE_ITEMS,
|
|
@@ -401,6 +451,11 @@ export {
|
|
|
401
451
|
createShopifyPendingRecoveryOrderingKey,
|
|
402
452
|
createShopifyCartActivityOrderingKey,
|
|
403
453
|
createShopifyOrderCorrelationOrderingKey,
|
|
454
|
+
CheckoutUpdatedPayloadV3Schema,
|
|
455
|
+
ShopifyCheckoutUpdatedEventV3Schema,
|
|
456
|
+
ShopifyRecoveryEventSchema,
|
|
457
|
+
parseShopifyRecoveryEvent,
|
|
458
|
+
safeParseShopifyRecoveryEvent,
|
|
404
459
|
SHOPIFY_WEBHOOK_QUEUE_CONTRACTS,
|
|
405
460
|
SHOPIFY_DISCOUNT_SYNC_REASONS,
|
|
406
461
|
SHOPIFY_DISCOUNT_SYNC_WEBHOOK_TOPICS,
|
|
@@ -410,4 +465,4 @@ export {
|
|
|
410
465
|
parseShopifyDiscountSyncJob,
|
|
411
466
|
safeParseShopifyDiscountSyncJob
|
|
412
467
|
};
|
|
413
|
-
//# sourceMappingURL=chunk-
|
|
468
|
+
//# sourceMappingURL=chunk-SU2DAOEC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/shopify/constants.ts","../src/shopify/common.schema.ts","../src/shopify/v1/checkout-observed.schema.ts","../src/shopify/v1/order-completed.schema.ts","../src/shopify/v1/commerce-event.schema.ts","../src/shopify/v2/checkout-created.schema.ts","../src/shopify/v2/checkout-updated.schema.ts","../src/shopify/v2/cart-activity.schema.ts","../src/shopify/v2/order-completed.schema.ts","../src/shopify/v2/recovery-event.schema.ts","../src/shopify/v3/checkout-updated.schema.ts","../src/shopify/v3/recovery-event.schema.ts","../src/shopify/recovery-event.schema.ts","../src/shopify/queue-contracts.ts"],"sourcesContent":["export const SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V1 = 1 as const;\nexport const SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V2 = 2 as const;\nexport const SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V3 = 3 as const;\n\n// Backward-compatible alias for existing v1 callers.\nexport const SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION =\n SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V1;\n\nexport const SHOPIFY_COMMERCE_EVENT_TYPES = {\n CHECKOUT_OBSERVED: \"checkout.observed\",\n ORDER_COMPLETED: \"order.completed\",\n} as const;\n\nexport const SHOPIFY_RECOVERY_EVENT_TYPES_V2 = {\n CART_ACTIVITY: \"cart.activity\",\n CHECKOUT_CREATED: \"checkout.created\",\n CHECKOUT_UPDATED: \"checkout.updated\",\n ORDER_COMPLETED: \"order.completed\",\n} as const;\n\nexport const SHOPIFY_RECOVERY_EVENT_TYPES_V3 = {\n CHECKOUT_UPDATED: \"checkout.updated\",\n} as const;\n\nexport const SHOPIFY_WEBHOOK_OUTBOX_DESTINATIONS = {\n CHECKOUT_EVENTS: \"CHECKOUT_EVENTS\",\n ORDER_EVENTS: \"ORDER_EVENTS\",\n} as const;\n","import { z } from \"zod\";\n\n/**\n * Reasonable upper bounds for externally controlled (Shopify-originated) strings.\n * These exist to keep queue messages small and predictable, not to validate business rules.\n */\nconst MAX_ID_LENGTH = 100;\nconst MAX_SHORT_TEXT_LENGTH = 320;\nconst MAX_TITLE_LENGTH = 500;\nconst MAX_URL_LENGTH = 2048;\nconst MAX_LINE_ITEMS = 250;\n\nconst decimalStringPattern = /^-?\\d+(\\.\\d+)?$/;\n\n/** Decimal amount encoded as a string; never a JS number to avoid float precision loss. */\nconst DecimalStringSchema = z\n .string()\n .min(1)\n .max(32)\n .regex(decimalStringPattern, \"must be a decimal string, e.g. \\\"12.34\\\"\");\n\nexport const ShopifyTenantSchema = z\n .object({\n shopId: z.string().min(1).max(MAX_ID_LENGTH),\n shopDomain: z\n .string()\n .min(1)\n .max(MAX_SHORT_TEXT_LENGTH)\n .toLowerCase()\n .trim(),\n })\n .strict();\n\nexport type ShopifyTenant = z.infer<typeof ShopifyTenantSchema>;\n\nexport const ShopifyCustomerReferenceSchema = z\n .object({\n shopifyCustomerId: z.string().min(1).max(MAX_ID_LENGTH).nullable(),\n email: z.string().email().max(MAX_SHORT_TEXT_LENGTH).nullable(),\n phone: z.string().min(1).max(64).nullable(),\n firstName: z.string().min(1).max(MAX_TITLE_LENGTH).nullable(),\n lastName: z.string().min(1).max(MAX_TITLE_LENGTH).nullable(),\n })\n .strict();\n\nexport type ShopifyCustomerReference = z.infer<typeof ShopifyCustomerReferenceSchema>;\n\nexport const ShopifyMoneySchema = z\n .object({\n amount: DecimalStringSchema,\n currencyCode: z\n .string()\n .regex(/^[A-Z]{3}$/, \"must be an uppercase three-letter currency code\"),\n })\n .strict();\n\nexport type ShopifyMoney = z.infer<typeof ShopifyMoneySchema>;\n\n/**\n * Fields limited to what checkout recovery and customer-facing basket context require.\n * Line-item arrays are bounded (see MAX_LINE_ITEMS) to prevent unexpectedly large queue messages.\n */\nexport const ShopifyCheckoutLineItemSchema = z\n .object({\n lineItemId: z.string().min(1).max(MAX_ID_LENGTH).nullable(),\n variantId: z.string().min(1).max(MAX_ID_LENGTH).nullable(),\n productId: z.string().min(1).max(MAX_ID_LENGTH).nullable(),\n title: z.string().min(1).max(MAX_TITLE_LENGTH),\n variantTitle: z.string().min(1).max(MAX_TITLE_LENGTH).nullable(),\n quantity: z.number().int().positive(),\n unitPrice: DecimalStringSchema.nullable(),\n sku: z.string().min(1).max(MAX_ID_LENGTH).nullable(),\n })\n .strict();\n\nexport type ShopifyCheckoutLineItem = z.infer<typeof ShopifyCheckoutLineItemSchema>;\n\nexport const ShopifyCheckoutLineItemsSchema = z\n .array(ShopifyCheckoutLineItemSchema)\n .max(MAX_LINE_ITEMS);\n\nexport { MAX_URL_LENGTH, MAX_LINE_ITEMS };\n","import { z } from \"zod\";\nimport {\n MAX_URL_LENGTH,\n ShopifyCheckoutLineItemsSchema,\n ShopifyCustomerReferenceSchema,\n ShopifyMoneySchema,\n} from \"../common.schema.js\";\n\nexport const CheckoutObservedPayloadSchema = z\n .object({\n checkoutToken: z.string().min(1),\n cartToken: z.string().min(1).nullable(),\n checkoutUrl: z.url().max(MAX_URL_LENGTH).nullable(),\n customer: ShopifyCustomerReferenceSchema.nullable(),\n total: ShopifyMoneySchema.nullable(),\n lineItems: ShopifyCheckoutLineItemsSchema,\n checkoutCreatedAt: z.iso.datetime().nullable(),\n checkoutUpdatedAt: z.iso.datetime().nullable(),\n completedAt: z.iso.datetime().nullable(),\n })\n .strict();\n\nexport type CheckoutObservedPayload = z.infer<typeof CheckoutObservedPayloadSchema>;\n","import { z } from \"zod\";\nimport { ShopifyMoneySchema } from \"../common.schema.js\";\n\nexport const OrderCompletedPayloadSchema = z\n .object({\n orderId: z.string().min(1),\n checkoutToken: z.string().min(1).nullable(),\n shopifyCustomerId: z.string().min(1).nullable(),\n total: ShopifyMoneySchema.nullable(),\n completedAt: z.iso.datetime(),\n })\n .strict();\n\nexport type OrderCompletedPayload = z.infer<typeof OrderCompletedPayloadSchema>;\n","import { z } from \"zod\";\nimport {\n SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION,\n SHOPIFY_COMMERCE_EVENT_TYPES,\n} from \"../constants.js\";\nimport { ShopifyTenantSchema } from \"../common.schema.js\";\nimport { CheckoutObservedPayloadSchema } from \"./checkout-observed.schema.js\";\nimport { OrderCompletedPayloadSchema } from \"./order-completed.schema.js\";\n\nconst ShopifyCommerceEventBaseSchema = z.object({\n schemaVersion: z.literal(SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION),\n receiptId: z.string().min(1),\n deliveryId: z.string().min(1),\n eventId: z.string().min(1).nullable(),\n source: z.literal(\"shopify\"),\n providerTopic: z.string().min(1),\n tenant: ShopifyTenantSchema,\n occurredAt: z.iso.datetime().nullable(),\n receivedAt: z.iso.datetime(),\n traceId: z.string().min(1),\n orderingKey: z.string().min(1),\n});\n\nexport const ShopifyCheckoutObservedEventSchema = ShopifyCommerceEventBaseSchema.extend({\n eventType: z.literal(SHOPIFY_COMMERCE_EVENT_TYPES.CHECKOUT_OBSERVED),\n payload: CheckoutObservedPayloadSchema,\n}).strict();\n\nexport type ShopifyCheckoutObservedEvent = z.infer<\n typeof ShopifyCheckoutObservedEventSchema\n>;\n\nexport const ShopifyOrderCompletedEventSchema = ShopifyCommerceEventBaseSchema.extend({\n eventType: z.literal(SHOPIFY_COMMERCE_EVENT_TYPES.ORDER_COMPLETED),\n payload: OrderCompletedPayloadSchema,\n}).strict();\n\nexport type ShopifyOrderCompletedEvent = z.infer<\n typeof ShopifyOrderCompletedEventSchema\n>;\n\nexport const ShopifyCommerceEventSchema = z.discriminatedUnion(\"eventType\", [\n ShopifyCheckoutObservedEventSchema,\n ShopifyOrderCompletedEventSchema,\n]);\n\nexport type ShopifyCommerceEvent = z.infer<typeof ShopifyCommerceEventSchema>;\nexport type ShopifyCommerceEventType = ShopifyCommerceEvent[\"eventType\"];\n\nexport function parseShopifyCommerceEvent(input: unknown): ShopifyCommerceEvent {\n return ShopifyCommerceEventSchema.parse(input);\n}\n\nexport function safeParseShopifyCommerceEvent(input: unknown) {\n return ShopifyCommerceEventSchema.safeParse(input);\n}\n\nexport function isCheckoutObservedEvent(\n event: ShopifyCommerceEvent,\n): event is ShopifyCheckoutObservedEvent {\n return event.eventType === SHOPIFY_COMMERCE_EVENT_TYPES.CHECKOUT_OBSERVED;\n}\n\nexport function isOrderCompletedEvent(\n event: ShopifyCommerceEvent,\n): event is ShopifyOrderCompletedEvent {\n return event.eventType === SHOPIFY_COMMERCE_EVENT_TYPES.ORDER_COMPLETED;\n}\n\n/**\n * Stable ordering key for a shop/checkout pair.\n * Checkout and order events for the same checkout must share this key, so\n * deliveryId is intentionally excluded.\n */\nexport function createShopifyCommerceOrderingKey(\n shopId: string,\n checkoutToken: string,\n): string {\n if (typeof shopId !== \"string\" || shopId.length === 0) {\n throw new Error(\n \"createShopifyCommerceOrderingKey: shopId must be a non-empty string\",\n );\n }\n\n if (typeof checkoutToken !== \"string\" || checkoutToken.length === 0) {\n throw new Error(\n \"createShopifyCommerceOrderingKey: checkoutToken must be a non-empty string\",\n );\n }\n\n return `${shopId}:${checkoutToken}`;\n}\n\nexport function createShopifyOrderOrderingKey(\n shopId: string,\n orderId: string,\n): string {\n if (typeof shopId !== \"string\" || shopId.length === 0) {\n throw new Error(\n \"createShopifyOrderOrderingKey: shopId must be a non-empty string\",\n );\n }\n\n if (typeof orderId !== \"string\" || orderId.length === 0) {\n throw new Error(\n \"createShopifyOrderOrderingKey: orderId must be a non-empty string\",\n );\n }\n\n return `${shopId}:${orderId}`;\n}","import { z } from \"zod\";\nimport { MAX_URL_LENGTH } from \"../common.schema.js\";\n\nexport const CheckoutCreatedPayloadV2Schema = z\n .object({\n checkoutToken: z.string().min(1),\n cartToken: z.string().min(1).nullable(),\n abandonedCheckoutUrl: z.url().max(MAX_URL_LENGTH).nullable(),\n checkoutCreatedAt: z.iso.datetime().nullable(),\n })\n .strict();\n\nexport type CheckoutCreatedPayloadV2 = z.infer<\n typeof CheckoutCreatedPayloadV2Schema\n>;\n","import { z } from \"zod\";\n\nexport const CheckoutUpdatedPayloadV2Schema = z\n .object({\n checkoutToken: z.string().min(1),\n })\n .strict();\n\nexport type CheckoutUpdatedPayloadV2 = z.infer<\n typeof CheckoutUpdatedPayloadV2Schema\n>;\n","import { z } from \"zod\";\n\nexport const ShopifyCartActivityPayloadV2Schema = z\n .object({\n cartToken: z.string().min(1),\n isEmpty: z.boolean().nullable(),\n })\n .strict();\n\nexport type ShopifyCartActivityPayloadV2 = z.infer<\n typeof ShopifyCartActivityPayloadV2Schema\n>;","import { z } from \"zod\";\n\nexport const OrderCompletedPayloadV2Schema = z\n .object({\n orderId: z.string().min(1),\n checkoutToken: z.string().min(1).nullable(),\n cartToken: z.string().min(1).nullable(),\n completedAt: z.iso.datetime(),\n })\n .strict();\n\nexport type OrderCompletedPayloadV2 = z.infer<typeof OrderCompletedPayloadV2Schema>;\n","import { z } from \"zod\";\nimport {\n SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V2,\n SHOPIFY_RECOVERY_EVENT_TYPES_V2,\n} from \"../constants.js\";\nimport { ShopifyTenantSchema } from \"../common.schema.js\";\nimport { InternationalContextSchema } from \"../../internationalization.js\";\nimport { CheckoutCreatedPayloadV2Schema } from \"./checkout-created.schema.js\";\nimport { CheckoutUpdatedPayloadV2Schema } from \"./checkout-updated.schema.js\";\nimport { OrderCompletedPayloadV2Schema } from \"./order-completed.schema.js\";\nimport { ShopifyCartActivityPayloadV2Schema } from \"./cart-activity.schema.js\";\n\nconst ShopifyRecoveryEventBaseV2Schema = z\n .object({\n schemaVersion: z.literal(SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V2),\n receiptId: z.string().min(1),\n deliveryId: z.string().min(1),\n eventId: z.string().min(1).nullable(),\n source: z.literal(\"shopify\"),\n providerTopic: z.string().min(1),\n tenant: ShopifyTenantSchema,\n occurredAt: z.iso.datetime().nullable(),\n receivedAt: z.iso.datetime(),\n traceId: z.string().min(1),\n orderingKey: z.string().min(1),\n internationalContext: InternationalContextSchema.optional(),\n })\n .strict();\n\nexport const ShopifyCheckoutCreatedEventV2Schema =\n ShopifyRecoveryEventBaseV2Schema.extend({\n eventType: z.literal(SHOPIFY_RECOVERY_EVENT_TYPES_V2.CHECKOUT_CREATED),\n payload: CheckoutCreatedPayloadV2Schema,\n }).strict();\n\nexport type ShopifyCheckoutCreatedEventV2 = z.infer<\n typeof ShopifyCheckoutCreatedEventV2Schema\n>;\n\nexport const ShopifyCartActivityEventV2Schema =\n ShopifyRecoveryEventBaseV2Schema.extend({\n eventType: z.literal(SHOPIFY_RECOVERY_EVENT_TYPES_V2.CART_ACTIVITY),\n payload: ShopifyCartActivityPayloadV2Schema,\n }).strict();\n\nexport type ShopifyCartActivityEventV2 = z.infer<\n typeof ShopifyCartActivityEventV2Schema\n>;\n\nexport const ShopifyCheckoutUpdatedEventV2Schema =\n ShopifyRecoveryEventBaseV2Schema.extend({\n eventType: z.literal(SHOPIFY_RECOVERY_EVENT_TYPES_V2.CHECKOUT_UPDATED),\n payload: CheckoutUpdatedPayloadV2Schema,\n }).strict();\n\nexport type ShopifyCheckoutUpdatedEventV2 = z.infer<\n typeof ShopifyCheckoutUpdatedEventV2Schema\n>;\n\nexport const ShopifyOrderCompletedEventV2Schema =\n ShopifyRecoveryEventBaseV2Schema.extend({\n eventType: z.literal(SHOPIFY_RECOVERY_EVENT_TYPES_V2.ORDER_COMPLETED),\n payload: OrderCompletedPayloadV2Schema,\n }).strict();\n\nexport type ShopifyOrderCompletedEventV2 = z.infer<\n typeof ShopifyOrderCompletedEventV2Schema\n>;\n\nexport const ShopifyRecoveryEventV2Schema = z.discriminatedUnion(\"eventType\", [\n ShopifyCartActivityEventV2Schema,\n ShopifyCheckoutCreatedEventV2Schema,\n ShopifyCheckoutUpdatedEventV2Schema,\n ShopifyOrderCompletedEventV2Schema,\n]);\n\nexport type ShopifyRecoveryEventV2 = z.infer<typeof ShopifyRecoveryEventV2Schema>;\nexport type ShopifyRecoveryEventTypeV2 = ShopifyRecoveryEventV2[\"eventType\"];\n\nexport function parseShopifyRecoveryEventV2(input: unknown): ShopifyRecoveryEventV2 {\n return ShopifyRecoveryEventV2Schema.parse(input);\n}\n\nexport function safeParseShopifyRecoveryEventV2(input: unknown) {\n return ShopifyRecoveryEventV2Schema.safeParse(input);\n}\n\nexport function isCheckoutCreatedEventV2(\n event: ShopifyRecoveryEventV2,\n): event is ShopifyCheckoutCreatedEventV2 {\n return event.eventType === SHOPIFY_RECOVERY_EVENT_TYPES_V2.CHECKOUT_CREATED;\n}\n\nexport function isCartActivityEventV2(\n event: ShopifyRecoveryEventV2,\n): event is ShopifyCartActivityEventV2 {\n return event.eventType === SHOPIFY_RECOVERY_EVENT_TYPES_V2.CART_ACTIVITY;\n}\n\nexport function isCheckoutUpdatedEventV2(\n event: ShopifyRecoveryEventV2,\n): event is ShopifyCheckoutUpdatedEventV2 {\n return event.eventType === SHOPIFY_RECOVERY_EVENT_TYPES_V2.CHECKOUT_UPDATED;\n}\n\nexport function isOrderCompletedEventV2(\n event: ShopifyRecoveryEventV2,\n): event is ShopifyOrderCompletedEventV2 {\n return event.eventType === SHOPIFY_RECOVERY_EVENT_TYPES_V2.ORDER_COMPLETED;\n}\n\nexport function createShopifyPendingRecoveryOrderingKey(\n shopId: string,\n checkoutToken: string,\n): string {\n if (typeof shopId !== \"string\" || shopId.length === 0) {\n throw new Error(\n \"createShopifyPendingRecoveryOrderingKey: shopId must be a non-empty string\",\n );\n }\n\n if (typeof checkoutToken !== \"string\" || checkoutToken.length === 0) {\n throw new Error(\n \"createShopifyPendingRecoveryOrderingKey: checkoutToken must be a non-empty string\",\n );\n }\n\n return `${shopId}:${checkoutToken}`;\n}\n\nexport function createShopifyCartActivityOrderingKey(\n shopId: string,\n cartToken: string,\n): string {\n if (typeof shopId !== \"string\" || shopId.length === 0) {\n throw new Error(\n \"createShopifyCartActivityOrderingKey: shopId must be a non-empty string\",\n );\n }\n\n if (typeof cartToken !== \"string\" || cartToken.length === 0) {\n throw new Error(\n \"createShopifyCartActivityOrderingKey: cartToken must be a non-empty string\",\n );\n }\n\n return `cart:${shopId.length}:${shopId}:${cartToken.length}:${cartToken}`;\n}\n\nexport function createShopifyOrderCorrelationOrderingKey(input: {\n shopId: string;\n orderId: string;\n checkoutToken: string | null;\n}): string {\n if (input.checkoutToken) {\n return createShopifyPendingRecoveryOrderingKey(input.shopId, input.checkoutToken);\n }\n\n if (typeof input.orderId !== \"string\" || input.orderId.length === 0) {\n throw new Error(\n \"createShopifyOrderCorrelationOrderingKey: orderId must be a non-empty string\",\n );\n }\n\n if (typeof input.shopId !== \"string\" || input.shopId.length === 0) {\n throw new Error(\n \"createShopifyOrderCorrelationOrderingKey: shopId must be a non-empty string\",\n );\n }\n\n return `${input.shopId}:${input.orderId}`;\n}\n","import { z } from \"zod\";\nimport { MAX_URL_LENGTH } from \"../common.schema.js\";\n\nconst MAX_CART_TOKEN_LENGTH = 100;\n\nexport const CheckoutUpdatedPayloadV3Schema = z\n .object({\n checkoutToken: z.string().min(1),\n cartToken: z.string().min(1).max(MAX_CART_TOKEN_LENGTH).nullable().optional(),\n checkoutCreatedAt: z.iso.datetime().nullable().optional(),\n abandonedCheckoutUrl: z.url().max(MAX_URL_LENGTH).nullable().optional(),\n })\n .strict();\n\nexport type CheckoutUpdatedPayloadV3 = z.infer<\n typeof CheckoutUpdatedPayloadV3Schema\n>;","import { z } from \"zod\";\nimport {\n SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V3,\n SHOPIFY_RECOVERY_EVENT_TYPES_V3,\n} from \"../constants.js\";\nimport { ShopifyTenantSchema } from \"../common.schema.js\";\nimport { InternationalContextSchema } from \"../../internationalization.js\";\nimport { CheckoutUpdatedPayloadV3Schema } from \"./checkout-updated.schema.js\";\n\nconst ShopifyRecoveryEventBaseV3Schema = z\n .object({\n schemaVersion: z.literal(SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V3),\n receiptId: z.string().min(1),\n deliveryId: z.string().min(1),\n eventId: z.string().min(1).nullable(),\n source: z.literal(\"shopify\"),\n providerTopic: z.string().min(1),\n tenant: ShopifyTenantSchema,\n occurredAt: z.iso.datetime().nullable(),\n receivedAt: z.iso.datetime(),\n traceId: z.string().min(1),\n orderingKey: z.string().min(1),\n internationalContext: InternationalContextSchema.optional(),\n })\n .strict();\n\nexport const ShopifyCheckoutUpdatedEventV3Schema =\n ShopifyRecoveryEventBaseV3Schema.extend({\n eventType: z.literal(SHOPIFY_RECOVERY_EVENT_TYPES_V3.CHECKOUT_UPDATED),\n payload: CheckoutUpdatedPayloadV3Schema,\n }).strict();\n\nexport type ShopifyCheckoutUpdatedEventV3 = z.infer<\n typeof ShopifyCheckoutUpdatedEventV3Schema\n>;\n","import { z } from \"zod\";\nimport {\n ShopifyRecoveryEventV2Schema,\n type ShopifyRecoveryEventV2,\n} from \"./v2/recovery-event.schema.js\";\nimport {\n ShopifyCheckoutUpdatedEventV3Schema,\n type ShopifyCheckoutUpdatedEventV3,\n} from \"./v3/recovery-event.schema.js\";\n\nexport const ShopifyRecoveryEventSchema = z.union([\n ShopifyRecoveryEventV2Schema,\n ShopifyCheckoutUpdatedEventV3Schema,\n]);\n\nexport type ShopifyRecoveryEvent =\n | ShopifyRecoveryEventV2\n | ShopifyCheckoutUpdatedEventV3;\n\nexport function parseShopifyRecoveryEvent(input: unknown): ShopifyRecoveryEvent {\n return ShopifyRecoveryEventSchema.parse(input);\n}\n\nexport function safeParseShopifyRecoveryEvent(input: unknown) {\n return ShopifyRecoveryEventSchema.safeParse(input);\n}","import { z } from \"zod\";\n\nexport const SHOPIFY_WEBHOOK_QUEUE_CONTRACTS = {\n CHECKOUT_EVENTS: {\n queueName: \"checkout-events\",\n jobName: \"checkout-created\",\n },\n CHECKOUT_UPDATED_EVENTS: {\n queueName: \"checkout-events\",\n jobName: \"checkout-updated\",\n },\n CART_ACTIVITY_EVENTS: {\n queueName: \"checkout-events\",\n jobName: \"cart-activity\",\n },\n ORDER_EVENTS: {\n queueName: \"order-events\",\n jobName: \"order-completed\",\n },\n SHOPIFY_DISCOUNT_SYNC: {\n queueName: \"shopify-discount-sync\",\n jobName: \"reconcile-shopify-discounts\",\n },\n} as const;\n\nexport const SHOPIFY_DISCOUNT_SYNC_REASONS = [\n \"SUBSCRIPTION_ACTIVATED\",\n \"REINSTALL_RECONCILED\",\n \"SCOPES_UPDATED\",\n \"ADMIN_REQUESTED\",\n \"DISCOUNT_WEBHOOK\",\n] as const;\n\nexport const SHOPIFY_DISCOUNT_SYNC_WEBHOOK_TOPICS = [\n \"discounts/create\",\n \"discounts/update\",\n \"discounts/delete\",\n \"discounts/redeemcode_added\",\n \"discounts/redeemcode_removed\",\n] as const;\n\nexport const ShopifyDiscountSyncReasonSchema = z.enum(SHOPIFY_DISCOUNT_SYNC_REASONS);\nexport const ShopifyDiscountSyncWebhookTopicSchema = z.enum(SHOPIFY_DISCOUNT_SYNC_WEBHOOK_TOPICS);\n\nexport const ShopifyDiscountSyncJobSchema = z\n .object({\n schemaVersion: z.literal(1),\n shopId: z.string().trim().min(1).max(128),\n shopDomain: z.string().trim().min(1).max(512),\n reason: ShopifyDiscountSyncReasonSchema,\n requestedAt: z.iso.datetime({ offset: true }),\n deliveryId: z.string().trim().min(1).nullable(),\n webhookTopic: ShopifyDiscountSyncWebhookTopicSchema.nullable(),\n })\n .strict()\n .superRefine((value, ctx) => {\n if (value.reason === \"DISCOUNT_WEBHOOK\") {\n if (!value.deliveryId || value.deliveryId.trim().length === 0) {\n ctx.addIssue({\n code: \"custom\",\n path: [\"deliveryId\"],\n message: \"deliveryId is required when reason is DISCOUNT_WEBHOOK\",\n });\n }\n\n if (value.webhookTopic === null) {\n ctx.addIssue({\n code: \"custom\",\n path: [\"webhookTopic\"],\n message: \"webhookTopic is required when reason is DISCOUNT_WEBHOOK\",\n });\n }\n } else {\n if (value.webhookTopic !== null) {\n ctx.addIssue({\n code: \"custom\",\n path: [\"webhookTopic\"],\n message: \"webhookTopic must be null when reason is not DISCOUNT_WEBHOOK\",\n });\n }\n }\n });\n\nexport type ShopifyDiscountSyncJob = z.infer<typeof ShopifyDiscountSyncJobSchema>;\n\nexport function parseShopifyDiscountSyncJob(input: unknown): ShopifyDiscountSyncJob {\n return ShopifyDiscountSyncJobSchema.parse(input);\n}\n\nexport function safeParseShopifyDiscountSyncJob(input: unknown) {\n return ShopifyDiscountSyncJobSchema.safeParse(input);\n}\n"],"mappings":";;;;;AAAO,IAAM,2CAA2C;AACjD,IAAM,2CAA2C;AACjD,IAAM,2CAA2C;AAGjD,IAAM,wCACX;AAEK,IAAM,+BAA+B;AAAA,EAC1C,mBAAmB;AAAA,EACnB,iBAAiB;AACnB;AAEO,IAAM,kCAAkC;AAAA,EAC7C,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,iBAAiB;AACnB;AAEO,IAAM,kCAAkC;AAAA,EAC7C,kBAAkB;AACpB;AAEO,IAAM,sCAAsC;AAAA,EACjD,iBAAiB;AAAA,EACjB,cAAc;AAChB;;;AC3BA,SAAS,SAAS;AAMlB,IAAM,gBAAgB;AACtB,IAAM,wBAAwB;AAC9B,IAAM,mBAAmB;AACzB,IAAM,iBAAiB;AACvB,IAAM,iBAAiB;AAEvB,IAAM,uBAAuB;AAG7B,IAAM,sBAAsB,EACzB,OAAO,EACP,IAAI,CAAC,EACL,IAAI,EAAE,EACN,MAAM,sBAAsB,wCAA0C;AAElE,IAAM,sBAAsB,EAChC,OAAO;AAAA,EACN,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,aAAa;AAAA,EAC3C,YAAY,EACT,OAAO,EACP,IAAI,CAAC,EACL,IAAI,qBAAqB,EACzB,YAAY,EACZ,KAAK;AACV,CAAC,EACA,OAAO;AAIH,IAAM,iCAAiC,EAC3C,OAAO;AAAA,EACN,mBAAmB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,aAAa,EAAE,SAAS;AAAA,EACjE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,qBAAqB,EAAE,SAAS;AAAA,EAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,EAC1C,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,gBAAgB,EAAE,SAAS;AAAA,EAC5D,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,gBAAgB,EAAE,SAAS;AAC7D,CAAC,EACA,OAAO;AAIH,IAAM,qBAAqB,EAC/B,OAAO;AAAA,EACN,QAAQ;AAAA,EACR,cAAc,EACX,OAAO,EACP,MAAM,cAAc,iDAAiD;AAC1E,CAAC,EACA,OAAO;AAQH,IAAM,gCAAgC,EAC1C,OAAO;AAAA,EACN,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,aAAa,EAAE,SAAS;AAAA,EAC1D,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,aAAa,EAAE,SAAS;AAAA,EACzD,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,aAAa,EAAE,SAAS;AAAA,EACzD,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,gBAAgB;AAAA,EAC7C,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,gBAAgB,EAAE,SAAS;AAAA,EAC/D,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACpC,WAAW,oBAAoB,SAAS;AAAA,EACxC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,aAAa,EAAE,SAAS;AACrD,CAAC,EACA,OAAO;AAIH,IAAM,iCAAiC,EAC3C,MAAM,6BAA6B,EACnC,IAAI,cAAc;;;AC/ErB,SAAS,KAAAA,UAAS;AAQX,IAAM,gCAAgCC,GAC1C,OAAO;AAAA,EACN,eAAeA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC/B,WAAWA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACtC,aAAaA,GAAE,IAAI,EAAE,IAAI,cAAc,EAAE,SAAS;AAAA,EAClD,UAAU,+BAA+B,SAAS;AAAA,EAClD,OAAO,mBAAmB,SAAS;AAAA,EACnC,WAAW;AAAA,EACX,mBAAmBA,GAAE,IAAI,SAAS,EAAE,SAAS;AAAA,EAC7C,mBAAmBA,GAAE,IAAI,SAAS,EAAE,SAAS;AAAA,EAC7C,aAAaA,GAAE,IAAI,SAAS,EAAE,SAAS;AACzC,CAAC,EACA,OAAO;;;ACpBV,SAAS,KAAAC,UAAS;AAGX,IAAM,8BAA8BC,GACxC,OAAO;AAAA,EACN,SAASA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACzB,eAAeA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC1C,mBAAmBA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC9C,OAAO,mBAAmB,SAAS;AAAA,EACnC,aAAaA,GAAE,IAAI,SAAS;AAC9B,CAAC,EACA,OAAO;;;ACXV,SAAS,KAAAC,UAAS;AASlB,IAAM,iCAAiCC,GAAE,OAAO;AAAA,EAC9C,eAAeA,GAAE,QAAQ,qCAAqC;AAAA,EAC9D,WAAWA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC3B,YAAYA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC5B,SAASA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACpC,QAAQA,GAAE,QAAQ,SAAS;AAAA,EAC3B,eAAeA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC/B,QAAQ;AAAA,EACR,YAAYA,GAAE,IAAI,SAAS,EAAE,SAAS;AAAA,EACtC,YAAYA,GAAE,IAAI,SAAS;AAAA,EAC3B,SAASA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACzB,aAAaA,GAAE,OAAO,EAAE,IAAI,CAAC;AAC/B,CAAC;AAEM,IAAM,qCAAqC,+BAA+B,OAAO;AAAA,EACtF,WAAWA,GAAE,QAAQ,6BAA6B,iBAAiB;AAAA,EACnE,SAAS;AACX,CAAC,EAAE,OAAO;AAMH,IAAM,mCAAmC,+BAA+B,OAAO;AAAA,EACpF,WAAWA,GAAE,QAAQ,6BAA6B,eAAe;AAAA,EACjE,SAAS;AACX,CAAC,EAAE,OAAO;AAMH,IAAM,6BAA6BA,GAAE,mBAAmB,aAAa;AAAA,EAC1E;AAAA,EACA;AACF,CAAC;AAKM,SAAS,0BAA0B,OAAsC;AAC9E,SAAO,2BAA2B,MAAM,KAAK;AAC/C;AAEO,SAAS,8BAA8B,OAAgB;AAC5D,SAAO,2BAA2B,UAAU,KAAK;AACnD;AAEO,SAAS,wBACd,OACuC;AACvC,SAAO,MAAM,cAAc,6BAA6B;AAC1D;AAEO,SAAS,sBACd,OACqC;AACrC,SAAO,MAAM,cAAc,6BAA6B;AAC1D;AAOO,SAAS,iCACd,QACA,eACQ;AACR,MAAI,OAAO,WAAW,YAAY,OAAO,WAAW,GAAG;AACrD,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO,kBAAkB,YAAY,cAAc,WAAW,GAAG;AACnE,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO,GAAG,MAAM,IAAI,aAAa;AACnC;AAEO,SAAS,8BACd,QACA,SACQ;AACR,MAAI,OAAO,WAAW,YAAY,OAAO,WAAW,GAAG;AACrD,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO,YAAY,YAAY,QAAQ,WAAW,GAAG;AACvD,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO,GAAG,MAAM,IAAI,OAAO;AAC7B;;;AC9GA,SAAS,KAAAC,UAAS;AAGX,IAAM,iCAAiCC,GAC3C,OAAO;AAAA,EACN,eAAeA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC/B,WAAWA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACtC,sBAAsBA,GAAE,IAAI,EAAE,IAAI,cAAc,EAAE,SAAS;AAAA,EAC3D,mBAAmBA,GAAE,IAAI,SAAS,EAAE,SAAS;AAC/C,CAAC,EACA,OAAO;;;ACVV,SAAS,KAAAC,UAAS;AAEX,IAAM,iCAAiCA,GAC3C,OAAO;AAAA,EACN,eAAeA,GAAE,OAAO,EAAE,IAAI,CAAC;AACjC,CAAC,EACA,OAAO;;;ACNV,SAAS,KAAAC,UAAS;AAEX,IAAM,qCAAqCA,GAC/C,OAAO;AAAA,EACN,WAAWA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC3B,SAASA,GAAE,QAAQ,EAAE,SAAS;AAChC,CAAC,EACA,OAAO;;;ACPV,SAAS,KAAAC,UAAS;AAEX,IAAM,gCAAgCA,GAC1C,OAAO;AAAA,EACN,SAASA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACzB,eAAeA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC1C,WAAWA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACtC,aAAaA,GAAE,IAAI,SAAS;AAC9B,CAAC,EACA,OAAO;;;ACTV,SAAS,KAAAC,UAAS;AAYlB,IAAM,mCAAmCC,GACtC,OAAO;AAAA,EACN,eAAeA,GAAE,QAAQ,wCAAwC;AAAA,EACjE,WAAWA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC3B,YAAYA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC5B,SAASA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACpC,QAAQA,GAAE,QAAQ,SAAS;AAAA,EAC3B,eAAeA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC/B,QAAQ;AAAA,EACR,YAAYA,GAAE,IAAI,SAAS,EAAE,SAAS;AAAA,EACtC,YAAYA,GAAE,IAAI,SAAS;AAAA,EAC3B,SAASA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACzB,aAAaA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC7B,sBAAsB,2BAA2B,SAAS;AAC5D,CAAC,EACA,OAAO;AAEH,IAAM,sCACX,iCAAiC,OAAO;AAAA,EACtC,WAAWA,GAAE,QAAQ,gCAAgC,gBAAgB;AAAA,EACrE,SAAS;AACX,CAAC,EAAE,OAAO;AAML,IAAM,mCACX,iCAAiC,OAAO;AAAA,EACtC,WAAWA,GAAE,QAAQ,gCAAgC,aAAa;AAAA,EAClE,SAAS;AACX,CAAC,EAAE,OAAO;AAML,IAAM,sCACX,iCAAiC,OAAO;AAAA,EACtC,WAAWA,GAAE,QAAQ,gCAAgC,gBAAgB;AAAA,EACrE,SAAS;AACX,CAAC,EAAE,OAAO;AAML,IAAM,qCACX,iCAAiC,OAAO;AAAA,EACtC,WAAWA,GAAE,QAAQ,gCAAgC,eAAe;AAAA,EACpE,SAAS;AACX,CAAC,EAAE,OAAO;AAML,IAAM,+BAA+BA,GAAE,mBAAmB,aAAa;AAAA,EAC5E;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAKM,SAAS,4BAA4B,OAAwC;AAClF,SAAO,6BAA6B,MAAM,KAAK;AACjD;AAEO,SAAS,gCAAgC,OAAgB;AAC9D,SAAO,6BAA6B,UAAU,KAAK;AACrD;AAEO,SAAS,yBACd,OACwC;AACxC,SAAO,MAAM,cAAc,gCAAgC;AAC7D;AAEO,SAAS,sBACd,OACqC;AACrC,SAAO,MAAM,cAAc,gCAAgC;AAC7D;AAEO,SAAS,yBACd,OACwC;AACxC,SAAO,MAAM,cAAc,gCAAgC;AAC7D;AAEO,SAAS,wBACd,OACuC;AACvC,SAAO,MAAM,cAAc,gCAAgC;AAC7D;AAEO,SAAS,wCACd,QACA,eACQ;AACR,MAAI,OAAO,WAAW,YAAY,OAAO,WAAW,GAAG;AACrD,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO,kBAAkB,YAAY,cAAc,WAAW,GAAG;AACnE,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO,GAAG,MAAM,IAAI,aAAa;AACnC;AAEO,SAAS,qCACd,QACA,WACQ;AACR,MAAI,OAAO,WAAW,YAAY,OAAO,WAAW,GAAG;AACrD,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO,cAAc,YAAY,UAAU,WAAW,GAAG;AAC3D,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO,QAAQ,OAAO,MAAM,IAAI,MAAM,IAAI,UAAU,MAAM,IAAI,SAAS;AACzE;AAEO,SAAS,yCAAyC,OAI9C;AACT,MAAI,MAAM,eAAe;AACvB,WAAO,wCAAwC,MAAM,QAAQ,MAAM,aAAa;AAAA,EAClF;AAEA,MAAI,OAAO,MAAM,YAAY,YAAY,MAAM,QAAQ,WAAW,GAAG;AACnE,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO,MAAM,WAAW,YAAY,MAAM,OAAO,WAAW,GAAG;AACjE,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO,GAAG,MAAM,MAAM,IAAI,MAAM,OAAO;AACzC;;;AC3KA,SAAS,KAAAC,WAAS;AAGlB,IAAM,wBAAwB;AAEvB,IAAM,iCAAiCC,IAC3C,OAAO;AAAA,EACN,eAAeA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC/B,WAAWA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,qBAAqB,EAAE,SAAS,EAAE,SAAS;AAAA,EAC5E,mBAAmBA,IAAE,IAAI,SAAS,EAAE,SAAS,EAAE,SAAS;AAAA,EACxD,sBAAsBA,IAAE,IAAI,EAAE,IAAI,cAAc,EAAE,SAAS,EAAE,SAAS;AACxE,CAAC,EACA,OAAO;;;ACZV,SAAS,KAAAC,WAAS;AASlB,IAAM,mCAAmCC,IACtC,OAAO;AAAA,EACN,eAAeA,IAAE,QAAQ,wCAAwC;AAAA,EACjE,WAAWA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC3B,YAAYA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC5B,SAASA,IAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACpC,QAAQA,IAAE,QAAQ,SAAS;AAAA,EAC3B,eAAeA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC/B,QAAQ;AAAA,EACR,YAAYA,IAAE,IAAI,SAAS,EAAE,SAAS;AAAA,EACtC,YAAYA,IAAE,IAAI,SAAS;AAAA,EAC3B,SAASA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACzB,aAAaA,IAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC7B,sBAAsB,2BAA2B,SAAS;AAC5D,CAAC,EACA,OAAO;AAEH,IAAM,sCACX,iCAAiC,OAAO;AAAA,EACtC,WAAWA,IAAE,QAAQ,gCAAgC,gBAAgB;AAAA,EACrE,SAAS;AACX,CAAC,EAAE,OAAO;;;AC9BZ,SAAS,KAAAC,WAAS;AAUX,IAAM,6BAA6BC,IAAE,MAAM;AAAA,EAChD;AAAA,EACA;AACF,CAAC;AAMM,SAAS,0BAA0B,OAAsC;AAC9E,SAAO,2BAA2B,MAAM,KAAK;AAC/C;AAEO,SAAS,8BAA8B,OAAgB;AAC5D,SAAO,2BAA2B,UAAU,KAAK;AACnD;;;ACzBA,SAAS,KAAAC,WAAS;AAEX,IAAM,kCAAkC;AAAA,EAC7C,iBAAiB;AAAA,IACf,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AAAA,EACA,yBAAyB;AAAA,IACvB,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AAAA,EACA,sBAAsB;AAAA,IACpB,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AAAA,EACA,cAAc;AAAA,IACZ,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AAAA,EACA,uBAAuB;AAAA,IACrB,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AACF;AAEO,IAAM,gCAAgC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,uCAAuC;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,kCAAkCA,IAAE,KAAK,6BAA6B;AAC5E,IAAM,wCAAwCA,IAAE,KAAK,oCAAoC;AAEzF,IAAM,+BAA+BA,IACzC,OAAO;AAAA,EACN,eAAeA,IAAE,QAAQ,CAAC;AAAA,EAC1B,QAAQA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACxC,YAAYA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC5C,QAAQ;AAAA,EACR,aAAaA,IAAE,IAAI,SAAS,EAAE,QAAQ,KAAK,CAAC;AAAA,EAC5C,YAAYA,IAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC9C,cAAc,sCAAsC,SAAS;AAC/D,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,QAAQ;AAC3B,MAAI,MAAM,WAAW,oBAAoB;AACvC,QAAI,CAAC,MAAM,cAAc,MAAM,WAAW,KAAK,EAAE,WAAW,GAAG;AAC7D,UAAI,SAAS;AAAA,QACX,MAAM;AAAA,QACN,MAAM,CAAC,YAAY;AAAA,QACnB,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAEA,QAAI,MAAM,iBAAiB,MAAM;AAC/B,UAAI,SAAS;AAAA,QACX,MAAM;AAAA,QACN,MAAM,CAAC,cAAc;AAAA,QACrB,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF,OAAO;AACL,QAAI,MAAM,iBAAiB,MAAM;AAC/B,UAAI,SAAS;AAAA,QACX,MAAM;AAAA,QACN,MAAM,CAAC,cAAc;AAAA,QACrB,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF;AACF,CAAC;AAII,SAAS,4BAA4B,OAAwC;AAClF,SAAO,6BAA6B,MAAM,KAAK;AACjD;AAEO,SAAS,gCAAgC,OAAgB;AAC9D,SAAO,6BAA6B,UAAU,KAAK;AACrD;","names":["z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ export { CatalogueValidationOptions, CountryCode, CountryCodeSchema, CurrencyCod
|
|
|
2
2
|
export { APP_PRICING_BILLING_PERIOD_DRAIN_WINDOW_MS, ARCH007_BILLING_CONTRACT_SCHEMA_VERSION, BILLING_PLAN_KINDS, BILLING_SUBSCRIPTION_RECONCILE_JOB_NAME, BILLING_SUBSCRIPTION_RECONCILE_QUEUE_NAME, BILLING_SUBSCRIPTION_RECONCILE_SCHEMA_VERSION, BILLING_SYSTEM_MESSAGE_CODES, BILLING_USAGE_METRICS, BillingPlanKind, BillingPlanKindSchema, BillingSubscriptionReconcileJob, BillingSubscriptionReconcileJobSchema, BillingSystemMessageCode, BillingSystemMessageCodeSchema, BillingUsageMetric, BillingUsageMetricSchema, NormalizedWhatsAppStatus, NormalizedWhatsAppStatusSchema, NormalizedWhatsAppStatusV2, NormalizedWhatsAppStatusV2Schema, NormalizedWhatsAppStatusV3, NormalizedWhatsAppStatusV3Schema, PurchasedRecoveryCreditCounterSnapshot, ShopifyCurrentProviderContext, ShopifyProviderContextIdentityInput, ShopifyPurchaseProviderContext, WHATSAPP_PROVIDER_STATUSES, WHATSAPP_PROVIDER_STATUS_SCHEMA_VERSION, WHATSAPP_PROVIDER_STATUS_V2_SCHEMA_VERSION, WhatsAppProviderFailureEvidence, WhatsAppProviderFailureEvidenceSchema, WhatsAppProviderPricingMetadata, WhatsAppProviderPricingMetadataSchema, WhatsAppProviderStatus, WhatsAppProviderStatusSchema, availablePurchasedRecoveryCredits, createBillingSubscriptionReconcileJobId, createMerchantBillingSystemSourceKey, createRecoveryIdempotencyKey, createShopifyUsageIdempotencyKey, deriveShopifyProviderContextIdentity, isSameShopifyPurchaseProviderContext, parseBillingSubscriptionReconcileJob, parseNormalizedWhatsAppStatus, safeParseBillingSubscriptionReconcileJob, safeParseNormalizedWhatsAppStatus } from './billing.js';
|
|
3
3
|
export { AuthoredSupportBodySchema, MERCHANT_COMMUNICATIONS_JOB_NAMES, MERCHANT_COMMUNICATIONS_QUEUE_NAME, MERCHANT_COMMUNICATIONS_SCHEMA_VERSION, MerchantMessageTranslationContract, MerchantMessageTranslationContractSchema, MerchantMessageTranslationStatus, MerchantMessageTranslationStatusSchema, MerchantSupportMessageContract, MerchantSupportMessageContractSchema, MerchantSupportMessageKind, MerchantSupportMessageKindSchema, MerchantSupportMessageState, MerchantSupportMessageStateSchema, MerchantTranslationBatchContract, MerchantTranslationBatchContractSchema, MerchantTranslationBatchStatus, MerchantTranslationBatchStatusSchema, MerchantTranslationDirection, MerchantTranslationDirectionSchema, MerchantTranslationReconciliationRequestContract, MerchantTranslationReconciliationRequestContractSchema, MerchantTranslationReconciliationScope, MerchantTranslationReconciliationScopeSchema, MerchantTranslationReconciliationStatus, MerchantTranslationReconciliationStatusSchema, PLATFORM_SUPPORT_LANGUAGE_TAG, TranslatedSupportBodySchema, TranslationBatchPollJob, TranslationBatchPollJobSchema, TranslationBatchResultsJob, TranslationBatchResultsJobSchema, TranslationBatchSubmitJob, TranslationBatchSubmitJobSchema, TranslationDispatchJob, TranslationDispatchJobSchema, TranslationReconcileJob, TranslationReconcileJobSchema, countUnicodeGraphemes, requiresMerchantTranslation } from './merchant-communications.js';
|
|
4
4
|
export { EffectiveRecoveryPolicy, EffectiveRecoveryPolicySchema, RECOVERY_OFFER_MODES, RecoveryOfferMode, RecoveryOfferModeSchema, parseEffectiveRecoveryPolicy, safeParseEffectiveRecoveryPolicy } from './recovery-policy.js';
|
|
5
|
-
export { CheckoutCreatedPayloadV2, CheckoutCreatedPayloadV2Schema, CheckoutObservedPayload, CheckoutObservedPayloadSchema, CheckoutUpdatedPayloadV2, CheckoutUpdatedPayloadV2Schema, MAX_LINE_ITEMS, MAX_URL_LENGTH, OrderCompletedPayload, OrderCompletedPayloadSchema, OrderCompletedPayloadV2, OrderCompletedPayloadV2Schema, SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION, SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V1, SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V2, SHOPIFY_COMMERCE_EVENT_TYPES, SHOPIFY_DISCOUNT_SYNC_REASONS, SHOPIFY_DISCOUNT_SYNC_WEBHOOK_TOPICS, SHOPIFY_RECOVERY_EVENT_TYPES_V2, SHOPIFY_WEBHOOK_OUTBOX_DESTINATIONS, SHOPIFY_WEBHOOK_QUEUE_CONTRACTS, ShopifyCartActivityEventV2, ShopifyCartActivityEventV2Schema, ShopifyCartActivityPayloadV2, ShopifyCartActivityPayloadV2Schema, ShopifyCheckoutCreatedEventV2, ShopifyCheckoutCreatedEventV2Schema, ShopifyCheckoutLineItem, ShopifyCheckoutLineItemSchema, ShopifyCheckoutLineItemsSchema, ShopifyCheckoutObservedEvent, ShopifyCheckoutObservedEventSchema, ShopifyCheckoutUpdatedEventV2, ShopifyCheckoutUpdatedEventV2Schema, ShopifyCommerceEvent, ShopifyCommerceEventSchema, ShopifyCommerceEventType, ShopifyCustomerReference, ShopifyCustomerReferenceSchema, ShopifyDiscountSyncJob, ShopifyDiscountSyncJobSchema, ShopifyDiscountSyncReasonSchema, ShopifyDiscountSyncWebhookTopicSchema, ShopifyMoney, ShopifyMoneySchema, ShopifyOrderCompletedEvent, ShopifyOrderCompletedEventSchema, ShopifyOrderCompletedEventV2, ShopifyOrderCompletedEventV2Schema, ShopifyRecoveryEventTypeV2, ShopifyRecoveryEventV2, ShopifyRecoveryEventV2Schema, ShopifyTenant, ShopifyTenantSchema, createShopifyCartActivityOrderingKey, createShopifyCommerceOrderingKey, createShopifyOrderCorrelationOrderingKey, createShopifyOrderOrderingKey, createShopifyPendingRecoveryOrderingKey, isCartActivityEventV2, isCheckoutCreatedEventV2, isCheckoutObservedEvent, isCheckoutUpdatedEventV2, isOrderCompletedEvent, isOrderCompletedEventV2, parseShopifyCommerceEvent, parseShopifyDiscountSyncJob, parseShopifyRecoveryEventV2, safeParseShopifyCommerceEvent, safeParseShopifyDiscountSyncJob, safeParseShopifyRecoveryEventV2 } from './shopify/index.js';
|
|
5
|
+
export { CheckoutCreatedPayloadV2, CheckoutCreatedPayloadV2Schema, CheckoutObservedPayload, CheckoutObservedPayloadSchema, CheckoutUpdatedPayloadV2, CheckoutUpdatedPayloadV2Schema, CheckoutUpdatedPayloadV3, CheckoutUpdatedPayloadV3Schema, MAX_LINE_ITEMS, MAX_URL_LENGTH, OrderCompletedPayload, OrderCompletedPayloadSchema, OrderCompletedPayloadV2, OrderCompletedPayloadV2Schema, SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION, SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V1, SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V2, SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V3, SHOPIFY_COMMERCE_EVENT_TYPES, SHOPIFY_DISCOUNT_SYNC_REASONS, SHOPIFY_DISCOUNT_SYNC_WEBHOOK_TOPICS, SHOPIFY_RECOVERY_EVENT_TYPES_V2, SHOPIFY_RECOVERY_EVENT_TYPES_V3, SHOPIFY_WEBHOOK_OUTBOX_DESTINATIONS, SHOPIFY_WEBHOOK_QUEUE_CONTRACTS, ShopifyCartActivityEventV2, ShopifyCartActivityEventV2Schema, ShopifyCartActivityPayloadV2, ShopifyCartActivityPayloadV2Schema, ShopifyCheckoutCreatedEventV2, ShopifyCheckoutCreatedEventV2Schema, ShopifyCheckoutLineItem, ShopifyCheckoutLineItemSchema, ShopifyCheckoutLineItemsSchema, ShopifyCheckoutObservedEvent, ShopifyCheckoutObservedEventSchema, ShopifyCheckoutUpdatedEventV2, ShopifyCheckoutUpdatedEventV2Schema, ShopifyCheckoutUpdatedEventV3, ShopifyCheckoutUpdatedEventV3Schema, ShopifyCommerceEvent, ShopifyCommerceEventSchema, ShopifyCommerceEventType, ShopifyCustomerReference, ShopifyCustomerReferenceSchema, ShopifyDiscountSyncJob, ShopifyDiscountSyncJobSchema, ShopifyDiscountSyncReasonSchema, ShopifyDiscountSyncWebhookTopicSchema, ShopifyMoney, ShopifyMoneySchema, ShopifyOrderCompletedEvent, ShopifyOrderCompletedEventSchema, ShopifyOrderCompletedEventV2, ShopifyOrderCompletedEventV2Schema, ShopifyRecoveryEvent, ShopifyRecoveryEventSchema, ShopifyRecoveryEventTypeV2, ShopifyRecoveryEventV2, ShopifyRecoveryEventV2Schema, ShopifyTenant, ShopifyTenantSchema, createShopifyCartActivityOrderingKey, createShopifyCommerceOrderingKey, createShopifyOrderCorrelationOrderingKey, createShopifyOrderOrderingKey, createShopifyPendingRecoveryOrderingKey, isCartActivityEventV2, isCheckoutCreatedEventV2, isCheckoutObservedEvent, isCheckoutUpdatedEventV2, isOrderCompletedEvent, isOrderCompletedEventV2, parseShopifyCommerceEvent, parseShopifyDiscountSyncJob, parseShopifyRecoveryEvent, parseShopifyRecoveryEventV2, safeParseShopifyCommerceEvent, safeParseShopifyDiscountSyncJob, safeParseShopifyRecoveryEvent, safeParseShopifyRecoveryEventV2 } from './shopify/index.js';
|
|
6
6
|
import 'zod';
|
|
7
7
|
import 'intl-messageformat';
|
package/dist/index.js
CHANGED
|
@@ -69,6 +69,7 @@ import {
|
|
|
69
69
|
CheckoutCreatedPayloadV2Schema,
|
|
70
70
|
CheckoutObservedPayloadSchema,
|
|
71
71
|
CheckoutUpdatedPayloadV2Schema,
|
|
72
|
+
CheckoutUpdatedPayloadV3Schema,
|
|
72
73
|
MAX_LINE_ITEMS,
|
|
73
74
|
MAX_URL_LENGTH,
|
|
74
75
|
OrderCompletedPayloadSchema,
|
|
@@ -76,10 +77,12 @@ import {
|
|
|
76
77
|
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION,
|
|
77
78
|
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V1,
|
|
78
79
|
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V2,
|
|
80
|
+
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V3,
|
|
79
81
|
SHOPIFY_COMMERCE_EVENT_TYPES,
|
|
80
82
|
SHOPIFY_DISCOUNT_SYNC_REASONS,
|
|
81
83
|
SHOPIFY_DISCOUNT_SYNC_WEBHOOK_TOPICS,
|
|
82
84
|
SHOPIFY_RECOVERY_EVENT_TYPES_V2,
|
|
85
|
+
SHOPIFY_RECOVERY_EVENT_TYPES_V3,
|
|
83
86
|
SHOPIFY_WEBHOOK_OUTBOX_DESTINATIONS,
|
|
84
87
|
SHOPIFY_WEBHOOK_QUEUE_CONTRACTS,
|
|
85
88
|
ShopifyCartActivityEventV2Schema,
|
|
@@ -89,6 +92,7 @@ import {
|
|
|
89
92
|
ShopifyCheckoutLineItemsSchema,
|
|
90
93
|
ShopifyCheckoutObservedEventSchema,
|
|
91
94
|
ShopifyCheckoutUpdatedEventV2Schema,
|
|
95
|
+
ShopifyCheckoutUpdatedEventV3Schema,
|
|
92
96
|
ShopifyCommerceEventSchema,
|
|
93
97
|
ShopifyCustomerReferenceSchema,
|
|
94
98
|
ShopifyDiscountSyncJobSchema,
|
|
@@ -97,6 +101,7 @@ import {
|
|
|
97
101
|
ShopifyMoneySchema,
|
|
98
102
|
ShopifyOrderCompletedEventSchema,
|
|
99
103
|
ShopifyOrderCompletedEventV2Schema,
|
|
104
|
+
ShopifyRecoveryEventSchema,
|
|
100
105
|
ShopifyRecoveryEventV2Schema,
|
|
101
106
|
ShopifyTenantSchema,
|
|
102
107
|
createShopifyCartActivityOrderingKey,
|
|
@@ -112,11 +117,13 @@ import {
|
|
|
112
117
|
isOrderCompletedEventV2,
|
|
113
118
|
parseShopifyCommerceEvent,
|
|
114
119
|
parseShopifyDiscountSyncJob,
|
|
120
|
+
parseShopifyRecoveryEvent,
|
|
115
121
|
parseShopifyRecoveryEventV2,
|
|
116
122
|
safeParseShopifyCommerceEvent,
|
|
117
123
|
safeParseShopifyDiscountSyncJob,
|
|
124
|
+
safeParseShopifyRecoveryEvent,
|
|
118
125
|
safeParseShopifyRecoveryEventV2
|
|
119
|
-
} from "./chunk-
|
|
126
|
+
} from "./chunk-SU2DAOEC.js";
|
|
120
127
|
import {
|
|
121
128
|
CountryCodeSchema,
|
|
122
129
|
CurrencyCodeSchema,
|
|
@@ -153,6 +160,7 @@ export {
|
|
|
153
160
|
CheckoutCreatedPayloadV2Schema,
|
|
154
161
|
CheckoutObservedPayloadSchema,
|
|
155
162
|
CheckoutUpdatedPayloadV2Schema,
|
|
163
|
+
CheckoutUpdatedPayloadV3Schema,
|
|
156
164
|
CountryCodeSchema,
|
|
157
165
|
CurrencyCodeSchema,
|
|
158
166
|
EffectiveRecoveryPolicySchema,
|
|
@@ -188,10 +196,12 @@ export {
|
|
|
188
196
|
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION,
|
|
189
197
|
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V1,
|
|
190
198
|
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V2,
|
|
199
|
+
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V3,
|
|
191
200
|
SHOPIFY_COMMERCE_EVENT_TYPES,
|
|
192
201
|
SHOPIFY_DISCOUNT_SYNC_REASONS,
|
|
193
202
|
SHOPIFY_DISCOUNT_SYNC_WEBHOOK_TOPICS,
|
|
194
203
|
SHOPIFY_RECOVERY_EVENT_TYPES_V2,
|
|
204
|
+
SHOPIFY_RECOVERY_EVENT_TYPES_V3,
|
|
195
205
|
SHOPIFY_WEBHOOK_OUTBOX_DESTINATIONS,
|
|
196
206
|
SHOPIFY_WEBHOOK_QUEUE_CONTRACTS,
|
|
197
207
|
ShopifyCartActivityEventV2Schema,
|
|
@@ -201,6 +211,7 @@ export {
|
|
|
201
211
|
ShopifyCheckoutLineItemsSchema,
|
|
202
212
|
ShopifyCheckoutObservedEventSchema,
|
|
203
213
|
ShopifyCheckoutUpdatedEventV2Schema,
|
|
214
|
+
ShopifyCheckoutUpdatedEventV3Schema,
|
|
204
215
|
ShopifyCommerceEventSchema,
|
|
205
216
|
ShopifyCustomerReferenceSchema,
|
|
206
217
|
ShopifyDiscountSyncJobSchema,
|
|
@@ -209,6 +220,7 @@ export {
|
|
|
209
220
|
ShopifyMoneySchema,
|
|
210
221
|
ShopifyOrderCompletedEventSchema,
|
|
211
222
|
ShopifyOrderCompletedEventV2Schema,
|
|
223
|
+
ShopifyRecoveryEventSchema,
|
|
212
224
|
ShopifyRecoveryEventV2Schema,
|
|
213
225
|
ShopifyTenantSchema,
|
|
214
226
|
TimeZoneIdSchema,
|
|
@@ -254,6 +266,7 @@ export {
|
|
|
254
266
|
parseNormalizedWhatsAppStatus,
|
|
255
267
|
parseShopifyCommerceEvent,
|
|
256
268
|
parseShopifyDiscountSyncJob,
|
|
269
|
+
parseShopifyRecoveryEvent,
|
|
257
270
|
parseShopifyRecoveryEventV2,
|
|
258
271
|
requiresMerchantTranslation,
|
|
259
272
|
resolveLocaleDirection,
|
|
@@ -263,6 +276,7 @@ export {
|
|
|
263
276
|
safeParseNormalizedWhatsAppStatus,
|
|
264
277
|
safeParseShopifyCommerceEvent,
|
|
265
278
|
safeParseShopifyDiscountSyncJob,
|
|
279
|
+
safeParseShopifyRecoveryEvent,
|
|
266
280
|
safeParseShopifyRecoveryEventV2,
|
|
267
281
|
validateIcuCatalogue
|
|
268
282
|
};
|
package/dist/shopify/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { z } from 'zod';
|
|
|
2
2
|
|
|
3
3
|
declare const SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V1: 1;
|
|
4
4
|
declare const SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V2: 2;
|
|
5
|
+
declare const SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V3: 3;
|
|
5
6
|
declare const SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION: 1;
|
|
6
7
|
declare const SHOPIFY_COMMERCE_EVENT_TYPES: {
|
|
7
8
|
readonly CHECKOUT_OBSERVED: "checkout.observed";
|
|
@@ -13,6 +14,9 @@ declare const SHOPIFY_RECOVERY_EVENT_TYPES_V2: {
|
|
|
13
14
|
readonly CHECKOUT_UPDATED: "checkout.updated";
|
|
14
15
|
readonly ORDER_COMPLETED: "order.completed";
|
|
15
16
|
};
|
|
17
|
+
declare const SHOPIFY_RECOVERY_EVENT_TYPES_V3: {
|
|
18
|
+
readonly CHECKOUT_UPDATED: "checkout.updated";
|
|
19
|
+
};
|
|
16
20
|
declare const SHOPIFY_WEBHOOK_OUTBOX_DESTINATIONS: {
|
|
17
21
|
readonly CHECKOUT_EVENTS: "CHECKOUT_EVENTS";
|
|
18
22
|
readonly ORDER_EVENTS: "ORDER_EVENTS";
|
|
@@ -772,6 +776,367 @@ declare function createShopifyOrderCorrelationOrderingKey(input: {
|
|
|
772
776
|
checkoutToken: string | null;
|
|
773
777
|
}): string;
|
|
774
778
|
|
|
779
|
+
declare const CheckoutUpdatedPayloadV3Schema: z.ZodObject<{
|
|
780
|
+
checkoutToken: z.ZodString;
|
|
781
|
+
cartToken: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
782
|
+
checkoutCreatedAt: z.ZodOptional<z.ZodNullable<z.ZodISODateTime>>;
|
|
783
|
+
abandonedCheckoutUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
|
|
784
|
+
}, z.core.$strict>;
|
|
785
|
+
type CheckoutUpdatedPayloadV3 = z.infer<typeof CheckoutUpdatedPayloadV3Schema>;
|
|
786
|
+
|
|
787
|
+
declare const ShopifyCheckoutUpdatedEventV3Schema: z.ZodObject<{
|
|
788
|
+
schemaVersion: z.ZodLiteral<3>;
|
|
789
|
+
receiptId: z.ZodString;
|
|
790
|
+
deliveryId: z.ZodString;
|
|
791
|
+
eventId: z.ZodNullable<z.ZodString>;
|
|
792
|
+
source: z.ZodLiteral<"shopify">;
|
|
793
|
+
providerTopic: z.ZodString;
|
|
794
|
+
tenant: z.ZodObject<{
|
|
795
|
+
shopId: z.ZodString;
|
|
796
|
+
shopDomain: z.ZodString;
|
|
797
|
+
}, z.core.$strict>;
|
|
798
|
+
occurredAt: z.ZodNullable<z.ZodISODateTime>;
|
|
799
|
+
receivedAt: z.ZodISODateTime;
|
|
800
|
+
traceId: z.ZodString;
|
|
801
|
+
orderingKey: z.ZodString;
|
|
802
|
+
internationalContext: z.ZodOptional<z.ZodObject<{
|
|
803
|
+
languageTag: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
804
|
+
languageSource: z.ZodNullable<z.ZodEnum<{
|
|
805
|
+
"customer-explicit": "customer-explicit";
|
|
806
|
+
detected: "detected";
|
|
807
|
+
shopify: "shopify";
|
|
808
|
+
"merchant-default": "merchant-default";
|
|
809
|
+
"platform-default": "platform-default";
|
|
810
|
+
}>>;
|
|
811
|
+
countryCode: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
812
|
+
currencyCode: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
813
|
+
timeZone: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
814
|
+
}, z.core.$strict>>;
|
|
815
|
+
eventType: z.ZodLiteral<"checkout.updated">;
|
|
816
|
+
payload: z.ZodObject<{
|
|
817
|
+
checkoutToken: z.ZodString;
|
|
818
|
+
cartToken: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
819
|
+
checkoutCreatedAt: z.ZodOptional<z.ZodNullable<z.ZodISODateTime>>;
|
|
820
|
+
abandonedCheckoutUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
|
|
821
|
+
}, z.core.$strict>;
|
|
822
|
+
}, z.core.$strict>;
|
|
823
|
+
type ShopifyCheckoutUpdatedEventV3 = z.infer<typeof ShopifyCheckoutUpdatedEventV3Schema>;
|
|
824
|
+
|
|
825
|
+
declare const ShopifyRecoveryEventSchema: z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
826
|
+
schemaVersion: z.ZodLiteral<2>;
|
|
827
|
+
receiptId: z.ZodString;
|
|
828
|
+
deliveryId: z.ZodString;
|
|
829
|
+
eventId: z.ZodNullable<z.ZodString>;
|
|
830
|
+
source: z.ZodLiteral<"shopify">;
|
|
831
|
+
providerTopic: z.ZodString;
|
|
832
|
+
tenant: z.ZodObject<{
|
|
833
|
+
shopId: z.ZodString;
|
|
834
|
+
shopDomain: z.ZodString;
|
|
835
|
+
}, z.core.$strict>;
|
|
836
|
+
occurredAt: z.ZodNullable<z.ZodISODateTime>;
|
|
837
|
+
receivedAt: z.ZodISODateTime;
|
|
838
|
+
traceId: z.ZodString;
|
|
839
|
+
orderingKey: z.ZodString;
|
|
840
|
+
internationalContext: z.ZodOptional<z.ZodObject<{
|
|
841
|
+
languageTag: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
842
|
+
languageSource: z.ZodNullable<z.ZodEnum<{
|
|
843
|
+
"customer-explicit": "customer-explicit";
|
|
844
|
+
detected: "detected";
|
|
845
|
+
shopify: "shopify";
|
|
846
|
+
"merchant-default": "merchant-default";
|
|
847
|
+
"platform-default": "platform-default";
|
|
848
|
+
}>>;
|
|
849
|
+
countryCode: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
850
|
+
currencyCode: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
851
|
+
timeZone: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
852
|
+
}, z.core.$strict>>;
|
|
853
|
+
eventType: z.ZodLiteral<"cart.activity">;
|
|
854
|
+
payload: z.ZodObject<{
|
|
855
|
+
cartToken: z.ZodString;
|
|
856
|
+
isEmpty: z.ZodNullable<z.ZodBoolean>;
|
|
857
|
+
}, z.core.$strict>;
|
|
858
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
859
|
+
schemaVersion: z.ZodLiteral<2>;
|
|
860
|
+
receiptId: z.ZodString;
|
|
861
|
+
deliveryId: z.ZodString;
|
|
862
|
+
eventId: z.ZodNullable<z.ZodString>;
|
|
863
|
+
source: z.ZodLiteral<"shopify">;
|
|
864
|
+
providerTopic: z.ZodString;
|
|
865
|
+
tenant: z.ZodObject<{
|
|
866
|
+
shopId: z.ZodString;
|
|
867
|
+
shopDomain: z.ZodString;
|
|
868
|
+
}, z.core.$strict>;
|
|
869
|
+
occurredAt: z.ZodNullable<z.ZodISODateTime>;
|
|
870
|
+
receivedAt: z.ZodISODateTime;
|
|
871
|
+
traceId: z.ZodString;
|
|
872
|
+
orderingKey: z.ZodString;
|
|
873
|
+
internationalContext: z.ZodOptional<z.ZodObject<{
|
|
874
|
+
languageTag: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
875
|
+
languageSource: z.ZodNullable<z.ZodEnum<{
|
|
876
|
+
"customer-explicit": "customer-explicit";
|
|
877
|
+
detected: "detected";
|
|
878
|
+
shopify: "shopify";
|
|
879
|
+
"merchant-default": "merchant-default";
|
|
880
|
+
"platform-default": "platform-default";
|
|
881
|
+
}>>;
|
|
882
|
+
countryCode: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
883
|
+
currencyCode: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
884
|
+
timeZone: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
885
|
+
}, z.core.$strict>>;
|
|
886
|
+
eventType: z.ZodLiteral<"checkout.created">;
|
|
887
|
+
payload: z.ZodObject<{
|
|
888
|
+
checkoutToken: z.ZodString;
|
|
889
|
+
cartToken: z.ZodNullable<z.ZodString>;
|
|
890
|
+
abandonedCheckoutUrl: z.ZodNullable<z.ZodURL>;
|
|
891
|
+
checkoutCreatedAt: z.ZodNullable<z.ZodISODateTime>;
|
|
892
|
+
}, z.core.$strict>;
|
|
893
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
894
|
+
schemaVersion: z.ZodLiteral<2>;
|
|
895
|
+
receiptId: z.ZodString;
|
|
896
|
+
deliveryId: z.ZodString;
|
|
897
|
+
eventId: z.ZodNullable<z.ZodString>;
|
|
898
|
+
source: z.ZodLiteral<"shopify">;
|
|
899
|
+
providerTopic: z.ZodString;
|
|
900
|
+
tenant: z.ZodObject<{
|
|
901
|
+
shopId: z.ZodString;
|
|
902
|
+
shopDomain: z.ZodString;
|
|
903
|
+
}, z.core.$strict>;
|
|
904
|
+
occurredAt: z.ZodNullable<z.ZodISODateTime>;
|
|
905
|
+
receivedAt: z.ZodISODateTime;
|
|
906
|
+
traceId: z.ZodString;
|
|
907
|
+
orderingKey: z.ZodString;
|
|
908
|
+
internationalContext: z.ZodOptional<z.ZodObject<{
|
|
909
|
+
languageTag: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
910
|
+
languageSource: z.ZodNullable<z.ZodEnum<{
|
|
911
|
+
"customer-explicit": "customer-explicit";
|
|
912
|
+
detected: "detected";
|
|
913
|
+
shopify: "shopify";
|
|
914
|
+
"merchant-default": "merchant-default";
|
|
915
|
+
"platform-default": "platform-default";
|
|
916
|
+
}>>;
|
|
917
|
+
countryCode: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
918
|
+
currencyCode: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
919
|
+
timeZone: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
920
|
+
}, z.core.$strict>>;
|
|
921
|
+
eventType: z.ZodLiteral<"checkout.updated">;
|
|
922
|
+
payload: z.ZodObject<{
|
|
923
|
+
checkoutToken: z.ZodString;
|
|
924
|
+
}, z.core.$strict>;
|
|
925
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
926
|
+
schemaVersion: z.ZodLiteral<2>;
|
|
927
|
+
receiptId: z.ZodString;
|
|
928
|
+
deliveryId: z.ZodString;
|
|
929
|
+
eventId: z.ZodNullable<z.ZodString>;
|
|
930
|
+
source: z.ZodLiteral<"shopify">;
|
|
931
|
+
providerTopic: z.ZodString;
|
|
932
|
+
tenant: z.ZodObject<{
|
|
933
|
+
shopId: z.ZodString;
|
|
934
|
+
shopDomain: z.ZodString;
|
|
935
|
+
}, z.core.$strict>;
|
|
936
|
+
occurredAt: z.ZodNullable<z.ZodISODateTime>;
|
|
937
|
+
receivedAt: z.ZodISODateTime;
|
|
938
|
+
traceId: z.ZodString;
|
|
939
|
+
orderingKey: z.ZodString;
|
|
940
|
+
internationalContext: z.ZodOptional<z.ZodObject<{
|
|
941
|
+
languageTag: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
942
|
+
languageSource: z.ZodNullable<z.ZodEnum<{
|
|
943
|
+
"customer-explicit": "customer-explicit";
|
|
944
|
+
detected: "detected";
|
|
945
|
+
shopify: "shopify";
|
|
946
|
+
"merchant-default": "merchant-default";
|
|
947
|
+
"platform-default": "platform-default";
|
|
948
|
+
}>>;
|
|
949
|
+
countryCode: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
950
|
+
currencyCode: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
951
|
+
timeZone: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
952
|
+
}, z.core.$strict>>;
|
|
953
|
+
eventType: z.ZodLiteral<"order.completed">;
|
|
954
|
+
payload: z.ZodObject<{
|
|
955
|
+
orderId: z.ZodString;
|
|
956
|
+
checkoutToken: z.ZodNullable<z.ZodString>;
|
|
957
|
+
cartToken: z.ZodNullable<z.ZodString>;
|
|
958
|
+
completedAt: z.ZodISODateTime;
|
|
959
|
+
}, z.core.$strict>;
|
|
960
|
+
}, z.core.$strict>], "eventType">, z.ZodObject<{
|
|
961
|
+
schemaVersion: z.ZodLiteral<3>;
|
|
962
|
+
receiptId: z.ZodString;
|
|
963
|
+
deliveryId: z.ZodString;
|
|
964
|
+
eventId: z.ZodNullable<z.ZodString>;
|
|
965
|
+
source: z.ZodLiteral<"shopify">;
|
|
966
|
+
providerTopic: z.ZodString;
|
|
967
|
+
tenant: z.ZodObject<{
|
|
968
|
+
shopId: z.ZodString;
|
|
969
|
+
shopDomain: z.ZodString;
|
|
970
|
+
}, z.core.$strict>;
|
|
971
|
+
occurredAt: z.ZodNullable<z.ZodISODateTime>;
|
|
972
|
+
receivedAt: z.ZodISODateTime;
|
|
973
|
+
traceId: z.ZodString;
|
|
974
|
+
orderingKey: z.ZodString;
|
|
975
|
+
internationalContext: z.ZodOptional<z.ZodObject<{
|
|
976
|
+
languageTag: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
977
|
+
languageSource: z.ZodNullable<z.ZodEnum<{
|
|
978
|
+
"customer-explicit": "customer-explicit";
|
|
979
|
+
detected: "detected";
|
|
980
|
+
shopify: "shopify";
|
|
981
|
+
"merchant-default": "merchant-default";
|
|
982
|
+
"platform-default": "platform-default";
|
|
983
|
+
}>>;
|
|
984
|
+
countryCode: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
985
|
+
currencyCode: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
986
|
+
timeZone: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
987
|
+
}, z.core.$strict>>;
|
|
988
|
+
eventType: z.ZodLiteral<"checkout.updated">;
|
|
989
|
+
payload: z.ZodObject<{
|
|
990
|
+
checkoutToken: z.ZodString;
|
|
991
|
+
cartToken: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
992
|
+
checkoutCreatedAt: z.ZodOptional<z.ZodNullable<z.ZodISODateTime>>;
|
|
993
|
+
abandonedCheckoutUrl: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
|
|
994
|
+
}, z.core.$strict>;
|
|
995
|
+
}, z.core.$strict>]>;
|
|
996
|
+
type ShopifyRecoveryEvent = ShopifyRecoveryEventV2 | ShopifyCheckoutUpdatedEventV3;
|
|
997
|
+
declare function parseShopifyRecoveryEvent(input: unknown): ShopifyRecoveryEvent;
|
|
998
|
+
declare function safeParseShopifyRecoveryEvent(input: unknown): z.ZodSafeParseResult<{
|
|
999
|
+
schemaVersion: 2;
|
|
1000
|
+
receiptId: string;
|
|
1001
|
+
deliveryId: string;
|
|
1002
|
+
eventId: string | null;
|
|
1003
|
+
source: "shopify";
|
|
1004
|
+
providerTopic: string;
|
|
1005
|
+
tenant: {
|
|
1006
|
+
shopId: string;
|
|
1007
|
+
shopDomain: string;
|
|
1008
|
+
};
|
|
1009
|
+
occurredAt: string | null;
|
|
1010
|
+
receivedAt: string;
|
|
1011
|
+
traceId: string;
|
|
1012
|
+
orderingKey: string;
|
|
1013
|
+
eventType: "checkout.created";
|
|
1014
|
+
payload: {
|
|
1015
|
+
checkoutToken: string;
|
|
1016
|
+
cartToken: string | null;
|
|
1017
|
+
abandonedCheckoutUrl: string | null;
|
|
1018
|
+
checkoutCreatedAt: string | null;
|
|
1019
|
+
};
|
|
1020
|
+
internationalContext?: {
|
|
1021
|
+
languageTag: string | null;
|
|
1022
|
+
languageSource: "customer-explicit" | "detected" | "shopify" | "merchant-default" | "platform-default" | null;
|
|
1023
|
+
countryCode: string | null;
|
|
1024
|
+
currencyCode: string | null;
|
|
1025
|
+
timeZone: string | null;
|
|
1026
|
+
} | undefined;
|
|
1027
|
+
} | {
|
|
1028
|
+
schemaVersion: 2;
|
|
1029
|
+
receiptId: string;
|
|
1030
|
+
deliveryId: string;
|
|
1031
|
+
eventId: string | null;
|
|
1032
|
+
source: "shopify";
|
|
1033
|
+
providerTopic: string;
|
|
1034
|
+
tenant: {
|
|
1035
|
+
shopId: string;
|
|
1036
|
+
shopDomain: string;
|
|
1037
|
+
};
|
|
1038
|
+
occurredAt: string | null;
|
|
1039
|
+
receivedAt: string;
|
|
1040
|
+
traceId: string;
|
|
1041
|
+
orderingKey: string;
|
|
1042
|
+
eventType: "cart.activity";
|
|
1043
|
+
payload: {
|
|
1044
|
+
cartToken: string;
|
|
1045
|
+
isEmpty: boolean | null;
|
|
1046
|
+
};
|
|
1047
|
+
internationalContext?: {
|
|
1048
|
+
languageTag: string | null;
|
|
1049
|
+
languageSource: "customer-explicit" | "detected" | "shopify" | "merchant-default" | "platform-default" | null;
|
|
1050
|
+
countryCode: string | null;
|
|
1051
|
+
currencyCode: string | null;
|
|
1052
|
+
timeZone: string | null;
|
|
1053
|
+
} | undefined;
|
|
1054
|
+
} | {
|
|
1055
|
+
schemaVersion: 2;
|
|
1056
|
+
receiptId: string;
|
|
1057
|
+
deliveryId: string;
|
|
1058
|
+
eventId: string | null;
|
|
1059
|
+
source: "shopify";
|
|
1060
|
+
providerTopic: string;
|
|
1061
|
+
tenant: {
|
|
1062
|
+
shopId: string;
|
|
1063
|
+
shopDomain: string;
|
|
1064
|
+
};
|
|
1065
|
+
occurredAt: string | null;
|
|
1066
|
+
receivedAt: string;
|
|
1067
|
+
traceId: string;
|
|
1068
|
+
orderingKey: string;
|
|
1069
|
+
eventType: "checkout.updated";
|
|
1070
|
+
payload: {
|
|
1071
|
+
checkoutToken: string;
|
|
1072
|
+
};
|
|
1073
|
+
internationalContext?: {
|
|
1074
|
+
languageTag: string | null;
|
|
1075
|
+
languageSource: "customer-explicit" | "detected" | "shopify" | "merchant-default" | "platform-default" | null;
|
|
1076
|
+
countryCode: string | null;
|
|
1077
|
+
currencyCode: string | null;
|
|
1078
|
+
timeZone: string | null;
|
|
1079
|
+
} | undefined;
|
|
1080
|
+
} | {
|
|
1081
|
+
schemaVersion: 2;
|
|
1082
|
+
receiptId: string;
|
|
1083
|
+
deliveryId: string;
|
|
1084
|
+
eventId: string | null;
|
|
1085
|
+
source: "shopify";
|
|
1086
|
+
providerTopic: string;
|
|
1087
|
+
tenant: {
|
|
1088
|
+
shopId: string;
|
|
1089
|
+
shopDomain: string;
|
|
1090
|
+
};
|
|
1091
|
+
occurredAt: string | null;
|
|
1092
|
+
receivedAt: string;
|
|
1093
|
+
traceId: string;
|
|
1094
|
+
orderingKey: string;
|
|
1095
|
+
eventType: "order.completed";
|
|
1096
|
+
payload: {
|
|
1097
|
+
orderId: string;
|
|
1098
|
+
checkoutToken: string | null;
|
|
1099
|
+
cartToken: string | null;
|
|
1100
|
+
completedAt: string;
|
|
1101
|
+
};
|
|
1102
|
+
internationalContext?: {
|
|
1103
|
+
languageTag: string | null;
|
|
1104
|
+
languageSource: "customer-explicit" | "detected" | "shopify" | "merchant-default" | "platform-default" | null;
|
|
1105
|
+
countryCode: string | null;
|
|
1106
|
+
currencyCode: string | null;
|
|
1107
|
+
timeZone: string | null;
|
|
1108
|
+
} | undefined;
|
|
1109
|
+
} | {
|
|
1110
|
+
schemaVersion: 3;
|
|
1111
|
+
receiptId: string;
|
|
1112
|
+
deliveryId: string;
|
|
1113
|
+
eventId: string | null;
|
|
1114
|
+
source: "shopify";
|
|
1115
|
+
providerTopic: string;
|
|
1116
|
+
tenant: {
|
|
1117
|
+
shopId: string;
|
|
1118
|
+
shopDomain: string;
|
|
1119
|
+
};
|
|
1120
|
+
occurredAt: string | null;
|
|
1121
|
+
receivedAt: string;
|
|
1122
|
+
traceId: string;
|
|
1123
|
+
orderingKey: string;
|
|
1124
|
+
eventType: "checkout.updated";
|
|
1125
|
+
payload: {
|
|
1126
|
+
checkoutToken: string;
|
|
1127
|
+
cartToken?: string | null | undefined;
|
|
1128
|
+
checkoutCreatedAt?: string | null | undefined;
|
|
1129
|
+
abandonedCheckoutUrl?: string | null | undefined;
|
|
1130
|
+
};
|
|
1131
|
+
internationalContext?: {
|
|
1132
|
+
languageTag: string | null;
|
|
1133
|
+
languageSource: "customer-explicit" | "detected" | "shopify" | "merchant-default" | "platform-default" | null;
|
|
1134
|
+
countryCode: string | null;
|
|
1135
|
+
currencyCode: string | null;
|
|
1136
|
+
timeZone: string | null;
|
|
1137
|
+
} | undefined;
|
|
1138
|
+
}>;
|
|
1139
|
+
|
|
775
1140
|
declare const SHOPIFY_WEBHOOK_QUEUE_CONTRACTS: {
|
|
776
1141
|
readonly CHECKOUT_EVENTS: {
|
|
777
1142
|
readonly queueName: "checkout-events";
|
|
@@ -843,4 +1208,4 @@ declare function safeParseShopifyDiscountSyncJob(input: unknown): z.ZodSafeParse
|
|
|
843
1208
|
webhookTopic: "discounts/create" | "discounts/update" | "discounts/delete" | "discounts/redeemcode_added" | "discounts/redeemcode_removed" | null;
|
|
844
1209
|
}>;
|
|
845
1210
|
|
|
846
|
-
export { type CheckoutCreatedPayloadV2, CheckoutCreatedPayloadV2Schema, type CheckoutObservedPayload, CheckoutObservedPayloadSchema, type CheckoutUpdatedPayloadV2, CheckoutUpdatedPayloadV2Schema, MAX_LINE_ITEMS, MAX_URL_LENGTH, type OrderCompletedPayload, OrderCompletedPayloadSchema, type OrderCompletedPayloadV2, OrderCompletedPayloadV2Schema, SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION, SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V1, SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V2, SHOPIFY_COMMERCE_EVENT_TYPES, SHOPIFY_DISCOUNT_SYNC_REASONS, SHOPIFY_DISCOUNT_SYNC_WEBHOOK_TOPICS, SHOPIFY_RECOVERY_EVENT_TYPES_V2, SHOPIFY_WEBHOOK_OUTBOX_DESTINATIONS, SHOPIFY_WEBHOOK_QUEUE_CONTRACTS, type ShopifyCartActivityEventV2, ShopifyCartActivityEventV2Schema, type ShopifyCartActivityPayloadV2, ShopifyCartActivityPayloadV2Schema, type ShopifyCheckoutCreatedEventV2, ShopifyCheckoutCreatedEventV2Schema, type ShopifyCheckoutLineItem, ShopifyCheckoutLineItemSchema, ShopifyCheckoutLineItemsSchema, type ShopifyCheckoutObservedEvent, ShopifyCheckoutObservedEventSchema, type ShopifyCheckoutUpdatedEventV2, ShopifyCheckoutUpdatedEventV2Schema, type ShopifyCommerceEvent, ShopifyCommerceEventSchema, type ShopifyCommerceEventType, type ShopifyCustomerReference, ShopifyCustomerReferenceSchema, type ShopifyDiscountSyncJob, ShopifyDiscountSyncJobSchema, ShopifyDiscountSyncReasonSchema, ShopifyDiscountSyncWebhookTopicSchema, type ShopifyMoney, ShopifyMoneySchema, type ShopifyOrderCompletedEvent, ShopifyOrderCompletedEventSchema, type ShopifyOrderCompletedEventV2, ShopifyOrderCompletedEventV2Schema, type ShopifyRecoveryEventTypeV2, type ShopifyRecoveryEventV2, ShopifyRecoveryEventV2Schema, type ShopifyTenant, ShopifyTenantSchema, createShopifyCartActivityOrderingKey, createShopifyCommerceOrderingKey, createShopifyOrderCorrelationOrderingKey, createShopifyOrderOrderingKey, createShopifyPendingRecoveryOrderingKey, isCartActivityEventV2, isCheckoutCreatedEventV2, isCheckoutObservedEvent, isCheckoutUpdatedEventV2, isOrderCompletedEvent, isOrderCompletedEventV2, parseShopifyCommerceEvent, parseShopifyDiscountSyncJob, parseShopifyRecoveryEventV2, safeParseShopifyCommerceEvent, safeParseShopifyDiscountSyncJob, safeParseShopifyRecoveryEventV2 };
|
|
1211
|
+
export { type CheckoutCreatedPayloadV2, CheckoutCreatedPayloadV2Schema, type CheckoutObservedPayload, CheckoutObservedPayloadSchema, type CheckoutUpdatedPayloadV2, CheckoutUpdatedPayloadV2Schema, type CheckoutUpdatedPayloadV3, CheckoutUpdatedPayloadV3Schema, MAX_LINE_ITEMS, MAX_URL_LENGTH, type OrderCompletedPayload, OrderCompletedPayloadSchema, type OrderCompletedPayloadV2, OrderCompletedPayloadV2Schema, SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION, SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V1, SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V2, SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V3, SHOPIFY_COMMERCE_EVENT_TYPES, SHOPIFY_DISCOUNT_SYNC_REASONS, SHOPIFY_DISCOUNT_SYNC_WEBHOOK_TOPICS, SHOPIFY_RECOVERY_EVENT_TYPES_V2, SHOPIFY_RECOVERY_EVENT_TYPES_V3, SHOPIFY_WEBHOOK_OUTBOX_DESTINATIONS, SHOPIFY_WEBHOOK_QUEUE_CONTRACTS, type ShopifyCartActivityEventV2, ShopifyCartActivityEventV2Schema, type ShopifyCartActivityPayloadV2, ShopifyCartActivityPayloadV2Schema, type ShopifyCheckoutCreatedEventV2, ShopifyCheckoutCreatedEventV2Schema, type ShopifyCheckoutLineItem, ShopifyCheckoutLineItemSchema, ShopifyCheckoutLineItemsSchema, type ShopifyCheckoutObservedEvent, ShopifyCheckoutObservedEventSchema, type ShopifyCheckoutUpdatedEventV2, ShopifyCheckoutUpdatedEventV2Schema, type ShopifyCheckoutUpdatedEventV3, ShopifyCheckoutUpdatedEventV3Schema, type ShopifyCommerceEvent, ShopifyCommerceEventSchema, type ShopifyCommerceEventType, type ShopifyCustomerReference, ShopifyCustomerReferenceSchema, type ShopifyDiscountSyncJob, ShopifyDiscountSyncJobSchema, ShopifyDiscountSyncReasonSchema, ShopifyDiscountSyncWebhookTopicSchema, type ShopifyMoney, ShopifyMoneySchema, type ShopifyOrderCompletedEvent, ShopifyOrderCompletedEventSchema, type ShopifyOrderCompletedEventV2, ShopifyOrderCompletedEventV2Schema, type ShopifyRecoveryEvent, ShopifyRecoveryEventSchema, type ShopifyRecoveryEventTypeV2, type ShopifyRecoveryEventV2, ShopifyRecoveryEventV2Schema, type ShopifyTenant, ShopifyTenantSchema, createShopifyCartActivityOrderingKey, createShopifyCommerceOrderingKey, createShopifyOrderCorrelationOrderingKey, createShopifyOrderOrderingKey, createShopifyPendingRecoveryOrderingKey, isCartActivityEventV2, isCheckoutCreatedEventV2, isCheckoutObservedEvent, isCheckoutUpdatedEventV2, isOrderCompletedEvent, isOrderCompletedEventV2, parseShopifyCommerceEvent, parseShopifyDiscountSyncJob, parseShopifyRecoveryEvent, parseShopifyRecoveryEventV2, safeParseShopifyCommerceEvent, safeParseShopifyDiscountSyncJob, safeParseShopifyRecoveryEvent, safeParseShopifyRecoveryEventV2 };
|
package/dist/shopify/index.js
CHANGED
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
CheckoutCreatedPayloadV2Schema,
|
|
3
3
|
CheckoutObservedPayloadSchema,
|
|
4
4
|
CheckoutUpdatedPayloadV2Schema,
|
|
5
|
+
CheckoutUpdatedPayloadV3Schema,
|
|
5
6
|
MAX_LINE_ITEMS,
|
|
6
7
|
MAX_URL_LENGTH,
|
|
7
8
|
OrderCompletedPayloadSchema,
|
|
@@ -9,10 +10,12 @@ import {
|
|
|
9
10
|
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION,
|
|
10
11
|
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V1,
|
|
11
12
|
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V2,
|
|
13
|
+
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V3,
|
|
12
14
|
SHOPIFY_COMMERCE_EVENT_TYPES,
|
|
13
15
|
SHOPIFY_DISCOUNT_SYNC_REASONS,
|
|
14
16
|
SHOPIFY_DISCOUNT_SYNC_WEBHOOK_TOPICS,
|
|
15
17
|
SHOPIFY_RECOVERY_EVENT_TYPES_V2,
|
|
18
|
+
SHOPIFY_RECOVERY_EVENT_TYPES_V3,
|
|
16
19
|
SHOPIFY_WEBHOOK_OUTBOX_DESTINATIONS,
|
|
17
20
|
SHOPIFY_WEBHOOK_QUEUE_CONTRACTS,
|
|
18
21
|
ShopifyCartActivityEventV2Schema,
|
|
@@ -22,6 +25,7 @@ import {
|
|
|
22
25
|
ShopifyCheckoutLineItemsSchema,
|
|
23
26
|
ShopifyCheckoutObservedEventSchema,
|
|
24
27
|
ShopifyCheckoutUpdatedEventV2Schema,
|
|
28
|
+
ShopifyCheckoutUpdatedEventV3Schema,
|
|
25
29
|
ShopifyCommerceEventSchema,
|
|
26
30
|
ShopifyCustomerReferenceSchema,
|
|
27
31
|
ShopifyDiscountSyncJobSchema,
|
|
@@ -30,6 +34,7 @@ import {
|
|
|
30
34
|
ShopifyMoneySchema,
|
|
31
35
|
ShopifyOrderCompletedEventSchema,
|
|
32
36
|
ShopifyOrderCompletedEventV2Schema,
|
|
37
|
+
ShopifyRecoveryEventSchema,
|
|
33
38
|
ShopifyRecoveryEventV2Schema,
|
|
34
39
|
ShopifyTenantSchema,
|
|
35
40
|
createShopifyCartActivityOrderingKey,
|
|
@@ -45,16 +50,19 @@ import {
|
|
|
45
50
|
isOrderCompletedEventV2,
|
|
46
51
|
parseShopifyCommerceEvent,
|
|
47
52
|
parseShopifyDiscountSyncJob,
|
|
53
|
+
parseShopifyRecoveryEvent,
|
|
48
54
|
parseShopifyRecoveryEventV2,
|
|
49
55
|
safeParseShopifyCommerceEvent,
|
|
50
56
|
safeParseShopifyDiscountSyncJob,
|
|
57
|
+
safeParseShopifyRecoveryEvent,
|
|
51
58
|
safeParseShopifyRecoveryEventV2
|
|
52
|
-
} from "../chunk-
|
|
59
|
+
} from "../chunk-SU2DAOEC.js";
|
|
53
60
|
import "../chunk-4KSODB2R.js";
|
|
54
61
|
export {
|
|
55
62
|
CheckoutCreatedPayloadV2Schema,
|
|
56
63
|
CheckoutObservedPayloadSchema,
|
|
57
64
|
CheckoutUpdatedPayloadV2Schema,
|
|
65
|
+
CheckoutUpdatedPayloadV3Schema,
|
|
58
66
|
MAX_LINE_ITEMS,
|
|
59
67
|
MAX_URL_LENGTH,
|
|
60
68
|
OrderCompletedPayloadSchema,
|
|
@@ -62,10 +70,12 @@ export {
|
|
|
62
70
|
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION,
|
|
63
71
|
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V1,
|
|
64
72
|
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V2,
|
|
73
|
+
SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V3,
|
|
65
74
|
SHOPIFY_COMMERCE_EVENT_TYPES,
|
|
66
75
|
SHOPIFY_DISCOUNT_SYNC_REASONS,
|
|
67
76
|
SHOPIFY_DISCOUNT_SYNC_WEBHOOK_TOPICS,
|
|
68
77
|
SHOPIFY_RECOVERY_EVENT_TYPES_V2,
|
|
78
|
+
SHOPIFY_RECOVERY_EVENT_TYPES_V3,
|
|
69
79
|
SHOPIFY_WEBHOOK_OUTBOX_DESTINATIONS,
|
|
70
80
|
SHOPIFY_WEBHOOK_QUEUE_CONTRACTS,
|
|
71
81
|
ShopifyCartActivityEventV2Schema,
|
|
@@ -75,6 +85,7 @@ export {
|
|
|
75
85
|
ShopifyCheckoutLineItemsSchema,
|
|
76
86
|
ShopifyCheckoutObservedEventSchema,
|
|
77
87
|
ShopifyCheckoutUpdatedEventV2Schema,
|
|
88
|
+
ShopifyCheckoutUpdatedEventV3Schema,
|
|
78
89
|
ShopifyCommerceEventSchema,
|
|
79
90
|
ShopifyCustomerReferenceSchema,
|
|
80
91
|
ShopifyDiscountSyncJobSchema,
|
|
@@ -83,6 +94,7 @@ export {
|
|
|
83
94
|
ShopifyMoneySchema,
|
|
84
95
|
ShopifyOrderCompletedEventSchema,
|
|
85
96
|
ShopifyOrderCompletedEventV2Schema,
|
|
97
|
+
ShopifyRecoveryEventSchema,
|
|
86
98
|
ShopifyRecoveryEventV2Schema,
|
|
87
99
|
ShopifyTenantSchema,
|
|
88
100
|
createShopifyCartActivityOrderingKey,
|
|
@@ -98,9 +110,11 @@ export {
|
|
|
98
110
|
isOrderCompletedEventV2,
|
|
99
111
|
parseShopifyCommerceEvent,
|
|
100
112
|
parseShopifyDiscountSyncJob,
|
|
113
|
+
parseShopifyRecoveryEvent,
|
|
101
114
|
parseShopifyRecoveryEventV2,
|
|
102
115
|
safeParseShopifyCommerceEvent,
|
|
103
116
|
safeParseShopifyDiscountSyncJob,
|
|
117
|
+
safeParseShopifyRecoveryEvent,
|
|
104
118
|
safeParseShopifyRecoveryEventV2
|
|
105
119
|
};
|
|
106
120
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/shopify/constants.ts","../src/shopify/common.schema.ts","../src/shopify/v1/checkout-observed.schema.ts","../src/shopify/v1/order-completed.schema.ts","../src/shopify/v1/commerce-event.schema.ts","../src/shopify/v2/checkout-created.schema.ts","../src/shopify/v2/checkout-updated.schema.ts","../src/shopify/v2/cart-activity.schema.ts","../src/shopify/v2/order-completed.schema.ts","../src/shopify/v2/recovery-event.schema.ts","../src/shopify/queue-contracts.ts"],"sourcesContent":["export const SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V1 = 1 as const;\nexport const SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V2 = 2 as const;\n\n// Backward-compatible alias for existing v1 callers.\nexport const SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION =\n SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V1;\n\nexport const SHOPIFY_COMMERCE_EVENT_TYPES = {\n CHECKOUT_OBSERVED: \"checkout.observed\",\n ORDER_COMPLETED: \"order.completed\",\n} as const;\n\nexport const SHOPIFY_RECOVERY_EVENT_TYPES_V2 = {\n CART_ACTIVITY: \"cart.activity\",\n CHECKOUT_CREATED: \"checkout.created\",\n CHECKOUT_UPDATED: \"checkout.updated\",\n ORDER_COMPLETED: \"order.completed\",\n} as const;\n\nexport const SHOPIFY_WEBHOOK_OUTBOX_DESTINATIONS = {\n CHECKOUT_EVENTS: \"CHECKOUT_EVENTS\",\n ORDER_EVENTS: \"ORDER_EVENTS\",\n} as const;\n","import { z } from \"zod\";\n\n/**\n * Reasonable upper bounds for externally controlled (Shopify-originated) strings.\n * These exist to keep queue messages small and predictable, not to validate business rules.\n */\nconst MAX_ID_LENGTH = 100;\nconst MAX_SHORT_TEXT_LENGTH = 320;\nconst MAX_TITLE_LENGTH = 500;\nconst MAX_URL_LENGTH = 2048;\nconst MAX_LINE_ITEMS = 250;\n\nconst decimalStringPattern = /^-?\\d+(\\.\\d+)?$/;\n\n/** Decimal amount encoded as a string; never a JS number to avoid float precision loss. */\nconst DecimalStringSchema = z\n .string()\n .min(1)\n .max(32)\n .regex(decimalStringPattern, \"must be a decimal string, e.g. \\\"12.34\\\"\");\n\nexport const ShopifyTenantSchema = z\n .object({\n shopId: z.string().min(1).max(MAX_ID_LENGTH),\n shopDomain: z\n .string()\n .min(1)\n .max(MAX_SHORT_TEXT_LENGTH)\n .toLowerCase()\n .trim(),\n })\n .strict();\n\nexport type ShopifyTenant = z.infer<typeof ShopifyTenantSchema>;\n\nexport const ShopifyCustomerReferenceSchema = z\n .object({\n shopifyCustomerId: z.string().min(1).max(MAX_ID_LENGTH).nullable(),\n email: z.string().email().max(MAX_SHORT_TEXT_LENGTH).nullable(),\n phone: z.string().min(1).max(64).nullable(),\n firstName: z.string().min(1).max(MAX_TITLE_LENGTH).nullable(),\n lastName: z.string().min(1).max(MAX_TITLE_LENGTH).nullable(),\n })\n .strict();\n\nexport type ShopifyCustomerReference = z.infer<typeof ShopifyCustomerReferenceSchema>;\n\nexport const ShopifyMoneySchema = z\n .object({\n amount: DecimalStringSchema,\n currencyCode: z\n .string()\n .regex(/^[A-Z]{3}$/, \"must be an uppercase three-letter currency code\"),\n })\n .strict();\n\nexport type ShopifyMoney = z.infer<typeof ShopifyMoneySchema>;\n\n/**\n * Fields limited to what checkout recovery and customer-facing basket context require.\n * Line-item arrays are bounded (see MAX_LINE_ITEMS) to prevent unexpectedly large queue messages.\n */\nexport const ShopifyCheckoutLineItemSchema = z\n .object({\n lineItemId: z.string().min(1).max(MAX_ID_LENGTH).nullable(),\n variantId: z.string().min(1).max(MAX_ID_LENGTH).nullable(),\n productId: z.string().min(1).max(MAX_ID_LENGTH).nullable(),\n title: z.string().min(1).max(MAX_TITLE_LENGTH),\n variantTitle: z.string().min(1).max(MAX_TITLE_LENGTH).nullable(),\n quantity: z.number().int().positive(),\n unitPrice: DecimalStringSchema.nullable(),\n sku: z.string().min(1).max(MAX_ID_LENGTH).nullable(),\n })\n .strict();\n\nexport type ShopifyCheckoutLineItem = z.infer<typeof ShopifyCheckoutLineItemSchema>;\n\nexport const ShopifyCheckoutLineItemsSchema = z\n .array(ShopifyCheckoutLineItemSchema)\n .max(MAX_LINE_ITEMS);\n\nexport { MAX_URL_LENGTH, MAX_LINE_ITEMS };\n","import { z } from \"zod\";\nimport {\n MAX_URL_LENGTH,\n ShopifyCheckoutLineItemsSchema,\n ShopifyCustomerReferenceSchema,\n ShopifyMoneySchema,\n} from \"../common.schema.js\";\n\nexport const CheckoutObservedPayloadSchema = z\n .object({\n checkoutToken: z.string().min(1),\n cartToken: z.string().min(1).nullable(),\n checkoutUrl: z.url().max(MAX_URL_LENGTH).nullable(),\n customer: ShopifyCustomerReferenceSchema.nullable(),\n total: ShopifyMoneySchema.nullable(),\n lineItems: ShopifyCheckoutLineItemsSchema,\n checkoutCreatedAt: z.iso.datetime().nullable(),\n checkoutUpdatedAt: z.iso.datetime().nullable(),\n completedAt: z.iso.datetime().nullable(),\n })\n .strict();\n\nexport type CheckoutObservedPayload = z.infer<typeof CheckoutObservedPayloadSchema>;\n","import { z } from \"zod\";\nimport { ShopifyMoneySchema } from \"../common.schema.js\";\n\nexport const OrderCompletedPayloadSchema = z\n .object({\n orderId: z.string().min(1),\n checkoutToken: z.string().min(1).nullable(),\n shopifyCustomerId: z.string().min(1).nullable(),\n total: ShopifyMoneySchema.nullable(),\n completedAt: z.iso.datetime(),\n })\n .strict();\n\nexport type OrderCompletedPayload = z.infer<typeof OrderCompletedPayloadSchema>;\n","import { z } from \"zod\";\nimport {\n SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION,\n SHOPIFY_COMMERCE_EVENT_TYPES,\n} from \"../constants.js\";\nimport { ShopifyTenantSchema } from \"../common.schema.js\";\nimport { CheckoutObservedPayloadSchema } from \"./checkout-observed.schema.js\";\nimport { OrderCompletedPayloadSchema } from \"./order-completed.schema.js\";\n\nconst ShopifyCommerceEventBaseSchema = z.object({\n schemaVersion: z.literal(SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION),\n receiptId: z.string().min(1),\n deliveryId: z.string().min(1),\n eventId: z.string().min(1).nullable(),\n source: z.literal(\"shopify\"),\n providerTopic: z.string().min(1),\n tenant: ShopifyTenantSchema,\n occurredAt: z.iso.datetime().nullable(),\n receivedAt: z.iso.datetime(),\n traceId: z.string().min(1),\n orderingKey: z.string().min(1),\n});\n\nexport const ShopifyCheckoutObservedEventSchema = ShopifyCommerceEventBaseSchema.extend({\n eventType: z.literal(SHOPIFY_COMMERCE_EVENT_TYPES.CHECKOUT_OBSERVED),\n payload: CheckoutObservedPayloadSchema,\n}).strict();\n\nexport type ShopifyCheckoutObservedEvent = z.infer<\n typeof ShopifyCheckoutObservedEventSchema\n>;\n\nexport const ShopifyOrderCompletedEventSchema = ShopifyCommerceEventBaseSchema.extend({\n eventType: z.literal(SHOPIFY_COMMERCE_EVENT_TYPES.ORDER_COMPLETED),\n payload: OrderCompletedPayloadSchema,\n}).strict();\n\nexport type ShopifyOrderCompletedEvent = z.infer<\n typeof ShopifyOrderCompletedEventSchema\n>;\n\nexport const ShopifyCommerceEventSchema = z.discriminatedUnion(\"eventType\", [\n ShopifyCheckoutObservedEventSchema,\n ShopifyOrderCompletedEventSchema,\n]);\n\nexport type ShopifyCommerceEvent = z.infer<typeof ShopifyCommerceEventSchema>;\nexport type ShopifyCommerceEventType = ShopifyCommerceEvent[\"eventType\"];\n\nexport function parseShopifyCommerceEvent(input: unknown): ShopifyCommerceEvent {\n return ShopifyCommerceEventSchema.parse(input);\n}\n\nexport function safeParseShopifyCommerceEvent(input: unknown) {\n return ShopifyCommerceEventSchema.safeParse(input);\n}\n\nexport function isCheckoutObservedEvent(\n event: ShopifyCommerceEvent,\n): event is ShopifyCheckoutObservedEvent {\n return event.eventType === SHOPIFY_COMMERCE_EVENT_TYPES.CHECKOUT_OBSERVED;\n}\n\nexport function isOrderCompletedEvent(\n event: ShopifyCommerceEvent,\n): event is ShopifyOrderCompletedEvent {\n return event.eventType === SHOPIFY_COMMERCE_EVENT_TYPES.ORDER_COMPLETED;\n}\n\n/**\n * Stable ordering key for a shop/checkout pair.\n * Checkout and order events for the same checkout must share this key, so\n * deliveryId is intentionally excluded.\n */\nexport function createShopifyCommerceOrderingKey(\n shopId: string,\n checkoutToken: string,\n): string {\n if (typeof shopId !== \"string\" || shopId.length === 0) {\n throw new Error(\n \"createShopifyCommerceOrderingKey: shopId must be a non-empty string\",\n );\n }\n\n if (typeof checkoutToken !== \"string\" || checkoutToken.length === 0) {\n throw new Error(\n \"createShopifyCommerceOrderingKey: checkoutToken must be a non-empty string\",\n );\n }\n\n return `${shopId}:${checkoutToken}`;\n}\n\nexport function createShopifyOrderOrderingKey(\n shopId: string,\n orderId: string,\n): string {\n if (typeof shopId !== \"string\" || shopId.length === 0) {\n throw new Error(\n \"createShopifyOrderOrderingKey: shopId must be a non-empty string\",\n );\n }\n\n if (typeof orderId !== \"string\" || orderId.length === 0) {\n throw new Error(\n \"createShopifyOrderOrderingKey: orderId must be a non-empty string\",\n );\n }\n\n return `${shopId}:${orderId}`;\n}","import { z } from \"zod\";\nimport { MAX_URL_LENGTH } from \"../common.schema.js\";\n\nexport const CheckoutCreatedPayloadV2Schema = z\n .object({\n checkoutToken: z.string().min(1),\n cartToken: z.string().min(1).nullable(),\n abandonedCheckoutUrl: z.url().max(MAX_URL_LENGTH).nullable(),\n checkoutCreatedAt: z.iso.datetime().nullable(),\n })\n .strict();\n\nexport type CheckoutCreatedPayloadV2 = z.infer<\n typeof CheckoutCreatedPayloadV2Schema\n>;\n","import { z } from \"zod\";\n\nexport const CheckoutUpdatedPayloadV2Schema = z\n .object({\n checkoutToken: z.string().min(1),\n })\n .strict();\n\nexport type CheckoutUpdatedPayloadV2 = z.infer<\n typeof CheckoutUpdatedPayloadV2Schema\n>;\n","import { z } from \"zod\";\n\nexport const ShopifyCartActivityPayloadV2Schema = z\n .object({\n cartToken: z.string().min(1),\n isEmpty: z.boolean().nullable(),\n })\n .strict();\n\nexport type ShopifyCartActivityPayloadV2 = z.infer<\n typeof ShopifyCartActivityPayloadV2Schema\n>;","import { z } from \"zod\";\n\nexport const OrderCompletedPayloadV2Schema = z\n .object({\n orderId: z.string().min(1),\n checkoutToken: z.string().min(1).nullable(),\n cartToken: z.string().min(1).nullable(),\n completedAt: z.iso.datetime(),\n })\n .strict();\n\nexport type OrderCompletedPayloadV2 = z.infer<typeof OrderCompletedPayloadV2Schema>;\n","import { z } from \"zod\";\nimport {\n SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V2,\n SHOPIFY_RECOVERY_EVENT_TYPES_V2,\n} from \"../constants.js\";\nimport { ShopifyTenantSchema } from \"../common.schema.js\";\nimport { InternationalContextSchema } from \"../../internationalization.js\";\nimport { CheckoutCreatedPayloadV2Schema } from \"./checkout-created.schema.js\";\nimport { CheckoutUpdatedPayloadV2Schema } from \"./checkout-updated.schema.js\";\nimport { OrderCompletedPayloadV2Schema } from \"./order-completed.schema.js\";\nimport { ShopifyCartActivityPayloadV2Schema } from \"./cart-activity.schema.js\";\n\nconst ShopifyRecoveryEventBaseV2Schema = z\n .object({\n schemaVersion: z.literal(SHOPIFY_COMMERCE_EVENT_SCHEMA_VERSION_V2),\n receiptId: z.string().min(1),\n deliveryId: z.string().min(1),\n eventId: z.string().min(1).nullable(),\n source: z.literal(\"shopify\"),\n providerTopic: z.string().min(1),\n tenant: ShopifyTenantSchema,\n occurredAt: z.iso.datetime().nullable(),\n receivedAt: z.iso.datetime(),\n traceId: z.string().min(1),\n orderingKey: z.string().min(1),\n internationalContext: InternationalContextSchema.optional(),\n })\n .strict();\n\nexport const ShopifyCheckoutCreatedEventV2Schema =\n ShopifyRecoveryEventBaseV2Schema.extend({\n eventType: z.literal(SHOPIFY_RECOVERY_EVENT_TYPES_V2.CHECKOUT_CREATED),\n payload: CheckoutCreatedPayloadV2Schema,\n }).strict();\n\nexport type ShopifyCheckoutCreatedEventV2 = z.infer<\n typeof ShopifyCheckoutCreatedEventV2Schema\n>;\n\nexport const ShopifyCartActivityEventV2Schema =\n ShopifyRecoveryEventBaseV2Schema.extend({\n eventType: z.literal(SHOPIFY_RECOVERY_EVENT_TYPES_V2.CART_ACTIVITY),\n payload: ShopifyCartActivityPayloadV2Schema,\n }).strict();\n\nexport type ShopifyCartActivityEventV2 = z.infer<\n typeof ShopifyCartActivityEventV2Schema\n>;\n\nexport const ShopifyCheckoutUpdatedEventV2Schema =\n ShopifyRecoveryEventBaseV2Schema.extend({\n eventType: z.literal(SHOPIFY_RECOVERY_EVENT_TYPES_V2.CHECKOUT_UPDATED),\n payload: CheckoutUpdatedPayloadV2Schema,\n }).strict();\n\nexport type ShopifyCheckoutUpdatedEventV2 = z.infer<\n typeof ShopifyCheckoutUpdatedEventV2Schema\n>;\n\nexport const ShopifyOrderCompletedEventV2Schema =\n ShopifyRecoveryEventBaseV2Schema.extend({\n eventType: z.literal(SHOPIFY_RECOVERY_EVENT_TYPES_V2.ORDER_COMPLETED),\n payload: OrderCompletedPayloadV2Schema,\n }).strict();\n\nexport type ShopifyOrderCompletedEventV2 = z.infer<\n typeof ShopifyOrderCompletedEventV2Schema\n>;\n\nexport const ShopifyRecoveryEventV2Schema = z.discriminatedUnion(\"eventType\", [\n ShopifyCartActivityEventV2Schema,\n ShopifyCheckoutCreatedEventV2Schema,\n ShopifyCheckoutUpdatedEventV2Schema,\n ShopifyOrderCompletedEventV2Schema,\n]);\n\nexport type ShopifyRecoveryEventV2 = z.infer<typeof ShopifyRecoveryEventV2Schema>;\nexport type ShopifyRecoveryEventTypeV2 = ShopifyRecoveryEventV2[\"eventType\"];\n\nexport function parseShopifyRecoveryEventV2(input: unknown): ShopifyRecoveryEventV2 {\n return ShopifyRecoveryEventV2Schema.parse(input);\n}\n\nexport function safeParseShopifyRecoveryEventV2(input: unknown) {\n return ShopifyRecoveryEventV2Schema.safeParse(input);\n}\n\nexport function isCheckoutCreatedEventV2(\n event: ShopifyRecoveryEventV2,\n): event is ShopifyCheckoutCreatedEventV2 {\n return event.eventType === SHOPIFY_RECOVERY_EVENT_TYPES_V2.CHECKOUT_CREATED;\n}\n\nexport function isCartActivityEventV2(\n event: ShopifyRecoveryEventV2,\n): event is ShopifyCartActivityEventV2 {\n return event.eventType === SHOPIFY_RECOVERY_EVENT_TYPES_V2.CART_ACTIVITY;\n}\n\nexport function isCheckoutUpdatedEventV2(\n event: ShopifyRecoveryEventV2,\n): event is ShopifyCheckoutUpdatedEventV2 {\n return event.eventType === SHOPIFY_RECOVERY_EVENT_TYPES_V2.CHECKOUT_UPDATED;\n}\n\nexport function isOrderCompletedEventV2(\n event: ShopifyRecoveryEventV2,\n): event is ShopifyOrderCompletedEventV2 {\n return event.eventType === SHOPIFY_RECOVERY_EVENT_TYPES_V2.ORDER_COMPLETED;\n}\n\nexport function createShopifyPendingRecoveryOrderingKey(\n shopId: string,\n checkoutToken: string,\n): string {\n if (typeof shopId !== \"string\" || shopId.length === 0) {\n throw new Error(\n \"createShopifyPendingRecoveryOrderingKey: shopId must be a non-empty string\",\n );\n }\n\n if (typeof checkoutToken !== \"string\" || checkoutToken.length === 0) {\n throw new Error(\n \"createShopifyPendingRecoveryOrderingKey: checkoutToken must be a non-empty string\",\n );\n }\n\n return `${shopId}:${checkoutToken}`;\n}\n\nexport function createShopifyCartActivityOrderingKey(\n shopId: string,\n cartToken: string,\n): string {\n if (typeof shopId !== \"string\" || shopId.length === 0) {\n throw new Error(\n \"createShopifyCartActivityOrderingKey: shopId must be a non-empty string\",\n );\n }\n\n if (typeof cartToken !== \"string\" || cartToken.length === 0) {\n throw new Error(\n \"createShopifyCartActivityOrderingKey: cartToken must be a non-empty string\",\n );\n }\n\n return `cart:${shopId.length}:${shopId}:${cartToken.length}:${cartToken}`;\n}\n\nexport function createShopifyOrderCorrelationOrderingKey(input: {\n shopId: string;\n orderId: string;\n checkoutToken: string | null;\n}): string {\n if (input.checkoutToken) {\n return createShopifyPendingRecoveryOrderingKey(input.shopId, input.checkoutToken);\n }\n\n if (typeof input.orderId !== \"string\" || input.orderId.length === 0) {\n throw new Error(\n \"createShopifyOrderCorrelationOrderingKey: orderId must be a non-empty string\",\n );\n }\n\n if (typeof input.shopId !== \"string\" || input.shopId.length === 0) {\n throw new Error(\n \"createShopifyOrderCorrelationOrderingKey: shopId must be a non-empty string\",\n );\n }\n\n return `${input.shopId}:${input.orderId}`;\n}\n","import { z } from \"zod\";\n\nexport const SHOPIFY_WEBHOOK_QUEUE_CONTRACTS = {\n CHECKOUT_EVENTS: {\n queueName: \"checkout-events\",\n jobName: \"checkout-created\",\n },\n CHECKOUT_UPDATED_EVENTS: {\n queueName: \"checkout-events\",\n jobName: \"checkout-updated\",\n },\n CART_ACTIVITY_EVENTS: {\n queueName: \"checkout-events\",\n jobName: \"cart-activity\",\n },\n ORDER_EVENTS: {\n queueName: \"order-events\",\n jobName: \"order-completed\",\n },\n SHOPIFY_DISCOUNT_SYNC: {\n queueName: \"shopify-discount-sync\",\n jobName: \"reconcile-shopify-discounts\",\n },\n} as const;\n\nexport const SHOPIFY_DISCOUNT_SYNC_REASONS = [\n \"SUBSCRIPTION_ACTIVATED\",\n \"REINSTALL_RECONCILED\",\n \"SCOPES_UPDATED\",\n \"ADMIN_REQUESTED\",\n \"DISCOUNT_WEBHOOK\",\n] as const;\n\nexport const SHOPIFY_DISCOUNT_SYNC_WEBHOOK_TOPICS = [\n \"discounts/create\",\n \"discounts/update\",\n \"discounts/delete\",\n \"discounts/redeemcode_added\",\n \"discounts/redeemcode_removed\",\n] as const;\n\nexport const ShopifyDiscountSyncReasonSchema = z.enum(SHOPIFY_DISCOUNT_SYNC_REASONS);\nexport const ShopifyDiscountSyncWebhookTopicSchema = z.enum(SHOPIFY_DISCOUNT_SYNC_WEBHOOK_TOPICS);\n\nexport const ShopifyDiscountSyncJobSchema = z\n .object({\n schemaVersion: z.literal(1),\n shopId: z.string().trim().min(1).max(128),\n shopDomain: z.string().trim().min(1).max(512),\n reason: ShopifyDiscountSyncReasonSchema,\n requestedAt: z.iso.datetime({ offset: true }),\n deliveryId: z.string().trim().min(1).nullable(),\n webhookTopic: ShopifyDiscountSyncWebhookTopicSchema.nullable(),\n })\n .strict()\n .superRefine((value, ctx) => {\n if (value.reason === \"DISCOUNT_WEBHOOK\") {\n if (!value.deliveryId || value.deliveryId.trim().length === 0) {\n ctx.addIssue({\n code: \"custom\",\n path: [\"deliveryId\"],\n message: \"deliveryId is required when reason is DISCOUNT_WEBHOOK\",\n });\n }\n\n if (value.webhookTopic === null) {\n ctx.addIssue({\n code: \"custom\",\n path: [\"webhookTopic\"],\n message: \"webhookTopic is required when reason is DISCOUNT_WEBHOOK\",\n });\n }\n } else {\n if (value.webhookTopic !== null) {\n ctx.addIssue({\n code: \"custom\",\n path: [\"webhookTopic\"],\n message: \"webhookTopic must be null when reason is not DISCOUNT_WEBHOOK\",\n });\n }\n }\n });\n\nexport type ShopifyDiscountSyncJob = z.infer<typeof ShopifyDiscountSyncJobSchema>;\n\nexport function parseShopifyDiscountSyncJob(input: unknown): ShopifyDiscountSyncJob {\n return ShopifyDiscountSyncJobSchema.parse(input);\n}\n\nexport function safeParseShopifyDiscountSyncJob(input: unknown) {\n return ShopifyDiscountSyncJobSchema.safeParse(input);\n}\n"],"mappings":"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","names":["z","z","z","z","z","z","z","z","z","z","z","z","z","z"]}
|