@shoplix-ai/sdui-schema 1.13.0 → 1.14.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.
Files changed (61) hide show
  1. package/dist/account-settings.d.ts +187 -0
  2. package/dist/account-settings.d.ts.map +1 -0
  3. package/dist/account-settings.js +113 -0
  4. package/dist/account-settings.js.map +1 -0
  5. package/dist/action.d.ts +18 -3
  6. package/dist/action.d.ts.map +1 -1
  7. package/dist/action.js +11 -3
  8. package/dist/action.js.map +1 -1
  9. package/dist/assets.d.ts.map +1 -1
  10. package/dist/assets.js +47 -4
  11. package/dist/assets.js.map +1 -1
  12. package/dist/binding.d.ts +76 -1
  13. package/dist/binding.d.ts.map +1 -1
  14. package/dist/binding.js +49 -1
  15. package/dist/binding.js.map +1 -1
  16. package/dist/block-definition.d.ts +470 -3
  17. package/dist/block-definition.d.ts.map +1 -1
  18. package/dist/block-definition.js +9 -3
  19. package/dist/block-definition.js.map +1 -1
  20. package/dist/blocks.d.ts +491 -12
  21. package/dist/blocks.d.ts.map +1 -1
  22. package/dist/blocks.js +108 -3
  23. package/dist/blocks.js.map +1 -1
  24. package/dist/deep-link.d.ts +37 -0
  25. package/dist/deep-link.d.ts.map +1 -0
  26. package/dist/deep-link.js +51 -0
  27. package/dist/deep-link.js.map +1 -0
  28. package/dist/definition-validator.d.ts +1 -0
  29. package/dist/definition-validator.d.ts.map +1 -1
  30. package/dist/definition-validator.js +10 -4
  31. package/dist/definition-validator.js.map +1 -1
  32. package/dist/display.d.ts +218 -2
  33. package/dist/display.d.ts.map +1 -1
  34. package/dist/display.js +123 -1
  35. package/dist/display.js.map +1 -1
  36. package/dist/envelope.d.ts +954 -0
  37. package/dist/envelope.d.ts.map +1 -1
  38. package/dist/envelope.js +2 -0
  39. package/dist/envelope.js.map +1 -1
  40. package/dist/index.d.ts +12 -8
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +7 -5
  43. package/dist/index.js.map +1 -1
  44. package/dist/manifest.d.ts.map +1 -1
  45. package/dist/manifest.js +5 -0
  46. package/dist/manifest.js.map +1 -1
  47. package/dist/parse.d.ts +6 -1
  48. package/dist/parse.d.ts.map +1 -1
  49. package/dist/parse.js +14 -1
  50. package/dist/parse.js.map +1 -1
  51. package/dist/primitives.d.ts +28 -0
  52. package/dist/primitives.d.ts.map +1 -1
  53. package/dist/screen.d.ts +31 -5
  54. package/dist/screen.d.ts.map +1 -1
  55. package/dist/screen.js +39 -10
  56. package/dist/screen.js.map +1 -1
  57. package/dist/theme.d.ts +4 -0
  58. package/dist/theme.d.ts.map +1 -1
  59. package/dist/theme.js +12 -4
  60. package/dist/theme.js.map +1 -1
  61. package/package.json +1 -1
