cmssy-cli 0.20.1 → 0.24.1

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 (80) hide show
  1. package/config.d.ts +1 -1
  2. package/dist/cli.js +136 -23
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/add-source.d.ts +7 -0
  5. package/dist/commands/add-source.d.ts.map +1 -0
  6. package/dist/commands/add-source.js +238 -0
  7. package/dist/commands/add-source.js.map +1 -0
  8. package/dist/commands/build.d.ts +1 -0
  9. package/dist/commands/build.d.ts.map +1 -1
  10. package/dist/commands/build.js +56 -12
  11. package/dist/commands/build.js.map +1 -1
  12. package/dist/commands/create.d.ts.map +1 -1
  13. package/dist/commands/create.js +22 -2
  14. package/dist/commands/create.js.map +1 -1
  15. package/dist/commands/dev.d.ts.map +1 -1
  16. package/dist/commands/dev.js +652 -410
  17. package/dist/commands/dev.js.map +1 -1
  18. package/dist/commands/init.d.ts.map +1 -1
  19. package/dist/commands/init.js +3 -1
  20. package/dist/commands/init.js.map +1 -1
  21. package/dist/commands/migrate.d.ts.map +1 -1
  22. package/dist/commands/migrate.js +3 -1
  23. package/dist/commands/migrate.js.map +1 -1
  24. package/dist/commands/publish.js +74 -0
  25. package/dist/commands/publish.js.map +1 -1
  26. package/dist/dev-ui/app.js +166 -19
  27. package/dist/dev-ui/index.html +138 -0
  28. package/dist/dev-ui-react/App.tsx +164 -0
  29. package/dist/dev-ui-react/__tests__/previewData.test.ts +193 -0
  30. package/dist/dev-ui-react/components/BlocksList.tsx +232 -0
  31. package/dist/dev-ui-react/components/Editor.tsx +469 -0
  32. package/dist/dev-ui-react/components/Preview.tsx +146 -0
  33. package/dist/dev-ui-react/hooks/useBlocks.ts +80 -0
  34. package/dist/dev-ui-react/index.html +13 -0
  35. package/dist/dev-ui-react/main.tsx +8 -0
  36. package/dist/dev-ui-react/styles.css +856 -0
  37. package/dist/dev-ui-react/types.ts +45 -0
  38. package/dist/types/block-config.d.ts +100 -2
  39. package/dist/types/block-config.d.ts.map +1 -1
  40. package/dist/types/block-config.js +6 -1
  41. package/dist/types/block-config.js.map +1 -1
  42. package/dist/utils/block-config.js +3 -3
  43. package/dist/utils/block-config.js.map +1 -1
  44. package/dist/utils/blocks-meta-cache.d.ts +28 -0
  45. package/dist/utils/blocks-meta-cache.d.ts.map +1 -0
  46. package/dist/utils/blocks-meta-cache.js +72 -0
  47. package/dist/utils/blocks-meta-cache.js.map +1 -0
  48. package/dist/utils/builder.d.ts +3 -0
  49. package/dist/utils/builder.d.ts.map +1 -1
  50. package/dist/utils/builder.js +17 -14
  51. package/dist/utils/builder.js.map +1 -1
  52. package/dist/utils/field-schema.d.ts +2 -0
  53. package/dist/utils/field-schema.d.ts.map +1 -1
  54. package/dist/utils/field-schema.js +21 -4
  55. package/dist/utils/field-schema.js.map +1 -1
  56. package/dist/utils/graphql.d.ts +2 -0
  57. package/dist/utils/graphql.d.ts.map +1 -1
  58. package/dist/utils/graphql.js +22 -0
  59. package/dist/utils/graphql.js.map +1 -1
  60. package/dist/utils/scanner.d.ts +5 -3
  61. package/dist/utils/scanner.d.ts.map +1 -1
  62. package/dist/utils/scanner.js +23 -16
  63. package/dist/utils/scanner.js.map +1 -1
  64. package/dist/utils/type-generator.d.ts +7 -1
  65. package/dist/utils/type-generator.d.ts.map +1 -1
  66. package/dist/utils/type-generator.js +58 -41
  67. package/dist/utils/type-generator.js.map +1 -1
  68. package/package.json +8 -3
  69. package/dist/commands/deploy.d.ts +0 -9
  70. package/dist/commands/deploy.d.ts.map +0 -1
  71. package/dist/commands/deploy.js +0 -226
  72. package/dist/commands/deploy.js.map +0 -1
  73. package/dist/commands/push.d.ts +0 -9
  74. package/dist/commands/push.d.ts.map +0 -1
  75. package/dist/commands/push.js +0 -199
  76. package/dist/commands/push.js.map +0 -1
  77. package/dist/utils/blockforge-config.d.ts +0 -19
  78. package/dist/utils/blockforge-config.d.ts.map +0 -1
  79. package/dist/utils/blockforge-config.js +0 -19
  80. package/dist/utils/blockforge-config.js.map +0 -1
