@sixtyninecommerce/client 0.24.0 → 0.26.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 (293) hide show
  1. package/README.md +21 -0
  2. package/dist/admin/forms.js +19 -0
  3. package/dist/admin/forms.js.map +1 -1
  4. package/dist/admin/http.d.ts +9 -0
  5. package/dist/admin/http.d.ts.map +1 -1
  6. package/dist/admin/http.js +3 -0
  7. package/dist/admin/http.js.map +1 -1
  8. package/dist/admin/index.d.ts +63 -0
  9. package/dist/admin/index.d.ts.map +1 -1
  10. package/dist/admin/index.js +67 -0
  11. package/dist/admin/index.js.map +1 -1
  12. package/dist/admin/redirects.d.ts +6 -0
  13. package/dist/admin/redirects.d.ts.map +1 -1
  14. package/dist/admin/redirects.js +12 -0
  15. package/dist/admin/redirects.js.map +1 -1
  16. package/dist/admin/types.d.ts +63 -0
  17. package/dist/admin/types.d.ts.map +1 -1
  18. package/dist/cache-tags.d.ts +19 -0
  19. package/dist/cache-tags.d.ts.map +1 -1
  20. package/dist/cache-tags.js +19 -0
  21. package/dist/cache-tags.js.map +1 -1
  22. package/dist/client.d.ts +17 -0
  23. package/dist/client.d.ts.map +1 -1
  24. package/dist/client.js +17 -0
  25. package/dist/client.js.map +1 -1
  26. package/dist/commerce/age-verification.js +3 -3
  27. package/dist/commerce/age-verification.js.map +1 -1
  28. package/dist/commerce/branding.js +7 -0
  29. package/dist/commerce/branding.js.map +1 -1
  30. package/dist/commerce/cart.js +25 -0
  31. package/dist/commerce/cart.js.map +1 -1
  32. package/dist/commerce/checkout.d.ts +68 -0
  33. package/dist/commerce/checkout.d.ts.map +1 -1
  34. package/dist/commerce/checkout.js +83 -0
  35. package/dist/commerce/checkout.js.map +1 -1
  36. package/dist/commerce/customer.d.ts +58 -0
  37. package/dist/commerce/customer.d.ts.map +1 -1
  38. package/dist/commerce/customer.js +65 -0
  39. package/dist/commerce/customer.js.map +1 -1
  40. package/dist/commerce/pickup-location-parser.d.ts +18 -0
  41. package/dist/commerce/pickup-location-parser.d.ts.map +1 -1
  42. package/dist/commerce/pickup-location-parser.js +28 -0
  43. package/dist/commerce/pickup-location-parser.js.map +1 -1
  44. package/dist/commerce/placement-error.d.ts +52 -0
  45. package/dist/commerce/placement-error.d.ts.map +1 -1
  46. package/dist/commerce/placement-error.js +87 -0
  47. package/dist/commerce/placement-error.js.map +1 -1
  48. package/dist/commerce/products.d.ts +48 -0
  49. package/dist/commerce/products.d.ts.map +1 -1
  50. package/dist/commerce/products.js +92 -0
  51. package/dist/commerce/products.js.map +1 -1
  52. package/dist/commerce/queries.d.ts +113 -27
  53. package/dist/commerce/queries.d.ts.map +1 -1
  54. package/dist/commerce/queries.js +188 -2
  55. package/dist/commerce/queries.js.map +1 -1
  56. package/dist/commerce/quotes.js +33 -0
  57. package/dist/commerce/quotes.js.map +1 -1
  58. package/dist/commerce/saved-lists.d.ts +7 -7
  59. package/dist/commerce/saved-lists.d.ts.map +1 -1
  60. package/dist/commerce/saved-lists.js +1 -1
  61. package/dist/commerce/search.js +3 -0
  62. package/dist/commerce/search.js.map +1 -1
  63. package/dist/commerce/shipping.js +3 -3
  64. package/dist/commerce/shipping.js.map +1 -1
  65. package/dist/commerce/stock-notifications.d.ts +11 -0
  66. package/dist/commerce/stock-notifications.d.ts.map +1 -1
  67. package/dist/commerce/stock-notifications.js +11 -0
  68. package/dist/commerce/stock-notifications.js.map +1 -1
  69. package/dist/commerce/vat-validation.js +4 -4
  70. package/dist/commerce/vat-validation.js.map +1 -1
  71. package/dist/constants.d.ts +31 -0
  72. package/dist/constants.d.ts.map +1 -1
  73. package/dist/constants.js +32 -0
  74. package/dist/constants.js.map +1 -1
  75. package/dist/content/asset-urls.d.ts +50 -0
  76. package/dist/content/asset-urls.d.ts.map +1 -1
  77. package/dist/content/asset-urls.js +92 -0
  78. package/dist/content/asset-urls.js.map +1 -1
  79. package/dist/content/assets.d.ts +15 -0
  80. package/dist/content/assets.d.ts.map +1 -1
  81. package/dist/content/assets.js +15 -0
  82. package/dist/content/assets.js.map +1 -1
  83. package/dist/content/collection-pages.d.ts +5 -0
  84. package/dist/content/collection-pages.d.ts.map +1 -1
  85. package/dist/content/collection-pages.js +8 -0
  86. package/dist/content/collection-pages.js.map +1 -1
  87. package/dist/content/collections.d.ts +14 -0
  88. package/dist/content/collections.d.ts.map +1 -1
  89. package/dist/content/collections.js +16 -0
  90. package/dist/content/collections.js.map +1 -1
  91. package/dist/content/filtered-products.d.ts +18 -0
  92. package/dist/content/filtered-products.d.ts.map +1 -1
  93. package/dist/content/filtered-products.js +16 -0
  94. package/dist/content/filtered-products.js.map +1 -1
  95. package/dist/content/form-field-types.d.ts +6 -0
  96. package/dist/content/form-field-types.d.ts.map +1 -1
  97. package/dist/content/form-field-types.js +12 -0
  98. package/dist/content/form-field-types.js.map +1 -1
  99. package/dist/content/forms.d.ts +16 -0
  100. package/dist/content/forms.d.ts.map +1 -1
  101. package/dist/content/forms.js +23 -0
  102. package/dist/content/forms.js.map +1 -1
  103. package/dist/content/items.d.ts +26 -0
  104. package/dist/content/items.d.ts.map +1 -1
  105. package/dist/content/items.js +33 -0
  106. package/dist/content/items.js.map +1 -1
  107. package/dist/content/resolve.js +6 -0
  108. package/dist/content/resolve.js.map +1 -1
  109. package/dist/content/sitemap.d.ts +5 -0
  110. package/dist/content/sitemap.d.ts.map +1 -1
  111. package/dist/content/sitemap.js +5 -0
  112. package/dist/content/sitemap.js.map +1 -1
  113. package/dist/core/context.js +6 -0
  114. package/dist/core/context.js.map +1 -1
  115. package/dist/core/headers.js +2 -0
  116. package/dist/core/headers.js.map +1 -1
  117. package/dist/core/http.d.ts +8 -0
  118. package/dist/core/http.d.ts.map +1 -1
  119. package/dist/core/http.js +89 -1
  120. package/dist/core/http.js.map +1 -1
  121. package/dist/credit/credit-status.js +2 -2
  122. package/dist/credit/credit-status.js.map +1 -1
  123. package/dist/credit/payment-terms.js +2 -2
  124. package/dist/credit/payment-terms.js.map +1 -1
  125. package/dist/currency/exchange.d.ts +11 -0
  126. package/dist/currency/exchange.d.ts.map +1 -1
  127. package/dist/currency/exchange.js +11 -0
  128. package/dist/currency/exchange.js.map +1 -1
  129. package/dist/errors.d.ts +50 -2
  130. package/dist/errors.d.ts.map +1 -1
  131. package/dist/errors.js +48 -2
  132. package/dist/errors.js.map +1 -1
  133. package/dist/events/envelope.d.ts +60 -0
  134. package/dist/events/envelope.d.ts.map +1 -1
  135. package/dist/events/envelope.js +12 -0
  136. package/dist/events/envelope.js.map +1 -1
  137. package/dist/events/index.d.ts +14 -1
  138. package/dist/events/index.d.ts.map +1 -1
  139. package/dist/events/index.js +13 -0
  140. package/dist/events/index.js.map +1 -1
  141. package/dist/events/payloads.d.ts +19 -0
  142. package/dist/events/payloads.d.ts.map +1 -1
  143. package/dist/events/payloads.js +12 -0
  144. package/dist/events/payloads.js.map +1 -1
  145. package/dist/index.d.ts +7 -0
  146. package/dist/index.d.ts.map +1 -1
  147. package/dist/index.js +7 -0
  148. package/dist/index.js.map +1 -1
  149. package/dist/media/index.js +2 -0
  150. package/dist/media/index.js.map +1 -1
  151. package/dist/media/urls.d.ts +52 -0
  152. package/dist/media/urls.d.ts.map +1 -1
  153. package/dist/media/urls.js +38 -0
  154. package/dist/media/urls.js.map +1 -1
  155. package/dist/media/video.d.ts +16 -0
  156. package/dist/media/video.d.ts.map +1 -1
  157. package/dist/media/video.js +16 -0
  158. package/dist/media/video.js.map +1 -1
  159. package/dist/next/artifact-handler.d.ts +22 -0
  160. package/dist/next/artifact-handler.d.ts.map +1 -1
  161. package/dist/next/artifact-handler.js +22 -0
  162. package/dist/next/artifact-handler.js.map +1 -1
  163. package/dist/next/event-revalidate-handler.d.ts +67 -0
  164. package/dist/next/event-revalidate-handler.d.ts.map +1 -1
  165. package/dist/next/event-revalidate-handler.js +48 -0
  166. package/dist/next/event-revalidate-handler.js.map +1 -1
  167. package/dist/next/index.d.ts +6 -0
  168. package/dist/next/index.d.ts.map +1 -1
  169. package/dist/next/index.js +6 -0
  170. package/dist/next/index.js.map +1 -1
  171. package/dist/next/json-ld.d.ts +9 -0
  172. package/dist/next/json-ld.d.ts.map +1 -1
  173. package/dist/next/json-ld.js +9 -0
  174. package/dist/next/json-ld.js.map +1 -1
  175. package/dist/next/metadata.d.ts +18 -0
  176. package/dist/next/metadata.d.ts.map +1 -1
  177. package/dist/next/metadata.js +21 -0
  178. package/dist/next/metadata.js.map +1 -1
  179. package/dist/next/redirect-middleware.d.ts +39 -0
  180. package/dist/next/redirect-middleware.d.ts.map +1 -1
  181. package/dist/next/redirect-middleware.js +32 -0
  182. package/dist/next/redirect-middleware.js.map +1 -1
  183. package/dist/next/revalidate-handler.d.ts +30 -0
  184. package/dist/next/revalidate-handler.d.ts.map +1 -1
  185. package/dist/next/revalidate-handler.js +22 -0
  186. package/dist/next/revalidate-handler.js.map +1 -1
  187. package/dist/order-scope.d.ts +27 -0
  188. package/dist/order-scope.d.ts.map +1 -1
  189. package/dist/order-scope.js +29 -0
  190. package/dist/order-scope.js.map +1 -1
  191. package/dist/pricing/format.d.ts +17 -0
  192. package/dist/pricing/format.d.ts.map +1 -1
  193. package/dist/pricing/format.js +19 -0
  194. package/dist/pricing/format.js.map +1 -1
  195. package/dist/pricing/index.d.ts +8 -1
  196. package/dist/pricing/index.d.ts.map +1 -1
  197. package/dist/pricing/index.js +18 -2
  198. package/dist/pricing/index.js.map +1 -1
  199. package/dist/pricing/tax-display.d.ts +77 -0
  200. package/dist/pricing/tax-display.d.ts.map +1 -1
  201. package/dist/pricing/tax-display.js +85 -0
  202. package/dist/pricing/tax-display.js.map +1 -1
  203. package/dist/pricing/tiers.d.ts +9 -0
  204. package/dist/pricing/tiers.d.ts.map +1 -1
  205. package/dist/pricing/tiers.js +9 -0
  206. package/dist/pricing/tiers.js.map +1 -1
  207. package/dist/pricing/validation.d.ts +56 -1
  208. package/dist/pricing/validation.d.ts.map +1 -1
  209. package/dist/pricing/validation.js +61 -0
  210. package/dist/pricing/validation.js.map +1 -1
  211. package/dist/redirects/index.d.ts +1 -0
  212. package/dist/redirects/index.d.ts.map +1 -1
  213. package/dist/redirects/index.js +1 -0
  214. package/dist/redirects/index.js.map +1 -1
  215. package/dist/redirects/store.d.ts +20 -0
  216. package/dist/redirects/store.d.ts.map +1 -1
  217. package/dist/redirects/store.js +57 -0
  218. package/dist/redirects/store.js.map +1 -1
  219. package/dist/redirects/types.d.ts +24 -0
  220. package/dist/redirects/types.d.ts.map +1 -1
  221. package/dist/redirects/types.js +1 -0
  222. package/dist/redirects/types.js.map +1 -1
  223. package/dist/revalidation/event-plan.d.ts +48 -0
  224. package/dist/revalidation/event-plan.d.ts.map +1 -1
  225. package/dist/revalidation/event-plan.js +61 -0
  226. package/dist/revalidation/event-plan.js.map +1 -1
  227. package/dist/revalidation/event-verify.d.ts +25 -0
  228. package/dist/revalidation/event-verify.d.ts.map +1 -1
  229. package/dist/revalidation/event-verify.js +27 -0
  230. package/dist/revalidation/event-verify.js.map +1 -1
  231. package/dist/revalidation/types.d.ts +20 -0
  232. package/dist/revalidation/types.d.ts.map +1 -1
  233. package/dist/revalidation/types.js +10 -0
  234. package/dist/revalidation/types.js.map +1 -1
  235. package/dist/revalidation/url-context.d.ts +25 -0
  236. package/dist/revalidation/url-context.d.ts.map +1 -1
  237. package/dist/revalidation/url-context.js +17 -0
  238. package/dist/revalidation/url-context.js.map +1 -1
  239. package/dist/revalidation/verify.d.ts +8 -0
  240. package/dist/revalidation/verify.d.ts.map +1 -1
  241. package/dist/revalidation/verify.js +8 -0
  242. package/dist/revalidation/verify.js.map +1 -1
  243. package/dist/seo/ai.d.ts +17 -0
  244. package/dist/seo/ai.d.ts.map +1 -1
  245. package/dist/seo/ai.js +12 -0
  246. package/dist/seo/ai.js.map +1 -1
  247. package/dist/seo/alternates.js +13 -0
  248. package/dist/seo/alternates.js.map +1 -1
  249. package/dist/seo/artifacts.d.ts +13 -0
  250. package/dist/seo/artifacts.d.ts.map +1 -1
  251. package/dist/seo/artifacts.js +19 -0
  252. package/dist/seo/artifacts.js.map +1 -1
  253. package/dist/seo/canonical.d.ts +15 -0
  254. package/dist/seo/canonical.d.ts.map +1 -1
  255. package/dist/seo/canonical.js +24 -0
  256. package/dist/seo/canonical.js.map +1 -1
  257. package/dist/seo/index.js +6 -0
  258. package/dist/seo/index.js.map +1 -1
  259. package/dist/seo/json-ld.d.ts +13 -0
  260. package/dist/seo/json-ld.d.ts.map +1 -1
  261. package/dist/seo/json-ld.js +32 -0
  262. package/dist/seo/json-ld.js.map +1 -1
  263. package/dist/seo/locale-tag.d.ts +31 -0
  264. package/dist/seo/locale-tag.d.ts.map +1 -1
  265. package/dist/seo/locale-tag.js +31 -0
  266. package/dist/seo/locale-tag.js.map +1 -1
  267. package/dist/seo/meta-tags.d.ts +29 -0
  268. package/dist/seo/meta-tags.d.ts.map +1 -1
  269. package/dist/seo/meta-tags.js +28 -0
  270. package/dist/seo/meta-tags.js.map +1 -1
  271. package/dist/seo/metadata-parser.d.ts +24 -0
  272. package/dist/seo/metadata-parser.d.ts.map +1 -1
  273. package/dist/seo/metadata-parser.js +38 -0
  274. package/dist/seo/metadata-parser.js.map +1 -1
  275. package/dist/seo/metadata-types.d.ts +16 -0
  276. package/dist/seo/metadata-types.d.ts.map +1 -1
  277. package/dist/seo/product-path.d.ts +96 -0
  278. package/dist/seo/product-path.d.ts.map +1 -1
  279. package/dist/seo/product-path.js +96 -0
  280. package/dist/seo/product-path.js.map +1 -1
  281. package/dist/seo/robots.d.ts +17 -0
  282. package/dist/seo/robots.d.ts.map +1 -1
  283. package/dist/seo/robots.js +12 -0
  284. package/dist/seo/robots.js.map +1 -1
  285. package/dist/seo/types.d.ts +39 -0
  286. package/dist/seo/types.d.ts.map +1 -1
  287. package/dist/seo/url-builder.d.ts +31 -0
  288. package/dist/seo/url-builder.d.ts.map +1 -1
  289. package/dist/seo/url-builder.js +36 -0
  290. package/dist/seo/url-builder.js.map +1 -1
  291. package/dist/types.d.ts +1163 -0
  292. package/dist/types.d.ts.map +1 -1
  293. package/package.json +1 -1