@@ -0,0 +1,187 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * The key of one Profile Field: the metafield key a custom field is written
4
+ * under, and the name a fixed field is read by. Snake case, the way a
5
+ * setting key is written.
6
+ */
7
+ export declare const profileFieldKeySchema: z.ZodString;
8
+ /** What the merchant decides for each Profile Field: not asked, asked, or asked and needed. */
9
+ export declare const PROFILE_FIELD_STATES: readonly ["hidden", "optional", "required"];
10
+ export type ProfileFieldState = (typeof PROFILE_FIELD_STATES)[number];
11
+ /** The fixed catalog: the two names on the customer record, and two app-owned metafields. */
12
+ export declare const FIXED_PROFILE_FIELDS: readonly ["first_name", "last_name", "birthday", "gender"];
13
+ /** What a merchant-defined field asks for: a short text, or one choice from a list. */
14
+ export declare const CUSTOM_PROFILE_FIELD_TYPES: readonly ["short_text", "single_choice"];
15
+ export type CustomProfileFieldType = (typeof CUSTOM_PROFILE_FIELD_TYPES)[number];
16
+ export declare const PROFILE_FIELD_LIMITS: {
17
+ readonly maxCustomFields: 5;
18
+ readonly maxChoices: 12;
19
+ };
20
+ declare const fixedProfileFieldSchema: z.ZodObject<{
21
+ state: z.ZodEnum<{
22
+ optional: "optional";
23
+ hidden: "hidden";
24
+ required: "required";
25
+ }>;
26
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
27
+ }, z.core.$strict>;
28
+ declare const customProfileFieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
29
+ type: z.ZodLiteral<"short_text">;
30
+ key: z.ZodString;
31
+ state: z.ZodEnum<{
32
+ optional: "optional";
33
+ hidden: "hidden";
34
+ required: "required";
35
+ }>;
36
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
37
+ }, z.core.$strict>, z.ZodObject<{
38
+ type: z.ZodLiteral<"single_choice">;
39
+ choices: z.ZodArray<z.ZodObject<{
40
+ value: z.ZodString;
41
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
42
+ }, z.core.$strict>>;
43
+ key: z.ZodString;
44
+ state: z.ZodEnum<{
45
+ optional: "optional";
46
+ hidden: "hidden";
47
+ required: "required";
48
+ }>;
49
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
50
+ }, z.core.$strict>], "type">;
51
+ /**
52
+ * The Profile Fields catalog: the fixed four, each hidden, optional or
53
+ * required under its own label, and up to five fields of the merchant's
54
+ * own, each under a key no fixed field owns.
55
+ */
56
+ declare const profileFieldsSchema: z.ZodObject<{
57
+ firstName: z.ZodObject<{
58
+ state: z.ZodEnum<{
59
+ optional: "optional";
60
+ hidden: "hidden";
61
+ required: "required";
62
+ }>;
63
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
64
+ }, z.core.$strict>;
65
+ lastName: z.ZodObject<{
66
+ state: z.ZodEnum<{
67
+ optional: "optional";
68
+ hidden: "hidden";
69
+ required: "required";
70
+ }>;
71
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
72
+ }, z.core.$strict>;
73
+ birthday: z.ZodObject<{
74
+ state: z.ZodEnum<{
75
+ optional: "optional";
76
+ hidden: "hidden";
77
+ required: "required";
78
+ }>;
79
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
80
+ }, z.core.$strict>;
81
+ gender: z.ZodObject<{
82
+ state: z.ZodEnum<{
83
+ optional: "optional";
84
+ hidden: "hidden";
85
+ required: "required";
86
+ }>;
87
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
88
+ }, z.core.$strict>;
89
+ custom: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
90
+ type: z.ZodLiteral<"short_text">;
91
+ key: z.ZodString;
92
+ state: z.ZodEnum<{
93
+ optional: "optional";
94
+ hidden: "hidden";
95
+ required: "required";
96
+ }>;
97
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
98
+ }, z.core.$strict>, z.ZodObject<{
99
+ type: z.ZodLiteral<"single_choice">;
100
+ choices: z.ZodArray<z.ZodObject<{
101
+ value: z.ZodString;
102
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
103
+ }, z.core.$strict>>;
104
+ key: z.ZodString;
105
+ state: z.ZodEnum<{
106
+ optional: "optional";
107
+ hidden: "hidden";
108
+ required: "required";
109
+ }>;
110
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
111
+ }, z.core.$strict>], "type">>;
112
+ }, z.core.$strict>;
113
+ /**
114
+ * The Account settings, a theme-level group the Shell carries beside the
115
+ * drawer setting: the Profile Fields catalog, and the merchant's own copy
116
+ * the Deletion Sheet shows above the facts the law requires. A Shell that
117
+ * carries none is a design that chose nothing, which a device reads as the
118
+ * default settings.
119
+ */
120
+ export declare const accountSettingsSchema: z.ZodObject<{
121
+ profileFields: z.ZodObject<{
122
+ firstName: z.ZodObject<{
123
+ state: z.ZodEnum<{
124
+ optional: "optional";
125
+ hidden: "hidden";
126
+ required: "required";
127
+ }>;
128
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
129
+ }, z.core.$strict>;
130
+ lastName: z.ZodObject<{
131
+ state: z.ZodEnum<{
132
+ optional: "optional";
133
+ hidden: "hidden";
134
+ required: "required";
135
+ }>;
136
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
137
+ }, z.core.$strict>;
138
+ birthday: z.ZodObject<{
139
+ state: z.ZodEnum<{
140
+ optional: "optional";
141
+ hidden: "hidden";
142
+ required: "required";
143
+ }>;
144
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
145
+ }, z.core.$strict>;
146
+ gender: z.ZodObject<{
147
+ state: z.ZodEnum<{
148
+ optional: "optional";
149
+ hidden: "hidden";
150
+ required: "required";
151
+ }>;
152
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
153
+ }, z.core.$strict>;
154
+ custom: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
155
+ type: z.ZodLiteral<"short_text">;
156
+ key: z.ZodString;
157
+ state: z.ZodEnum<{
158
+ optional: "optional";
159
+ hidden: "hidden";
160
+ required: "required";
161
+ }>;
162
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
163
+ }, z.core.$strict>, z.ZodObject<{
164
+ type: z.ZodLiteral<"single_choice">;
165
+ choices: z.ZodArray<z.ZodObject<{
166
+ value: z.ZodString;
167
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
168
+ }, z.core.$strict>>;
169
+ key: z.ZodString;
170
+ state: z.ZodEnum<{
171
+ optional: "optional";
172
+ hidden: "hidden";
173
+ required: "required";
174
+ }>;
175
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
176
+ }, z.core.$strict>], "type">>;
177
+ }, z.core.$strict>;
178
+ deletionCopy: z.ZodRecord<z.ZodString, z.ZodString>;
179
+ }, z.core.$strict>;
180
+ export type FixedProfileField = z.infer<typeof fixedProfileFieldSchema>;
181
+ export type CustomProfileField = z.infer<typeof customProfileFieldSchema>;
182
+ export type ProfileFields = z.infer<typeof profileFieldsSchema>;
183
+ export type AccountSettings = z.infer<typeof accountSettingsSchema>;
184
+ /** What a theme that chooses nothing gets: the names asked for, the rest hidden, and the plain deletion copy. */
185
+ export declare const DEFAULT_ACCOUNT_SETTINGS: AccountSettings;
186
+ export {};
187
+ //# sourceMappingURL=account-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-settings.d.ts","sourceRoot":"","sources":["../src/account-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,aAEmD,CAAC;AAEtF,+FAA+F;AAC/F,eAAO,MAAM,oBAAoB,6CAA8C,CAAC;AAChF,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,6FAA6F;AAC7F,eAAO,MAAM,oBAAoB,4DAA6D,CAAC;AAE/F,uFAAuF;AACvF,eAAO,MAAM,0BAA0B,0CAA2C,CAAC;AACnF,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjF,eAAO,MAAM,oBAAoB;;;CAAkD,CAAC;AAEpF,QAAA,MAAM,uBAAuB;;;;;;;kBAG3B,CAAC;AAaH,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;4BAqB5B,CAAC;AAIH;;;;GAIG;AACH,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4BvB,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAGhC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,iHAAiH;AACjH,eAAO,MAAM,wBAAwB,EAAE,eAYtC,CAAC"}
@@ -0,0 +1,113 @@
1
+ import { z } from 'zod';
2
+ import { localizedTextSchema } from './locale.js';
3
+ /**
4
+ * The key of one Profile Field: the metafield key a custom field is written
5
+ * under, and the name a fixed field is read by. Snake case, the way a
6
+ * setting key is written.
7
+ */
8
+ export const profileFieldKeySchema = z
9
+ .string()
10
+ .regex(/^[a-z][a-z0-9_]{1,31}$/, 'expected a snake_case key of 2 to 32 characters');
11
+ /** What the merchant decides for each Profile Field: not asked, asked, or asked and needed. */
12
+ export const PROFILE_FIELD_STATES = ['hidden', 'optional', 'required'];
13
+ /** The fixed catalog: the two names on the customer record, and two app-owned metafields. */
14
+ export const FIXED_PROFILE_FIELDS = ['first_name', 'last_name', 'birthday', 'gender'];
15
+ /** What a merchant-defined field asks for: a short text, or one choice from a list. */
16
+ export const CUSTOM_PROFILE_FIELD_TYPES = ['short_text', 'single_choice'];
17
+ export const PROFILE_FIELD_LIMITS = { maxCustomFields: 5, maxChoices: 12 };
18
+ const fixedProfileFieldSchema = z.strictObject({
19
+ state: z.enum(PROFILE_FIELD_STATES),
20
+ label: localizedTextSchema,
21
+ });
22
+ const profileChoiceSchema = z.strictObject({
23
+ value: z.string().min(1).max(64),
24
+ label: localizedTextSchema,
25
+ });
26
+ const customFieldBase = {
27
+ key: profileFieldKeySchema,
28
+ state: z.enum(PROFILE_FIELD_STATES),
29
+ label: localizedTextSchema,
30
+ };
31
+ const customProfileFieldSchema = z.discriminatedUnion('type', [
32
+ z.strictObject({ ...customFieldBase, type: z.literal('short_text') }),
33
+ z
34
+ .strictObject({
35
+ ...customFieldBase,
36
+ type: z.literal('single_choice'),
37
+ choices: z.array(profileChoiceSchema).min(1).max(PROFILE_FIELD_LIMITS.maxChoices),
38
+ })
39
+ .superRefine((field, ctx) => {
40
+ const seen = new Set();
41
+ field.choices.forEach((choice, index) => {
42
+ if (seen.has(choice.value)) {
43
+ ctx.addIssue({
44
+ code: 'custom',
45
+ message: `duplicate choice "${choice.value}"`,
46
+ path: ['choices', index, 'value'],
47
+ });
48
+ }
49
+ seen.add(choice.value);
50
+ });
51
+ }),
52
+ ]);
53
+ const FIXED_KEYS = new Set(FIXED_PROFILE_FIELDS);
54
+ /**
55
+ * The Profile Fields catalog: the fixed four, each hidden, optional or
56
+ * required under its own label, and up to five fields of the merchant's
57
+ * own, each under a key no fixed field owns.
58
+ */
59
+ const profileFieldsSchema = z.strictObject({
60
+ firstName: fixedProfileFieldSchema,
61
+ lastName: fixedProfileFieldSchema,
62
+ birthday: fixedProfileFieldSchema,
63
+ gender: fixedProfileFieldSchema,
64
+ custom: z
65
+ .array(customProfileFieldSchema)
66
+ .max(PROFILE_FIELD_LIMITS.maxCustomFields)
67
+ .superRefine((fields, ctx) => {
68
+ const seen = new Set();
69
+ fields.forEach((field, index) => {
70
+ if (FIXED_KEYS.has(field.key)) {
71
+ ctx.addIssue({
72
+ code: 'custom',
73
+ message: `"${field.key}" is a fixed Profile Field`,
74
+ path: [index, 'key'],
75
+ });
76
+ }
77
+ if (seen.has(field.key)) {
78
+ ctx.addIssue({
79
+ code: 'custom',
80
+ message: `duplicate Profile Field "${field.key}"`,
81
+ path: [index, 'key'],
82
+ });
83
+ }
84
+ seen.add(field.key);
85
+ });
86
+ }),
87
+ });
88
+ /**
89
+ * The Account settings, a theme-level group the Shell carries beside the
90
+ * drawer setting: the Profile Fields catalog, and the merchant's own copy
91
+ * the Deletion Sheet shows above the facts the law requires. A Shell that
92
+ * carries none is a design that chose nothing, which a device reads as the
93
+ * default settings.
94
+ */
95
+ export const accountSettingsSchema = z.strictObject({
96
+ profileFields: profileFieldsSchema,
97
+ deletionCopy: localizedTextSchema,
98
+ });
99
+ /** What a theme that chooses nothing gets: the names asked for, the rest hidden, and the plain deletion copy. */
100
+ export const DEFAULT_ACCOUNT_SETTINGS = {
101
+ profileFields: {
102
+ firstName: { state: 'optional', label: { en: 'First name', ar: 'الاسم الأول' } },
103
+ lastName: { state: 'optional', label: { en: 'Last name', ar: 'اسم العائلة' } },
104
+ birthday: { state: 'hidden', label: { en: 'Birthday', ar: 'تاريخ الميلاد' } },
105
+ gender: { state: 'hidden', label: { en: 'Gender', ar: 'الجنس' } },
106
+ custom: [],
107
+ },
108
+ deletionCopy: {
109
+ en: 'Deleting your account asks the store to erase your profile and your saved addresses.',
110
+ ar: 'حذف حسابك يطلب من المتجر مسح ملفك الشخصي وعناوينك المحفوظة.',
111
+ },
112
+ };
113
+ //# sourceMappingURL=account-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-settings.js","sourceRoot":"","sources":["../src/account-settings.ts"],"names":[],"mappings":"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"}
package/dist/action.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import { z } from 'zod';
2
2
  /**
3
- * The closed action set for standalone tappable blocks. It doubles as the
4
- * deep-link vocabulary for the future push composer. Cards inside bound
5
- * lists navigate implicitly and never carry an action.
3
+ * The closed action set for standalone tappable blocks. Cards inside bound
4
+ * lists navigate implicitly and never carry an action. The seven account
5
+ * actions reach the account from any screen: the host gates the ones that
6
+ * need an Account Session behind the sign-in page and returns afterwards.
6
7
  */
