@modainteract/moda-interact-shared 2.5.1 → 2.6.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-QJNZJACH.js → chunk-GFAARCMY.js} +208 -225
- package/dist/chunk-GFAARCMY.js.map +1 -0
- package/dist/chunk-QVPEX7KY.js +54 -0
- package/dist/chunk-QVPEX7KY.js.map +1 -0
- package/dist/{chunk-XUTUA6JD.js → chunk-YI62KDTG.js} +5 -3
- package/dist/{chunk-XUTUA6JD.js.map → chunk-YI62KDTG.js.map} +1 -1
- package/dist/commerce/index.d.ts +10 -3
- package/dist/commerce/index.js +25 -12
- package/dist/commerce/index.js.map +1 -1
- package/dist/commerce/model/node.d.ts +2 -2
- package/dist/commerce/model/node.js +2 -1
- package/dist/commerce/model/node.js.map +1 -1
- package/dist/commerce/runner/index.d.ts +3 -3
- package/dist/commerce/runner/index.js +5 -3
- package/dist/commerce/runner/index.js.map +1 -1
- package/dist/recovery-offer-proof.d.ts +133 -0
- package/dist/recovery-offer-proof.js +70 -0
- package/dist/recovery-offer-proof.js.map +1 -0
- package/dist/recovery-template-bindings.d.ts +142 -0
- package/dist/recovery-template-bindings.js +62 -0
- package/dist/recovery-template-bindings.js.map +1 -0
- package/dist/{response-DjZkLFT7.d.ts → response-B0UmFDrU.d.ts} +67 -1
- package/dist/{types-LT58TPMW.d.ts → types-D89lgpvg.d.ts} +1 -1
- package/package.json +9 -1
- package/dist/chunk-QJNZJACH.js.map +0 -1
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
declare const RecoveryTemplateSemanticKeySchema: z.ZodEnum<{
|
|
4
|
+
"customer.firstName": "customer.firstName";
|
|
5
|
+
"shop.name": "shop.name";
|
|
6
|
+
"shop.categoryName": "shop.categoryName";
|
|
7
|
+
"checkout.url": "checkout.url";
|
|
8
|
+
"checkout.itemsSummary": "checkout.itemsSummary";
|
|
9
|
+
"offer.code": "offer.code";
|
|
10
|
+
"offer.description": "offer.description";
|
|
11
|
+
"promotion.productName": "promotion.productName";
|
|
12
|
+
"promotion.productUrl": "promotion.productUrl";
|
|
13
|
+
"promotion.offerDescription": "promotion.offerDescription";
|
|
14
|
+
"promotion.code": "promotion.code";
|
|
15
|
+
"shopBrand.brandName": "shopBrand.brandName";
|
|
16
|
+
"shopBrand.logoUrl": "shopBrand.logoUrl";
|
|
17
|
+
"shopBrand.logoAltText": "shopBrand.logoAltText";
|
|
18
|
+
"shopBrand.logoWidth": "shopBrand.logoWidth";
|
|
19
|
+
"shopBrand.logoHeight": "shopBrand.logoHeight";
|
|
20
|
+
"shopBrand.squareLogoUrl": "shopBrand.squareLogoUrl";
|
|
21
|
+
"shopBrand.squareLogoAltText": "shopBrand.squareLogoAltText";
|
|
22
|
+
"shopBrand.coverImageUrl": "shopBrand.coverImageUrl";
|
|
23
|
+
}>;
|
|
24
|
+
type RecoveryTemplateSemanticKey = z.infer<typeof RecoveryTemplateSemanticKeySchema>;
|
|
25
|
+
declare const RecoveryPromotionTargetSchema: z.ZodEnum<{
|
|
26
|
+
CHECKOUT: "CHECKOUT";
|
|
27
|
+
ALTERNATIVE_PRODUCT: "ALTERNATIVE_PRODUCT";
|
|
28
|
+
}>;
|
|
29
|
+
type RecoveryPromotionTarget = z.infer<typeof RecoveryPromotionTargetSchema>;
|
|
30
|
+
declare const RecoveryTemplateHeaderMediaRoleSchema: z.ZodEnum<{
|
|
31
|
+
LOGO: "LOGO";
|
|
32
|
+
SQUARE_LOGO: "SQUARE_LOGO";
|
|
33
|
+
COVER_IMAGE: "COVER_IMAGE";
|
|
34
|
+
CHECKOUT_PRODUCT: "CHECKOUT_PRODUCT";
|
|
35
|
+
}>;
|
|
36
|
+
type RecoveryTemplateHeaderMediaRole = z.infer<typeof RecoveryTemplateHeaderMediaRoleSchema>;
|
|
37
|
+
declare const RecoveryTemplateTextBindingSchema: z.ZodObject<{
|
|
38
|
+
position: z.ZodNumber;
|
|
39
|
+
variable: z.ZodEnum<{
|
|
40
|
+
"customer.firstName": "customer.firstName";
|
|
41
|
+
"shop.name": "shop.name";
|
|
42
|
+
"shop.categoryName": "shop.categoryName";
|
|
43
|
+
"checkout.url": "checkout.url";
|
|
44
|
+
"checkout.itemsSummary": "checkout.itemsSummary";
|
|
45
|
+
"offer.code": "offer.code";
|
|
46
|
+
"offer.description": "offer.description";
|
|
47
|
+
"promotion.productName": "promotion.productName";
|
|
48
|
+
"promotion.productUrl": "promotion.productUrl";
|
|
49
|
+
"promotion.offerDescription": "promotion.offerDescription";
|
|
50
|
+
"promotion.code": "promotion.code";
|
|
51
|
+
"shopBrand.brandName": "shopBrand.brandName";
|
|
52
|
+
"shopBrand.logoUrl": "shopBrand.logoUrl";
|
|
53
|
+
"shopBrand.logoAltText": "shopBrand.logoAltText";
|
|
54
|
+
"shopBrand.logoWidth": "shopBrand.logoWidth";
|
|
55
|
+
"shopBrand.logoHeight": "shopBrand.logoHeight";
|
|
56
|
+
"shopBrand.squareLogoUrl": "shopBrand.squareLogoUrl";
|
|
57
|
+
"shopBrand.squareLogoAltText": "shopBrand.squareLogoAltText";
|
|
58
|
+
"shopBrand.coverImageUrl": "shopBrand.coverImageUrl";
|
|
59
|
+
}>;
|
|
60
|
+
}, z.core.$strict>;
|
|
61
|
+
type RecoveryTemplateTextBinding = z.infer<typeof RecoveryTemplateTextBindingSchema>;
|
|
62
|
+
declare const RecoveryTemplateUrlButtonBindingSchema: z.ZodObject<{
|
|
63
|
+
index: z.ZodNumber;
|
|
64
|
+
subType: z.ZodLiteral<"url">;
|
|
65
|
+
variable: z.ZodEnum<{
|
|
66
|
+
"checkout.url": "checkout.url";
|
|
67
|
+
"promotion.productUrl": "promotion.productUrl";
|
|
68
|
+
}>;
|
|
69
|
+
}, z.core.$strict>;
|
|
70
|
+
type RecoveryTemplateUrlButtonBinding = z.infer<typeof RecoveryTemplateUrlButtonBindingSchema>;
|
|
71
|
+
declare const RecoveryTemplateFrozenBindingsSchema: z.ZodObject<{
|
|
72
|
+
schemaVersion: z.ZodOptional<z.ZodLiteral<1>>;
|
|
73
|
+
promotionTarget: z.ZodOptional<z.ZodEnum<{
|
|
74
|
+
CHECKOUT: "CHECKOUT";
|
|
75
|
+
ALTERNATIVE_PRODUCT: "ALTERNATIVE_PRODUCT";
|
|
76
|
+
}>>;
|
|
77
|
+
headerMediaRole: z.ZodOptional<z.ZodEnum<{
|
|
78
|
+
LOGO: "LOGO";
|
|
79
|
+
SQUARE_LOGO: "SQUARE_LOGO";
|
|
80
|
+
COVER_IMAGE: "COVER_IMAGE";
|
|
81
|
+
CHECKOUT_PRODUCT: "CHECKOUT_PRODUCT";
|
|
82
|
+
}>>;
|
|
83
|
+
header: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
84
|
+
position: z.ZodNumber;
|
|
85
|
+
variable: z.ZodEnum<{
|
|
86
|
+
"customer.firstName": "customer.firstName";
|
|
87
|
+
"shop.name": "shop.name";
|
|
88
|
+
"shop.categoryName": "shop.categoryName";
|
|
89
|
+
"checkout.url": "checkout.url";
|
|
90
|
+
"checkout.itemsSummary": "checkout.itemsSummary";
|
|
91
|
+
"offer.code": "offer.code";
|
|
92
|
+
"offer.description": "offer.description";
|
|
93
|
+
"promotion.productName": "promotion.productName";
|
|
94
|
+
"promotion.productUrl": "promotion.productUrl";
|
|
95
|
+
"promotion.offerDescription": "promotion.offerDescription";
|
|
96
|
+
"promotion.code": "promotion.code";
|
|
97
|
+
"shopBrand.brandName": "shopBrand.brandName";
|
|
98
|
+
"shopBrand.logoUrl": "shopBrand.logoUrl";
|
|
99
|
+
"shopBrand.logoAltText": "shopBrand.logoAltText";
|
|
100
|
+
"shopBrand.logoWidth": "shopBrand.logoWidth";
|
|
101
|
+
"shopBrand.logoHeight": "shopBrand.logoHeight";
|
|
102
|
+
"shopBrand.squareLogoUrl": "shopBrand.squareLogoUrl";
|
|
103
|
+
"shopBrand.squareLogoAltText": "shopBrand.squareLogoAltText";
|
|
104
|
+
"shopBrand.coverImageUrl": "shopBrand.coverImageUrl";
|
|
105
|
+
}>;
|
|
106
|
+
}, z.core.$strict>>>;
|
|
107
|
+
body: z.ZodArray<z.ZodObject<{
|
|
108
|
+
position: z.ZodNumber;
|
|
109
|
+
variable: z.ZodEnum<{
|
|
110
|
+
"customer.firstName": "customer.firstName";
|
|
111
|
+
"shop.name": "shop.name";
|
|
112
|
+
"shop.categoryName": "shop.categoryName";
|
|
113
|
+
"checkout.url": "checkout.url";
|
|
114
|
+
"checkout.itemsSummary": "checkout.itemsSummary";
|
|
115
|
+
"offer.code": "offer.code";
|
|
116
|
+
"offer.description": "offer.description";
|
|
117
|
+
"promotion.productName": "promotion.productName";
|
|
118
|
+
"promotion.productUrl": "promotion.productUrl";
|
|
119
|
+
"promotion.offerDescription": "promotion.offerDescription";
|
|
120
|
+
"promotion.code": "promotion.code";
|
|
121
|
+
"shopBrand.brandName": "shopBrand.brandName";
|
|
122
|
+
"shopBrand.logoUrl": "shopBrand.logoUrl";
|
|
123
|
+
"shopBrand.logoAltText": "shopBrand.logoAltText";
|
|
124
|
+
"shopBrand.logoWidth": "shopBrand.logoWidth";
|
|
125
|
+
"shopBrand.logoHeight": "shopBrand.logoHeight";
|
|
126
|
+
"shopBrand.squareLogoUrl": "shopBrand.squareLogoUrl";
|
|
127
|
+
"shopBrand.squareLogoAltText": "shopBrand.squareLogoAltText";
|
|
128
|
+
"shopBrand.coverImageUrl": "shopBrand.coverImageUrl";
|
|
129
|
+
}>;
|
|
130
|
+
}, z.core.$strict>>;
|
|
131
|
+
buttons: z.ZodArray<z.ZodObject<{
|
|
132
|
+
index: z.ZodNumber;
|
|
133
|
+
subType: z.ZodLiteral<"url">;
|
|
134
|
+
variable: z.ZodEnum<{
|
|
135
|
+
"checkout.url": "checkout.url";
|
|
136
|
+
"promotion.productUrl": "promotion.productUrl";
|
|
137
|
+
}>;
|
|
138
|
+
}, z.core.$strict>>;
|
|
139
|
+
}, z.core.$strict>;
|
|
140
|
+
type RecoveryTemplateFrozenBindings = z.infer<typeof RecoveryTemplateFrozenBindingsSchema>;
|
|
141
|
+
|
|
142
|
+
export { type RecoveryPromotionTarget, RecoveryPromotionTargetSchema, type RecoveryTemplateFrozenBindings, RecoveryTemplateFrozenBindingsSchema, type RecoveryTemplateHeaderMediaRole, RecoveryTemplateHeaderMediaRoleSchema, type RecoveryTemplateSemanticKey, RecoveryTemplateSemanticKeySchema, type RecoveryTemplateTextBinding, RecoveryTemplateTextBindingSchema, type RecoveryTemplateUrlButtonBinding, RecoveryTemplateUrlButtonBindingSchema };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// src/recovery-template-bindings.ts
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
var RecoveryTemplateSemanticKeySchema = z.enum([
|
|
4
|
+
"customer.firstName",
|
|
5
|
+
"shop.name",
|
|
6
|
+
"shop.categoryName",
|
|
7
|
+
"checkout.url",
|
|
8
|
+
"checkout.itemsSummary",
|
|
9
|
+
"offer.code",
|
|
10
|
+
"offer.description",
|
|
11
|
+
"promotion.productName",
|
|
12
|
+
"promotion.productUrl",
|
|
13
|
+
"promotion.offerDescription",
|
|
14
|
+
"promotion.code",
|
|
15
|
+
"shopBrand.brandName",
|
|
16
|
+
"shopBrand.logoUrl",
|
|
17
|
+
"shopBrand.logoAltText",
|
|
18
|
+
"shopBrand.logoWidth",
|
|
19
|
+
"shopBrand.logoHeight",
|
|
20
|
+
"shopBrand.squareLogoUrl",
|
|
21
|
+
"shopBrand.squareLogoAltText",
|
|
22
|
+
"shopBrand.coverImageUrl"
|
|
23
|
+
]);
|
|
24
|
+
var RecoveryPromotionTargetSchema = z.enum([
|
|
25
|
+
"CHECKOUT",
|
|
26
|
+
"ALTERNATIVE_PRODUCT"
|
|
27
|
+
]);
|
|
28
|
+
var RecoveryTemplateHeaderMediaRoleSchema = z.enum([
|
|
29
|
+
"LOGO",
|
|
30
|
+
"SQUARE_LOGO",
|
|
31
|
+
"COVER_IMAGE",
|
|
32
|
+
"CHECKOUT_PRODUCT"
|
|
33
|
+
]);
|
|
34
|
+
var RecoveryTemplateTextBindingSchema = z.strictObject({
|
|
35
|
+
position: z.number().int(),
|
|
36
|
+
variable: RecoveryTemplateSemanticKeySchema
|
|
37
|
+
});
|
|
38
|
+
var RecoveryTemplateUrlButtonBindingSchema = z.strictObject({
|
|
39
|
+
index: z.number().int(),
|
|
40
|
+
subType: z.literal("url"),
|
|
41
|
+
variable: z.enum([
|
|
42
|
+
"checkout.url",
|
|
43
|
+
"promotion.productUrl"
|
|
44
|
+
])
|
|
45
|
+
});
|
|
46
|
+
var RecoveryTemplateFrozenBindingsSchema = z.strictObject({
|
|
47
|
+
schemaVersion: z.literal(1).optional(),
|
|
48
|
+
promotionTarget: RecoveryPromotionTargetSchema.optional(),
|
|
49
|
+
headerMediaRole: RecoveryTemplateHeaderMediaRoleSchema.optional(),
|
|
50
|
+
header: z.array(RecoveryTemplateTextBindingSchema).optional(),
|
|
51
|
+
body: z.array(RecoveryTemplateTextBindingSchema),
|
|
52
|
+
buttons: z.array(RecoveryTemplateUrlButtonBindingSchema)
|
|
53
|
+
});
|
|
54
|
+
export {
|
|
55
|
+
RecoveryPromotionTargetSchema,
|
|
56
|
+
RecoveryTemplateFrozenBindingsSchema,
|
|
57
|
+
RecoveryTemplateHeaderMediaRoleSchema,
|
|
58
|
+
RecoveryTemplateSemanticKeySchema,
|
|
59
|
+
RecoveryTemplateTextBindingSchema,
|
|
60
|
+
RecoveryTemplateUrlButtonBindingSchema
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=recovery-template-bindings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/recovery-template-bindings.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const RecoveryTemplateSemanticKeySchema = z.enum([\n \"customer.firstName\",\n \"shop.name\",\n \"shop.categoryName\",\n \"checkout.url\",\n \"checkout.itemsSummary\",\n \"offer.code\",\n \"offer.description\",\n \"promotion.productName\",\n \"promotion.productUrl\",\n \"promotion.offerDescription\",\n \"promotion.code\",\n \"shopBrand.brandName\",\n \"shopBrand.logoUrl\",\n \"shopBrand.logoAltText\",\n \"shopBrand.logoWidth\",\n \"shopBrand.logoHeight\",\n \"shopBrand.squareLogoUrl\",\n \"shopBrand.squareLogoAltText\",\n \"shopBrand.coverImageUrl\",\n]);\nexport type RecoveryTemplateSemanticKey =\n z.infer<typeof RecoveryTemplateSemanticKeySchema>;\n\nexport const RecoveryPromotionTargetSchema = z.enum([\n \"CHECKOUT\",\n \"ALTERNATIVE_PRODUCT\",\n]);\nexport type RecoveryPromotionTarget =\n z.infer<typeof RecoveryPromotionTargetSchema>;\n\nexport const RecoveryTemplateHeaderMediaRoleSchema = z.enum([\n \"LOGO\",\n \"SQUARE_LOGO\",\n \"COVER_IMAGE\",\n \"CHECKOUT_PRODUCT\",\n]);\nexport type RecoveryTemplateHeaderMediaRole =\n z.infer<typeof RecoveryTemplateHeaderMediaRoleSchema>;\n\nexport const RecoveryTemplateTextBindingSchema = z.strictObject({\n position: z.number().int(),\n variable: RecoveryTemplateSemanticKeySchema,\n});\nexport type RecoveryTemplateTextBinding =\n z.infer<typeof RecoveryTemplateTextBindingSchema>;\n\nexport const RecoveryTemplateUrlButtonBindingSchema = z.strictObject({\n index: z.number().int(),\n subType: z.literal(\"url\"),\n variable: z.enum([\n \"checkout.url\",\n \"promotion.productUrl\",\n ]),\n});\nexport type RecoveryTemplateUrlButtonBinding =\n z.infer<typeof RecoveryTemplateUrlButtonBindingSchema>;\n\nexport const RecoveryTemplateFrozenBindingsSchema = z.strictObject({\n schemaVersion: z.literal(1).optional(),\n promotionTarget: RecoveryPromotionTargetSchema.optional(),\n headerMediaRole: RecoveryTemplateHeaderMediaRoleSchema.optional(),\n header: z.array(RecoveryTemplateTextBindingSchema).optional(),\n body: z.array(RecoveryTemplateTextBindingSchema),\n buttons: z.array(RecoveryTemplateUrlButtonBindingSchema),\n});\nexport type RecoveryTemplateFrozenBindings =\n z.infer<typeof RecoveryTemplateFrozenBindingsSchema>;\n"],"mappings":";AAAA,SAAS,SAAS;AAEX,IAAM,oCAAoC,EAAE,KAAK;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAIM,IAAM,gCAAgC,EAAE,KAAK;AAAA,EAClD;AAAA,EACA;AACF,CAAC;AAIM,IAAM,wCAAwC,EAAE,KAAK;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAIM,IAAM,oCAAoC,EAAE,aAAa;AAAA,EAC9D,UAAU,EAAE,OAAO,EAAE,IAAI;AAAA,EACzB,UAAU;AACZ,CAAC;AAIM,IAAM,yCAAyC,EAAE,aAAa;AAAA,EACnE,OAAO,EAAE,OAAO,EAAE,IAAI;AAAA,EACtB,SAAS,EAAE,QAAQ,KAAK;AAAA,EACxB,UAAU,EAAE,KAAK;AAAA,IACf;AAAA,IACA;AAAA,EACF,CAAC;AACH,CAAC;AAIM,IAAM,uCAAuC,EAAE,aAAa;AAAA,EACjE,eAAe,EAAE,QAAQ,CAAC,EAAE,SAAS;AAAA,EACrC,iBAAiB,8BAA8B,SAAS;AAAA,EACxD,iBAAiB,sCAAsC,SAAS;AAAA,EAChE,QAAQ,EAAE,MAAM,iCAAiC,EAAE,SAAS;AAAA,EAC5D,MAAM,EAAE,MAAM,iCAAiC;AAAA,EAC/C,SAAS,EAAE,MAAM,sCAAsC;AACzD,CAAC;","names":[]}
|
|
@@ -710,6 +710,12 @@ declare const CommerceBasketSchema: z.ZodObject<{
|
|
|
710
710
|
fingerprint: z.ZodString;
|
|
711
711
|
unknownFields: z.ZodArray<z.ZodString>;
|
|
712
712
|
}, z.core.$strict>;
|
|
713
|
+
declare const CommerceProductSaleEvidenceSchema: z.ZodObject<{
|
|
714
|
+
regularPrice: z.ZodNullable<z.ZodString>;
|
|
715
|
+
salePrice: z.ZodNullable<z.ZodString>;
|
|
716
|
+
observedAt: z.ZodISODateTime;
|
|
717
|
+
}, z.core.$strict>;
|
|
718
|
+
type CommerceProductSaleEvidence = z.infer<typeof CommerceProductSaleEvidenceSchema>;
|
|
713
719
|
declare const CommerceProductSchema: z.ZodObject<{
|
|
714
720
|
productId: z.ZodString;
|
|
715
721
|
variantId: z.ZodString;
|
|
@@ -720,6 +726,13 @@ declare const CommerceProductSchema: z.ZodObject<{
|
|
|
720
726
|
currency: z.ZodNullable<z.ZodString>;
|
|
721
727
|
productType: z.ZodNullable<z.ZodString>;
|
|
722
728
|
vendor: z.ZodNullable<z.ZodString>;
|
|
729
|
+
categories: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
730
|
+
imageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
731
|
+
saleEvidence: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
732
|
+
regularPrice: z.ZodNullable<z.ZodString>;
|
|
733
|
+
salePrice: z.ZodNullable<z.ZodString>;
|
|
734
|
+
observedAt: z.ZodISODateTime;
|
|
735
|
+
}, z.core.$strict>>>;
|
|
723
736
|
observedAt: z.ZodISODateTime;
|
|
724
737
|
}, z.core.$strict>;
|
|
725
738
|
declare const CommerceOfferSchema: z.ZodObject<{
|
|
@@ -797,6 +810,13 @@ declare const CommerceAlternativeSchema: z.ZodObject<{
|
|
|
797
810
|
currency: z.ZodNullable<z.ZodString>;
|
|
798
811
|
productType: z.ZodNullable<z.ZodString>;
|
|
799
812
|
vendor: z.ZodNullable<z.ZodString>;
|
|
813
|
+
categories: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
814
|
+
imageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
815
|
+
saleEvidence: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
816
|
+
regularPrice: z.ZodNullable<z.ZodString>;
|
|
817
|
+
salePrice: z.ZodNullable<z.ZodString>;
|
|
818
|
+
observedAt: z.ZodISODateTime;
|
|
819
|
+
}, z.core.$strict>>>;
|
|
800
820
|
observedAt: z.ZodISODateTime;
|
|
801
821
|
}, z.core.$strict>;
|
|
802
822
|
proposal: z.ZodObject<{
|
|
@@ -924,6 +944,10 @@ declare const CommerceToolInputs: {
|
|
|
924
944
|
limit: z.ZodDefault<z.ZodNumber>;
|
|
925
945
|
cursor: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
926
946
|
}, z.core.$strict>;
|
|
947
|
+
commerce_get_product: z.ZodObject<{
|
|
948
|
+
productId: z.ZodString;
|
|
949
|
+
variantId: z.ZodNullable<z.ZodString>;
|
|
950
|
+
}, z.core.$strict>;
|
|
927
951
|
commerce_get_discount_options: z.ZodObject<{}, z.core.$strict>;
|
|
928
952
|
commerce_evaluate_discount: z.ZodObject<{
|
|
929
953
|
offerId: z.ZodString;
|
|
@@ -981,11 +1005,39 @@ declare const CommerceToolOutputs: {
|
|
|
981
1005
|
currency: z.ZodNullable<z.ZodString>;
|
|
982
1006
|
productType: z.ZodNullable<z.ZodString>;
|
|
983
1007
|
vendor: z.ZodNullable<z.ZodString>;
|
|
1008
|
+
categories: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1009
|
+
imageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1010
|
+
saleEvidence: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
1011
|
+
regularPrice: z.ZodNullable<z.ZodString>;
|
|
1012
|
+
salePrice: z.ZodNullable<z.ZodString>;
|
|
1013
|
+
observedAt: z.ZodISODateTime;
|
|
1014
|
+
}, z.core.$strict>>>;
|
|
984
1015
|
observedAt: z.ZodISODateTime;
|
|
985
1016
|
}, z.core.$strict>>;
|
|
986
1017
|
cursor: z.ZodNullable<z.ZodString>;
|
|
987
1018
|
truncated: z.ZodBoolean;
|
|
988
1019
|
}, z.core.$strict>;
|
|
1020
|
+
commerce_get_product: z.ZodObject<{
|
|
1021
|
+
product: z.ZodNullable<z.ZodObject<{
|
|
1022
|
+
productId: z.ZodString;
|
|
1023
|
+
variantId: z.ZodString;
|
|
1024
|
+
title: z.ZodString;
|
|
1025
|
+
url: z.ZodNullable<z.ZodURL>;
|
|
1026
|
+
available: z.ZodNullable<z.ZodBoolean>;
|
|
1027
|
+
unitPrice: z.ZodNullable<z.ZodString>;
|
|
1028
|
+
currency: z.ZodNullable<z.ZodString>;
|
|
1029
|
+
productType: z.ZodNullable<z.ZodString>;
|
|
1030
|
+
vendor: z.ZodNullable<z.ZodString>;
|
|
1031
|
+
categories: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1032
|
+
imageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1033
|
+
saleEvidence: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
1034
|
+
regularPrice: z.ZodNullable<z.ZodString>;
|
|
1035
|
+
salePrice: z.ZodNullable<z.ZodString>;
|
|
1036
|
+
observedAt: z.ZodISODateTime;
|
|
1037
|
+
}, z.core.$strict>>>;
|
|
1038
|
+
observedAt: z.ZodISODateTime;
|
|
1039
|
+
}, z.core.$strict>>;
|
|
1040
|
+
}, z.core.$strict>;
|
|
989
1041
|
commerce_get_discount_options: z.ZodObject<{
|
|
990
1042
|
mode: z.ZodEnum<{
|
|
991
1043
|
NONE: "NONE";
|
|
@@ -1069,6 +1121,13 @@ declare const CommerceToolOutputs: {
|
|
|
1069
1121
|
currency: z.ZodNullable<z.ZodString>;
|
|
1070
1122
|
productType: z.ZodNullable<z.ZodString>;
|
|
1071
1123
|
vendor: z.ZodNullable<z.ZodString>;
|
|
1124
|
+
categories: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1125
|
+
imageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1126
|
+
saleEvidence: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
1127
|
+
regularPrice: z.ZodNullable<z.ZodString>;
|
|
1128
|
+
salePrice: z.ZodNullable<z.ZodString>;
|
|
1129
|
+
observedAt: z.ZodISODateTime;
|
|
1130
|
+
}, z.core.$strict>>>;
|
|
1072
1131
|
observedAt: z.ZodISODateTime;
|
|
1073
1132
|
}, z.core.$strict>;
|
|
1074
1133
|
proposal: z.ZodObject<{
|
|
@@ -1148,6 +1207,13 @@ declare const CommerceToolOutputs: {
|
|
|
1148
1207
|
currency: z.ZodNullable<z.ZodString>;
|
|
1149
1208
|
productType: z.ZodNullable<z.ZodString>;
|
|
1150
1209
|
vendor: z.ZodNullable<z.ZodString>;
|
|
1210
|
+
categories: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1211
|
+
imageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1212
|
+
saleEvidence: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
1213
|
+
regularPrice: z.ZodNullable<z.ZodString>;
|
|
1214
|
+
salePrice: z.ZodNullable<z.ZodString>;
|
|
1215
|
+
observedAt: z.ZodISODateTime;
|
|
1216
|
+
}, z.core.$strict>>>;
|
|
1151
1217
|
observedAt: z.ZodISODateTime;
|
|
1152
1218
|
}, z.core.$strict>;
|
|
1153
1219
|
proposal: z.ZodObject<{
|
|
@@ -1274,4 +1340,4 @@ declare function verifyResponseContract(definition: unknown, hash: string, diges
|
|
|
1274
1340
|
/** JSON Schema branches retain the immutable envelope; only ANSWER details vary. */
|
|
1275
1341
|
declare function finalResponseToolSchema(definition: CommerceResponseContract): Json;
|
|
1276
1342
|
|
|
1277
|
-
export {
|
|
1343
|
+
export { ToolDescriptorSchema as $, CommerceToolDefinitionSchema as A, type CommerceToolDraftDefinition as B, type CommerceTurnIdentity as C, type Digest as D, CommerceToolDraftDefinitionSchema as E, CommerceToolIdentitySchema as F, type GrantedTool as G, CommerceToolInputs as H, CommerceToolOutputs as I, CommerceToolResultSchema as J, CommerceToolRevisionIdentitySchema as K, CommerceTurnIdentitySchema as L, DetailsSchemaSchema as M, EMPTY_RESPONSE_CONTRACT as N, type ExternalHttpExecution as O, ExternalHttpExecutionSchema as P, GrantedToolSchema as Q, GrantedToolsSchema as R, type SubsetSchema as S, type ToolDescriptor as T, InputSchemaSchema as U, type Json as V, MONEY_PATTERN as W, POLICY_OPERATIONS as X, POLICY_OPERATION_DESCRIPTORS as Y, ReferralReasonSchema as Z, ResponseTemplateSchema as _, type CommerceConversationGrant as a, ToolNameSchema as a0, canonicalJson as a1, commerceToolResultSchema as a2, compileSubset as a3, definitionToMcpDescriptor as a4, finalResponseSchema as a5, finalResponseToolSchema as a6, jsonBytes as a7, mapToolArguments as a8, matchesSubset as a9, productBelongsToDomain as aa, responseContractCanonicalJson as ab, safeName as ac, safePath as ad, toolHashInput as ae, validateDefinitionForPublication as af, validateDefinitionVersion as ag, validateSubset as ah, verifyResponseContract as ai, type CommerceManifest as b, type CommerceToolResult as c, type CommerceFinalResponse as d, type CommerceToolDefinition as e, CommerceAlternativeSchema as f, CommerceAssertionSchema as g, CommerceBasketSchema as h, CommerceConversationGrantSchema as i, type CommerceDefinitionCompiler as j, CommerceErrorCodeSchema as k, type CommerceEvidence as l, CommerceEvidenceSchema as m, CommerceExecuteAssertionSchema as n, CommerceExecutionSchema as o, CommerceFinalResponseSchema as p, CommerceManifestSchema as q, CommerceOfferSchema as r, type CommerceProductSaleEvidence as s, CommerceProductSaleEvidenceSchema as t, CommerceProductSchema as u, CommerceProposalSchema as v, CommerceReleaseIdentitySchema as w, CommerceResolveAssertionSchema as x, type CommerceResponseContract as y, CommerceResponseContractSchema as z };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as CommerceTurnIdentity, a as CommerceConversationGrant, b as CommerceManifest, T as ToolDescriptor, G as GrantedTool, c as CommerceToolResult, D as Digest, d as CommerceFinalResponse } from './response-
|
|
1
|
+
import { C as CommerceTurnIdentity, a as CommerceConversationGrant, b as CommerceManifest, T as ToolDescriptor, G as GrantedTool, c as CommerceToolResult, D as Digest, d as CommerceFinalResponse } from './response-B0UmFDrU.js';
|
|
2
2
|
import { S as StructuredLogger } from './types-B32wDMLO.js';
|
|
3
3
|
|
|
4
4
|
/** Finite, non-customer-facing failure taxonomy for Commerce hosts and logs. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@modainteract/moda-interact-shared",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -24,6 +24,10 @@
|
|
|
24
24
|
"types": "./dist/recovery-policy.d.ts",
|
|
25
25
|
"import": "./dist/recovery-policy.js"
|
|
26
26
|
},
|
|
27
|
+
"./recovery-offer-proof": {
|
|
28
|
+
"types": "./dist/recovery-offer-proof.d.ts",
|
|
29
|
+
"import": "./dist/recovery-offer-proof.js"
|
|
30
|
+
},
|
|
27
31
|
"./whatsapp": {
|
|
28
32
|
"types": "./dist/whatsapp.d.ts",
|
|
29
33
|
"import": "./dist/whatsapp.js"
|
|
@@ -113,6 +117,10 @@
|
|
|
113
117
|
"./security/credentials/node": {
|
|
114
118
|
"types": "./dist/security/credentials/node.d.ts",
|
|
115
119
|
"import": "./dist/security/credentials/node.js"
|
|
120
|
+
},
|
|
121
|
+
"./recovery-template-bindings": {
|
|
122
|
+
"types": "./dist/recovery-template-bindings.d.ts",
|
|
123
|
+
"import": "./dist/recovery-template-bindings.js"
|
|
116
124
|
}
|
|
117
125
|
},
|
|
118
126
|
"files": [
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commerce/subset.ts","../src/commerce/primitives.ts","../src/commerce/external.ts","../src/commerce/definitions.ts","../src/commerce/definition-size.ts","../src/commerce/response.ts","../src/commerce/schemas.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { canonicalJson, jsonBytes } from \"./canonical-json\";\nexport type Json =\n null | boolean | number | string | Json[] | { [key: string]: Json };\nexport type SubsetSchema = {\n type: string | [string, \"null\"];\n description?: string;\n properties?: Record<string, SubsetSchema>;\n required?: string[];\n additionalProperties?: false;\n items?: SubsetSchema;\n enum?: Array<string | number | boolean | null>;\n minLength?: number;\n maxLength?: number;\n minimum?: number;\n maximum?: number;\n minItems?: number;\n maxItems?: number;\n pattern?: string;\n};\nexport const MONEY_PATTERN = \"^[0-9]{1,18}(\\\\.[0-9]{1,6})?$\";\nexport const safeName = (name: string) =>\n /^[A-Za-z][A-Za-z0-9_]{0,63}$/.test(name) &&\n ![\"__proto__\", \"prototype\", \"constructor\"].includes(name);\nexport const safePath = (path: string) =>\n path.length <= 256 && path.split(\".\").every(safeName);\nconst keywords = [\n \"type\",\n \"description\",\n \"properties\",\n \"required\",\n \"additionalProperties\",\n \"items\",\n \"enum\",\n \"minLength\",\n \"maxLength\",\n \"minimum\",\n \"maximum\",\n \"minItems\",\n \"maxItems\",\n];\nexport function validateSubset(\n value: unknown,\n mode: \"input\" | \"details\",\n): value is SubsetSchema {\n let propertyCount = 0;\n const maxDepth = mode === \"input\" ? 3 : 4;\n function walk(raw: unknown, depth: number): boolean {\n if (\n depth > maxDepth ||\n !raw ||\n typeof raw !== \"object\" ||\n Array.isArray(raw)\n )\n return false;\n const s = raw as SubsetSchema;\n if (\n Object.keys(s).some(\n (k) => !keywords.includes(k) && !(mode === \"input\" && k === \"pattern\"),\n )\n )\n return false;\n const nullable = Array.isArray(s.type);\n if (\n nullable &&\n (mode !== \"input\" || s.type.length !== 2 || s.type[1] !== \"null\")\n )\n return false;\n const type = typeof s.type === \"string\" ? s.type : s.type[0];\n if (\n ![\n \"object\",\n \"string\",\n \"integer\",\n \"boolean\",\n \"array\",\n ...(mode === \"details\" ? [\"number\"] : []),\n ].includes(type)\n )\n return false;\n if (\n s.description !== undefined &&\n (typeof s.description !== \"string\" || s.description.length > 1000)\n )\n return false;\n const specific: Record<string, string[]> = {\n object: [\"properties\", \"required\", \"additionalProperties\"],\n array: [\"items\", \"minItems\", \"maxItems\"],\n string: [\"minLength\", \"maxLength\", \"pattern\"],\n integer: [\"minimum\", \"maximum\"],\n number: [\"minimum\", \"maximum\"],\n boolean: [],\n };\n if (\n Object.keys(s).some(\n (k) =>\n ![\"type\", \"description\", \"enum\"].includes(k) &&\n !specific[type].includes(k),\n )\n )\n return false;\n if (\n s.enum !== undefined &&\n (!Array.isArray(s.enum) ||\n s.enum.length < 1 ||\n s.enum.length > (mode === \"input\" ? 32 : 20) ||\n new Set(s.enum.map((v) => canonicalJson(v))).size !== s.enum.length ||\n s.enum.some((v) =>\n v === null\n ? !nullable\n : typeof v !== (type === \"integer\" ? \"number\" : type) ||\n (type === \"integer\" && !Number.isSafeInteger(v)) ||\n typeof v === \"object\",\n ))\n )\n return false;\n for (const [lo, hi] of [\n [\"minLength\", \"maxLength\"],\n [\"minItems\", \"maxItems\"],\n [\"minimum\", \"maximum\"],\n ] as const) {\n if (\n s[lo] !== undefined &&\n (typeof s[lo] !== \"number\" || !Number.isFinite(s[lo]))\n )\n return false;\n if (\n s[hi] !== undefined &&\n (typeof s[hi] !== \"number\" || !Number.isFinite(s[hi]))\n )\n return false;\n if (\n lo !== \"minimum\" &&\n [s[lo], s[hi]].some(\n (v) => v !== undefined && (!Number.isSafeInteger(v) || v < 0),\n )\n )\n return false;\n if (s[lo] !== undefined && s[hi] !== undefined && s[lo]! > s[hi]!)\n return false;\n }\n if (type === \"string\")\n return (\n s.maxLength !== undefined &&\n s.maxLength <= 4096 &&\n (s.pattern === undefined || s.pattern === MONEY_PATTERN)\n );\n if (type === \"array\")\n return (\n s.maxItems !== undefined &&\n s.maxItems <= (mode === \"input\" ? 100 : 20) &&\n walk(s.items, depth + 1)\n );\n if (type === \"object\") {\n if (\n s.additionalProperties !== false ||\n !s.properties ||\n typeof s.properties !== \"object\" ||\n Array.isArray(s.properties)\n )\n return false;\n const names = Object.keys(s.properties);\n propertyCount += names.length;\n if (\n propertyCount > 32 ||\n names.some((n) => !safeName(n)) ||\n (s.required !== undefined &&\n (!Array.isArray(s.required) ||\n new Set(s.required).size !== s.required.length ||\n s.required.some((n) => !names.includes(n))))\n )\n return false;\n return Object.values(s.properties).every((child) =>\n walk(child, depth + 1),\n );\n }\n return true;\n }\n try {\n return (\n jsonBytes(value) <= 32768 &&\n walk(value, 1) &&\n (value as SubsetSchema).type === \"object\"\n );\n } catch {\n return false;\n }\n}\nexport const InputSchemaSchema = z.custom<SubsetSchema>((v) =>\n validateSubset(v, \"input\"),\n);\nexport const DetailsSchemaSchema = z.custom<SubsetSchema>((v) =>\n validateSubset(v, \"details\"),\n);\nexport function matchesSubset(schema: SubsetSchema, value: unknown): boolean {\n const nullable = Array.isArray(schema.type);\n const type = typeof schema.type === \"string\" ? schema.type : schema.type[0];\n if (value === null)\n return nullable && (!schema.enum || schema.enum.includes(null));\n if (schema.enum && !schema.enum.includes(value as never)) return false;\n if (type === \"string\")\n return (\n typeof value === \"string\" &&\n value.length >= (schema.minLength ?? 0) &&\n value.length <= schema.maxLength! &&\n (!schema.pattern || new RegExp(schema.pattern).test(value))\n );\n if (type === \"boolean\") return typeof value === \"boolean\";\n if (type === \"integer\" || type === \"number\")\n return (\n typeof value === \"number\" &&\n Number.isFinite(value) &&\n (type !== \"integer\" || Number.isSafeInteger(value)) &&\n value >= (schema.minimum ?? -Infinity) &&\n value <= (schema.maximum ?? Infinity)\n );\n if (type === \"array\")\n return (\n Array.isArray(value) &&\n value.length >= (schema.minItems ?? 0) &&\n value.length <= schema.maxItems! &&\n value.every((v) => matchesSubset(schema.items!, v))\n );\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n const obj = value as Record<string, unknown>;\n return (\n Object.keys(obj).every((k) => Object.hasOwn(schema.properties!, k)) &&\n (schema.required ?? []).every((k) => Object.hasOwn(obj, k)) &&\n Object.entries(obj).every(([k, v]) =>\n matchesSubset(schema.properties![k], v),\n )\n );\n}\nexport function compileSubset(schema: SubsetSchema, mode: \"input\" | \"details\") {\n if (!validateSubset(schema, mode)) throw new TypeError(\"Unsupported schema\");\n return z.custom<Record<string, Json>>((value) => {\n try {\n return (\n jsonBytes(value) <= (mode === \"details\" ? 16384 : 131072) &&\n matchesSubset(schema, value)\n );\n } catch {\n return false;\n }\n });\n}\n","import { z } from \"zod\";\nimport {\n canonicaliseLanguageTag,\n normalizeCurrencyCode,\n} from \"../internationalization\";\nimport { jsonBytes } from \"./canonical-json\";\nexport const ContractVersionSchema = z.literal(\"commerce.v1\");\nexport const IdSchema = z\n .string()\n .min(1)\n .max(128)\n .refine(\n (v) =>\n v.trim() === v &&\n ![\"standalone\", \"product-only\", \"unknown-shop\"].includes(v),\n );\nexport const SemverSchema = z\n .string()\n .max(64)\n .regex(/^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$/);\nexport const HashSchema = z.string().regex(/^[a-f0-9]{64}$/);\nexport const DateSchema = z.iso.datetime({ offset: false });\nexport const MoneySchema = z.string().regex(/^[0-9]{1,18}(\\.[0-9]{1,6})?$/);\nexport const CurrencySchema = z.string().refine((v) => {\n try {\n return normalizeCurrencyCode(v) === v;\n } catch {\n return false;\n }\n});\nexport const LanguageSchema = z\n .string()\n .max(128)\n .refine((v) => {\n try {\n return canonicaliseLanguageTag(v) === v;\n } catch {\n return false;\n }\n });\nexport const distinct = <T>(values: T[]) =>\n new Set(values).size === values.length;\nexport const boundedJson = (bytes: number) =>\n z.unknown().refine((v) => {\n try {\n return jsonBytes(v) <= bytes;\n } catch {\n return false;\n }\n });\n","import { z } from \"zod\";\nimport { DateSchema, IdSchema } from \"./primitives\";\nimport { safeName, safePath } from \"./subset\";\nimport { jsonBytes } from \"./canonical-json\";\n\nconst utf8 = (value: string, maximum: number) => new TextEncoder().encode(value).length <= maximum;\nconst scalar = z.union([z.string().refine((value) => utf8(value, 2048)), z.number().finite(), z.boolean()]);\nexport const ExternalQueryValueSchema = scalar;\nconst scalarOrNull = z.union([scalar, z.null()]);\nconst record = <T extends z.ZodTypeAny>(item: T, max: number) => z.record(z.string().refine(safeName), item).refine((value) => Object.keys(value).length <= max);\n\nexport const ExternalQueryMappingSchema = z.union([\n z.strictObject({ input: z.string().refine(safeName), omitIfMissing: z.literal(true).optional() }),\n z.strictObject({ literal: scalar }),\n]);\nexport const ExternalQueryMappingsSchema = record(ExternalQueryMappingSchema, 32).superRefine((value, ctx) => {\n const reserved = /^(authorization|cookie|set-cookie|host|x-api-key|api_key|apikey|access_token|token|secret|password)$/i;\n for (const key of Object.keys(value)) if (reserved.test(key)) ctx.addIssue({ code: \"custom\", path: [key], message: \"Reserved query key\" });\n});\nexport const ExternalPathSchema = z.string().max(1024).refine((value) =>\n utf8(value, 1024) && /^\\/(?:[A-Za-z0-9._~-]+\\/)*[A-Za-z0-9._~-]*\\/?$/.test(value) &&\n !value.includes(\"//\") && !value.includes(\"%\") && !value.includes(\"\\\\\") &&\n !value.includes(\"?\") && !value.includes(\"#\") && !value.includes(\"{\") && !value.includes(\"}\") &&\n value.split(\"/\").every((segment) => segment !== \".\" && segment !== \"..\"),\n);\nconst mediaType = z.string().min(1).max(128).refine((value) => value === value.toLowerCase() && /^[a-z0-9!#$&^_.+-]+\\/[a-z0-9!#$&^_.+-]+$/.test(value));\nconst jsonMime = (value: string) => value === \"application/json\" || /^application\\/[a-z0-9!#$&^_.+-]+\\+json$/.test(value);\nconst textMime = (value: string) => /^text\\/[a-z0-9!#$&^_.+-]+$/.test(value) || value === \"application/xml\" || /^application\\/[a-z0-9!#$&^_.+-]+\\+xml$/.test(value) || jsonMime(value);\nexport const ExternalResponseFormatSchema = z.strictObject({ mode: z.enum([\"JSON\", \"TEXT\"]), mediaTypes: z.array(mediaType).min(1).max(8).refine((values) => new Set(values).size === values.length) }).refine((value) => value.mediaTypes.every(value.mode === \"JSON\" ? jsonMime : textMime));\nexport const FieldProjectionSchema = record(z.strictObject({ path: z.string().refine(safePath), omitIfMissing: z.literal(true).optional() }), 32).refine((value) => Object.keys(value).length >= 1);\nexport const ResponseFilterSchema = z.discriminatedUnion(\"op\", [\n z.strictObject({ path: z.string().refine(safePath), op: z.enum([\"EQ\", \"NE\", \"GT\", \"GTE\", \"LT\", \"LTE\", \"CONTAINS\", \"STARTS_WITH\"]), value: scalarOrNull }),\n z.strictObject({ path: z.string().refine(safePath), op: z.literal(\"IN\"), values: z.array(scalarOrNull).min(1).max(20) }),\n]);\nconst visualObject = z.strictObject({ kind: z.literal(\"OBJECT\"), fields: FieldProjectionSchema });\nconst visualList = z.strictObject({ kind: z.literal(\"LIST\"), fields: FieldProjectionSchema, filters: z.array(ResponseFilterSchema).max(8), sort: z.union([z.null(), z.strictObject({ path: z.string().refine(safePath), direction: z.enum([\"ASC\", \"DESC\"]) })]), limit: z.int().min(1).max(20) });\nexport const VisualResponseProcessingSchema = z.union([visualObject, visualList]);\nexport const ResponseProcessingSchema = z.union([VisualResponseProcessingSchema, z.strictObject({ kind: z.literal(\"JAVASCRIPT\"), runtimeVersion: z.literal(\"quickjs-sync.v1\"), source: z.string().min(1).refine((value) => utf8(value, 16384)) })]);\nexport const TransformResponseSchema = z.strictObject({ status: z.int().min(200).max(299), contentType: z.string().min(1).max(128), bodyText: z.string().refine((value) => utf8(value, 262144)), json: z.union([z.null(), z.json()]) });\nexport const TransformSampleSchema = z.strictObject({ status: z.int().min(200).max(299), contentType: z.string().min(1).max(128), bodyText: z.string().refine((value) => utf8(value, 262144)) }).refine((value) => jsonBytes(value) <= 524288);\nconst boundedValues = z.custom<Record<string, unknown>>((value) => {\n const visit = (node: unknown, depth: number): boolean =>\n depth <= 20 && (node === null || typeof node === \"string\" || typeof node === \"boolean\" || (typeof node === \"number\" && Number.isFinite(node)) ||\n (Array.isArray(node) && node.every((child) => visit(child, depth + 1))) ||\n (!!node && typeof node === \"object\" && !Array.isArray(node) && Object.getPrototypeOf(node) === Object.prototype && Object.entries(node).every(([key, child]) => ![\"__proto__\", \"prototype\", \"constructor\"].includes(key) && visit(child, depth + 1))));\n try { return !!value && typeof value === \"object\" && !Array.isArray(value) && visit(value, 1) && jsonBytes(value) <= 49152; } catch { return false; }\n});\nexport const ExternalHttpResultDataSchema = z.strictObject({ source: z.literal(\"EXTERNAL_HTTP\"), connectionRevisionId: IdSchema, observedAt: DateSchema, values: boundedValues });\nexport const ConnectionRevisionViewSchema = z.strictObject({ id: IdSchema, connectionId: IdSchema, revisionNumber: z.int().positive(), origin: z.string().min(1).max(2048), scope: z.enum([\"PLATFORM\", \"PER_SHOP\"]), authMode: z.enum([\"NONE\", \"BEARER\", \"API_KEY\"]), authHeader: z.string().min(1).max(128).nullable(), documentation: z.string().max(16000), createdAt: z.iso.datetime({ offset: false }) });\nexport const ConnectionViewSchema = z.strictObject({ id: IdSchema, key: z.string().regex(/^[a-z][a-z0-9_]{0,127}$/), displayName: z.string().min(1).max(255), description: z.string().max(4096), enabled: z.boolean(), editVersion: z.int().positive(), revisions: z.array(ConnectionRevisionViewSchema) });\nexport const CredentialStatusSchema = z.strictObject({ connectionRevisionId: IdSchema, shopId: IdSchema.nullable(), configured: z.boolean(), editVersion: z.int().positive().nullable(), updatedAt: z.iso.datetime({ offset: false }).nullable() });\nexport const ConnectionCommandSchema = z.strictObject({ operationId: IdSchema, reason: z.string().trim().min(1).max(1000) });\nexport const RevisionInputSchema = z.strictObject({ origin: z.string().min(1).max(2048), scope: z.enum([\"PLATFORM\", \"PER_SHOP\"]), authMode: z.enum([\"NONE\", \"BEARER\", \"API_KEY\"]), authHeader: z.string().min(1).max(128).nullable(), documentation: z.string().max(16000) });\nexport const ConnectionIssueSchema = z.strictObject({ path: z.string().max(256), message: z.string().min(1).max(512) });\nexport const ConnectionResultSchema = <T extends z.ZodType>(value: T) => z.discriminatedUnion(\"kind\", [\n z.strictObject({ kind: z.literal(\"ok\"), value }),\n z.strictObject({ kind: z.literal(\"not-found\") }),\n z.strictObject({ kind: z.literal(\"forbidden\") }),\n z.strictObject({ kind: z.literal(\"unavailable\") }),\n z.strictObject({ kind: z.literal(\"invalid\"), issues: z.array(ConnectionIssueSchema).max(32) }),\n z.strictObject({ kind: z.literal(\"conflict\"), code: z.enum([\"STALE_CAS\", \"CONFLICTING_REPLAY\"]) }),\n]);\nexport type ExternalResponseFormat = z.infer<typeof ExternalResponseFormatSchema>;\nexport type FieldProjection = z.infer<typeof FieldProjectionSchema>;\nexport type ResponseFilter = z.infer<typeof ResponseFilterSchema>;\nexport type VisualResponseProcessing = z.infer<typeof VisualResponseProcessingSchema>;\nexport type ResponseProcessing = z.infer<typeof ResponseProcessingSchema>;\nexport type TransformResponse = z.infer<typeof TransformResponseSchema>;\nexport type TransformSample = z.infer<typeof TransformSampleSchema>;\nexport type ExternalHttpResultData = z.infer<typeof ExternalHttpResultDataSchema>;\nexport type ConnectionRevisionView = z.infer<typeof ConnectionRevisionViewSchema>;\nexport type ConnectionView = z.infer<typeof ConnectionViewSchema>;\nexport type CredentialStatus = z.infer<typeof CredentialStatusSchema>;\nexport type ConnectionCommand = z.infer<typeof ConnectionCommandSchema>;\nexport type RevisionInput = z.infer<typeof RevisionInputSchema>;\nexport type ConnectionResult<T> =\n | { kind: \"ok\"; value: T }\n | { kind: \"not-found\" | \"forbidden\" | \"unavailable\" }\n | { kind: \"invalid\"; issues: Array<z.infer<typeof ConnectionIssueSchema>> }\n | { kind: \"conflict\"; code: \"STALE_CAS\" | \"CONFLICTING_REPLAY\" };\nexport type VisualResponseProcessorInput = { source: unknown; processing: VisualResponseProcessing; limits: { maxResults: number; deadlineAt: number }; signal: AbortSignal };\nexport type VisualResponseProcessorResult = { ok: true; values: Record<string, unknown> } | { ok: false; code: \"INVALID_RESPONSE\" | \"DEADLINE\" | \"CANCELLED\" };\nexport type CodeResponseProcessorInput = { response: TransformResponse; processing: Extract<ResponseProcessing, { kind: \"JAVASCRIPT\" }>; limits: { maxResults: number; deadlineAt: number }; signal: AbortSignal };\nexport type CodeResponseProcessorResult = { ok: true; values: Record<string, unknown> } | { ok: false; code: \"INVALID_RESPONSE\" | \"DEADLINE\" | \"CANCELLED\" | \"THROTTLED\"; diagnostic?: { code: \"SYNTAX_ERROR\" | \"EXECUTION_ERROR\" | \"INVALID_OUTPUT\" | \"RESOURCE_LIMIT\" | \"RUNTIME_UNAVAILABLE\"; line: number | null; column: number | null } };\n","import { z } from \"zod\";\nimport { gt } from \"semver\";\nimport {\n boundedJson,\n ContractVersionSchema,\n IdSchema,\n SemverSchema,\n HashSchema,\n distinct,\n} from \"./primitives\";\nimport {\n InputSchemaSchema,\n DetailsSchemaSchema,\n safeName,\n safePath,\n type SubsetSchema,\n compileSubset,\n} from \"./subset\";\nimport { canonicalJson } from \"./canonical-json\";\nimport {\n definitionFitsStorage,\n DEFINITION_SIZE_MESSAGE,\n} from \"./definition-size\";\nimport {\n ExternalPathSchema,\n ExternalQueryMappingsSchema,\n ExternalQueryValueSchema,\n ExternalResponseFormatSchema,\n ResponseProcessingSchema,\n} from \"./external\";\nexport const ToolNameSchema = z\n .string()\n .regex(/^[a-z][a-z0-9_]{0,127}$/)\n .refine((n) => n !== \"finalResponse\");\nexport const GrantedToolSchema = z.strictObject({\n toolId: IdSchema,\n toolRevisionId: IdSchema,\n toolName: ToolNameSchema,\n definitionVersion: SemverSchema,\n capabilityKeys: z\n .array(IdSchema)\n .min(1)\n .max(32)\n .refine((v) => distinct(v) && v.join(\"\\0\") === [...v].sort().join(\"\\0\")),\n});\nexport const GrantedToolsSchema = z\n .array(GrantedToolSchema)\n .max(32)\n .refine(\n (v) =>\n distinct(v.map((x) => x.toolId)) && distinct(v.map((x) => x.toolName)),\n );\nexport const ToolDescriptorSchema = z.strictObject({\n toolId: IdSchema,\n toolRevisionId: IdSchema,\n name: ToolNameSchema,\n definitionVersion: SemverSchema,\n description: z.string().min(1).max(4096),\n inputSchema: InputSchemaSchema,\n});\nconst MappingSchema = z.union([\n z.strictObject({\n input: z.string().refine(safeName),\n omitIfMissing: z.literal(true).optional(),\n }),\n z.strictObject({ literal: boundedJson(8192) }),\n]);\nconst MappingsSchema = z\n .record(z.string().refine(safeName), MappingSchema)\n .refine((v) => Object.keys(v).length <= 32);\nexport const POLICY_OPERATIONS = [\n \"recovery.getBasket\",\n \"shopify.searchProducts\",\n \"discounts.getOptions\",\n \"discounts.evaluate\",\n \"products.findQualifying\",\n \"products.findSimilar\",\n] as const;\nexport const ExternalHttpExecutionSchema = z\n .strictObject({\n kind: z.literal(\"EXTERNAL_HTTP\"),\n executorVersion: z.literal(\"1.0.0\"),\n connectionRevisionId: IdSchema,\n method: z.literal(\"GET\"),\n path: ExternalPathSchema,\n query: ExternalQueryMappingsSchema,\n responseFormat: ExternalResponseFormatSchema,\n resultPath: z.string().refine((value) => value === \"\" || safePath(value)),\n responseProcessing: ResponseProcessingSchema,\n resultSchema: DetailsSchemaSchema,\n })\n .superRefine((value, ctx) => {\n if (value.responseProcessing.kind === \"JAVASCRIPT\" && value.resultPath !== \"\")\n ctx.addIssue({ code: \"custom\", path: [\"resultPath\"], message: \"JAVASCRIPT processing requires an empty resultPath\" });\n if (value.responseProcessing.kind !== \"JAVASCRIPT\" && value.responseFormat.mode !== \"JSON\")\n ctx.addIssue({ code: \"custom\", path: [\"responseFormat\", \"mode\"], message: \"Visual processing requires JSON\" });\n });\nexport const CommerceExecutionSchema = z.discriminatedUnion(\"kind\", [\n z.strictObject({\n kind: z.literal(\"SHOPIFY_STOREFRONT_QUERY\"),\n executorVersion: z.literal(\"1.0.0\"),\n apiVersion: z.literal(\"2026-07\"),\n schemaHash: HashSchema,\n document: z\n .string()\n .min(1)\n .refine((v) => new TextEncoder().encode(v).length <= 16384),\n operationName: z.string().refine(safeName),\n variables: MappingsSchema,\n resultPath: z.string().refine(safePath),\n }),\n z.strictObject({\n kind: z.literal(\"POLICY_OPERATION\"),\n operation: z.enum(POLICY_OPERATIONS),\n operationVersion: z.literal(\"1.0.0\"),\n arguments: MappingsSchema,\n }),\n ExternalHttpExecutionSchema,\n]);\nexport type ExternalHttpExecution = Extract<\n z.infer<typeof CommerceExecutionSchema>,\n { kind: \"EXTERNAL_HTTP\" }\n>;\nfunction tokensValid(text: string, root: \"result\" | \"item\") {\n if (/[<>]/.test(text)) return false;\n const residue = text.replace(/\\{\\{([^{}]+)\\}\\}/g, (_all, path: string) =>\n path.startsWith(root + \".\") && safePath(path.slice(root.length + 1))\n ? \"\"\n : \"{{invalid}}\",\n );\n return !residue.includes(\"{{\") && !residue.includes(\"}}\");\n}\nconst fixed = z\n .string()\n .max(4096)\n .refine((v) => !/[<>]|\\{\\{|\\}\\}/.test(v));\nexport const ResponseTemplateSchema = z.discriminatedUnion(\"kind\", [\n z.strictObject({\n kind: z.literal(\"text\"),\n text: z\n .string()\n .max(4096)\n .refine((v) => tokensValid(v, \"result\")),\n unavailable: fixed,\n }),\n z.strictObject({\n kind: z.literal(\"items\"),\n itemsPath: z.string().refine(safePath),\n item: z\n .string()\n .max(4096)\n .refine((v) => tokensValid(v, \"item\")),\n empty: fixed,\n unavailable: fixed,\n }),\n]);\nconst identity = {\n name: ToolNameSchema,\n definitionVersion: SemverSchema,\n description: z.string().min(1).max(4096),\n};\nconst forbiddenInput =\n /^(shopid|customerid|checkoutrecoveryid|conversationid|grantid|releaseid|token|accesstoken|domain|headers|url|graphql|document|authorization)$/i;\nconst forbiddenExternalInput = /^(authorization|cookie|set-cookie|host|x-api-key|api_key|apikey|access_token|token|secret|password)$/i;\nexport const CommerceToolDefinitionSchema = z\n .strictObject({\n ...identity,\n inputSchema: InputSchemaSchema,\n execution: CommerceExecutionSchema,\n responseTemplate: ResponseTemplateSchema,\n })\n .refine(definitionFitsStorage, { message: DEFINITION_SIZE_MESSAGE })\n .superRefine((d, ctx) => {\n const properties = d.inputSchema.properties!;\n const containsAuthority = (schema: SubsetSchema): boolean =>\n Object.entries(schema.properties ?? {}).some(\n ([name, child]) =>\n forbiddenInput.test(name) || containsAuthority(child),\n ) || !!(schema.items && containsAuthority(schema.items));\n if (containsAuthority(d.inputSchema))\n ctx.addIssue({\n code: \"custom\",\n message: \"Authority/credential inputs are forbidden\",\n });\n const mapping =\n d.execution.kind === \"POLICY_OPERATION\"\n ? d.execution.arguments\n : d.execution.kind === \"SHOPIFY_STOREFRONT_QUERY\"\n ? d.execution.variables\n : d.execution.query;\n for (const [name, m] of Object.entries(mapping))\n if (\"input\" in m && !Object.hasOwn(properties, m.input))\n ctx.addIssue({\n code: \"custom\",\n path: [\"execution\", name],\n message: \"Unknown mapped input\",\n });\n if (d.execution.kind === \"EXTERNAL_HTTP\")\n for (const [name, mapping] of Object.entries(d.execution.query))\n if (\"input\" in mapping) {\n const target = properties[mapping.input];\n const type = target && (Array.isArray(target.type) ? target.type[0] : target.type);\n if (forbiddenExternalInput.test(mapping.input) || ![\"string\", \"integer\", \"boolean\"].includes(type ?? \"\"))\n ctx.addIssue({ code: \"custom\", path: [\"execution\", \"query\", name], message: \"External mappings require a top-level scalar input\" });\n }\n });\nconst draftObject = boundedJson(65536).refine(\n (v) => !!v && typeof v === \"object\" && !Array.isArray(v),\n);\nexport const CommerceToolDraftDefinitionSchema = z\n .strictObject({\n ...identity,\n inputSchema: draftObject,\n execution: draftObject,\n responseTemplate: draftObject,\n })\n .refine(definitionFitsStorage, { message: DEFINITION_SIZE_MESSAGE });\nexport type CommerceToolDefinition = z.infer<\n typeof CommerceToolDefinitionSchema\n>;\nexport type CommerceToolDraftDefinition = z.infer<\n typeof CommerceToolDraftDefinitionSchema\n>;\nexport type GrantedTool = z.infer<typeof GrantedToolSchema>;\nexport type ToolDescriptor = z.infer<typeof ToolDescriptorSchema>;\n/** Commerce owns schema-backed GraphQL parsing, restrictions and output derivation. */\nexport interface CommerceDefinitionCompiler {\n compile(\n execution: CommerceToolDefinition[\"execution\"],\n input: SubsetSchema,\n ): {\n outputSchema: SubsetSchema;\n validateMappedArguments: (\n mapping: CommerceToolDefinition[\"execution\"],\n ) => boolean;\n };\n}\nfunction externalOutputSchema(execution: ExternalHttpExecution): SubsetSchema {\n return {\n type: \"object\",\n properties: { values: execution.resultSchema },\n required: [\"values\"],\n additionalProperties: false,\n };\n}\nfunction scalarSchema(schema: SubsetSchema | undefined) {\n const type = schema && (Array.isArray(schema.type) ? schema.type[0] : schema.type);\n return !!schema && [\"string\", \"integer\", \"number\", \"boolean\"].includes(type ?? \"\");\n}\nfunction visualPublicationCompatible(execution: ExternalHttpExecution) {\n if (execution.responseProcessing.kind === \"JAVASCRIPT\") return true;\n const processing = execution.responseProcessing;\n const schema = execution.resultSchema;\n if (processing.kind === \"LIST\") {\n const items = schema.properties?.items;\n if (!items || items.type !== \"array\" || !(schema.required ?? []).includes(\"items\")) return false;\n if (Object.keys(schema.properties ?? {}).some((name) => name !== \"items\")) return false;\n if (items.minItems !== undefined && items.minItems > 0) return false;\n if (items.maxItems !== undefined && items.maxItems < processing.limit) return false;\n }\n const output = processing.kind === \"OBJECT\"\n ? schema\n : schema.properties?.items?.items;\n if (!output || output.type !== \"object\" || !output.properties || output.additionalProperties !== false) return false;\n const fields = processing.fields;\n if (Object.keys(output.properties).some((name) => !Object.hasOwn(fields, name) || !scalarSchema(output.properties![name]))) return false;\n if (Object.keys(fields).some((name) => !Object.hasOwn(output.properties!, name))) return false;\n return (output.required ?? []).every((name) => !fields[name]?.omitIfMissing);\n}\nfunction at(schema: SubsetSchema, path: string) {\n let current: SubsetSchema | undefined = schema;\n for (const part of path.split(\".\")) current = current?.properties?.[part];\n return current;\n}\nexport function validateDefinitionForPublication(\n raw: unknown,\n compiler: CommerceDefinitionCompiler,\n) {\n const definition = CommerceToolDefinitionSchema.parse(raw);\n if (definition.execution.kind === \"EXTERNAL_HTTP\" && !visualPublicationCompatible(definition.execution))\n throw new TypeError(\"External visual projection is incompatible with resultSchema\");\n const compiled =\n definition.execution.kind === \"EXTERNAL_HTTP\"\n ? { outputSchema: externalOutputSchema(definition.execution), validateMappedArguments: () => true }\n : compiler.compile(definition.execution, definition.inputSchema);\n if (!compiled.validateMappedArguments(definition.execution))\n throw new TypeError(\"Invalid variable/operation mapping\");\n const template = definition.responseTemplate;\n const schema =\n template.kind === \"text\"\n ? compiled.outputSchema\n : at(compiled.outputSchema, template.itemsPath)?.items;\n if (!schema) throw new TypeError(\"Unknown template items path\");\n const text = template.kind === \"text\" ? template.text : template.item;\n for (const match of text.matchAll(/\\{\\{(?:result|item)\\.([^{}]+)\\}\\}/g)) {\n const target = at(schema, match[1]);\n const type =\n target && (Array.isArray(target.type) ? target.type[0] : target.type);\n if (!type || [\"object\", \"array\"].includes(type))\n throw new TypeError(\"Unknown or nonscalar template path\");\n }\n return definition;\n}\nexport function definitionToMcpDescriptor(definition: CommerceToolDefinition) {\n const d = CommerceToolDefinitionSchema.parse(definition);\n return {\n name: d.name,\n description: d.description,\n inputSchema: d.inputSchema,\n };\n}\nexport function mapToolArguments(\n definition: CommerceToolDefinition,\n raw: unknown,\n) {\n const input = compileSubset(definition.inputSchema, \"input\").parse(raw);\n const mapping =\n definition.execution.kind === \"POLICY_OPERATION\"\n ? definition.execution.arguments\n : definition.execution.kind === \"SHOPIFY_STOREFRONT_QUERY\"\n ? definition.execution.variables\n : definition.execution.query;\n const result: Record<string, unknown> = Object.create(null);\n for (const [key, m] of Object.entries(mapping)) {\n if (\"literal\" in m) result[key] = m.literal;\n else if (Object.hasOwn(input, m.input)) {\n const value = input[m.input];\n if (definition.execution.kind === \"EXTERNAL_HTTP\" && !ExternalQueryValueSchema.safeParse(value).success)\n throw new TypeError(\"Invalid external mapped scalar\");\n result[key] = value;\n }\n else if (!m.omitIfMissing) throw new TypeError(\"Missing mapped input\");\n }\n return result;\n}\nexport const toolHashInput = (definition: CommerceToolDefinition) => ({\n contractVersion: ContractVersionSchema.value,\n definition: CommerceToolDefinitionSchema.parse(definition),\n});\n/** Publication adapters supply the actual highest published version from persistence. */\nexport function validateDefinitionVersion(\n proposed: string,\n highestPublished: string | null,\n) {\n SemverSchema.parse(proposed);\n if (highestPublished === null) return proposed === \"1.0.0\";\n SemverSchema.parse(highestPublished);\n return gt(proposed, highestPublished);\n}\nexport const CommerceToolIdentitySchema = z.strictObject({\n id: IdSchema,\n name: ToolNameSchema,\n enabled: z.boolean(),\n});\nexport const CommerceToolRevisionIdentitySchema = z.strictObject({\n toolId: IdSchema,\n toolRevisionId: IdSchema,\n definitionVersion: SemverSchema,\n contentHash: HashSchema,\n});\nexport const POLICY_OPERATION_DESCRIPTORS = POLICY_OPERATIONS.map(\n (operation) => ({ operation, operationVersion: \"1.0.0\" as const }),\n);\n","import { canonicalJson } from \"./canonical-json\";\n\n/** Bytes of PostgreSQL jsonb::text for JSON.stringify-serialized values.\n * jsonb adds spaces after separators and expands exponent-form JSON numbers.\n * Key ordering changes no byte counts. This is not the canonical hash encoder.\n */\nexport function definitionStorageBytes(value: unknown): number {\n const normalized: unknown = JSON.parse(canonicalJson(value));\n const bytes = (s: string) => new TextEncoder().encode(s).length;\n function size(v: unknown): number {\n if (typeof v === \"number\") {\n const text = JSON.stringify(v);\n if (!text.includes(\"e\")) return text.length;\n const [coefficient, exponent] = text.split(\"e\");\n const sign = coefficient.startsWith(\"-\") ? 1 : 0;\n const unsigned = coefficient.slice(sign);\n const digits = unsigned.replace(\".\", \"\").length;\n const point =\n (unsigned.indexOf(\".\") < 0 ? unsigned.length : unsigned.indexOf(\".\")) +\n Number(exponent);\n return (\n sign +\n (point <= 0 ? 2 - point + digits : point >= digits ? point : digits + 1)\n );\n }\n if (Array.isArray(v))\n return (\n 2 +\n Math.max(0, v.length - 1) * 2 +\n v.reduce((sum, item) => sum + size(item), 0)\n );\n if (v && typeof v === \"object\") {\n const entries = Object.entries(v);\n return (\n 2 +\n Math.max(0, entries.length - 1) * 2 +\n entries.reduce(\n (sum, [key, item]) =>\n sum + bytes(JSON.stringify(key)) + 2 + size(item),\n 0,\n )\n );\n }\n return bytes(JSON.stringify(v));\n }\n return size(normalized);\n}\nexport const definitionFitsStorage = (value: unknown): boolean => {\n try {\n return definitionStorageBytes(value) <= 65536;\n } catch {\n return false;\n }\n};\nexport const DEFINITION_SIZE_MESSAGE =\n \"Definition exceeds the 65536-byte jsonb text limit\";\n","import { z } from \"zod\";\nimport { IdSchema, LanguageSchema } from \"./primitives\";\nimport { DetailsSchemaSchema, compileSubset, type Json } from \"./subset\";\nimport {\n jsonBytes,\n responseContractCanonicalJson,\n type Digest,\n} from \"./canonical-json\";\nimport { canonicaliseLanguageTag } from \"../internationalization\";\nexport const CommerceResponseContractSchema = z\n .strictObject({\n version: z.literal(\"response.v1\"),\n instructions: z.string().min(1).max(8000),\n detailsSchema: DetailsSchemaSchema,\n })\n .refine((v) => jsonBytes(v) <= 32768);\nexport type CommerceResponseContract = z.infer<\n typeof CommerceResponseContractSchema\n>;\nexport const EMPTY_RESPONSE_CONTRACT: CommerceResponseContract = {\n version: \"response.v1\",\n instructions:\n \"Write a concise, natural WhatsApp reply supported by the available facts. Return an empty details object.\",\n detailsSchema: {\n type: \"object\",\n properties: {},\n required: [],\n additionalProperties: false,\n },\n};\nexport const ReferralReasonSchema = z.enum([\n \"INSUFFICIENT_TOOLS\",\n \"UNVERIFIABLE_FACTS\",\n \"TOOL_UNAVAILABLE\",\n \"TOOL_REVOKED\",\n]);\n\nconst DetectedLanguageTagSchema = z\n .string()\n .min(1)\n .max(128)\n .transform((value, ctx) => {\n const canonical = canonicaliseLanguageTag(value);\n\n if (!canonical) {\n ctx.addIssue({\n code: \"custom\",\n message: \"Invalid detected language tag\",\n });\n return z.NEVER;\n }\n\n return canonical;\n });\n\nexport const CommerceFinalResponseSchema = z\n .strictObject({\n answerKind: z.enum([\"ANSWER\", \"REFER_TO_STORE\"]),\n replyText: z.string().min(1).max(4096),\n referralReason: ReferralReasonSchema.nullable(),\n detectedLanguageTag: DetectedLanguageTagSchema.nullable(),\n detectedLanguageConfidence: z.number().min(0).max(1).nullable(),\n evidenceIds: z\n .array(IdSchema)\n .max(3)\n .refine((v) => new Set(v).size === v.length),\n details: z.record(z.string(), z.unknown()).refine((v) => {\n try {\n return jsonBytes(v) <= 16384;\n } catch {\n return false;\n }\n }),\n })\n .superRefine((value, ctx) => {\n\n if (value.answerKind === \"ANSWER\") {\n if (value.referralReason !== null) {\n ctx.addIssue({\n code: \"custom\",\n path: [\"referralReason\"],\n message: \"ANSWER must not include a referral reason\",\n });\n }\n }\n\n if (value.answerKind === \"REFER_TO_STORE\") {\n if (value.referralReason === null) {\n ctx.addIssue({\n code: \"custom\",\n path: [\"referralReason\"],\n message: \"REFER_TO_STORE requires a referral reason\",\n });\n }\n\n if (value.evidenceIds.length !== 0) {\n ctx.addIssue({\n code: \"custom\",\n path: [\"evidenceIds\"],\n message: \"REFER_TO_STORE must not include evidence\",\n });\n }\n\n if (Object.keys(value.details).length !== 0) {\n ctx.addIssue({\n code: \"custom\",\n path: [\"details\"],\n message: \"REFER_TO_STORE must not include details\",\n });\n }\n }\n });\nexport type CommerceFinalResponse = z.infer<typeof CommerceFinalResponseSchema>;\nexport function finalResponseSchema(definition: CommerceResponseContract) {\n const contract = CommerceResponseContractSchema.parse(definition);\n const details = compileSubset(contract.detailsSchema, \"details\");\n return CommerceFinalResponseSchema.refine(\n (v) =>\n v.answerKind === \"REFER_TO_STORE\" || details.safeParse(v.details).success,\n {\n path: [\"details\"],\n message: \"Details do not match pinned contract\",\n },\n );\n}\nexport function verifyResponseContract(\n definition: unknown,\n hash: string,\n digest: Digest,\n) {\n const parsed = CommerceResponseContractSchema.parse(definition);\n if (\n !/^[a-f0-9]{64}$/.test(hash) ||\n digest(responseContractCanonicalJson(parsed)) !== hash\n )\n throw new TypeError(\"Incompatible response contract\");\n return parsed;\n}\n/** JSON Schema branches retain the immutable envelope; only ANSWER details vary. */\nexport function finalResponseToolSchema(definition: CommerceResponseContract) {\n const contract = CommerceResponseContractSchema.parse(definition);\n const properties = {\n answerKind: { enum: [\"ANSWER\", \"REFER_TO_STORE\"] },\n replyText: { type: \"string\", minLength: 1, maxLength: 4096 },\n referralReason: {\n enum: [\n null,\n \"INSUFFICIENT_TOOLS\",\n \"UNVERIFIABLE_FACTS\",\n \"TOOL_UNAVAILABLE\",\n \"TOOL_REVOKED\",\n ],\n },\n detectedLanguageTag: { type: [\"string\", \"null\"], maxLength: 128 },\n detectedLanguageConfidence: {\n type: [\"number\", \"null\"],\n minimum: 0,\n maximum: 1,\n },\n evidenceIds: {\n type: \"array\",\n maxItems: 3,\n uniqueItems: true,\n items: { type: \"string\", maxLength: 128 },\n },\n details: { type: \"object\" },\n };\n return {\n type: \"object\",\n additionalProperties: false,\n properties,\n required: Object.keys(properties),\n allOf: [\n {\n oneOf: [\n {\n properties: {\n answerKind: { const: \"ANSWER\" },\n referralReason: { type: \"null\" },\n details: contract.detailsSchema,\n },\n },\n {\n properties: {\n answerKind: { const: \"REFER_TO_STORE\" },\n referralReason: { enum: ReferralReasonSchema.options },\n evidenceIds: { maxItems: 0 },\n details: {\n type: \"object\",\n properties: {},\n additionalProperties: false,\n },\n },\n },\n ],\n },\n {\n oneOf: [\n {\n properties: {\n detectedLanguageTag: { type: \"null\" },\n detectedLanguageConfidence: { type: \"null\" },\n },\n },\n {\n properties: {\n detectedLanguageTag: { type: \"string\" },\n detectedLanguageConfidence: { type: \"number\" },\n },\n },\n ],\n },\n ],\n } as unknown as Json;\n}\n","import { z } from \"zod\";\nimport { validRange } from \"semver\";\nimport {\n ContractVersionSchema as V,\n IdSchema as ID,\n SemverSchema,\n HashSchema,\n DateSchema,\n MoneySchema,\n CurrencySchema,\n distinct,\n boundedJson,\n} from \"./primitives\";\nimport { GrantedToolsSchema, ToolDescriptorSchema } from \"./definitions\";\nimport { CommerceResponseContractSchema } from \"./response\";\nimport { canonicalJson, jsonBytes } from \"./canonical-json\";\nexport const CommerceTurnIdentitySchema = z.strictObject({\n contractVersion: V,\n shopId: ID,\n checkoutRecoveryId: ID,\n conversationId: ID,\n inboundVersion: z.number().int().positive(),\n});\nexport type CommerceTurnIdentity = z.infer<typeof CommerceTurnIdentitySchema>;\nexport const CommerceConversationGrantSchema = z\n .strictObject({\n id: ID,\n shopId: ID,\n conversationId: ID,\n initialInboundVersion: z.number().int().positive(),\n releaseId: ID,\n selectedCapabilityKeys: z\n .array(ID)\n .max(32)\n .refine(distinct),\n grantedTools: GrantedToolsSchema,\n runnerVersion: SemverSchema,\n createdAt: DateSchema,\n expiresAt: DateSchema.nullable(),\n })\n .superRefine((v, c) => {\n if (v.expiresAt && Date.parse(v.expiresAt) <= Date.parse(v.createdAt))\n c.addIssue({ code: \"custom\", message: \"Invalid grant retention date\" });\n if (\n jsonBytes(v.grantedTools) > 65536 ||\n jsonBytes(v.selectedCapabilityKeys) > 8192 ||\n v.grantedTools.some((t) =>\n t.capabilityKeys.some((k) => !v.selectedCapabilityKeys.includes(k)),\n )\n )\n c.addIssue({ code: \"custom\", message: \"Unselected grant provenance\" });\n });\nexport type CommerceConversationGrant = z.infer<\n typeof CommerceConversationGrantSchema\n>;\nexport const CommerceManifestSchema = z\n .strictObject({\n contractVersion: V,\n releaseId: ID,\n runnerCompatibility: z\n .string()\n .min(1)\n .max(128)\n .refine((v) => !!validRange(v)),\n capabilities: z\n .array(\n z.strictObject({\n capabilityId: ID,\n key: ID,\n featureId: ID,\n position: z.number().int().nonnegative(),\n toolDescriptor: ToolDescriptorSchema,\n }),\n )\n .max(32),\n featureBehaviours: z\n .array(\n z.strictObject({\n featureId: ID,\n behaviourPrompt: z.string().max(32000),\n }),\n )\n .max(32),\n selectedCapabilityKeys: z.array(ID).max(32).refine(distinct),\n grantedTools: GrantedToolsSchema,\n responseContract: CommerceResponseContractSchema,\n responseContractHash: HashSchema,\n })\n .superRefine((v, c) => {\n if (jsonBytes(v) > 262144)\n c.addIssue({ code: \"custom\", message: \"Manifest exceeds output limit\" });\n const keys = v.capabilities.map((x) => x.key);\n const capabilityIds = v.capabilities.map((x) => x.capabilityId);\n const representedFeatures = [...new Set(v.capabilities.map((x) => x.featureId))];\n const behaviourFeatureIds = v.featureBehaviours.map((x) => x.featureId);\n if (\n !distinct(keys) ||\n !distinct(capabilityIds) ||\n JSON.stringify(keys) !== JSON.stringify(v.selectedCapabilityKeys) ||\n v.capabilities.some(\n (x, i) => i > 0 && x.position <= v.capabilities[i - 1].position,\n ) ||\n !distinct(behaviourFeatureIds) ||\n JSON.stringify(representedFeatures) !== JSON.stringify(behaviourFeatureIds)\n )\n c.addIssue({\n code: \"custom\",\n message: \"Invalid capability ordering/selection\",\n });\n const union = new Map<\n string,\n { tool: (typeof v.grantedTools)[number]; descriptor: string }\n >();\n for (const cap of v.capabilities) {\n const d = cap.toolDescriptor;\n const old = union.get(d.toolId);\n const descriptor = canonicalJson(d);\n if (old) {\n if (old.descriptor !== descriptor)\n c.addIssue({\n code: \"custom\",\n message: \"Conflicting tool revisions/descriptors\",\n });\n old.tool.capabilityKeys.push(cap.key);\n } else\n union.set(d.toolId, {\n descriptor,\n tool: {\n toolId: d.toolId,\n toolRevisionId: d.toolRevisionId,\n toolName: d.name,\n definitionVersion: d.definitionVersion,\n capabilityKeys: [cap.key],\n },\n });\n }\n if (\n union.size !== v.grantedTools.length ||\n v.grantedTools.some((t) => {\n const expected = union.get(t.toolId)?.tool;\n return (\n !expected ||\n expected.toolRevisionId !== t.toolRevisionId ||\n expected.toolName !== t.toolName ||\n expected.definitionVersion !== t.definitionVersion ||\n JSON.stringify([...new Set(expected.capabilityKeys)].sort()) !==\n JSON.stringify(t.capabilityKeys)\n );\n })\n )\n c.addIssue({\n code: \"custom\",\n message: \"Grant must equal selected capability set\",\n });\n });\nexport type CommerceManifest = z.infer<typeof CommerceManifestSchema>;\nexport const CommerceReleaseIdentitySchema = z.strictObject({\n contractVersion: V,\n releaseId: ID,\n runnerCompatibility: z\n .string()\n .min(1)\n .max(128)\n .refine((v) => !!validRange(v)),\n});\nexport const CommerceResolveAssertionSchema = CommerceTurnIdentitySchema.extend(\n { purpose: z.literal(\"resolve\") },\n);\nexport const CommerceExecuteAssertionSchema = CommerceTurnIdentitySchema.extend(\n { purpose: z.literal(\"execute\"), grantId: ID, releaseId: ID },\n);\nexport const CommerceAssertionSchema = z.discriminatedUnion(\"purpose\", [\n CommerceResolveAssertionSchema,\n CommerceExecuteAssertionSchema,\n]);\nconst qty = z.number().int().min(1).max(999);\nexport const CommerceProposalSchema = z\n .strictObject({\n operations: z\n .array(\n z.discriminatedUnion(\"kind\", [\n z.strictObject({\n kind: z.literal(\"ADD\"),\n variantId: ID,\n quantity: qty,\n }),\n z.strictObject({\n kind: z.literal(\"REPLACE\"),\n lineId: ID,\n variantId: ID,\n quantity: qty,\n }),\n ]),\n )\n .min(1)\n .max(3),\n })\n .refine((v) =>\n distinct(\n v.operations.flatMap((o) => (o.kind === \"REPLACE\" ? [o.lineId] : [])),\n ),\n );\nexport const CommerceBasketSchema = z\n .strictObject({\n basketId: ID,\n source: z.enum([\"RECOVERY_SNAPSHOT\", \"PROPOSED\"]),\n observedAt: DateSchema,\n currency: CurrencySchema.nullable(),\n lines: z\n .array(\n z.strictObject({\n lineId: ID,\n productId: ID.nullable(),\n variantId: ID.nullable(),\n quantity: qty.nullable(),\n unitPrice: MoneySchema.nullable(),\n }),\n )\n .max(100),\n fingerprint: HashSchema,\n unknownFields: z.array(z.string().min(1).max(256)).max(128),\n })\n .refine((v) => distinct(v.lines.map((line) => line.lineId)));\nexport const CommerceProductSchema = z.strictObject({\n productId: ID,\n variantId: ID,\n title: z.string().min(1).max(512),\n url: z\n .url({ protocol: /^https$/ })\n .refine((v) => {\n const u = new URL(v);\n return !u.username && !u.password && !u.port;\n })\n .nullable(),\n available: z.boolean().nullable(),\n unitPrice: MoneySchema.nullable(),\n currency: CurrencySchema.nullable(),\n productType: z.string().max(512).nullable(),\n vendor: z.string().max(512).nullable(),\n observedAt: DateSchema,\n});\nexport const CommerceOfferSchema = z\n .strictObject({\n offerId: ID,\n title: z.string().min(1).max(512),\n method: z.enum([\"AUTOMATIC\", \"CODE\"]),\n code: z.string().min(1).max(128).nullable(),\n startsAt: DateSchema.nullable(),\n endsAt: DateSchema.nullable(),\n support: z.enum([\"SUPPORTED\", \"UNSUPPORTED\", \"UNKNOWN\"]),\n reasonCodes: z.array(z.string().min(1).max(64)).max(16),\n })\n .refine(\n (v) =>\n (v.startsAt === null ||\n v.endsAt === null ||\n Date.parse(v.startsAt) < Date.parse(v.endsAt)) &&\n (v.method !== \"AUTOMATIC\" || v.code === null),\n );\nconst condition = z.strictObject({\n code: z.string().min(1).max(64),\n description: z.string().max(256),\n});\nexport const CommerceEvidenceSchema = z\n .strictObject({\n evidenceId: HashSchema,\n turn: CommerceTurnIdentitySchema,\n grantId: ID,\n releaseId: ID,\n offerId: ID,\n proposal: CommerceProposalSchema.nullable(),\n basketFingerprint: HashSchema,\n ruleFingerprint: HashSchema,\n evaluatedAt: DateSchema,\n expiresAt: DateSchema,\n outcome: z.enum([\n \"QUALIFIES_FOR_KNOWN_RULES\",\n \"DOES_NOT_QUALIFY\",\n \"UNKNOWN\",\n \"UNSUPPORTED\",\n ]),\n currency: CurrencySchema.nullable(),\n savings: MoneySchema.nullable(),\n resultingTotal: MoneySchema.nullable(),\n evaluatedConditions: z.array(condition).max(32),\n unresolvedConditions: z.array(condition).max(32),\n })\n .superRefine((v, c) => {\n if (Date.parse(v.expiresAt) - Date.parse(v.evaluatedAt) > 60000)\n c.addIssue({\n code: \"custom\",\n message: \"Evidence lifetime exceeds ceiling\",\n });\n if (\n v.outcome === \"QUALIFIES_FOR_KNOWN_RULES\" &&\n (v.unresolvedConditions.length ||\n Date.parse(v.expiresAt) <= Date.parse(v.evaluatedAt) ||\n v.currency === null ||\n v.savings === null ||\n v.resultingTotal === null)\n )\n c.addIssue({ code: \"custom\", message: \"Unsupported qualifying claim\" });\n });\nexport type CommerceEvidence = z.infer<typeof CommerceEvidenceSchema>;\nexport const CommerceAlternativeSchema = z\n .strictObject({\n product: CommerceProductSchema,\n proposal: CommerceProposalSchema,\n extraSpend: MoneySchema.nullable(),\n resultingTotal: MoneySchema.nullable(),\n currency: CurrencySchema.nullable(),\n evidence: CommerceEvidenceSchema.nullable(),\n similarityReasons: z.array(z.string().max(256)).max(3),\n })\n .refine((v) => v.product.available === true);\nexport const CommerceErrorCodeSchema = z.enum([\n \"INVALID_INPUT\",\n \"DENIED\",\n \"STALE_TURN\",\n \"NOT_FOUND\",\n \"UNAVAILABLE\",\n \"THROTTLED\",\n \"DEADLINE\",\n \"INCOMPATIBLE_VERSION\",\n]);\nexport function commerceToolResultSchema<T extends z.ZodType>(data: T) {\n return z.union([\n z.strictObject({\n contractVersion: V,\n status: z.literal(\"OK\"),\n data,\n renderedText: z.string().max(4096),\n }),\n z.strictObject({\n contractVersion: V,\n status: z.literal(\"ERROR\"),\n code: CommerceErrorCodeSchema,\n retryable: z.boolean(),\n renderedText: z.string().max(4096).optional(),\n }),\n ]);\n}\nexport const CommerceToolResultSchema = commerceToolResultSchema(\n boundedJson(262144),\n);\nexport type CommerceToolResult = z.infer<typeof CommerceToolResultSchema>;\nconst limit = z.number().int().min(1).max(3).default(3);\nexport const CommerceToolInputs = {\n commerce_get_basket: z.strictObject({}),\n commerce_search_products: z.strictObject({\n query: z.string().min(1).max(200),\n maximumPrice: MoneySchema.optional(),\n availableOnly: z.boolean().default(true),\n limit: z.number().int().min(1).max(20).default(10),\n cursor: z.string().max(2048).nullable().default(null),\n }),\n commerce_get_discount_options: z.strictObject({}),\n commerce_evaluate_discount: z.strictObject({\n offerId: ID,\n proposal: CommerceProposalSchema.nullable(),\n }),\n commerce_find_qualifying_products: z.strictObject({\n offerId: ID,\n query: z.string().min(1).max(200).nullable(),\n limit,\n }),\n commerce_find_similar_products: z.strictObject({\n variantId: ID,\n offerId: ID.nullable(),\n limit,\n }),\n};\nconst alternatives = z.strictObject({\n alternatives: z.array(CommerceAlternativeSchema).max(3),\n truncated: z.boolean(),\n});\nexport const CommerceToolOutputs = {\n commerce_get_basket: CommerceBasketSchema,\n commerce_search_products: z.strictObject({\n products: z.array(CommerceProductSchema).max(20),\n cursor: z.string().max(2048).nullable(),\n truncated: z.boolean(),\n }),\n commerce_get_discount_options: z.strictObject({\n mode: z.enum([\"NONE\", \"FIXED\", \"AI_BEST_APPLICABLE\"]),\n offers: z.array(CommerceOfferSchema).max(50),\n truncated: z.boolean(),\n }),\n commerce_evaluate_discount: CommerceEvidenceSchema,\n commerce_find_qualifying_products: alternatives,\n commerce_find_similar_products: alternatives,\n};\nexport function productBelongsToDomain(\n product: z.infer<typeof CommerceProductSchema>,\n verifiedDomain: string,\n) {\n try {\n return (\n product.url === null || new URL(product.url).hostname === verifiedDomain\n );\n } catch {\n return false;\n }\n}\n"],"mappings":"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","names":["z","z","z","z","z","z","mapping","z","z","z","z"]}
|