@@ -1,24 +1,84 @@
1
+ /** What the event is about. `id` is the aggregate's id in its own service. */
1
2
  export interface EventAggregateRef {
2
3
  readonly type: string;
3
4
  readonly id: string | null;
4
5
  }
6
+ /**
7
+ * WHO caused the event.
8
+ *
9
+ * `type` is one of `user`, `customer`, `api_token`, `system`, `service`,
10
+ * `anonymous` — typed as a string because the vocabulary grows and your build
11
+ * must stay able to read an envelope whose actor kind it does not know yet.
12
+ *
13
+ * `label` is a non-personal display name, and is usually null: only an API token
14
+ * carries one (its name). A human actor is deliberately unlabelled — you are a
15
+ * third party, and an administrator's email address is not yours to receive.
16
+ */
17
+ export interface EventActorRef {
18
+ readonly type: string;
19
+ readonly id: string | null;
20
+ readonly label: string | null;
21
+ }
22
+ /**
23
+ * The exact JSON shape delivered to a webhook endpoint and served by the pull feed.
24
+ *
25
+ * Two fields are deliberately distinct and are the subtlest part of the contract:
26
+ *
27
+ * - `occurred_at` — when the event HAPPENED. Immutable.
28
+ * - `delivered_at` — when THIS delivery attempt was signed. Restamped on every attempt, and
29
+ * ABSENT on the pull feed. Check a replay window against this and only this; a pull
30
+ * response has none, because it can serve up to 90 days of history and the authenticated
31
+ * request is the freshness proof instead.
32
+ *
33
+ * Dedupe on `id`, which is stable across every attempt of one event, and NOT on
34
+ * `channel_code` for tenancy — closing a store renames its code.
35
+ *
36
+ * You will receive `schema_version`s your build does not know: the contract is append-only
37
+ * within a version and a new version is a new number, so skip what you cannot read and keep
38
+ * going. Skipping still advances your cursor.
39
+ */
5
40
  export interface PlatformEventEnvelope<TData = Record<string, unknown>> {
41
+ /** Stable per event, identical across every delivery attempt. Your idempotency key. */
6
42
  readonly id: string;
7
43
  readonly type: string;
44
+ /** Payload contract version for `type`. */
8
45
  readonly schema_version: number;
9
46
  readonly channel_code: string;
47
+ /** ISO-8601 UTC. When it happened. NEVER restamped. */
10
48
  readonly occurred_at: string;
49
+ /** ISO-8601 UTC. When this attempt was signed. Absent on the pull feed. */
11
50
  readonly delivered_at?: string;
51
+ /** Monotonic within `(channel, aggregate)`. Lets you detect gaps and reorder. */
12
52
  readonly sequence: number;
13
53
  readonly aggregate: EventAggregateRef;
54
+ /** W3C trace id tying this event to the action that caused it. */
14
55
  readonly trace_id: string | null;
56
+ /**
57
+ * Who caused it, when anything recorded an actor.
58
+ *
59
+ * OPTIONAL: it was added after the envelope shipped, and the services that
60
+ * send you events deploy independently of your build. Read it as
61
+ * `envelope.actor ?? null` rather than assuming the key is there.
62
+ */
63
+ readonly actor?: EventActorRef | null;
15
64
  readonly data: TData;
16
65
  }