7
8
  export declare const actionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8
9
  type: z.ZodLiteral<"open_screen">;
@@ -14,6 +15,20 @@ export declare const actionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
14
15
  url: z.ZodURL;
15
16
  }, z.core.$strip>, z.ZodObject<{
16
17
  type: z.ZodLiteral<"none">;
18
+ }, z.core.$strip>, z.ZodObject<{
19
+ type: z.ZodLiteral<"sign_in">;
20
+ }, z.core.$strip>, z.ZodObject<{
21
+ type: z.ZodLiteral<"sign_out">;
22
+ }, z.core.$strip>, z.ZodObject<{
23
+ type: z.ZodLiteral<"open_orders">;
24
+ }, z.core.$strip>, z.ZodObject<{
25
+ type: z.ZodLiteral<"open_addresses">;
26
+ }, z.core.$strip>, z.ZodObject<{
27
+ type: z.ZodLiteral<"open_profile">;
28
+ }, z.core.$strip>, z.ZodObject<{
29
+ type: z.ZodLiteral<"add_address">;
30
+ }, z.core.$strip>, z.ZodObject<{
31
+ type: z.ZodLiteral<"delete_account">;
17
32
  }, z.core.$strip>], "type">;
18
33
  export type Action = z.infer<typeof actionSchema>;
