@modainteract/moda-interact-shared 2.7.1 → 2.7.2
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.
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
declare const WOO_CART_RESTORE_SNAPSHOT_VERSION: "woo.cart-restore.v1";
|
|
4
|
+
declare const WOO_RESTORE_RESOLVE_VERSION: "woo.restore.resolve.v1";
|
|
5
|
+
declare const WooCartRestoreLineV1Schema: z.ZodObject<{
|
|
6
|
+
productId: z.ZodString;
|
|
7
|
+
variationId: z.ZodOptional<z.ZodString>;
|
|
8
|
+
quantity: z.ZodNumber;
|
|
9
|
+
attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
10
|
+
}, z.core.$strict>;
|
|
11
|
+
type WooCartRestoreLineV1 = z.infer<typeof WooCartRestoreLineV1Schema>;
|
|
12
|
+
declare const WooCartRestoreUnsupportedReasonV1Schema: z.ZodEnum<{
|
|
13
|
+
ITEMS_UNAVAILABLE: "ITEMS_UNAVAILABLE";
|
|
14
|
+
UNSUPPORTED_PRODUCT_TYPE: "UNSUPPORTED_PRODUCT_TYPE";
|
|
15
|
+
CUSTOM_CART_ITEM_DATA: "CUSTOM_CART_ITEM_DATA";
|
|
16
|
+
INVALID_VARIATION: "INVALID_VARIATION";
|
|
17
|
+
COUPONS_UNAVAILABLE: "COUPONS_UNAVAILABLE";
|
|
18
|
+
LIMIT_EXCEEDED: "LIMIT_EXCEEDED";
|
|
19
|
+
}>;
|
|
20
|
+
type WooCartRestoreUnsupportedReasonV1 = z.infer<typeof WooCartRestoreUnsupportedReasonV1Schema>;
|
|
21
|
+
declare const WooCartRestoreSupportedSnapshotV1Schema: z.ZodObject<{
|
|
22
|
+
schemaVersion: z.ZodLiteral<"woo.cart-restore.v1">;
|
|
23
|
+
kind: z.ZodLiteral<"supported">;
|
|
24
|
+
appliedCouponCodes: z.ZodArray<z.ZodString>;
|
|
25
|
+
lines: z.ZodArray<z.ZodObject<{
|
|
26
|
+
productId: z.ZodString;
|
|
27
|
+
variationId: z.ZodOptional<z.ZodString>;
|
|
28
|
+
quantity: z.ZodNumber;
|
|
29
|
+
attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
30
|
+
}, z.core.$strict>>;
|
|
31
|
+
}, z.core.$strict>;
|
|
32
|
+
type WooCartRestoreSupportedSnapshotV1 = z.infer<typeof WooCartRestoreSupportedSnapshotV1Schema>;
|
|
33
|
+
declare const WooCartRestoreUnsupportedSnapshotV1Schema: z.ZodObject<{
|
|
34
|
+
schemaVersion: z.ZodLiteral<"woo.cart-restore.v1">;
|
|
35
|
+
kind: z.ZodLiteral<"unsupported">;
|
|
36
|
+
reason: z.ZodEnum<{
|
|
37
|
+
ITEMS_UNAVAILABLE: "ITEMS_UNAVAILABLE";
|
|
38
|
+
UNSUPPORTED_PRODUCT_TYPE: "UNSUPPORTED_PRODUCT_TYPE";
|
|
39
|
+
CUSTOM_CART_ITEM_DATA: "CUSTOM_CART_ITEM_DATA";
|
|
40
|
+
INVALID_VARIATION: "INVALID_VARIATION";
|
|
41
|
+
COUPONS_UNAVAILABLE: "COUPONS_UNAVAILABLE";
|
|
42
|
+
LIMIT_EXCEEDED: "LIMIT_EXCEEDED";
|
|
43
|
+
}>;
|
|
44
|
+
appliedCouponCodes: z.ZodArray<z.ZodString>;
|
|
45
|
+
}, z.core.$strict>;
|
|
46
|
+
type WooCartRestoreUnsupportedSnapshotV1 = z.infer<typeof WooCartRestoreUnsupportedSnapshotV1Schema>;
|
|
47
|
+
declare const WooCartRestoreSnapshotV1Schema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
48
|
+
schemaVersion: z.ZodLiteral<"woo.cart-restore.v1">;
|
|
49
|
+
kind: z.ZodLiteral<"supported">;
|
|
50
|
+
appliedCouponCodes: z.ZodArray<z.ZodString>;
|
|
51
|
+
lines: z.ZodArray<z.ZodObject<{
|
|
52
|
+
productId: z.ZodString;
|
|
53
|
+
variationId: z.ZodOptional<z.ZodString>;
|
|
54
|
+
quantity: z.ZodNumber;
|
|
55
|
+
attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
56
|
+
}, z.core.$strict>>;
|
|
57
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
58
|
+
schemaVersion: z.ZodLiteral<"woo.cart-restore.v1">;
|
|
59
|
+
kind: z.ZodLiteral<"unsupported">;
|
|
60
|
+
reason: z.ZodEnum<{
|
|
61
|
+
ITEMS_UNAVAILABLE: "ITEMS_UNAVAILABLE";
|
|
62
|
+
UNSUPPORTED_PRODUCT_TYPE: "UNSUPPORTED_PRODUCT_TYPE";
|
|
63
|
+
CUSTOM_CART_ITEM_DATA: "CUSTOM_CART_ITEM_DATA";
|
|
64
|
+
INVALID_VARIATION: "INVALID_VARIATION";
|
|
65
|
+
COUPONS_UNAVAILABLE: "COUPONS_UNAVAILABLE";
|
|
66
|
+
LIMIT_EXCEEDED: "LIMIT_EXCEEDED";
|
|
67
|
+
}>;
|
|
68
|
+
appliedCouponCodes: z.ZodArray<z.ZodString>;
|
|
69
|
+
}, z.core.$strict>], "kind">;
|
|
70
|
+
type WooCartRestoreSnapshotV1 = z.infer<typeof WooCartRestoreSnapshotV1Schema>;
|
|
71
|
+
declare const WooCheckoutRestoreExtensionV1Schema: z.ZodObject<{
|
|
72
|
+
restoration: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
73
|
+
schemaVersion: z.ZodLiteral<"woo.cart-restore.v1">;
|
|
74
|
+
kind: z.ZodLiteral<"supported">;
|
|
75
|
+
appliedCouponCodes: z.ZodArray<z.ZodString>;
|
|
76
|
+
lines: z.ZodArray<z.ZodObject<{
|
|
77
|
+
productId: z.ZodString;
|
|
78
|
+
variationId: z.ZodOptional<z.ZodString>;
|
|
79
|
+
quantity: z.ZodNumber;
|
|
80
|
+
attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
81
|
+
}, z.core.$strict>>;
|
|
82
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
83
|
+
schemaVersion: z.ZodLiteral<"woo.cart-restore.v1">;
|
|
84
|
+
kind: z.ZodLiteral<"unsupported">;
|
|
85
|
+
reason: z.ZodEnum<{
|
|
86
|
+
ITEMS_UNAVAILABLE: "ITEMS_UNAVAILABLE";
|
|
87
|
+
UNSUPPORTED_PRODUCT_TYPE: "UNSUPPORTED_PRODUCT_TYPE";
|
|
88
|
+
CUSTOM_CART_ITEM_DATA: "CUSTOM_CART_ITEM_DATA";
|
|
89
|
+
INVALID_VARIATION: "INVALID_VARIATION";
|
|
90
|
+
COUPONS_UNAVAILABLE: "COUPONS_UNAVAILABLE";
|
|
91
|
+
LIMIT_EXCEEDED: "LIMIT_EXCEEDED";
|
|
92
|
+
}>;
|
|
93
|
+
appliedCouponCodes: z.ZodArray<z.ZodString>;
|
|
94
|
+
}, z.core.$strict>], "kind">>;
|
|
95
|
+
}, z.core.$strict>;
|
|
96
|
+
type WooCheckoutRestoreExtensionV1 = z.infer<typeof WooCheckoutRestoreExtensionV1Schema>;
|
|
97
|
+
declare const WooRestoreResolveRequestV1Schema: z.ZodObject<{
|
|
98
|
+
schemaVersion: z.ZodLiteral<"woo.restore.resolve.v1">;
|
|
99
|
+
recoveryId: z.ZodString;
|
|
100
|
+
token: z.ZodString;
|
|
101
|
+
}, z.core.$strict>;
|
|
102
|
+
type WooRestoreResolveRequestV1 = z.infer<typeof WooRestoreResolveRequestV1Schema>;
|
|
103
|
+
declare const WooRestoreOutreachOfferV1Schema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
104
|
+
kind: z.ZodLiteral<"NONE">;
|
|
105
|
+
reason: z.ZodEnum<{
|
|
106
|
+
NO_CONFIRMED_OFFER: "NO_CONFIRMED_OFFER";
|
|
107
|
+
UNVERIFIABLE: "UNVERIFIABLE";
|
|
108
|
+
}>;
|
|
109
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
110
|
+
kind: z.ZodLiteral<"CHECKOUT_CODE">;
|
|
111
|
+
code: z.ZodString;
|
|
112
|
+
providerDiscountId: z.ZodString;
|
|
113
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
114
|
+
kind: z.ZodLiteral<"CHECKOUT_AUTOMATIC">;
|
|
115
|
+
providerDiscountId: z.ZodString;
|
|
116
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
117
|
+
kind: z.ZodLiteral<"ALTERNATIVE_PRODUCT">;
|
|
118
|
+
}, z.core.$strict>], "kind">;
|
|
119
|
+
type WooRestoreOutreachOfferV1 = z.infer<typeof WooRestoreOutreachOfferV1Schema>;
|
|
120
|
+
declare const WooRestoreResolveResponseV1Schema: z.ZodObject<{
|
|
121
|
+
schemaVersion: z.ZodLiteral<"woo.restore.resolve.v1">;
|
|
122
|
+
status: z.ZodLiteral<"eligible">;
|
|
123
|
+
recoveryId: z.ZodString;
|
|
124
|
+
checkoutKey: z.ZodString;
|
|
125
|
+
snapshot: z.ZodObject<{
|
|
126
|
+
schemaVersion: z.ZodLiteral<"woo.cart-restore.v1">;
|
|
127
|
+
kind: z.ZodLiteral<"supported">;
|
|
128
|
+
appliedCouponCodes: z.ZodArray<z.ZodString>;
|
|
129
|
+
lines: z.ZodArray<z.ZodObject<{
|
|
130
|
+
productId: z.ZodString;
|
|
131
|
+
variationId: z.ZodOptional<z.ZodString>;
|
|
132
|
+
quantity: z.ZodNumber;
|
|
133
|
+
attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
134
|
+
}, z.core.$strict>>;
|
|
135
|
+
}, z.core.$strict>;
|
|
136
|
+
outreachOffer: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
137
|
+
kind: z.ZodLiteral<"NONE">;
|
|
138
|
+
reason: z.ZodEnum<{
|
|
139
|
+
NO_CONFIRMED_OFFER: "NO_CONFIRMED_OFFER";
|
|
140
|
+
UNVERIFIABLE: "UNVERIFIABLE";
|
|
141
|
+
}>;
|
|
142
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
143
|
+
kind: z.ZodLiteral<"CHECKOUT_CODE">;
|
|
144
|
+
code: z.ZodString;
|
|
145
|
+
providerDiscountId: z.ZodString;
|
|
146
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
147
|
+
kind: z.ZodLiteral<"CHECKOUT_AUTOMATIC">;
|
|
148
|
+
providerDiscountId: z.ZodString;
|
|
149
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
150
|
+
kind: z.ZodLiteral<"ALTERNATIVE_PRODUCT">;
|
|
151
|
+
}, z.core.$strict>], "kind">;
|
|
152
|
+
}, z.core.$strict>;
|
|
153
|
+
type WooRestoreResolveResponseV1 = z.infer<typeof WooRestoreResolveResponseV1Schema>;
|
|
154
|
+
|
|
155
|
+
export { WOO_CART_RESTORE_SNAPSHOT_VERSION, WOO_RESTORE_RESOLVE_VERSION, type WooCartRestoreLineV1, WooCartRestoreLineV1Schema, type WooCartRestoreSnapshotV1, WooCartRestoreSnapshotV1Schema, type WooCartRestoreSupportedSnapshotV1, WooCartRestoreSupportedSnapshotV1Schema, type WooCartRestoreUnsupportedReasonV1, WooCartRestoreUnsupportedReasonV1Schema, type WooCartRestoreUnsupportedSnapshotV1, WooCartRestoreUnsupportedSnapshotV1Schema, type WooCheckoutRestoreExtensionV1, WooCheckoutRestoreExtensionV1Schema, type WooRestoreOutreachOfferV1, WooRestoreOutreachOfferV1Schema, type WooRestoreResolveRequestV1, WooRestoreResolveRequestV1Schema, type WooRestoreResolveResponseV1, WooRestoreResolveResponseV1Schema };
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// src/woocommerce/contracts.ts
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
var WOO_CART_RESTORE_SNAPSHOT_VERSION = "woo.cart-restore.v1";
|
|
4
|
+
var WOO_RESTORE_RESOLVE_VERSION = "woo.restore.resolve.v1";
|
|
5
|
+
var WooPositiveDecimalIdSchema = z.string().min(1).max(20).regex(/^[1-9][0-9]*$/);
|
|
6
|
+
var WooOpaqueRecoveryIdSchema = z.string().min(1).max(128).regex(/^[A-Za-z0-9][A-Za-z0-9._:~-]{0,127}$/);
|
|
7
|
+
var WooNoControlTextSchema = (max) => z.string().min(1).max(max).regex(/^[^\p{Cc}]+$/u);
|
|
8
|
+
var WooRestoreAttributesV1Schema = z.record(
|
|
9
|
+
WooNoControlTextSchema(80),
|
|
10
|
+
WooNoControlTextSchema(200)
|
|
11
|
+
).superRefine((value, ctx) => {
|
|
12
|
+
if (Object.keys(value).length > 10) {
|
|
13
|
+
ctx.addIssue({ code: "custom", message: "Too many attributes" });
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
var WooAppliedCouponCodesV1Schema = z.array(WooNoControlTextSchema(128)).max(10);
|
|
17
|
+
var WooCartRestoreLineV1Schema = z.strictObject({
|
|
18
|
+
productId: WooPositiveDecimalIdSchema,
|
|
19
|
+
variationId: WooPositiveDecimalIdSchema.optional(),
|
|
20
|
+
quantity: z.number().int().min(1).max(1e5),
|
|
21
|
+
attributes: WooRestoreAttributesV1Schema.optional()
|
|
22
|
+
});
|
|
23
|
+
var WooCartRestoreUnsupportedReasonV1Schema = z.enum([
|
|
24
|
+
"ITEMS_UNAVAILABLE",
|
|
25
|
+
"UNSUPPORTED_PRODUCT_TYPE",
|
|
26
|
+
"CUSTOM_CART_ITEM_DATA",
|
|
27
|
+
"INVALID_VARIATION",
|
|
28
|
+
"COUPONS_UNAVAILABLE",
|
|
29
|
+
"LIMIT_EXCEEDED"
|
|
30
|
+
]);
|
|
31
|
+
var WooCartRestoreSupportedSnapshotV1Schema = z.strictObject({
|
|
32
|
+
schemaVersion: z.literal(WOO_CART_RESTORE_SNAPSHOT_VERSION),
|
|
33
|
+
kind: z.literal("supported"),
|
|
34
|
+
appliedCouponCodes: WooAppliedCouponCodesV1Schema,
|
|
35
|
+
lines: z.array(WooCartRestoreLineV1Schema).min(1).max(50)
|
|
36
|
+
});
|
|
37
|
+
var WooCartRestoreUnsupportedSnapshotV1Schema = z.strictObject({
|
|
38
|
+
schemaVersion: z.literal(WOO_CART_RESTORE_SNAPSHOT_VERSION),
|
|
39
|
+
kind: z.literal("unsupported"),
|
|
40
|
+
reason: WooCartRestoreUnsupportedReasonV1Schema,
|
|
41
|
+
appliedCouponCodes: WooAppliedCouponCodesV1Schema
|
|
42
|
+
});
|
|
43
|
+
var WooCartRestoreSnapshotV1Schema = z.discriminatedUnion("kind", [
|
|
44
|
+
WooCartRestoreSupportedSnapshotV1Schema,
|
|
45
|
+
WooCartRestoreUnsupportedSnapshotV1Schema
|
|
46
|
+
]);
|
|
47
|
+
var WooCheckoutRestoreExtensionV1Schema = z.strictObject({
|
|
48
|
+
restoration: WooCartRestoreSnapshotV1Schema.optional()
|
|
49
|
+
});
|
|
50
|
+
var WooRestoreResolveRequestV1Schema = z.strictObject({
|
|
51
|
+
schemaVersion: z.literal(WOO_RESTORE_RESOLVE_VERSION),
|
|
52
|
+
recoveryId: WooOpaqueRecoveryIdSchema,
|
|
53
|
+
token: z.string().length(43).regex(/^[A-Za-z0-9_-]{43}$/)
|
|
54
|
+
});
|
|
55
|
+
var WooRestoreOutreachOfferV1Schema = z.discriminatedUnion("kind", [
|
|
56
|
+
z.strictObject({
|
|
57
|
+
kind: z.literal("NONE"),
|
|
58
|
+
reason: z.enum(["NO_CONFIRMED_OFFER", "UNVERIFIABLE"])
|
|
59
|
+
}),
|
|
60
|
+
z.strictObject({
|
|
61
|
+
kind: z.literal("CHECKOUT_CODE"),
|
|
62
|
+
code: WooNoControlTextSchema(128),
|
|
63
|
+
providerDiscountId: WooNoControlTextSchema(191)
|
|
64
|
+
}),
|
|
65
|
+
z.strictObject({
|
|
66
|
+
kind: z.literal("CHECKOUT_AUTOMATIC"),
|
|
67
|
+
providerDiscountId: WooNoControlTextSchema(191)
|
|
68
|
+
}),
|
|
69
|
+
z.strictObject({ kind: z.literal("ALTERNATIVE_PRODUCT") })
|
|
70
|
+
]);
|
|
71
|
+
var WooRestoreResolveResponseV1Schema = z.strictObject({
|
|
72
|
+
schemaVersion: z.literal(WOO_RESTORE_RESOLVE_VERSION),
|
|
73
|
+
status: z.literal("eligible"),
|
|
74
|
+
recoveryId: WooOpaqueRecoveryIdSchema,
|
|
75
|
+
checkoutKey: WooOpaqueRecoveryIdSchema,
|
|
76
|
+
snapshot: WooCartRestoreSupportedSnapshotV1Schema,
|
|
77
|
+
outreachOffer: WooRestoreOutreachOfferV1Schema
|
|
78
|
+
});
|
|
79
|
+
export {
|
|
80
|
+
WOO_CART_RESTORE_SNAPSHOT_VERSION,
|
|
81
|
+
WOO_RESTORE_RESOLVE_VERSION,
|
|
82
|
+
WooCartRestoreLineV1Schema,
|
|
83
|
+
WooCartRestoreSnapshotV1Schema,
|
|
84
|
+
WooCartRestoreSupportedSnapshotV1Schema,
|
|
85
|
+
WooCartRestoreUnsupportedReasonV1Schema,
|
|
86
|
+
WooCartRestoreUnsupportedSnapshotV1Schema,
|
|
87
|
+
WooCheckoutRestoreExtensionV1Schema,
|
|
88
|
+
WooRestoreOutreachOfferV1Schema,
|
|
89
|
+
WooRestoreResolveRequestV1Schema,
|
|
90
|
+
WooRestoreResolveResponseV1Schema
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/woocommerce/contracts.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const WOO_CART_RESTORE_SNAPSHOT_VERSION = \"woo.cart-restore.v1\" as const;\nexport const WOO_RESTORE_RESOLVE_VERSION = \"woo.restore.resolve.v1\" as const;\n\n// Wire IDs remain strings because WordPress/PHP may emit IDs beyond JavaScript's\n// safe-integer range. WooCommerce validates their meaning.\nconst WooPositiveDecimalIdSchema = z.string()\n .min(1).max(20).regex(/^[1-9][0-9]*$/);\nconst WooOpaqueRecoveryIdSchema = z.string()\n .min(1).max(128).regex(/^[A-Za-z0-9][A-Za-z0-9._:~-]{0,127}$/);\nconst WooNoControlTextSchema = (max: number) => z.string()\n .min(1).max(max).regex(/^[^\\p{Cc}]+$/u);\n\n// This refinement enforces only the structural ten-property limit.\nconst WooRestoreAttributesV1Schema = z.record(\n WooNoControlTextSchema(80), WooNoControlTextSchema(200),\n).superRefine((value, ctx) => {\n if (Object.keys(value).length > 10) {\n ctx.addIssue({ code: \"custom\", message: \"Too many attributes\" });\n }\n});\n\nconst WooAppliedCouponCodesV1Schema = z.array(WooNoControlTextSchema(128)).max(10);\n\nexport const WooCartRestoreLineV1Schema = z.strictObject({\n productId: WooPositiveDecimalIdSchema,\n variationId: WooPositiveDecimalIdSchema.optional(),\n quantity: z.number().int().min(1).max(100_000),\n attributes: WooRestoreAttributesV1Schema.optional(),\n});\nexport type WooCartRestoreLineV1 = z.infer<typeof WooCartRestoreLineV1Schema>;\n\nexport const WooCartRestoreUnsupportedReasonV1Schema = z.enum([\n \"ITEMS_UNAVAILABLE\",\n \"UNSUPPORTED_PRODUCT_TYPE\",\n \"CUSTOM_CART_ITEM_DATA\",\n \"INVALID_VARIATION\",\n \"COUPONS_UNAVAILABLE\",\n \"LIMIT_EXCEEDED\",\n]);\nexport type WooCartRestoreUnsupportedReasonV1 =\n z.infer<typeof WooCartRestoreUnsupportedReasonV1Schema>;\n\nexport const WooCartRestoreSupportedSnapshotV1Schema = z.strictObject({\n schemaVersion: z.literal(WOO_CART_RESTORE_SNAPSHOT_VERSION),\n kind: z.literal(\"supported\"),\n appliedCouponCodes: WooAppliedCouponCodesV1Schema,\n lines: z.array(WooCartRestoreLineV1Schema).min(1).max(50),\n});\nexport type WooCartRestoreSupportedSnapshotV1 =\n z.infer<typeof WooCartRestoreSupportedSnapshotV1Schema>;\n\nexport const WooCartRestoreUnsupportedSnapshotV1Schema = z.strictObject({\n schemaVersion: z.literal(WOO_CART_RESTORE_SNAPSHOT_VERSION),\n kind: z.literal(\"unsupported\"),\n reason: WooCartRestoreUnsupportedReasonV1Schema,\n appliedCouponCodes: WooAppliedCouponCodesV1Schema,\n});\nexport type WooCartRestoreUnsupportedSnapshotV1 =\n z.infer<typeof WooCartRestoreUnsupportedSnapshotV1Schema>;\n\nexport const WooCartRestoreSnapshotV1Schema = z.discriminatedUnion(\"kind\", [\n WooCartRestoreSupportedSnapshotV1Schema,\n WooCartRestoreUnsupportedSnapshotV1Schema,\n]);\nexport type WooCartRestoreSnapshotV1 = z.infer<typeof WooCartRestoreSnapshotV1Schema>;\n\n// Extension for API-001's canonical v1 checkout object; not a checkout event\n// identity, contact or phone-proof schema.\nexport const WooCheckoutRestoreExtensionV1Schema = z.strictObject({\n restoration: WooCartRestoreSnapshotV1Schema.optional(),\n});\nexport type WooCheckoutRestoreExtensionV1 =\n z.infer<typeof WooCheckoutRestoreExtensionV1Schema>;\n\nexport const WooRestoreResolveRequestV1Schema = z.strictObject({\n schemaVersion: z.literal(WOO_RESTORE_RESOLVE_VERSION),\n recoveryId: WooOpaqueRecoveryIdSchema,\n token: z.string().length(43).regex(/^[A-Za-z0-9_-]{43}$/),\n});\nexport type WooRestoreResolveRequestV1 = z.infer<typeof WooRestoreResolveRequestV1Schema>;\n\n// This describes a previously confirmed offer. Eligibility and provenance are\n// enforced by API-003, not by this wire-shape schema.\nexport const WooRestoreOutreachOfferV1Schema = z.discriminatedUnion(\"kind\", [\n z.strictObject({\n kind: z.literal(\"NONE\"),\n reason: z.enum([\"NO_CONFIRMED_OFFER\", \"UNVERIFIABLE\"]),\n }),\n z.strictObject({\n kind: z.literal(\"CHECKOUT_CODE\"),\n code: WooNoControlTextSchema(128),\n providerDiscountId: WooNoControlTextSchema(191),\n }),\n z.strictObject({\n kind: z.literal(\"CHECKOUT_AUTOMATIC\"),\n providerDiscountId: WooNoControlTextSchema(191),\n }),\n z.strictObject({ kind: z.literal(\"ALTERNATIVE_PRODUCT\") }),\n]);\nexport type WooRestoreOutreachOfferV1 = z.infer<typeof WooRestoreOutreachOfferV1Schema>;\n\nexport const WooRestoreResolveResponseV1Schema = z.strictObject({\n schemaVersion: z.literal(WOO_RESTORE_RESOLVE_VERSION),\n status: z.literal(\"eligible\"),\n recoveryId: WooOpaqueRecoveryIdSchema,\n checkoutKey: WooOpaqueRecoveryIdSchema,\n snapshot: WooCartRestoreSupportedSnapshotV1Schema,\n outreachOffer: WooRestoreOutreachOfferV1Schema,\n});\nexport type WooRestoreResolveResponseV1 =\n z.infer<typeof WooRestoreResolveResponseV1Schema>;\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@modainteract/moda-interact-shared",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -54,6 +54,11 @@
|
|
|
54
54
|
"import": "./dist/identity/index.js"
|
|
55
55
|
},
|
|
56
56
|
"./identity/fixtures": "./fixtures/identity-v1.json",
|
|
57
|
+
"./woocommerce": {
|
|
58
|
+
"types": "./dist/woocommerce/index.d.ts",
|
|
59
|
+
"import": "./dist/woocommerce/index.js"
|
|
60
|
+
},
|
|
61
|
+
"./woocommerce/fixtures": "./src/woocommerce/__fixtures__/woo-restore-v1.json",
|
|
57
62
|
"./shopify": {
|
|
58
63
|
"types": "./dist/shopify/index.d.ts",
|
|
59
64
|
"import": "./dist/shopify/index.js"
|
|
@@ -126,7 +131,8 @@
|
|
|
126
131
|
"files": [
|
|
127
132
|
"dist",
|
|
128
133
|
"fixtures/identity-v1.json",
|
|
129
|
-
"fixtures/meta-template-status-v2.json"
|
|
134
|
+
"fixtures/meta-template-status-v2.json",
|
|
135
|
+
"src/woocommerce/__fixtures__/woo-restore-v1.json"
|
|
130
136
|
],
|
|
131
137
|
"scripts": {
|
|
132
138
|
"build": "tsup",
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"supportedSnapshot": {
|
|
3
|
+
"schemaVersion": "woo.cart-restore.v1",
|
|
4
|
+
"kind": "supported",
|
|
5
|
+
"appliedCouponCodes": ["save10", "freeship"],
|
|
6
|
+
"lines": [
|
|
7
|
+
{"productId": "101", "quantity": 2},
|
|
8
|
+
{
|
|
9
|
+
"productId": "202",
|
|
10
|
+
"variationId": "207",
|
|
11
|
+
"quantity": 1,
|
|
12
|
+
"attributes": {
|
|
13
|
+
"attribute_pa_color": "navy",
|
|
14
|
+
"attribute_pa_size": "m"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
"unsupportedSnapshot": {
|
|
20
|
+
"schemaVersion": "woo.cart-restore.v1",
|
|
21
|
+
"kind": "unsupported",
|
|
22
|
+
"reason": "CUSTOM_CART_ITEM_DATA",
|
|
23
|
+
"appliedCouponCodes": ["save10"]
|
|
24
|
+
},
|
|
25
|
+
"resolveRequest": {
|
|
26
|
+
"schemaVersion": "woo.restore.resolve.v1",
|
|
27
|
+
"recoveryId": "recovery_456",
|
|
28
|
+
"token": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
|
|
29
|
+
},
|
|
30
|
+
"eligibleResolveResponse": {
|
|
31
|
+
"schemaVersion": "woo.restore.resolve.v1",
|
|
32
|
+
"status": "eligible",
|
|
33
|
+
"recoveryId": "recovery_456",
|
|
34
|
+
"checkoutKey": "woo-example-checkout",
|
|
35
|
+
"snapshot": {
|
|
36
|
+
"schemaVersion": "woo.cart-restore.v1",
|
|
37
|
+
"kind": "supported",
|
|
38
|
+
"appliedCouponCodes": ["save10", "freeship"],
|
|
39
|
+
"lines": [
|
|
40
|
+
{"productId": "101", "quantity": 2},
|
|
41
|
+
{
|
|
42
|
+
"productId": "202",
|
|
43
|
+
"variationId": "207",
|
|
44
|
+
"quantity": 1,
|
|
45
|
+
"attributes": {"attribute_pa_color": "navy", "attribute_pa_size": "m"}
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"outreachOffer": {
|
|
50
|
+
"kind": "CHECKOUT_CODE",
|
|
51
|
+
"code": "EXTRA15",
|
|
52
|
+
"providerDiscountId": "woo-discount-915"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"outreachOfferExamples": {
|
|
56
|
+
"none": {"kind": "NONE", "reason": "NO_CONFIRMED_OFFER"},
|
|
57
|
+
"unverifiable": {"kind": "NONE", "reason": "UNVERIFIABLE"},
|
|
58
|
+
"checkoutCode": {
|
|
59
|
+
"kind": "CHECKOUT_CODE",
|
|
60
|
+
"code": "EXTRA15",
|
|
61
|
+
"providerDiscountId": "woo-discount-915"
|
|
62
|
+
},
|
|
63
|
+
"checkoutAutomatic": {
|
|
64
|
+
"kind": "CHECKOUT_AUTOMATIC",
|
|
65
|
+
"providerDiscountId": "woo-discount-916"
|
|
66
|
+
},
|
|
67
|
+
"alternativeProduct": {"kind": "ALTERNATIVE_PRODUCT"}
|
|
68
|
+
}
|
|
69
|
+
}
|