package/config.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export { defineBlock, defineTemplate } from "./dist/utils/block-config.js";
2
- export type { BlockConfig, TemplateConfig, FieldConfig, FieldType, BaseFieldConfig, SelectFieldConfig, RepeaterFieldConfig, BlockRequires, LayoutSlotType, ShowWhenCondition, FieldValidation, ValidationPattern, WorkspaceModule, FeatureFlag, } from "./dist/types/block-config.js";
2
+ export type { BlockConfig, FieldConfig, FieldType, BaseFieldConfig, SelectFieldConfig, RepeaterFieldConfig, BlockRequires, LayoutSlotType, ShowWhenCondition, FieldValidation, ValidationPattern, WorkspaceModule, FeatureFlag, TemplateConfig, TemplatePageBlueprint, TemplateBlockInstance, TemplateLayoutSlot, TemplateTheme, } from "./dist/types/block-config.js";
package/dist/cli.js CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from "commander";
3
+ import { addSourceCommand } from "./commands/add-source.js";
3
4
  import { buildCommand } from "./commands/build.js";
4
5
  import { configureCommand } from "./commands/configure.js";
5
6
  import { createCommand } from "./commands/create.js";
@@ -21,51 +22,121 @@ const program = new Command();
21
22
  program
22
23
  .name("cmssy")
23
24
  .description("Unified CLI for building and publishing blocks to Cmssy marketplace")
24
- .version(packageJson.version);
25
+ .version(packageJson.version)
26
+ .addHelpText("after", `
27
+ Examples:
28
+ $ cmssy init my-blocks Create a new project
29
+ $ cmssy create block hero Add a new block to your project
30
+ $ cmssy dev Start dev server with hot reload
31
+ $ cmssy build Build all blocks for production
32
+ $ cmssy publish --all -w abc Publish all to workspace
33
+
34
+ Workflow:
35
+ 1. init → Create project with example block
36
+ 2. create → Add more blocks/templates
37
+ 3. dev → Develop with live preview
38
+ 4. build → Bundle for production
39
+ 5. publish → Deploy to marketplace or workspace
40
+
41
+ Documentation: https://cmssy.io/docs/cli
42
+ `);
25
43
  // cmssy init
26
44
  program
27
45
  .command("init")
28
46
  .description("Initialize a new Cmssy project")
29
- .argument("[name]", "Project name")
47
+ .argument("[name]", "Project name (creates directory)")
30
48
  .option("-f, --framework <framework>", "Framework (react, vue, angular, vanilla)", "react")
49
+ .addHelpText("after", `
50
+ Examples:
51
+ $ cmssy init Create project in current directory
52
+ $ cmssy init my-blocks Create project in ./my-blocks
53
+ $ cmssy init -f vue my-blocks Create Vue project
54
+ `)
31
55
  .action(initCommand);
32
56
  // cmssy create
33
57
  const create = program
34
58
  .command("create")
