@endora-commerce/contracts 0.100.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 (327) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +34 -0
  3. package/dist/actor.d.ts +79 -0
  4. package/dist/actor.d.ts.map +1 -0
  5. package/dist/actor.js +41 -0
  6. package/dist/actor.js.map +1 -0
  7. package/dist/addresses.d.ts +134 -0
  8. package/dist/addresses.d.ts.map +1 -0
  9. package/dist/addresses.js +16 -0
  10. package/dist/addresses.js.map +1 -0
  11. package/dist/admin-actions.d.ts +367 -0
  12. package/dist/admin-actions.d.ts.map +1 -0
  13. package/dist/admin-actions.js +287 -0
  14. package/dist/admin-actions.js.map +1 -0
  15. package/dist/admin-contributions.d.ts +518 -0
  16. package/dist/admin-contributions.d.ts.map +1 -0
  17. package/dist/admin-contributions.js +495 -0
  18. package/dist/admin-contributions.js.map +1 -0
  19. package/dist/admin-i18n.d.ts +135 -0
  20. package/dist/admin-i18n.d.ts.map +1 -0
  21. package/dist/admin-i18n.js +72 -0
  22. package/dist/admin-i18n.js.map +1 -0
  23. package/dist/admin-notifications.d.ts +55 -0
  24. package/dist/admin-notifications.d.ts.map +1 -0
  25. package/dist/admin-notifications.js +16 -0
  26. package/dist/admin-notifications.js.map +1 -0
  27. package/dist/admin-roles.d.ts +125 -0
  28. package/dist/admin-roles.d.ts.map +1 -0
  29. package/dist/admin-roles.js +2 -0
  30. package/dist/admin-roles.js.map +1 -0
  31. package/dist/admin-users.d.ts +178 -0
  32. package/dist/admin-users.d.ts.map +1 -0
  33. package/dist/admin-users.js +14 -0
  34. package/dist/admin-users.js.map +1 -0
  35. package/dist/admin.d.ts +243 -0
  36. package/dist/admin.d.ts.map +1 -0
  37. package/dist/admin.js +246 -0
  38. package/dist/admin.js.map +1 -0
  39. package/dist/analytics.d.ts +123 -0
  40. package/dist/analytics.d.ts.map +1 -0
  41. package/dist/analytics.js +68 -0
  42. package/dist/analytics.js.map +1 -0
  43. package/dist/api-keys.d.ts +97 -0
  44. package/dist/api-keys.d.ts.map +1 -0
  45. package/dist/api-keys.js +64 -0
  46. package/dist/api-keys.js.map +1 -0
  47. package/dist/assets-library.d.ts +684 -0
  48. package/dist/assets-library.d.ts.map +1 -0
  49. package/dist/assets-library.js +181 -0
  50. package/dist/assets-library.js.map +1 -0
  51. package/dist/audit-logs.d.ts +141 -0
  52. package/dist/audit-logs.d.ts.map +1 -0
  53. package/dist/audit-logs.js +31 -0
  54. package/dist/audit-logs.js.map +1 -0
  55. package/dist/auth.d.ts +174 -0
  56. package/dist/auth.d.ts.map +1 -0
  57. package/dist/auth.js +27 -0
  58. package/dist/auth.js.map +1 -0
  59. package/dist/blog.d.ts +669 -0
  60. package/dist/blog.d.ts.map +1 -0
  61. package/dist/blog.js +360 -0
  62. package/dist/blog.js.map +1 -0
  63. package/dist/capabilities.d.ts +40 -0
  64. package/dist/capabilities.d.ts.map +1 -0
  65. package/dist/capabilities.js +38 -0
  66. package/dist/capabilities.js.map +1 -0
  67. package/dist/carts.d.ts +1367 -0
  68. package/dist/carts.d.ts.map +1 -0
  69. package/dist/carts.js +405 -0
  70. package/dist/carts.js.map +1 -0
  71. package/dist/catalog.d.ts +2855 -0
  72. package/dist/catalog.d.ts.map +1 -0
  73. package/dist/catalog.js +1543 -0
  74. package/dist/catalog.js.map +1 -0
  75. package/dist/cms.d.ts +872 -0
  76. package/dist/cms.d.ts.map +1 -0
  77. package/dist/cms.js +468 -0
  78. package/dist/cms.js.map +1 -0
  79. package/dist/common.d.ts +82 -0
  80. package/dist/common.d.ts.map +1 -0
  81. package/dist/common.js +72 -0
  82. package/dist/common.js.map +1 -0
  83. package/dist/comparisons.d.ts +487 -0
  84. package/dist/comparisons.d.ts.map +1 -0
  85. package/dist/comparisons.js +221 -0
  86. package/dist/comparisons.js.map +1 -0
  87. package/dist/credentials.d.ts +292 -0
  88. package/dist/credentials.d.ts.map +1 -0
  89. package/dist/credentials.js +142 -0
  90. package/dist/credentials.js.map +1 -0
  91. package/dist/credit-limits.d.ts +111 -0
  92. package/dist/credit-limits.d.ts.map +1 -0
  93. package/dist/credit-limits.js +35 -0
  94. package/dist/credit-limits.js.map +1 -0
  95. package/dist/currencies.d.ts +127 -0
  96. package/dist/currencies.d.ts.map +1 -0
  97. package/dist/currencies.js +20 -0
  98. package/dist/currencies.js.map +1 -0
  99. package/dist/custom-fields.d.ts +345 -0
  100. package/dist/custom-fields.d.ts.map +1 -0
  101. package/dist/custom-fields.js +185 -0
  102. package/dist/custom-fields.js.map +1 -0
  103. package/dist/customer-accounts.d.ts +690 -0
  104. package/dist/customer-accounts.d.ts.map +1 -0
  105. package/dist/customer-accounts.js +41 -0
  106. package/dist/customer-accounts.js.map +1 -0
  107. package/dist/customers.d.ts +305 -0
  108. package/dist/customers.d.ts.map +1 -0
  109. package/dist/customers.js +158 -0
  110. package/dist/customers.js.map +1 -0
  111. package/dist/dictionary.d.ts +580 -0
  112. package/dist/dictionary.d.ts.map +1 -0
  113. package/dist/dictionary.js +297 -0
  114. package/dist/dictionary.js.map +1 -0
  115. package/dist/email-address.d.ts +62 -0
  116. package/dist/email-address.d.ts.map +1 -0
  117. package/dist/email-address.js +64 -0
  118. package/dist/email-address.js.map +1 -0
  119. package/dist/email.d.ts +175 -0
  120. package/dist/email.d.ts.map +1 -0
  121. package/dist/email.js +45 -0
  122. package/dist/email.js.map +1 -0
  123. package/dist/envelopes.d.ts +15 -0
  124. package/dist/envelopes.d.ts.map +1 -0
  125. package/dist/envelopes.js +16 -0
  126. package/dist/envelopes.js.map +1 -0
  127. package/dist/environment-inputs.d.ts +306 -0
  128. package/dist/environment-inputs.d.ts.map +1 -0
  129. package/dist/environment-inputs.js +277 -0
  130. package/dist/environment-inputs.js.map +1 -0
  131. package/dist/erp-connector.d.ts +52 -0
  132. package/dist/erp-connector.d.ts.map +1 -0
  133. package/dist/erp-connector.js +34 -0
  134. package/dist/erp-connector.js.map +1 -0
  135. package/dist/errors.d.ts +455 -0
  136. package/dist/errors.d.ts.map +1 -0
  137. package/dist/errors.js +532 -0
  138. package/dist/errors.js.map +1 -0
  139. package/dist/google-analytics.d.ts +181 -0
  140. package/dist/google-analytics.d.ts.map +1 -0
  141. package/dist/google-analytics.js +176 -0
  142. package/dist/google-analytics.js.map +1 -0
  143. package/dist/google-tag-manager.d.ts +111 -0
  144. package/dist/google-tag-manager.d.ts.map +1 -0
  145. package/dist/google-tag-manager.js +129 -0
  146. package/dist/google-tag-manager.js.map +1 -0
  147. package/dist/i18n.d.ts +69 -0
  148. package/dist/i18n.d.ts.map +1 -0
  149. package/dist/i18n.js +59 -0
  150. package/dist/i18n.js.map +1 -0
  151. package/dist/import-export.d.ts +63 -0
  152. package/dist/import-export.d.ts.map +1 -0
  153. package/dist/import-export.js +37 -0
  154. package/dist/import-export.js.map +1 -0
  155. package/dist/index.d.ts +82 -0
  156. package/dist/index.d.ts.map +1 -0
  157. package/dist/index.js +126 -0
  158. package/dist/index.js.map +1 -0
  159. package/dist/inventory.d.ts +673 -0
  160. package/dist/inventory.d.ts.map +1 -0
  161. package/dist/inventory.js +412 -0
  162. package/dist/inventory.js.map +1 -0
  163. package/dist/invoice-ledger.d.ts +366 -0
  164. package/dist/invoice-ledger.d.ts.map +1 -0
  165. package/dist/invoice-ledger.js +114 -0
  166. package/dist/invoice-ledger.js.map +1 -0
  167. package/dist/invoices.d.ts +845 -0
  168. package/dist/invoices.d.ts.map +1 -0
  169. package/dist/invoices.js +314 -0
  170. package/dist/invoices.js.map +1 -0
  171. package/dist/kernel.d.ts +49 -0
  172. package/dist/kernel.d.ts.map +1 -0
  173. package/dist/kernel.js +19 -0
  174. package/dist/kernel.js.map +1 -0
  175. package/dist/languages.d.ts +122 -0
  176. package/dist/languages.d.ts.map +1 -0
  177. package/dist/languages.js +24 -0
  178. package/dist/languages.js.map +1 -0
  179. package/dist/linkedin-ads.d.ts +167 -0
  180. package/dist/linkedin-ads.d.ts.map +1 -0
  181. package/dist/linkedin-ads.js +156 -0
  182. package/dist/linkedin-ads.js.map +1 -0
  183. package/dist/megamenu.d.ts +556 -0
  184. package/dist/megamenu.d.ts.map +1 -0
  185. package/dist/megamenu.js +186 -0
  186. package/dist/megamenu.js.map +1 -0
  187. package/dist/meta-ads.d.ts +126 -0
  188. package/dist/meta-ads.d.ts.map +1 -0
  189. package/dist/meta-ads.js +112 -0
  190. package/dist/meta-ads.js.map +1 -0
  191. package/dist/mfa.d.ts +274 -0
  192. package/dist/mfa.d.ts.map +1 -0
  193. package/dist/mfa.js +187 -0
  194. package/dist/mfa.js.map +1 -0
  195. package/dist/modules.d.ts +1706 -0
  196. package/dist/modules.d.ts.map +1 -0
  197. package/dist/modules.js +1390 -0
  198. package/dist/modules.js.map +1 -0
  199. package/dist/newsletter.d.ts +611 -0
  200. package/dist/newsletter.d.ts.map +1 -0
  201. package/dist/newsletter.js +345 -0
  202. package/dist/newsletter.js.map +1 -0
  203. package/dist/orders.d.ts +1175 -0
  204. package/dist/orders.d.ts.map +1 -0
  205. package/dist/orders.js +630 -0
  206. package/dist/orders.js.map +1 -0
  207. package/dist/organizations.d.ts +938 -0
  208. package/dist/organizations.d.ts.map +1 -0
  209. package/dist/organizations.js +418 -0
  210. package/dist/organizations.js.map +1 -0
  211. package/dist/pagination.d.ts +21 -0
  212. package/dist/pagination.d.ts.map +1 -0
  213. package/dist/pagination.js +22 -0
  214. package/dist/pagination.js.map +1 -0
  215. package/dist/payment-methods.d.ts +472 -0
  216. package/dist/payment-methods.d.ts.map +1 -0
  217. package/dist/payment-methods.js +175 -0
  218. package/dist/payment-methods.js.map +1 -0
  219. package/dist/payment-return-url.d.ts +53 -0
  220. package/dist/payment-return-url.d.ts.map +1 -0
  221. package/dist/payment-return-url.js +35 -0
  222. package/dist/payment-return-url.js.map +1 -0
  223. package/dist/payments.d.ts +386 -0
  224. package/dist/payments.d.ts.map +1 -0
  225. package/dist/payments.js +84 -0
  226. package/dist/payments.js.map +1 -0
  227. package/dist/pim-connector.d.ts +60 -0
  228. package/dist/pim-connector.d.ts.map +1 -0
  229. package/dist/pim-connector.js +43 -0
  230. package/dist/pim-connector.js.map +1 -0
  231. package/dist/pim-field-path.d.ts +6 -0
  232. package/dist/pim-field-path.d.ts.map +1 -0
  233. package/dist/pim-field-path.js +101 -0
  234. package/dist/pim-field-path.js.map +1 -0
  235. package/dist/platform-language.d.ts +20 -0
  236. package/dist/platform-language.d.ts.map +1 -0
  237. package/dist/platform-language.js +22 -0
  238. package/dist/platform-language.js.map +1 -0
  239. package/dist/price-lists.d.ts +685 -0
  240. package/dist/price-lists.d.ts.map +1 -0
  241. package/dist/price-lists.js +330 -0
  242. package/dist/price-lists.js.map +1 -0
  243. package/dist/product-feeds.d.ts +2837 -0
  244. package/dist/product-feeds.d.ts.map +1 -0
  245. package/dist/product-feeds.js +1504 -0
  246. package/dist/product-feeds.js.map +1 -0
  247. package/dist/product-scope-overrides.d.ts +134 -0
  248. package/dist/product-scope-overrides.d.ts.map +1 -0
  249. package/dist/product-scope-overrides.js +82 -0
  250. package/dist/product-scope-overrides.js.map +1 -0
  251. package/dist/product-value-resolver.d.ts +88 -0
  252. package/dist/product-value-resolver.d.ts.map +1 -0
  253. package/dist/product-value-resolver.js +128 -0
  254. package/dist/product-value-resolver.js.map +1 -0
  255. package/dist/promotions.d.ts +678 -0
  256. package/dist/promotions.d.ts.map +1 -0
  257. package/dist/promotions.js +479 -0
  258. package/dist/promotions.js.map +1 -0
  259. package/dist/prompt-actions.d.ts +582 -0
  260. package/dist/prompt-actions.d.ts.map +1 -0
  261. package/dist/prompt-actions.js +221 -0
  262. package/dist/prompt-actions.js.map +1 -0
  263. package/dist/pwa.d.ts +293 -0
  264. package/dist/pwa.d.ts.map +1 -0
  265. package/dist/pwa.js +204 -0
  266. package/dist/pwa.js.map +1 -0
  267. package/dist/quick-order.d.ts +340 -0
  268. package/dist/quick-order.d.ts.map +1 -0
  269. package/dist/quick-order.js +177 -0
  270. package/dist/quick-order.js.map +1 -0
  271. package/dist/quote-requests.d.ts +538 -0
  272. package/dist/quote-requests.d.ts.map +1 -0
  273. package/dist/quote-requests.js +308 -0
  274. package/dist/quote-requests.js.map +1 -0
  275. package/dist/returns.d.ts +774 -0
  276. package/dist/returns.d.ts.map +1 -0
  277. package/dist/returns.js +389 -0
  278. package/dist/returns.js.map +1 -0
  279. package/dist/sales-channels.d.ts +392 -0
  280. package/dist/sales-channels.d.ts.map +1 -0
  281. package/dist/sales-channels.js +285 -0
  282. package/dist/sales-channels.js.map +1 -0
  283. package/dist/scope-notice.d.ts +60 -0
  284. package/dist/scope-notice.d.ts.map +1 -0
  285. package/dist/scope-notice.js +56 -0
  286. package/dist/scope-notice.js.map +1 -0
  287. package/dist/search.d.ts +321 -0
  288. package/dist/search.d.ts.map +1 -0
  289. package/dist/search.js +160 -0
  290. package/dist/search.js.map +1 -0
  291. package/dist/seo.d.ts +113 -0
  292. package/dist/seo.d.ts.map +1 -0
  293. package/dist/seo.js +63 -0
  294. package/dist/seo.js.map +1 -0
  295. package/dist/settings.d.ts +453 -0
  296. package/dist/settings.d.ts.map +1 -0
  297. package/dist/settings.js +337 -0
  298. package/dist/settings.js.map +1 -0
  299. package/dist/shipments.d.ts +140 -0
  300. package/dist/shipments.d.ts.map +1 -0
  301. package/dist/shipments.js +14 -0
  302. package/dist/shipments.js.map +1 -0
  303. package/dist/shipping-methods.d.ts +350 -0
  304. package/dist/shipping-methods.d.ts.map +1 -0
  305. package/dist/shipping-methods.js +99 -0
  306. package/dist/shipping-methods.js.map +1 -0
  307. package/dist/shopping-lists.d.ts +122 -0
  308. package/dist/shopping-lists.d.ts.map +1 -0
  309. package/dist/shopping-lists.js +92 -0
  310. package/dist/shopping-lists.js.map +1 -0
  311. package/dist/taxes.d.ts +106 -0
  312. package/dist/taxes.d.ts.map +1 -0
  313. package/dist/taxes.js +80 -0
  314. package/dist/taxes.js.map +1 -0
  315. package/dist/text-normalization.d.ts +199 -0
  316. package/dist/text-normalization.d.ts.map +1 -0
  317. package/dist/text-normalization.js +205 -0
  318. package/dist/text-normalization.js.map +1 -0
  319. package/dist/transactional-emails.d.ts +459 -0
  320. package/dist/transactional-emails.d.ts.map +1 -0
  321. package/dist/transactional-emails.js +212 -0
  322. package/dist/transactional-emails.js.map +1 -0
  323. package/dist/webhooks.d.ts +69 -0
  324. package/dist/webhooks.d.ts.map +1 -0
  325. package/dist/webhooks.js +53 -0
  326. package/dist/webhooks.js.map +1 -0
  327. package/package.json +46 -0