66
+ /** One page of the pull feed. */
17
67
  export interface PlatformEventPage<TData = Record<string, unknown>> {
18
68
  readonly items: PlatformEventEnvelope<TData>[];
69
+ /**
70
+ * Where to resume. Always usable — it is never null, even when you are caught up, so
71
+ * store it after every poll. Storing nothing would restart you from the beginning.
72
+ */
19
73
  readonly next_cursor: string;
74
+ /** More RIGHT NOW. `false` does not mean end of stream; a tail feed has no end. */
20
75
  readonly has_next: boolean;
76
+ /**
77
+ * `false` means events above your position were destroyed by retention before you read
78
+ * them, or that you started from the beginning of what survives rather than from a cursor.
79
+ */
21
80
  readonly complete: boolean;
81
+ /** What your `types` filter resolved to. A family wildcard widens as the catalog grows. */
22
82
  readonly types: readonly string[];
23
83
  }
24
84
  //# sourceMappingURL=envelope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/events/envelope.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAoBD,MAAM,WAAW,qBAAqB,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAEpE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAEtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;CACtB;AAGD,MAAM,WAAW,iBAAiB,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAChE,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;IAK/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAK3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC"}
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/events/envelope.ts"],"names":[],"mappings":"AAaA,8EAA8E;AAC9E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,qBAAqB,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpE,uFAAuF;IACvF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;CACtB;AAED,iCAAiC;AACjC,MAAM,WAAW,iBAAiB,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAChE,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;IAC/C;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,2FAA2F;IAC3F,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC"}
@@ -1,2 +1,14 @@
1
+ // @sixtynine-shim event-envelope v1
2
+ // CANONICAL COPY: packages/shared/src/events/shims/event-envelope.ts — the published SDK
3
+ // (@sixtyninecommerce/client) carries a byte-identical copy as
4
+ // packages/storefront-client/src/events/envelope.ts. It cannot import this package: the
5
+ // SDK declares no dependencies and takes commerce-shared as a devDependency only, so a
6
+ // `workspace:*` import would pass every local gate (dep-check reads dist/) and break every
7
+ // external `npm i`. packages/shared's shim-drift spec fails when a copy diverges; edit the
8
+ // canonical file, then re-copy.
9
+ //
10
+ // TYPES ONLY. The catalog's event-type union is deliberately NOT shipped: reproducing it
11
+ // means reproducing the @ts-expect-error guard that fails the build when the union collapses
12
+ // to `string`, and a copy that re-exports the type instead disarms that guard silently.
1
13
  export {};