35
- .description("Create a new block or template");
59
+ .description("Create a new block or template")
60
+ .addHelpText("after", `
61
+ Examples:
62
+ $ cmssy create block hero
63
+ $ cmssy create block pricing -c marketing -t "pricing,plans"
64
+ $ cmssy create template landing-page
65
+ `);
36
66
  create
37
67
  .command("block")
38
- .description("Create a new block")
39
- .argument("<name>", "Block name")
68
+ .description("Create a new block with scaffold files")
69
+ .argument("<name>", "Block name (kebab-case recommended)")
40
70
  .option("-y, --yes", "Skip prompts and use defaults")
41
71
  .option("-d, --description <description>", "Block description")
42
- .option("-c, --category <category>", "Block category (marketing, typography, media, layout, forms, navigation, other)")
72
+ .option("-c, --category <category>", "Category: marketing, typography, media, layout, forms, navigation, other")
43
73
  .option("-t, --tags <tags>", "Comma-separated tags")
74
+ .addHelpText("after", `
75
+ Creates:
76
+ blocks/<name>/
77
+ ├── block.config.ts Type-safe configuration
78
+ ├── package.json Name and version
79
+ ├── preview.json Preview data for dev server
80
+ └── src/
81
+ ├── index.tsx Entry point (mount/unmount)
82
+ ├── Block.tsx React component
83
+ ├── block.d.ts Auto-generated types
84
+ └── index.css Styles
85
+ `)
44
86
  .action(createCommand.block);
45
87
  create
46
88
  .command("template")
47
89
  .description("Create a new page template")
48
- .argument("<name>", "Template name")
90
+ .argument("<name>", "Template name (kebab-case recommended)")
49
91
  .option("-y, --yes", "Skip prompts and use defaults")
50
92
  .option("-d, --description <description>", "Template description")
51
93
  .action(createCommand.page);
52
94
  // cmssy build
53
95
  program
54
96
  .command("build")
55
- .description("Build all blocks and templates")
56
- .option("--framework <framework>", "Framework to use")
97
+ .description("Build blocks and templates for production")
98
+ .option("--block <names...>", "Build only specific blocks/templates")
99
+ .option("--framework <framework>", "Override framework from config")
100
+ .addHelpText("after", `
101
+ Examples:
102
+ $ cmssy build Build all blocks and templates
103
+ $ cmssy build --block hero pricing Build only hero and pricing blocks
104
+
105
+ Output:
106
+ public/@vendor/blocks.<name>/<version>/
107
+ ├── index.js Bundled JavaScript
108
+ ├── index.css Styles
109
+ └── package.json Metadata for marketplace
110
+ `)
57
111
  .action(buildCommand);
58
112
  // cmssy dev
59
113
  program
60
114
  .command("dev")
61
- .description("Start development server with preview")
115
+ .description("Start development server with hot reload")
62
116
  .option("-p, --port <port>", "Port number", "3000")
117
+ .addHelpText("after", `
118
+ Examples:
119
+ $ cmssy dev Start on default port 3000
120
+ $ cmssy dev -p 8080 Start on port 8080
121
+
122
+ Features:
123
+ • Live preview of all blocks/templates
124
+ • Hot reload on file changes
125
+ • Auto-regenerates types on block.config.ts changes
126
+ `)
63
127
  .action(devCommand);
64
128
  // cmssy configure
65
129
  program
66
130
  .command("configure")
67
131
  .description("Configure Cmssy API credentials")
68
132
  .option("--api-url <url>", "Cmssy API URL", "https://api.cmssy.io/graphql")
133
+ .addHelpText("after", `
134
+ Stores credentials in .env file:
135
+ CMSSY_API_TOKEN=your-token
136
+ CMSSY_API_URL=https://api.cmssy.io/graphql
137
+
138
+ Get your API token at: https://cmssy.io/settings/tokens
139
+ `)
69
140
  .action(configureCommand);
70
141
  // cmssy publish
71
142
  program
@@ -87,37 +158,79 @@ program
87
158
  // cmssy sync
88
159
  program
89
160
  .command("sync")
