@ikas/component-cli 1.4.0-beta.2 → 1.4.0-beta.200

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 (191) 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-to-page.d.ts +3 -0
  10. package/dist/commands/add-to-page.d.ts.map +1 -0
  11. package/dist/commands/add-to-page.js +41 -0
  12. package/dist/commands/add-to-page.js.map +1 -0
  13. package/dist/commands/add.d.ts.map +1 -1
  14. package/dist/commands/add.js +11 -2
  15. package/dist/commands/add.js.map +1 -1
  16. package/dist/commands/build.d.ts.map +1 -1
  17. package/dist/commands/build.js +5 -165
  18. package/dist/commands/build.js.map +1 -1
  19. package/dist/commands/config.d.ts +35 -0
  20. package/dist/commands/config.d.ts.map +1 -1
  21. package/dist/commands/config.js +1235 -228
  22. package/dist/commands/config.js.map +1 -1
  23. package/dist/commands/create-design-tokens.d.ts +24 -0
  24. package/dist/commands/create-design-tokens.d.ts.map +1 -0
  25. package/dist/commands/create-design-tokens.js +327 -0
  26. package/dist/commands/create-design-tokens.js.map +1 -0
  27. package/dist/commands/create-global-variable.d.ts +3 -0
  28. package/dist/commands/create-global-variable.d.ts.map +1 -0
  29. package/dist/commands/create-global-variable.js +73 -0
  30. package/dist/commands/create-global-variable.js.map +1 -0
  31. package/dist/commands/create-page.d.ts +3 -0
  32. package/dist/commands/create-page.d.ts.map +1 -0
  33. package/dist/commands/create-page.js +31 -0
  34. package/dist/commands/create-page.js.map +1 -0
  35. package/dist/commands/delete-page.d.ts +3 -0
  36. package/dist/commands/delete-page.d.ts.map +1 -0
  37. package/dist/commands/delete-page.js +28 -0
  38. package/dist/commands/delete-page.js.map +1 -0
  39. package/dist/commands/delete-theme-globals.d.ts +4 -0
  40. package/dist/commands/delete-theme-globals.d.ts.map +1 -0
  41. package/dist/commands/delete-theme-globals.js +48 -0
  42. package/dist/commands/delete-theme-globals.js.map +1 -0
  43. package/dist/commands/dev.d.ts.map +1 -1
  44. package/dist/commands/dev.js +398 -53
  45. package/dist/commands/dev.js.map +1 -1
  46. package/dist/commands/enable-builtin-pages.d.ts +3 -0
  47. package/dist/commands/enable-builtin-pages.d.ts.map +1 -0
  48. package/dist/commands/enable-builtin-pages.js +27 -0
  49. package/dist/commands/enable-builtin-pages.js.map +1 -0
  50. package/dist/commands/get-component-props.d.ts +3 -0
  51. package/dist/commands/get-component-props.d.ts.map +1 -0
  52. package/dist/commands/get-component-props.js +32 -0
  53. package/dist/commands/get-component-props.js.map +1 -0
  54. package/dist/commands/get-page-by-type.d.ts +3 -0
  55. package/dist/commands/get-page-by-type.d.ts.map +1 -0
  56. package/dist/commands/get-page-by-type.js +25 -0
  57. package/dist/commands/get-page-by-type.js.map +1 -0
  58. package/dist/commands/get-section-values.d.ts +3 -0
  59. package/dist/commands/get-section-values.d.ts.map +1 -0
  60. package/dist/commands/get-section-values.js +39 -0
  61. package/dist/commands/get-section-values.js.map +1 -0
  62. package/dist/commands/import.d.ts +3 -0
  63. package/dist/commands/import.d.ts.map +1 -0
  64. package/dist/commands/import.js +25 -0
  65. package/dist/commands/import.js.map +1 -0
  66. package/dist/commands/list-builtin-pages.d.ts +3 -0
  67. package/dist/commands/list-builtin-pages.d.ts.map +1 -0
  68. package/dist/commands/list-builtin-pages.js +28 -0
  69. package/dist/commands/list-builtin-pages.js.map +1 -0
  70. package/dist/commands/list-entities.d.ts +3 -0
  71. package/dist/commands/list-entities.d.ts.map +1 -0
  72. package/dist/commands/list-entities.js +32 -0
  73. package/dist/commands/list-entities.js.map +1 -0
  74. package/dist/commands/list-imported.d.ts +3 -0
  75. package/dist/commands/list-imported.d.ts.map +1 -0
  76. package/dist/commands/list-imported.js +25 -0
  77. package/dist/commands/list-imported.js.map +1 -0
  78. package/dist/commands/list-page-sections.d.ts +3 -0
  79. package/dist/commands/list-page-sections.d.ts.map +1 -0
  80. package/dist/commands/list-page-sections.js +31 -0
  81. package/dist/commands/list-page-sections.js.map +1 -0
  82. package/dist/commands/list-pages.d.ts +3 -0
  83. package/dist/commands/list-pages.d.ts.map +1 -0
  84. package/dist/commands/list-pages.js +21 -0
  85. package/dist/commands/list-pages.js.map +1 -0
  86. package/dist/commands/list-theme-globals.d.ts +3 -0
  87. package/dist/commands/list-theme-globals.d.ts.map +1 -0
  88. package/dist/commands/list-theme-globals.js +22 -0
  89. package/dist/commands/list-theme-globals.js.map +1 -0
  90. package/dist/commands/move-page-section.d.ts +3 -0
  91. package/dist/commands/move-page-section.d.ts.map +1 -0
  92. package/dist/commands/move-page-section.js +62 -0
  93. package/dist/commands/move-page-section.js.map +1 -0
  94. package/dist/commands/publish-theme.d.ts +3 -0
  95. package/dist/commands/publish-theme.d.ts.map +1 -0
  96. package/dist/commands/publish-theme.js +29 -0
  97. package/dist/commands/publish-theme.js.map +1 -0
  98. package/dist/commands/publish.d.ts.map +1 -1
  99. package/dist/commands/publish.js +54 -3
  100. package/dist/commands/publish.js.map +1 -1
  101. package/dist/commands/remove-page-section.d.ts +3 -0
  102. package/dist/commands/remove-page-section.d.ts.map +1 -0
  103. package/dist/commands/remove-page-section.js +40 -0
  104. package/dist/commands/remove-page-section.js.map +1 -0
  105. package/dist/commands/search-products.d.ts +3 -0
  106. package/dist/commands/search-products.d.ts.map +1 -0
  107. package/dist/commands/search-products.js +40 -0
  108. package/dist/commands/search-products.js.map +1 -0
  109. package/dist/commands/update-builtin-page-prop.d.ts +3 -0
  110. package/dist/commands/update-builtin-page-prop.d.ts.map +1 -0
  111. package/dist/commands/update-builtin-page-prop.js +49 -0
  112. package/dist/commands/update-builtin-page-prop.js.map +1 -0
  113. package/dist/commands/update-global-variable.d.ts +3 -0
  114. package/dist/commands/update-global-variable.d.ts.map +1 -0
  115. package/dist/commands/update-global-variable.js +70 -0
  116. package/dist/commands/update-global-variable.js.map +1 -0
  117. package/dist/commands/update-page-sections.d.ts +3 -0
  118. package/dist/commands/update-page-sections.d.ts.map +1 -0
  119. package/dist/commands/update-page-sections.js +39 -0
  120. package/dist/commands/update-page-sections.js.map +1 -0
  121. package/dist/commands/update-section-prop.d.ts +3 -0
  122. package/dist/commands/update-section-prop.d.ts.map +1 -0
  123. package/dist/commands/update-section-prop.js +76 -0
  124. package/dist/commands/update-section-prop.js.map +1 -0
  125. package/dist/commands/upload-image.d.ts +3 -0
  126. package/dist/commands/upload-image.d.ts.map +1 -0
  127. package/dist/commands/upload-image.js +38 -0
  128. package/dist/commands/upload-image.js.map +1 -0
  129. package/dist/commands/upload-images.d.ts +3 -0
  130. package/dist/commands/upload-images.d.ts.map +1 -0
  131. package/dist/commands/upload-images.js +48 -0
  132. package/dist/commands/upload-images.js.map +1 -0
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js +67 -0
  135. package/dist/index.js.map +1 -1
  136. package/dist/types.d.ts +52 -1
  137. package/dist/types.d.ts.map +1 -1
  138. package/dist/utils/compile.d.ts +17 -2
  139. package/dist/utils/compile.d.ts.map +1 -1
  140. package/dist/utils/compile.js +750 -117
  141. package/dist/utils/compile.js.map +1 -1
  142. package/dist/utils/component-helpers.d.ts +148 -3
  143. package/dist/utils/component-helpers.d.ts.map +1 -1
  144. package/dist/utils/component-helpers.js +376 -29
  145. package/dist/utils/component-helpers.js.map +1 -1
  146. package/dist/utils/css-import-resolver.d.ts +4 -1
  147. package/dist/utils/css-import-resolver.d.ts.map +1 -1
  148. package/dist/utils/css-import-resolver.js +9 -1
  149. package/dist/utils/css-import-resolver.js.map +1 -1
  150. package/dist/utils/editor-action-client.d.ts +29 -0
  151. package/dist/utils/editor-action-client.d.ts.map +1 -0
  152. package/dist/utils/editor-action-client.js +137 -0
  153. package/dist/utils/editor-action-client.js.map +1 -0
  154. package/dist/utils/esm-transform.d.ts +30 -0
  155. package/dist/utils/esm-transform.d.ts.map +1 -1
  156. package/dist/utils/esm-transform.js +169 -2
  157. package/dist/utils/esm-transform.js.map +1 -1
  158. package/dist/utils/find-component-for-file.d.ts +12 -0
  159. package/dist/utils/find-component-for-file.d.ts.map +1 -0
  160. package/dist/utils/find-component-for-file.js +24 -0
  161. package/dist/utils/find-component-for-file.js.map +1 -0
  162. package/dist/utils/forbid-deep-imports.d.ts +3 -0
  163. package/dist/utils/forbid-deep-imports.d.ts.map +1 -0
  164. package/dist/utils/forbid-deep-imports.js +54 -0
  165. package/dist/utils/forbid-deep-imports.js.map +1 -0
  166. package/dist/utils/forbid-external-packages.d.ts +26 -0
  167. package/dist/utils/forbid-external-packages.d.ts.map +1 -0
  168. package/dist/utils/forbid-external-packages.js +99 -0
  169. package/dist/utils/forbid-external-packages.js.map +1 -0
  170. package/dist/utils/load-image.d.ts +16 -0
  171. package/dist/utils/load-image.d.ts.map +1 -0
  172. package/dist/utils/load-image.js +50 -0
  173. package/dist/utils/load-image.js.map +1 -0
  174. package/dist/utils/vendor-storefront.d.ts +13 -0
  175. package/dist/utils/vendor-storefront.d.ts.map +1 -0
  176. package/dist/utils/vendor-storefront.js +91 -0
  177. package/dist/utils/vendor-storefront.js.map +1 -0
  178. package/dist/utils/websocket-server.d.ts +134 -3
  179. package/dist/utils/websocket-server.d.ts.map +1 -1
  180. package/dist/utils/websocket-server.js +279 -24
  181. package/dist/utils/websocket-server.js.map +1 -1
  182. package/package.json +17 -2
  183. package/templates/add/section.css +11 -0
  184. package/dist/commands/create.d.ts +0 -9
  185. package/dist/commands/create.d.ts.map +0 -1
  186. package/dist/commands/create.js +0 -9
  187. package/dist/commands/create.js.map +0 -1
  188. package/dist/commands/proxy.d.ts +0 -39
  189. package/dist/commands/proxy.d.ts.map +0 -1
  190. package/dist/commands/proxy.js +0 -212
  191. package/dist/commands/proxy.js.map +0 -1