19
34
  export type ActionType = Action['type'];
@@ -1 +1 @@
1
- {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;2BAUvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAExC;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG3D"}
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;2BAiBvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAExC;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG3D"}
package/dist/action.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import { z } from 'zod';
2
2
  /**
3
- * The closed action set for standalone tappable blocks. It doubles as the
4
- * deep-link vocabulary for the future push composer. Cards inside bound
5
- * lists navigate implicitly and never carry an action.
3
+ * The closed action set for standalone tappable blocks. Cards inside bound
4
+ * lists navigate implicitly and never carry an action. The seven account
5
+ * actions reach the account from any screen: the host gates the ones that
6
+ * need an Account Session behind the sign-in page and returns afterwards.
6
7
  */
7
8
  export const actionSchema = z.discriminatedUnion('type', [
8
9
  z.object({ type: z.literal('open_screen'), screenId: z.uuid() }),
@@ -14,6 +15,13 @@ export const actionSchema = z.discriminatedUnion('type', [
14
15
  .refine((value) => value.startsWith('https://'), { message: 'external links must be https' }),
15
16
  }),
16
17
  z.object({ type: z.literal('none') }),
18
+ z.object({ type: z.literal('sign_in') }),
19
+ z.object({ type: z.literal('sign_out') }),
20
+ z.object({ type: z.literal('open_orders') }),
21
+ z.object({ type: z.literal('open_addresses') }),
22
+ z.object({ type: z.literal('open_profile') }),
23
+ z.object({ type: z.literal('add_address') }),
24
+ z.object({ type: z.literal('delete_account') }),
17
25
  ]);
18
26
  /**
19
27
  * One resolved value read back as an action, or nothing when it is not one.
@@ -1 +1 @@
1
- {"version":3,"file":"action.js","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACvD,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IAChE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;IAC1C,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAC3B,GAAG,EAAE,CAAC;aACH,GAAG,EAAE;aACL,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;KAChG,CAAC;IACF,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;CACtC,CAAC,CAAC;AAKH;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACvD,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IAChE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;IAC1C,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAC3B,GAAG,EAAE,CAAC;aACH,GAAG,EAAE;aACL,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;KAChG,CAAC;IACF,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;IACrC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;IACxC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IACzC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;IAC5C,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAC/C,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;IAC7C,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;IAC5C,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;CAChD,CAAC,CAAC;AAKH;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../src/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAe,KAAK,KAAK,EAAmB,MAAM,aAAa,CAAC;AAIvE,+EAA+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CAC7C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,cAAc,EAAE,CA2BzE;AAED,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC5C,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,YAAY,EAAE,CAYpE;AAID;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAkBjE;AAED,QAAA,MAAM,oBAAoB;;;;iBAIxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;iBAS7B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;mBAAqD,CAAC;AAEvF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../src/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAe,KAAK,KAAK,EAAmB,MAAM,aAAa,CAAC;AAIvE,+EAA+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CAC7C;AAsBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,cAAc,EAAE,CA+BzE;AAED,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC5C,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,YAAY,EAAE,CAoBpE;AAaD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CA2BjE;AAED,QAAA,MAAM,oBAAoB;;;;iBAIxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;iBAS7B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;mBAAqD,CAAC;AAEvF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
package/dist/assets.js CHANGED
@@ -1,6 +1,20 @@
1
1
  import { z } from 'zod';
2
2
  import { BLOCK_TYPES } from './blocks.js';
3
3
  const KNOWN_TYPES = new Set(BLOCK_TYPES);
4
+ /** The one picture a block carries in its own props, where it carries any. */
5
+ function ownImageOf(image) {
6
+ return image ? [{ assetId: image.assetId, path: ['props', 'image', 'assetId'] }] : [];
7
+ }
8
+ /** The picture of every entry of a list of them, each at its own place in the list. */
9
+ function listImagesOf(prop, entries) {
10
+ const refs = [];
11
+ entries.forEach((entry, index) => {
12
+ if (entry.image) {
13
+ refs.push({ assetId: entry.image.assetId, path: ['props', prop, index, 'image', 'assetId'] });
14
+ }
15
+ });
16
+ return refs;
17
+ }
4
18
  /**
5
19
  * Every asset id a block references. Owned here so the api never learns
6
20
  * which prop of which block type carries an asset — a new asset-bearing
@@ -26,11 +40,15 @@ export function assetReferencesOf(block) {
26
40
  return refs;
27
41
  }
28
42
  case 'hero_banner':
43
+ return known.props.slides === undefined
44
+ ? ownImageOf(known.props.image)
45
+ : listImagesOf('slides', known.props.slides);
29
46
  case 'promo_banner':
47
+ return known.props.cards === undefined
48
+ ? ownImageOf(known.props.image)
49
+ : listImagesOf('cards', known.props.cards);
30
50
  case 'cart_empty':
31
- return known.props.image
32
- ? [{ assetId: known.props.image.assetId, path: ['props', 'image', 'assetId'] }]
33
- : [];
51
+ return ownImageOf(known.props.image);
34
52
  default:
35
53
  return [];
36
54
  }
@@ -46,14 +64,29 @@ export function missingMediaOf(block) {
46
64
  const known = block;
47
65
  switch (known.type) {
48
66
  case 'image':
49
- case 'promo_banner':
50
67
  return known.props.image ? [] : [{ path: ['props', 'image'], label: 'an image' }];
68
+ case 'promo_banner': {
69
+ const cards = known.props.cards;
70
+ if (cards === undefined) {
71
+ return known.props.image ? [] : [{ path: ['props', 'image'], label: 'an image' }];
72
+ }
73
+ return cards.flatMap((card, index) => card.image ? [] : [{ path: ['props', 'cards', index, 'image'], label: 'an image' }]);
74
+ }
51
75
  case 'video':
52
76
  return known.props.assetId ? [] : [{ path: ['props', 'assetId'], label: 'a video' }];
53
77
  default:
54
78
  return [];
55
79
  }
56
80
  }
81
+ /** A slide or a card whose picture field was opened and left empty carries no picture at all. */
82
+ function withoutUnchosenEntryImage(entry) {
83
+ const ref = entry?.image;
84
+ if (!ref || ref.assetId)
85
+ return entry;
86
+ const rest = { ...entry };
87
+ delete rest.image;
88
+ return rest;
89
+ }
57
90
  /**
58
91
  * An editor holds half-filled media while the merchant works: alt text typed
59
92
  * before the picture is chosen, a poster field opened and left empty. The
@@ -77,6 +110,16 @@ export function withoutUnchosenMedia(block) {
77
110
  delete cleaned.assetId;
78
111
  changed = true;
79
112
  }
113
+ for (const key of ['slides', 'cards']) {
114
+ if (!Array.isArray(cleaned[key]))
115
+ continue;
116
+ const entries = cleaned[key];
117
+ const kept = entries.map(withoutUnchosenEntryImage);
118
+ if (kept.some((entry, index) => entry !== entries[index])) {
119
+ cleaned[key] = kept;
120
+ changed = true;
121
+ }
122
+ }
80
123
  return changed ? { ...block, props: cleaned } : block;
81
124
  }
82
125
  const assetRenditionSchema = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../src/assets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../src/assets.ts"],"names":[],"mappings":"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"}
package/dist/binding.d.ts CHANGED
@@ -98,10 +98,56 @@ export declare const cartBindingSchema: z.ZodObject<{
98
98
  form: z.ZodLiteral<"subject">;
99
99
  }, z.core.$strip>;
100
100
  }, z.core.$strip>;
101
+ /** How many orders one page of the orders list holds, the same bounds a products page has. */
102
+ export declare const ORDERS_PAGE_LIMITS: {
103
+ readonly min: 1;
104
+ readonly max: 24;
105
+ };
101
106
  /**
102
- * The five provider-silent Binding kinds. A Binding never names a data
107
+ * The signed-in shopper, read with the Account Session: subject form only,
108
+ * and answered on the account hub alone.
109
+ */
110
+ export declare const customerBindingSchema: z.ZodObject<{
111
+ kind: z.ZodLiteral<"customer">;
112
+ target: z.ZodObject<{
113
+ form: z.ZodLiteral<"subject">;
114
+ }, z.core.$strip>;
115
+ }, z.core.$strip>;
116
+ /**
117
+ * The shopper's own orders, newest first, one page at a time like a products
118
+ * Binding from a collection. There is no sort to choose and no id to name.
119
+ */
120
+ export declare const ordersBindingSchema: z.ZodObject<{
121
+ kind: z.ZodLiteral<"orders">;
122
+ target: z.ZodObject<{
123
+ form: z.ZodLiteral<"subject">;
124
+ }, z.core.$strip>;
125
+ limit: z.ZodNumber;
126
+ paged: z.ZodOptional<z.ZodBoolean>;
127
+ }, z.core.$strip>;
128
+ /** The order the shopper opened from their orders: the Screen Subject of the order screen. */
129
+ export declare const orderBindingSchema: z.ZodObject<{
130
+ kind: z.ZodLiteral<"order">;
131
+ target: z.ZodObject<{
132
+ form: z.ZodLiteral<"subject">;
133
+ }, z.core.$strip>;
134
+ }, z.core.$strip>;
135
+ /** The shopper's address book, the default flagged, on the addresses screen alone. */
136
+ export declare const addressesBindingSchema: z.ZodObject<{
137
+ kind: z.ZodLiteral<"addresses">;
138
+ target: z.ZodObject<{
139
+ form: z.ZodLiteral<"subject">;
140
+ }, z.core.$strip>;
141
+ }, z.core.$strip>;
142
+ /** The four Binding kinds read with the shopper's own Account Session, never a public token. */
143
+ export declare const ACCOUNT_BINDING_KINDS: readonly ["customer", "orders", "order", "addresses"];
144
+ export type AccountBindingKind = (typeof ACCOUNT_BINDING_KINDS)[number];
145
+ /**
146
+ * The nine provider-silent Binding kinds. A Binding never names a data
103
147
  * source; resolving it into display shapes is a Provider's job, except the
104
148
  * cart, which the runtime answers from the cart the device already holds.
149
+ * The four account kinds are subject form only: a shopper's own data is
150
+ * never chosen by id, and it exists only while they are signed in.
105
151
  */
106
152
  export declare const bindingSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
107
153
  kind: z.ZodLiteral<"product">;
@@ -151,6 +197,28 @@ export declare const bindingSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
151
197
  target: z.ZodObject<{
152
198
  form: z.ZodLiteral<"subject">;
153
199
  }, z.core.$strip>;
200
+ }, z.core.$strip>, z.ZodObject<{
201
+ kind: z.ZodLiteral<"customer">;
202
+ target: z.ZodObject<{
203
+ form: z.ZodLiteral<"subject">;
204
+ }, z.core.$strip>;
205
+ }, z.core.$strip>, z.ZodObject<{
206
+ kind: z.ZodLiteral<"orders">;
207
+ target: z.ZodObject<{
208
+ form: z.ZodLiteral<"subject">;
209
+ }, z.core.$strip>;
210
+ limit: z.ZodNumber;
211
+ paged: z.ZodOptional<z.ZodBoolean>;
212
+ }, z.core.$strip>, z.ZodObject<{
213
+ kind: z.ZodLiteral<"order">;
214
+ target: z.ZodObject<{
215
+ form: z.ZodLiteral<"subject">;
216
+ }, z.core.$strip>;
217
+ }, z.core.$strip>, z.ZodObject<{
218
+ kind: z.ZodLiteral<"addresses">;
219
+ target: z.ZodObject<{
220
+ form: z.ZodLiteral<"subject">;
221
+ }, z.core.$strip>;
154
222
  }, z.core.$strip>], "kind">;