90
- .description("Pull blocks from Cmssy marketplace to local project")
91
- .argument("[package]", "Package slug to sync (e.g., @vendor/blocks.hero)")
92
- .option("--workspace <id>", "Workspace ID to sync from")
161
+ .description("Pull blocks from marketplace to local project")
162
+ .argument("[package]", "Package slug (e.g., @vendor/blocks.hero)")
163
+ .option("--workspace <id>", "Sync from specific workspace")
164
+ .addHelpText("after", `
165
+ Examples:
166
+ $ cmssy sync @acme/blocks.hero Sync from marketplace
167
+ $ cmssy sync --workspace abc123 Sync all from workspace
168
+ `)
93
169
  .action(syncCommand);
94
170
  // cmssy migrate
95
171
  program
96
172
  .command("migrate [block-name]")
97
- .description("Migrate from package.json cmssy section to block.config.ts")
173
+ .description("Migrate legacy package.json config to block.config.ts")
174
+ .addHelpText("after", `
175
+ Examples:
176
+ $ cmssy migrate hero Migrate specific block
177
+ $ cmssy migrate Migrate all blocks/templates
178
+
179
+ Converts:
180
+ package.json { cmssy: {...} } → block.config.ts
181
+ `)
98
182
  .action(migrateCommand);
99
183
  // cmssy package
100
184
  program
101
185
  .command("package [packages...]")
102
- .description("Package blocks/templates into ZIP files\n\n" +
103
- " Packages are directory names from blocks/ or templates/ folders.\n" +
104
- " Examples:\n" +
105
- " cmssy package hero faq -o dist\n" +
106
- " cmssy package --all")
186
+ .description("Package blocks/templates into ZIP files for manual upload")
107
187
  .option("--all", "Package all blocks and templates")
108
188
  .option("-o, --output <dir>", "Output directory", "packages")
189
+ .addHelpText("after", `
190
+ Examples:
191
+ $ cmssy package hero faq Package specific blocks
192
+ $ cmssy package --all Package everything
193
+ $ cmssy package -o dist --all Package to custom directory
194
+
195
+ Use with 'upload' for two-step deployment.
196
+ `)
109
197
  .action(packageCommand);
110
198
  // cmssy upload
111
199
  program
112
200
  .command("upload [files...]")
113
- .description("Upload packaged ZIP files to workspace")
114
- .option("-w, --workspace <id>", "Workspace ID to upload to")
115
- .option("--all", "Upload all packages from packages directory")
201
+ .description("Upload ZIP packages to workspace")
202
+ .option("-w, --workspace <id>", "Target workspace ID")
203
+ .option("--all", "Upload all from packages directory")
204
+ .addHelpText("after", `
205
+ Examples:
206
+ $ cmssy upload hero.zip -w abc123 Upload single package
207
+ $ cmssy upload --all -w abc123 Upload all packages
208
+ `)
116
209
  .action(uploadCommand);
117
210
  // cmssy workspaces
118
211
  program
119
212
  .command("workspaces")
120
- .description("List your workspaces and get workspace IDs")
213
+ .description("List your workspaces and their IDs")
214
+ .addHelpText("after", `
215
+ Use workspace IDs with:
216
+ $ cmssy publish --workspace <id>
217
+ $ cmssy upload --workspace <id>
218
+ $ cmssy sync --workspace <id>
219
+ `)
121
220
  .action(workspacesCommand);
221
+ // cmssy add-source
222
+ program
223
+ .command("add-source [blocks...]")
224
+ .description("Upload source code to workspace for AI Block Builder")
225
+ .option("-w, --workspace <id>", "Target workspace ID")
226
+ .option("--all", "Add source for all local blocks")
227
+ .addHelpText("after", `
228
+ Examples:
229
+ $ cmssy add-source hero pricing -w abc123
230
+ $ cmssy add-source --all -w abc123
231
+
232
+ Enables AI Block Builder to edit your blocks in the Cmssy editor.
233
+ `)
234
+ .action(addSourceCommand);
122
235
  program.parse();
