@ikas/component-cli 1.4.0-beta.18 → 1.4.0-beta.181

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 (172) hide show
  1. package/dist/build-tools.d.ts +37 -0
  2. package/dist/build-tools.d.ts.map +1 -0
  3. package/dist/build-tools.js +36 -0
  4. package/dist/build-tools.js.map +1 -0
  5. package/dist/commands/add-sections-to-page.d.ts +3 -0
  6. package/dist/commands/add-sections-to-page.d.ts.map +1 -0
  7. package/dist/commands/add-sections-to-page.js +39 -0
  8. package/dist/commands/add-sections-to-page.js.map +1 -0
  9. package/dist/commands/add.d.ts.map +1 -1
  10. package/dist/commands/add.js +11 -2
  11. package/dist/commands/add.js.map +1 -1
  12. package/dist/commands/build.d.ts.map +1 -1
  13. package/dist/commands/build.js +5 -165
  14. package/dist/commands/build.js.map +1 -1
  15. package/dist/commands/config.d.ts +35 -0
  16. package/dist/commands/config.d.ts.map +1 -1
  17. package/dist/commands/config.js +839 -120
  18. package/dist/commands/config.js.map +1 -1
  19. package/dist/commands/create-design-tokens.d.ts +24 -0
  20. package/dist/commands/create-design-tokens.d.ts.map +1 -0
  21. package/dist/commands/create-design-tokens.js +327 -0
  22. package/dist/commands/create-design-tokens.js.map +1 -0
  23. package/dist/commands/create-global-variable.d.ts +3 -0
  24. package/dist/commands/create-global-variable.d.ts.map +1 -0
  25. package/dist/commands/create-global-variable.js +53 -0
  26. package/dist/commands/create-global-variable.js.map +1 -0
  27. package/dist/commands/create-page.d.ts +3 -0
  28. package/dist/commands/create-page.d.ts.map +1 -0
  29. package/dist/commands/create-page.js +31 -0
  30. package/dist/commands/create-page.js.map +1 -0
  31. package/dist/commands/delete-page.d.ts +3 -0
  32. package/dist/commands/delete-page.d.ts.map +1 -0
  33. package/dist/commands/delete-page.js +28 -0
  34. package/dist/commands/delete-page.js.map +1 -0
  35. package/dist/commands/delete-theme-globals.d.ts +4 -0
  36. package/dist/commands/delete-theme-globals.d.ts.map +1 -0
  37. package/dist/commands/delete-theme-globals.js +48 -0
  38. package/dist/commands/delete-theme-globals.js.map +1 -0
  39. package/dist/commands/dev.d.ts.map +1 -1
  40. package/dist/commands/dev.js +106 -31
  41. package/dist/commands/dev.js.map +1 -1
  42. package/dist/commands/enable-builtin-pages.d.ts +3 -0
  43. package/dist/commands/enable-builtin-pages.d.ts.map +1 -0
  44. package/dist/commands/enable-builtin-pages.js +27 -0
  45. package/dist/commands/enable-builtin-pages.js.map +1 -0
  46. package/dist/commands/get-component-props.d.ts +3 -0
  47. package/dist/commands/get-component-props.d.ts.map +1 -0
  48. package/dist/commands/get-component-props.js +32 -0
  49. package/dist/commands/get-component-props.js.map +1 -0
  50. package/dist/commands/get-page-by-type.d.ts +3 -0
  51. package/dist/commands/get-page-by-type.d.ts.map +1 -0
  52. package/dist/commands/get-page-by-type.js +25 -0
  53. package/dist/commands/get-page-by-type.js.map +1 -0
  54. package/dist/commands/get-section-values.d.ts +3 -0
  55. package/dist/commands/get-section-values.d.ts.map +1 -0
  56. package/dist/commands/get-section-values.js +39 -0
  57. package/dist/commands/get-section-values.js.map +1 -0
  58. package/dist/commands/list-builtin-pages.d.ts +3 -0
  59. package/dist/commands/list-builtin-pages.d.ts.map +1 -0
  60. package/dist/commands/list-builtin-pages.js +28 -0
  61. package/dist/commands/list-builtin-pages.js.map +1 -0
  62. package/dist/commands/list-entities.d.ts +3 -0
  63. package/dist/commands/list-entities.d.ts.map +1 -0
  64. package/dist/commands/list-entities.js +32 -0
  65. package/dist/commands/list-entities.js.map +1 -0
  66. package/dist/commands/list-page-sections.d.ts.map +1 -1
  67. package/dist/commands/list-page-sections.js +8 -2
  68. package/dist/commands/list-page-sections.js.map +1 -1
  69. package/dist/commands/list-theme-globals.d.ts +3 -0
  70. package/dist/commands/list-theme-globals.d.ts.map +1 -0
  71. package/dist/commands/list-theme-globals.js +22 -0
  72. package/dist/commands/list-theme-globals.js.map +1 -0
  73. package/dist/commands/move-page-section.d.ts +3 -0
  74. package/dist/commands/move-page-section.d.ts.map +1 -0
  75. package/dist/commands/move-page-section.js +62 -0
  76. package/dist/commands/move-page-section.js.map +1 -0
  77. package/dist/commands/publish-theme.d.ts +3 -0
  78. package/dist/commands/publish-theme.d.ts.map +1 -0
  79. package/dist/commands/publish-theme.js +29 -0
  80. package/dist/commands/publish-theme.js.map +1 -0
  81. package/dist/commands/publish.d.ts.map +1 -1
  82. package/dist/commands/publish.js +45 -3
  83. package/dist/commands/publish.js.map +1 -1
  84. package/dist/commands/remove-page-section.d.ts +3 -0
  85. package/dist/commands/remove-page-section.d.ts.map +1 -0
  86. package/dist/commands/remove-page-section.js +40 -0
  87. package/dist/commands/remove-page-section.js.map +1 -0
  88. package/dist/commands/search-products.d.ts +3 -0
  89. package/dist/commands/search-products.d.ts.map +1 -0
  90. package/dist/commands/search-products.js +40 -0
  91. package/dist/commands/search-products.js.map +1 -0
  92. package/dist/commands/update-builtin-page-prop.d.ts +3 -0
  93. package/dist/commands/update-builtin-page-prop.d.ts.map +1 -0
  94. package/dist/commands/update-builtin-page-prop.js +49 -0
  95. package/dist/commands/update-builtin-page-prop.js.map +1 -0
  96. package/dist/commands/update-global-variable.d.ts +3 -0
  97. package/dist/commands/update-global-variable.d.ts.map +1 -0
  98. package/dist/commands/update-global-variable.js +47 -0
  99. package/dist/commands/update-global-variable.js.map +1 -0
  100. package/dist/commands/update-page-sections.d.ts +3 -0
  101. package/dist/commands/update-page-sections.d.ts.map +1 -0
  102. package/dist/commands/update-page-sections.js +39 -0
  103. package/dist/commands/update-page-sections.js.map +1 -0
  104. package/dist/commands/update-section-prop.d.ts.map +1 -1
  105. package/dist/commands/update-section-prop.js +34 -9
  106. package/dist/commands/update-section-prop.js.map +1 -1
  107. package/dist/commands/upload-image.d.ts.map +1 -1
  108. package/dist/commands/upload-image.js +5 -46
  109. package/dist/commands/upload-image.js.map +1 -1
  110. package/dist/commands/upload-images.d.ts +3 -0
  111. package/dist/commands/upload-images.d.ts.map +1 -0
  112. package/dist/commands/upload-images.js +48 -0
  113. package/dist/commands/upload-images.js.map +1 -0
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +54 -1
  116. package/dist/index.js.map +1 -1
  117. package/dist/types.d.ts +17 -0
  118. package/dist/types.d.ts.map +1 -1
  119. package/dist/utils/compile.d.ts +17 -2
  120. package/dist/utils/compile.d.ts.map +1 -1
  121. package/dist/utils/compile.js +746 -117
  122. package/dist/utils/compile.js.map +1 -1
  123. package/dist/utils/component-helpers.d.ts +69 -2
  124. package/dist/utils/component-helpers.d.ts.map +1 -1
  125. package/dist/utils/component-helpers.js +193 -25
  126. package/dist/utils/component-helpers.js.map +1 -1
  127. package/dist/utils/css-import-resolver.d.ts +4 -1
  128. package/dist/utils/css-import-resolver.d.ts.map +1 -1
  129. package/dist/utils/css-import-resolver.js +9 -1
  130. package/dist/utils/css-import-resolver.js.map +1 -1
  131. package/dist/utils/editor-action-client.d.ts +4 -3
  132. package/dist/utils/editor-action-client.d.ts.map +1 -1
  133. package/dist/utils/editor-action-client.js +55 -19
  134. package/dist/utils/editor-action-client.js.map +1 -1
  135. package/dist/utils/esm-transform.d.ts +30 -0
  136. package/dist/utils/esm-transform.d.ts.map +1 -1
  137. package/dist/utils/esm-transform.js +169 -2
  138. package/dist/utils/esm-transform.js.map +1 -1
  139. package/dist/utils/find-component-for-file.d.ts +12 -0
  140. package/dist/utils/find-component-for-file.d.ts.map +1 -0
  141. package/dist/utils/find-component-for-file.js +24 -0
  142. package/dist/utils/find-component-for-file.js.map +1 -0
  143. package/dist/utils/forbid-deep-imports.d.ts +3 -0
  144. package/dist/utils/forbid-deep-imports.d.ts.map +1 -0
  145. package/dist/utils/forbid-deep-imports.js +54 -0
  146. package/dist/utils/forbid-deep-imports.js.map +1 -0
  147. package/dist/utils/forbid-external-packages.d.ts +26 -0
  148. package/dist/utils/forbid-external-packages.d.ts.map +1 -0
  149. package/dist/utils/forbid-external-packages.js +99 -0
  150. package/dist/utils/forbid-external-packages.js.map +1 -0
  151. package/dist/utils/load-image.d.ts +16 -0
  152. package/dist/utils/load-image.d.ts.map +1 -0
  153. package/dist/utils/load-image.js +50 -0
  154. package/dist/utils/load-image.js.map +1 -0
  155. package/dist/utils/vendor-storefront.d.ts +13 -0
  156. package/dist/utils/vendor-storefront.d.ts.map +1 -0
  157. package/dist/utils/vendor-storefront.js +91 -0
  158. package/dist/utils/vendor-storefront.js.map +1 -0
  159. package/dist/utils/websocket-server.d.ts +53 -5
  160. package/dist/utils/websocket-server.d.ts.map +1 -1
  161. package/dist/utils/websocket-server.js +233 -43
  162. package/dist/utils/websocket-server.js.map +1 -1
  163. package/package.json +17 -2
  164. package/templates/add/section.css +11 -0
  165. package/dist/commands/create.d.ts +0 -4
  166. package/dist/commands/create.d.ts.map +0 -1
  167. package/dist/commands/create.js +0 -228
  168. package/dist/commands/create.js.map +0 -1
  169. package/dist/commands/proxy.d.ts +0 -39
  170. package/dist/commands/proxy.d.ts.map +0 -1
  171. package/dist/commands/proxy.js +0 -210
  172. package/dist/commands/proxy.js.map +0 -1