2
14
  //# sourceMappingURL=envelope.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/events/envelope.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/events/envelope.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,yFAAyF;AACzF,+DAA+D;AAC/D,wFAAwF;AACxF,uFAAuF;AACvF,2FAA2F;AAC3F,2FAA2F;AAC3F,gCAAgC;AAChC,EAAE;AACF,yFAAyF;AACzF,6FAA6F;AAC7F,wFAAwF"}
@@ -1,3 +1,16 @@
1
+ /**
2
+ * Platform events: the envelope you receive, how to verify a webhook, and the
3
+ * revalidation a storefront-facing event calls for.
4
+ *
5
+ * Two surfaces deliver the same envelope. A **webhook** POST is signed — verify
6
+ * `X-Webhook-Signature` against the RAW request body, before parsing, with the secret shown
7
+ * once when the subscription was created (`verifyEventDelivery` does that and checks the
8
+ * `delivered_at` replay window). The **pull feed** (`GET /events` on the plugins
9
+ * API, with an API token holding `ReadPlatformEvents`) carries no signature and no
10
+ * `delivered_at`: the authenticated request is the freshness proof, and a feed serving 90
11
+ * days of history would put every row outside any replay window you could sensibly set.
12
+ * `planRevalidation` works on envelopes from either surface.
13
+ */
1
14
  export { collectionCacheTag, productCacheTag, SEO_ARTIFACT_TAG } from '../cache-tags.js';
2
15
  export type { RevalidationDegradedReason, RevalidationPlan, RevalidationPlanOptions, RevalidationSkipReason, } from '../revalidation/event-plan.js';
3
16
  export { EventPayloadError, planRevalidation } from '../revalidation/event-plan.js';
@@ -6,6 +19,6 @@ export { verifyEventDelivery } from '../revalidation/event-verify.js';
6
19
  export type { ChannelUrlRuleSet, UrlContext, UrlContextSource, } from '../revalidation/url-context.js';
7
20
  export { urlContextFromChannelSettings, urlContextFromClient, } from '../revalidation/url-context.js';
8
21
  export { verifyWebhookSignature } from '../revalidation/verify.js';
