@ikas/component-cli 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/bin/create-ikas-component.js +8 -0
  2. package/bin/ikas-component.js +8 -0
  3. package/dist/commands/add.d.ts +3 -0
  4. package/dist/commands/add.d.ts.map +1 -0
  5. package/dist/commands/add.js +156 -0
  6. package/dist/commands/add.js.map +1 -0
  7. package/dist/commands/build.d.ts +3 -0
  8. package/dist/commands/build.d.ts.map +1 -0
  9. package/dist/commands/build.js +273 -0
  10. package/dist/commands/build.js.map +1 -0
  11. package/dist/commands/create.d.ts +4 -0
  12. package/dist/commands/create.d.ts.map +1 -0
  13. package/dist/commands/create.js +572 -0
  14. package/dist/commands/create.js.map +1 -0
  15. package/dist/commands/dev.d.ts +3 -0
  16. package/dist/commands/dev.d.ts.map +1 -0
  17. package/dist/commands/dev.js +381 -0
  18. package/dist/commands/dev.js.map +1 -0
  19. package/dist/commands/publish.d.ts +3 -0
  20. package/dist/commands/publish.d.ts.map +1 -0
  21. package/dist/commands/publish.js +136 -0
  22. package/dist/commands/publish.js.map +1 -0
  23. package/dist/index.d.ts +3 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +20 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/types.d.ts +76 -0
  28. package/dist/types.d.ts.map +1 -0
  29. package/dist/types.js +2 -0
  30. package/dist/types.js.map +1 -0
  31. package/dist/utils/compile.d.ts +25 -0
  32. package/dist/utils/compile.d.ts.map +1 -0
  33. package/dist/utils/compile.js +420 -0
  34. package/dist/utils/compile.js.map +1 -0
  35. package/dist/utils/component-helpers.d.ts +23 -0
  36. package/dist/utils/component-helpers.d.ts.map +1 -0
  37. package/dist/utils/component-helpers.js +177 -0
  38. package/dist/utils/component-helpers.js.map +1 -0
  39. package/dist/utils/css-import-resolver.d.ts +10 -0
  40. package/dist/utils/css-import-resolver.d.ts.map +1 -0
  41. package/dist/utils/css-import-resolver.js +40 -0
  42. package/dist/utils/css-import-resolver.js.map +1 -0
  43. package/dist/utils/esm-transform.d.ts +29 -0
  44. package/dist/utils/esm-transform.d.ts.map +1 -0
  45. package/dist/utils/esm-transform.js +216 -0
  46. package/dist/utils/esm-transform.js.map +1 -0
  47. package/dist/utils/observer-runtime.d.ts +3 -0
  48. package/dist/utils/observer-runtime.d.ts.map +1 -0
  49. package/dist/utils/observer-runtime.js +52 -0
  50. package/dist/utils/observer-runtime.js.map +1 -0
  51. package/dist/utils/websocket-server.d.ts +180 -0
  52. package/dist/utils/websocket-server.d.ts.map +1 -0
  53. package/dist/utils/websocket-server.js +287 -0
  54. package/dist/utils/websocket-server.js.map +1 -0
  55. package/package.json +43 -0
