@ikas/component-cli 1.4.0-beta.41 → 1.4.0-beta.43

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 (53) hide show
  1. package/dist/commands/build.d.ts.map +1 -1
  2. package/dist/commands/build.js +168 -5
  3. package/dist/commands/build.js.map +1 -1
  4. package/dist/commands/create.d.ts +3 -8
  5. package/dist/commands/create.d.ts.map +1 -1
  6. package/dist/commands/create.js +227 -8
  7. package/dist/commands/create.js.map +1 -1
  8. package/dist/commands/get-available-values.d.ts +3 -0
  9. package/dist/commands/get-available-values.d.ts.map +1 -0
  10. package/dist/commands/get-available-values.js +49 -0
  11. package/dist/commands/get-available-values.js.map +1 -0
  12. package/dist/commands/proxy.d.ts.map +1 -1
  13. package/dist/commands/proxy.js +4 -6
  14. package/dist/commands/proxy.js.map +1 -1
  15. package/dist/commands/set-dynamic-value.d.ts +3 -0
  16. package/dist/commands/set-dynamic-value.d.ts.map +1 -0
  17. package/dist/commands/set-dynamic-value.js +54 -0
  18. package/dist/commands/set-dynamic-value.js.map +1 -0
  19. package/dist/commands/update-section-props.d.ts +3 -0
  20. package/dist/commands/update-section-props.d.ts.map +1 -0
  21. package/dist/commands/update-section-props.js +43 -0
  22. package/dist/commands/update-section-props.js.map +1 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +8 -21
  25. package/dist/index.js.map +1 -1
  26. package/dist/utils/compile.d.ts +1 -4
  27. package/dist/utils/compile.d.ts.map +1 -1
  28. package/dist/utils/compile.js +40 -500
  29. package/dist/utils/compile.js.map +1 -1
  30. package/dist/utils/editor-action-client.d.ts +1 -1
  31. package/dist/utils/editor-action-client.d.ts.map +1 -1
  32. package/dist/utils/editor-action-client.js.map +1 -1
  33. package/package.json +1 -1
  34. package/dist/commands/create-design-tokens.d.ts +0 -7
  35. package/dist/commands/create-design-tokens.d.ts.map +0 -1
  36. package/dist/commands/create-design-tokens.js +0 -127
  37. package/dist/commands/create-design-tokens.js.map +0 -1
  38. package/dist/commands/create-global-variable.d.ts +0 -3
  39. package/dist/commands/create-global-variable.d.ts.map +0 -1
  40. package/dist/commands/create-global-variable.js +0 -53
  41. package/dist/commands/create-global-variable.js.map +0 -1
  42. package/dist/commands/delete-theme-globals.d.ts +0 -4
  43. package/dist/commands/delete-theme-globals.d.ts.map +0 -1
  44. package/dist/commands/delete-theme-globals.js +0 -48
  45. package/dist/commands/delete-theme-globals.js.map +0 -1
  46. package/dist/commands/list-theme-globals.d.ts +0 -3
  47. package/dist/commands/list-theme-globals.d.ts.map +0 -1
  48. package/dist/commands/list-theme-globals.js +0 -22
  49. package/dist/commands/list-theme-globals.js.map +0 -1
  50. package/dist/commands/update-global-variable.d.ts +0 -3
  51. package/dist/commands/update-global-variable.d.ts.map +0 -1
  52. package/dist/commands/update-global-variable.js +0 -47
  53. package/dist/commands/update-global-variable.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmIpC,wBAAgB,kBAAkB,IAAI,OAAO,CAK5C"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwTpC,wBAAgB,kBAAkB,IAAI,OAAO,CAK5C"}
@@ -2,12 +2,175 @@ import { Command } from "commander";
2
2
  import chalk from "chalk";
3
3
  import ora from "ora";
4
4
  import * as fs from "fs";
5
+ import * as os from "os";
5
6
  import * as path from "path";
7
+ import * as esbuild from "esbuild";
6
8
  import { execSync } from "child_process";
