@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.
- package/bin/create-ikas-component.js +8 -0
- package/bin/ikas-component.js +8 -0
- package/dist/commands/add.d.ts +3 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +156 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/build.d.ts +3 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +273 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/create.d.ts +4 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +572 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/dev.d.ts +3 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +381 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/publish.d.ts +3 -0
- package/dist/commands/publish.d.ts.map +1 -0
- package/dist/commands/publish.js +136 -0
- package/dist/commands/publish.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +76 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/compile.d.ts +25 -0
- package/dist/utils/compile.d.ts.map +1 -0
- package/dist/utils/compile.js +420 -0
- package/dist/utils/compile.js.map +1 -0
- package/dist/utils/component-helpers.d.ts +23 -0
- package/dist/utils/component-helpers.d.ts.map +1 -0
- package/dist/utils/component-helpers.js +177 -0
- package/dist/utils/component-helpers.js.map +1 -0
- package/dist/utils/css-import-resolver.d.ts +10 -0
- package/dist/utils/css-import-resolver.d.ts.map +1 -0
- package/dist/utils/css-import-resolver.js +40 -0
- package/dist/utils/css-import-resolver.js.map +1 -0
- package/dist/utils/esm-transform.d.ts +29 -0
- package/dist/utils/esm-transform.d.ts.map +1 -0
- package/dist/utils/esm-transform.js +216 -0
- package/dist/utils/esm-transform.js.map +1 -0
- package/dist/utils/observer-runtime.d.ts +3 -0
- package/dist/utils/observer-runtime.d.ts.map +1 -0
- package/dist/utils/observer-runtime.js +52 -0
- package/dist/utils/observer-runtime.js.map +1 -0
- package/dist/utils/websocket-server.d.ts +180 -0
- package/dist/utils/websocket-server.d.ts.map +1 -0
- package/dist/utils/websocket-server.js +287 -0
- package/dist/utils/websocket-server.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import chokidar from "chokidar";
|
|
3
|
+
import { Command } from "commander";
|
|
4
|
+
import * as fs from "fs";
|
|
5
|
+
import * as path from "path";
|
|
6
|
+
import { toPascalCase, toKebabCase, generateTypesFile, generateComponentFile, generateStylesFile, updateBarrelExport, generateProjectId, generateComponentId, } from "../utils/component-helpers.js";
|
|
7
|
+
import { compileAllComponents as compileAllComponentsMulti } from "../utils/compile.js";
|
|
8
|
+
import { transformEsmToWindowGlobals, transformChunkForCanvas, buildChunkMapping } from "../utils/esm-transform.js";
|
|
9
|
+
import { DevServerWebSocket } from "../utils/websocket-server.js";
|
|
10
|
+
const DEV_SERVER_PORT = 5201;
|
|
11
|
+
// Store compiled components and shared modules
|
|
12
|
+
const compiledComponents = new Map();
|
|
13
|
+
const compiledSharedModules = new Map();
|
|
14
|
+
/**
|
|
15
|
+
* Get the component definition that contains a file path
|
|
16
|
+
*/
|
|
17
|
+
function findComponentForFile(config, filePath) {
|
|
18
|
+
const normalizedPath = path.normalize(filePath);
|
|
19
|
+
for (const component of config.components) {
|
|
20
|
+
const entryPath = path.resolve(process.cwd(), component.entry);
|
|
21
|
+
const stylesPath = path.resolve(process.cwd(), component.styles);
|
|
22
|
+
const componentDir = path.dirname(entryPath);
|
|
23
|
+
// Check if the file is the entry, styles, or in the component directory
|
|
24
|
+
if (normalizedPath === entryPath ||
|
|
25
|
+
normalizedPath === stylesPath ||
|
|
26
|
+
normalizedPath.startsWith(componentDir + path.sep)) {
|
|
27
|
+
return component;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Compile all components using multi-entry code splitting.
|
|
34
|
+
* Updates compiledComponents and compiledSharedModules maps.
|
|
35
|
+
*/
|
|
36
|
+
async function compileAllComponentsForDev(config) {
|
|
37
|
+
const components = config.components.map(c => ({
|
|
38
|
+
id: c.id,
|
|
39
|
+
entryPath: c.entry,
|
|
40
|
+
stylesPath: c.styles,
|
|
41
|
+
}));
|
|
42
|
+
const result = await compileAllComponentsMulti(components);
|
|
43
|
+
if (!result.success) {
|
|
44
|
+
console.error(chalk.red(` Multi-entry compilation failed: ${result.error}`));
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
// Build chunk mapping for ESM transform (namespace with projectId)
|
|
48
|
+
const chunkIds = Array.from(result.chunks.keys());
|
|
49
|
+
const chunkMapping = buildChunkMapping(chunkIds, config.projectId);
|
|
50
|
+
// Process shared chunks
|
|
51
|
+
compiledSharedModules.clear();
|
|
52
|
+
for (const [chunkId, chunk] of result.chunks) {
|
|
53
|
+
const prefixedChunkId = config.projectId ? `${config.projectId}-${chunkId}` : chunkId;
|
|
54
|
+
const canvasClientJs = transformChunkForCanvas(chunk.clientJs, prefixedChunkId);
|
|
55
|
+
compiledSharedModules.set(prefixedChunkId, {
|
|
56
|
+
id: prefixedChunkId,
|
|
57
|
+
compiledServerJs: chunk.serverJs,
|
|
58
|
+
compiledClientJs: chunk.clientJs,
|
|
59
|
+
canvasClientJs,
|
|
60
|
+
compiledCss: result.chunkCss.get(chunkId) || "",
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
if (chunkIds.length > 0) {
|
|
64
|
+
console.log(chalk.cyan(` Extracted ${chunkIds.length} shared chunk(s)`));
|
|
65
|
+
}
|
|
66
|
+
// Process entry components
|
|
67
|
+
compiledComponents.clear();
|
|
68
|
+
for (const component of config.components) {
|
|
69
|
+
const entry = result.entries.get(component.id);
|
|
70
|
+
if (!entry) {
|
|
71
|
+
console.error(chalk.red(` No output for component: ${component.name}`));
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
const entryPath = path.resolve(process.cwd(), component.entry);
|
|
75
|
+
if (!fs.existsSync(entryPath)) {
|
|
76
|
+
console.error(chalk.red(` TSX file not found: ${component.entry}`));
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
const scopedCss = result.css.get(component.id) || "";
|
|
80
|
+
// Transform ESM to window globals for canvas mode, with chunk mapping
|
|
81
|
+
const canvasClientJs = transformEsmToWindowGlobals(entry.clientJs, { chunkMapping });
|
|
82
|
+
const data = {
|
|
83
|
+
id: component.id,
|
|
84
|
+
name: component.name,
|
|
85
|
+
projectId: config.projectId,
|
|
86
|
+
props: component.props.map((prop, index) => ({
|
|
87
|
+
id: `${component.id}_prop_${index}`,
|
|
88
|
+
name: prop.name,
|
|
89
|
+
displayName: prop.displayName,
|
|
90
|
+
description: prop.description,
|
|
91
|
+
type: prop.type,
|
|
92
|
+
isRequired: prop.required,
|
|
93
|
+
defaultValue: prop.defaultValue
|
|
94
|
+
})),
|
|
95
|
+
compiledServerJs: entry.serverJs,
|
|
96
|
+
compiledClientJs: entry.clientJs,
|
|
97
|
+
compiledCss: scopedCss,
|
|
98
|
+
canvasClientJs,
|
|
99
|
+
sourceType: "dev",
|
|
100
|
+
lastCompiledAt: Date.now(),
|
|
101
|
+
type: component.type || "component",
|
|
102
|
+
};
|
|
103
|
+
compiledComponents.set(component.id, data);
|
|
104
|
+
console.log(chalk.green(` Compiled: ${component.name}`));
|
|
105
|
+
}
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get all compiled components as an array
|
|
110
|
+
*/
|
|
111
|
+
function getAllComponents() {
|
|
112
|
+
return Array.from(compiledComponents.values());
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get all compiled shared modules as an array
|
|
116
|
+
*/
|
|
117
|
+
function getAllSharedModules() {
|
|
118
|
+
return Array.from(compiledSharedModules.values());
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Read and return the current config from disk
|
|
122
|
+
*/
|
|
123
|
+
function readConfig(configPath) {
|
|
124
|
+
return JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Write config to disk
|
|
128
|
+
*/
|
|
129
|
+
function writeConfig(configPath, config) {
|
|
130
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Create handler functions for editor commands
|
|
134
|
+
*/
|
|
135
|
+
function createEditorHandlers(configPath, getConfig, setConfig) {
|
|
136
|
+
return {
|
|
137
|
+
onRequestState: () => ({
|
|
138
|
+
components: getAllComponents(),
|
|
139
|
+
sharedModules: getAllSharedModules(),
|
|
140
|
+
}),
|
|
141
|
+
onCreateComponent: async (name, type) => {
|
|
142
|
+
const pascalName = toPascalCase(name);
|
|
143
|
+
// Validate
|
|
144
|
+
if (!/^[a-zA-Z][a-zA-Z0-9]*$/.test(pascalName)) {
|
|
145
|
+
throw new Error("Component name must start with a letter and contain only letters and numbers");
|
|
146
|
+
}
|
|
147
|
+
const config = getConfig();
|
|
148
|
+
if (config.components.some((c) => c.name === pascalName)) {
|
|
149
|
+
throw new Error(`Component "${pascalName}" already exists`);
|
|
150
|
+
}
|
|
151
|
+
const kebabName = toKebabCase(pascalName);
|
|
152
|
+
const componentId = generateComponentId(config.projectId, kebabName);
|
|
153
|
+
const componentDir = path.resolve(process.cwd(), `src/components/${pascalName}`);
|
|
154
|
+
// Create directory and files
|
|
155
|
+
fs.mkdirSync(componentDir, { recursive: true });
|
|
156
|
+
fs.writeFileSync(path.join(componentDir, "types.ts"), generateTypesFile(pascalName, [], type));
|
|
157
|
+
fs.writeFileSync(path.join(componentDir, "index.tsx"), generateComponentFile(pascalName, [], type));
|
|
158
|
+
fs.writeFileSync(path.join(componentDir, "styles.css"), generateStylesFile(pascalName, type));
|
|
159
|
+
// Update config
|
|
160
|
+
const newComponent = {
|
|
161
|
+
id: componentId,
|
|
162
|
+
name: pascalName,
|
|
163
|
+
entry: `./src/components/${pascalName}/index.tsx`,
|
|
164
|
+
styles: `./src/components/${pascalName}/styles.css`,
|
|
165
|
+
props: [],
|
|
166
|
+
...(type === "section" ? { type: "section" } : {}),
|
|
167
|
+
};
|
|
168
|
+
config.components.push(newComponent);
|
|
169
|
+
writeConfig(configPath, config);
|
|
170
|
+
setConfig(config);
|
|
171
|
+
// Update barrel export
|
|
172
|
+
const allNames = config.components.map((c) => c.name);
|
|
173
|
+
updateBarrelExport(process.cwd(), allNames);
|
|
174
|
+
console.log(chalk.green(` Created component: ${pascalName}`));
|
|
175
|
+
return { id: componentId };
|
|
176
|
+
},
|
|
177
|
+
onAddProp: async (componentId, prop) => {
|
|
178
|
+
const config = getConfig();
|
|
179
|
+
const component = config.components.find((c) => c.id === componentId);
|
|
180
|
+
if (!component) {
|
|
181
|
+
throw new Error(`Component not found: ${componentId}`);
|
|
182
|
+
}
|
|
183
|
+
if (component.props.some((p) => p.name === prop.name)) {
|
|
184
|
+
throw new Error(`Prop "${prop.name}" already exists on ${component.name}`);
|
|
185
|
+
}
|
|
186
|
+
component.props.push(prop);
|
|
187
|
+
writeConfig(configPath, config);
|
|
188
|
+
setConfig(config);
|
|
189
|
+
// Regenerate types.ts
|
|
190
|
+
const componentDir = path.resolve(process.cwd(), path.dirname(component.entry));
|
|
191
|
+
fs.writeFileSync(path.join(componentDir, "types.ts"), generateTypesFile(component.name, component.props));
|
|
192
|
+
console.log(chalk.green(` Added prop "${prop.name}" to ${component.name}`));
|
|
193
|
+
},
|
|
194
|
+
onUpdateProp: async (componentId, propName, prop) => {
|
|
195
|
+
const config = getConfig();
|
|
196
|
+
const component = config.components.find((c) => c.id === componentId);
|
|
197
|
+
if (!component) {
|
|
198
|
+
throw new Error(`Component not found: ${componentId}`);
|
|
199
|
+
}
|
|
200
|
+
const propIndex = component.props.findIndex((p) => p.name === propName);
|
|
201
|
+
if (propIndex === -1) {
|
|
202
|
+
throw new Error(`Prop "${propName}" not found on ${component.name}`);
|
|
203
|
+
}
|
|
204
|
+
component.props[propIndex] = prop;
|
|
205
|
+
writeConfig(configPath, config);
|
|
206
|
+
setConfig(config);
|
|
207
|
+
// Regenerate types.ts
|
|
208
|
+
const componentDir = path.resolve(process.cwd(), path.dirname(component.entry));
|
|
209
|
+
fs.writeFileSync(path.join(componentDir, "types.ts"), generateTypesFile(component.name, component.props));
|
|
210
|
+
console.log(chalk.green(` Updated prop "${propName}" on ${component.name}`));
|
|
211
|
+
},
|
|
212
|
+
onDeleteProp: async (componentId, propName) => {
|
|
213
|
+
const config = getConfig();
|
|
214
|
+
const component = config.components.find((c) => c.id === componentId);
|
|
215
|
+
if (!component) {
|
|
216
|
+
throw new Error(`Component not found: ${componentId}`);
|
|
217
|
+
}
|
|
218
|
+
const propIndex = component.props.findIndex((p) => p.name === propName);
|
|
219
|
+
if (propIndex === -1) {
|
|
220
|
+
throw new Error(`Prop "${propName}" not found on ${component.name}`);
|
|
221
|
+
}
|
|
222
|
+
component.props.splice(propIndex, 1);
|
|
223
|
+
writeConfig(configPath, config);
|
|
224
|
+
setConfig(config);
|
|
225
|
+
// Regenerate types.ts
|
|
226
|
+
const componentDir = path.resolve(process.cwd(), path.dirname(component.entry));
|
|
227
|
+
fs.writeFileSync(path.join(componentDir, "types.ts"), generateTypesFile(component.name, component.props));
|
|
228
|
+
console.log(chalk.green(` Deleted prop "${propName}" from ${component.name}`));
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
async function startDevServer() {
|
|
233
|
+
const configPath = path.resolve(process.cwd(), "ikas.config.json");
|
|
234
|
+
// Check if we're in an ikas component project
|
|
235
|
+
if (!fs.existsSync(configPath)) {
|
|
236
|
+
console.error(chalk.red("Error: ikas.config.json not found"));
|
|
237
|
+
console.error(chalk.gray("Make sure you're in an ikas component project directory"));
|
|
238
|
+
process.exit(1);
|
|
239
|
+
}
|
|
240
|
+
// Read config
|
|
241
|
+
let config = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
242
|
+
// Auto-migrate: generate projectId if missing (legacy project)
|
|
243
|
+
if (!config.projectId) {
|
|
244
|
+
config.projectId = generateProjectId();
|
|
245
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
246
|
+
console.log(chalk.yellow(` Auto-generated projectId: ${config.projectId}`));
|
|
247
|
+
}
|
|
248
|
+
console.log(chalk.cyan("\n ikas Component Dev Server\n"));
|
|
249
|
+
console.log(chalk.gray(` Project: ${config.name}`));
|
|
250
|
+
console.log(chalk.gray(` Components: ${config.components.length}\n`));
|
|
251
|
+
// Initial compilation of all components (multi-entry with code splitting)
|
|
252
|
+
console.log(chalk.cyan(" Compiling components..."));
|
|
253
|
+
await compileAllComponentsForDev(config);
|
|
254
|
+
console.log("");
|
|
255
|
+
// Start WebSocket server
|
|
256
|
+
const wsServer = new DevServerWebSocket(DEV_SERVER_PORT);
|
|
257
|
+
const handlers = createEditorHandlers(configPath, () => config, (newConfig) => { config = newConfig; });
|
|
258
|
+
try {
|
|
259
|
+
await wsServer.start(handlers);
|
|
260
|
+
console.log(chalk.green(` WebSocket server running on ws://localhost:${DEV_SERVER_PORT}`));
|
|
261
|
+
console.log(chalk.gray(" Connect your editor to receive live updates\n"));
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
console.error(chalk.red(` Failed to start WebSocket server: ${error.message}`));
|
|
265
|
+
process.exit(1);
|
|
266
|
+
}
|
|
267
|
+
// Watch for file changes
|
|
268
|
+
const watchPaths = [
|
|
269
|
+
"src/**/*.tsx",
|
|
270
|
+
"src/**/*.ts",
|
|
271
|
+
"src/**/*.css",
|
|
272
|
+
"ikas.config.json"
|
|
273
|
+
];
|
|
274
|
+
const watcher = chokidar.watch(watchPaths, {
|
|
275
|
+
ignoreInitial: true,
|
|
276
|
+
awaitWriteFinish: {
|
|
277
|
+
stabilityThreshold: 100,
|
|
278
|
+
pollInterval: 50
|
|
279
|
+
}
|
|
280
|
+
});
|
|
281
|
+
// Debounce full recompilation for rapid changes
|
|
282
|
+
let recompileTimer = null;
|
|
283
|
+
const DEBOUNCE_MS = 50;
|
|
284
|
+
const scheduleFullRecompile = (triggeredBy) => {
|
|
285
|
+
if (recompileTimer) {
|
|
286
|
+
clearTimeout(recompileTimer);
|
|
287
|
+
}
|
|
288
|
+
recompileTimer = setTimeout(async () => {
|
|
289
|
+
recompileTimer = null;
|
|
290
|
+
console.log(chalk.yellow(` Recompiling all (triggered by: ${triggeredBy})...`));
|
|
291
|
+
const success = await compileAllComponentsForDev(config);
|
|
292
|
+
if (success) {
|
|
293
|
+
// Send full state to all connected editors
|
|
294
|
+
wsServer.broadcast({
|
|
295
|
+
type: "initial-state",
|
|
296
|
+
payload: {
|
|
297
|
+
components: getAllComponents(),
|
|
298
|
+
sharedModules: getAllSharedModules(),
|
|
299
|
+
timestamp: Date.now()
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
// Broadcast error for the triggering component if identifiable
|
|
305
|
+
const component = findComponentForFile(config, triggeredBy);
|
|
306
|
+
if (component) {
|
|
307
|
+
wsServer.broadcastComponentError(component.id, `Compilation failed for ${component.name}`);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}, DEBOUNCE_MS);
|
|
311
|
+
};
|
|
312
|
+
watcher.on("change", async (filePath) => {
|
|
313
|
+
const normalizedPath = path.resolve(filePath);
|
|
314
|
+
// Handle config changes
|
|
315
|
+
if (normalizedPath === configPath) {
|
|
316
|
+
console.log(chalk.yellow("\n Config changed, reloading..."));
|
|
317
|
+
try {
|
|
318
|
+
config = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
319
|
+
await compileAllComponentsForDev(config);
|
|
320
|
+
// Send full state to all connected editors
|
|
321
|
+
wsServer.broadcast({
|
|
322
|
+
type: "initial-state",
|
|
323
|
+
payload: {
|
|
324
|
+
components: getAllComponents(),
|
|
325
|
+
sharedModules: getAllSharedModules(),
|
|
326
|
+
timestamp: Date.now()
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
catch (e) {
|
|
331
|
+
console.error(chalk.red(" Failed to reload config"));
|
|
332
|
+
}
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
// Any source file change triggers a full recompile (shared code may be affected)
|
|
336
|
+
console.log(chalk.yellow(` Change detected: ${path.basename(filePath)}`));
|
|
337
|
+
scheduleFullRecompile(normalizedPath);
|
|
338
|
+
});
|
|
339
|
+
watcher.on("add", async (filePath) => {
|
|
340
|
+
const normalizedPath = path.resolve(filePath);
|
|
341
|
+
if (normalizedPath === configPath)
|
|
342
|
+
return;
|
|
343
|
+
console.log(chalk.cyan(` New file: ${path.basename(filePath)}`));
|
|
344
|
+
scheduleFullRecompile(normalizedPath);
|
|
345
|
+
});
|
|
346
|
+
watcher.on("unlink", (filePath) => {
|
|
347
|
+
const component = findComponentForFile(config, filePath);
|
|
348
|
+
if (component) {
|
|
349
|
+
console.log(chalk.yellow(` File removed: ${path.basename(filePath)}`));
|
|
350
|
+
// Component might still exist if only one file was removed
|
|
351
|
+
// Check if entry file still exists
|
|
352
|
+
const entryPath = path.resolve(process.cwd(), component.entry);
|
|
353
|
+
if (!fs.existsSync(entryPath)) {
|
|
354
|
+
compiledComponents.delete(component.id);
|
|
355
|
+
wsServer.broadcastComponentDeleted(component.id);
|
|
356
|
+
console.log(chalk.red(` Component removed: ${component.name}`));
|
|
357
|
+
}
|
|
358
|
+
else {
|
|
359
|
+
// Trigger recompile for remaining files
|
|
360
|
+
scheduleFullRecompile(filePath);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
});
|
|
364
|
+
console.log(chalk.green(" Watching for changes..."));
|
|
365
|
+
console.log(chalk.gray(" Press Ctrl+C to stop\n"));
|
|
366
|
+
// Handle shutdown
|
|
367
|
+
const shutdown = async () => {
|
|
368
|
+
console.log(chalk.yellow("\n Shutting down..."));
|
|
369
|
+
watcher.close();
|
|
370
|
+
await wsServer.stop();
|
|
371
|
+
process.exit(0);
|
|
372
|
+
};
|
|
373
|
+
process.on("SIGINT", shutdown);
|
|
374
|
+
process.on("SIGTERM", shutdown);
|
|
375
|
+
}
|
|
376
|
+
export function createDevCommand() {
|
|
377
|
+
return new Command("dev")
|
|
378
|
+
.description("Start the development server with live editor updates")
|
|
379
|
+
.action(startDevServer);
|
|
380
|
+
}
|
|
381
|
+
//# sourceMappingURL=dev.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoMpC,wBAAgB,oBAAoB,IAAI,OAAO,CAM9C"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import ora from "ora";
|
|
4
|
+
import * as fs from "fs";
|
|
5
|
+
import * as path from "path";
|
|
6
|
+
import { compileAllComponents } from "../utils/compile.js";
|
|
7
|
+
import { transformEsmToWindowGlobals, transformChunkForCanvas, buildChunkMapping } from "../utils/esm-transform.js";
|
|
8
|
+
import { generateProjectId } from "../utils/component-helpers.js";
|
|
9
|
+
async function publishComponents(options) {
|
|
10
|
+
const configPath = path.resolve(process.cwd(), "ikas.config.json");
|
|
11
|
+
if (!fs.existsSync(configPath)) {
|
|
12
|
+
console.error(chalk.red("Error: ikas.config.json not found"));
|
|
13
|
+
console.error(chalk.gray("Make sure you're in an ikas component project directory"));
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
const config = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
17
|
+
// Auto-migrate: generate projectId if missing (legacy project)
|
|
18
|
+
if (!config.projectId) {
|
|
19
|
+
config.projectId = generateProjectId();
|
|
20
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
21
|
+
console.log(chalk.yellow(` Auto-generated projectId: ${config.projectId}`));
|
|
22
|
+
}
|
|
23
|
+
// Filter components if specific one requested
|
|
24
|
+
let componentsToPublish = config.components;
|
|
25
|
+
if (options.component) {
|
|
26
|
+
componentsToPublish = config.components.filter((c) => c.id === options.component || c.name === options.component);
|
|
27
|
+
if (componentsToPublish.length === 0) {
|
|
28
|
+
console.error(chalk.red(`Component "${options.component}" not found`));
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
console.log(chalk.cyan("\n Publishing ikas Components\n"));
|
|
33
|
+
console.log(chalk.gray(` Project: ${config.name}`));
|
|
34
|
+
console.log(chalk.gray(` Components: ${componentsToPublish.length}\n`));
|
|
35
|
+
const spinner = ora("Compiling all components...").start();
|
|
36
|
+
// Use multi-entry compilation with code splitting
|
|
37
|
+
const result = await compileAllComponents(componentsToPublish.map(c => ({
|
|
38
|
+
id: c.id,
|
|
39
|
+
entryPath: c.entry,
|
|
40
|
+
stylesPath: c.styles,
|
|
41
|
+
})));
|
|
42
|
+
if (!result.success) {
|
|
43
|
+
spinner.fail(chalk.red(`Compilation failed: ${result.error}`));
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
spinner.succeed(chalk.green("Compilation complete"));
|
|
47
|
+
// Build chunk mapping for ESM transform (namespace with projectId)
|
|
48
|
+
const chunkIds = Array.from(result.chunks.keys());
|
|
49
|
+
const chunkMapping = buildChunkMapping(chunkIds, config.projectId);
|
|
50
|
+
// Process shared modules
|
|
51
|
+
const sharedModules = [];
|
|
52
|
+
for (const [chunkId, chunk] of result.chunks) {
|
|
53
|
+
const prefixedChunkId = config.projectId ? `${config.projectId}-${chunkId}` : chunkId;
|
|
54
|
+
const canvasClientJs = transformChunkForCanvas(chunk.clientJs, prefixedChunkId);
|
|
55
|
+
sharedModules.push({
|
|
56
|
+
id: prefixedChunkId,
|
|
57
|
+
compiledServerJs: chunk.serverJs,
|
|
58
|
+
compiledClientJs: chunk.clientJs,
|
|
59
|
+
canvasClientJs,
|
|
60
|
+
compiledCss: result.chunkCss.get(chunkId) || "",
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
if (sharedModules.length > 0) {
|
|
64
|
+
console.log(chalk.cyan(` Extracted ${sharedModules.length} shared module(s)`));
|
|
65
|
+
}
|
|
66
|
+
// Process entry components
|
|
67
|
+
const outputComponents = [];
|
|
68
|
+
for (const component of componentsToPublish) {
|
|
69
|
+
const entry = result.entries.get(component.id);
|
|
70
|
+
if (!entry) {
|
|
71
|
+
console.log(chalk.red(` No output for component: ${component.name}`));
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
const entryPath = path.resolve(process.cwd(), component.entry);
|
|
75
|
+
if (!fs.existsSync(entryPath)) {
|
|
76
|
+
console.log(chalk.red(` TSX file not found: ${component.entry}`));
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
const scopedCss = result.css.get(component.id) || "";
|
|
80
|
+
// Transform ESM to window globals for canvas mode, with chunk mapping
|
|
81
|
+
const canvasClientJs = transformEsmToWindowGlobals(entry.clientJs, { chunkMapping });
|
|
82
|
+
outputComponents.push({
|
|
83
|
+
id: component.id,
|
|
84
|
+
name: component.name,
|
|
85
|
+
projectId: config.projectId,
|
|
86
|
+
props: component.props.map((prop, index) => ({
|
|
87
|
+
id: `${component.id}_prop_${index}`,
|
|
88
|
+
name: prop.name,
|
|
89
|
+
displayName: prop.displayName,
|
|
90
|
+
description: prop.description,
|
|
91
|
+
type: prop.type,
|
|
92
|
+
isRequired: prop.required,
|
|
93
|
+
defaultValue: prop.defaultValue
|
|
94
|
+
})),
|
|
95
|
+
compiledServerJs: entry.serverJs,
|
|
96
|
+
compiledClientJs: entry.clientJs,
|
|
97
|
+
compiledCss: scopedCss,
|
|
98
|
+
canvasClientJs,
|
|
99
|
+
sourceType: "external",
|
|
100
|
+
lastCompiledAt: Date.now(),
|
|
101
|
+
...(component.type && component.type !== "component" ? { componentType: component.type } : {}),
|
|
102
|
+
});
|
|
103
|
+
console.log(chalk.green(` ${component.name} published`));
|
|
104
|
+
}
|
|
105
|
+
if (outputComponents.length === 0) {
|
|
106
|
+
console.error(chalk.red("\nNo components were published"));
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
// Write output
|
|
110
|
+
const outputPath = options.output || "ikas-components.json";
|
|
111
|
+
const outputFile = path.resolve(process.cwd(), outputPath);
|
|
112
|
+
const output = {
|
|
113
|
+
name: config.name,
|
|
114
|
+
version: config.version,
|
|
115
|
+
projectId: config.projectId,
|
|
116
|
+
publishedAt: new Date().toISOString(),
|
|
117
|
+
components: outputComponents,
|
|
118
|
+
sharedModules,
|
|
119
|
+
};
|
|
120
|
+
fs.writeFileSync(outputFile, JSON.stringify(output, null, 2));
|
|
121
|
+
console.log("\n" + chalk.cyan(" Publish Complete"));
|
|
122
|
+
console.log(chalk.green(` Components: ${outputComponents.length}`));
|
|
123
|
+
if (sharedModules.length > 0) {
|
|
124
|
+
console.log(chalk.green(` Shared modules: ${sharedModules.length}`));
|
|
125
|
+
}
|
|
126
|
+
console.log(chalk.gray(` Output: ${outputFile}\n`));
|
|
127
|
+
console.log(chalk.white(" Import this file in the ikas editor to use your components.\n"));
|
|
128
|
+
}
|
|
129
|
+
export function createPublishCommand() {
|
|
130
|
+
return new Command("publish")
|
|
131
|
+
.description("Publish components for import into ikas editor")
|
|
132
|
+
.option("-o, --output <file>", "Output file path", "ikas-components.json")
|
|
133
|
+
.option("-c, --component <name>", "Publish specific component only")
|
|
134
|
+
.action(publishComponents);
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=publish.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,wBAAgB,GAAG,SAElB;AAED,cAAc,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { createAddCommand } from "./commands/add.js";
|
|
3
|
+
import { createBuildCommand } from "./commands/build.js";
|
|
4
|
+
import { createDevCommand } from "./commands/dev.js";
|
|
5
|
+
import { createPublishCommand } from "./commands/publish.js";
|
|
6
|
+
const program = new Command();
|
|
7
|
+
program
|
|
8
|
+
.name("ikas-component")
|
|
9
|
+
.description("CLI for developing ikas code components")
|
|
10
|
+
.version("0.0.1");
|
|
11
|
+
// Register commands
|
|
12
|
+
program.addCommand(createAddCommand());
|
|
13
|
+
program.addCommand(createDevCommand());
|
|
14
|
+
program.addCommand(createBuildCommand());
|
|
15
|
+
program.addCommand(createPublishCommand());
|
|
16
|
+
export function run() {
|
|
17
|
+
program.parse(process.argv);
|
|
18
|
+
}
|
|
19
|
+
export * from "./types.js";
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,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;AAE3C,MAAM,UAAU,GAAG;IACjB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,cAAc,YAAY,CAAC"}
|