123
236
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ interface AddSourceOptions {
2
+ workspace?: string;
3
+ all?: boolean;
4
+ }
5
+ export declare function addSourceCommand(blockNames: string[] | undefined, options: AddSourceOptions): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=add-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-source.d.ts","sourceRoot":"","sources":["../../src/commands/add-source.ts"],"names":[],"mappings":"AAYA,UAAU,gBAAgB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AA4GD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAAE,YAAK,EACzB,OAAO,EAAE,gBAAgB,iBAyL1B"}
@@ -0,0 +1,238 @@
1
+ import chalk from "chalk";
2
+ import fs from "fs-extra";
3
+ import { GraphQLClient } from "graphql-request";
4
+ import inquirer from "inquirer";
5
+ import ora from "ora";
6
+ import path from "path";
7
+ import { hasConfig, loadConfig } from "../utils/config.js";
8
+ import { ADD_BLOCK_SOURCE_CODE_MUTATION, GET_WORKSPACE_BLOCKS_QUERY, } from "../utils/graphql.js";
9
+ /**
10
+ * Read original source code for AI Block Builder (editable in Sandpack).
11
+ * Combines the main component file with type definitions into a single file.
12
+ */
13
+ async function readOriginalSourceCode(packagePath) {
14
+ const srcDir = path.join(packagePath, "src");
15
+ // Find main component file (not index.tsx, but the actual component)
16
+ const files = fs.readdirSync(srcDir);
17
+ let mainComponentFile;
18
+ let sourceCode;
19
+ // Look for component files (excluding index.tsx and .d.ts files)
20
+ for (const file of files) {
21
+ if ((file.endsWith(".tsx") || file.endsWith(".ts")) &&
22
+ !file.startsWith("index") &&
23
+ !file.endsWith(".d.ts")) {
24
+ mainComponentFile = path.join(srcDir, file);
25
+ break;
26
+ }
27
+ }
28
+ // If no main component found, try index.tsx
29
+ if (!mainComponentFile) {
30
+ const indexPath = path.join(srcDir, "index.tsx");
31
+ if (fs.existsSync(indexPath)) {
32
+ mainComponentFile = indexPath;
33
+ }
34
+ }
35
+ if (mainComponentFile && fs.existsSync(mainComponentFile)) {
36
+ // Read the main component
37
+ let content = fs.readFileSync(mainComponentFile, "utf-8");
38
+ // Read block.d.ts if exists and inline the types
39
+ const blockDtsPath = path.join(srcDir, "block.d.ts");
40
+ if (fs.existsSync(blockDtsPath)) {
41
+ const blockDts = fs.readFileSync(blockDtsPath, "utf-8");
42
+ // Extract interface/type definitions from block.d.ts
43
+ const typeMatch = blockDts.match(/(?:export\s+)?(?:interface|type)\s+BlockContent[\s\S]*?(?=(?:export\s+)?(?:interface|type)|$)/);
44
+ if (typeMatch) {
45
+ // Remove the import from block.d.ts and add inline type
46
+ content = content.replace(/import\s*{\s*BlockContent\s*}\s*from\s*["']\.\/block(?:\.d)?["'];?\n?/, "");
47
+ // Add inline interface at the top
48
+ const inlineInterface = `interface BlockContent {
49
+ [key: string]: any;
50
+ }\n\n`;
51
+ // Insert after imports
52
+ const lastImportMatch = content.match(/^(import[\s\S]*?from\s*['"][^'"]+['"];?\n)/m);
53
+ if (lastImportMatch) {
54
+ const insertPos = content.lastIndexOf(lastImportMatch[0]) + lastImportMatch[0].length;
55
+ content =
56
+ content.slice(0, insertPos) +
57
+ "\n" +
58
+ inlineInterface +
59
+ content.slice(insertPos);
60
+ }
61
+ else {
62
+ content = inlineInterface + content;
63
+ }
64
+ }
65
+ }
66
+ sourceCode = content;
67
+ }
68
+ // Read CSS
69
+ const cssPath = path.join(srcDir, "index.css");
70
+ const sourceCss = fs.existsSync(cssPath)
71
+ ? fs.readFileSync(cssPath, "utf-8")
72
+ : undefined;
73
+ // Read dependencies from package.json
74
+ const pkgPath = path.join(packagePath, "package.json");
75
+ let dependencies;
76
+ if (fs.existsSync(pkgPath)) {
77
+ const pkg = fs.readJsonSync(pkgPath);
78
+ if (pkg.dependencies && Object.keys(pkg.dependencies).length > 0) {
79
+ dependencies = pkg.dependencies;
80
+ }
81
+ }
82
+ return { sourceCode, sourceCss, dependencies };
83
+ }
84
+ export async function addSourceCommand(blockNames = [], options) {
85
+ console.log(chalk.blue.bold("\n📦 Cmssy - Add Source Code\n"));
86
+ // Check configuration
87
+ if (!hasConfig()) {
88
+ console.error(chalk.red("✖ Not configured. Run: cmssy configure\n"));
89
+ process.exit(1);
90
+ }
91
+ const config = loadConfig();
92
+ // Get workspace ID
93
+ let workspaceId = options.workspace;
94
+ if (!workspaceId) {
95
+ if (config.workspaceId) {
96
+ workspaceId = config.workspaceId;
97
+ console.log(chalk.gray(`Using workspace ID from .env: ${workspaceId}\n`));
98
+ }
99
+ else {
100
+ const answer = await inquirer.prompt([
101
+ {
102
+ type: "input",
103
+ name: "workspaceId",
104
+ message: "Enter Workspace ID:",
105
+ validate: (input) => {
106
+ if (!input) {
107
+ return "Workspace ID is required (or set CMSSY_WORKSPACE_ID in .env)";
108
+ }
109
+ return true;
110
+ },
111
+ },
112
+ ]);
113
+ workspaceId = answer.workspaceId;
114
+ }
115
+ }
116
+ // Find cmssy.config.js
117
+ const configPath = path.join(process.cwd(), "cmssy.config.js");
118
+ if (!fs.existsSync(configPath)) {
119
+ console.error(chalk.red("✖ Not a cmssy project (missing cmssy.config.js)\n"));
120
+ process.exit(1);
121
+ }
122
+ // Create GraphQL client
123
+ const client = new GraphQLClient(config.apiUrl, {
124
+ headers: {
125
+ "Content-Type": "application/json",
126
+ Authorization: `Bearer ${config.apiToken}`,
127
+ "X-Workspace-ID": workspaceId,
128
+ },
129
+ });
130
+ // Fetch workspace blocks
131
+ const spinner = ora("Fetching workspace blocks...").start();
132
+ let workspaceBlocks;
133
+ try {
134
+ const result = await client.request(GET_WORKSPACE_BLOCKS_QUERY);
135
+ workspaceBlocks = result.workspaceBlocks;
136
+ spinner.succeed(`Found ${workspaceBlocks.length} blocks in workspace`);
137
+ }
138
+ catch (error) {
139
+ spinner.fail("Failed to fetch workspace blocks");
140
+ console.error(chalk.red(error.message));
141
+ process.exit(1);
142
+ }
143
+ // Find blocks directory
144
+ const blocksDir = path.join(process.cwd(), "blocks");
145
+ if (!fs.existsSync(blocksDir)) {
146
+ console.error(chalk.red("✖ No blocks directory found\n"));
147
+ process.exit(1);
148
+ }
149
+ // Get list of local blocks
150
+ const localBlocks = fs
151
+ .readdirSync(blocksDir, { withFileTypes: true })
152
+ .filter((d) => d.isDirectory())
153
+ .map((d) => d.name);
154
+ // Filter blocks to process
155
+ let blocksToProcess;
156
+ if (options.all) {
157
+ blocksToProcess = localBlocks;
158
+ }
159
+ else if (blockNames.length > 0) {
160
+ blocksToProcess = blockNames.filter((name) => localBlocks.includes(name));
161
+ const missing = blockNames.filter((name) => !localBlocks.includes(name));
162
+ if (missing.length > 0) {
163
+ console.warn(chalk.yellow(`Warning: Blocks not found locally: ${missing.join(", ")}`));
164
+ }
165
+ }
166
+ else {
167
+ // Interactive selection
168
+ const choices = localBlocks.map((name) => {
169
+ const wsBlock = workspaceBlocks.find((b) => b.blockType === name);
170
+ const hasSource = wsBlock?.sourceUrl ? chalk.green(" (has source)") : chalk.gray(" (no source)");
171
+ return {
172
+ name: `${name}${hasSource}`,
173
+ value: name,
174
+ checked: !wsBlock?.sourceUrl,
175
+ };
176
+ });
177
+ const answer = await inquirer.prompt([
178
+ {
179
+ type: "checkbox",
180
+ name: "blocks",
181
+ message: "Select blocks to add source code:",
182
+ choices,
183
+ },
184
+ ]);
185
+ blocksToProcess = answer.blocks;
186
+ }
187
+ if (blocksToProcess.length === 0) {
188
+ console.log(chalk.yellow("\n⚠ No blocks selected\n"));
189
+ return;
190
+ }
191
+ console.log(chalk.cyan(`\nAdding source to ${blocksToProcess.length} block(s):\n`));
192
+ let successCount = 0;
193
+ let errorCount = 0;
194
+ for (const blockName of blocksToProcess) {
195
+ const blockPath = path.join(blocksDir, blockName);
196
+ const wsBlock = workspaceBlocks.find((b) => b.blockType === blockName);
197
+ if (!wsBlock) {
198
+ console.log(chalk.yellow(` ⚠ ${blockName}: Not found in workspace (publish it first)`));
199
+ continue;
200
+ }
201
+ const blockSpinner = ora(`Adding source to ${blockName}...`).start();
202
+ try {
203
+ // Read source code
204
+ const { sourceCode, sourceCss, dependencies } = await readOriginalSourceCode(blockPath);
205
+ if (!sourceCode) {
206
+ blockSpinner.warn(`${blockName}: No source code found`);
207
+ continue;
208
+ }
209
+ // Upload via mutation
210
+ const input = {
211
+ blockId: wsBlock.id,
212
+ sourceCode,
213
+ };
214
+ if (sourceCss) {
215
+ input.sourceCss = sourceCss;
216
+ }
217
+ if (dependencies) {
218
+ input.dependencies = dependencies;
219
+ }
220
+ await client.request(ADD_BLOCK_SOURCE_CODE_MUTATION, { input });
221
+ blockSpinner.succeed(chalk.green(`${blockName}: Source added`));
222
+ successCount++;
223
+ }
224
+ catch (error) {
225
+ blockSpinner.fail(chalk.red(`${blockName}: Failed`));
226
+ console.error(chalk.red(` Error: ${error.message}`));
227
+ errorCount++;
228
+ }
229
+ }
230
+ console.log("");
231
+ if (errorCount === 0) {
232
+ console.log(chalk.green.bold(`✓ ${successCount} block(s) updated successfully\n`));
233
+ }
234
+ else {
235
+ console.log(chalk.yellow(`⚠ ${successCount} succeeded, ${errorCount} failed\n`));
236
+ }
237
+ }
238
+ //# sourceMappingURL=add-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-source.js","sourceRoot":"","sources":["../../src/commands/add-source.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  interface BuildOptions {
2
2
  framework?: string;
3
+ block?: string[];
3
4
  }
4
5
  export declare function buildCommand(options: BuildOptions): Promise<void>;
5
6
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAOA,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,iBAgEvD"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AASA,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,iBAqHvD"}
@@ -4,42 +4,86 @@ import path from "path";
4
4
  import { loadConfig } from "../utils/cmssy-config.js";
