@juo/blocks 1.13.0-alpha.2 → 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 (246) hide show
  1. package/dist/ExtensionRoot-CRJx0Dtr.js +378 -0
  2. package/dist/block.d.ts +0 -50
  3. package/dist/block.d.ts.map +1 -1
  4. package/dist/{bridge-r7Yk8fjY.js → bridge-D838SWmN.js} +147 -42
  5. package/dist/context.d.ts.map +1 -1
  6. package/dist/core.js +1120 -2157
  7. package/dist/css-runtime-DWytAzZ5.js +1532 -0
  8. package/dist/editor/bridge.d.ts +8 -7
  9. package/dist/editor/bridge.d.ts.map +1 -1
  10. package/dist/editor/canvas-mode-signal.d.ts +22 -0
  11. package/dist/editor/canvas-mode-signal.d.ts.map +1 -0
  12. package/dist/editor/canvas-mode.d.ts +15 -0
  13. package/dist/editor/canvas-mode.d.ts.map +1 -0
  14. package/dist/editor/canvas-mode.test.d.ts +2 -0
  15. package/dist/editor/canvas-mode.test.d.ts.map +1 -0
  16. package/dist/editor/components.d.ts +113 -0
  17. package/dist/editor/components.d.ts.map +1 -1
  18. package/dist/editor/components.test.d.ts.map +1 -1
  19. package/dist/editor/handler.d.ts.map +1 -1
  20. package/dist/editor/handler.test.d.ts +2 -0
  21. package/dist/editor/handler.test.d.ts.map +1 -0
  22. package/dist/editor/layout-command-emitter.d.ts +31 -0
  23. package/dist/editor/layout-command-emitter.d.ts.map +1 -0
  24. package/dist/editor/layout-command-emitter.test.d.ts +2 -0
  25. package/dist/editor/layout-command-emitter.test.d.ts.map +1 -0
  26. package/dist/editor/layout-system-signal.d.ts +21 -0
  27. package/dist/editor/layout-system-signal.d.ts.map +1 -0
  28. package/dist/editor/main.d.ts +2 -2
  29. package/dist/editor/main.d.ts.map +1 -1
  30. package/dist/editor/messages.d.ts +90 -14
  31. package/dist/editor/messages.d.ts.map +1 -1
  32. package/dist/editor/surface-context.d.ts +7 -0
  33. package/dist/editor/surface-context.d.ts.map +1 -0
  34. package/dist/editor/surface-context.test.d.ts +2 -0
  35. package/dist/editor/surface-context.test.d.ts.map +1 -0
  36. package/dist/editor/wrapper-shared.d.ts +31 -0
  37. package/dist/editor/wrapper-shared.d.ts.map +1 -0
  38. package/dist/editor.js +887 -88
  39. package/dist/flows/WorkflowService.d.ts +2 -0
  40. package/dist/flows/WorkflowService.d.ts.map +1 -1
  41. package/dist/gridstack-adapter-DreG3XnB.js +5490 -0
  42. package/dist/layout/css-runtime.d.ts +41 -0
  43. package/dist/layout/css-runtime.d.ts.map +1 -0
  44. package/dist/layout/css-runtime.test.d.ts +2 -0
  45. package/dist/layout/css-runtime.test.d.ts.map +1 -0
  46. package/dist/layout/derive.d.ts +4 -0
  47. package/dist/layout/derive.d.ts.map +1 -0
  48. package/dist/layout/derive.test.d.ts +2 -0
  49. package/dist/layout/derive.test.d.ts.map +1 -0
  50. package/dist/layout/dividers.d.ts +34 -0
  51. package/dist/layout/dividers.d.ts.map +1 -0
  52. package/dist/layout/dividers.test.d.ts +2 -0
  53. package/dist/layout/dividers.test.d.ts.map +1 -0
  54. package/dist/layout/engine.d.ts +3 -0
  55. package/dist/layout/engine.d.ts.map +1 -0
  56. package/dist/layout/engine.test.d.ts +2 -0
  57. package/dist/layout/engine.test.d.ts.map +1 -0
  58. package/dist/layout/grid-utils.d.ts +57 -0
  59. package/dist/layout/grid-utils.d.ts.map +1 -0
  60. package/dist/layout/grid-utils.test.d.ts +2 -0
  61. package/dist/layout/grid-utils.test.d.ts.map +1 -0
  62. package/dist/layout/index.d.ts +12 -0
  63. package/dist/layout/index.d.ts.map +1 -0
  64. package/dist/layout/index.test.d.ts +2 -0
  65. package/dist/layout/index.test.d.ts.map +1 -0
  66. package/dist/layout/insert.d.ts +31 -0
  67. package/dist/layout/insert.d.ts.map +1 -0
  68. package/dist/layout/insert.test.d.ts +2 -0
  69. package/dist/layout/insert.test.d.ts.map +1 -0
  70. package/dist/layout/project-css.d.ts +6 -0
  71. package/dist/layout/project-css.d.ts.map +1 -0
  72. package/dist/layout/project-css.test.d.ts +2 -0
  73. package/dist/layout/project-css.test.d.ts.map +1 -0
  74. package/dist/layout/project-gridstack.d.ts +50 -0
  75. package/dist/layout/project-gridstack.d.ts.map +1 -0
  76. package/dist/layout/project-gridstack.test.d.ts +2 -0
  77. package/dist/layout/project-gridstack.test.d.ts.map +1 -0
  78. package/dist/layout/reconcile.d.ts +22 -0
  79. package/dist/layout/reconcile.d.ts.map +1 -0
  80. package/dist/layout/reconcile.test.d.ts +2 -0
  81. package/dist/layout/reconcile.test.d.ts.map +1 -0
  82. package/dist/layout/types.d.ts +118 -0
  83. package/dist/layout/types.d.ts.map +1 -0
  84. package/dist/layout-mode-adapter-BBd4JRQd.js +21 -0
  85. package/dist/main.d.ts +8 -4
  86. package/dist/main.d.ts.map +1 -1
  87. package/dist/morph-Dj-xvrwt.js +182 -0
  88. package/dist/preact.js +1 -1
  89. package/dist/project-gridstack-DYLMKSH1.js +52 -0
  90. package/dist/react.js +1 -1
  91. package/dist/services/customer/customerService.d.ts +2 -3
  92. package/dist/services/customer/customerService.d.ts.map +1 -1
  93. package/dist/services/customer/index.d.ts +0 -1
  94. package/dist/services/customer/index.d.ts.map +1 -1
  95. package/dist/services/customer/types.d.ts +1 -4
  96. package/dist/services/customer/types.d.ts.map +1 -1
  97. package/dist/services/index.d.ts +0 -3
  98. package/dist/services/index.d.ts.map +1 -1
  99. package/dist/services/login/index.d.ts +1 -3
  100. package/dist/services/login/index.d.ts.map +1 -1
  101. package/dist/services/login/loginService.d.ts +2 -6
  102. package/dist/services/login/loginService.d.ts.map +1 -1
  103. package/dist/services/orders/adapter.d.ts +0 -2
  104. package/dist/services/orders/adapter.d.ts.map +1 -1
  105. package/dist/services/orders/index.d.ts +1 -1
  106. package/dist/services/orders/index.d.ts.map +1 -1
  107. package/dist/services/product/adapter.d.ts +2 -27
  108. package/dist/services/product/adapter.d.ts.map +1 -1
  109. package/dist/services/product/index.d.ts +1 -1
  110. package/dist/services/product/index.d.ts.map +1 -1
  111. package/dist/services/product/productService.d.ts.map +1 -1
  112. package/dist/services/product/types.d.ts +0 -68
  113. package/dist/services/product/types.d.ts.map +1 -1
  114. package/dist/services/subscription/adapter.d.ts +2 -77
  115. package/dist/services/subscription/adapter.d.ts.map +1 -1
  116. package/dist/services/subscription/index.d.ts +1 -1
  117. package/dist/services/subscription/index.d.ts.map +1 -1
  118. package/dist/services/subscription/subscriptionService.d.ts +6 -1
  119. package/dist/services/subscription/subscriptionService.d.ts.map +1 -1
  120. package/dist/services/subscription/types.d.ts +9 -220
  121. package/dist/services/subscription/types.d.ts.map +1 -1
  122. package/dist/theme-state.d.ts +17 -2
  123. package/dist/theme-state.d.ts.map +1 -1
  124. package/dist/theme-state.layout.test.d.ts +2 -0
  125. package/dist/theme-state.layout.test.d.ts.map +1 -0
  126. package/dist/theme-state.test.d.ts +2 -0
  127. package/dist/theme-state.test.d.ts.map +1 -0
  128. package/dist/utils/index.d.ts +0 -6
  129. package/dist/utils/index.d.ts.map +1 -1
  130. package/dist/vue/block.d.ts.map +1 -1
  131. package/dist/vue.js +4 -25
  132. package/dist/web-components/ExtensionRoot.d.ts +50 -3
  133. package/dist/web-components/ExtensionRoot.d.ts.map +1 -1
  134. package/dist/web-components/editor/ExtensionRoot.d.ts +11 -0
  135. package/dist/web-components/editor/ExtensionRoot.d.ts.map +1 -0
  136. package/dist/web-components/editor/ExtensionRoot.test.d.ts +2 -0
  137. package/dist/web-components/editor/ExtensionRoot.test.d.ts.map +1 -0
  138. package/dist/web-components/editor/InlineText.d.ts +1 -0
  139. package/dist/web-components/editor/InlineText.d.ts.map +1 -1
  140. package/dist/web-components/editor/editor-layout-controller.d.ts +28 -0
  141. package/dist/web-components/editor/editor-layout-controller.d.ts.map +1 -0
  142. package/dist/web-components/editor/gridstack-adapter.d.ts +3 -0
  143. package/dist/web-components/editor/gridstack-adapter.d.ts.map +1 -0
  144. package/dist/web-components/editor/gridstack-adapter.test.d.ts +2 -0
  145. package/dist/web-components/editor/gridstack-adapter.test.d.ts.map +1 -0
  146. package/dist/web-components/editor/morph.d.ts +32 -0
  147. package/dist/web-components/editor/morph.d.ts.map +1 -0
  148. package/dist/web-components/editor/morph.test.d.ts +2 -0
  149. package/dist/web-components/editor/morph.test.d.ts.map +1 -0
  150. package/dist/web-components/layout/layout-controller.d.ts +55 -0
  151. package/dist/web-components/layout/layout-controller.d.ts.map +1 -0
  152. package/dist/web-components/layout/view-layout-controller.d.ts +17 -0
  153. package/dist/web-components/layout/view-layout-controller.d.ts.map +1 -0
  154. package/dist/web-components/layout/view-layout-controller.test.d.ts +2 -0
  155. package/dist/web-components/layout/view-layout-controller.test.d.ts.map +1 -0
  156. package/dist/web-components/layout-grid.d.ts +47 -0
  157. package/dist/web-components/layout-grid.d.ts.map +1 -0
  158. package/dist/web-components/layout-grid.test.d.ts +2 -0
  159. package/dist/web-components/layout-grid.test.d.ts.map +1 -0
  160. package/dist/web-components/layout-mode-adapter.d.ts +51 -0
  161. package/dist/web-components/layout-mode-adapter.d.ts.map +1 -0
  162. package/dist/web-components/layout-mode-adapter.test.d.ts +2 -0
  163. package/dist/web-components/layout-mode-adapter.test.d.ts.map +1 -0
  164. package/dist/web-components-editor.js +125 -18
  165. package/dist/web-components-runtime.js +4 -4
  166. package/package.json +3 -2
  167. package/dist/ExtensionRoot-peABLAZZ.js +0 -231
  168. package/dist/block-B6s9jL7l.js +0 -966
  169. package/dist/block.devtools.test.d.ts +0 -2
  170. package/dist/block.devtools.test.d.ts.map +0 -1
  171. package/dist/context.devtools.test.d.ts +0 -2
  172. package/dist/context.devtools.test.d.ts.map +0 -1
  173. package/dist/devtools/env.d.ts +0 -3
  174. package/dist/devtools/env.d.ts.map +0 -1
  175. package/dist/devtools/hook.d.ts +0 -35
  176. package/dist/devtools/hook.d.ts.map +0 -1
  177. package/dist/devtools/index.d.ts +0 -4
  178. package/dist/devtools/index.d.ts.map +0 -1
  179. package/dist/devtools/protocol.d.ts +0 -91
  180. package/dist/devtools/protocol.d.ts.map +0 -1
  181. package/dist/devtools.js +0 -44
  182. package/dist/editor/overlays.d.ts +0 -14
  183. package/dist/editor/overlays.d.ts.map +0 -1
  184. package/dist/editor/overlays.test.d.ts +0 -2
  185. package/dist/editor/overlays.test.d.ts.map +0 -1
  186. package/dist/juo-workflow-DY4rd256.js +0 -868
  187. package/dist/overlay-wrapper.d.ts +0 -69
  188. package/dist/overlay-wrapper.d.ts.map +0 -1
  189. package/dist/overlay-wrapper.test.d.ts +0 -2
  190. package/dist/overlay-wrapper.test.d.ts.map +0 -1
  191. package/dist/overlays/OverlayService.d.ts +0 -34
  192. package/dist/overlays/OverlayService.d.ts.map +0 -1
  193. package/dist/overlays/OverlayService.test.d.ts +0 -2
  194. package/dist/overlays/OverlayService.test.d.ts.map +0 -1
  195. package/dist/registry.devtools.test.d.ts +0 -2
  196. package/dist/registry.devtools.test.d.ts.map +0 -1
  197. package/dist/services/customer/adapter.d.ts +0 -8
  198. package/dist/services/customer/adapter.d.ts.map +0 -1
  199. package/dist/services/login/adapter.d.ts +0 -32
  200. package/dist/services/login/adapter.d.ts.map +0 -1
  201. package/dist/services/order/adapter.d.ts +0 -9
  202. package/dist/services/order/adapter.d.ts.map +0 -1
  203. package/dist/services/order/index.d.ts +0 -5
  204. package/dist/services/order/index.d.ts.map +0 -1
  205. package/dist/services/order/orderService.d.ts +0 -7
  206. package/dist/services/order/orderService.d.ts.map +0 -1
  207. package/dist/services/order/types.d.ts +0 -21
  208. package/dist/services/order/types.d.ts.map +0 -1
  209. package/dist/services/product/adapter.test.d.ts +0 -2
  210. package/dist/services/product/adapter.test.d.ts.map +0 -1
  211. package/dist/services/schedules/adapter.d.ts +0 -71
  212. package/dist/services/schedules/adapter.d.ts.map +0 -1
  213. package/dist/services/schedules/adapter.test.d.ts +0 -2
  214. package/dist/services/schedules/adapter.test.d.ts.map +0 -1
  215. package/dist/services/schedules/index.d.ts +0 -5
  216. package/dist/services/schedules/index.d.ts.map +0 -1
  217. package/dist/services/schedules/schedulesService.d.ts +0 -11
  218. package/dist/services/schedules/schedulesService.d.ts.map +0 -1
  219. package/dist/services/schedules/schedulesService.test.d.ts +0 -2
  220. package/dist/services/schedules/schedulesService.test.d.ts.map +0 -1
  221. package/dist/services/schedules/types.d.ts +0 -226
  222. package/dist/services/schedules/types.d.ts.map +0 -1
  223. package/dist/services/settings/index.d.ts +0 -3
  224. package/dist/services/settings/index.d.ts.map +0 -1
  225. package/dist/services/settings/settingsService.d.ts +0 -7
  226. package/dist/services/settings/settingsService.d.ts.map +0 -1
  227. package/dist/services/settings/settingsService.test.d.ts +0 -2
  228. package/dist/services/settings/settingsService.test.d.ts.map +0 -1
  229. package/dist/services/settings/types.d.ts +0 -35
  230. package/dist/services/settings/types.d.ts.map +0 -1
  231. package/dist/services/shop/index.d.ts +0 -3
  232. package/dist/services/shop/index.d.ts.map +0 -1
  233. package/dist/services/shop/shopService.d.ts +0 -12
  234. package/dist/services/shop/shopService.d.ts.map +0 -1
  235. package/dist/services/shop/shopService.test.d.ts +0 -2
  236. package/dist/services/shop/shopService.test.d.ts.map +0 -1
  237. package/dist/services/shop/types.d.ts +0 -7
  238. package/dist/services/shop/types.d.ts.map +0 -1
  239. package/dist/services/subscription/adapter.test.d.ts +0 -2
  240. package/dist/services/subscription/adapter.test.d.ts.map +0 -1
  241. package/dist/services/subscription/types.test.d.ts +0 -2
  242. package/dist/services/subscription/types.test.d.ts.map +0 -1
  243. package/dist/theme-state.params.test.d.ts +0 -2
  244. package/dist/theme-state.params.test.d.ts.map +0 -1
  245. package/dist/theme-state.translations.test.d.ts +0 -2
  246. package/dist/theme-state.translations.test.d.ts.map +0 -1