@@ -7,8 +7,21 @@ import chalk from "chalk";
7
7
  export class DevServerWebSocket {
8
8
  wss = null;
9
9
  httpServer = null;
10
- clients = new Set();
11
10
  port;
11
+ // Tracks in-flight editor-action requests: requestId → { sender, target }.
12
+ // `sender` routes the `editor-action-result` back; `target` lets us fail the
13
+ // request fast when the editor that was asked to run it goes away.
14
+ // `targetGone` marks a legacy (unpinned) target whose socket dropped: its
15
+ // reply may still arrive on a reconnected socket, so the entry is kept and
16
+ // the late reply is relayed — the pre-routing behaviour old editors rely on.
17
+ pendingEditorActions = new Map();
18
+ // The connected sockets, and what each one is. Also the client registry:
19
+ // `broadcast`/`clientCount` iterate its keys.
20
+ clientInfo = new Map();
21
+ // requestId → tabId of the editor an action was first forwarded to. A retry
22
+ // of that requestId must go to the SAME tab (whose dedup cache makes the
23
+ // retry exactly-once) — any other tab would execute it a second time.
24
+ forwardedEditorActions = new Map();
12
25
  constructor(port = 5201) {
13
26
  this.port = port;
14
27
  }
@@ -44,20 +57,41 @@ export class DevServerWebSocket {
44
57
  this.wss.emit("connection", ws, req);
45
58
  });