7
- // Single-source the per-component compile pipeline (esbuild config, externals, CSS
8
- // scoping) from utils/compile.ts. This command previously carried its own copy, which
9
- // is how the CSS-scoping fix could land in one place and not the other — keep it shared.
10
- import { compileComponent } from "../utils/compile.js";
9
+ import { resolveCssImports } from "../utils/css-import-resolver.js";
10
+ import { ikasComponentUtilsPlugin } from "../utils/observer-runtime.js";
11
+ // JSX factory/fragment provided under collision-proof names so a user-authored
12
+ // local named `h`/`Fragment` (e.g. a `.map` callback param) can't shadow the
13
+ // pragma and break rendering. See utils/compile.ts for the full rationale.
14
+ const PREACT_JSX_SHIM = path.join(os.tmpdir(), "ikas-preact-jsx-shim.mjs");
15
+ fs.writeFileSync(PREACT_JSX_SHIM, 'export{h as __ikas_h,Fragment as __ikas_Fragment}from"preact";\n');
16
+ async function compileComponent(componentId, entryPath, stylesPath) {
17
+ const componentDir = path.dirname(path.resolve(process.cwd(), entryPath));
18
+ try {
19
+ // Build server bundle (for SSR with preact-render-to-string)
20
+ const serverResult = await esbuild.build({
21
+ entryPoints: [path.resolve(process.cwd(), entryPath)],
22
+ bundle: true,
23
+ format: "esm",
24
+ platform: "node",
25
+ target: "node18",
26
+ write: false,
27
+ external: [
28
+ "preact",
29
+ "preact/hooks",
30
+ "preact-render-to-string",
31
+ "mobx",
32
+ "@ikas/bp-storefront",
33
+ "@ikas/bp-storefront-models",
34
+ "@ikas/bp-storefront-config",
35
+ "@ikas/bp-storefront-api"
36
+ ],
37
+ plugins: [ikasComponentUtilsPlugin()],
38
+ jsx: "transform",
39
+ jsxFactory: "__ikas_h",
40
+ jsxFragment: "__ikas_Fragment",
41
+ inject: [PREACT_JSX_SHIM],
42
+ tsconfigRaw: {
43
+ compilerOptions: {
44
+ jsx: "react",
45
+ jsxFactory: "__ikas_h",
46
+ jsxFragmentFactory: "__ikas_Fragment"
47
+ }
48
+ },
49
+ minify: true,
50
+ sourcemap: false,
51
+ });
52
+ // Build client bundle (for hydration)
53
+ const clientResult = await esbuild.build({
54
+ entryPoints: [path.resolve(process.cwd(), entryPath)],
55
+ bundle: true,
56
+ format: "esm",
57
+ platform: "browser",
58
+ target: "es2020",
59
+ write: false,
60
+ external: [
61
+ "preact",
62
+ "preact/hooks",
63
+ "mobx",
64
+ "@ikas/bp-storefront",
65
+ "@ikas/bp-storefront-models",
66
+ "@ikas/bp-storefront-config"
67
+ ],
68
+ plugins: [ikasComponentUtilsPlugin()],
69
+ jsx: "transform",
70
+ jsxFactory: "__ikas_h",
71
+ jsxFragment: "__ikas_Fragment",
72
+ inject: [PREACT_JSX_SHIM],
73
+ tsconfigRaw: {
74
+ compilerOptions: {
75
+ jsx: "react",
76
+ jsxFactory: "__ikas_h",
77
+ jsxFragmentFactory: "__ikas_Fragment"
78
+ }
79
+ },
80
+ minify: true,
81
+ sourcemap: false,
82
+ });
83
+ // Read and scope CSS (with import resolution)
84
+ const cssPath = path.resolve(process.cwd(), stylesPath);
85
+ let css = "";
86
+ if (fs.existsSync(cssPath)) {
87
+ const rawCss = fs.readFileSync(cssPath, "utf-8");
88
+ css = resolveCssImports(rawCss, cssPath);
89
+ }
90
+ // Scope CSS with component ID prefix
91
+ const scopedCss = scopeCSS(css, componentId);
92
+ return {
93
+ success: true,
94
+ serverJs: serverResult.outputFiles[0]?.text || "",
95
+ clientJs: clientResult.outputFiles[0]?.text || "",
96
+ scopedCss
97
+ };
98
+ }
99
+ catch (error) {
100
+ return {
101
+ success: false,
102
+ serverJs: "",
103
+ clientJs: "",
104
+ scopedCss: "",
105
+ error: error instanceof Error ? error.message : String(error)
106
+ };
107
+ }
108
+ }
109
+ function scopeCSS(css, componentId) {
110
+ // Add a scoping class to all selectors
111
+ const scopeClass = `cc_${componentId.replace(/[^a-zA-Z0-9]/g, "_")}`;
112
+ // Simple CSS scoping - prepend scope class to each rule
113
+ // This is a basic implementation; a production version would use a proper CSS parser
114
+ const lines = css.split("\n");
115
+ const scopedLines = [];
116
+ let inMediaQuery = false;
117
+ let keyframesDepth = 0;
118
+ for (const line of lines) {
119
+ const trimmed = line.trim();
120
+ // Skip empty lines
121
+ if (!trimmed) {
122
+ scopedLines.push(line);
123
+ continue;
124
+ }
125
+ // Handle @media queries
126
+ if (trimmed.startsWith("@media")) {
127
+ inMediaQuery = true;
128
+ scopedLines.push(line);
129
+ continue;
130
+ }
131
+ // Handle @keyframes
132
+ if (trimmed.startsWith("@keyframes") || trimmed.startsWith("@-webkit-keyframes")) {
133
+ keyframesDepth = 1;
134
+ scopedLines.push(line);
135
+ continue;
136
+ }
137
+ // Inside @keyframes: track brace depth, pass lines through unscoped
138
+ if (keyframesDepth > 0) {
139
+ for (const ch of trimmed) {
140
+ if (ch === "{")
141
+ keyframesDepth++;
142
+ else if (ch === "}")
143
+ keyframesDepth--;
144
+ }
145
+ scopedLines.push(line);
146
+ continue;
147
+ }
148
+ // Handle closing braces for @media
149
+ if (trimmed === "}" && inMediaQuery) {
150
+ inMediaQuery = false;
151
+ scopedLines.push(line);
152
+ continue;
153
+ }
154
+ // Skip lines that don't contain selectors
155
+ if (!trimmed.includes("{") || trimmed.startsWith("@")) {
156
+ scopedLines.push(line);
157
+ continue;
158
+ }
159
+ // Scope the selector
160
+ const [selector, rest] = line.split("{");
161
+ if (selector && rest !== undefined) {
162
+ const scopedSelector = selector
163
+ .split(",")
164
+ .map((s) => `.${scopeClass} ${s.trim()}`)
165
+ .join(", ");
166
+ scopedLines.push(`${scopedSelector} {${rest}`);
167
+ }
168
+ else {
169
+ scopedLines.push(line);
170
+ }
171
+ }
172
+ return scopedLines.join("\n");
173
+ }
11
174
  function runTypeCheck() {
12
175
  const spinner = ora("Type checking with TypeScript...").start();
13
176
  try {
@@ -53,7 +216,7 @@ async function buildComponents(options) {
53
216
  // Build each component
54
217
  for (const component of config.components) {
55
218
  const spinner = ora(`Building ${component.name}...`).start();
56
- const result = await compileComponent(component.entry, component.styles, component.id);
219
+ const result = await compileComponent(component.id, component.entry, component.styles);
57
220
  if (result.success) {
58
221
  // Write output files
59
222
  const componentOutDir = path.join(outputPath, component.id);
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,4 @@
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;
1
+ import { Command } from "commander";
2
+ export declare function createCreateCommand(): Command;
3
+ export declare function run(): Promise<void>;
9
4
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsKpC,wBAAgB,mBAAmB,IAAI,OAAO,CA+C7C;AAGD,wBAAsB,GAAG,kBAoDxB"}
@@ -1,9 +1,228 @@
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;
1
+ import chalk from "chalk";
2
+ import { Command } from "commander";
3
+ import * as fs from "fs";
4
+ import inquirer from "inquirer";
5
+ import ora from "ora";
6
+ import * as path from "path";
7
+ import { generateComponentId, generateProjectId, generateUniqueId } from "../utils/component-helpers.js";
8
+ import { readTemplate, readTemplateDirectory } from "../utils/template.js";
9
+ async function createProject(projectName, template = "blank") {
10
+ const spinner = ora("Creating project...").start();
11
+ try {
12
+ const projectPath = path.resolve(process.cwd(), projectName);
13
+ // Check if directory exists
14
+ if (fs.existsSync(projectPath)) {
15
+ spinner.fail(`Directory "${projectName}" already exists`);
16
+ process.exit(1);
17
+ }
18
+ // Generate project ID
19
+ const projectId = generateProjectId();
20
+ const vars = {
21
+ PROJECT_NAME: projectName,
22
+ PROJECT_ID: projectId,
23
+ EXAMPLE_COMPONENT_ID: generateComponentId(projectId, "example-component"),
24
+ EXAMPLE_SECTION_ID: generateComponentId(projectId, "example-section"),
25
+ };
26
+ if (template === "full") {
27
+ // Generate unique IDs for custom enum types and privateVarMap entries
28
+ vars.ENUM_COLUMNS_ID = generateUniqueId();
29
+ vars.ENUM_ASPECT_RATIO_ID = generateUniqueId();
30
+ vars.ENUM_OBJECT_FIT_ID = generateUniqueId();
31
+ vars.ENUM_VERTICAL_ALIGN_ID = generateUniqueId();
32
+ vars.PVM_ID_1 = `pvm_${Date.now()}_1`;
33
+ vars.PVM_ID_2 = `pvm_${Date.now()}_2`;
34
+ vars.PVM_ID_3 = `pvm_${Date.now()}_3`;
35
+ vars.PVM_ID_4 = `pvm_${Date.now()}_4`;
36
+ await createFullProject(projectPath, vars, spinner);
37
+ }
38
+ else {
39
+ await createBlankProject(projectPath, vars, spinner);
40
+ }
41
+ // Create or merge .cursor/mcp.json for Cursor editor
42
+ const cursorDir = path.join(projectPath, ".cursor");
43
+ const cursorMcpPath = path.join(cursorDir, "mcp.json");
44
+ fs.mkdirSync(cursorDir, { recursive: true });
45
+ let cursorMcpConfig = { mcpServers: {} };
46
+ if (fs.existsSync(cursorMcpPath)) {
47
+ try {
48
+ cursorMcpConfig = JSON.parse(fs.readFileSync(cursorMcpPath, "utf-8"));
49
+ if (!cursorMcpConfig.mcpServers) {
50
+ cursorMcpConfig.mcpServers = {};
51
+ }
52
+ }
53
+ catch {
54
+ cursorMcpConfig = { mcpServers: {} };
55
+ }
56
+ }
57
+ cursorMcpConfig.mcpServers["ikas-code-components"] = {
58
+ command: "node",
59
+ args: ["${workspaceFolder}/node_modules/@ikas/code-components-mcp/dist/index.js"]
60
+ };
61
+ fs.writeFileSync(cursorMcpPath, JSON.stringify(cursorMcpConfig, null, 2));
62
+ spinner.succeed(chalk.green(`Project "${projectName}" created successfully! (template: ${template})`));
63
+ console.log("\n" + chalk.cyan("Next steps:"));
64
+ console.log(chalk.white(` cd ${projectName}`));
65
+ console.log(chalk.white(" npm install"));
66
+ console.log(chalk.white(" npm run dev"));
67
+ if (template === "full") {
68
+ console.log("\n" + chalk.yellow("This is a complete theme with 20 sections and 30+ components."));
69
+ console.log(chalk.yellow("See README.md for the full project structure."));
70
+ }
71
+ console.log("\n" + chalk.gray("Happy coding! 🚀"));
72
+ }
73
+ catch (error) {
74
+ spinner.fail("Failed to create project");
75
+ console.error(error);
76
+ process.exit(1);
77
+ }
78
+ }
79
+ async function createBlankProject(projectPath, vars, spinner) {
80
+ // Create directory structure
81
+ fs.mkdirSync(projectPath, { recursive: true });
82
+ fs.mkdirSync(path.join(projectPath, "src/components/ExampleComponent"), { recursive: true });
83
+ fs.mkdirSync(path.join(projectPath, "src/components/ExampleSection"), { recursive: true });
84
+ // Write all template files
85
+ const files = [
86
+ { template: "create/package.json", dest: "package.json", vars },
87
+ { template: "create/tsconfig.json", dest: "tsconfig.json" },
88
+ { template: "create/vite.config.ts", dest: "vite.config.ts" },
89
+ { template: "create/ikas.config.json", dest: "ikas.config.json", vars },
90
+ { template: "create/gitignore", dest: ".gitignore" },
91
+ { template: "create/mcp.json", dest: ".mcp.json" },
92
+ { template: "create/README.md", dest: "README.md", vars },
93
+ { template: "create/claude-md", dest: "CLAUDE.md" },
94
+ { template: "create/cursorrules", dest: ".cursorrules" },
95
+ { template: "create/src/global.css", dest: "src/global.css" },
96
+ { template: "create/src/global-types.ts", dest: "src/global-types.ts" },
97
+ { template: "create/src/ikas-component-utils.d.ts", dest: "src/ikas-component-utils.d.ts" },
98
+ { template: "create/src/components/index.ts", dest: "src/components/index.ts" },
99
+ { template: "create/src/components/ExampleComponent/index.tsx", dest: "src/components/ExampleComponent/index.tsx" },
100
+ { template: "create/src/components/ExampleComponent/types.ts", dest: "src/components/ExampleComponent/types.ts" },
101
+ { template: "create/src/components/ExampleComponent/styles.css", dest: "src/components/ExampleComponent/styles.css" },
102
+ { template: "create/src/components/ExampleSection/index.tsx", dest: "src/components/ExampleSection/index.tsx" },
103
+ { template: "create/src/components/ExampleSection/types.ts", dest: "src/components/ExampleSection/types.ts" },
104
+ { template: "create/src/components/ExampleSection/styles.css", dest: "src/components/ExampleSection/styles.css" },
105
+ ];
106
+ for (const file of files) {
107
+ fs.writeFileSync(path.join(projectPath, file.dest), readTemplate(file.template, file.vars));
108
+ }
109
+ }
110
+ async function createFullProject(projectPath, vars, spinner) {
111
+ fs.mkdirSync(projectPath, { recursive: true });
112
+ spinner.text = "Creating full theme project (350+ files)...";
113
+ const templateFiles = readTemplateDirectory("create-full", vars);
114
+ for (const file of templateFiles) {
115
+ // Map template filenames to actual filenames
116
+ let destPath = file.relativePath;
117
+ if (destPath === "gitignore")
118
+ destPath = ".gitignore";
119
+ else if (destPath === "claude-md")
120
+ destPath = "CLAUDE.md";
121
+ else if (destPath === "cursorrules")
122
+ destPath = ".cursorrules";
123
+ else if (destPath === "mcp.json")
124
+ destPath = ".mcp.json";
125
+ const fullDest = path.join(projectPath, destPath);
126
+ fs.mkdirSync(path.dirname(fullDest), { recursive: true });
127
+ fs.writeFileSync(fullDest, file.content);
128
+ }
129
+ }
130
+ export function createCreateCommand() {
131
+ return new Command("create")
132
+ .description("Create a new ikas component project")
133
+ .argument("[name]", "Project name")
134
+ .option("-t, --template <template>", "Template to use: blank or full (complete theme)")
135
+ .action(async (name, opts) => {
136
+ let projectName = name;
137
+ let template;
138
+ if (opts.template) {
139
+ template = opts.template === "full" ? "full" : "blank";
140
+ }
141
+ else {
142
+ const answers = await inquirer.prompt([
143
+ {
144
+ type: "list",
145
+ name: "template",
146
+ message: "Which template would you like to use?",
147
+ choices: [
148
+ { name: "Blank — minimal project with example component and section", value: "blank" },
149
+ { name: "Full — complete storefront theme with 20 sections and 30+ components", value: "full" },
150
+ ],
151
+ }
152
+ ]);
153
+ template = answers.template;
154
+ }
155
+ if (!projectName) {
156
+ const answers = await inquirer.prompt([
157
+ {
158
+ type: "input",
159
+ name: "projectName",
160
+ message: "What is your project name?",
161
+ default: "my-ikas-components",
162
+ validate: (input) => {
163
+ if (!input.trim())
164
+ return "Project name is required";
165
+ if (!/^[a-z0-9-_]+$/i.test(input)) {
166
+ return "Project name can only contain letters, numbers, hyphens, and underscores";
167
+ }
168
+ return true;
169
+ }
170
+ }
171
+ ]);
172
+ projectName = answers.projectName;
173
+ }
174
+ await createProject(projectName, template);
175
+ });
176
+ }
177
+ // Standalone runner for create-ikas-component command
178
+ export async function run() {
179
+ const program = new Command();
180
+ program
181
+ .name("create-ikas-component")
182
+ .description("Create a new ikas component project")
183
+ .argument("[name]", "Project name")
184
+ .option("-t, --template <template>", "Template to use: blank or full (complete theme)")
185
+ .action(async (name, opts) => {
186
+ let projectName = name;
187
+ let template;
188
+ if (opts.template) {
189
+ template = opts.template === "full" ? "full" : "blank";
190
+ }
191
+ else {
192
+ const answers = await inquirer.prompt([
193
+ {
194
+ type: "list",
195
+ name: "template",
196
+ message: "Which template would you like to use?",
197
+ choices: [
198
+ { name: "Blank — minimal project with example component and section", value: "blank" },
199
+ { name: "Full — complete storefront theme with 20 sections and 30+ components", value: "full" },
200
+ ],
201
+ }
202
+ ]);
203
+ template = answers.template;
204
+ }
205
+ if (!projectName) {
206
+ const answers = await inquirer.prompt([
207
+ {
208
+ type: "input",
209
+ name: "projectName",
210
+ message: "What is your project name?",
211
+ default: "my-ikas-components",
212
+ validate: (input) => {
213
+ if (!input.trim())
214
+ return "Project name is required";
215
+ if (!/^[a-z0-9-_]+$/i.test(input)) {
216
+ return "Project name can only contain letters, numbers, hyphens, and underscores";
217
+ }
218
+ return true;
219
+ }
220
+ }
221
+ ]);
222
+ projectName = answers.projectName;
223
+ }
224
+ await createProject(projectName, template);
225
+ });
226
+ program.parse(process.argv);
227
+ }
9
228
  //# sourceMappingURL=create.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function createGetAvailableValuesCommand(): Command;
3
+ //# sourceMappingURL=get-available-values.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-available-values.d.ts","sourceRoot":"","sources":["../../src/commands/get-available-values.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoDpC,wBAAgB,+BAA+B,IAAI,OAAO,CAazD"}
@@ -0,0 +1,49 @@
1
+ import { Command } from "commander";
2
+ import { printErrorAndExit, printResultAndExit, runEditorAction, } from "../utils/editor-action-client.js";
3
+ function parseListPath(raw) {
4
+ if (!raw)
5
+ return undefined;
6
+ let parsed;
7
+ try {
8
+ parsed = JSON.parse(raw);
9
+ }
10
+ catch {
11
+ printErrorAndExit(new Error('--list-path must be JSON, e.g. \'[{"propId":"<listPropId>","index":0}]\''));
12
+ }
13
+ if (!Array.isArray(parsed)) {
14
+ printErrorAndExit(new Error("--list-path must be a JSON array of { propId, index }."));
15
+ }
16
+ return parsed;
17
+ }
18
+ async function runGetAvailableValues(options) {
19
+ if (!options.elementId) {
20
+ printErrorAndExit(new Error("--element-id is required (from `ikas-component list-page-sections`)"));
21
+ }
22
+ const listPath = parseListPath(options.listPath);
23
+ const port = options.port ? parseInt(options.port, 10) : undefined;
24
+ try {
25
+ const result = await runEditorAction("get-available-values", {
26
+ ...(options.pageId ? { pageId: options.pageId } : {}),
27
+ elementId: options.elementId,
28
+ ...(options.propId ? { propId: options.propId } : {}),
29
+ ...(listPath ? { listPath } : {}),
30
+ }, port ? { port } : {});
31
+ printResultAndExit(result);
32
+ }
33
+ catch (e) {
34
+ printErrorAndExit(e);
35
+ }
36
+ }
37
+ export function createGetAvailableValuesCommand() {
38
+ const cmd = new Command("get-available-values");
39
+ cmd
40
+ .description("List the dynamic values that can be BOUND to a prop (store/global/parent/section variables, or the per-item loop variables of a COMPONENT_LIST). Pass --prop-id to filter to that prop's type. For a prop of a component placed inside a COMPONENT_LIST, pass --list-path (JSON, e.g. '[{\"propId\":\"<listPropId>\",\"index\":0}]'). Returns each value's `ref` (pass it as a `ref` in an `update-page-sections` update to bind the prop), displayName, typeId, groupType.")
41
+ .requiredOption("--element-id <id>", "Placed section elementId (from `list-page-sections`)")
42
+ .option("--page-id <id>", "Page id (from `list-pages`)")
43
+ .option("--prop-id <id>", "Target prop id to filter values by its type")
44
+ .option("--list-path <json>", 'JSON path into a COMPONENT_LIST, e.g. \'[{"propId":"<listPropId>","index":0}]\'')
45
+ .option("--port <port>", "Dev server WebSocket port", "5201")
46
+ .action(runGetAvailableValues);
47
+ return cmd;
48
+ }
49
+ //# sourceMappingURL=get-available-values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-available-values.js","sourceRoot":"","sources":["../../src/commands/get-available-values.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAU1C,SAAS,aAAa,CAAC,GAAY;IACjC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB,CAAC,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC,CAAC;IAC3G,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,iBAAiB,CAAC,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,MAAkD,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,OAAkC;IACrE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,iBAAiB,CAAC,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,sBAAsB,EACtB;YACE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClC,EACD,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CACrB,CAAC;QACF,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAChD,GAAG;SACA,WAAW,CACV,6cAA6c,CAC9c;SACA,cAAc,CAAC,mBAAmB,EAAE,sDAAsD,CAAC;SAC3F,MAAM,CAAC,gBAAgB,EAAE,6BAA6B,CAAC;SACvD,MAAM,CAAC,gBAAgB,EAAE,6CAA6C,CAAC;SACvE,MAAM,CAAC,oBAAoB,EAAE,iFAAiF,CAAC;SAC/G,MAAM,CAAC,eAAe,EAAE,2BAA2B,EAAE,MAAM,CAAC;SAC5D,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACjC,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"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"}
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,CA8E9E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,QAQnD;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CActD;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO;;;EAItD;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAiC5C"}
@@ -27,8 +27,6 @@ export async function startProxy(opts) {
27
27
  configFile: false,
28
28
  appType: "custom",
29
29
  logLevel: "warn",
30
- clearScreen: false,
31
- optimizeDeps: { noDiscovery: true, include: [] },
32
30
  server: {
33
31
  port: editorPort,
34
32
  strictPort: true,
@@ -54,8 +52,6 @@ export async function startProxy(opts) {
54
52
  configFile: false,
55
53
  appType: "custom",
56
54
  logLevel: "warn",
57
- clearScreen: false,
58
- optimizeDeps: { noDiscovery: true, include: [] },
59
55
  server: {
60
56
  port: adminPort,
61
57
  strictPort: true,
@@ -101,9 +97,11 @@ export async function startProxy(opts) {
101
97
  }
102
98
  export function printProxyBanner(handle) {
103
99
  console.log("");
104
- console.log(`${chalk.green("✓ Ready!")} Open your store: ${chalk.yellow(`${handle.adminUrl}/admin`)}`);
100
+ console.log(chalk.green(` Admin proxied: ${handle.adminUrl} -> ${handle.adminTarget}`));
101
+ console.log(chalk.green(` Editor proxied: ${handle.editorUrl} -> ${handle.editorTarget}`));
105
102
  console.log("");
106
- console.log(chalk.gray("To start developing code components, log in to your store and go to Sales Channels > Themes to open your theme in ikas Studio."));
103
+ console.log(chalk.cyan(" Open your admin panel:"));
104
+ console.log(chalk.yellow(` ${handle.adminUrl}/admin/storefront`));
107
105
  console.log("");
108
106
  }
109
107
  export async function promptForStore() {