package/dist/common.js ADDED
@@ -0,0 +1,72 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Shared primitive schemas reused across every module contract.
4
+ * Lives in @endora-commerce/contracts so backend + both frontends share one source of truth.
5
+ */
6
+ export const isoDateTimeSchema = z
7
+ .string()
8
+ .datetime({ offset: true })
9
+ .describe('ISO-8601 datetime with offset, e.g. 2026-04-23T10:15:30.000Z');
10
+ export const uuidSchema = z.string().uuid();
11
+ /**
12
+ * Monetary amount — decimal string or number in the minor-unit-plus-currency form.
13
+ * We keep amount as a `number` on the wire; backend persists as numeric(14,2).
14
+ * Currency is an ISO 4217 code.
15
+ */
16
+ export const moneySchema = z.object({
17
+ amount: z.number().finite(),
18
+ currency: z.string().length(3).describe('ISO 4217 currency code, e.g. PLN, EUR, USD'),
19
+ });
20
+ /**
21
+ * Multilingual string — keys are BCP-47 language tags. Missing tags fall back to the
22
+ * Sales Channel's default language (FR-105).
23
+ */
24
+ export const multilingualStringSchema = z.record(z.string().min(2), z.string());
25
+ /**
26
+ * Snapshot address embedded in Orders, Invoices, Deliveries — captured at order time so
27
+ * later edits to the source Address row do not rewrite history.
28
+ */
29
+ export const addressSnapshotSchema = z.object({
30
+ recipientName: z.string().max(160),
31
+ street: z.string().max(255),
32
+ city: z.string().max(120),
33
+ postalCode: z.string().max(20),
34
+ country: z.string().length(2).describe('ISO-3166-1 alpha-2 country code'),
35
+ phone: z.string().max(32).optional(),
36
+ /**
37
+ * Optional company name captured on a billing snapshot. Defaults from the
38
+ * Organization at order placement; the buyer may override it at checkout.
39
+ */
40
+ companyName: z.string().max(255).optional(),
41
+ /**
42
+ * Optional tax identifier (Polish NIP by default) captured on a billing
43
+ * snapshot. Defaults from the Organization at placement; overridable at
44
+ * checkout.
45
+ */
46
+ taxId: z.string().max(32).optional(),
47
+ });
48
+ /**
49
+ * Default order lifecycle statuses (feature 038). The lifecycle is now
50
+ * admin-configurable; this enum is the seeded default set and the fallback the
51
+ * `EnumOrderStatusRegistry` validates payment/shipping `statusOn*` references
52
+ * against. Runtime-added statuses are validated against the configurable graph,
53
+ * not this enum.
54
+ */
55
+ export const orderStatusSchema = z.enum([
56
+ 'new',
57
+ 'pending',
58
+ 'paid',
59
+ 'processing',
60
+ 'shipment_ready',
61
+ 'shipment_sent',
62
+ 'completed',
63
+ 'on_hold',
64
+ 'cancelled',
65
+ ]);
66
+ /** Payment lifecycle statuses (FR-014). `failed` added by feature 034 (payment-method adapter framework). */
67
+ export const paymentStatusSchema = z.enum(['awaiting_payment', 'paid', 'failed', 'deferred', 'refunded']);
68
+ /** Roles within a Customer Organization (FR-042). */
69
+ export const organizationRoleSchema = z.enum(['organization_admin', 'regular_user']);
70
+ /** Supported Sales Channel visibility modes (R-18 + FR-106). */
71
+ export const productVisibilitySchema = z.enum(['public', 'logged_in_only', 'organization_restricted']);
72
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,EAAE;KACR,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KAC1B,QAAQ,CAAC,8DAA8D,CAAC,CAAC;AAI5E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AAG5C;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;CACtF,CAAC,CAAC;AAGH;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAGhF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IACzB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACzE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC;;;OAGG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC3C;;;;OAIG;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAGH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC;IACtC,KAAK;IACL,SAAS;IACT,MAAM;IACN,YAAY;IACZ,gBAAgB;IAChB,eAAe;IACf,WAAW;IACX,SAAS;IACT,WAAW;CACZ,CAAC,CAAC;AAGH,6GAA6G;AAC7G,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AAG1G,qDAAqD;AACrD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC,CAAC;AAGrF,gEAAgE;AAChE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,gBAAgB,EAAE,yBAAyB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,487 @@
1
+ import { z } from 'zod';
2
+ export declare const COMPARE_DISPLAY_MODES: readonly ["all", "common", "differences"];
3
+ export declare const COMPARE_MAX_PRODUCTS_LOWER_BOUND = 1;
4
+ export declare const COMPARE_MAX_PRODUCTS_UPPER_BOUND = 16;
5
+ export declare const comparisonDisplayModeSchema: z.ZodEnum<{
6
+ all: "all";
7
+ common: "common";
8
+ differences: "differences";
9
+ }>;
10
+ export type ComparisonDisplayMode = z.infer<typeof comparisonDisplayModeSchema>;
11
+ /**
12
+ * Server-computed classification per attribute row, per research.md R-6:
13
+ * - `'common'` — every product carries the same value (set-equal for
14
+ * multi-value, ===-equal for scalars).
15
+ * - `'different'` — at least one product disagrees, OR at least one
16
+ * product has no value at all.
17
+ */
18
+ export declare const comparisonRowClassSchema: z.ZodEnum<{
19
+ common: "common";
20
+ different: "different";
21
+ }>;
22
+ export type ComparisonRowClass = z.infer<typeof comparisonRowClassSchema>;
23
+ export declare const comparisonProductSummarySchema: z.ZodObject<{
24
+ id: z.ZodString;
25
+ sku: z.ZodString;
26
+ name: z.ZodRecord<z.ZodString, z.ZodString>;
27
+ slug: z.ZodString;
28
+ type: z.ZodEnum<{
29
+ simple: "simple";
30
+ configurable: "configurable";
31
+ grouped: "grouped";
32
+ bundle: "bundle";
33
+ virtual: "virtual";
34
+ }>;
35
+ primaryAssetUrl: z.ZodNullable<z.ZodString>;
36
+ price: z.ZodNullable<z.ZodObject<{
37
+ amount: z.ZodNumber;
38
+ currency: z.ZodString;
39
+ }, z.core.$strip>>;
40
+ available: z.ZodBoolean;
41
+ addedAt: z.ZodString;
42
+ }, z.core.$strip>;
43
+ export type ComparisonProductSummary = z.infer<typeof comparisonProductSummarySchema>;
44
+ export declare const comparisonAttributeRowSchema: z.ZodObject<{
45
+ key: z.ZodString;
46
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
47
+ valueType: z.ZodEnum<{
48
+ string: "string";
49
+ number: "number";
50
+ boolean: "boolean";
51
+ date: "date";
52
+ enum: "enum";
53
+ select: "select";
54
+ price: "price";
55
+ multiselect: "multiselect";
56
+ }>;
57
+ values: z.ZodArray<z.ZodNullable<z.ZodString>>;
58
+ rowClass: z.ZodEnum<{
59
+ common: "common";
60
+ different: "different";
61
+ }>;
62
+ }, z.core.$strip>;
63
+ export type ComparisonAttributeRow = z.infer<typeof comparisonAttributeRowSchema>;
64
+ /**
65
+ * Whose prices the columns carry.
66
+ *
67
+ * The viewer's identity decides the figures, always: `organization` means they
68
+ * were resolved against the reader's own price lists, `channel` that they are
69
+ * the sales channel's public ones. A share token decides *which products* are
70
+ * in a comparison and never *which prices* are shown, so sender and recipient
71
+ * legitimately see different numbers on one link — and a reader who cannot tell
72
+ * which they are looking at cannot act on either.
73
+ */
74
+ export declare const comparisonPricedForSchema: z.ZodEnum<{
75
+ channel: "channel";
76
+ organization: "organization";
77
+ }>;
78
+ export type ComparisonPricedFor = z.infer<typeof comparisonPricedForSchema>;
79
+ export declare const comparisonOwnerViewSchema: z.ZodObject<{
80
+ id: z.ZodString;
81
+ shareToken: z.ZodString;
82
+ displayMode: z.ZodEnum<{
83
+ all: "all";
84
+ common: "common";
85
+ differences: "differences";
86
+ }>;
87
+ maxProducts: z.ZodNumber;
88
+ products: z.ZodArray<z.ZodObject<{
89
+ id: z.ZodString;
90
+ sku: z.ZodString;
91
+ name: z.ZodRecord<z.ZodString, z.ZodString>;
92
+ slug: z.ZodString;
93
+ type: z.ZodEnum<{
94
+ simple: "simple";
95
+ configurable: "configurable";
96
+ grouped: "grouped";
97
+ bundle: "bundle";
98
+ virtual: "virtual";
99
+ }>;
100
+ primaryAssetUrl: z.ZodNullable<z.ZodString>;
101
+ price: z.ZodNullable<z.ZodObject<{
102
+ amount: z.ZodNumber;
103
+ currency: z.ZodString;
104
+ }, z.core.$strip>>;
105
+ available: z.ZodBoolean;
106
+ addedAt: z.ZodString;
107
+ }, z.core.$strip>>;
108
+ comparableAttributes: z.ZodArray<z.ZodObject<{
109
+ key: z.ZodString;
110
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
111
+ valueType: z.ZodEnum<{
112
+ string: "string";
113
+ number: "number";
114
+ boolean: "boolean";
115
+ date: "date";
116
+ enum: "enum";
117
+ select: "select";
118
+ price: "price";
119
+ multiselect: "multiselect";
120
+ }>;
121
+ values: z.ZodArray<z.ZodNullable<z.ZodString>>;
122
+ rowClass: z.ZodEnum<{
123
+ common: "common";
124
+ different: "different";
125
+ }>;
126
+ }, z.core.$strip>>;
127
+ pricedFor: z.ZodEnum<{
128
+ channel: "channel";
129
+ organization: "organization";
130
+ }>;
131
+ hiddenProductCount: z.ZodNumber;
132
+ createdAt: z.ZodString;
133
+ updatedAt: z.ZodString;
134
+ }, z.core.$strip>;
135
+ export type ComparisonOwnerView = z.infer<typeof comparisonOwnerViewSchema>;
136
+ export declare const comparisonOwnerResponseSchema: z.ZodObject<{
137
+ data: z.ZodObject<{
138
+ id: z.ZodString;
139
+ shareToken: z.ZodString;
140
+ displayMode: z.ZodEnum<{
141
+ all: "all";
142
+ common: "common";
143
+ differences: "differences";
144
+ }>;
145
+ maxProducts: z.ZodNumber;
146
+ products: z.ZodArray<z.ZodObject<{
147
+ id: z.ZodString;
148
+ sku: z.ZodString;
149
+ name: z.ZodRecord<z.ZodString, z.ZodString>;
150
+ slug: z.ZodString;
151
+ type: z.ZodEnum<{
152
+ simple: "simple";
153
+ configurable: "configurable";
154
+ grouped: "grouped";
155
+ bundle: "bundle";
156
+ virtual: "virtual";
157
+ }>;
158
+ primaryAssetUrl: z.ZodNullable<z.ZodString>;
159
+ price: z.ZodNullable<z.ZodObject<{
160
+ amount: z.ZodNumber;
161
+ currency: z.ZodString;
162
+ }, z.core.$strip>>;
163
+ available: z.ZodBoolean;
164
+ addedAt: z.ZodString;
165
+ }, z.core.$strip>>;
166
+ comparableAttributes: z.ZodArray<z.ZodObject<{
167
+ key: z.ZodString;
168
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
169
+ valueType: z.ZodEnum<{
170
+ string: "string";
171
+ number: "number";
172
+ boolean: "boolean";
173
+ date: "date";
174
+ enum: "enum";
175
+ select: "select";
176
+ price: "price";
177
+ multiselect: "multiselect";
178
+ }>;
179
+ values: z.ZodArray<z.ZodNullable<z.ZodString>>;
180
+ rowClass: z.ZodEnum<{
181
+ common: "common";
182
+ different: "different";
183
+ }>;
184
+ }, z.core.$strip>>;
185
+ pricedFor: z.ZodEnum<{
186
+ channel: "channel";
187
+ organization: "organization";
188
+ }>;
189
+ hiddenProductCount: z.ZodNumber;
190
+ createdAt: z.ZodString;
191
+ updatedAt: z.ZodString;
192
+ }, z.core.$strip>;
193
+ }, z.core.$strip>;
194
+ export type ComparisonOwnerResponse = z.infer<typeof comparisonOwnerResponseSchema>;
195
+ export declare const comparisonAddProductInputSchema: z.ZodObject<{
196
+ productId: z.ZodString;
197
+ }, z.core.$strip>;
198
+ export type ComparisonAddProductInput = z.infer<typeof comparisonAddProductInputSchema>;
199
+ export declare const comparisonSetDisplayModeInputSchema: z.ZodObject<{
200
+ displayMode: z.ZodEnum<{
201
+ all: "all";
202
+ common: "common";
203
+ differences: "differences";
204
+ }>;
205
+ }, z.core.$strip>;
206
+ export type ComparisonSetDisplayModeInput = z.infer<typeof comparisonSetDisplayModeInputSchema>;
207
+ /**
208
+ * Recipient-side projection. Same column shape as the owner view minus
209
+ * `maxProducts` (the recipient cannot mutate the comparison, so the cap
210
+ * is irrelevant) plus `meta.viewerIsOwner` so the storefront knows
211
+ * whether to render owner-only affordances (Add to cart, Remove,
212
+ * Delete, Copy share link).
213
+ */
214
+ export declare const comparisonSharedViewSchema: z.ZodObject<{
215
+ id: z.ZodString;
216
+ shareToken: z.ZodString;
217
+ displayMode: z.ZodEnum<{
218
+ all: "all";
219
+ common: "common";
220
+ differences: "differences";
221
+ }>;
222
+ products: z.ZodArray<z.ZodObject<{
223
+ id: z.ZodString;
224
+ sku: z.ZodString;
225
+ name: z.ZodRecord<z.ZodString, z.ZodString>;
226
+ slug: z.ZodString;
227
+ type: z.ZodEnum<{
228
+ simple: "simple";
229
+ configurable: "configurable";
230
+ grouped: "grouped";
231
+ bundle: "bundle";
232
+ virtual: "virtual";
233
+ }>;
234
+ primaryAssetUrl: z.ZodNullable<z.ZodString>;
235
+ price: z.ZodNullable<z.ZodObject<{
236
+ amount: z.ZodNumber;
237
+ currency: z.ZodString;
238
+ }, z.core.$strip>>;
239
+ available: z.ZodBoolean;
240
+ addedAt: z.ZodString;
241
+ }, z.core.$strip>>;
242
+ comparableAttributes: z.ZodArray<z.ZodObject<{
243
+ key: z.ZodString;
244
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
245
+ valueType: z.ZodEnum<{
246
+ string: "string";
247
+ number: "number";
248
+ boolean: "boolean";
249
+ date: "date";
250
+ enum: "enum";
251
+ select: "select";
252
+ price: "price";
253
+ multiselect: "multiselect";
254
+ }>;
255
+ values: z.ZodArray<z.ZodNullable<z.ZodString>>;
256
+ rowClass: z.ZodEnum<{
257
+ common: "common";
258
+ different: "different";
259
+ }>;
260
+ }, z.core.$strip>>;
261
+ pricedFor: z.ZodEnum<{
262
+ channel: "channel";
263
+ organization: "organization";
264
+ }>;
265
+ hiddenProductCount: z.ZodNumber;
266
+ createdAt: z.ZodString;
267
+ updatedAt: z.ZodString;
268
+ }, z.core.$strip>;
269
+ export type ComparisonSharedView = z.infer<typeof comparisonSharedViewSchema>;
270
+ export declare const comparisonSharedResponseSchema: z.ZodObject<{
271
+ data: z.ZodObject<{
272
+ id: z.ZodString;
273
+ shareToken: z.ZodString;
274
+ displayMode: z.ZodEnum<{
275
+ all: "all";
276
+ common: "common";
277
+ differences: "differences";
278
+ }>;
279
+ products: z.ZodArray<z.ZodObject<{
280
+ id: z.ZodString;
281
+ sku: z.ZodString;
282
+ name: z.ZodRecord<z.ZodString, z.ZodString>;
283
+ slug: z.ZodString;
284
+ type: z.ZodEnum<{
285
+ simple: "simple";
286
+ configurable: "configurable";
287
+ grouped: "grouped";
288
+ bundle: "bundle";
289
+ virtual: "virtual";
290
+ }>;
291
+ primaryAssetUrl: z.ZodNullable<z.ZodString>;
292
+ price: z.ZodNullable<z.ZodObject<{
293
+ amount: z.ZodNumber;
294
+ currency: z.ZodString;
295
+ }, z.core.$strip>>;
296
+ available: z.ZodBoolean;
297
+ addedAt: z.ZodString;
298
+ }, z.core.$strip>>;
299
+ comparableAttributes: z.ZodArray<z.ZodObject<{
300
+ key: z.ZodString;
301
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
302
+ valueType: z.ZodEnum<{
303
+ string: "string";
304
+ number: "number";
305
+ boolean: "boolean";
306
+ date: "date";
307
+ enum: "enum";
308
+ select: "select";
309
+ price: "price";
310
+ multiselect: "multiselect";
311
+ }>;
312
+ values: z.ZodArray<z.ZodNullable<z.ZodString>>;
313
+ rowClass: z.ZodEnum<{
314
+ common: "common";
315
+ different: "different";
316
+ }>;
317
+ }, z.core.$strip>>;
318
+ pricedFor: z.ZodEnum<{
319
+ channel: "channel";
320
+ organization: "organization";
321
+ }>;
322
+ hiddenProductCount: z.ZodNumber;
323
+ createdAt: z.ZodString;
324
+ updatedAt: z.ZodString;
325
+ }, z.core.$strip>;
326
+ meta: z.ZodObject<{
327
+ viewerIsOwner: z.ZodBoolean;
328
+ }, z.core.$strip>;
329
+ }, z.core.$strip>;
330
+ export type ComparisonSharedResponse = z.infer<typeof comparisonSharedResponseSchema>;
331
+ export declare const comparisonAdminOwnerSchema: z.ZodObject<{
332
+ kind: z.ZodEnum<{
333
+ anonymous: "anonymous";
334
+ customer: "customer";
335
+ }>;
336
+ customerAccountId: z.ZodNullable<z.ZodString>;
337
+ email: z.ZodNullable<z.ZodString>;
338
+ anonymousToken: z.ZodNullable<z.ZodString>;
339
+ }, z.core.$strip>;
340
+ export type ComparisonAdminOwner = z.infer<typeof comparisonAdminOwnerSchema>;
341
+ export declare const comparisonAdminSalesChannelSchema: z.ZodObject<{
342
+ id: z.ZodString;
343
+ code: z.ZodString;
344
+ }, z.core.$strip>;
345
+ export declare const comparisonAdminListItemSchema: z.ZodObject<{
346
+ id: z.ZodString;
347
+ shareToken: z.ZodString;
348
+ owner: z.ZodObject<{
349
+ kind: z.ZodEnum<{
350
+ anonymous: "anonymous";
351
+ customer: "customer";
352
+ }>;
353
+ customerAccountId: z.ZodNullable<z.ZodString>;
354
+ email: z.ZodNullable<z.ZodString>;
355
+ anonymousToken: z.ZodNullable<z.ZodString>;
356
+ }, z.core.$strip>;
357
+ salesChannel: z.ZodObject<{
358
+ id: z.ZodString;
359
+ code: z.ZodString;
360
+ }, z.core.$strip>;
361
+ displayMode: z.ZodEnum<{
362
+ all: "all";
363
+ common: "common";
364
+ differences: "differences";
365
+ }>;
366
+ productCount: z.ZodNumber;
367
+ createdAt: z.ZodString;
368
+ updatedAt: z.ZodString;
369
+ }, z.core.$strip>;
370
+ export type ComparisonAdminListItem = z.infer<typeof comparisonAdminListItemSchema>;
371
+ export declare const comparisonAdminListQuerySchema: z.ZodObject<{
372
+ salesChannelId: z.ZodOptional<z.ZodString>;
373
+ customerAccountId: z.ZodOptional<z.ZodString>;
374
+ ownerType: z.ZodOptional<z.ZodEnum<{
375
+ anonymous: "anonymous";
376
+ customer: "customer";
377
+ }>>;
378
+ createdAfter: z.ZodOptional<z.ZodString>;
379
+ createdBefore: z.ZodOptional<z.ZodString>;
380
+ cursor: z.ZodOptional<z.ZodString>;
381
+ limit: z.ZodOptional<z.ZodNumber>;
382
+ }, z.core.$strip>;
383
+ export type ComparisonAdminListQuery = z.infer<typeof comparisonAdminListQuerySchema>;
384
+ export declare const comparisonAdminListResponseSchema: z.ZodObject<{
385
+ data: z.ZodArray<z.ZodObject<{
386
+ id: z.ZodString;
387
+ shareToken: z.ZodString;
388
+ owner: z.ZodObject<{
389
+ kind: z.ZodEnum<{
390
+ anonymous: "anonymous";
391
+ customer: "customer";
392
+ }>;
393
+ customerAccountId: z.ZodNullable<z.ZodString>;
394
+ email: z.ZodNullable<z.ZodString>;
395
+ anonymousToken: z.ZodNullable<z.ZodString>;
396
+ }, z.core.$strip>;
397
+ salesChannel: z.ZodObject<{
398
+ id: z.ZodString;
399
+ code: z.ZodString;
400
+ }, z.core.$strip>;
401
+ displayMode: z.ZodEnum<{
402
+ all: "all";
403
+ common: "common";
404
+ differences: "differences";
405
+ }>;
406
+ productCount: z.ZodNumber;
407
+ createdAt: z.ZodString;
408
+ updatedAt: z.ZodString;
409
+ }, z.core.$strip>>;
410
+ meta: z.ZodObject<{
411
+ limit: z.ZodNumber;
412
+ nextCursor: z.ZodNullable<z.ZodString>;
413
+ }, z.core.$strip>;
414
+ }, z.core.$strip>;
415
+ export type ComparisonAdminListResponse = z.infer<typeof comparisonAdminListResponseSchema>;
416
+ /**
417
+ * Admin detail — same shape the storefront owner sees, plus the admin
418
+ * metadata block (owner identity, sales channel, raw shareToken). The
419
+ * detail endpoint renders prices in the comparison's RECORDED channel
420
+ * (the creator's), not the admin's preferred channel — so a support
421
+ * investigation matches what the customer reported.
422
+ */
423
+ export declare const comparisonAdminDetailSchema: z.ZodObject<{
424
+ id: z.ZodString;
425
+ shareToken: z.ZodString;
426
+ owner: z.ZodObject<{
427
+ kind: z.ZodEnum<{
428
+ anonymous: "anonymous";
429
+ customer: "customer";
430
+ }>;
431
+ customerAccountId: z.ZodNullable<z.ZodString>;
432
+ email: z.ZodNullable<z.ZodString>;
433
+ anonymousToken: z.ZodNullable<z.ZodString>;
434
+ }, z.core.$strip>;
435
+ salesChannel: z.ZodObject<{
436
+ id: z.ZodString;
437
+ code: z.ZodString;
438
+ }, z.core.$strip>;
439
+ displayMode: z.ZodEnum<{
440
+ all: "all";
441
+ common: "common";
442
+ differences: "differences";
443
+ }>;
444
+ products: z.ZodArray<z.ZodObject<{
445
+ id: z.ZodString;
446
+ sku: z.ZodString;
447
+ name: z.ZodRecord<z.ZodString, z.ZodString>;
448
+ slug: z.ZodString;
449
+ type: z.ZodEnum<{
450
+ simple: "simple";
451
+ configurable: "configurable";
452
+ grouped: "grouped";
453
+ bundle: "bundle";
454
+ virtual: "virtual";
455
+ }>;
456
+ primaryAssetUrl: z.ZodNullable<z.ZodString>;
457
+ price: z.ZodNullable<z.ZodObject<{
458
+ amount: z.ZodNumber;
459
+ currency: z.ZodString;
460
+ }, z.core.$strip>>;
461
+ available: z.ZodBoolean;
462
+ addedAt: z.ZodString;
463
+ }, z.core.$strip>>;
464
+ comparableAttributes: z.ZodArray<z.ZodObject<{
465
+ key: z.ZodString;
466
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
467
+ valueType: z.ZodEnum<{
468
+ string: "string";
469
+ number: "number";
470
+ boolean: "boolean";
471
+ date: "date";
472
+ enum: "enum";
473
+ select: "select";
474
+ price: "price";
475
+ multiselect: "multiselect";
476
+ }>;
477
+ values: z.ZodArray<z.ZodNullable<z.ZodString>>;
478
+ rowClass: z.ZodEnum<{
479
+ common: "common";
480
+ different: "different";
481
+ }>;
482
+ }, z.core.$strip>>;
483
+ createdAt: z.ZodString;
484
+ updatedAt: z.ZodString;
485
+ }, z.core.$strip>;
486
+ export type ComparisonAdminDetail = z.infer<typeof comparisonAdminDetailSchema>;
487
+ //# sourceMappingURL=comparisons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparisons.d.ts","sourceRoot":"","sources":["../src/comparisons.ts"],"names":[],"mappings":"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"}