@cmssy/cli 0.22.4 → 9.1.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/dist/index.js +435 -0
- package/package.json +25 -86
- package/LICENSE +0 -21
- package/README.md +0 -692
- package/config.d.ts +0 -3
- package/config.js +0 -4
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -340
- package/dist/cli.js.map +0 -1
- package/dist/commands/add-source.d.ts +0 -13
- package/dist/commands/add-source.d.ts.map +0 -1
- package/dist/commands/add-source.js +0 -273
- package/dist/commands/add-source.js.map +0 -1
- package/dist/commands/build.d.ts +0 -7
- package/dist/commands/build.d.ts.map +0 -1
- package/dist/commands/build.js +0 -127
- package/dist/commands/build.js.map +0 -1
- package/dist/commands/codegen.d.ts +0 -7
- package/dist/commands/codegen.d.ts.map +0 -1
- package/dist/commands/codegen.js +0 -150
- package/dist/commands/codegen.js.map +0 -1
- package/dist/commands/configure.d.ts +0 -6
- package/dist/commands/configure.d.ts.map +0 -1
- package/dist/commands/configure.js +0 -39
- package/dist/commands/configure.js.map +0 -1
- package/dist/commands/create.d.ts +0 -18
- package/dist/commands/create.d.ts.map +0 -1
- package/dist/commands/create.js +0 -403
- package/dist/commands/create.js.map +0 -1
- package/dist/commands/dev.d.ts +0 -6
- package/dist/commands/dev.d.ts.map +0 -1
- package/dist/commands/dev.js +0 -144
- package/dist/commands/dev.js.map +0 -1
- package/dist/commands/doctor.d.ts +0 -2
- package/dist/commands/doctor.d.ts.map +0 -1
- package/dist/commands/doctor.js +0 -230
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/init.d.ts +0 -6
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -414
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/lib.d.ts +0 -17
- package/dist/commands/lib.d.ts.map +0 -1
- package/dist/commands/lib.js +0 -132
- package/dist/commands/lib.js.map +0 -1
- package/dist/commands/link.d.ts +0 -8
- package/dist/commands/link.d.ts.map +0 -1
- package/dist/commands/link.js +0 -116
- package/dist/commands/link.js.map +0 -1
- package/dist/commands/migrate.d.ts +0 -2
- package/dist/commands/migrate.d.ts.map +0 -1
- package/dist/commands/migrate.js +0 -231
- package/dist/commands/migrate.js.map +0 -1
- package/dist/commands/package.d.ts +0 -14
- package/dist/commands/package.d.ts.map +0 -1
- package/dist/commands/package.js +0 -137
- package/dist/commands/package.js.map +0 -1
- package/dist/commands/publish-block-buildtime.d.ts +0 -8
- package/dist/commands/publish-block-buildtime.d.ts.map +0 -1
- package/dist/commands/publish-block-buildtime.js +0 -290
- package/dist/commands/publish-block-buildtime.js.map +0 -1
- package/dist/commands/publish-template.d.ts +0 -22
- package/dist/commands/publish-template.d.ts.map +0 -1
- package/dist/commands/publish-template.js +0 -345
- package/dist/commands/publish-template.js.map +0 -1
- package/dist/commands/publish.d.ts +0 -15
- package/dist/commands/publish.d.ts.map +0 -1
- package/dist/commands/publish.js +0 -1003
- package/dist/commands/publish.js.map +0 -1
- package/dist/commands/skills.d.ts +0 -11
- package/dist/commands/skills.d.ts.map +0 -1
- package/dist/commands/skills.js +0 -178
- package/dist/commands/skills.js.map +0 -1
- package/dist/commands/sync.d.ts +0 -6
- package/dist/commands/sync.d.ts.map +0 -1
- package/dist/commands/sync.js +0 -208
- package/dist/commands/sync.js.map +0 -1
- package/dist/commands/test.d.ts +0 -8
- package/dist/commands/test.d.ts.map +0 -1
- package/dist/commands/test.js +0 -60
- package/dist/commands/test.js.map +0 -1
- package/dist/commands/upload.d.ts +0 -11
- package/dist/commands/upload.d.ts.map +0 -1
- package/dist/commands/upload.js +0 -128
- package/dist/commands/upload.js.map +0 -1
- package/dist/commands/workspaces.d.ts +0 -2
- package/dist/commands/workspaces.d.ts.map +0 -1
- package/dist/commands/workspaces.js +0 -62
- package/dist/commands/workspaces.js.map +0 -1
- package/dist/dev-ui/app.js +0 -1284
- package/dist/dev-ui/index.html +0 -1511
- package/dist/dev-ui-react/App.tsx +0 -164
- package/dist/dev-ui-react/__tests__/previewData.test.ts +0 -193
- package/dist/dev-ui-react/components/BlocksList.tsx +0 -232
- package/dist/dev-ui-react/components/Editor.tsx +0 -469
- package/dist/dev-ui-react/components/Preview.tsx +0 -146
- package/dist/dev-ui-react/hooks/useBlocks.ts +0 -80
- package/dist/dev-ui-react/index.html +0 -13
- package/dist/dev-ui-react/main.tsx +0 -8
- package/dist/dev-ui-react/styles.css +0 -856
- package/dist/dev-ui-react/types.ts +0 -45
- package/dist/skills/claude/cmssy-block.md +0 -454
- package/dist/skills/claude/cmssy-mcp-content.md +0 -235
- package/dist/test-helpers/index.d.ts +0 -23
- package/dist/test-helpers/index.d.ts.map +0 -1
- package/dist/test-helpers/index.js +0 -50
- package/dist/test-helpers/index.js.map +0 -1
- package/dist/types/block-config.d.ts +0 -6
- package/dist/types/block-config.d.ts.map +0 -1
- package/dist/types/block-config.js +0 -12
- package/dist/types/block-config.js.map +0 -1
- package/dist/types/publish-job.d.ts +0 -61
- package/dist/types/publish-job.d.ts.map +0 -1
- package/dist/types/publish-job.js +0 -13
- package/dist/types/publish-job.js.map +0 -1
- package/dist/utils/api-error.d.ts +0 -10
- package/dist/utils/api-error.d.ts.map +0 -1
- package/dist/utils/api-error.js +0 -55
- package/dist/utils/api-error.js.map +0 -1
- package/dist/utils/block-config.d.ts +0 -87
- package/dist/utils/block-config.d.ts.map +0 -1
- package/dist/utils/block-config.js +0 -214
- package/dist/utils/block-config.js.map +0 -1
- package/dist/utils/blocks-meta-cache.d.ts +0 -28
- package/dist/utils/blocks-meta-cache.d.ts.map +0 -1
- package/dist/utils/blocks-meta-cache.js +0 -72
- package/dist/utils/blocks-meta-cache.js.map +0 -1
- package/dist/utils/builder.d.ts +0 -34
- package/dist/utils/builder.d.ts.map +0 -1
- package/dist/utils/builder.js +0 -140
- package/dist/utils/builder.js.map +0 -1
- package/dist/utils/cmssy-config.d.ts +0 -16
- package/dist/utils/cmssy-config.d.ts.map +0 -1
- package/dist/utils/cmssy-config.js +0 -19
- package/dist/utils/cmssy-config.js.map +0 -1
- package/dist/utils/config.d.ts +0 -9
- package/dist/utils/config.d.ts.map +0 -1
- package/dist/utils/config.js +0 -51
- package/dist/utils/config.js.map +0 -1
- package/dist/utils/dependency-check.d.ts +0 -21
- package/dist/utils/dependency-check.d.ts.map +0 -1
- package/dist/utils/dependency-check.js +0 -56
- package/dist/utils/dependency-check.js.map +0 -1
- package/dist/utils/dev-generator/api-routes/blocks.d.ts +0 -3
- package/dist/utils/dev-generator/api-routes/blocks.d.ts.map +0 -1
- package/dist/utils/dev-generator/api-routes/blocks.js +0 -194
- package/dist/utils/dev-generator/api-routes/blocks.js.map +0 -1
- package/dist/utils/dev-generator/api-routes/config.d.ts +0 -2
- package/dist/utils/dev-generator/api-routes/config.d.ts.map +0 -1
- package/dist/utils/dev-generator/api-routes/config.js +0 -107
- package/dist/utils/dev-generator/api-routes/config.js.map +0 -1
- package/dist/utils/dev-generator/api-routes/preview.d.ts +0 -2
- package/dist/utils/dev-generator/api-routes/preview.d.ts.map +0 -1
- package/dist/utils/dev-generator/api-routes/preview.js +0 -50
- package/dist/utils/dev-generator/api-routes/preview.js.map +0 -1
- package/dist/utils/dev-generator/api-routes/workspaces.d.ts +0 -2
- package/dist/utils/dev-generator/api-routes/workspaces.d.ts.map +0 -1
- package/dist/utils/dev-generator/api-routes/workspaces.js +0 -128
- package/dist/utils/dev-generator/api-routes/workspaces.js.map +0 -1
- package/dist/utils/dev-generator/helpers.d.ts +0 -23
- package/dist/utils/dev-generator/helpers.d.ts.map +0 -1
- package/dist/utils/dev-generator/helpers.js +0 -128
- package/dist/utils/dev-generator/helpers.js.map +0 -1
- package/dist/utils/dev-generator/home-page.d.ts +0 -2
- package/dist/utils/dev-generator/home-page.d.ts.map +0 -1
- package/dist/utils/dev-generator/home-page.js +0 -643
- package/dist/utils/dev-generator/home-page.js.map +0 -1
- package/dist/utils/dev-generator/index.d.ts +0 -11
- package/dist/utils/dev-generator/index.d.ts.map +0 -1
- package/dist/utils/dev-generator/index.js +0 -85
- package/dist/utils/dev-generator/index.js.map +0 -1
- package/dist/utils/dev-generator/layout.d.ts +0 -3
- package/dist/utils/dev-generator/layout.d.ts.map +0 -1
- package/dist/utils/dev-generator/layout.js +0 -63
- package/dist/utils/dev-generator/layout.js.map +0 -1
- package/dist/utils/dev-generator/next-config.d.ts +0 -3
- package/dist/utils/dev-generator/next-config.d.ts.map +0 -1
- package/dist/utils/dev-generator/next-config.js +0 -111
- package/dist/utils/dev-generator/next-config.js.map +0 -1
- package/dist/utils/dev-generator/preview-pages.d.ts +0 -3
- package/dist/utils/dev-generator/preview-pages.d.ts.map +0 -1
- package/dist/utils/dev-generator/preview-pages.js +0 -833
- package/dist/utils/dev-generator/preview-pages.js.map +0 -1
- package/dist/utils/dev-generator.d.ts +0 -12
- package/dist/utils/dev-generator.d.ts.map +0 -1
- package/dist/utils/dev-generator.js +0 -1752
- package/dist/utils/dev-generator.js.map +0 -1
- package/dist/utils/field-schema.d.ts +0 -13
- package/dist/utils/field-schema.d.ts.map +0 -1
- package/dist/utils/field-schema.js +0 -182
- package/dist/utils/field-schema.js.map +0 -1
- package/dist/utils/graphql.d.ts +0 -39
- package/dist/utils/graphql.d.ts.map +0 -1
- package/dist/utils/graphql.js +0 -138
- package/dist/utils/graphql.js.map +0 -1
- package/dist/utils/lib-manifest.d.ts +0 -7
- package/dist/utils/lib-manifest.d.ts.map +0 -1
- package/dist/utils/lib-manifest.js +0 -59
- package/dist/utils/lib-manifest.js.map +0 -1
- package/dist/utils/publish-helpers.d.ts +0 -43
- package/dist/utils/publish-helpers.d.ts.map +0 -1
- package/dist/utils/publish-helpers.js +0 -215
- package/dist/utils/publish-helpers.js.map +0 -1
- package/dist/utils/publish-helpers.test.d.ts +0 -2
- package/dist/utils/publish-helpers.test.d.ts.map +0 -1
- package/dist/utils/publish-helpers.test.js +0 -24
- package/dist/utils/publish-helpers.test.js.map +0 -1
- package/dist/utils/resolve-workspace.d.ts +0 -6
- package/dist/utils/resolve-workspace.d.ts.map +0 -1
- package/dist/utils/resolve-workspace.js +0 -32
- package/dist/utils/resolve-workspace.js.map +0 -1
- package/dist/utils/scanner.d.ts +0 -42
- package/dist/utils/scanner.d.ts.map +0 -1
- package/dist/utils/scanner.js +0 -156
- package/dist/utils/scanner.js.map +0 -1
- package/dist/utils/schema-diff.d.ts +0 -22
- package/dist/utils/schema-diff.d.ts.map +0 -1
- package/dist/utils/schema-diff.js +0 -107
- package/dist/utils/schema-diff.js.map +0 -1
- package/dist/utils/source-collector.d.ts +0 -19
- package/dist/utils/source-collector.d.ts.map +0 -1
- package/dist/utils/source-collector.js +0 -565
- package/dist/utils/source-collector.js.map +0 -1
- package/dist/utils/theme-builder.d.ts +0 -12
- package/dist/utils/theme-builder.d.ts.map +0 -1
- package/dist/utils/theme-builder.js +0 -117
- package/dist/utils/theme-builder.js.map +0 -1
- package/dist/utils/type-generator.d.ts +0 -9
- package/dist/utils/type-generator.d.ts.map +0 -1
- package/dist/utils/type-generator.js +0 -86
- package/dist/utils/type-generator.js.map +0 -1
- package/dist/utils/version.d.ts +0 -10
- package/dist/utils/version.d.ts.map +0 -1
- package/dist/utils/version.js +0 -30
- package/dist/utils/version.js.map +0 -1
- package/dist/utils/versions.d.ts.map +0 -1
- package/dist/utils/versions.js.map +0 -1
- package/src/dev-app/app/api/blocks/[name]/config/route.ts +0 -140
- package/src/dev-app/app/api/blocks/route.ts +0 -61
- package/src/dev-app/app/api/config/route.ts +0 -98
- package/src/dev-app/app/api/context/route.ts +0 -126
- package/src/dev-app/app/api/preview/[name]/route.ts +0 -137
- package/src/dev-app/app/api/workspaces/route.ts +0 -124
- package/src/dev-app/app/layout.tsx +0 -18
- package/src/dev-app/app/page.tsx +0 -1785
- package/test.d.ts +0 -1
- package/test.js +0 -2
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Helper functions for the publish command.
|
|
3
|
-
* Extracted for testability.
|
|
4
|
-
*/
|
|
5
|
-
import { execSync } from "child_process";
|
|
6
|
-
import fs from "fs-extra";
|
|
7
|
-
import path from "path";
|
|
8
|
-
/**
|
|
9
|
-
* Convert config.ts schema to schemaFields array for GraphQL mutation.
|
|
10
|
-
*/
|
|
11
|
-
export function convertSchemaToFields(schema) {
|
|
12
|
-
const fields = [];
|
|
13
|
-
// All known field properties that the backend model accepts.
|
|
14
|
-
// Pass through any that are defined - no per-type gating.
|
|
15
|
-
const OPTIONAL_PROPS = [
|
|
16
|
-
"defaultValue",
|
|
17
|
-
"placeholder",
|
|
18
|
-
"helperText",
|
|
19
|
-
"options",
|
|
20
|
-
"minValue",
|
|
21
|
-
"maxValue",
|
|
22
|
-
"minItems",
|
|
23
|
-
"maxItems",
|
|
24
|
-
"multiple",
|
|
25
|
-
"group",
|
|
26
|
-
"showWhen",
|
|
27
|
-
"validation",
|
|
28
|
-
];
|
|
29
|
-
Object.entries(schema).forEach(([key, field]) => {
|
|
30
|
-
const baseField = {
|
|
31
|
-
key,
|
|
32
|
-
type: field.type,
|
|
33
|
-
label: field.label,
|
|
34
|
-
required: field.required || false,
|
|
35
|
-
};
|
|
36
|
-
// Map helpText alias
|
|
37
|
-
if (field.helpText && !field.helperText) {
|
|
38
|
-
field.helperText = field.helpText;
|
|
39
|
-
}
|
|
40
|
-
// Pass through all known optional properties
|
|
41
|
-
for (const prop of OPTIONAL_PROPS) {
|
|
42
|
-
if (field[prop] !== undefined) {
|
|
43
|
-
baseField[prop] = field[prop];
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
// Repeater: recursively convert nested schema
|
|
47
|
-
if (field.type === "repeater" && field.schema) {
|
|
48
|
-
baseField.itemSchema = convertSchemaToFields(field.schema);
|
|
49
|
-
}
|
|
50
|
-
fields.push(baseField);
|
|
51
|
-
});
|
|
52
|
-
return fields;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Extract default content values from schema.
|
|
56
|
-
*/
|
|
57
|
-
export function extractDefaultContent(schema) {
|
|
58
|
-
const content = {};
|
|
59
|
-
Object.entries(schema).forEach(([key, field]) => {
|
|
60
|
-
if (field.defaultValue !== undefined) {
|
|
61
|
-
content[key] = field.defaultValue;
|
|
62
|
-
}
|
|
63
|
-
else if (field.type === "repeater") {
|
|
64
|
-
content[key] = [];
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
return content;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Extract block type from full package name.
|
|
71
|
-
* @example "@cmssy/blocks.hero" -> "hero"
|
|
72
|
-
* @example "@org/templates.landing" -> "landing"
|
|
73
|
-
* @example "vendor/blocks.hero" -> "hero"
|
|
74
|
-
* @example "blocks.hero" -> "hero"
|
|
75
|
-
*/
|
|
76
|
-
export function extractBlockType(packageName) {
|
|
77
|
-
// Trim first - surrounding whitespace from a hand-edited pages.json
|
|
78
|
-
// would otherwise break the `blocks.`/`templates.` prefix match and
|
|
79
|
-
// leak into the uploaded type.
|
|
80
|
-
const trimmed = packageName.trim();
|
|
81
|
-
// Take the final path segment so scoped (`@scope/blocks.hero`),
|
|
82
|
-
// non-scoped (`vendor/blocks.hero`), and bare (`blocks.hero`) names
|
|
83
|
-
// all reduce identically - then drop the `blocks.`/`templates.`
|
|
84
|
-
// prefix. Only ONE prefix is stripped (if/else, not chained) - a
|
|
85
|
-
// type carries one or the other, never both.
|
|
86
|
-
const segment = trimmed.includes("/")
|
|
87
|
-
? (trimmed.split("/").pop() ?? trimmed)
|
|
88
|
-
: trimmed;
|
|
89
|
-
if (segment.startsWith("blocks."))
|
|
90
|
-
return segment.slice(7);
|
|
91
|
-
if (segment.startsWith("templates."))
|
|
92
|
-
return segment.slice(10);
|
|
93
|
-
return segment;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Detect if a package is a template based on type.
|
|
97
|
-
*/
|
|
98
|
-
export function isTemplate(packageType) {
|
|
99
|
-
return packageType === "template";
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Parse pages.json data and convert to mutation input format.
|
|
103
|
-
*/
|
|
104
|
-
export function parsePagesJson(pagesData) {
|
|
105
|
-
// Convert pages
|
|
106
|
-
const pages = (pagesData.pages || []).map((page) => ({
|
|
107
|
-
name: page.name,
|
|
108
|
-
slug: page.slug,
|
|
109
|
-
blocks: (page.blocks || []).map((block) => ({
|
|
110
|
-
type: block.type,
|
|
111
|
-
content: block.content || {},
|
|
112
|
-
})),
|
|
113
|
-
}));
|
|
114
|
-
// Convert layoutPositions to array format
|
|
115
|
-
const layoutPositions = [];
|
|
116
|
-
if (pagesData.layoutPositions) {
|
|
117
|
-
for (const [position, data] of Object.entries(pagesData.layoutPositions)) {
|
|
118
|
-
layoutPositions.push({
|
|
119
|
-
position,
|
|
120
|
-
type: data.type,
|
|
121
|
-
content: data.content || {},
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
return { pages, layoutPositions };
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Load template config from config.ts using tsx.
|
|
129
|
-
* Fallback for templates that don't have pages.json.
|
|
130
|
-
*/
|
|
131
|
-
export function loadTemplateConfig(templateDir, projectRoot) {
|
|
132
|
-
const configPath = path.join(templateDir, "config.ts");
|
|
133
|
-
if (!fs.existsSync(configPath))
|
|
134
|
-
return null;
|
|
135
|
-
try {
|
|
136
|
-
const cliPath = path.dirname(path.dirname(new URL(import.meta.url).pathname));
|
|
137
|
-
const possibleTsxPaths = [
|
|
138
|
-
path.join(cliPath, "..", "node_modules", ".bin", "tsx"),
|
|
139
|
-
path.join(cliPath, "..", "..", "node_modules", ".bin", "tsx"),
|
|
140
|
-
path.join(projectRoot, "node_modules", ".bin", "tsx"),
|
|
141
|
-
];
|
|
142
|
-
let tsxBinary = possibleTsxPaths.find((p) => fs.existsSync(p));
|
|
143
|
-
if (!tsxBinary)
|
|
144
|
-
tsxBinary = "npx -y tsx";
|
|
145
|
-
const cacheDir = path.join(projectRoot, ".cmssy", "cache");
|
|
146
|
-
fs.ensureDirSync(cacheDir);
|
|
147
|
-
const mockConfigPath = path.join(cacheDir, "cmssy-cli-config.mjs");
|
|
148
|
-
fs.writeFileSync(mockConfigPath, "export const defineBlock = (config) => config;\nexport const defineTemplate = (config) => config;\nexport const defineTheme = (config) => config;\nexport const field = (config) => config;\n");
|
|
149
|
-
const configContent = fs.readFileSync(configPath, "utf-8");
|
|
150
|
-
const modified = configContent.replace(/from\s+['"](?:@?cmssy-?(?:\/cli)?\/config|cmssy-cli\/config)['"]/g, `from '${mockConfigPath.replace(/\\/g, "/")}'`);
|
|
151
|
-
const tempPath = path.join(cacheDir, `temp-template-config-${Date.now()}.ts`);
|
|
152
|
-
fs.writeFileSync(tempPath, modified);
|
|
153
|
-
const evalCode = `import cfg from '${tempPath.replace(/\\/g, "/")}'; console.log(JSON.stringify(cfg.default || cfg));`;
|
|
154
|
-
const cmd = tsxBinary.includes("npx")
|
|
155
|
-
? `${tsxBinary} --eval "${evalCode}"`
|
|
156
|
-
: `"${tsxBinary}" --eval "${evalCode}"`;
|
|
157
|
-
const output = execSync(cmd, {
|
|
158
|
-
encoding: "utf-8",
|
|
159
|
-
cwd: projectRoot,
|
|
160
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
161
|
-
});
|
|
162
|
-
try {
|
|
163
|
-
fs.removeSync(tempPath);
|
|
164
|
-
}
|
|
165
|
-
catch { }
|
|
166
|
-
try {
|
|
167
|
-
fs.removeSync(mockConfigPath);
|
|
168
|
-
}
|
|
169
|
-
catch { }
|
|
170
|
-
const lines = output.trim().split("\n");
|
|
171
|
-
return JSON.parse(lines[lines.length - 1]);
|
|
172
|
-
}
|
|
173
|
-
catch {
|
|
174
|
-
return null;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Convert template config.ts data to pages.json format.
|
|
179
|
-
* - layoutPositions: array → object keyed by position
|
|
180
|
-
* - page slugs: "home" → "/", others → "/{slug}"
|
|
181
|
-
*/
|
|
182
|
-
export function convertConfigToPagesData(config) {
|
|
183
|
-
const layoutPositions = {};
|
|
184
|
-
if (Array.isArray(config.layoutPositions)) {
|
|
185
|
-
for (const lp of config.layoutPositions) {
|
|
186
|
-
layoutPositions[lp.position] = {
|
|
187
|
-
type: lp.type,
|
|
188
|
-
content: lp.content || {},
|
|
189
|
-
};
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
else if (config.layoutPositions &&
|
|
193
|
-
typeof config.layoutPositions === "object") {
|
|
194
|
-
Object.assign(layoutPositions, config.layoutPositions);
|
|
195
|
-
}
|
|
196
|
-
const pages = (config.pages || []).map((page, index) => ({
|
|
197
|
-
name: page.name,
|
|
198
|
-
slug: page.slug === "home" || page.slug === "/" || index === 0
|
|
199
|
-
? "/"
|
|
200
|
-
: page.slug,
|
|
201
|
-
blocks: page.blocks || [],
|
|
202
|
-
layoutPositions: page.layoutPositions,
|
|
203
|
-
pageType: page.pageType,
|
|
204
|
-
parentSlug: page.parentSlug,
|
|
205
|
-
}));
|
|
206
|
-
const result = {
|
|
207
|
-
layoutPositions,
|
|
208
|
-
pages,
|
|
209
|
-
};
|
|
210
|
-
if (Array.isArray(config.pageTypes) && config.pageTypes.length > 0) {
|
|
211
|
-
result.pageTypes = config.pageTypes;
|
|
212
|
-
}
|
|
213
|
-
return result;
|
|
214
|
-
}
|
|
215
|
-
//# sourceMappingURL=publish-helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"publish-helpers.js","sourceRoot":"","sources":["../../src/utils/publish-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"publish-helpers.test.d.ts","sourceRoot":"","sources":["../../src/utils/publish-helpers.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { extractBlockType } from "./publish-helpers.js";
|
|
3
|
-
describe("extractBlockType", () => {
|
|
4
|
-
it("strips an @scope/ prefix", () => {
|
|
5
|
-
expect(extractBlockType("@cmssy/blocks.hero")).toBe("hero");
|
|
6
|
-
expect(extractBlockType("@org/templates.landing")).toBe("landing");
|
|
7
|
-
});
|
|
8
|
-
it("strips a non-scoped path prefix (regression - was lost when convertBlockTypeToSimple was removed)", () => {
|
|
9
|
-
expect(extractBlockType("vendor/blocks.hero")).toBe("hero");
|
|
10
|
-
expect(extractBlockType("cmssy/blocks.pricing-table")).toBe("pricing-table");
|
|
11
|
-
});
|
|
12
|
-
it("strips the bare blocks./templates. prefix", () => {
|
|
13
|
-
expect(extractBlockType("blocks.hero")).toBe("hero");
|
|
14
|
-
expect(extractBlockType("templates.landing")).toBe("landing");
|
|
15
|
-
});
|
|
16
|
-
it("leaves an already-simple type unchanged", () => {
|
|
17
|
-
expect(extractBlockType("hero")).toBe("hero");
|
|
18
|
-
expect(extractBlockType("pricing-table")).toBe("pricing-table");
|
|
19
|
-
});
|
|
20
|
-
it("takes the last segment when multiple slashes are present", () => {
|
|
21
|
-
expect(extractBlockType("@scope/sub/blocks.hero")).toBe("hero");
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
//# sourceMappingURL=publish-helpers.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"publish-helpers.test.js","sourceRoot":"","sources":["../../src/utils/publish-helpers.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mGAAmG,EAAE,GAAG,EAAE;QAC3G,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CACzD,eAAe,CAChB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export interface WorkspaceResolveSource {
|
|
2
|
-
workspaceId?: string | null;
|
|
3
|
-
}
|
|
4
|
-
export declare function resolveWorkspaceId(optsValue: string | boolean | undefined, config: WorkspaceResolveSource): Promise<string>;
|
|
5
|
-
export declare function warnIfWorkspaceIdLooksWrong(workspaceId: string): void;
|
|
6
|
-
//# sourceMappingURL=resolve-workspace.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-workspace.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-workspace.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,EACvC,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAQrE"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import chalk from "chalk";
|
|
2
|
-
import inquirer from "inquirer";
|
|
3
|
-
const OBJECT_ID_REGEX = /^[a-f0-9]{24}$/;
|
|
4
|
-
export async function resolveWorkspaceId(optsValue, config) {
|
|
5
|
-
if (typeof optsValue === "string") {
|
|
6
|
-
const trimmed = optsValue.trim();
|
|
7
|
-
if (trimmed.length > 0)
|
|
8
|
-
return trimmed;
|
|
9
|
-
}
|
|
10
|
-
const fromEnv = config.workspaceId?.trim();
|
|
11
|
-
if (fromEnv) {
|
|
12
|
-
console.log(chalk.gray(`Using workspace ID from .env: ${fromEnv}`));
|
|
13
|
-
return fromEnv;
|
|
14
|
-
}
|
|
15
|
-
const answer = await inquirer.prompt([
|
|
16
|
-
{
|
|
17
|
-
type: "input",
|
|
18
|
-
name: "workspaceId",
|
|
19
|
-
message: "Enter Workspace ID:",
|
|
20
|
-
validate: (v) => v.trim().length > 0
|
|
21
|
-
? true
|
|
22
|
-
: "Workspace ID is required (or set CMSSY_WORKSPACE_ID)",
|
|
23
|
-
},
|
|
24
|
-
]);
|
|
25
|
-
return answer.workspaceId.trim();
|
|
26
|
-
}
|
|
27
|
-
export function warnIfWorkspaceIdLooksWrong(workspaceId) {
|
|
28
|
-
if (!OBJECT_ID_REGEX.test(workspaceId)) {
|
|
29
|
-
console.log(chalk.yellow(`⚠ workspace id "${workspaceId}" does not look like a 24-char hex ObjectId; backend will reject it.`));
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=resolve-workspace.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-workspace.js","sourceRoot":"","sources":["../../src/utils/resolve-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAMzC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAuC,EACvC,MAA8B;IAE9B,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC;IACzC,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAA0B;QAC5D;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,qBAAqB;YAC9B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;gBACjB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,sDAAsD;SAC7D;KACF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,WAAmB;IAC7D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,mBAAmB,WAAW,sEAAsE,CACrG,CACF,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/utils/scanner.d.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { DefineThemeConfig } from "@cmssy/types";
|
|
2
|
-
export interface ScanOptions {
|
|
3
|
-
/** Throw errors instead of warnings (default: false) */
|
|
4
|
-
strict?: boolean;
|
|
5
|
-
/** Load config file (default: true) */
|
|
6
|
-
loadConfig?: boolean;
|
|
7
|
-
/** Validate schema (default: true) */
|
|
8
|
-
validateSchema?: boolean;
|
|
9
|
-
/** Load preview.json (default: false) */
|
|
10
|
-
loadPreview?: boolean;
|
|
11
|
-
/** Require package.json (default: true) */
|
|
12
|
-
requirePackageJson?: boolean;
|
|
13
|
-
/** Custom working directory (default: process.cwd()) */
|
|
14
|
-
cwd?: string;
|
|
15
|
-
/** Only scan specific blocks/templates by name (case-insensitive) */
|
|
16
|
-
names?: string[];
|
|
17
|
-
}
|
|
18
|
-
export interface ScannedResource {
|
|
19
|
-
type: "block" | "template";
|
|
20
|
-
name: string;
|
|
21
|
-
path: string;
|
|
22
|
-
displayName?: string;
|
|
23
|
-
description?: string;
|
|
24
|
-
category?: string;
|
|
25
|
-
previewData?: any;
|
|
26
|
-
blockConfig?: any;
|
|
27
|
-
packageJson?: any;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Scan blocks and templates directories with configurable options.
|
|
31
|
-
* Supports 3 modes:
|
|
32
|
-
* - Strict mode (build): throws errors, requires config.ts + validation
|
|
33
|
-
* - Lenient mode (dev): warns, loads preview.json, metadata
|
|
34
|
-
* - Minimal mode (package): only package.json, no validation
|
|
35
|
-
*/
|
|
36
|
-
export declare function scanResources(options?: ScanOptions): Promise<ScannedResource[]>;
|
|
37
|
-
/**
|
|
38
|
-
* Scan for a theme config at `theme/config.ts` in the project root.
|
|
39
|
-
* Returns the DefineThemeConfig or null if no theme directory exists.
|
|
40
|
-
*/
|
|
41
|
-
export declare function scanTheme(cwd?: string): Promise<DefineThemeConfig | null>;
|
|
42
|
-
//# sourceMappingURL=scanner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/utils/scanner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAItD,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sCAAsC;IACtC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2CAA2C;IAC3C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,eAAe,EAAE,CAAC,CAwC5B;AAsJD;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,GAAG,SAAgB,GAClB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAQnC"}
|
package/dist/utils/scanner.js
DELETED
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
import chalk from "chalk";
|
|
2
|
-
import fs from "fs-extra";
|
|
3
|
-
import path from "path";
|
|
4
|
-
import { loadBlockConfig, validateSchema } from "./block-config.js";
|
|
5
|
-
import { getPackageJson } from "./cmssy-config.js";
|
|
6
|
-
/**
|
|
7
|
-
* Scan blocks and templates directories with configurable options.
|
|
8
|
-
* Supports 3 modes:
|
|
9
|
-
* - Strict mode (build): throws errors, requires config.ts + validation
|
|
10
|
-
* - Lenient mode (dev): warns, loads preview.json, metadata
|
|
11
|
-
* - Minimal mode (package): only package.json, no validation
|
|
12
|
-
*/
|
|
13
|
-
export async function scanResources(options = {}) {
|
|
14
|
-
const { strict = false, loadConfig = true, validateSchema: shouldValidate = true, loadPreview = false, requirePackageJson = true, cwd = process.cwd(), names, } = options;
|
|
15
|
-
const resources = [];
|
|
16
|
-
// Scan blocks
|
|
17
|
-
await scanDirectory({
|
|
18
|
-
type: "block",
|
|
19
|
-
dir: path.join(cwd, "blocks"),
|
|
20
|
-
resources,
|
|
21
|
-
strict,
|
|
22
|
-
loadConfig,
|
|
23
|
-
shouldValidate,
|
|
24
|
-
loadPreview,
|
|
25
|
-
requirePackageJson,
|
|
26
|
-
names,
|
|
27
|
-
});
|
|
28
|
-
// Scan templates
|
|
29
|
-
await scanDirectory({
|
|
30
|
-
type: "template",
|
|
31
|
-
dir: path.join(cwd, "templates"),
|
|
32
|
-
resources,
|
|
33
|
-
strict,
|
|
34
|
-
loadConfig,
|
|
35
|
-
shouldValidate,
|
|
36
|
-
loadPreview,
|
|
37
|
-
requirePackageJson,
|
|
38
|
-
names,
|
|
39
|
-
});
|
|
40
|
-
return resources;
|
|
41
|
-
}
|
|
42
|
-
async function scanDirectory(opts) {
|
|
43
|
-
const { type, dir, resources, strict, loadConfig, shouldValidate, loadPreview, requirePackageJson, names, } = opts;
|
|
44
|
-
if (!fs.existsSync(dir)) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
let itemDirs = fs
|
|
48
|
-
.readdirSync(dir, { withFileTypes: true })
|
|
49
|
-
.filter((dirent) => dirent.isDirectory())
|
|
50
|
-
.map((dirent) => dirent.name);
|
|
51
|
-
// Filter by names if provided (case-insensitive)
|
|
52
|
-
if (names && names.length > 0) {
|
|
53
|
-
const lowerNames = names.map((n) => n.toLowerCase());
|
|
54
|
-
itemDirs = itemDirs.filter((name) => lowerNames.includes(name.toLowerCase()));
|
|
55
|
-
}
|
|
56
|
-
for (const itemName of itemDirs) {
|
|
57
|
-
const itemPath = path.join(dir, itemName);
|
|
58
|
-
// Try loading config.ts if requested
|
|
59
|
-
let blockConfig = null;
|
|
60
|
-
if (loadConfig) {
|
|
61
|
-
blockConfig = await loadBlockConfig(itemPath);
|
|
62
|
-
if (!blockConfig) {
|
|
63
|
-
// Check if package.json has cmssy (old format)
|
|
64
|
-
const pkg = getPackageJson(itemPath);
|
|
65
|
-
if (pkg && pkg.cmssy) {
|
|
66
|
-
const message = `${type === "block" ? "Block" : "Template"} "${itemName}" uses legacy package.json format.\n` +
|
|
67
|
-
`Please migrate to config.ts.\n` +
|
|
68
|
-
`Run: cmssy migrate ${itemName}\n` +
|
|
69
|
-
`Or see migration guide: https://cmssy.io/docs/migration`;
|
|
70
|
-
if (strict) {
|
|
71
|
-
throw new Error(message);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
console.warn(chalk.yellow(`Warning: ${message}`));
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
if (strict) {
|
|
78
|
-
console.warn(chalk.yellow(`Warning: Skipping ${itemName} - no config.ts found`));
|
|
79
|
-
continue;
|
|
80
|
-
}
|
|
81
|
-
// In non-strict mode, continue without config
|
|
82
|
-
}
|
|
83
|
-
// Validate schema if requested and config exists and has schema
|
|
84
|
-
if (shouldValidate && blockConfig && blockConfig.schema) {
|
|
85
|
-
const validation = await validateSchema(blockConfig.schema, itemPath);
|
|
86
|
-
if (!validation.valid) {
|
|
87
|
-
const errorMessage = `\nValidation ${strict ? "errors" : "warnings"} in ${itemName}:`;
|
|
88
|
-
if (strict) {
|
|
89
|
-
console.error(chalk.red(errorMessage));
|
|
90
|
-
validation.errors.forEach((err) => console.error(chalk.red(` - ${err}`)));
|
|
91
|
-
throw new Error(`Schema validation failed for ${itemName}`);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
console.warn(chalk.yellow(errorMessage));
|
|
95
|
-
validation.errors.forEach((err) => console.warn(chalk.yellow(` - ${err}`)));
|
|
96
|
-
// Don't skip in non-strict - just warn
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
// Load package.json (optional in non-strict mode)
|
|
102
|
-
const pkg = getPackageJson(itemPath);
|
|
103
|
-
if (requirePackageJson && (!pkg || !pkg.name || !pkg.version)) {
|
|
104
|
-
const message = `${type === "block" ? "Block" : "Template"} "${itemName}" must have package.json with name and version`;
|
|
105
|
-
if (strict) {
|
|
106
|
-
throw new Error(message);
|
|
107
|
-
}
|
|
108
|
-
// In non-strict mode, continue without valid package.json
|
|
109
|
-
}
|
|
110
|
-
// Load preview.json if requested
|
|
111
|
-
let previewData = {};
|
|
112
|
-
if (loadPreview) {
|
|
113
|
-
const previewPath = path.join(itemPath, "preview.json");
|
|
114
|
-
if (fs.existsSync(previewPath)) {
|
|
115
|
-
previewData = fs.readJsonSync(previewPath);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
// Build resource object
|
|
119
|
-
const resource = {
|
|
120
|
-
type,
|
|
121
|
-
name: itemName,
|
|
122
|
-
path: itemPath,
|
|
123
|
-
packageJson: pkg,
|
|
124
|
-
// Default displayName from directory name (PascalCase)
|
|
125
|
-
displayName: itemName
|
|
126
|
-
.split("-")
|
|
127
|
-
.map((w) => w.charAt(0).toUpperCase() + w.slice(1))
|
|
128
|
-
.join(""),
|
|
129
|
-
};
|
|
130
|
-
// Add optional fields if config.ts was loaded
|
|
131
|
-
if (blockConfig) {
|
|
132
|
-
resource.blockConfig = blockConfig;
|
|
133
|
-
resource.displayName = blockConfig.name || resource.displayName;
|
|
134
|
-
resource.description = blockConfig.description || pkg?.description;
|
|
135
|
-
resource.category = blockConfig.category;
|
|
136
|
-
}
|
|
137
|
-
if (loadPreview && Object.keys(previewData).length > 0) {
|
|
138
|
-
resource.previewData = previewData;
|
|
139
|
-
}
|
|
140
|
-
resources.push(resource);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Scan for a theme config at `theme/config.ts` in the project root.
|
|
145
|
-
* Returns the DefineThemeConfig or null if no theme directory exists.
|
|
146
|
-
*/
|
|
147
|
-
export async function scanTheme(cwd = process.cwd()) {
|
|
148
|
-
const themePath = path.join(cwd, "theme");
|
|
149
|
-
if (!fs.existsSync(themePath))
|
|
150
|
-
return null;
|
|
151
|
-
const config = await loadBlockConfig(themePath);
|
|
152
|
-
if (!config)
|
|
153
|
-
return null;
|
|
154
|
-
return config;
|
|
155
|
-
}
|
|
156
|
-
//# sourceMappingURL=scanner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/utils/scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export interface SchemaField {
|
|
2
|
-
type: string;
|
|
3
|
-
label?: string;
|
|
4
|
-
required?: boolean;
|
|
5
|
-
defaultValue?: unknown;
|
|
6
|
-
[key: string]: unknown;
|
|
7
|
-
}
|
|
8
|
-
export type Schema = Record<string, SchemaField>;
|
|
9
|
-
export interface SchemaChange {
|
|
10
|
-
kind: "breaking" | "info";
|
|
11
|
-
message: string;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Compare local schema against remote schema and detect changes.
|
|
15
|
-
* Returns a list of breaking and non-breaking changes.
|
|
16
|
-
*/
|
|
17
|
-
export declare function diffSchema(local: Schema, remote: Schema): SchemaChange[];
|
|
18
|
-
/**
|
|
19
|
-
* Check if there are any breaking changes in the diff.
|
|
20
|
-
*/
|
|
21
|
-
export declare function hasBreakingChanges(changes: SchemaChange[]): boolean;
|
|
22
|
-
//# sourceMappingURL=schema-diff.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-diff.d.ts","sourceRoot":"","sources":["../../src/utils/schema-diff.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAqGxE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAEnE"}
|