@@ -0,0 +1,49 @@
1
+ import { Command } from "commander";
2
+ import { printErrorAndExit, printResultAndExit, runEditorAction, } from "../utils/editor-action-client.js";
3
+ async function runUpdateBuiltinPageProp(options) {
4
+ // Target/prop validation is the editor handler's job — one source of error truth.
5
+ let value;
6
+ if (options.value !== undefined) {
7
+ try {
8
+ value = JSON.parse(options.value);
9
+ }
10
+ catch {
11
+ // A bare string is the common case for TEXT props; keep it verbatim.
12
+ value = options.value;
13
+ }
14
+ }
15
+ const port = options.port ? parseInt(options.port, 10) : undefined;
16
+ try {
17
+ const result = await runEditorAction("update-builtin-page-prop", {
18
+ ...(options.pageType ? { pageType: options.pageType } : {}),
19
+ ...(options.scopeId ? { scopeId: options.scopeId } : {}),
20
+ ...(options.propId ? { propId: options.propId } : {}),
21
+ ...(options.propName ? { propName: options.propName } : {}),
22
+ ...(value !== undefined ? { value } : {}),
23
+ ...(options.bindGlobal ? { bindGlobal: options.bindGlobal } : {}),
24
+ ...(options.clear ? { clear: true } : {}),
25
+ ...(options.sfRoutingId ? { sfRoutingId: options.sfRoutingId } : {}),
26
+ }, port ? { port } : {});
27
+ printResultAndExit(result);
28
+ }
29
+ catch (e) {
30
+ printErrorAndExit(e);
31
+ }
32
+ }
33
+ export function createUpdateBuiltinPagePropCommand() {
34
+ const cmd = new Command("update-builtin-page-prop");
35
+ cmd
36
+ .description('Set, bind, or clear one prop of an ikas-rendered built-in page (--page-type) or of a shared scope (--scope-id). Values are stored RAW — a TEXT prop takes the plain string, a COLOR takes "#rrggbb" or a {"patternValueId"} global-color binding, an IMAGE takes {"id"}. Get the schema and current values from list-builtin-pages.')
37
+ .option("--page-type <type>", "Built-in page type whose own prop to write (e.g. LOGIN)")
38
+ .option("--scope-id <id>", "Shared scope whose prop to write (reaches every page in its group)")
39
+ .option("--prop-id <id>", "Prop id (from list-builtin-pages)")
40
+ .option("--prop-name <name>", "Prop name (alternative to --prop-id)")
41
+ .option("--value <json>", "The raw value as JSON (a bare string is taken verbatim)")
42
+ .option("--bind-global <name>", "Bind the prop to a global variable (Theme Setting) instead of a static value — pass the global's name from list-theme-globals")
43
+ .option("--clear", "Delete the stored value so the prop falls back to the default")
44
+ .option("--sf-routing-id <id>", "Write one storefront routing's override (default: the base value)")
45
+ .option("--port <port>", "Dev server WebSocket port", "5201")
46
+ .action(runUpdateBuiltinPageProp);
47
+ return cmd;
48
+ }
49
+ //# sourceMappingURL=update-builtin-page-prop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-builtin-page-prop.js","sourceRoot":"","sources":["../../src/commands/update-builtin-page-prop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAc1C,KAAK,UAAU,wBAAwB,CACrC,OAAqC;IAErC,kFAAkF;IAClF,IAAI,KAAc,CAAC;IACnB,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;YACrE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,0BAA0B,EAC1B;YACE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE,EACD,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CACrB,CAAC;QACF,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kCAAkC;IAChD,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACpD,GAAG;SACA,WAAW,CACV,qUAAqU,CACtU;SACA,MAAM,CACL,oBAAoB,EACpB,yDAAyD,CAC1D;SACA,MAAM,CACL,iBAAiB,EACjB,oEAAoE,CACrE;SACA,MAAM,CAAC,gBAAgB,EAAE,mCAAmC,CAAC;SAC7D,MAAM,CAAC,oBAAoB,EAAE,sCAAsC,CAAC;SACpE,MAAM,CACL,gBAAgB,EAChB,yDAAyD,CAC1D;SACA,MAAM,CACL,sBAAsB,EACtB,+HAA+H,CAChI;SACA,MAAM,CACL,SAAS,EACT,+DAA+D,CAChE;SACA,MAAM,CACL,sBAAsB,EACtB,mEAAmE,CACpE;SACA,MAAM,CAAC,eAAe,EAAE,2BAA2B,EAAE,MAAM,CAAC;SAC5D,MAAM,CAAC,wBAAwB,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function createUpdateGlobalVariableCommand(): Command;
3
+ //# sourceMappingURL=update-global-variable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-global-variable.d.ts","sourceRoot":"","sources":["../../src/commands/update-global-variable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiDpC,wBAAgB,iCAAiC,IAAI,OAAO,CAW3D"}
@@ -0,0 +1,47 @@
1
+ import { Command } from "commander";
2
+ import { printErrorAndExit, printResultAndExit, runEditorAction } from "../utils/editor-action-client.js";
3
+ const VALID_TYPES = ["TEXT", "RICH_TEXT", "IMAGE", "COLOR", "NUMBER", "BOOLEAN", "BORDER", "SHADOW"];
4
+ function parseValue(raw) {
5
+ if (raw == null)
6
+ return undefined;
7
+ try {
8
+ return JSON.parse(raw);
9
+ }
10
+ catch {
11
+ return raw;
12
+ }
13
+ }
14
+ async function runUpdateGlobalVariable(options) {
15
+ if (!options.name) {
16
+ printErrorAndExit(new Error("--name is required (the variable's runtime key, from list-theme-globals)"));
17
+ }
18
+ if (options.type && !VALID_TYPES.includes(options.type)) {
19
+ printErrorAndExit(new Error(`--type must be one of: ${VALID_TYPES.join(", ")}`));
20
+ }
21
+ const port = options.port ? parseInt(options.port, 10) : undefined;
22
+ try {
23
+ const result = await runEditorAction("update-global-variable", {
24
+ name: options.name,
25
+ ...(options.displayName !== undefined ? { displayName: options.displayName } : {}),
26
+ ...(options.type !== undefined ? { type: options.type } : {}),
27
+ ...(options.value !== undefined ? { value: parseValue(options.value) } : {}),
28
+ }, port ? { port } : {});
29
+ printResultAndExit(result);
30
+ }
31
+ catch (e) {
32
+ printErrorAndExit(e);
33
+ }
34
+ }
35
+ export function createUpdateGlobalVariableCommand() {
36
+ const cmd = new Command("update-global-variable");
37
+ cmd
38
+ .description("Update a global variable's value, display name, and/or type in the connected editor")
39
+ .requiredOption("--name <key>", "The variable's runtime key (from `list-theme-globals`)")
40
+ .option("--display-name <name>", "New human-facing label")
41
+ .option("--type <type>", `New value type: ${VALID_TYPES.join(" | ")}`)
42
+ .option("--value <json>", "New value (JSON for objects/null; plain string also accepted)")
43
+ .option("--port <port>", "Dev server WebSocket port", "5201")
44
+ .action(runUpdateGlobalVariable);
45
+ return cmd;
46
+ }
47
+ //# sourceMappingURL=update-global-variable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-global-variable.js","sourceRoot":"","sources":["../../src/commands/update-global-variable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAE1G,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAUrG,SAAS,UAAU,CAAC,GAAY;IAC9B,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IAClC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,OAAoC;IACzE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,iBAAiB,CAAC,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC,CAAC;IAC3G,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxD,iBAAiB,CAAC,IAAI,KAAK,CAAC,0BAA0B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,wBAAwB,EACxB;YACE,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7E,EACD,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CACrB,CAAC;QACF,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iCAAiC;IAC/C,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAClD,GAAG;SACA,WAAW,CAAC,qFAAqF,CAAC;SAClG,cAAc,CAAC,cAAc,EAAE,wDAAwD,CAAC;SACxF,MAAM,CAAC,uBAAuB,EAAE,wBAAwB,CAAC;SACzD,MAAM,CAAC,eAAe,EAAE,mBAAmB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;SACrE,MAAM,CAAC,gBAAgB,EAAE,+DAA+D,CAAC;SACzF,MAAM,CAAC,eAAe,EAAE,2BAA2B,EAAE,MAAM,CAAC;SAC5D,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACnC,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function createUpdatePageSectionsCommand(): Command;
3
+ //# sourceMappingURL=update-page-sections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-page-sections.d.ts","sourceRoot":"","sources":["../../src/commands/update-page-sections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiDpC,wBAAgB,+BAA+B,IAAI,OAAO,CAczD"}
@@ -0,0 +1,39 @@
1
+ import { Command } from "commander";
2
+ import { printErrorAndExit, printResultAndExit, runEditorAction, } from "../utils/editor-action-client.js";
3
+ async function runUpdatePageSections(options) {
4
+ if (!options.pageId || typeof options.pageId !== "string") {
5
+ printErrorAndExit(new Error("--page-id is required (use `ikas-component list-pages`)"));
6
+ }
7
+ if (options.sections === undefined) {
8
+ printErrorAndExit(new Error('--sections is required: a JSON array, e.g. \'[{"elementId":"<id>","updates":[{"propName":"heading","value":{"value":"Hi"}}]}]\''));
9
+ }
10
+ let sections;
11
+ try {
12
+ sections = JSON.parse(options.sections);
13
+ }
14
+ catch {
15
+ printErrorAndExit(new Error(`--sections must be valid JSON. Received: ${options.sections}`));
16
+ }
17
+ if (!Array.isArray(sections) || sections.length === 0) {
18
+ printErrorAndExit(new Error('--sections must be a non-empty JSON array of { elementId, updates: [...] } objects.'));
19
+ }
20
+ const port = options.port ? parseInt(options.port, 10) : undefined;
21
+ try {
22
+ const result = await runEditorAction("update-page-sections", { pageId: options.pageId, sections }, { ...(port ? { port } : {}), timeoutMs: 30_000 });
23
+ printResultAndExit(result);
24
+ }
25
+ catch (e) {
26
+ printErrorAndExit(e);
27
+ }
28
+ }
29
+ export function createUpdatePageSectionsCommand() {
30
+ const cmd = new Command("update-page-sections");
31
+ cmd
32
+ .description("Fill MANY placed sections of a page in one call. --sections is a JSON array of { elementId, updates: [{ propId|propName, value }] }, each value using the same per-type shape as update-section-prop. All-or-nothing across the whole page: every value is resolved and validated before any is written. A COMMON (global) section among them — the theme's header/footer — is written to its one theme-wide record on the INDEX (Home) page, so it changes on every page (see the result's `common` block); a header/footer that is missing from the INDEX page rejects the whole call.")
33
+ .requiredOption("--page-id <id>", "Page id (from `ikas-component list-pages`)")
34
+ .requiredOption("--sections <json>", 'JSON array, e.g. \'[{"elementId":"<id>","updates":[{"propName":"heading","value":{"value":"Hi"}}]}]\'')
35
+ .option("--port <port>", "Dev server WebSocket port", "5201")
36
+ .action(runUpdatePageSections);
37
+ return cmd;
38
+ }
39
+ //# sourceMappingURL=update-page-sections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-page-sections.js","sourceRoot":"","sources":["../../src/commands/update-page-sections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAQ1C,KAAK,UAAU,qBAAqB,CAAC,OAAkC;IACrE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1D,iBAAiB,CAAC,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,iBAAiB,CACf,IAAI,KAAK,CACP,iIAAiI,CAClI,CACF,CAAC;IACJ,CAAC;IACD,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB,CAAC,IAAI,KAAK,CAAC,4CAA4C,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,iBAAiB,CACf,IAAI,KAAK,CAAC,qFAAqF,CAAC,CACjG,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,sBAAsB,EACtB,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,EACpC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CACjD,CAAC;QACF,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAChD,GAAG;SACA,WAAW,CACV,0jBAA0jB,CAC3jB;SACA,cAAc,CAAC,gBAAgB,EAAE,4CAA4C,CAAC;SAC9E,cAAc,CACb,mBAAmB,EACnB,uGAAuG,CACxG;SACA,MAAM,CAAC,eAAe,EAAE,2BAA2B,EAAE,MAAM,CAAC;SAC5D,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACjC,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"update-section-prop.d.ts","sourceRoot":"","sources":["../../src/commands/update-section-prop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4DpC,wBAAgB,8BAA8B,IAAI,OAAO,CAcxD"}
1
+ {"version":3,"file":"update-section-prop.d.ts","sourceRoot":"","sources":["../../src/commands/update-section-prop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6EpC,wBAAgB,8BAA8B,IAAI,OAAO,CA0BxD"}
@@ -10,15 +10,26 @@ async function runUpdateSectionProp(options) {
10
10
  if (!options.propId && !options.propName) {
11
11
  printErrorAndExit(new Error("Provide --prop-id or --prop-name (see `ikas-component list-page-sections`)"));
12
12
  }
13
- if (options.value === undefined) {
14
- printErrorAndExit(new Error("--value is required (JSON, e.g. '{\"value\":\"Hello\"}')"));
13
+ if (options.value === undefined && !options.bindGlobal) {
14
+ printErrorAndExit(new Error("Provide --value (JSON, e.g. '{\"value\":\"Hello\"}') or --bind-global <name> to bind a global variable"));
15
15
  }
16
16
  let value;
17
- try {
18
- value = JSON.parse(options.value);
17
+ if (options.value !== undefined) {
18
+ try {
19
+ value = JSON.parse(options.value);
20
+ }
21
+ catch {
22
+ printErrorAndExit(new Error(`--value must be valid JSON (e.g. '{"value":"Hello"}'). Received: ${options.value}`));
23
+ }
19
24
  }
20
- catch {
21
- printErrorAndExit(new Error(`--value must be valid JSON (e.g. '{"value":"Hello"}'). Received: ${options.value}`));
25
+ let listPath;
26
+ if (options.listPath !== undefined) {
27
+ try {
28
+ listPath = JSON.parse(options.listPath);
29
+ }
30
+ catch {
31
+ printErrorAndExit(new Error(`--list-path must be valid JSON. Received: ${options.listPath}`));
32
+ }
22
33
  }
23
34
  const port = options.port ? parseInt(options.port, 10) : undefined;
24
35
  try {
@@ -27,7 +38,9 @@ async function runUpdateSectionProp(options) {
27
38
  elementId: options.elementId,
28
39
  ...(options.propId ? { propId: options.propId } : {}),
29
40
  ...(options.propName ? { propName: options.propName } : {}),
30
- value,
41
+ ...(options.bindGlobal
42
+ ? { bindGlobal: options.bindGlobal, ...(listPath ? { listPath } : {}) }
43
+ : { value }),
31
44
  }, port ? { port } : {});
32
45
  printResultAndExit(result);
33
46
  }
@@ -38,12 +51,24 @@ async function runUpdateSectionProp(options) {
38
51
  export function createUpdateSectionPropCommand() {
39
52
  const cmd = new Command("update-section-prop");
40
53
  cmd
41
- .description("Change a single prop value of a section placed on a page. Target the placement by its elementId (from `ikas-component list-page-sections`) and the prop by --prop-id or --prop-name. The --value is the JSON-encoded prop value (e.g. '{\"value\":\"Hello\"}' for a TEXT prop).")
54
+ .description([
55
+ "Change a single prop value of a section placed on a page. Target the placement by its elementId (from `ikas-component list-page-sections`) and the prop by --prop-id or --prop-name.",
56
+ "--value is the JSON-encoded prop value. Shape depends on the prop type:",
57
+ " Scalars (TEXT/RICH_TEXT/BOOLEAN/NUMBER/COLOR/ENUM/DATE) are { \"value\": <scalar> } — e.g. '{\"value\":\"Hello\"}', '{\"value\":true}', '{\"value\":\"#FF0000\"}'.",
58
+ " Object props are NOT wrapped: IMAGE/VIDEO/SVG = '{\"id\":\"<asset-id>\",\"altText\":\"...\"}' (get id via `ikas-component upload-image`); PRODUCT = '{\"productId\":\"...\"}'.",
59
+ " LINK = a single link object needing id + linkType + label + subLinks: PAGE = '{\"id\":\"<unique>\",\"linkType\":\"PAGE\",\"label\":\"Home\",\"pageId\":\"<id>\",\"pageType\":\"INDEX\",\"subLinks\":[]}'; EXTERNAL = '{\"id\":\"<unique>\",\"linkType\":\"EXTERNAL\",\"label\":\"Docs\",\"externalLink\":\"https://...\",\"subLinks\":[]}'. (pageId/pageType from `list-pages`.) LIST_OF_LINK = '{\"links\":[<link>,...]}'.",
60
+ " COMPONENT_LIST = '{\"components\":[{\"id\":\"<unique>\",\"codeComponentId\":\"<child-id>\",\"propValues\":{\"<childProp>\":<value>}}]}' (single COMPONENT = one such entry). Each entry needs a unique id and codeComponentId (or componentId); child propValues use the same per-type shapes recursively.",
61
+ " The value REPLACES the whole prop — to edit a COMPONENT_LIST, read the current value from `list-page-sections` and resend the entire array. Wrong shapes are rejected with an error, not stored silently.",
62
+ "COMMON (global) sections — the theme's header/footer — share ONE set of prop values across every page, stored on the INDEX (Home) page's placement: the write lands there whatever --page-id you pass and changes that section on ALL pages (the result's `common` block says so, and the echoed value is read back from that canonical placement). Read the current values first (`get-section-values`) and change only what you mean to; if the INDEX page has no placement of the section, add it there first — otherwise the write is rejected.",
63
+ "Instead of --value, use --bind-global <name> to bind the prop to a project GLOBAL variable (Theme Setting) as a live dynamic value — pass the global's `name` (variableName) from `ikas-component list-theme-globals`. Add --list-path to bind a prop of a COMPONENT_LIST child (then --prop-id is the child's prop id).",
64
+ ].join("\n"))
42
65
  .requiredOption("--page-id <id>", "Page id (from `ikas-component list-pages`)")
43
66
  .requiredOption("--element-id <id>", "Placed section elementId (from `ikas-component list-page-sections`)")
44
67
  .option("--prop-id <id>", "Blueprint prop id to update")
45
68
  .option("--prop-name <name>", "Blueprint prop name to update (alternative to --prop-id)")
46
- .requiredOption("--value <json>", 'JSON-encoded prop value, e.g. \'{"value":"Hello"}\'')
69
+ .option("--value <json>", 'JSON-encoded prop value, e.g. \'{"value":"Hello"}\' (omit when using --bind-global)')
70
+ .option("--bind-global <name>", "Bind the prop to a global variable (its name/variableName from list-theme-globals) instead of a static value")
71
+ .option("--list-path <json>", 'JSON [{ "propId", "index" }, ...] targeting a COMPONENT_LIST child when using --bind-global')
47
72
  .option("--port <port>", "Dev server WebSocket port", "5201")
48
73
  .action(runUpdateSectionProp);
49
74
  return cmd;
@@ -1 +1 @@
1
- {"version":3,"file":"update-section-prop.js","sourceRoot":"","sources":["../../src/commands/update-section-prop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAW1C,KAAK,UAAU,oBAAoB,CAAC,OAAiC;IACnE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1D,iBAAiB,CAAC,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC,CAAC;IAC1G,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChE,iBAAiB,CACf,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAChG,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzC,iBAAiB,CAAC,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC,CAAC;IAC7G,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,iBAAiB,CAAC,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB,CACf,IAAI,KAAK,CAAC,oEAAoE,OAAO,CAAC,KAAK,EAAE,CAAC,CAC/F,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,qBAAqB,EACrB;YACE,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,KAAK;SACN,EACD,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CACrB,CAAC;QACF,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC/C,GAAG;SACA,WAAW,CACV,iRAAiR,CAClR;SACA,cAAc,CAAC,gBAAgB,EAAE,4CAA4C,CAAC;SAC9E,cAAc,CAAC,mBAAmB,EAAE,qEAAqE,CAAC;SAC1G,MAAM,CAAC,gBAAgB,EAAE,6BAA6B,CAAC;SACvD,MAAM,CAAC,oBAAoB,EAAE,0DAA0D,CAAC;SACxF,cAAc,CAAC,gBAAgB,EAAE,qDAAqD,CAAC;SACvF,MAAM,CAAC,eAAe,EAAE,2BAA2B,EAAE,MAAM,CAAC;SAC5D,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"update-section-prop.js","sourceRoot":"","sources":["../../src/commands/update-section-prop.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload-image.d.ts","sourceRoot":"","sources":["../../src/commands/upload-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4FpC,wBAAgB,wBAAwB,IAAI,OAAO,CAYlD"}
1
+ {"version":3,"file":"upload-image.d.ts","sourceRoot":"","sources":["../../src/commands/upload-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyCpC,wBAAgB,wBAAwB,IAAI,OAAO,CAYlD"}
@@ -1,54 +1,13 @@
1
1
  import { Command } from "commander";
2
- import { readFile } from "node:fs/promises";
3
- import { basename, extname } from "node:path";
4
2
  import { printErrorAndExit, printResultAndExit, runEditorAction, } from "../utils/editor-action-client.js";
5
- const MIME_BY_EXT = {
6
- ".png": "image/png",
7
- ".jpg": "image/jpeg",
8
- ".jpeg": "image/jpeg",
9
- ".webp": "image/webp",
10
- ".gif": "image/gif",
11
- };
12
- const VALID_IMAGE_TYPES = Object.values(MIME_BY_EXT);
13
- const MAX_SIZE_BYTES = 10 * 1024 * 1024; // 10MB, mirrors the editor's IMAGE_UPLOAD_LIMIT_SIZE
14
- async function loadImage(options) {
15
- if (options.file && options.url) {
16
- throw new Error("Provide only one of --file or --url, not both");
17
- }
18
- if (options.file) {
19
- const buffer = await readFile(options.file);
20
- const ext = extname(options.file).toLowerCase();
21
- const mimeType = MIME_BY_EXT[ext];
22
- if (!mimeType) {
23
- throw new Error(`Unsupported image extension "${ext || "(none)"}". Supported: ${Object.keys(MIME_BY_EXT).join(", ")}`);
24
- }
25
- if (buffer.byteLength > MAX_SIZE_BYTES) {
26
- throw new Error(`Image is ${(buffer.byteLength / 1024 / 1024).toFixed(1)}MB; the limit is 10MB`);
27
- }
28
- return { base64: buffer.toString("base64"), mimeType, fileName: basename(options.file) };
29
- }
30
- if (options.url) {
31
- const res = await fetch(options.url);
32
- if (!res.ok) {
33
- throw new Error(`Failed to fetch image: ${res.status} ${res.statusText}`);
34
- }
35
- const mimeType = (res.headers.get("content-type") || "").split(";")[0].trim();
36
- if (!VALID_IMAGE_TYPES.includes(mimeType)) {
37
- throw new Error(`URL returned content-type "${mimeType || "(none)"}". Supported: ${VALID_IMAGE_TYPES.join(", ")}`);
38
- }
39
- const buffer = Buffer.from(await res.arrayBuffer());
40
- if (buffer.byteLength > MAX_SIZE_BYTES) {
41
- throw new Error(`Image is ${(buffer.byteLength / 1024 / 1024).toFixed(1)}MB; the limit is 10MB`);
42
- }
43
- const urlName = basename(new URL(options.url).pathname) || "image";
44
- return { base64: buffer.toString("base64"), mimeType, fileName: urlName };
45
- }
46
- throw new Error("Provide --file <path> or --url <url>");
47
- }
3
+ import { loadImageSource } from "../utils/load-image.js";
48
4
  async function runUploadImage(options) {
49
5
  const port = options.port ? parseInt(options.port, 10) : undefined;
6
+ if (!options.file && !options.url) {
7
+ printErrorAndExit(new Error("Provide --file <path> or --url <url>"));
8
+ }
50
9
  try {
51
- const { base64, mimeType, fileName } = await loadImage(options);
10
+ const { base64, mimeType, fileName } = await loadImageSource({ file: options.file, url: options.url });
52
11
  const result = await runEditorAction("upload-image", {
53
12
  base64,
54
13
  mimeType,
@@ -1 +1 @@
1
- {"version":3,"file":"upload-image.js","sourceRoot":"","sources":["../../src/commands/upload-image.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload-image.js","sourceRoot":"","sources":["../../src/commands/upload-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AASzD,KAAK,UAAU,cAAc,CAAC,OAA2B;IACvD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,iBAAiB,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACvG,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,cAAc,EACd;YACE,MAAM;YACN,QAAQ;YACR,QAAQ;YACR,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,OAAO,EAAE,KAAK;SACf;QACD,2EAA2E;QAC3E,yDAAyD;QACzD,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CACjD,CAAC;QACF,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IACxC,GAAG;SACA,WAAW,CACV,2UAA2U,CAC5U;SACA,MAAM,CAAC,eAAe,EAAE,wDAAwD,CAAC;SACjF,MAAM,CAAC,aAAa,EAAE,+BAA+B,CAAC;SACtD,MAAM,CAAC,cAAc,EAAE,wBAAwB,CAAC;SAChD,MAAM,CAAC,eAAe,EAAE,2BAA2B,EAAE,MAAM,CAAC;SAC5D,MAAM,CAAC,cAAc,CAAC,CAAC;IAC1B,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function createUploadImagesCommand(): Command;
3
+ //# sourceMappingURL=upload-images.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-images.d.ts","sourceRoot":"","sources":["../../src/commands/upload-images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8DpC,wBAAgB,yBAAyB,IAAI,OAAO,CAanD"}
@@ -0,0 +1,48 @@
1
+ import { Command } from "commander";
2
+ import { printErrorAndExit, printResultAndExit, runEditorAction, } from "../utils/editor-action-client.js";
3
+ import { loadImageSource } from "../utils/load-image.js";
4
+ async function runUploadImages(options) {
5
+ if (options.manifest === undefined) {
6
+ printErrorAndExit(new Error('--manifest is required: a JSON array, e.g. \'[{"file":"/a.png","alt":"A"},{"url":"https://...","alt":"B"}]\''));
7
+ }
8
+ let manifest;
9
+ try {
10
+ manifest = JSON.parse(options.manifest);
11
+ }
12
+ catch {
13
+ printErrorAndExit(new Error(`--manifest must be valid JSON. Received: ${options.manifest}`));
14
+ return;
15
+ }
16
+ if (!Array.isArray(manifest) || manifest.length === 0) {
17
+ printErrorAndExit(new Error("--manifest must be a non-empty JSON array of { file|url, alt? } objects."));
18
+ }
19
+ const port = options.port ? parseInt(options.port, 10) : undefined;
20
+ try {
21
+ // Read/encode all sources in parallel, then send one batch editor-action.
22
+ const images = await Promise.all(manifest.map(async (entry) => {
23
+ const { base64, mimeType, fileName } = await loadImageSource({ file: entry.file, url: entry.url });
24
+ return {
25
+ base64,
26
+ mimeType,
27
+ fileName,
28
+ ...(entry.alt ? { altText: entry.alt } : {}),
29
+ isVideo: false,
30
+ };
31
+ }));
32
+ const result = await runEditorAction("upload-images", { images }, { ...(port ? { port } : {}), timeoutMs: 60_000 });
33
+ printResultAndExit(result);
34
+ }
35
+ catch (e) {
36
+ printErrorAndExit(e);
37
+ }
38
+ }
39
+ export function createUploadImagesCommand() {
40
+ const cmd = new Command("upload-images");
41
+ cmd
42
+ .description("Upload MANY images in one call (batch upload-image) and return their ids in order. --manifest is a JSON array of { file|url, alt? }. The host uploads them all in a single round-trip. Requires the editor embedded in the ikas admin panel.")
43
+ .requiredOption("--manifest <json>", 'JSON array, e.g. \'[{"file":"/a.png","alt":"A"},{"url":"https://x/b.jpg"}]\'')
44
+ .option("--port <port>", "Dev server WebSocket port", "5201")
45
+ .action(runUploadImages);
46
+ return cmd;
47
+ }
48
+ //# sourceMappingURL=upload-images.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-images.js","sourceRoot":"","sources":["../../src/commands/upload-images.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAazD,KAAK,UAAU,eAAe,CAAC,OAA4B;IACzD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,iBAAiB,CACf,IAAI,KAAK,CAAC,8GAA8G,CAAC,CAC1H,CAAC;IACJ,CAAC;IACD,IAAI,QAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB,CAAC,IAAI,KAAK,CAAC,4CAA4C,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC7F,OAAO;IACT,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,iBAAiB,CAAC,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,IAAI,CAAC;QACH,0EAA0E;QAC1E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACzB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACnG,OAAO;gBACL,MAAM;gBACN,QAAQ;gBACR,QAAQ;gBACR,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,eAAe,EACf,EAAE,MAAM,EAAE,EACV,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CACjD,CAAC;QACF,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IACzC,GAAG;SACA,WAAW,CACV,8OAA8O,CAC/O;SACA,cAAc,CACb,mBAAmB,EACnB,8EAA8E,CAC/E;SACA,MAAM,CAAC,eAAe,EAAE,2BAA2B,EAAE,MAAM,CAAC;SAC5D,MAAM,CAAC,eAAe,CAAC,CAAC;IAC3B,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqCpC,wBAAgB,GAAG,qBAElB;AAED,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyGpC,wBAAgB,GAAG,qBAElB;AAED,cAAc,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,17 +1,38 @@
1
1
  import { Command } from "commander";
2
- import { createAddCommand } from "./commands/add.js";
2
+ import { createAddSectionsToPageCommand } from "./commands/add-sections-to-page.js";
3
3
  import { createAddToPageCommand } from "./commands/add-to-page.js";
4
+ import { createAddCommand } from "./commands/add.js";
4
5
  import { createBuildCommand } from "./commands/build.js";
5
6
  import { createCheckCommand } from "./commands/check.js";
6
7
  import { createConfigCommand } from "./commands/config.js";
8
+ import { createCreateBreakpointCommand, createCreateColorCommand, createCreateColorSchemeCommand, createCreateKeyframeCommand, createCreateTextStyleCommand, createRenameColorSchemeSlotCommand, createUpdateBreakpointCommand, createUpdateColorCommand, createUpdateColorSchemeCommand, createUpdateKeyframeCommand, createUpdateTextStyleCommand, } from "./commands/create-design-tokens.js";
9
+ import { createCreateGlobalVariableCommand } from "./commands/create-global-variable.js";
10
+ import { createCreatePageCommand } from "./commands/create-page.js";
11
+ import { createDeletePageCommand } from "./commands/delete-page.js";
12
+ import { createDeleteDesignTokenCommand, createDeleteGlobalVariableCommand, } from "./commands/delete-theme-globals.js";
7
13
  import { createDevCommand } from "./commands/dev.js";
14
+ import { createGetComponentPropsCommand } from "./commands/get-component-props.js";
15
+ import { createEnableBuiltinPagesCommand } from "./commands/enable-builtin-pages.js";
16
+ import { createGetPageByTypeCommand } from "./commands/get-page-by-type.js";
17
+ import { createListBuiltinPagesCommand } from "./commands/list-builtin-pages.js";
18
+ import { createUpdateBuiltinPagePropCommand } from "./commands/update-builtin-page-prop.js";
19
+ import { createGetSectionValuesCommand } from "./commands/get-section-values.js";
8
20
  import { createImportCommand } from "./commands/import.js";
21
+ import { createListEntitiesCommand } from "./commands/list-entities.js";
9
22
  import { createListImportedCommand } from "./commands/list-imported.js";
10
23
  import { createListPageSectionsCommand } from "./commands/list-page-sections.js";
24
+ import { createMovePageSectionCommand } from "./commands/move-page-section.js";
25
+ import { createRemovePageSectionCommand } from "./commands/remove-page-section.js";
11
26
  import { createListPagesCommand } from "./commands/list-pages.js";
27
+ import { createListThemeGlobalsCommand } from "./commands/list-theme-globals.js";
28
+ import { createPublishThemeCommand } from "./commands/publish-theme.js";
12
29
  import { createPublishCommand } from "./commands/publish.js";
30
+ import { createSearchProductsCommand } from "./commands/search-products.js";
31
+ import { createUpdateGlobalVariableCommand } from "./commands/update-global-variable.js";
32
+ import { createUpdatePageSectionsCommand } from "./commands/update-page-sections.js";
13
33
  import { createUpdateSectionPropCommand } from "./commands/update-section-prop.js";
14
34
  import { createUploadImageCommand } from "./commands/upload-image.js";
35
+ import { createUploadImagesCommand } from "./commands/upload-images.js";
15
36
  const program = new Command();
16
37
  program
17
38
  .name("ikas-component")
@@ -28,9 +49,41 @@ program.addCommand(createListPagesCommand());
28
49
  program.addCommand(createListImportedCommand());
29
50
  program.addCommand(createImportCommand());
30
51
  program.addCommand(createAddToPageCommand());
52
+ program.addCommand(createListThemeGlobalsCommand());
53
+ program.addCommand(createCreateGlobalVariableCommand());
54
+ program.addCommand(createCreateColorCommand());
55
+ program.addCommand(createUpdateColorCommand());
56
+ program.addCommand(createCreateTextStyleCommand());
57
+ program.addCommand(createUpdateTextStyleCommand());
58
+ program.addCommand(createCreateBreakpointCommand());
59
+ program.addCommand(createUpdateBreakpointCommand());
60
+ program.addCommand(createCreateKeyframeCommand());
61
+ program.addCommand(createUpdateKeyframeCommand());
62
+ program.addCommand(createCreateColorSchemeCommand());
63
+ program.addCommand(createUpdateColorSchemeCommand());
64
+ program.addCommand(createRenameColorSchemeSlotCommand());
65
+ program.addCommand(createUpdateGlobalVariableCommand());
66
+ program.addCommand(createDeleteGlobalVariableCommand());
67
+ program.addCommand(createDeleteDesignTokenCommand());
68
+ program.addCommand(createAddSectionsToPageCommand());
31
69
  program.addCommand(createListPageSectionsCommand());
70
+ program.addCommand(createMovePageSectionCommand());
71
+ program.addCommand(createRemovePageSectionCommand());
72
+ program.addCommand(createGetSectionValuesCommand());
73
+ program.addCommand(createGetComponentPropsCommand());
74
+ program.addCommand(createGetPageByTypeCommand());
75
+ program.addCommand(createListBuiltinPagesCommand());
76
+ program.addCommand(createUpdateBuiltinPagePropCommand());
77
+ program.addCommand(createEnableBuiltinPagesCommand());
78
+ program.addCommand(createCreatePageCommand());
79
+ program.addCommand(createDeletePageCommand());
80
+ program.addCommand(createPublishThemeCommand());
32
81
  program.addCommand(createUpdateSectionPropCommand());
82
+ program.addCommand(createUpdatePageSectionsCommand());
33
83
  program.addCommand(createUploadImageCommand());
84
+ program.addCommand(createUploadImagesCommand());
85
+ program.addCommand(createSearchProductsCommand());
86
+ program.addCommand(createListEntitiesCommand());
34
87
  export function run() {
35
88
  return program.parseAsync(process.argv);
36
89
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,gBAAgB,CAAC;KACtB,WAAW,CAAC,yCAAyC,CAAC;KACtD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAC7C,OAAO,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;AAChD,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAC7C,OAAO,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAC;AACpD,OAAO,CAAC,UAAU,CAAC,8BAA8B,EAAE,CAAC,CAAC;AACrD,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;AAE/C,MAAM,UAAU,GAAG;IACjB,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -60,6 +60,13 @@ export interface ComponentProp {
60
60
  typeId?: string;
61
61
  /** For ENUM props — the enum type ID from TypeStore (e.g. "@ikas/bp-storefront-models-FlexDirectionStyleType") */
62
62
  enumTypeId?: string;
63
+ /** For NUMBER_RANGE props — slider config (min/max/interval/unit) */
64
+ numberRangeData?: {
65
+ min?: number;
66
+ max?: number;
67
+ interval?: number;
68
+ unit?: string;
69
+ };
63
70
  /** For COMPONENT/COMPONENT_LIST props — map of variable keys to { id, typeId } */
64
71
  privateVarMap?: Record<string, {
65
72
  id: string;
@@ -114,4 +121,14 @@ export interface SharedModuleData {
114
121
  canvasClientJs: string;
115
122
  compiledCss: string;
116
123
  }
124
+ /**
125
+ * Theme global-variable metadata carried over the dev-server `sync-types` protocol
126
+ * (name / displayName / type only — no value). Drives the generated `ThemeSettingName`
127
+ * union in the author's `src/global-types.ts`.
128
+ */
129
+ export type ThemeSettingMeta = {
130
+ name: string;
131
+ displayName: string;
132
+ type: string;
133
+ };
117
134
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,WAAW,GACX,QAAQ,GACR,cAAc,GACd,SAAS,GACT,OAAO,GACP,YAAY,GACZ,OAAO,GACP,KAAK,GACL,UAAU,GACV,MAAM,GACN,MAAM,GACN,cAAc,GACd,OAAO,GACP,MAAM,GACN,SAAS,GACT,cAAc,GACd,mBAAmB,GACnB,wBAAwB,GACxB,UAAU,GACV,eAAe,GACf,OAAO,GACP,YAAY,GACZ,MAAM,GACN,WAAW,GACX,eAAe,GACf,oBAAoB,GACpB,MAAM,GACN,WAAW,GACX,gBAAgB,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,yFAAyF;IACzF,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,wFAAwF;IACxF,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uGAAuG;IACvG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kHAAkH;IAClH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,eAAe,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnF,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,qFAAqF;IACrF,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC"}
@@ -4,7 +4,10 @@ import type { CompilationResult, MultiCompilationResult } from "../types.js";
4
4
  */
5
5
  export declare function compileComponent(entryPath: string, stylesPath: string, componentId: string): Promise<CompilationResult>;
6
6
  /**
7
- * Scope CSS selectors with a component-specific class prefix
7
+ * Scope CSS selectors with a component-specific class prefix, then namespace any
8
+ * document-global CSS identifiers (`@keyframes`, `@font-face` font-family,
9
+ * `@counter-style`) DEFINED in this component so two components — or the host theme —
10
+ * declaring the same name can't collide in the page's global namespace.
8
11
  */
9
12
  export declare function scopeCSS(css: string, componentId: string): string;
10
13
  /**
@@ -12,6 +15,18 @@ export declare function scopeCSS(css: string, componentId: string): string;
12
15
  * Each selector becomes: .cc_id1 .sel, .cc_id2 .sel { ... }
13
16
  */
14
17
  export declare function scopeCSSMulti(css: string, componentIds: string[]): string;
18
+ export interface CompileAllOptions {
19
+ /**
20
+ * Bundle the `@ikas/bp-storefront*` packages into the artifact instead of leaving them for the
21
+ * host to resolve. See `vendorStorefrontPlugin` for why, and for what it costs.
22
+ *
23
+ * Off by default: a theme's own code components SHOULD bind to the storefront the theme ships,
24
+ * so a merchant gets one `customerStore` and one router. Turn it on only for artifacts that are
25
+ * published independently of any theme — today that means the built-in account pages, which are
26
+ * delivered from the CDN and cannot assume anything about the theme they land in.
27
+ */
28
+ vendorStorefront?: boolean;
29
+ }
15
30
  /**
16
31
  * Compile all components together with esbuild code splitting.
17
32
  * Shared code is automatically extracted into chunk files.
@@ -21,5 +36,5 @@ export declare function compileAllComponents(components: {
21
36
  id: string;
22
37
  entryPath: string;
23
38
  stylesPath: string;
24
- }[], globalStylesPath?: string): Promise<MultiCompilationResult>;
39
+ }[], globalStylesPath?: string, options?: CompileAllOptions): Promise<MultiCompilationResult>;
25
40
  //# sourceMappingURL=compile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/utils/compile.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAuB,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAmClG;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC,CAoD5B;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAGzE;AAyFD;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAAE,EACnE,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,sBAAsB,CAAC,CAwTjC"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/utils/compile.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAuB,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAmElG;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC,CA8E5B;AAiBD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAGzE;AA0hBD,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAsCD;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAAE,EACnE,gBAAgB,CAAC,EAAE,MAAM,EACzB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,sBAAsB,CAAC,CAwXjC"}