9
- export type { EventAggregateRef, PlatformEventEnvelope, PlatformEventPage, } from './envelope.js';
22
+ export type { EventActorRef, EventAggregateRef, PlatformEventEnvelope, PlatformEventPage, } from './envelope.js';
10
23
  export type * from './payloads.js';
11
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzF,YAAY,EACV,0BAA0B,EAC1B,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACpF,YAAY,EACV,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,mBAAmB,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzF,YAAY,EACV,0BAA0B,EAC1B,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACpF,YAAY,EACV,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,mBAAmB,eAAe,CAAC"}
@@ -1,3 +1,16 @@
1
+ /**
2
+ * Platform events: the envelope you receive, how to verify a webhook, and the
3
+ * revalidation a storefront-facing event calls for.
4
+ *
5
+ * Two surfaces deliver the same envelope. A **webhook** POST is signed — verify
6
+ * `X-Webhook-Signature` against the RAW request body, before parsing, with the secret shown
7
+ * once when the subscription was created (`verifyEventDelivery` does that and checks the
8
+ * `delivered_at` replay window). The **pull feed** (`GET /events` on the plugins
9
+ * API, with an API token holding `ReadPlatformEvents`) carries no signature and no
10
+ * `delivered_at`: the authenticated request is the freshness proof, and a feed serving 90
11
+ * days of history would put every row outside any replay window you could sensibly set.
12
+ * `planRevalidation` works on envelopes from either surface.
13
+ */
1
14
  export { collectionCacheTag, productCacheTag, SEO_ARTIFACT_TAG } from '../cache-tags.js';
2
15
  export { EventPayloadError, planRevalidation } from '../revalidation/event-plan.js';
3
16
  export { verifyEventDelivery } from '../revalidation/event-verify.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAOzF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAMtE,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAOzF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAMtE,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1,8 +1,12 @@
1
1
  export type ContentItemStatusV1 = 'draft' | 'published' | 'archived' | 'removed';
2
2
  export type ContentChangeClass = 'slug' | 'translated_slug' | 'parent' | 'position' | 'values';
3
+ /** One locale's stored path for a CMS item. */
3
4
  export type ContentPathV1 = {
5
+ /** Vendure's raw spelling — `en`, `nl`, `en_GB` with an underscore. */
4
6
  language_code: string;
7
+ /** Channel-relative, locale-unprefixed (`/blog/hello`). `null`: no URL in this locale. */
5
8
  path: string | null;
9
+ /** The path before this change when it moved; `null` when it did not. */
6
10
  previous_path: string | null;
7
11
  };