46
59
  });
47
- this.wss.on("connection", (ws) => {
48
- this.clients.add(ws);
49
- console.log(chalk.green(" Editor connected"));
50
- // Send initial state on connection
51
- const state = handlers.onRequestState();
52
- this.sendTo(ws, {
53
- type: "initial-state",
54
- payload: {
55
- components: state.components,
56
- sharedModules: state.sharedModules,
57
- globalStyles: state.globalStyles,
58
- timestamp: Date.now()
59
- }
60
- });
60
+ this.wss.on("connection", (ws, req) => {
61
+ // Control clients tag themselves on connect, so an `editor-action`
62
+ // is never routed to another one-shot CLI socket that would drop it.
63
+ // Parse the query properly: the editor's routing URL can carry a
64
+ // token, and substring matching could false-positive on it.
65
+ let isControl = false;
66
+ try {
67
+ isControl = new URL(req?.url ?? "/", "http://localhost").searchParams.get("client") === "control";
68
+ }
69
+ catch {
70
+ // Malformed upgrade URL — treat as an editor, the safe default.
71
+ }
72
+ const clientInfo = {
73
+ isControl,
74
+ lastActivityAt: Date.now(),
75
+ lastVisibleAt: 0
76
+ };
77
+ this.clientInfo.set(ws, clientInfo);
78
+ if (!isControl)
79
+ console.log(chalk.green(" Editor connected"));
80
+ // Send initial state on connection. Control clients discard it, and
81
+ // it carries every component's compiled JS/CSS — no point shipping
82
+ // the whole dev bundle to a socket that exists to send one command.
83
+ if (!isControl) {
84
+ const state = handlers.onRequestState();
85
+ this.sendTo(ws, {
86
+ type: "initial-state",
87
+ payload: {
88
+ components: state.components,
89
+ sharedModules: state.sharedModules,
90
+ globalStyles: state.globalStyles,
91
+ timestamp: Date.now()
92
+ }
93
+ });
94
+ }
61
95
  ws.on("message", (data) => {
62
96
  try {
63
97
  const message = JSON.parse(data.toString());
@@ -70,12 +104,19 @@ export class DevServerWebSocket {
70
104
  }
71
105
  });
72
106
  ws.on("close", () => {
73
- this.clients.delete(ws);
74
- console.log(chalk.yellow(" Editor disconnected"));
107
+ this.clientInfo.delete(ws);
108
+ this.dropPendingEditorActionsForClient(ws);
109
+ // Read the live flag, not the connect-time one: legacy control
110
+ // clients (no `?client=control`) are only marked once they send an
111
+ // `editor-action`. The object outlives the map entry, which the
112
+ // "error" handler may already have removed.
113
+ if (!clientInfo.isControl)
114
+ console.log(chalk.yellow(" Editor disconnected"));
75
115
  });
76
116
  ws.on("error", (error) => {
77
117
  console.error(chalk.red(" WebSocket error:"), error.message);
78
- this.clients.delete(ws);
118
+ this.clientInfo.delete(ws);
119
+ this.dropPendingEditorActionsForClient(ws);
79
120
  });
80
121
  });
81
122
  this.httpServer.on("error", (error) => {
@@ -99,10 +140,36 @@ export class DevServerWebSocket {
99
140
  * Handle incoming messages from editor
100
141
  */
101
142
  async handleMessage(ws, message, handlers) {
143
+ const info = this.clientInfo.get(ws);
144
+ if (info) {
145
+ // Heartbeats are not activity: they would reshuffle which tab wins ties.
146
+ if (message.type !== "ping")
147
+ info.lastActivityAt = Date.now();
148
+ // Fallback for control clients too old to send `?client=control`: only
149
+ // they issue `editor-action` or `request-types` (the editor pushes
150
+ // `sync-types`, it never requests them), and the mark is sticky.
151
+ if (message.type === "editor-action" || message.type === "request-types")
152
+ info.isControl = true;
153
+ }
102
154
  switch (message.type) {
103
155
  case "subscribe":
104
156
  // Already subscribed on connection
105
157
  break;
158
+ case "editor-hello": {
159
+ // Record which tab is visible so commands land on the one the user is
160
+ // looking at.
161
+ if (info) {
162
+ if (message.payload?.visible)
163
+ info.lastVisibleAt = Date.now();
164
+ if (message.payload?.label)
165
+ info.label = message.payload.label;
166
+ if (message.payload?.themeId)
167
+ info.themeId = message.payload.themeId;
168
+ if (message.payload?.tabId)
169
+ info.tabId = message.payload.tabId;
170
+ }
171
+ break;
172
+ }
106
173
  case "request-state": {
107
174
  const state = handlers.onRequestState();
108
175
  this.sendTo(ws, {
@@ -292,7 +359,7 @@ export class DevServerWebSocket {
292
359
  }
293
360
  case "sync-types": {
294
361
  if (handlers.onSyncTypes) {
295
- handlers.onSyncTypes(message.payload.types, message.payload.customTypes);
362
+ handlers.onSyncTypes(message.payload.types, message.payload.customTypes, message.payload.themeSettings);
296
363
  }
297
364
  break;
298
365
  }
@@ -345,6 +412,107 @@ export class DevServerWebSocket {
345
412
  }
346
413
  break;
347
414
  }
415
+ case "editor-action": {
416
+ // Control client (e.g., `ikas-component list-pages`) asks the dev server
417
+ // to forward an action to the editor. An action is a COMMAND, not a
418
+ // broadcast: every tab that receives it applies it to the shared Yjs
419
+ // document, so N open tabs would import N copies of a component and
420
+ // place N copies of its section. Route it to exactly one editor.
421
+ const fail = (error, retryable) => {
422
+ this.sendTo(ws, {
423
+ type: "editor-action-result",
424
+ requestId: message.requestId,
425
+ success: false,
426
+ error,
427
+ ...(retryable ? { retryable: true } : {}),
428
+ });
429
+ };
430
+ let target = null;
431
+ const pinnedTabId = this.forwardedEditorActions.get(message.requestId);
432
+ if (pinnedTabId) {
433
+ // A retried requestId is pinned to the tab that first received it:
434
+ // that tab replays its stored result (exactly-once); any other tab
435
+ // would execute the action a second time. Last match wins — a
436
+ // reconnected tab registers after its lingering zombie socket.
437
+ for (const [client, info] of this.clientInfo) {
438
+ if (info.tabId === pinnedTabId && client.readyState === WebSocket.OPEN)
439
+ target = client;
440
+ }
441
+ if (!target) {
442
+ fail("The editor that first received this action is not back yet — it may already have been applied; verify before re-running manually", true);
443
+ break;
444
+ }
445
+ }
446
+ else {
447
+ const picked = this.pickEditorActionTarget(ws);
448
+ if (picked.conflictingThemes) {
449
+ fail(`Editors for different themes are connected (${picked.conflictingThemes.join(", ")}) — ` +
450
+ `close the editor tabs for the other themes and try again`);
451
+ break;
452
+ }
453
+ if (picked.hasUnidentified) {
454
+ // A tab with no theme identity next to identified ones could be on
455
+ // ANY theme — routing either way risks mutating the wrong one.
456
+ // Transient for a tab that is still loading, hence retryable.
457
+ fail("An editor tab that has not identified its theme is connected (old build or still loading) — reload or close that tab and try again", true);
458
+ break;
459
+ }
460
+ if (!picked.target) {
461
+ fail("No editor connected — open the editor and try again");
462
+ break;
463
+ }
464
+ target = picked.target;
465
+ if (picked.candidates > 1) {
466
+ const label = this.clientInfo.get(target)?.label ?? "the most recently active tab";
467
+ console.log(chalk.yellow(` ${picked.candidates} editors connected — sending "${message.action}" to ${label} only`));
468
+ }
469
+ const targetTabId = this.clientInfo.get(target)?.tabId;
470
+ if (targetTabId) {
471
+ this.forwardedEditorActions.set(message.requestId, targetTabId);
472
+ if (this.forwardedEditorActions.size > 500) {
473
+ const oldest = this.forwardedEditorActions.keys().next().value;
474
+ if (oldest !== undefined)
475
+ this.forwardedEditorActions.delete(oldest);
476
+ }
477
+ }
478
+ }
479
+ this.pendingEditorActions.set(message.requestId, { sender: ws, target });
480
+ this.sendTo(target, {
481
+ type: "editor-action",
482
+ requestId: message.requestId,
483
+ action: message.action,
484
+ payload: message.payload,
485
+ });
486
+ break;
487
+ }
488
+ case "editor-action-result": {
489
+ // Editor replied to a previously forwarded `editor-action`. Route the
490
+ // result back to the original control-client sender. Only the targeted
491
+ // editor may answer — except when a legacy target's socket dropped
492
+ // (`targetGone`): its reply arrives on a reconnected socket, and
493
+ // pre-routing servers accepted exactly that.
494
+ const pending = this.pendingEditorActions.get(message.requestId);
495
+ if (!pending)
496
+ break;
497
+ const fromTarget = pending.target === ws;
498
+ const legacyLateReply = pending.targetGone === true && !this.clientInfo.get(ws)?.isControl;
499
+ if (!fromTarget && !legacyLateReply)
500
+ break;
501
+ this.pendingEditorActions.delete(message.requestId);
502
+ // The exchange is complete — free the pin so the FIFO cap only ever
503
+ // holds in-flight or lost-reply requests.
504
+ this.forwardedEditorActions.delete(message.requestId);
505
+ if (pending.sender.readyState === WebSocket.OPEN) {
506
+ this.sendTo(pending.sender, {
507
+ type: "editor-action-result",
508
+ requestId: message.requestId,
509
+ success: message.success,
510
+ payload: message.payload,
511
+ error: message.error,
512
+ });
513
+ }
514
+ break;
515
+ }
348
516
  default: {
349
517
  const unknownMessage = message;
350
518
  if (unknownMessage.requestId) {
@@ -358,6 +526,92 @@ export class DevServerWebSocket {
358
526
  }
359
527
  }
360
528
  }
529
+ /**
530
+ * Remove pending editor-action entries originated by a disconnecting client,
531
+ * so we don't leak entries and don't accidentally route a future reply to a
532
+ * dead socket.
533
+ */
534
+ dropPendingEditorActionsForClient(ws) {
535
+ for (const [requestId, pending] of this.pendingEditorActions) {
536
+ if (pending.sender === ws) {
537
+ // Nobody is left to retry or receive this request.
538
+ this.pendingEditorActions.delete(requestId);
539
+ this.forwardedEditorActions.delete(requestId);
540
+ continue;
541
+ }
542
+ if (pending.target === ws) {
543
+ if (this.forwardedEditorActions.has(requestId)) {
544
+ // Pinned target (new editor with a requestId dedup cache): fail fast
545
+ // so the CLI auto-retries the same requestId — the pin routes the
546
+ // retry back to this tab, whose cache makes it exactly-once.
547
+ this.pendingEditorActions.delete(requestId);
548
+ this.sendTo(pending.sender, {
549
+ type: "editor-action-result",
550
+ requestId,
551
+ success: false,
552
+ error: "The editor handling this action disconnected — it may already have been applied; verify before re-running manually",
553
+ retryable: true,
554
+ });
555
+ }
556
+ else {
557
+ // Legacy target (no dedup cache): a retry would re-execute the
558
+ // action, and its reply may still arrive on a reconnected socket.
559
+ // Keep waiting like pre-routing servers did; the CLI's own timeout
560
+ // bounds it.
561
+ pending.targetGone = true;
562
+ }
563
+ }
564
+ }
565
+ }
566
+ /**
567
+ * Pick the single editor that should run an `editor-action`, preferring the
568
+ * tab the user is looking at: most recently visible, then most recently
569
+ * active. Control clients are never targets.
570
+ *
571
+ * The server has no theme identity of its own, so ambiguity is refused, not
572
+ * guessed at: tabs reporting DIFFERENT themes → `conflictingThemes`; a tab
573
+ * with NO theme identity (old build or still loading) next to identified
574
+ * ones → `hasUnidentified` — that tab could be on any theme, and routing
575
+ * either way risks silently mutating the wrong one. Only an unambiguous
576
+ * pool (all identified with one theme, or all unidentified legacy tabs) is
577
+ * ranked.
578
+ */
579
+ pickEditorActionTarget(sender) {
580
+ const entries = [];
581
+ for (const [client, info] of this.clientInfo) {
582
+ if (client === sender || info.isControl || client.readyState !== WebSocket.OPEN)
583
+ continue;
584
+ entries.push([client, info]);
585
+ }
586
+ const themeIds = new Set();
587
+ for (const [, info] of entries) {
588
+ if (info.themeId)
589
+ themeIds.add(info.themeId);
590
+ }
591
+ if (themeIds.size > 1) {
592
+ const labels = new Set();
593
+ for (const [, info] of entries) {
594
+ if (info.themeId)
595
+ labels.add(info.label ?? info.themeId);
596
+ }
597
+ return { target: null, candidates: entries.length, conflictingThemes: Array.from(labels) };
598
+ }
599
+ if (themeIds.size === 1 && entries.some(([, info]) => !info.themeId)) {
600
+ return { target: null, candidates: entries.length, hasUnidentified: true };
601
+ }
602
+ let target = null;
603
+ let best = null;
604
+ for (const [client, info] of entries) {
605
+ const wins = !best ||
606
+ info.lastVisibleAt > best.lastVisibleAt ||
607
+ (info.lastVisibleAt === best.lastVisibleAt && info.lastActivityAt > best.lastActivityAt);
608
+ if (wins) {
609
+ target = client;
610
+ best = info;
611
+ }
612
+ }
613
+ return { target, candidates: entries.length };
614
+ }
361
615
  /**
362
616
  * Send message to a specific client
363
617
  */
@@ -371,7 +625,7 @@ export class DevServerWebSocket {
371
625
  */
372
626
  broadcast(message) {
373
627
  const data = JSON.stringify(message);
374
- for (const client of this.clients) {
628
+ for (const client of this.clientInfo.keys()) {
375
629
  if (client.readyState === WebSocket.OPEN) {
376
630
  client.send(data);
377
631
  }
@@ -420,13 +674,13 @@ export class DevServerWebSocket {
420
674
  * Get number of connected clients
421
675
  */
422
676
  get clientCount() {
423
- return this.clients.size;
677
+ return this.clientInfo.size;
424
678
  }
425
679
  /**
426
680
  * Check if any clients are connected
427
681
  */
428
682
  get hasClients() {
429
- return this.clients.size > 0;
683
+ return this.clientInfo.size > 0;
430
684
  }
431
685
  /**
432
686
  * Stop the WebSocket server
@@ -437,10 +691,11 @@ export class DevServerWebSocket {
437
691
  resolve();
438
692
  return;
439
693
  }
440
- for (const client of this.clients) {
694
+ for (const client of this.clientInfo.keys()) {
441
695
  client.close();
442
696
  }
443
- this.clients.clear();
697
+ this.clientInfo.clear();
698
+ this.pendingEditorActions.clear();
444
699
  const closeHttp = () => {
445
700
  if (this.httpServer) {
446
701
  this.httpServer.close(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-server.js","sourceRoot":"","sources":["../../src/utils/websocket-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket-server.js","sourceRoot":"","sources":["../../src/utils/websocket-server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,16 +1,28 @@
1
1
  {
2
2
  "name": "@ikas/component-cli",
3
- "version": "1.4.0-beta.2",
3
+ "version": "1.4.0-beta.200",
4
4
  "description": "CLI for developing ikas code components",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ },
13
+ "./build-tools": {
14
+ "types": "./dist/build-tools.d.ts",
15
+ "default": "./dist/build-tools.js"
16
+ },
17
+ "./package.json": "./package.json"
18
+ },
8
19
  "bin": {
9
20
  "ikas-component": "./bin/ikas-component.js"
10
21
  },
11
22
  "scripts": {
12
- "build": "tsc",
23
+ "build": "rm -rf dist && tsc",
13
24
  "dev": "tsc --watch",
25
+ "test": "NODE_OPTIONS='--experimental-vm-modules' jest",
14
26
  "prepack": "npm run build"
15
27
  },
16
28
  "dependencies": {
@@ -25,8 +37,11 @@
25
37
  },
26
38
  "devDependencies": {
27
39
  "@types/inquirer": "^9.0.7",
40
+ "@types/jest": "^29.5.12",
28
41
  "@types/node": "^20.10.0",
29
42
  "@types/ws": "^8.5.10",
43
+ "jest": "^29.7.0",
44
+ "ts-jest": "^29.1.5",
30
45
  "typescript": "^5.3.0"
31
46
  },
32
47
  "files": [
@@ -15,3 +15,14 @@
15
15
  font-weight: 700;
16
16
  color: #111827;
17
17
  }
18
+
19
+ /*
20
+ * Responsive: use the theme's breakpoints in CSS. CSS media queries can't use
21
+ * var(), so write the min-width/max-width yourself and use `bp(<breakpointId>)`
22
+ * for the value — it resolves to the breakpoint's `<width>px` at render time
23
+ * against the store's live width. Get <breakpointId> from
24
+ * `npx ikas-component list-theme-globals` (breakpoints[].id) — use the id, not the name.
25
+ *
26
+ * @media (max-width: bp(_AbC123)) { .{{KEBAB_NAME}} { padding: 32px 16px; } }
27
+ * @media (min-width: bp(_AbC123)) { .{{KEBAB_NAME}}-inner { display: flex; gap: 24px; } }
28
+ */
@@ -1,9 +0,0 @@
1
- import { createCreateCommand as createCreateCommandImpl } from "create-ikas-component";
2
- /**
3
- * Re-export of the `create` command. The actual implementation (and the
4
- * project templates) live in the standalone `create-ikas-component` package
5
- * so users can run `npx create-ikas-component` without pulling in the full
6
- * dev/build/publish CLI.
7
- */
8
- export declare const createCreateCommand: typeof createCreateCommandImpl;
9
- //# sourceMappingURL=create.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEvF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,gCAA0B,CAAC"}
@@ -1,9 +0,0 @@
1
- import { createCreateCommand as createCreateCommandImpl } from "create-ikas-component";
2
- /**
3
- * Re-export of the `create` command. The actual implementation (and the
4
- * project templates) live in the standalone `create-ikas-component` package
5
- * so users can run `npx create-ikas-component` without pulling in the full
6
- * dev/build/publish CLI.
7
- */
8
- export const createCreateCommand = createCreateCommandImpl;
9
- //# sourceMappingURL=create.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEvF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,uBAAuB,CAAC"}
@@ -1,39 +0,0 @@
1
- import { Command } from "commander";
2
- import { type ViteDevServer } from "vite";
3
- export declare const DEFAULT_ADMIN_PORT = 3002;
4
- export declare const DEFAULT_EDITOR_PORT = 3003;
5
- export declare const PROD_EDITOR_URL = "https://studio.ikasapps.com";
6
- export declare const PROD_ADMIN_DOMAIN = "myikas.com";
7
- export declare const DEV_EDITOR_URL = "https://studio-dev.ikasapps.com";
8
- export declare const DEV_ADMIN_DOMAIN = "myikas.dev";
9
- export declare const DEFAULT_EDITOR_URL = "https://studio.ikasapps.com";
10
- export declare const DEFAULT_ADMIN_DOMAIN = "myikas.com";
11
- export declare const DEFAULT_PROXY_PORT = 3002;
12
- export interface StartProxyOptions {
13
- store: string;
14
- adminPort?: number;
15
- editorPort?: number;
16
- editorUrl?: string;
17
- adminDomain?: string;
18
- }
19
- export interface ProxyHandle {
20
- adminVite: ViteDevServer;
21
- editorVite: ViteDevServer;
22
- adminTarget: string;
23
- editorTarget: string;
24
- adminUrl: string;
25
- editorUrl: string;
26
- adminPort: number;
27
- editorPort: number;
28
- /** Close both underlying Vite servers. */
29
- close(): Promise<void>;
30
- }
31
- export declare function startProxy(opts: StartProxyOptions): Promise<ProxyHandle>;
32
- export declare function printProxyBanner(handle: ProxyHandle): void;
33
- export declare function promptForStore(): Promise<string>;
34
- export declare function resolveEnvironmentDefaults(dev: boolean): {
35
- editorUrl: string;
36
- adminDomain: string;
37
- };
38
- export declare function createProxyCommand(): Command;
39
- //# sourceMappingURL=proxy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/commands/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAoC,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAE5E,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,eAAe,gCAAgC,CAAC;AAC7D,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAE9C,eAAO,MAAM,cAAc,oCAAoC,CAAC;AAChE,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAG7C,eAAO,MAAM,kBAAkB,gCAAkB,CAAC;AAClD,eAAO,MAAM,oBAAoB,eAAoB,CAAC;AAGtD,eAAO,MAAM,kBAAkB,OAAqB,CAAC;AAErD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,aAAa,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IAEnB,0CAA0C;IAC1C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAkF9E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,QAYnD;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CActD;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO;;;EAItD;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAiC5C"}