@@ -0,0 +1,180 @@
1
+ import type { ComponentProp } from "../types.js";
2
+ /**
3
+ * Shared module data sent to editors (chunk extracted by code splitting)
4
+ */
5
+ export interface ISharedModuleData {
6
+ id: string;
7
+ projectId?: string;
8
+ compiledServerJs: string;
9
+ compiledClientJs: string;
10
+ canvasClientJs: string;
11
+ compiledCss: string;
12
+ }
13
+ /**
14
+ * Code component data sent to editors
15
+ */
16
+ export interface ICodeComponentData {
17
+ id: string;
18
+ name: string;
19
+ projectId?: string;
20
+ props: Array<{
21
+ id: string;
22
+ name: string;
23
+ displayName: string;
24
+ description?: string;
25
+ type: string;
26
+ isRequired: boolean;
27
+ defaultValue?: unknown;
28
+ }>;
29
+ compiledServerJs: string;
30
+ compiledClientJs: string;
31
+ compiledCss: string;
32
+ canvasClientJs: string;
33
+ sourceType: "dev";
34
+ lastCompiledAt: number;
35
+ /** Component type - 'component' or 'section' */
36
+ type?: "component" | "section";
37
+ }
38
+ /**
39
+ * Messages from dev server to editor
40
+ */
41
+ export type DevServerMessage = {
42
+ type: "initial-state";
43
+ payload: {
44
+ components: ICodeComponentData[];
45
+ sharedModules?: ISharedModuleData[];
46
+ timestamp: number;
47
+ };
48
+ } | {
49
+ type: "component-update";
50
+ payload: {
51
+ component: ICodeComponentData;
52
+ sharedModules?: ISharedModuleData[];
53
+ timestamp: number;
54
+ };
55
+ } | {
56
+ type: "component-error";
57
+ payload: {
58
+ componentId: string;
59
+ error: string;
60
+ timestamp: number;
61
+ };
62
+ } | {
63
+ type: "component-deleted";
64
+ payload: {
65
+ componentId: string;
66
+ timestamp: number;
67
+ };
68
+ } | {
69
+ type: "command-success";
70
+ requestId: string;
71
+ payload?: any;
72
+ } | {
73
+ type: "command-error";
74
+ requestId: string;
75
+ error: string;
76
+ };
77
+ /**
78
+ * Messages from editor to dev server
79
+ */
80
+ export type EditorMessage = {
81
+ type: "subscribe";
82
+ } | {
83
+ type: "request-state";
84
+ } | {
85
+ type: "ping";
86
+ } | {
87
+ type: "create-component";
88
+ requestId: string;
89
+ payload: {
90
+ name: string;
91
+ type?: "component" | "section";
92
+ };
93
+ } | {
94
+ type: "add-prop";
95
+ requestId: string;
96
+ payload: {
97
+ componentId: string;
98
+ prop: ComponentProp;
99
+ };
100
+ } | {
101
+ type: "update-prop";
102
+ requestId: string;
103
+ payload: {
104
+ componentId: string;
105
+ propName: string;
106
+ prop: ComponentProp;
107
+ };
108
+ } | {
109
+ type: "delete-prop";
110
+ requestId: string;
111
+ payload: {
112
+ componentId: string;
113
+ propName: string;
114
+ };
115
+ };
116
+ /**
117
+ * Handlers for editor messages that require action from dev.ts
118
+ */
119
+ export interface EditorMessageHandlers {
120
+ onRequestState: () => {
121
+ components: ICodeComponentData[];
122
+ sharedModules: ISharedModuleData[];
123
+ };
124
+ onCreateComponent?: (name: string, type?: "component" | "section") => Promise<{
125
+ id: string;
126
+ }>;
127
+ onAddProp?: (componentId: string, prop: ComponentProp) => Promise<void>;
128
+ onUpdateProp?: (componentId: string, propName: string, prop: ComponentProp) => Promise<void>;
129
+ onDeleteProp?: (componentId: string, propName: string) => Promise<void>;
130
+ }
131
+ /**
132
+ * Dev server WebSocket manager
133
+ */
134
+ export declare class DevServerWebSocket {
135
+ private wss;
136
+ private clients;
137
+ private port;
138
+ constructor(port?: number);
139
+ /**
140
+ * Start the WebSocket server
141
+ */
142
+ start(handlers: EditorMessageHandlers): Promise<void>;
143
+ /**
144
+ * Handle incoming messages from editor
145
+ */
146
+ private handleMessage;
147
+ /**
148
+ * Send message to a specific client
149
+ */
150
+ private sendTo;
151
+ /**
152
+ * Broadcast message to all connected clients
153
+ */
154
+ broadcast(message: DevServerMessage): void;
155
+ /**
156
+ * Broadcast a component update
157
+ */
158
+ broadcastComponentUpdate(component: ICodeComponentData, sharedModules?: ISharedModuleData[]): void;
159
+ /**
160
+ * Broadcast a compilation error
161
+ */
162
+ broadcastComponentError(componentId: string, error: string): void;
163
+ /**
164
+ * Broadcast a component deletion
165
+ */
166
+ broadcastComponentDeleted(componentId: string): void;
167
+ /**
168
+ * Get number of connected clients
169
+ */
170
+ get clientCount(): number;
171
+ /**
172
+ * Check if any clients are connected
173
+ */
174
+ get hasClients(): boolean;
175
+ /**
176
+ * Stop the WebSocket server
177
+ */
178
+ stop(): Promise<void>;
179
+ }
180
+ //# sourceMappingURL=websocket-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-server.d.ts","sourceRoot":"","sources":["../../src/utils/websocket-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,287 @@
1
+ import { WebSocketServer, WebSocket } from "ws";
2
+ import chalk from "chalk";
3
+ /**
4
+ * Dev server WebSocket manager
5
+ */
6
+ export class DevServerWebSocket {
7
+ wss = null;
8
+ clients = new Set();
9
+ port;
10
+ constructor(port = 5201) {
11
+ this.port = port;
12
+ }
13
+ /**
14
+ * Start the WebSocket server
15
+ */
16
+ start(handlers) {
17
+ return new Promise((resolve, reject) => {
18
+ try {
19
+ this.wss = new WebSocketServer({ port: this.port });
20
+ this.wss.on("connection", (ws) => {
21
+ this.clients.add(ws);
22
+ console.log(chalk.green(" Editor connected"));
23
+ // Send initial state on connection
24
+ const state = handlers.onRequestState();
25
+ this.sendTo(ws, {
26
+ type: "initial-state",
27
+ payload: {
28
+ components: state.components,
29
+ sharedModules: state.sharedModules,
30
+ timestamp: Date.now()
31
+ }
32
+ });
33
+ ws.on("message", (data) => {
34
+ try {
35
+ const message = JSON.parse(data.toString());
36
+ this.handleMessage(ws, message, handlers).catch((e) => {
37
+ console.error(chalk.red(" Unhandled error in message handler:"), e);
38
+ });
39
+ }
40
+ catch (e) {
41
+ console.error(chalk.red(" Invalid message from editor"));
42
+ }
43
+ });
44
+ ws.on("close", () => {
45
+ this.clients.delete(ws);
46
+ console.log(chalk.yellow(" Editor disconnected"));
47
+ });
48
+ ws.on("error", (error) => {
49
+ console.error(chalk.red(" WebSocket error:"), error.message);
50
+ this.clients.delete(ws);
51
+ });
52
+ });
53
+ this.wss.on("error", (error) => {
54
+ if (error.code === "EADDRINUSE") {
55
+ reject(new Error(`Port ${this.port} is already in use`));
56
+ }
57
+ else {
58
+ reject(error);
59
+ }
60
+ });
61
+ this.wss.on("listening", () => {
62
+ resolve();
63
+ });
64
+ }
65
+ catch (error) {
66
+ reject(error);
67
+ }
68
+ });
69
+ }
70
+ /**
71
+ * Handle incoming messages from editor
72
+ */
73
+ async handleMessage(ws, message, handlers) {
74
+ switch (message.type) {
75
+ case "subscribe":
76
+ // Already subscribed on connection
77
+ break;
78
+ case "request-state": {
79
+ const state = handlers.onRequestState();
80
+ this.sendTo(ws, {
81
+ type: "initial-state",
82
+ payload: {
83
+ components: state.components,
84
+ sharedModules: state.sharedModules,
85
+ timestamp: Date.now()
86
+ }
87
+ });
88
+ break;
89
+ }
90
+ case "ping":
91
+ // Heartbeat - no response needed
92
+ break;
93
+ case "create-component": {
94
+ if (!handlers.onCreateComponent) {
95
+ this.sendTo(ws, {
96
+ type: "command-error",
97
+ requestId: message.requestId,
98
+ error: "create-component not supported"
99
+ });
100
+ break;
101
+ }
102
+ try {
103
+ const result = await handlers.onCreateComponent(message.payload.name, message.payload.type);
104
+ this.sendTo(ws, {
105
+ type: "command-success",
106
+ requestId: message.requestId,
107
+ payload: result
108
+ });
109
+ }
110
+ catch (e) {
111
+ this.sendTo(ws, {
112
+ type: "command-error",
113
+ requestId: message.requestId,
114
+ error: e.message || "Failed to create component"
115
+ });
116
+ }
117
+ break;
118
+ }
119
+ case "add-prop": {
120
+ if (!handlers.onAddProp) {
121
+ this.sendTo(ws, {
122
+ type: "command-error",
123
+ requestId: message.requestId,
124
+ error: "add-prop not supported"
125
+ });
126
+ break;
127
+ }
128
+ try {
129
+ await handlers.onAddProp(message.payload.componentId, message.payload.prop);
130
+ this.sendTo(ws, {
131
+ type: "command-success",
132
+ requestId: message.requestId
133
+ });
134
+ }
135
+ catch (e) {
136
+ this.sendTo(ws, {
137
+ type: "command-error",
138
+ requestId: message.requestId,
139
+ error: e.message || "Failed to add prop"
140
+ });
141
+ }
142
+ break;
143
+ }
144
+ case "update-prop": {
145
+ if (!handlers.onUpdateProp) {
146
+ this.sendTo(ws, {
147
+ type: "command-error",
148
+ requestId: message.requestId,
149
+ error: "update-prop not supported"
150
+ });
151
+ break;
152
+ }
153
+ try {
154
+ await handlers.onUpdateProp(message.payload.componentId, message.payload.propName, message.payload.prop);
155
+ this.sendTo(ws, {
156
+ type: "command-success",
157
+ requestId: message.requestId
158
+ });
159
+ }
160
+ catch (e) {
161
+ this.sendTo(ws, {
162
+ type: "command-error",
163
+ requestId: message.requestId,
164
+ error: e.message || "Failed to update prop"
165
+ });
166
+ }
167
+ break;
168
+ }
169
+ case "delete-prop": {
170
+ if (!handlers.onDeleteProp) {
171
+ this.sendTo(ws, {
172
+ type: "command-error",
173
+ requestId: message.requestId,
174
+ error: "delete-prop not supported"
175
+ });
176
+ break;
177
+ }
178
+ try {
179
+ await handlers.onDeleteProp(message.payload.componentId, message.payload.propName);
180
+ this.sendTo(ws, {
181
+ type: "command-success",
182
+ requestId: message.requestId
183
+ });
184
+ }
185
+ catch (e) {
186
+ this.sendTo(ws, {
187
+ type: "command-error",
188
+ requestId: message.requestId,
189
+ error: e.message || "Failed to delete prop"
190
+ });
191
+ }
192
+ break;
193
+ }
194
+ }
195
+ }
196
+ /**
197
+ * Send message to a specific client
198
+ */
199
+ sendTo(ws, message) {
200
+ if (ws.readyState === WebSocket.OPEN) {
201
+ ws.send(JSON.stringify(message));
202
+ }
203
+ }
204
+ /**
205
+ * Broadcast message to all connected clients
206
+ */
207
+ broadcast(message) {
208
+ const data = JSON.stringify(message);
209
+ for (const client of this.clients) {
210
+ if (client.readyState === WebSocket.OPEN) {
211
+ client.send(data);
212
+ }
213
+ }
214
+ }
215
+ /**
216
+ * Broadcast a component update
217
+ */
218
+ broadcastComponentUpdate(component, sharedModules) {
219
+ this.broadcast({
220
+ type: "component-update",
221
+ payload: {
222
+ component,
223
+ sharedModules,
224
+ timestamp: Date.now()
225
+ }
226
+ });
227
+ }
228
+ /**
229
+ * Broadcast a compilation error
230
+ */
231
+ broadcastComponentError(componentId, error) {
232
+ this.broadcast({
233
+ type: "component-error",
234
+ payload: {
235
+ componentId,
236
+ error,
237
+ timestamp: Date.now()
238
+ }
239
+ });
240
+ }
241
+ /**
242
+ * Broadcast a component deletion
243
+ */
244
+ broadcastComponentDeleted(componentId) {
245
+ this.broadcast({
246
+ type: "component-deleted",
247
+ payload: {
248
+ componentId,
249
+ timestamp: Date.now()
250
+ }
251
+ });
252
+ }
253
+ /**
254
+ * Get number of connected clients
255
+ */
256
+ get clientCount() {
257
+ return this.clients.size;
258
+ }
259
+ /**
260
+ * Check if any clients are connected
261
+ */
262
+ get hasClients() {
263
+ return this.clients.size > 0;
264
+ }
265
+ /**
266
+ * Stop the WebSocket server
267
+ */
268
+ stop() {
269
+ return new Promise((resolve) => {
270
+ if (this.wss) {
271
+ // Close all client connections
272
+ for (const client of this.clients) {
273
+ client.close();
274
+ }
275
+ this.clients.clear();
276
+ this.wss.close(() => {
277
+ this.wss = null;
278
+ resolve();
279
+ });
280
+ }
281
+ else {
282
+ resolve();
283
+ }
284
+ });
285
+ }
286
+ }
287
+ //# sourceMappingURL=websocket-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-server.js","sourceRoot":"","sources":["../../src/utils/websocket-server.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@ikas/component-cli",
3
+ "version": "0.15.0",
4
+ "description": "CLI for developing ikas code components",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "bin": {
9
+ "ikas-component": "./bin/ikas-component.js",
10
+ "create-ikas-component": "./bin/create-ikas-component.js"
11
+ },
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "dev": "tsc --watch",
15
+ "prepublishOnly": "npm run build"
16
+ },
17
+ "dependencies": {
18
+ "chalk": "^5.3.0",
19
+ "chokidar": "^3.5.3",
20
+ "commander": "^11.1.0",
21
+ "esbuild": "^0.19.8",
22
+ "inquirer": "^9.2.12",
23
+ "ora": "^7.0.1",
24
+ "vite": "^5.0.0",
25
+ "ws": "^8.14.2"
26
+ },
27
+ "devDependencies": {
28
+ "@types/inquirer": "^9.0.7",
29
+ "@types/node": "^20.10.0",
30
+ "@types/ws": "^8.5.10",
31
+ "typescript": "^5.3.0"
32
+ },
33
+ "files": [
34
+ "dist",
35
+ "bin"
36
+ ],
37
+ "keywords": [
38
+ "ikas",
39
+ "components",
40
+ "cli"
41
+ ],
42
+ "license": "MIT"
43
+ }