155
223
  export type EntityTarget = z.infer<typeof entityTargetSchema>;
156
224
  export type BindingTargetForm = EntityTarget['form'];
@@ -160,8 +228,15 @@ export type ProductsBinding = z.infer<typeof productsBindingSchema>;
160
228
  export type CollectionBinding = z.infer<typeof collectionBindingSchema>;
161
229
  export type CollectionsBinding = z.infer<typeof collectionsBindingSchema>;
162
230
  export type CartBinding = z.infer<typeof cartBindingSchema>;
231
+ export type CustomerBinding = z.infer<typeof customerBindingSchema>;
232
+ export type OrdersBinding = z.infer<typeof ordersBindingSchema>;
233
+ export type OrderBinding = z.infer<typeof orderBindingSchema>;
234
+ export type AddressesBinding = z.infer<typeof addressesBindingSchema>;
235
+ export type AccountBinding = CustomerBinding | OrdersBinding | OrderBinding | AddressesBinding;
163
236
  export type Binding = z.infer<typeof bindingSchema>;
164
237
  export type BindingKind = Binding['kind'];
238
+ /** Whether a Binding kind is one the shopper's own Account Session answers. */
239
+ export declare function isAccountBindingKind(kind: string): kind is AccountBindingKind;
165
240
  /** A JSON Schema for one Binding kind, for an editor completing a file that carries one. */
166
241
  export declare function describeBinding(kind: BindingKind): Record<string, unknown>;
167
242
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB,+FAOpB,CAAC;AAEX,QAAA,MAAM,oBAAoB;;;;;;;EAA4B,CAAC;AAEvD,uFAAuF;AACvF,eAAO,MAAM,oBAAoB,iCAAkC,CAAC;AAEpE;;;;GAIG;AACH,QAAA,MAAM,kBAAkB;;;;;2BAGtB,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;iBAG/B,CAAC;AAEH,8EAA8E;AAC9E,eAAO,MAAM,2BAA2B;;;;;iBAGtC,CAAC;AAEH,gFAAgF;AAChF,eAAO,MAAM,2BAA2B;;;;;;iBAGtC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;iBAuBhC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;iBAGlC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;iBAGnC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;iBAG5B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAMxB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AACrD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAU1C,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE1E"}
1
+ {"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"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"}