5
5
  import { scanResources } from "../utils/scanner.js";
6
6
  import { buildResource } from "../utils/builder.js";
7
+ import { updateBlockInCache } from "../utils/blocks-meta-cache.js";
8
+ import { getFieldTypes } from "../utils/field-schema.js";
7
9
  export async function buildCommand(options) {
8
10
  const spinner = ora("Starting build...").start();
9
11
  try {
10
12
  const config = await loadConfig();
11
13
  const framework = options.framework || config.framework;
12
14
  // Scan for blocks and templates (strict mode - throw errors)
15
+ // If --block is provided, only scan those specific blocks
13
16
  const resources = await scanResources({
14
17
  strict: true,
15
18
  loadConfig: true,
16
19
  validateSchema: true,
17
20
  loadPreview: false,
18
21
  requirePackageJson: true,
22
+ names: options.block,
19
23
  });
24
+ // If --block was provided but no matches found, show available blocks
25
+ if (options.block && options.block.length > 0 && resources.length === 0) {
26
+ spinner.fail(`No matching blocks found: ${options.block.join(", ")}`);
27
+ // Quick scan to list available blocks (minimal, no validation)
28
+ const allResources = await scanResources({
29
+ strict: false,
30
+ loadConfig: false,
31
+ validateSchema: false,
32
+ loadPreview: false,
33
+ requirePackageJson: false,
34
+ });
35
+ console.log(chalk.yellow("\nAvailable blocks/templates:"));
36
+ allResources.forEach((r) => console.log(` - ${r.name}`));
37
+ process.exit(1);
38
+ }
20
39
  if (resources.length === 0) {
21
40
  spinner.warn("No blocks or templates found");
22
41
  process.exit(0);
23
42
  }
24
43
  spinner.text = `Building ${resources.length} resources...`;
25
44
  const outDir = path.join(process.cwd(), config.build?.outDir || "public");
45
+ // Fetch field types from backend (used for type generation)
46
+ const fieldTypes = await getFieldTypes();
47
+ // Build in parallel with concurrency limit
48
+ const CONCURRENCY = 8;
49
+ const buildOptions = {
50
+ framework,
51
+ minify: config.build?.minify ?? true,
52
+ sourcemap: config.build?.sourcemap ?? true,
53
+ outputMode: "versioned",
54
+ generatePackageJson: true,
55
+ generateTypes: true,
56
+ strict: true,
57
+ fieldTypes,
58
+ };
59
+ const results = [];
60
+ // Process in batches for controlled parallelism
61
+ for (let i = 0; i < resources.length; i += CONCURRENCY) {
62
+ const batch = resources.slice(i, i + CONCURRENCY);
63
+ const batchResults = await Promise.all(batch.map(async (resource) => {
64
+ try {
65
+ await buildResource(resource, outDir, buildOptions);
66
+ return { resource, success: true };
67
+ }
68
+ catch (error) {
69
+ return { resource, success: false, error };
70
+ }
71
+ }));
72
+ results.push(...batchResults);
73
+ }
74
+ // Log results and update cache
26
75
  let successCount = 0;
27
76
  let errorCount = 0;
28
- for (const resource of resources) {
29
- try {
30
- await buildResource(resource, outDir, {
31
- framework,
32
- minify: config.build?.minify ?? true,
33
- sourcemap: config.build?.sourcemap ?? true,
34
- outputMode: "versioned",
35
- generatePackageJson: true,
36
- generateTypes: true,
37
- strict: true,
38
- });
77
+ for (const { resource, success, error } of results) {
78
+ if (success) {
39
79
  successCount++;
40
80
  console.log(chalk.green(` ✓ ${resource.packageJson.name}@${resource.packageJson.version}`));
81
+ // Update metadata cache with fresh data
82
+ if (resource.blockConfig) {
83
+ updateBlockInCache(resource.name, resource.type, resource.blockConfig, resource.packageJson?.version);
84
+ }
41
85
  }
42
- catch (error) {
86
+ else {
43
87
  errorCount++;
44
88
  console.error(chalk.red(` ✖ ${resource.name}:`), error);
45
89
  }
@@ -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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"}