@@ -1,69 +0,0 @@
1
- import { BlockDefinition } from './block';
2
- /**
3
- * Layout chrome for an overlay surface. The host (`OverlayHost.vue`) reads this
4
- * value off the wrapper block's `props.layout` and picks `UiSidebarShell` or
5
- * `UiModalShell` accordingly — same data-driven pattern `WorkflowOverlay.vue`
6
- * uses for workflow flow root blocks.
7
- */
8
- export type OverlayLayout = "modal" | "sidebar";
9
- /**
10
- * Defines a wrapper block for an overlay surface.
11
- *
12
- * The overlay surface is rendered by `<juo-extension-root surface="overlay"
13
- * name="content">`, which reads `blocks[0].slots.content`. That means the
14
- * surface root must be a *parent* block with a populated `content` slot —
15
- * resolving an overlay leaf block directly leaves the surface root with
16
- * empty slots and `juo-extension-root` renders nothing.
17
- *
18
- * `defineOverlayWrapper` produces such a parent: a no-render block whose
19
- * `initialValue` puts a single instance of the `content` block into its
20
- * `content` slot, mirroring the page-surface pattern (`MainPage.slots.*`).
21
- *
22
- * The `layout` opt is forwarded onto the wrapper's `props.layout` and is
23
- * read by `OverlayHost.vue` to pick the chrome (sidebar vs modal) — same
24
- * convention `WorkflowOverlay.vue` uses for flow root blocks. Defaults to
25
- * `"sidebar"` to preserve behavior for callers that omit it.
26
- *
27
- * The `canAbort` opt is forwarded onto the wrapper's `props.canAbort` and is
28
- * read by `OverlayHost.vue` to (a) drive `<UiModalContent :show-close>` so the
29
- * corner X is present in modal chrome, and (b) gate `handleClose` so backdrop
30
- * click, Esc, and the chrome X uniformly respect non-dismissable overlays.
31
- * Defaults to `true`. Same gate `WorkflowOverlay.handleClose` uses.
32
- *
33
- * Usage:
34
- *
35
- * ```ts
36
- * const MyFeatureBlock = defineBlock("my_feature", { ...leaf renderer... });
37
- * const MyFeatureOverlayBlock = defineOverlayWrapper({
38
- * name: "my_feature_overlay",
39
- * content: "my_feature",
40
- * layout: "modal",
41
- * });
42
- * registerBlock(MyFeatureBlock);
43
- * registerBlock(MyFeatureOverlayBlock);
44
- * ```
45
- *
46
- * Then callers open the overlay via:
47
- *
48
- * ```ts
49
- * themeState.$.resolve("overlay", "my_feature_overlay");
50
- * ```
51
- *
52
- * The wrapper's `renderer` is a no-op because `<juo-extension-root>` only
53
- * reads its slot — the wrapper itself is never rendered as a block.
54
- *
55
- * Open-time params: callers may pass JSON-safe params as the 3rd arg to
56
- * `themeState.resolve("overlay", name, params)`. They are merged onto the
57
- * wrapper's `content` block instance props (see `theme-state.ts` `resolve`),
58
- * so the content leaf can read per-open data (e.g. the generic Confirmation
59
- * block's `action`/`title`/`message`). Never pass callbacks — props cross the
60
- * render boundary and must stay JSON-safe.
61
- */
62
- export declare function defineOverlayWrapper(opts: {
63
- name: string;
64
- content: string;
65
- layout?: OverlayLayout;
66
- canAbort?: boolean;
67
- title?: string;
68
- }): BlockDefinition;
69
- //# sourceMappingURL=overlay-wrapper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"overlay-wrapper.d.ts","sourceRoot":"","sources":["../src/overlay-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,SAAS,CAAC;AAEjB;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAyChD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,eAAe,CAelB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=overlay-wrapper.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"overlay-wrapper.test.d.ts","sourceRoot":"","sources":["../src/overlay-wrapper.test.ts"],"names":[],"mappings":""}
@@ -1,34 +0,0 @@
1
- import { ReadonlySignal } from '@preact/signals-core';
2
- import { BlockDefinition } from '../block';
3
- import { ThemeState } from '../theme-state';
4
- import { OverlayLayout } from '../overlay-wrapper';
5
- import { OverlayRegistryEntry } from '../editor/overlays';
6
- export type { OverlayRegistryEntry };
7
- export interface OverlayState {
8
- name: string;
9
- layout: OverlayLayout;
10
- canAbort: boolean;
11
- }
12
- export interface OverlayService {
13
- /** Editor registry: the flat, global overlay list for the editor dropdown. */
14
- getEditableOverlays(): Record<string, OverlayRegistryEntry>;
15
- /** Open an overlay surface (full `overlay:<id>` name), optionally parameterized. */
16
- open(name: string, params?: Record<string, unknown>): void;
17
- /** Close the current overlay surface. */
18
- close(): void;
19
- /** The overlay currently showing, or null (incl. when a workflow overlay is up). */
20
- current: ReadonlySignal<OverlayState | null>;
21
- }
22
- export declare const OverlayServiceContext: {
23
- __context__: OverlayService;
24
- };
25
- /**
26
- * Owns non-workflow overlay state over the shared `themeState.overlay` surface.
27
- * Symmetric to `WorkflowService`; never invoked on the workflow path. `current`
28
- * filters to `overlay:` roots so workflow roots (which share the surface) read
29
- * as null.
30
- */
31
- export declare function createOverlayService(themeState: ThemeState, options?: {
32
- getBlocks?: () => BlockDefinition[];
33
- }): OverlayService;
34
- //# sourceMappingURL=OverlayService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OverlayService.d.ts","sourceRoot":"","sources":["../../src/overlays/OverlayService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAIrC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,8EAA8E;IAC9E,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC5D,oFAAoF;IACpF,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3D,yCAAyC;IACzC,KAAK,IAAI,IAAI,CAAC;IACd,oFAAoF;IACpF,OAAO,EAAE,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;CAC9C;AAED,eAAO,MAAM,qBAAqB;;CACiB,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,eAAe,EAAE,CAAA;CAAO,GACpD,cAAc,CAiChB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=OverlayService.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OverlayService.test.d.ts","sourceRoot":"","sources":["../../src/overlays/OverlayService.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=registry.devtools.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.devtools.test.d.ts","sourceRoot":"","sources":["../src/registry.devtools.test.ts"],"names":[],"mappings":""}
@@ -1,8 +0,0 @@
1
- import { Customer } from './types';
2
- import { ApiFetcher, Result } from '../../utils';
3
- export interface CustomerAdapter {
4
- getCurrent(): Promise<Result<Customer | null>>;
5
- }
6
- export declare function createMockCustomerAdapter(): CustomerAdapter;
7
- export declare function createApiCustomerAdapter(fetcher: ApiFetcher): CustomerAdapter;
8
- //# sourceMappingURL=adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/services/customer/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;CAChD;AAED,wBAAgB,yBAAyB,IAAI,eAAe,CAO3D;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,eAAe,CAyB7E"}
@@ -1,32 +0,0 @@
1
- import { ApiFetcher, Result } from '../../utils';
2
- export type AuthTokens = {
3
- access_token: string;
4
- refresh_token: string;
5
- expires_in: number;
6
- };
7
- export interface LoginAdapter {
8
- passwordlessStart(params: {
9
- email: string;
10
- lang: string;
11
- }): Promise<Result<void>>;
12
- authenticate(params: {
13
- email: string;
14
- code: string;
15
- } | {
16
- code: string;
17
- } | {
18
- refreshToken: string;
19
- }): Promise<Result<AuthTokens>>;
20
- getAuthorizeUrl(params: {
21
- connection: "facebook" | "google-oauth2";
22
- state: string;
23
- shop: string;
24
- appUrl: string;
25
- }): string;
26
- }
27
- export declare function createMockLoginAdapter(): LoginAdapter;
28
- export declare function createApiLoginAdapter(fetcher: ApiFetcher, opts: {
29
- shopDomain: string;
30
- appUrl: string;
31
- }): LoginAdapter;
32
- //# sourceMappingURL=adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/services/login/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGtD,MAAM,MAAM,UAAU,GAAG;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,iBAAiB,CAAC,MAAM,EAAE;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1B,YAAY,CACV,MAAM,EACF;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAC/B;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAChB;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAE/B,eAAe,CAAC,MAAM,EAAE;QACtB,UAAU,EAAE,UAAU,GAAG,eAAe,CAAC;QACzC,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,MAAM,CAAC;CACZ;AAED,wBAAgB,sBAAsB,IAAI,YAAY,CAuBrD;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3C,YAAY,CAoHd"}
@@ -1,9 +0,0 @@
1
- import { Order } from './types';
2
- import { ApiFetcher, Result } from '../../utils';
3
- export interface OrderAdapter {
4
- getHistory(): Promise<Result<Order[]>>;
5
- getById(id: string): Promise<Result<Order | null>>;
6
- }
7
- export declare function createMockOrderAdapter(): OrderAdapter;
8
- export declare function createApiOrderAdapter(fetcher: ApiFetcher): OrderAdapter;
9
- //# sourceMappingURL=adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/services/order/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAa,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,YAAY;IAC3B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;CACpD;AA+BD,wBAAgB,sBAAsB,IAAI,YAAY,CAiCrD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,YAAY,CA2BvE"}
@@ -1,5 +0,0 @@
1
- export type { OrderAdapter } from './adapter';
2
- export { createMockOrderAdapter, createApiOrderAdapter } from './adapter';
3
- export { createOrderService, OrderServiceContext } from './orderService';
4
- export * from './types';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/order/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACzE,cAAc,SAAS,CAAC"}
@@ -1,7 +0,0 @@
1
- import { OrderAdapter } from './adapter';
2
- import { OrderService } from './types';
3
- export declare const OrderServiceContext: {
4
- __context__: OrderService;
5
- };
6
- export declare function createOrderService(adapter: OrderAdapter): OrderService;
7
- //# sourceMappingURL=orderService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"orderService.d.ts","sourceRoot":"","sources":["../../../src/services/order/orderService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,mBAAmB;;CAAgD,CAAC;AAEjF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,CAKtE"}
@@ -1,21 +0,0 @@
1
- import { Result } from '../../utils';
2
- export interface OrderItem {
3
- id: string;
4
- productId: string;
5
- variantId: string;
6
- quantity: number;
7
- metadata?: Record<string, unknown>;
8
- }
9
- export interface Order {
10
- id: string;
11
- customerId: string;
12
- items: OrderItem[];
13
- deliveryDate: string | null;
14
- status: "pending" | "confirmed" | "delivered" | "skipped";
15
- metadata?: Record<string, unknown>;
16
- }
17
- export type OrderService = {
18
- getHistory(): Promise<Result<Order[]>>;
19
- getById(id: string): Promise<Result<Order | null>>;
20
- };
21
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/order/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;CACpD,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=adapter.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.test.d.ts","sourceRoot":"","sources":["../../../src/services/product/adapter.test.ts"],"names":[],"mappings":""}
@@ -1,71 +0,0 @@
1
- import { ApiFetcher, Result } from '../../utils';
2
- import { SubscriptionAdapter } from '../subscription/adapter';
3
- import { Subscription } from '../subscription/types';
4
- import { ScheduleAdjustment, ScheduleOrder, ScheduleShippingAddressInput, ScheduleUpdateProductsLine } from './types';
5
- export interface SchedulesAdapter {
6
- getUpcomingOrders(params: {
7
- count: number;
8
- subscriptionId?: string;
9
- }): Promise<Result<ScheduleOrder[]>>;
10
- getAdjustments(): Promise<Result<ScheduleAdjustment[]>>;
11
- skipOrder(params: {
12
- subscriptionId: string;
13
- cycle?: number;
14
- date?: string;
15
- }): Promise<Result>;
16
- changeDateAdjustment(params: {
17
- subscriptionId: string;
18
- newDate: string;
19
- cycle: number;
20
- currentDate?: string;
21
- }): Promise<Result>;
22
- updateShippingAdjustment(params: {
23
- subscriptionId: string;
24
- address: ScheduleShippingAddressInput;
25
- cycle?: number;
26
- date?: string;
27
- }): Promise<Result>;
28
- updatePaymentMethodAdjustment(params: {
29
- subscriptionId: string;
30
- paymentMethodId: string;
31
- cycle?: number;
32
- date?: string;
33
- }): Promise<Result>;
34
- updateProductsAdjustment(params: {
35
- subscriptionId: string;
36
- lines: ScheduleUpdateProductsLine[];
37
- cycle?: number;
38
- date?: string;
39
- }): Promise<Result>;
40
- applyDiscountAdjustment(params: {
41
- subscriptionId: string;
42
- discountCode: string;
43
- cycle: number;
44
- }): Promise<Result>;
45
- removeAdjustment(params: {
46
- adjustmentId: string;
47
- }): Promise<Result>;
48
- }
49
- /** Subscription state the schedules mock projects orders from. */
50
- type SubscriptionSource = Pick<SubscriptionAdapter, "getById" | "search">;
51
- /**
52
- * Project the next `count` upcoming orders for a subscription by stepping its
53
- * `nextBillingDate` forward one billing interval at a time. Only active
54
- * subscriptions have upcoming orders; everything else projects to nothing.
55
- */
56
- export declare function projectUpcomingOrders(sub: Subscription, count: number): ScheduleOrder[];
57
- /**
58
- * Mock schedules adapter that PROJECTS upcoming orders from a subscription
59
- * source rather than holding its own static fixtures. Pass the same
60
- * subscription adapter instance the SubscriptionService uses so item
61
- * add/remove/update mutations flow through to the projected schedule. When no
62
- * source is given it owns a fresh mock subscription adapter (used by unit tests).
63
- *
64
- * Skip / date-change actions are stored as an adjustments overlay applied on
65
- * top of the projection — mirroring the real API (`getAdjustments` + a derived
66
- * order list) rather than mutating a baked order array.
67
- */
68
- export declare function createMockSchedulesAdapter(subscriptions?: SubscriptionSource): SchedulesAdapter;
69
- export declare function createApiSchedulesAdapter(fetcher: ApiFetcher): SchedulesAdapter;
70
- export {};
71
- //# sourceMappingURL=adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/services/schedules/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAiC,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAClG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EACV,kBAAkB,EAElB,aAAa,EAEb,4BAA4B,EAC5B,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,CAAC,MAAM,EAAE;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACrC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACxD,SAAS,CAAC,MAAM,EAAE;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,oBAAoB,CAAC,MAAM,EAAE;QAC3B,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,wBAAwB,CAAC,MAAM,EAAE;QAC/B,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,4BAA4B,CAAC;QACtC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,6BAA6B,CAAC,MAAM,EAAE;QACpC,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,wBAAwB,CAAC,MAAM,EAAE;QAC/B,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,EAAE,0BAA0B,EAAE,CAAC;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,uBAAuB,CAAC,MAAM,EAAE;QAC9B,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,gBAAgB,CAAC,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACrE;AAoCD,kEAAkE;AAClE,KAAK,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC;AA2D1E;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,MAAM,GACZ,aAAa,EAAE,CA4CjB;AA4CD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,GAAE,kBAAoD,GAClE,gBAAgB,CA0KlB;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,UAAU,GAAG,gBAAgB,CAyI/E"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=adapter.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.test.d.ts","sourceRoot":"","sources":["../../../src/services/schedules/adapter.test.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- export type { SchedulesAdapter, } from './adapter';
2
- export { createMockSchedulesAdapter, createApiSchedulesAdapter, } from './adapter';
3
- export { createSchedulesService, SchedulesServiceContext, } from './schedulesService';
4
- export * from './types';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/schedules/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,cAAc,SAAS,CAAC"}
@@ -1,11 +0,0 @@
1
- import { Signal } from '@preact/signals-core';
2
- import { ContextType } from '../../context';
3
- import { SchedulesAdapter } from './adapter';
4
- import { SchedulesService } from './types';
5
- export declare const SchedulesServiceContext: {
6
- __context__: SchedulesService;
7
- };
8
- export declare function createSchedulesService(adapter: SchedulesAdapter, opts?: {
9
- hasPendingBilling?: Signal<boolean>;
10
- }): ContextType<typeof SchedulesServiceContext>;
11
- //# sourceMappingURL=schedulesService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schedulesService.d.ts","sourceRoot":"","sources":["../../../src/services/schedules/schedulesService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE/D,eAAO,MAAM,uBAAuB;;CACmB,CAAC;AAExD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,gBAAgB,EACzB,IAAI,CAAC,EAAE;IAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;CAAE,GAC7C,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAmH7C"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=schedulesService.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schedulesService.test.d.ts","sourceRoot":"","sources":["../../../src/services/schedules/schedulesService.test.ts"],"names":[],"mappings":""}
@@ -1,226 +0,0 @@
1
- import { Signal } from '@preact/signals-core';
2
- import { Result } from '../../utils';
3
- export interface ScheduleOrderItem {
4
- id: string;
5
- title: string;
6
- subtitle?: string | null;
7
- imageUrl?: string;
8
- variantId: string;
9
- quantity: number;
10
- price: number;
11
- totalPrice: number;
12
- variantImage?: {
13
- url: string;
14
- altText?: string;
15
- } | null;
16
- variantAvailableForSale?: boolean;
17
- subscriptionId: string;
18
- subscriptionLineId: string;
19
- productId?: string;
20
- parentProductId?: string | null;
21
- parentLineId?: string | null;
22
- isVirtual?: boolean;
23
- isUpsell?: boolean;
24
- recurringCycleLimit?: number | null;
25
- customAttributes?: {
26
- key: string;
27
- value: string;
28
- }[];
29
- sellingPlanId?: string | null;
30
- sellingPlanName?: string | null;
31
- nextBillingDate?: string | null;
32
- billingPolicy?: {
33
- interval: "DAY" | "MONTH" | "WEEK" | "YEAR";
34
- intervalCount: number;
35
- } | null;
36
- subscriptionStatus?: string | null;
37
- subscriptionIsEditable?: boolean | null;
38
- requiredBillingCyclesLeft?: number | null;
39
- }
40
- export interface ScheduleOrderDiscount {
41
- id: string;
42
- title?: string;
43
- type: "percentage" | "fixed_amount";
44
- value: number;
45
- }
46
- export type ScheduleInterval = "DAY" | "WEEK" | "MONTH" | "YEAR";
47
- /**
48
- * Selects which order(s) an adjustment applies to. Mirrors the Customer API
49
- * matcher union (`POST /customer/v1/schedules/adjustments`). Adjustments are
50
- * customer-scoped — matched by billing cycle and/or date, not subscription id.
51
- */
52
- export type ScheduleAdjustmentMatcher = {
53
- type: "CYCLE";
54
- input: {
55
- cycle: number;
56
- };
57
- } | {
58
- type: "DATE";
59
- input: {
60
- date: string;
61
- };
62
- } | {
63
- type: "CYCLE_AND_DATE";
64
- input: {
65
- cycle: number;
66
- date: string;
67
- };
68
- };
69
- /** Address input for the `UPDATE_SHIPPING` adjustment action. */
70
- export interface ScheduleShippingAddressInput {
71
- firstName?: string | null;
72
- lastName?: string | null;
73
- address1?: string | null;
74
- address2?: string | null;
75
- zip?: string | null;
76
- city?: string | null;
77
- countryCode?: string | null;
78
- provinceCode?: string | null;
79
- phone?: string | null;
80
- company?: string | null;
81
- }
82
- /** Per-line input for the `UPDATE_PRODUCTS` adjustment action. */
83
- export interface ScheduleUpdateProductsLine {
84
- lineId: string;
85
- variantId?: string;
86
- quantity?: number;
87
- interval?: {
88
- intervalCount: number;
89
- interval: ScheduleInterval;
90
- };
91
- nextBillingDate?: string;
92
- customAttributes?: {
93
- key: string;
94
- value: string;
95
- }[];
96
- }
97
- /**
98
- * What an adjustment does to the matched order(s). Mirrors the Customer API
99
- * action union. `APPLY_DISCOUNT` is code-only here — the manual-discount variant
100
- * is Admin-API only and intentionally not surfaced to the customer portal.
101
- */
102
- export type ScheduleAdjustmentAction = {
103
- type: "SKIP_ORDER";
104
- input: {
105
- reason: string;
106
- };
107
- } | {
108
- type: "CHANGE_DATE";
109
- input: {
110
- newDate: string;
111
- };
112
- } | {
113
- type: "UPDATE_SHIPPING";
114
- input: {
115
- address: ScheduleShippingAddressInput;
116
- };
117
- } | {
118
- type: "UPDATE_PAYMENT_METHOD";
119
- input: {
120
- paymentMethodId: string;
121
- };
122
- } | {
123
- type: "UPDATE_PRODUCTS";
124
- input: {
125
- lines: ScheduleUpdateProductsLine[];
126
- };
127
- } | {
128
- type: "APPLY_DISCOUNT";
129
- input: {
130
- discountSource: "code";
131
- discountCode: string;
132
- };
133
- };
134
- /**
135
- * A persisted schedule adjustment as returned by the Customer API. Carries the
136
- * full `matcher`/`action` pair so every action type round-trips — not just
137
- * skip/date-change.
138
- */
139
- export interface ScheduleAdjustment {
140
- id: string;
141
- matcher: ScheduleAdjustmentMatcher;
142
- action: ScheduleAdjustmentAction;
143
- }
144
- export interface ScheduleOrder {
145
- id: string;
146
- customerId: string;
147
- subscriptionId: string;
148
- date: string;
149
- skipped: boolean;
150
- currencyCode: string;
151
- subtotal: number;
152
- deliveryPrice: number;
153
- cycleIndex: number;
154
- deliveryDate: string;
155
- status: "scheduled" | "processing" | "delivered" | "skipped";
156
- items: ScheduleOrderItem[];
157
- discounts: ScheduleOrderDiscount[];
158
- }
159
- export interface SchedulesService {
160
- /** Reactive signal — shared upcoming orders for multi-block access. `null` until first loaded. */
161
- current: Signal<ScheduleOrder[] | null>;
162
- currentLoading: Signal<boolean>;
163
- /** Sourced from SubscriptionService — guards billing-sensitive actions */
164
- hasPendingBilling: Signal<boolean>;
165
- /** Read-only projection. */
166
- getUpcomingOrder(): Promise<Result<ScheduleOrder | null>>;
167
- getUpcomingOrders(count: number): Promise<Result<ScheduleOrder[]>>;
168
- getAdjustments(): Promise<Result<ScheduleAdjustment[]>>;
169
- /** Adjustment — skip the matched order. Matcher: CYCLE or DATE. */
170
- skipOrder(params: {
171
- subscriptionId: string;
172
- cycle?: number;
173
- date?: string;
174
- }): Promise<Result>;
175
- /**
176
- * Reschedule the matched order. Backend requires a CYCLE matcher, so `cycle`
177
- * is required and enforced at runtime by both adapters; `currentDate` is kept
178
- * only to resolve the cycle in the mock adapter and is ignored by the API
179
- * adapter.
180
- */
181
- changeDateAdjustment(params: {
182
- subscriptionId: string;
183
- newDate: string;
184
- cycle: number;
185
- currentDate?: string;
186
- }): Promise<Result>;
187
- /** Adjustment — override the shipping address for the matched order. */
188
- updateShippingAdjustment(params: {
189
- subscriptionId: string;
190
- address: ScheduleShippingAddressInput;
191
- cycle?: number;
192
- date?: string;
193
- }): Promise<Result>;
194
- /** Adjustment — use a different payment method for the matched order. */
195
- updatePaymentMethodAdjustment(params: {
196
- subscriptionId: string;
197
- paymentMethodId: string;
198
- cycle?: number;
199
- date?: string;
200
- }): Promise<Result>;
201
- /** Adjustment — swap variant / change quantity / interval on order lines. */
202
- updateProductsAdjustment(params: {
203
- subscriptionId: string;
204
- lines: ScheduleUpdateProductsLine[];
205
- cycle?: number;
206
- date?: string;
207
- }): Promise<Result>;
208
- /** Adjustment — apply a discount code. Backend requires a CYCLE matcher. */
209
- applyDiscountAdjustment(params: {
210
- subscriptionId: string;
211
- discountCode: string;
212
- cycle: number;
213
- }): Promise<Result>;
214
- removeAdjustment(params: {
215
- adjustmentId: string;
216
- }): Promise<Result>;
217
- /**
218
- * Refresh `current` for the given subscription.
219
- *
220
- * Useful after a mutation (e.g. skip) when the subscription `id` is unchanged
221
- * but the upcoming-order state has shifted — the host's id-based watcher
222
- * does not fire in that case.
223
- */
224
- reloadCurrent(subscriptionId: string): Promise<void>;
225
- }
226
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/schedules/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACxD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,gBAAgB,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,EAAE;QAAE,QAAQ,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9F,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,sBAAsB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,yBAAyB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,GAAG,cAAc,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjE;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GACjC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEvE,iEAAiE;AACjE,MAAM,WAAW,4BAA4B;IAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,kEAAkE;AAClE,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,gBAAgB,CAAA;KAAE,CAAC;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACrD;AAED;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAChC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE;QAAE,OAAO,EAAE,4BAA4B,CAAA;KAAE,CAAA;CAAE,GAC7E;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,KAAK,EAAE;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE;QAAE,KAAK,EAAE,0BAA0B,EAAE,CAAA;KAAE,CAAA;CAAE,GAC3E;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD,CAAC;AAEN;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,yBAAyB,CAAC;IACnC,MAAM,EAAE,wBAAwB,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC;IAC7D,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,SAAS,EAAE,qBAAqB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,kGAAkG;IAClG,OAAO,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC;IACxC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,0EAA0E;IAC1E,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnC,4BAA4B;IAC5B,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1D,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACnE,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAExD,mEAAmE;IACnE,SAAS,CAAC,MAAM,EAAE;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB;;;;;OAKG;IACH,oBAAoB,CAAC,MAAM,EAAE;QAC3B,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,wEAAwE;IACxE,wBAAwB,CAAC,MAAM,EAAE;QAC/B,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,4BAA4B,CAAC;QACtC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,yEAAyE;IACzE,6BAA6B,CAAC,MAAM,EAAE;QACpC,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,6EAA6E;IAC7E,wBAAwB,CAAC,MAAM,EAAE;QAC/B,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,EAAE,0BAA0B,EAAE,CAAC;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,4EAA4E;IAC5E,uBAAuB,CAAC,MAAM,EAAE;QAC9B,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,gBAAgB,CAAC,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpE;;;;;;OAMG;IACH,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD"}
@@ -1,3 +0,0 @@
1
- export { createSettingsService, SettingsServiceContext, } from './settingsService';
2
- export * from './types';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/settings/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,cAAc,SAAS,CAAC"}
@@ -1,7 +0,0 @@
1
- import { ContextType } from '../../context';
2
- import { Settings, SettingsService } from './types';
3
- export declare const SettingsServiceContext: {
4
- __context__: SettingsService;
5
- };
6
- export declare function createSettingsService(initial?: Settings): ContextType<typeof SettingsServiceContext>;
7
- //# sourceMappingURL=settingsService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"settingsService.d.ts","sourceRoot":"","sources":["../../../src/services/settings/settingsService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEzD,eAAO,MAAM,sBAAsB;;CACkB,CAAC;AAEtD,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,QAAa,GACrB,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAQ5C"}