8
12
  export type ContentItemBaseV1 = {
@@ -11,20 +15,26 @@ export type ContentItemBaseV1 = {
11
15
  collection_slug: string;
12
16
  status: ContentItemStatusV1;
13
17
  is_published: boolean;
18
+ /** Names the `paths` entry every locale WITHOUT its own entry falls back to. */
14
19
  default_language_code: string;
20
+ /** Default-language entry always present and first; one entry per translated locale. */
15
21
  paths: ContentPathV1[];
22
+ /** True when locale entries were dropped: revalidate more broadly. */
16
23
  paths_truncated: boolean;
17
24
  };
18
25
  export type ContentPublishedV1 = ContentItemBaseV1;
19
26
  export type ContentUnpublishedV1 = ContentItemBaseV1;
20
27
  export type ContentUpdatedV1 = ContentItemBaseV1 & {
28
+ /** Which keys the mutation INPUT carried — a hint, never a diff. */
21
29
  changed: ContentChangeClass[];
22
30
  };
23
31
  export type ContentCollectionChangeClass = 'name' | 'slug' | 'description' | 'singleton' | 'hierarchical' | 'title_field' | 'page_values' | 'fields';
24
32
  export type ContentCollectionBaseV1 = {
25
33
  collection_id: string | null;
26
34
  collection_slug: string;
35
+ /** The index page's path, channel-relative and locale-unprefixed; `null`: no index page. */
27
36
  base_path: string | null;
37
+ /** The base path before this change when it moved — every item path moved with it. */
28
38
  previous_base_path: string | null;
29
39
  };
30
40
  export type ContentCollectionCreatedV1 = ContentCollectionBaseV1;
@@ -50,6 +60,7 @@ export type CollectionStateV1 = {
50
60
  };
51
61
  export type CollectionEntityChangeBaseV1 = CollectionStateV1 & {
52
62
  collection_id: string | null;
63
+ /** `null` means the event carried no input (core's `move()`) — never the quieter case. */
53
64
  changed: CollectionChangeClass[] | null;
54
65
  translation_language_codes: string[];
55
66
  translation_language_codes_truncated: boolean;
@@ -63,6 +74,7 @@ export type CollectionAffectedScopeV1 = 'changed' | 'membership';
63
74
  export type CollectionMembershipChangedV1 = {
64
75
  collection_id: string | null;
65
76
  affected_scope: CollectionAffectedScopeV1;
77
+ /** VARIANT ids, capped; a sample, never an enumeration. */
66
78
  affected_variant_ids: string[];
67
79
  affected_variant_ids_truncated: boolean;
68
80
  is_private: boolean;
@@ -72,11 +84,14 @@ export type UrlLocaleStrategyV1 = 'path-prefix' | 'subdomain' | 'none';
72
84
  export type ChannelUrlSettingClass = 'storefront_url' | 'url_locale_strategy' | 'url_locale_prefix_default' | 'commerce_path_prefix' | 'commerce_path_prefix_translations' | 'product_path_segment' | 'default_language' | 'available_languages';
73
85
  export type ChannelPathPrefixV1 = {
74
86
  language_code: string;
87
+ /** `''` means "no prefix in this language"; an absent entry falls back to the default. */
75
88
  path_prefix: string;
76
89
  };
90
+ /** The channel's complete URL rule set AFTER the change. */
77
91
  export type ChannelUrlSettingsChangedV1 = {
78
92
  channel_id: string | null;
79
93
  changed: ChannelUrlSettingClass[];
94
+ /** Trailing slashes removed; `null` when unset. */
80
95
  storefront_url: string | null;
81
96
  url_locale_strategy: UrlLocaleStrategyV1;
82
97
  url_locale_prefix_default: boolean;
@@ -94,6 +109,7 @@ export type SeoPathChangeV1 = {
94
109
  entity_type: SeoPathEntityTypeV1;
95
110
  entity_id: string;
96
111
  language_code: string;
112
+ /** Channel-relative, locale-unprefixed; the commerce prefix is ALREADY applied. */
97
113
  path: string;
98
114
  };
99
115
  export type SeoPathsChangedV1 = {
@@ -126,11 +142,14 @@ export type ProductVariantPriceChangedV1 = {
126
142
  product_id: string | null;
127
143
  sku: string;
128
144
  currency_code: string;
145
+ /** Minor units, net of tax. */
129
146
  price: number;
147
+ /** Minor units, gross. */
130
148
  price_with_tax: number;
131
149
  changed_currency_codes: string[];
132
150
  changed_currency_codes_truncated: boolean;
133
151
  };
152
+ /** Payload per event type, version 1, for every type `createEventRevalidateHandler` acts on. */
134
153
  export interface RevalidationPayloadByTypeV1 {
135
154
  'content.published': ContentPublishedV1;
136
155
  'content.updated': ContentUpdatedV1;
@@ -1 +1 @@
1
- {"version":3,"file":"payloads.d.ts","sourceRoot":"","sources":["../../src/events/payloads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payloads.d.ts","sourceRoot":"","sources":["../../src/events/payloads.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,14 @@
1
+ // @sixtynine-shim revalidation-payloads v1
2
+ // CANONICAL COPY: packages/shared/src/events/shims/revalidation-payloads.ts — the published SDK
3
+ // (@sixtyninecommerce/client) carries a byte-identical copy as
4
+ // packages/storefront-client/src/events/payloads.ts, for the same reason as event-envelope.ts:
5
+ // the SDK cannot import this private package at runtime or from its emitted .d.ts.
6
+ // packages/shared's shim-drift spec fails when a copy diverges, and fails typecheck when a
7
+ // type here stops being structurally identical to its source in packages/shared/src/events/
8
+ // payloads/. Edit the source contract first, mirror it here, then re-copy.
9
+ //
10
+ // TYPES ONLY, and only the families a storefront revalidator reads. The runtime key tuples and
11
+ // vocabularies stay in the platform: a published copy of them could not be fixed in a consumer's
12
+ // node_modules.
1
13
  export {};
2
14
  //# sourceMappingURL=payloads.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"payloads.js","sourceRoot":"","sources":["../../src/events/payloads.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"payloads.js","sourceRoot":"","sources":["../../src/events/payloads.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,gGAAgG;AAChG,+DAA+D;AAC/D,+FAA+F;AAC/F,mFAAmF;AACnF,2FAA2F;AAC3F,4FAA4F;AAC5F,2EAA2E;AAC3E,EAAE;AACF,+FAA+F;AAC/F,iGAAiG;AACjG,gBAAgB"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @sixtyninecommerce/client — JS/TS SDK for sixtynine-commerce storefronts.
3
+ *
4
+ * Start here: `createStorefrontClient({ storeCode, cdnUrl })`.
5
+ * See the subpath exports for pricing helpers (`/pricing`) and media URL
6
+ * builders (`/media`).
7
+ */
1
8
  export { cacheTagsForRoute, collectionCacheTag, productCacheTag, SEO_ARTIFACT_TAG, } from './cache-tags.js';
2
9
  export { createStorefrontClient } from './client.js';
3
10
  export { DEFAULT_CMS_URL, DEFAULT_PLUGINS_URL, DEFAULT_VENDURE_URL, ORDER_SCOPE_HEADER, RESERVED_STOREFRONT_PATHS, type ReservedStorefrontPath, SHOP_API_PATH, } from './constants.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @sixtyninecommerce/client — JS/TS SDK for sixtynine-commerce storefronts.
3
+ *
4
+ * Start here: `createStorefrontClient({ storeCode, cdnUrl })`.
5
+ * See the subpath exports for pricing helpers (`/pricing`) and media URL
6
+ * builders (`/media`).
7
+ */
1
8
  export { cacheTagsForRoute, collectionCacheTag, productCacheTag, SEO_ARTIFACT_TAG, } from './cache-tags.js';
2
9
  export { createStorefrontClient } from './client.js';
3
10
  export { DEFAULT_CMS_URL, DEFAULT_PLUGINS_URL, DEFAULT_VENDURE_URL, ORDER_SCOPE_HEADER, RESERVED_STOREFRONT_PATHS, SHOP_API_PATH, } from './constants.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EAEzB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,GAG5B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GAOtB,MAAM,sBAAsB,CAAC;AA+C9B,OAAO,EACL,QAAQ,EACR,4BAA4B,EAC5B,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,eAAe,GAChB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EAEzB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,GAG5B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GAOtB,MAAM,sBAAsB,CAAC;AA+C9B,OAAO,EACL,QAAQ,EACR,4BAA4B,EAC5B,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,eAAe,GAChB,MAAM,gBAAgB,CAAC"}
@@ -6,6 +6,8 @@ export function createMediaModule(ctx) {
6
6
  return {
7
7
  assetUrl: resolveUrl,
8
8
  getFullUrl(asset) {
9
+ // resolveUrl already handles channel-prefix stripping, empty input and
10
+ // already-absolute passthrough — feed it the raw source key.
9
11
  return resolveUrl(asset.source);
10
12
  },
11
13
  getPresetUrl(asset, preset, format) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEhG,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,OAAO,EACP,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,WAAW,EACX,eAAe,EACf,iBAAiB,EAEjB,aAAa,GAId,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU,iBAAiB,CAAC,GAAiB;IACjD,MAAM,UAAU,GAAG,6BAA6B,CAAC,GAAG,CAAC,CAAC;IAEtD,OAAO;QACL,QAAQ,EAAE,UAAU;QACpB,UAAU,CAAC,KAAK;YAGd,OAAO,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM;YAChC,OAAO,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,sBAAsB,CAAC,KAAK,EAAE,OAAO;YACnC,MAAM,IAAI,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACpD,OAAO;gBACL,GAAG,IAAI;gBACP,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;gBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACjB,CAAC,CAAC,IAAI,CAAC,MAAM;yBACR,KAAK,CAAC,IAAI,CAAC;yBACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;wBACb,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;wBACzC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;wBACtC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;wBAC1C,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,EAAE,CAAC;oBAC3C,CAAC,CAAC;yBACD,IAAI,CAAC,IAAI,CAAC;oBACf,CAAC,CAAC,EAAE;aACP,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEhG,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,OAAO,EACP,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,WAAW,EACX,eAAe,EACf,iBAAiB,EAEjB,aAAa,GAId,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU,iBAAiB,CAAC,GAAiB;IACjD,MAAM,UAAU,GAAG,6BAA6B,CAAC,GAAG,CAAC,CAAC;IAEtD,OAAO;QACL,QAAQ,EAAE,UAAU;QACpB,UAAU,CAAC,KAAK;YACd,uEAAuE;YACvE,6DAA6D;YAC7D,OAAO,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM;YAChC,OAAO,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,sBAAsB,CAAC,KAAK,EAAE,OAAO;YACnC,MAAM,IAAI,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACpD,OAAO;gBACL,GAAG,IAAI;gBACP,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;gBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACjB,CAAC,CAAC,IAAI,CAAC,MAAM;yBACR,KAAK,CAAC,IAAI,CAAC;yBACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;wBACb,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;wBACzC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;wBACtC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;wBAC1C,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,EAAE,CAAC;oBAC3C,CAAC,CAAC;yBACD,IAAI,CAAC,IAAI,CAAC;oBACf,CAAC,CAAC,EAAE;aACP,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,13 @@
1
1
  import type { Asset, PresetName, ResponsiveImageData, StoreContext } from '../types.js';
2
+ /**
3
+ * Image preset definitions — must stay in sync with
4
+ * `@sixtynine-digital/commerce-shared/image-presets`. Drift is caught at test
5
+ * time by `media.spec.ts` (see "presets sync with shared package" suite),
6
+ * which imports the source-of-truth and asserts equality.
7
+ *
8
+ * The constants are inlined here because storefront-client is published to npm
9
+ * and the shared package is private to the monorepo.
10
+ */
2
11
  export declare const PRESETS: {
3
12
  readonly xxs: {
4
13
  readonly width: 50;
@@ -26,12 +35,55 @@ export declare const PRESETS: {
26
35
  };
27
36
  };
28
37
  export declare const DEFAULT_PRESET: PresetName;
38
+ /** MIME types that have generated presets (raster images only). */
29
39
  export declare const RASTER_MIME_TYPES: Set<string>;
30
40
  export declare function isRasterImage(mimeType: string): boolean;
41
+ /**
42
+ * Prepend CDN URL to a relative asset path.
43
+ * Returns the original if already absolute or empty.
44
+ */
31
45
  export declare function makeAssetUrl(cdnUrl: string, path: string): string;
46
+ /**
47
+ * Turn a stored asset path into an absolute URL.
48
+ *
49
+ * Assets are stored in R2 and the API returns STORAGE KEYS, not URLs —
50
+ * `assetUrlPrefix` is deliberately blank when R2 is configured, so that each
51
+ * channel can serve them from its own CDN domain. Prefixing is therefore the
52
+ * client's job, and this is the one place that knows how: prepend the CDN
53
+ * origin, and strip the `{channelCode}/` prefix when the channel serves from a
54
+ * domain that already scopes to it.
55
+ *
56
+ * Every surface that hands an asset URL to a consumer MUST go through this.
57
+ * The SEO module did not, which is how `og:image` came to be
58
+ * `rollz/source/26/…/xl/artboard-49__02.jpg` — a storage key that resolves to
59
+ * nothing against the site origin, so social cards and `Product.image` were
60
+ * broken for every product.
61
+ */
32
62
  export type AssetUrlResolver = (path: string | null | undefined) => string;
33
63
  export declare function createAssetUrlResolver(cdnUrl: string, channelPrefix: string | null): AssetUrlResolver;
64
+ /**
65
+ * The resolver for a given store context.
66
+ *
67
+ * The DERIVATION lives here, not just the stripping rule: `createMediaModule`
68
+ * and `createSeoModule` both need it, and a resolver whose arguments are worked
69
+ * out independently in two places is the same drift risk one layer up. If the
70
+ * prefix rule ever grows (a per-channel asset prefix, `{code}/content/`), it
71
+ * changes once.
72
+ */
34
73
  export declare function createContextAssetUrlResolver(ctx: StoreContext): AssetUrlResolver;
74
+ /**
75
+ * Get the URL for a specific preset from an asset's presets object.
76
+ * Falls back to the asset source if presets are not available.
77
+ */
35
78
  export declare function getPresetUrl(asset: Asset, preset: PresetName, format?: 'original' | 'webp'): string;
79
+ /**
80
+ * Build responsive image data for use in <img> or <picture> elements.
81
+ * Returns srcSet with widths matching preset dimensions.
82
+ *
83
+ * `width`/`height` are the asset's REAL intrinsic dimensions when the SDK
84
+ * selected them (so the `<img>` reserves the correct box and avoids CLS). When
85
+ * the asset carries no dimensions they fall back to the square DEFAULT_PRESET
86
+ * box — a last resort, not the reported aspect ratio.
87
+ */
36
88
  export declare function getResponsiveImageData(asset: Asset, presets?: PresetName[]): ResponsiveImageData;
37
89
  //# sourceMappingURL=urls.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../../src/media/urls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAWxF,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;CAOV,CAAC;AAEX,eAAO,MAAM,cAAc,EAAE,UAAgB,CAAC;AAG9C,eAAO,MAAM,iBAAiB,aAU5B,CAAC;AAEH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAMD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAIjE;AAkBD,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAAK,MAAM,CAAC;AAE3E,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GAAG,IAAI,GAC3B,gBAAgB,CAUlB;AAWD,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,YAAY,GAAG,gBAAgB,CAEjF;AAMD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,UAAU,EAClB,MAAM,GAAE,UAAU,GAAG,MAAe,GACnC,MAAM,CAQR;AAWD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,mBAAmB,CA+ChG"}
1
+ {"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../../src/media/urls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExF;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;CAOV,CAAC;AAEX,eAAO,MAAM,cAAc,EAAE,UAAgB,CAAC;AAE9C,mEAAmE;AACnE,eAAO,MAAM,iBAAiB,aAU5B,CAAC;AAEH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAAK,MAAM,CAAC;AAE3E,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GAAG,IAAI,GAC3B,gBAAgB,CAUlB;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,YAAY,GAAG,gBAAgB,CAEjF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,UAAU,EAClB,MAAM,GAAE,UAAU,GAAG,MAAe,GACnC,MAAM,CAQR;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,mBAAmB,CA+ChG"}
@@ -1,3 +1,12 @@
1
+ /**
2
+ * Image preset definitions — must stay in sync with
3
+ * `@sixtynine-digital/commerce-shared/image-presets`. Drift is caught at test
4
+ * time by `media.spec.ts` (see "presets sync with shared package" suite),
5
+ * which imports the source-of-truth and asserts equality.
6
+ *
7
+ * The constants are inlined here because storefront-client is published to npm
8
+ * and the shared package is private to the monorepo.
9
+ */
1
10
  export const PRESETS = {
2
11
  xxs: { width: 50, height: 50 },
3
12
  xs: { width: 150, height: 150 },
@@ -7,6 +16,7 @@ export const PRESETS = {
7
16
  xl: { width: 1800, height: 1800 },
8
17
  };
9
18
  export const DEFAULT_PRESET = 'm';
19
+ /** MIME types that have generated presets (raster images only). */
10
20
  export const RASTER_MIME_TYPES = new Set([
11
21
  'image/jpeg',
12
22
  'image/png',
@@ -21,6 +31,10 @@ export const RASTER_MIME_TYPES = new Set([
21
31
  export function isRasterImage(mimeType) {
22
32
  return RASTER_MIME_TYPES.has(mimeType);
23
33
  }
34
+ /**
35
+ * Prepend CDN URL to a relative asset path.
36
+ * Returns the original if already absolute or empty.
37
+ */
24
38
  export function makeAssetUrl(cdnUrl, path) {
25
39
  if (!path)
26
40
  return '';
@@ -41,9 +55,22 @@ export function createAssetUrlResolver(cdnUrl, channelPrefix) {
41
55
  return makeAssetUrl(cdnUrl, clean);
42
56
  };
43
57
  }
58
+ /**
59
+ * The resolver for a given store context.
60
+ *
61
+ * The DERIVATION lives here, not just the stripping rule: `createMediaModule`
62
+ * and `createSeoModule` both need it, and a resolver whose arguments are worked
63
+ * out independently in two places is the same drift risk one layer up. If the
64
+ * prefix rule ever grows (a per-channel asset prefix, `{code}/content/`), it
65
+ * changes once.
66
+ */
44
67
  export function createContextAssetUrlResolver(ctx) {
45
68
  return createAssetUrlResolver(ctx.cdnUrl, ctx.channelCdnDomain ? `${ctx.channel.code}/` : null);
46
69
  }
70
+ /**
71
+ * Get the URL for a specific preset from an asset's presets object.
72
+ * Falls back to the asset source if presets are not available.
73
+ */
47
74
  export function getPresetUrl(asset, preset, format = 'webp') {
48
75
  const presets = asset.presets;
49
76
  if (!presets)
@@ -53,10 +80,21 @@ export function getPresetUrl(asset, preset, format = 'webp') {
53
80
  return asset.source;
54
81
  return format === 'webp' ? presetData.webpUrl : presetData.url;
55
82
  }
83
+ /**
84
+ * Build responsive image data for use in <img> or <picture> elements.
85
+ * Returns srcSet with widths matching preset dimensions.
86
+ *
87
+ * `width`/`height` are the asset's REAL intrinsic dimensions when the SDK
88
+ * selected them (so the `<img>` reserves the correct box and avoids CLS). When
89
+ * the asset carries no dimensions they fall back to the square DEFAULT_PRESET
90
+ * box — a last resort, not the reported aspect ratio.
91
+ */
56
92
  export function getResponsiveImageData(asset, presets) {
57
93
  const selectedPresets = presets ?? ['s', 'm', 'l', 'xl'];
58
94
  const alt = asset.customFields?.altText ?? asset.name ?? '';
59
95
  const defaultSize = PRESETS[DEFAULT_PRESET];
96
+ // Prefer the asset's real dimensions; fall back to the preset box only when
97
+ // absent. `0` is not a valid dimension, so treat it as absent too.
60
98
  const width = typeof asset.width === 'number' && asset.width > 0 ? asset.width : defaultSize.width;
61
99
  const height = typeof asset.height === 'number' && asset.height > 0 ? asset.height : defaultSize.height;
62
100
  if (!asset.presets) {
@@ -1 +1 @@
1
- {"version":3,"file":"urls.js","sourceRoot":"","sources":["../../src/media/urls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"urls.js","sourceRoot":"","sources":["../../src/media/urls.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Video embed helpers for storefront rendering.
3
+ * Types and parsing utilities inlined from commerce-shared to keep the client zero-dep.
4
+ */
1
5
  export type VideoProvider = 'youtube' | 'vimeo';
2
6
  export type VideoSource = VideoProvider | 'upload' | 'external';
3
7
  export interface ParsedVideo {
@@ -9,17 +13,29 @@ export interface VideoValue {
9
13
  url: string;
10
14
  video_id?: string;
11
15
  }
16
+ /** Parse a video URL and extract the provider and video ID. */
12
17
  export declare function parseVideoUrl(url: string): ParsedVideo | null;
18
+ /** Get a privacy-friendly embed URL for a video provider and ID. */
13
19
  export declare function getEmbedUrl(provider: VideoProvider, videoId: string): string;
20
+ /**
21
+ * Validate that a URL points to a directly-playable video file (HTTPS + known
22
+ * extension). Used for the "external" source — videos hosted outside our
23
+ * asset library on a stable CDN.
24
+ */
14
25
  export declare function parseDirectVideoUrl(url: string): {
15
26
  url: string;
16
27
  } | null;
28
+ /** Get a thumbnail URL for a video. Vimeo requires an oEmbed API call so returns null. */
17
29
  export declare function getThumbnailUrl(provider: VideoProvider, videoId: string): string | null;
18
30
  interface VideoEmbedOptions {
19
31
  autoplay?: boolean;
20
32
  loop?: boolean;
21
33
  muted?: boolean;
22
34
  }
35
+ /**
36
+ * Generate ready-to-use HTML for embedding a video.
37
+ * Returns an iframe for YouTube/Vimeo or a video element for uploads.
38
+ */
23
39
  export declare function getVideoEmbedHtml(value: VideoValue, options?: VideoEmbedOptions): string;
24
40
  export {};
25
41
  //# sourceMappingURL=video.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/media/video.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAkBD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAe7D;AAGD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAO5E;AAOD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAavE;AAGD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOvF;AAED,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAMD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAyCxF"}
1
+ {"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/media/video.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAiBD,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAe7D;AAED,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAO5E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAavE;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOvF;AAED,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAyCxF"}