@ikas/component-cli 1.4.0-beta.23 → 1.4.0-beta.231
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.
- package/dist/build-tools.d.ts +37 -0
- package/dist/build-tools.d.ts.map +1 -0
- package/dist/build-tools.js +36 -0
- package/dist/build-tools.js.map +1 -0
- package/dist/commands/add-sections-to-page.d.ts +3 -0
- package/dist/commands/add-sections-to-page.d.ts.map +1 -0
- package/dist/commands/add-sections-to-page.js +39 -0
- package/dist/commands/add-sections-to-page.js.map +1 -0
- package/dist/commands/add-to-page.js +1 -1
- package/dist/commands/add-to-page.js.map +1 -1
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +11 -2
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +23 -170
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/config-texts.d.ts +39 -0
- package/dist/commands/config-texts.d.ts.map +1 -0
- package/dist/commands/config-texts.js +192 -0
- package/dist/commands/config-texts.js.map +1 -0
- package/dist/commands/config.d.ts +45 -0
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +1205 -154
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/create-design-tokens.d.ts +24 -0
- package/dist/commands/create-design-tokens.d.ts.map +1 -0
- package/dist/commands/create-design-tokens.js +388 -0
- package/dist/commands/create-design-tokens.js.map +1 -0
- package/dist/commands/create-global-variable.d.ts +3 -0
- package/dist/commands/create-global-variable.d.ts.map +1 -0
- package/dist/commands/create-global-variable.js +73 -0
- package/dist/commands/create-global-variable.js.map +1 -0
- package/dist/commands/create-page.d.ts +3 -0
- package/dist/commands/create-page.d.ts.map +1 -0
- package/dist/commands/create-page.js +31 -0
- package/dist/commands/create-page.js.map +1 -0
- package/dist/commands/delete-page.d.ts +3 -0
- package/dist/commands/delete-page.d.ts.map +1 -0
- package/dist/commands/delete-page.js +28 -0
- package/dist/commands/delete-page.js.map +1 -0
- package/dist/commands/delete-theme-globals.d.ts +4 -0
- package/dist/commands/delete-theme-globals.d.ts.map +1 -0
- package/dist/commands/delete-theme-globals.js +50 -0
- package/dist/commands/delete-theme-globals.js.map +1 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +328 -39
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/enable-builtin-pages.d.ts +3 -0
- package/dist/commands/enable-builtin-pages.d.ts.map +1 -0
- package/dist/commands/enable-builtin-pages.js +28 -0
- package/dist/commands/enable-builtin-pages.js.map +1 -0
- package/dist/commands/get-component-props.d.ts +3 -0
- package/dist/commands/get-component-props.d.ts.map +1 -0
- package/dist/commands/get-component-props.js +32 -0
- package/dist/commands/get-component-props.js.map +1 -0
- package/dist/commands/get-page-by-type.d.ts +3 -0
- package/dist/commands/get-page-by-type.d.ts.map +1 -0
- package/dist/commands/get-page-by-type.js +25 -0
- package/dist/commands/get-page-by-type.js.map +1 -0
- package/dist/commands/get-section-values.d.ts +3 -0
- package/dist/commands/get-section-values.d.ts.map +1 -0
- package/dist/commands/get-section-values.js +43 -0
- package/dist/commands/get-section-values.js.map +1 -0
- package/dist/commands/import.js +1 -1
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/list-builtin-pages.d.ts +3 -0
- package/dist/commands/list-builtin-pages.d.ts.map +1 -0
- package/dist/commands/list-builtin-pages.js +28 -0
- package/dist/commands/list-builtin-pages.js.map +1 -0
- package/dist/commands/list-entities.d.ts +3 -0
- package/dist/commands/list-entities.d.ts.map +1 -0
- package/dist/commands/list-entities.js +32 -0
- package/dist/commands/list-entities.js.map +1 -0
- package/dist/commands/list-imported.js +1 -1
- package/dist/commands/list-imported.js.map +1 -1
- package/dist/commands/list-page-sections.d.ts +3 -0
- package/dist/commands/list-page-sections.d.ts.map +1 -0
- package/dist/commands/list-page-sections.js +31 -0
- package/dist/commands/list-page-sections.js.map +1 -0
- package/dist/commands/list-pages.js +1 -1
- package/dist/commands/list-pages.js.map +1 -1
- package/dist/commands/list-theme-globals.d.ts +3 -0
- package/dist/commands/list-theme-globals.d.ts.map +1 -0
- package/dist/commands/list-theme-globals.js +22 -0
- package/dist/commands/list-theme-globals.js.map +1 -0
- package/dist/commands/list-translations.d.ts +3 -0
- package/dist/commands/list-translations.d.ts.map +1 -0
- package/dist/commands/list-translations.js +33 -0
- package/dist/commands/list-translations.js.map +1 -0
- package/dist/commands/move-page-section.d.ts +3 -0
- package/dist/commands/move-page-section.d.ts.map +1 -0
- package/dist/commands/move-page-section.js +62 -0
- package/dist/commands/move-page-section.js.map +1 -0
- package/dist/commands/publish-theme.d.ts +3 -0
- package/dist/commands/publish-theme.d.ts.map +1 -0
- package/dist/commands/publish-theme.js +29 -0
- package/dist/commands/publish-theme.js.map +1 -0
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +72 -3
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/remove-page-section.d.ts +3 -0
- package/dist/commands/remove-page-section.d.ts.map +1 -0
- package/dist/commands/remove-page-section.js +40 -0
- package/dist/commands/remove-page-section.js.map +1 -0
- package/dist/commands/search-products.d.ts +3 -0
- package/dist/commands/search-products.d.ts.map +1 -0
- package/dist/commands/search-products.js +40 -0
- package/dist/commands/search-products.js.map +1 -0
- package/dist/commands/translation-languages.d.ts +3 -0
- package/dist/commands/translation-languages.d.ts.map +1 -0
- package/dist/commands/translation-languages.js +43 -0
- package/dist/commands/translation-languages.js.map +1 -0
- package/dist/commands/update-builtin-page-prop.d.ts +3 -0
- package/dist/commands/update-builtin-page-prop.d.ts.map +1 -0
- package/dist/commands/update-builtin-page-prop.js +49 -0
- package/dist/commands/update-builtin-page-prop.js.map +1 -0
- package/dist/commands/update-global-variable.d.ts +3 -0
- package/dist/commands/update-global-variable.d.ts.map +1 -0
- package/dist/commands/update-global-variable.js +70 -0
- package/dist/commands/update-global-variable.js.map +1 -0
- package/dist/commands/update-page-sections.d.ts +3 -0
- package/dist/commands/update-page-sections.d.ts.map +1 -0
- package/dist/commands/update-page-sections.js +42 -0
- package/dist/commands/update-page-sections.js.map +1 -0
- package/dist/commands/update-section-prop.d.ts +3 -0
- package/dist/commands/update-section-prop.d.ts.map +1 -0
- package/dist/commands/update-section-prop.js +81 -0
- package/dist/commands/update-section-prop.js.map +1 -0
- package/dist/commands/update-translations.d.ts +3 -0
- package/dist/commands/update-translations.d.ts.map +1 -0
- package/dist/commands/update-translations.js +45 -0
- package/dist/commands/update-translations.js.map +1 -0
- package/dist/commands/upload-image.d.ts +3 -0
- package/dist/commands/upload-image.d.ts.map +1 -0
- package/dist/commands/upload-image.js +38 -0
- package/dist/commands/upload-image.js.map +1 -0
- package/dist/commands/upload-images.d.ts +3 -0
- package/dist/commands/upload-images.d.ts.map +1 -0
- package/dist/commands/upload-images.js +48 -0
- package/dist/commands/upload-images.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +66 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +77 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/archive-project.d.ts +50 -0
- package/dist/utils/archive-project.d.ts.map +1 -0
- package/dist/utils/archive-project.js +178 -0
- package/dist/utils/archive-project.js.map +1 -0
- package/dist/utils/compile.d.ts +17 -2
- package/dist/utils/compile.d.ts.map +1 -1
- package/dist/utils/compile.js +742 -109
- package/dist/utils/compile.js.map +1 -1
- package/dist/utils/component-helpers.d.ts +236 -4
- package/dist/utils/component-helpers.d.ts.map +1 -1
- package/dist/utils/component-helpers.js +656 -37
- package/dist/utils/component-helpers.js.map +1 -1
- package/dist/utils/css-import-resolver.d.ts +4 -1
- package/dist/utils/css-import-resolver.d.ts.map +1 -1
- package/dist/utils/css-import-resolver.js +9 -1
- package/dist/utils/css-import-resolver.js.map +1 -1
- package/dist/utils/dev-server-auth.d.ts +28 -0
- package/dist/utils/dev-server-auth.d.ts.map +1 -0
- package/dist/utils/dev-server-auth.js +79 -0
- package/dist/utils/dev-server-auth.js.map +1 -0
- package/dist/utils/editor-action-client.d.ts +20 -3
- package/dist/utils/editor-action-client.d.ts.map +1 -1
- package/dist/utils/editor-action-client.js +81 -19
- package/dist/utils/editor-action-client.js.map +1 -1
- package/dist/utils/esm-transform.d.ts +30 -0
- package/dist/utils/esm-transform.d.ts.map +1 -1
- package/dist/utils/esm-transform.js +169 -2
- package/dist/utils/esm-transform.js.map +1 -1
- package/dist/utils/find-component-for-file.d.ts +12 -0
- package/dist/utils/find-component-for-file.d.ts.map +1 -0
- package/dist/utils/find-component-for-file.js +24 -0
- package/dist/utils/find-component-for-file.js.map +1 -0
- package/dist/utils/forbid-deep-imports.d.ts +3 -0
- package/dist/utils/forbid-deep-imports.d.ts.map +1 -0
- package/dist/utils/forbid-deep-imports.js +54 -0
- package/dist/utils/forbid-deep-imports.js.map +1 -0
- package/dist/utils/forbid-external-packages.d.ts +26 -0
- package/dist/utils/forbid-external-packages.d.ts.map +1 -0
- package/dist/utils/forbid-external-packages.js +99 -0
- package/dist/utils/forbid-external-packages.js.map +1 -0
- package/dist/utils/i18n.d.ts +98 -0
- package/dist/utils/i18n.d.ts.map +1 -0
- package/dist/utils/i18n.js +408 -0
- package/dist/utils/i18n.js.map +1 -0
- package/dist/utils/load-image.d.ts +16 -0
- package/dist/utils/load-image.d.ts.map +1 -0
- package/dist/utils/load-image.js +50 -0
- package/dist/utils/load-image.js.map +1 -0
- package/dist/utils/storefront-t.d.ts +17 -0
- package/dist/utils/storefront-t.d.ts.map +1 -0
- package/dist/utils/storefront-t.js +187 -0
- package/dist/utils/storefront-t.js.map +1 -0
- package/dist/utils/vendor-storefront.d.ts +13 -0
- package/dist/utils/vendor-storefront.d.ts.map +1 -0
- package/dist/utils/vendor-storefront.js +91 -0
- package/dist/utils/vendor-storefront.js.map +1 -0
- package/dist/utils/websocket-server.d.ts +165 -7
- package/dist/utils/websocket-server.d.ts.map +1 -1
- package/dist/utils/websocket-server.js +326 -45
- package/dist/utils/websocket-server.js.map +1 -1
- package/package.json +19 -2
- package/templates/add/section.css +11 -0
- package/dist/commands/create.d.ts +0 -4
- package/dist/commands/create.d.ts.map +0 -1
- package/dist/commands/create.js +0 -176
- package/dist/commands/create.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-server.d.ts","sourceRoot":"","sources":["../../src/utils/websocket-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"websocket-server.d.ts","sourceRoot":"","sources":["../../src/utils/websocket-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,33 @@
|
|
|
1
1
|
import { WebSocketServer, WebSocket } from "ws";
|
|
2
2
|
import * as http from "http";
|
|
3
3
|
import chalk from "chalk";
|
|
4
|
+
import { isAllowedRequest, isSameToken } from "./dev-server-auth.js";
|
|
4
5
|
/**
|
|
5
6
|
* Dev server WebSocket manager
|
|
6
7
|
*/
|
|
7
8
|
export class DevServerWebSocket {
|
|
8
9
|
wss = null;
|
|
9
10
|
httpServer = null;
|
|
10
|
-
clients = new Set();
|
|
11
11
|
port;
|
|
12
|
-
// Tracks in-flight editor-action requests: requestId →
|
|
13
|
-
//
|
|
12
|
+
// Tracks in-flight editor-action requests: requestId → { sender, target }.
|
|
13
|
+
// `sender` routes the `editor-action-result` back; `target` lets us fail the
|
|
14
|
+
// request fast when the editor that was asked to run it goes away.
|
|
15
|
+
// `targetGone` marks a legacy (unpinned) target whose socket dropped: its
|
|
16
|
+
// reply may still arrive on a reconnected socket, so the entry is kept and
|
|
17
|
+
// the late reply is relayed — the pre-routing behaviour old editors rely on.
|
|
14
18
|
pendingEditorActions = new Map();
|
|
15
|
-
|
|
19
|
+
// The connected sockets, and what each one is. Also the client registry:
|
|
20
|
+
// `broadcast`/`clientCount` iterate its keys.
|
|
21
|
+
clientInfo = new Map();
|
|
22
|
+
// requestId → tabId of the editor an action was first forwarded to. A retry
|
|
23
|
+
// of that requestId must go to the SAME tab (whose dedup cache makes the
|
|
24
|
+
// retry exactly-once) — any other tab would execute it a second time.
|
|
25
|
+
forwardedEditorActions = new Map();
|
|
26
|
+
/** What a control client sends to drive the editor (see `writeDevServerToken`); none: every action is refused. */
|
|
27
|
+
token;
|
|
28
|
+
constructor(port = 5201, token) {
|
|
16
29
|
this.port = port;
|
|
30
|
+
this.token = token;
|
|
17
31
|
}
|
|
18
32
|
/**
|
|
19
33
|
* Start the WebSocket server
|
|
@@ -25,6 +39,12 @@ export class DevServerWebSocket {
|
|
|
25
39
|
// Access preflight (OPTIONS with `Access-Control-Request-Private-Network`)
|
|
26
40
|
// when the editor is loaded from an HTTPS origin.
|
|
27
41
|
this.httpServer = http.createServer((req, res) => {
|
|
42
|
+
// Only the editor's own pages are answered: another site gets no CORS grant.
|
|
43
|
+
if (!isAllowedRequest(req.headers)) {
|
|
44
|
+
res.writeHead(403);
|
|
45
|
+
res.end();
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
28
48
|
const origin = req.headers.origin ?? "*";
|
|
29
49
|
const baseHeaders = {
|
|
30
50
|
"Access-Control-Allow-Origin": origin,
|
|
@@ -43,24 +63,57 @@ export class DevServerWebSocket {
|
|
|
43
63
|
});
|
|
44
64
|
this.wss = new WebSocketServer({ noServer: true });
|
|
45
65
|
this.httpServer.on("upgrade", (req, socket, head) => {
|
|
66
|
+
// A page of another site must not reach the editor (or the config) through this socket.
|
|
67
|
+
if (!isAllowedRequest(req.headers)) {
|
|
68
|
+
socket.write("HTTP/1.1 403 Forbidden\r\n\r\n");
|
|
69
|
+
socket.destroy();
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
46
72
|
this.wss.handleUpgrade(req, socket, head, (ws) => {
|
|
47
73
|
this.wss.emit("connection", ws, req);
|
|
48
74
|
});
|
|
49
75
|
});
|
|
50
|
-
this.wss.on("connection", (ws) => {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
//
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
76
|
+
this.wss.on("connection", (ws, req) => {
|
|
77
|
+
// Control clients tag themselves on connect, so an `editor-action`
|
|
78
|
+
// is never routed to another one-shot CLI socket that would drop it.
|
|
79
|
+
// Parse the query properly: the editor's routing URL can carry a
|
|
80
|
+
// token, and substring matching could false-positive on it.
|
|
81
|
+
let isControl = false;
|
|
82
|
+
let token = null;
|
|
83
|
+
try {
|
|
84
|
+
const params = new URL(req?.url ?? "/", "http://localhost").searchParams;
|
|
85
|
+
isControl = params.get("client") === "control";
|
|
86
|
+
token = params.get("token");
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
// Malformed upgrade URL — treat as an editor, the safe default.
|
|
90
|
+
}
|
|
91
|
+
const clientInfo = {
|
|
92
|
+
isControl,
|
|
93
|
+
authorized: !!this.token && isSameToken(token, this.token),
|
|
94
|
+
lastActivityAt: Date.now(),
|
|
95
|
+
lastVisibleAt: 0
|
|
96
|
+
};
|
|
97
|
+
this.clientInfo.set(ws, clientInfo);
|
|
98
|
+
if (!isControl)
|
|
99
|
+
console.log(chalk.green(" Editor connected"));
|
|
100
|
+
// Send initial state on connection. Control clients discard it, and
|
|
101
|
+
// it carries every component's compiled JS/CSS — no point shipping
|
|
102
|
+
// the whole dev bundle to a socket that exists to send one command.
|
|
103
|
+
if (!isControl) {
|
|
104
|
+
const state = handlers.onRequestState();
|
|
105
|
+
this.sendTo(ws, {
|
|
106
|
+
type: "initial-state",
|
|
107
|
+
payload: {
|
|
108
|
+
components: state.components,
|
|
109
|
+
sharedModules: state.sharedModules,
|
|
110
|
+
globalStyles: state.globalStyles,
|
|
111
|
+
i18n: state.i18n,
|
|
112
|
+
warnings: state.warnings,
|
|
113
|
+
timestamp: Date.now()
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
64
117
|
ws.on("message", (data) => {
|
|
65
118
|
try {
|
|
66
119
|
const message = JSON.parse(data.toString());
|
|
@@ -73,13 +126,18 @@ export class DevServerWebSocket {
|
|
|
73
126
|
}
|
|
74
127
|
});
|
|
75
128
|
ws.on("close", () => {
|
|
76
|
-
this.
|
|
129
|
+
this.clientInfo.delete(ws);
|
|
77
130
|
this.dropPendingEditorActionsForClient(ws);
|
|
78
|
-
|
|
131
|
+
// Read the live flag, not the connect-time one: legacy control
|
|
132
|
+
// clients (no `?client=control`) are only marked once they send an
|
|
133
|
+
// `editor-action`. The object outlives the map entry, which the
|
|
134
|
+
// "error" handler may already have removed.
|
|
135
|
+
if (!clientInfo.isControl)
|
|
136
|
+
console.log(chalk.yellow(" Editor disconnected"));
|
|
79
137
|
});
|
|
80
138
|
ws.on("error", (error) => {
|
|
81
139
|
console.error(chalk.red(" WebSocket error:"), error.message);
|
|
82
|
-
this.
|
|
140
|
+
this.clientInfo.delete(ws);
|
|
83
141
|
this.dropPendingEditorActionsForClient(ws);
|
|
84
142
|
});
|
|
85
143
|
});
|
|
@@ -104,10 +162,36 @@ export class DevServerWebSocket {
|
|
|
104
162
|
* Handle incoming messages from editor
|
|
105
163
|
*/
|
|
106
164
|
async handleMessage(ws, message, handlers) {
|
|
165
|
+
const info = this.clientInfo.get(ws);
|
|
166
|
+
if (info) {
|
|
167
|
+
// Heartbeats are not activity: they would reshuffle which tab wins ties.
|
|
168
|
+
if (message.type !== "ping")
|
|
169
|
+
info.lastActivityAt = Date.now();
|
|
170
|
+
// Fallback for control clients too old to send `?client=control`: only
|
|
171
|
+
// they issue `editor-action` or `request-types` (the editor pushes
|
|
172
|
+
// `sync-types`, it never requests them), and the mark is sticky.
|
|
173
|
+
if (message.type === "editor-action" || message.type === "request-types")
|
|
174
|
+
info.isControl = true;
|
|
175
|
+
}
|
|
107
176
|
switch (message.type) {
|
|
108
177
|
case "subscribe":
|
|
109
178
|
// Already subscribed on connection
|
|
110
179
|
break;
|
|
180
|
+
case "editor-hello": {
|
|
181
|
+
// Record which tab is visible so commands land on the one the user is
|
|
182
|
+
// looking at.
|
|
183
|
+
if (info) {
|
|
184
|
+
if (message.payload?.visible)
|
|
185
|
+
info.lastVisibleAt = Date.now();
|
|
186
|
+
if (message.payload?.label)
|
|
187
|
+
info.label = message.payload.label;
|
|
188
|
+
if (message.payload?.themeId)
|
|
189
|
+
info.themeId = message.payload.themeId;
|
|
190
|
+
if (message.payload?.tabId)
|
|
191
|
+
info.tabId = message.payload.tabId;
|
|
192
|
+
}
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
111
195
|
case "request-state": {
|
|
112
196
|
const state = handlers.onRequestState();
|
|
113
197
|
this.sendTo(ws, {
|
|
@@ -116,6 +200,8 @@ export class DevServerWebSocket {
|
|
|
116
200
|
components: state.components,
|
|
117
201
|
sharedModules: state.sharedModules,
|
|
118
202
|
globalStyles: state.globalStyles,
|
|
203
|
+
i18n: state.i18n,
|
|
204
|
+
warnings: state.warnings,
|
|
119
205
|
timestamp: Date.now()
|
|
120
206
|
}
|
|
121
207
|
});
|
|
@@ -295,9 +381,50 @@ export class DevServerWebSocket {
|
|
|
295
381
|
}
|
|
296
382
|
break;
|
|
297
383
|
}
|
|
384
|
+
case "update-translations": {
|
|
385
|
+
if (!handlers.onUpdateTranslations) {
|
|
386
|
+
this.sendTo(ws, { type: "command-error", requestId: message.requestId, error: "update-translations not supported" });
|
|
387
|
+
break;
|
|
388
|
+
}
|
|
389
|
+
try {
|
|
390
|
+
const { componentId, ...texts } = message.payload;
|
|
391
|
+
await handlers.onUpdateTranslations(componentId, texts);
|
|
392
|
+
this.sendTo(ws, { type: "command-success", requestId: message.requestId });
|
|
393
|
+
}
|
|
394
|
+
catch (e) {
|
|
395
|
+
this.sendTo(ws, { type: "command-error", requestId: message.requestId, error: e.message || "Failed to update translations" });
|
|
396
|
+
}
|
|
397
|
+
break;
|
|
398
|
+
}
|
|
399
|
+
case "update-i18n": {
|
|
400
|
+
if (!handlers.onUpdateI18n) {
|
|
401
|
+
this.sendTo(ws, {
|
|
402
|
+
type: "command-error",
|
|
403
|
+
requestId: message.requestId,
|
|
404
|
+
error: "update-i18n not supported",
|
|
405
|
+
});
|
|
406
|
+
break;
|
|
407
|
+
}
|
|
408
|
+
try {
|
|
409
|
+
const { projectId, ...texts } = message.payload;
|
|
410
|
+
await handlers.onUpdateI18n(projectId, texts);
|
|
411
|
+
this.sendTo(ws, {
|
|
412
|
+
type: "command-success",
|
|
413
|
+
requestId: message.requestId,
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
catch (e) {
|
|
417
|
+
this.sendTo(ws, {
|
|
418
|
+
type: "command-error",
|
|
419
|
+
requestId: message.requestId,
|
|
420
|
+
error: e.message || "Failed to update the UI texts",
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
break;
|
|
424
|
+
}
|
|
298
425
|
case "sync-types": {
|
|
299
426
|
if (handlers.onSyncTypes) {
|
|
300
|
-
handlers.onSyncTypes(message.payload.types, message.payload.customTypes);
|
|
427
|
+
handlers.onSyncTypes(message.payload.types, message.payload.customTypes, message.payload.themeSettings);
|
|
301
428
|
}
|
|
302
429
|
break;
|
|
303
430
|
}
|
|
@@ -350,39 +477,117 @@ export class DevServerWebSocket {
|
|
|
350
477
|
}
|
|
351
478
|
break;
|
|
352
479
|
}
|
|
480
|
+
case "archive-project": {
|
|
481
|
+
if (!handlers.onArchiveProject) {
|
|
482
|
+
this.sendTo(ws, { type: "command-error", requestId: message.requestId, error: "archive-project not supported" });
|
|
483
|
+
break;
|
|
484
|
+
}
|
|
485
|
+
try {
|
|
486
|
+
const result = await handlers.onArchiveProject(message.payload ?? {});
|
|
487
|
+
this.sendTo(ws, { type: "command-success", requestId: message.requestId, payload: result });
|
|
488
|
+
}
|
|
489
|
+
catch (e) {
|
|
490
|
+
this.sendTo(ws, { type: "command-error", requestId: message.requestId, error: e.message || "Failed to archive project" });
|
|
491
|
+
}
|
|
492
|
+
break;
|
|
493
|
+
}
|
|
353
494
|
case "editor-action": {
|
|
354
495
|
// Control client (e.g., `ikas-component list-pages`) asks the dev server
|
|
355
|
-
// to forward an action to the
|
|
356
|
-
//
|
|
357
|
-
|
|
358
|
-
|
|
496
|
+
// to forward an action to the editor. An action is a COMMAND, not a
|
|
497
|
+
// broadcast: every tab that receives it applies it to the shared Yjs
|
|
498
|
+
// document, so N open tabs would import N copies of a component and
|
|
499
|
+
// place N copies of its section. Route it to exactly one editor.
|
|
500
|
+
const fail = (error, retryable) => {
|
|
359
501
|
this.sendTo(ws, {
|
|
360
502
|
type: "editor-action-result",
|
|
361
503
|
requestId: message.requestId,
|
|
362
504
|
success: false,
|
|
363
|
-
error
|
|
505
|
+
error,
|
|
506
|
+
...(retryable ? { retryable: true } : {}),
|
|
364
507
|
});
|
|
365
|
-
|
|
508
|
+
};
|
|
509
|
+
// Only this project's CLI (holding the dev server's token) drives the editor.
|
|
510
|
+
if (!info?.authorized) {
|
|
511
|
+
fail("Unauthorized: editor actions are sent by this project's ikas-component CLI while `ikas theme dev` runs (it reads the dev server's token).");
|
|
512
|
+
return;
|
|
513
|
+
}
|
|
514
|
+
let target = null;
|
|
515
|
+
const pinnedTabId = this.forwardedEditorActions.get(message.requestId);
|
|
516
|
+
if (pinnedTabId) {
|
|
517
|
+
// A retried requestId is pinned to the tab that first received it:
|
|
518
|
+
// that tab replays its stored result (exactly-once); any other tab
|
|
519
|
+
// would execute the action a second time. Last match wins — a
|
|
520
|
+
// reconnected tab registers after its lingering zombie socket.
|
|
521
|
+
for (const [client, info] of this.clientInfo) {
|
|
522
|
+
if (info.tabId === pinnedTabId && client.readyState === WebSocket.OPEN)
|
|
523
|
+
target = client;
|
|
524
|
+
}
|
|
525
|
+
if (!target) {
|
|
526
|
+
fail("The editor that first received this action is not back yet — it may already have been applied; verify before re-running manually", true);
|
|
527
|
+
break;
|
|
528
|
+
}
|
|
366
529
|
}
|
|
367
|
-
|
|
368
|
-
|
|
530
|
+
else {
|
|
531
|
+
const picked = this.pickEditorActionTarget(ws);
|
|
532
|
+
if (picked.conflictingThemes) {
|
|
533
|
+
fail(`Editors for different themes are connected (${picked.conflictingThemes.join(", ")}) — ` +
|
|
534
|
+
`close the editor tabs for the other themes and try again`);
|
|
535
|
+
break;
|
|
536
|
+
}
|
|
537
|
+
if (picked.hasUnidentified) {
|
|
538
|
+
// A tab with no theme identity next to identified ones could be on
|
|
539
|
+
// ANY theme — routing either way risks mutating the wrong one.
|
|
540
|
+
// Transient for a tab that is still loading, hence retryable.
|
|
541
|
+
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);
|
|
542
|
+
break;
|
|
543
|
+
}
|
|
544
|
+
if (!picked.target) {
|
|
545
|
+
fail("No editor connected — open the editor and try again");
|
|
546
|
+
break;
|
|
547
|
+
}
|
|
548
|
+
target = picked.target;
|
|
549
|
+
if (picked.candidates > 1) {
|
|
550
|
+
const label = this.clientInfo.get(target)?.label ?? "the most recently active tab";
|
|
551
|
+
console.log(chalk.yellow(` ${picked.candidates} editors connected — sending "${message.action}" to ${label} only`));
|
|
552
|
+
}
|
|
553
|
+
const targetTabId = this.clientInfo.get(target)?.tabId;
|
|
554
|
+
if (targetTabId) {
|
|
555
|
+
this.forwardedEditorActions.set(message.requestId, targetTabId);
|
|
556
|
+
if (this.forwardedEditorActions.size > 500) {
|
|
557
|
+
const oldest = this.forwardedEditorActions.keys().next().value;
|
|
558
|
+
if (oldest !== undefined)
|
|
559
|
+
this.forwardedEditorActions.delete(oldest);
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
this.pendingEditorActions.set(message.requestId, { sender: ws, target });
|
|
564
|
+
this.sendTo(target, {
|
|
369
565
|
type: "editor-action",
|
|
370
566
|
requestId: message.requestId,
|
|
371
567
|
action: message.action,
|
|
372
568
|
payload: message.payload,
|
|
373
|
-
};
|
|
374
|
-
for (const client of otherClients) {
|
|
375
|
-
this.sendTo(client, forwarded);
|
|
376
|
-
}
|
|
569
|
+
});
|
|
377
570
|
break;
|
|
378
571
|
}
|
|
379
572
|
case "editor-action-result": {
|
|
380
573
|
// Editor replied to a previously forwarded `editor-action`. Route the
|
|
381
|
-
// result back to the original control-client sender.
|
|
382
|
-
|
|
574
|
+
// result back to the original control-client sender. Only the targeted
|
|
575
|
+
// editor may answer — except when a legacy target's socket dropped
|
|
576
|
+
// (`targetGone`): its reply arrives on a reconnected socket, and
|
|
577
|
+
// pre-routing servers accepted exactly that.
|
|
578
|
+
const pending = this.pendingEditorActions.get(message.requestId);
|
|
579
|
+
if (!pending)
|
|
580
|
+
break;
|
|
581
|
+
const fromTarget = pending.target === ws;
|
|
582
|
+
const legacyLateReply = pending.targetGone === true && !this.clientInfo.get(ws)?.isControl;
|
|
583
|
+
if (!fromTarget && !legacyLateReply)
|
|
584
|
+
break;
|
|
383
585
|
this.pendingEditorActions.delete(message.requestId);
|
|
384
|
-
|
|
385
|
-
|
|
586
|
+
// The exchange is complete — free the pin so the FIFO cap only ever
|
|
587
|
+
// holds in-flight or lost-reply requests.
|
|
588
|
+
this.forwardedEditorActions.delete(message.requestId);
|
|
589
|
+
if (pending.sender.readyState === WebSocket.OPEN) {
|
|
590
|
+
this.sendTo(pending.sender, {
|
|
386
591
|
type: "editor-action-result",
|
|
387
592
|
requestId: message.requestId,
|
|
388
593
|
success: message.success,
|
|
@@ -411,10 +616,85 @@ export class DevServerWebSocket {
|
|
|
411
616
|
* dead socket.
|
|
412
617
|
*/
|
|
413
618
|
dropPendingEditorActionsForClient(ws) {
|
|
414
|
-
for (const [requestId,
|
|
415
|
-
if (sender === ws)
|
|
619
|
+
for (const [requestId, pending] of this.pendingEditorActions) {
|
|
620
|
+
if (pending.sender === ws) {
|
|
621
|
+
// Nobody is left to retry or receive this request.
|
|
416
622
|
this.pendingEditorActions.delete(requestId);
|
|
623
|
+
this.forwardedEditorActions.delete(requestId);
|
|
624
|
+
continue;
|
|
625
|
+
}
|
|
626
|
+
if (pending.target === ws) {
|
|
627
|
+
if (this.forwardedEditorActions.has(requestId)) {
|
|
628
|
+
// Pinned target (new editor with a requestId dedup cache): fail fast
|
|
629
|
+
// so the CLI auto-retries the same requestId — the pin routes the
|
|
630
|
+
// retry back to this tab, whose cache makes it exactly-once.
|
|
631
|
+
this.pendingEditorActions.delete(requestId);
|
|
632
|
+
this.sendTo(pending.sender, {
|
|
633
|
+
type: "editor-action-result",
|
|
634
|
+
requestId,
|
|
635
|
+
success: false,
|
|
636
|
+
error: "The editor handling this action disconnected — it may already have been applied; verify before re-running manually",
|
|
637
|
+
retryable: true,
|
|
638
|
+
});
|
|
639
|
+
}
|
|
640
|
+
else {
|
|
641
|
+
// Legacy target (no dedup cache): a retry would re-execute the
|
|
642
|
+
// action, and its reply may still arrive on a reconnected socket.
|
|
643
|
+
// Keep waiting like pre-routing servers did; the CLI's own timeout
|
|
644
|
+
// bounds it.
|
|
645
|
+
pending.targetGone = true;
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
/**
|
|
651
|
+
* Pick the single editor that should run an `editor-action`, preferring the
|
|
652
|
+
* tab the user is looking at: most recently visible, then most recently
|
|
653
|
+
* active. Control clients are never targets.
|
|
654
|
+
*
|
|
655
|
+
* The server has no theme identity of its own, so ambiguity is refused, not
|
|
656
|
+
* guessed at: tabs reporting DIFFERENT themes → `conflictingThemes`; a tab
|
|
657
|
+
* with NO theme identity (old build or still loading) next to identified
|
|
658
|
+
* ones → `hasUnidentified` — that tab could be on any theme, and routing
|
|
659
|
+
* either way risks silently mutating the wrong one. Only an unambiguous
|
|
660
|
+
* pool (all identified with one theme, or all unidentified legacy tabs) is
|
|
661
|
+
* ranked.
|
|
662
|
+
*/
|
|
663
|
+
pickEditorActionTarget(sender) {
|
|
664
|
+
const entries = [];
|
|
665
|
+
for (const [client, info] of this.clientInfo) {
|
|
666
|
+
if (client === sender || info.isControl || client.readyState !== WebSocket.OPEN)
|
|
667
|
+
continue;
|
|
668
|
+
entries.push([client, info]);
|
|
669
|
+
}
|
|
670
|
+
const themeIds = new Set();
|
|
671
|
+
for (const [, info] of entries) {
|
|
672
|
+
if (info.themeId)
|
|
673
|
+
themeIds.add(info.themeId);
|
|
674
|
+
}
|
|
675
|
+
if (themeIds.size > 1) {
|
|
676
|
+
const labels = new Set();
|
|
677
|
+
for (const [, info] of entries) {
|
|
678
|
+
if (info.themeId)
|
|
679
|
+
labels.add(info.label ?? info.themeId);
|
|
680
|
+
}
|
|
681
|
+
return { target: null, candidates: entries.length, conflictingThemes: Array.from(labels) };
|
|
682
|
+
}
|
|
683
|
+
if (themeIds.size === 1 && entries.some(([, info]) => !info.themeId)) {
|
|
684
|
+
return { target: null, candidates: entries.length, hasUnidentified: true };
|
|
685
|
+
}
|
|
686
|
+
let target = null;
|
|
687
|
+
let best = null;
|
|
688
|
+
for (const [client, info] of entries) {
|
|
689
|
+
const wins = !best ||
|
|
690
|
+
info.lastVisibleAt > best.lastVisibleAt ||
|
|
691
|
+
(info.lastVisibleAt === best.lastVisibleAt && info.lastActivityAt > best.lastActivityAt);
|
|
692
|
+
if (wins) {
|
|
693
|
+
target = client;
|
|
694
|
+
best = info;
|
|
695
|
+
}
|
|
417
696
|
}
|
|
697
|
+
return { target, candidates: entries.length };
|
|
418
698
|
}
|
|
419
699
|
/**
|
|
420
700
|
* Send message to a specific client
|
|
@@ -429,7 +709,7 @@ export class DevServerWebSocket {
|
|
|
429
709
|
*/
|
|
430
710
|
broadcast(message) {
|
|
431
711
|
const data = JSON.stringify(message);
|
|
432
|
-
for (const client of this.
|
|
712
|
+
for (const client of this.clientInfo.keys()) {
|
|
433
713
|
if (client.readyState === WebSocket.OPEN) {
|
|
434
714
|
client.send(data);
|
|
435
715
|
}
|
|
@@ -478,13 +758,13 @@ export class DevServerWebSocket {
|
|
|
478
758
|
* Get number of connected clients
|
|
479
759
|
*/
|
|
480
760
|
get clientCount() {
|
|
481
|
-
return this.
|
|
761
|
+
return this.clientInfo.size;
|
|
482
762
|
}
|
|
483
763
|
/**
|
|
484
764
|
* Check if any clients are connected
|
|
485
765
|
*/
|
|
486
766
|
get hasClients() {
|
|
487
|
-
return this.
|
|
767
|
+
return this.clientInfo.size > 0;
|
|
488
768
|
}
|
|
489
769
|
/**
|
|
490
770
|
* Stop the WebSocket server
|
|
@@ -495,10 +775,11 @@ export class DevServerWebSocket {
|
|
|
495
775
|
resolve();
|
|
496
776
|
return;
|
|
497
777
|
}
|
|
498
|
-
for (const client of this.
|
|
778
|
+
for (const client of this.clientInfo.keys()) {
|
|
499
779
|
client.close();
|
|
500
780
|
}
|
|
501
|
-
this.
|
|
781
|
+
this.clientInfo.clear();
|
|
782
|
+
this.pendingEditorActions.clear();
|
|
502
783
|
const closeHttp = () => {
|
|
503
784
|
if (this.httpServer) {
|
|
504
785
|
this.httpServer.close(() => {
|