@cmssy/cli 0.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/LICENSE +21 -0
- package/README.md +649 -0
- package/config.d.ts +2 -0
- package/config.js +2 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +236 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/add-source.d.ts +7 -0
- package/dist/commands/add-source.d.ts.map +1 -0
- package/dist/commands/add-source.js +238 -0
- package/dist/commands/add-source.js.map +1 -0
- package/dist/commands/build.d.ts +7 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +105 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/configure.d.ts +6 -0
- package/dist/commands/configure.d.ts.map +1 -0
- package/dist/commands/configure.js +42 -0
- package/dist/commands/configure.js.map +1 -0
- package/dist/commands/create.d.ts +18 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +444 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/dev.d.ts +6 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +962 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +362 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/migrate.d.ts +2 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +227 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/package.d.ts +7 -0
- package/dist/commands/package.d.ts.map +1 -0
- package/dist/commands/package.js +136 -0
- package/dist/commands/package.js.map +1 -0
- package/dist/commands/publish.d.ts +13 -0
- package/dist/commands/publish.d.ts.map +1 -0
- package/dist/commands/publish.js +910 -0
- package/dist/commands/publish.js.map +1 -0
- package/dist/commands/sync.d.ts +6 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +208 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/upload.d.ts +7 -0
- package/dist/commands/upload.d.ts.map +1 -0
- package/dist/commands/upload.js +126 -0
- package/dist/commands/upload.js.map +1 -0
- package/dist/commands/workspaces.d.ts +2 -0
- package/dist/commands/workspaces.d.ts.map +1 -0
- package/dist/commands/workspaces.js +67 -0
- package/dist/commands/workspaces.js.map +1 -0
- package/dist/dev-ui/app.js +1284 -0
- package/dist/dev-ui/index.html +1511 -0
- package/dist/dev-ui-react/App.tsx +164 -0
- package/dist/dev-ui-react/__tests__/previewData.test.ts +193 -0
- package/dist/dev-ui-react/components/BlocksList.tsx +232 -0
- package/dist/dev-ui-react/components/Editor.tsx +469 -0
- package/dist/dev-ui-react/components/Preview.tsx +146 -0
- package/dist/dev-ui-react/hooks/useBlocks.ts +80 -0
- package/dist/dev-ui-react/index.html +13 -0
- package/dist/dev-ui-react/main.tsx +8 -0
- package/dist/dev-ui-react/styles.css +856 -0
- package/dist/dev-ui-react/types.ts +45 -0
- package/dist/types/block-config.d.ts +315 -0
- package/dist/types/block-config.d.ts.map +1 -0
- package/dist/types/block-config.js +8 -0
- package/dist/types/block-config.js.map +1 -0
- package/dist/utils/block-config.d.ts +10 -0
- package/dist/utils/block-config.d.ts.map +1 -0
- package/dist/utils/block-config.js +199 -0
- package/dist/utils/block-config.js.map +1 -0
- package/dist/utils/blocks-meta-cache.d.ts +28 -0
- package/dist/utils/blocks-meta-cache.d.ts.map +1 -0
- package/dist/utils/blocks-meta-cache.js +72 -0
- package/dist/utils/blocks-meta-cache.js.map +1 -0
- package/dist/utils/builder.d.ts +34 -0
- package/dist/utils/builder.d.ts.map +1 -0
- package/dist/utils/builder.js +140 -0
- package/dist/utils/builder.js.map +1 -0
- package/dist/utils/cmssy-config.d.ts +16 -0
- package/dist/utils/cmssy-config.d.ts.map +1 -0
- package/dist/utils/cmssy-config.js +19 -0
- package/dist/utils/cmssy-config.js.map +1 -0
- package/dist/utils/config.d.ts +9 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +46 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/field-schema.d.ts +12 -0
- package/dist/utils/field-schema.d.ts.map +1 -0
- package/dist/utils/field-schema.js +202 -0
- package/dist/utils/field-schema.js.map +1 -0
- package/dist/utils/graphql.d.ts +8 -0
- package/dist/utils/graphql.d.ts.map +1 -0
- package/dist/utils/graphql.js +118 -0
- package/dist/utils/graphql.js.map +1 -0
- package/dist/utils/publish-helpers.d.ts +35 -0
- package/dist/utils/publish-helpers.d.ts.map +1 -0
- package/dist/utils/publish-helpers.js +141 -0
- package/dist/utils/publish-helpers.js.map +1 -0
- package/dist/utils/scanner.d.ts +36 -0
- package/dist/utils/scanner.d.ts.map +1 -0
- package/dist/utils/scanner.js +140 -0
- package/dist/utils/scanner.js.map +1 -0
- package/dist/utils/type-generator.d.ts +9 -0
- package/dist/utils/type-generator.d.ts.map +1 -0
- package/dist/utils/type-generator.js +85 -0
- package/dist/utils/type-generator.js.map +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import fs from "fs-extra";
|
|
2
|
+
import path from "path";
|
|
3
|
+
const CACHE_FILE = ".cmssy/blocks-meta.json";
|
|
4
|
+
function getCachePath(cwd = process.cwd()) {
|
|
5
|
+
return path.join(cwd, CACHE_FILE);
|
|
6
|
+
}
|
|
7
|
+
export function loadMetaCache(cwd = process.cwd()) {
|
|
8
|
+
const cachePath = getCachePath(cwd);
|
|
9
|
+
if (fs.existsSync(cachePath)) {
|
|
10
|
+
try {
|
|
11
|
+
return fs.readJsonSync(cachePath);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
// Corrupted cache, return empty
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return { version: 1, blocks: {} };
|
|
18
|
+
}
|
|
19
|
+
export function saveMetaCache(cache, cwd = process.cwd()) {
|
|
20
|
+
const cachePath = getCachePath(cwd);
|
|
21
|
+
fs.ensureDirSync(path.dirname(cachePath));
|
|
22
|
+
fs.writeJsonSync(cachePath, cache, { spaces: 2 });
|
|
23
|
+
}
|
|
24
|
+
export function updateBlockInCache(name, type, config, version, cwd = process.cwd()) {
|
|
25
|
+
const cache = loadMetaCache(cwd);
|
|
26
|
+
cache.blocks[name] = {
|
|
27
|
+
type,
|
|
28
|
+
category: config?.category,
|
|
29
|
+
tags: config?.tags,
|
|
30
|
+
displayName: config?.name,
|
|
31
|
+
description: config?.description,
|
|
32
|
+
version,
|
|
33
|
+
updatedAt: new Date().toISOString(),
|
|
34
|
+
};
|
|
35
|
+
saveMetaCache(cache, cwd);
|
|
36
|
+
}
|
|
37
|
+
export function removeBlockFromCache(name, cwd = process.cwd()) {
|
|
38
|
+
const cache = loadMetaCache(cwd);
|
|
39
|
+
delete cache.blocks[name];
|
|
40
|
+
saveMetaCache(cache, cwd);
|
|
41
|
+
}
|
|
42
|
+
export function getBlockMeta(name, cwd = process.cwd()) {
|
|
43
|
+
const cache = loadMetaCache(cwd);
|
|
44
|
+
return cache.blocks[name] || null;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get all unique categories from cache
|
|
48
|
+
*/
|
|
49
|
+
export function getCachedCategories(cwd = process.cwd()) {
|
|
50
|
+
const cache = loadMetaCache(cwd);
|
|
51
|
+
const categories = new Set();
|
|
52
|
+
Object.values(cache.blocks).forEach((meta) => {
|
|
53
|
+
if (meta.category) {
|
|
54
|
+
categories.add(meta.category);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return Array.from(categories).sort();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get all unique tags from cache
|
|
61
|
+
*/
|
|
62
|
+
export function getCachedTags(cwd = process.cwd()) {
|
|
63
|
+
const cache = loadMetaCache(cwd);
|
|
64
|
+
const tags = new Set();
|
|
65
|
+
Object.values(cache.blocks).forEach((meta) => {
|
|
66
|
+
if (meta.tags) {
|
|
67
|
+
meta.tags.forEach((tag) => tags.add(tag));
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
return Array.from(tags).sort();
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=blocks-meta-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocks-meta-cache.js","sourceRoot":"","sources":["../../src/utils/blocks-meta-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { FieldTypeDefinition } from "./field-schema.js";
|
|
2
|
+
export interface BuildOptions {
|
|
3
|
+
/** Framework (default: "react") */
|
|
4
|
+
framework?: string;
|
|
5
|
+
/** Enable minification (default: true for production, false for dev) */
|
|
6
|
+
minify?: boolean;
|
|
7
|
+
/** Enable sourcemaps (default: true) */
|
|
8
|
+
sourcemap?: boolean;
|
|
9
|
+
/** Output mode: "versioned" or "flat" (default: "versioned") */
|
|
10
|
+
outputMode?: "versioned" | "flat";
|
|
11
|
+
/** Generate package.json with cmssy metadata (default: true) */
|
|
12
|
+
generatePackageJson?: boolean;
|
|
13
|
+
/** Generate TypeScript types (default: true) */
|
|
14
|
+
generateTypes?: boolean;
|
|
15
|
+
/** Throw errors or warn (default: true for build, false for dev) */
|
|
16
|
+
strict?: boolean;
|
|
17
|
+
/** Field type definitions from backend (for type generation) */
|
|
18
|
+
fieldTypes?: FieldTypeDefinition[];
|
|
19
|
+
}
|
|
20
|
+
export interface BuildableResource {
|
|
21
|
+
type: "block" | "template";
|
|
22
|
+
name: string;
|
|
23
|
+
path: string;
|
|
24
|
+
packageJson?: any;
|
|
25
|
+
blockConfig?: any;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Build a resource (block or template) with configurable options.
|
|
29
|
+
* Supports 2 modes:
|
|
30
|
+
* - Production mode (build): versioned output, minified, generates package.json
|
|
31
|
+
* - Development mode (dev): flat output, not minified, no package.json
|
|
32
|
+
*/
|
|
33
|
+
export declare function buildResource(resource: BuildableResource, outDir: string, options?: BuildOptions): Promise<void>;
|
|
34
|
+
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/utils/builder.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gEAAgE;IAChE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAClC,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gDAAgD;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAqHf"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { build as esbuild } from "esbuild";
|
|
3
|
+
import { execSync } from "child_process";
|
|
4
|
+
import fs from "fs-extra";
|
|
5
|
+
import path from "path";
|
|
6
|
+
import { generateTypes } from "./type-generator.js";
|
|
7
|
+
/**
|
|
8
|
+
* Build a resource (block or template) with configurable options.
|
|
9
|
+
* Supports 2 modes:
|
|
10
|
+
* - Production mode (build): versioned output, minified, generates package.json
|
|
11
|
+
* - Development mode (dev): flat output, not minified, no package.json
|
|
12
|
+
*/
|
|
13
|
+
export async function buildResource(resource, outDir, options = {}) {
|
|
14
|
+
const { framework = "react", minify = true, sourcemap = true, outputMode = "versioned", generatePackageJson = true, generateTypes: shouldGenerateTypes = true, strict = true, fieldTypes, } = options;
|
|
15
|
+
const srcPath = path.join(resource.path, "src");
|
|
16
|
+
const entryPoint = framework === "react"
|
|
17
|
+
? path.join(srcPath, "index.tsx")
|
|
18
|
+
: path.join(srcPath, "index.ts");
|
|
19
|
+
// Check entry point exists
|
|
20
|
+
if (!fs.existsSync(entryPoint)) {
|
|
21
|
+
const message = `Entry point not found: ${entryPoint}`;
|
|
22
|
+
if (strict) {
|
|
23
|
+
throw new Error(message);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
console.warn(chalk.yellow(`Warning: ${message}`));
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// Determine output paths based on mode
|
|
31
|
+
let destDir;
|
|
32
|
+
let outFile;
|
|
33
|
+
let outCssFile = null;
|
|
34
|
+
if (outputMode === "versioned") {
|
|
35
|
+
// Production: public/@vendor/blocks.hero/1.0.0/
|
|
36
|
+
if (!resource.packageJson || !resource.packageJson.name || !resource.packageJson.version) {
|
|
37
|
+
const message = `Resource "${resource.name}" requires package.json with name and version for versioned output`;
|
|
38
|
+
if (strict) {
|
|
39
|
+
throw new Error(message);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
console.warn(chalk.yellow(`Warning: ${message}`));
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const packageName = resource.packageJson.name;
|
|
47
|
+
const version = resource.packageJson.version;
|
|
48
|
+
destDir = path.join(outDir, packageName, version);
|
|
49
|
+
outFile = path.join(destDir, "index.js");
|
|
50
|
+
outCssFile = path.join(destDir, "index.css");
|
|
51
|
+
fs.mkdirSync(destDir, { recursive: true });
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
// Development: .cmssy/dev/block.hero.js
|
|
55
|
+
destDir = outDir;
|
|
56
|
+
outFile = path.join(outDir, `${resource.type}.${resource.name}.js`);
|
|
57
|
+
outCssFile = path.join(outDir, `${resource.type}.${resource.name}.css`);
|
|
58
|
+
fs.mkdirSync(destDir, { recursive: true });
|
|
59
|
+
}
|
|
60
|
+
// Build JavaScript with esbuild
|
|
61
|
+
try {
|
|
62
|
+
await esbuild({
|
|
63
|
+
entryPoints: [entryPoint],
|
|
64
|
+
bundle: true,
|
|
65
|
+
format: "esm",
|
|
66
|
+
outfile: outFile,
|
|
67
|
+
jsx: "transform",
|
|
68
|
+
minify,
|
|
69
|
+
sourcemap,
|
|
70
|
+
target: "es2020",
|
|
71
|
+
loader: { ".css": "empty" }, // Ignore CSS imports (CSS is handled separately)
|
|
72
|
+
// Note: React is bundled for dev because browser ES modules can't resolve bare imports
|
|
73
|
+
// Production builds (publish.ts) externalize React since SSR/BlockRenderer provide it
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
const message = `Build error for ${resource.name}`;
|
|
78
|
+
if (strict) {
|
|
79
|
+
throw error;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
console.error(chalk.red(`${message}:`), error);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Process CSS if exists
|
|
87
|
+
const cssPath = path.join(srcPath, "index.css");
|
|
88
|
+
if (fs.existsSync(cssPath) && outCssFile) {
|
|
89
|
+
await processCSS(cssPath, outCssFile, minify, resource.name, strict);
|
|
90
|
+
}
|
|
91
|
+
// Generate minimal package.json (production mode)
|
|
92
|
+
if (generatePackageJson && outputMode === "versioned") {
|
|
93
|
+
// Only include essential fields - metadata is sent during publish, not stored in build
|
|
94
|
+
const outputPackageJson = {
|
|
95
|
+
name: resource.packageJson?.name || "",
|
|
96
|
+
version: resource.packageJson?.version || "1.0.0",
|
|
97
|
+
description: resource.packageJson?.description || "",
|
|
98
|
+
author: resource.packageJson?.author || { name: "", email: "" },
|
|
99
|
+
};
|
|
100
|
+
fs.writeFileSync(path.join(destDir, "package.json"), JSON.stringify(outputPackageJson, null, 2) + "\n");
|
|
101
|
+
}
|
|
102
|
+
// Generate TypeScript types (only for blocks with schema, not templates with pages)
|
|
103
|
+
if (shouldGenerateTypes && resource.blockConfig?.schema) {
|
|
104
|
+
await generateTypes({
|
|
105
|
+
blockPath: resource.path,
|
|
106
|
+
schema: resource.blockConfig.schema,
|
|
107
|
+
fieldTypes,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Process CSS with PostCSS (if config exists) or copy as-is
|
|
113
|
+
*/
|
|
114
|
+
async function processCSS(cssPath, outCssFile, minify, resourceName, strict) {
|
|
115
|
+
const postcssConfigPath = path.join(process.cwd(), "postcss.config.js");
|
|
116
|
+
if (fs.existsSync(postcssConfigPath)) {
|
|
117
|
+
// Use PostCSS to process CSS (includes Tailwind)
|
|
118
|
+
try {
|
|
119
|
+
const minifyFlag = minify ? " --no-map" : "";
|
|
120
|
+
execSync(`npx postcss "${cssPath}" -o "${outCssFile}"${minifyFlag}`, {
|
|
121
|
+
stdio: "pipe",
|
|
122
|
+
cwd: process.cwd(),
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
const message = `PostCSS processing failed for ${resourceName}: ${error.message}`;
|
|
127
|
+
if (strict) {
|
|
128
|
+
throw new Error(message);
|
|
129
|
+
}
|
|
130
|
+
console.warn(chalk.yellow(`Warning: ${message}`));
|
|
131
|
+
console.log(chalk.gray("Copying CSS as-is..."));
|
|
132
|
+
fs.copyFileSync(cssPath, outCssFile);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
// No PostCSS config - just copy CSS
|
|
137
|
+
fs.copyFileSync(cssPath, outCssFile);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/utils/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA6BpD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAA2B,EAC3B,MAAc,EACd,UAAwB,EAAE;IAE1B,MAAM,EACJ,SAAS,GAAG,OAAO,EACnB,MAAM,GAAG,IAAI,EACb,SAAS,GAAG,IAAI,EAChB,UAAU,GAAG,WAAW,EACxB,mBAAmB,GAAG,IAAI,EAC1B,aAAa,EAAE,mBAAmB,GAAG,IAAI,EACzC,MAAM,GAAG,IAAI,EACb,UAAU,GACX,GAAG,OAAO,CAAC;IAEZ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,MAAM,UAAU,GACd,SAAS,KAAK,OAAO;QACnB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;QACjC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAErC,2BAA2B;IAC3B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,0BAA0B,UAAU,EAAE,CAAC;QACvD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,OAAe,CAAC;IACpB,IAAI,OAAe,CAAC;IACpB,IAAI,UAAU,GAAkB,IAAI,CAAC;IAErC,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;QAC/B,gDAAgD;QAChD,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzF,MAAM,OAAO,GAAG,aAAa,QAAQ,CAAC,IAAI,oEAAoE,CAAC;YAC/G,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC;gBAClD,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;QAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;QAC7C,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACzC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE7C,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,wCAAwC;QACxC,OAAO,GAAG,MAAM,CAAC;QACjB,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC;QACpE,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC;QAExE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,gCAAgC;IAChC,IAAI,CAAC;QACH,MAAM,OAAO,CAAC;YACZ,WAAW,EAAE,CAAC,UAAU,CAAC;YACzB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,OAAO;YAChB,GAAG,EAAE,WAAW;YAChB,MAAM;YACN,SAAS;YACT,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,iDAAiD;YAC9E,uFAAuF;YACvF,sFAAsF;SACvF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,mBAAmB,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC;QACzC,MAAM,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;IAED,kDAAkD;IAClD,IAAI,mBAAmB,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;QACtD,uFAAuF;QACvF,MAAM,iBAAiB,GAAG;YACxB,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE;YACtC,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,IAAI,OAAO;YACjD,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,IAAI,EAAE;YACpD,MAAM,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;SAChE,CAAC;QAEF,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAClC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAClD,CAAC;IACJ,CAAC;IAED,oFAAoF;IACpF,IAAI,mBAAmB,IAAI,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QACxD,MAAM,aAAa,CAAC;YAClB,SAAS,EAAE,QAAQ,CAAC,IAAI;YACxB,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM;YACnC,UAAU;SACX,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU,CACvB,OAAe,EACf,UAAkB,EAClB,MAAe,EACf,YAAoB,EACpB,MAAe;IAEf,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC;IAExE,IAAI,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACrC,iDAAiD;QACjD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,QAAQ,CAAC,gBAAgB,OAAO,SAAS,UAAU,IAAI,UAAU,EAAE,EAAE;gBACnE,KAAK,EAAE,MAAM;gBACb,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;aACnB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,iCAAiC,YAAY,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;YAClF,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAChD,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,oCAAoC;QACpC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface CmssyConfig {
|
|
2
|
+
framework: string;
|
|
3
|
+
projectName?: string;
|
|
4
|
+
author?: {
|
|
5
|
+
name: string;
|
|
6
|
+
email: string;
|
|
7
|
+
};
|
|
8
|
+
build?: {
|
|
9
|
+
outDir: string;
|
|
10
|
+
minify: boolean;
|
|
11
|
+
sourcemap: boolean;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare function loadConfig(): Promise<CmssyConfig>;
|
|
15
|
+
export declare function getPackageJson(packagePath: string): any;
|
|
16
|
+
//# sourceMappingURL=cmssy-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cmssy-config.d.ts","sourceRoot":"","sources":["../../src/utils/cmssy-config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,CAYvD;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,OAMjD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import fs from "fs-extra";
|
|
2
|
+
import path from "path";
|
|
3
|
+
export async function loadConfig() {
|
|
4
|
+
const configPath = path.join(process.cwd(), "cmssy.config.js");
|
|
5
|
+
if (!fs.existsSync(configPath)) {
|
|
6
|
+
throw new Error("cmssy.config.js not found. Run 'cmssy init' to create a project.");
|
|
7
|
+
}
|
|
8
|
+
// Dynamic import for ESM
|
|
9
|
+
const configModule = await import(`file://${configPath}`);
|
|
10
|
+
return configModule.default;
|
|
11
|
+
}
|
|
12
|
+
export function getPackageJson(packagePath) {
|
|
13
|
+
const pkgPath = path.join(packagePath, "package.json");
|
|
14
|
+
if (!fs.existsSync(pkgPath)) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return fs.readJsonSync(pkgPath);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=cmssy-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cmssy-config.js","sourceRoot":"","sources":["../../src/utils/cmssy-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAgBxB,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAE/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;IACJ,CAAC;IAED,yBAAyB;IACzB,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,UAAU,UAAU,EAAE,CAAC,CAAC;IAC1D,OAAO,YAAY,CAAC,OAAO,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,WAAmB;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface CmssyConfig {
|
|
2
|
+
apiUrl: string;
|
|
3
|
+
apiToken: string | null;
|
|
4
|
+
workspaceId?: string | null;
|
|
5
|
+
}
|
|
6
|
+
export declare function loadConfig(): CmssyConfig;
|
|
7
|
+
export declare function saveConfig(config: Partial<CmssyConfig>): void;
|
|
8
|
+
export declare function hasConfig(): boolean;
|
|
9
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,wBAAgB,UAAU,IAAI,WAAW,CAaxC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAiC7D;AAED,wBAAgB,SAAS,IAAI,OAAO,CAGnC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import dotenv from "dotenv";
|
|
2
|
+
import fs from "fs-extra";
|
|
3
|
+
import path from "path";
|
|
4
|
+
export function loadConfig() {
|
|
5
|
+
// Load from .env in cwd
|
|
6
|
+
const envPath = path.join(process.cwd(), ".env");
|
|
7
|
+
if (fs.existsSync(envPath)) {
|
|
8
|
+
dotenv.config({ path: envPath });
|
|
9
|
+
}
|
|
10
|
+
return {
|
|
11
|
+
apiUrl: process.env.CMSSY_API_URL || "https://api.cmssy.io/graphql",
|
|
12
|
+
apiToken: process.env.CMSSY_API_TOKEN || null,
|
|
13
|
+
workspaceId: process.env.CMSSY_WORKSPACE_ID || null,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export function saveConfig(config) {
|
|
17
|
+
const envPath = path.join(process.cwd(), ".env");
|
|
18
|
+
const existingEnv = fs.existsSync(envPath)
|
|
19
|
+
? fs.readFileSync(envPath, "utf8")
|
|
20
|
+
: "";
|
|
21
|
+
let newEnv = existingEnv;
|
|
22
|
+
// Update or add CMSSY_API_TOKEN
|
|
23
|
+
if (config.apiToken !== undefined) {
|
|
24
|
+
if (existingEnv.includes("CMSSY_API_TOKEN=")) {
|
|
25
|
+
newEnv = newEnv.replace(/CMSSY_API_TOKEN=.*/, `CMSSY_API_TOKEN=${config.apiToken}`);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
newEnv += `\nCMSSY_API_TOKEN=${config.apiToken}\n`;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Update or add CMSSY_API_URL
|
|
32
|
+
if (config.apiUrl !== undefined) {
|
|
33
|
+
if (existingEnv.includes("CMSSY_API_URL=")) {
|
|
34
|
+
newEnv = newEnv.replace(/CMSSY_API_URL=.*/, `CMSSY_API_URL=${config.apiUrl}`);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
newEnv += `CMSSY_API_URL=${config.apiUrl}\n`;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
fs.writeFileSync(envPath, newEnv.trim() + "\n");
|
|
41
|
+
}
|
|
42
|
+
export function hasConfig() {
|
|
43
|
+
const config = loadConfig();
|
|
44
|
+
return !!config.apiToken;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAQxB,MAAM,UAAU,UAAU;IACxB,wBAAwB;IACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAEjD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,8BAA8B;QACnE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI;QAC7C,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAA4B;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QACxC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC;QAClC,CAAC,CAAC,EAAE,CAAC;IAEP,IAAI,MAAM,GAAG,WAAW,CAAC;IAEzB,gCAAgC;IAChC,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,MAAM,GAAG,MAAM,CAAC,OAAO,CACrB,oBAAoB,EACpB,mBAAmB,MAAM,CAAC,QAAQ,EAAE,CACrC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,qBAAqB,MAAM,CAAC,QAAQ,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC3C,MAAM,GAAG,MAAM,CAAC,OAAO,CACrB,kBAAkB,EAClB,iBAAiB,MAAM,CAAC,MAAM,EAAE,CACjC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,iBAAiB,MAAM,CAAC,MAAM,IAAI,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface FieldTypeDefinition {
|
|
2
|
+
type: string;
|
|
3
|
+
label: string;
|
|
4
|
+
description: string;
|
|
5
|
+
/** TypeScript type for the field value (e.g., "string", "number", "boolean") */
|
|
6
|
+
valueType: string;
|
|
7
|
+
allowsDefaultValue: boolean;
|
|
8
|
+
supportsValidation: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function getFieldTypes(): Promise<FieldTypeDefinition[]>;
|
|
11
|
+
export declare function isValidFieldType(type: string, fieldTypes: FieldTypeDefinition[]): boolean;
|
|
12
|
+
//# sourceMappingURL=field-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-schema.d.ts","sourceRoot":"","sources":["../../src/utils/field-schema.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAyID,wBAAsB,aAAa,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAsCpE;AA8BD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,mBAAmB,EAAE,GAChC,OAAO,CAET"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import fs from "fs-extra";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { GraphQLClient } from "graphql-request";
|
|
4
|
+
import { hasConfig, loadConfig } from "./config.js";
|
|
5
|
+
const CACHE_FILE = ".cmssy/field-types.json";
|
|
6
|
+
const CACHE_DURATION_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
7
|
+
// Fallback field types if backend is unreachable
|
|
8
|
+
const FALLBACK_FIELD_TYPES = [
|
|
9
|
+
{
|
|
10
|
+
type: "singleLine",
|
|
11
|
+
label: "Single Line Text",
|
|
12
|
+
description: "Short text input",
|
|
13
|
+
valueType: "string",
|
|
14
|
+
allowsDefaultValue: true,
|
|
15
|
+
supportsValidation: true,
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
type: "multiLine",
|
|
19
|
+
label: "Multi-line Text",
|
|
20
|
+
description: "Text area",
|
|
21
|
+
valueType: "string",
|
|
22
|
+
allowsDefaultValue: true,
|
|
23
|
+
supportsValidation: true,
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
type: "richText",
|
|
27
|
+
label: "Rich Text",
|
|
28
|
+
description: "WYSIWYG editor",
|
|
29
|
+
valueType: "string",
|
|
30
|
+
allowsDefaultValue: true,
|
|
31
|
+
supportsValidation: false,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
type: "numeric",
|
|
35
|
+
label: "Numeric",
|
|
36
|
+
description: "Numeric input",
|
|
37
|
+
valueType: "number",
|
|
38
|
+
allowsDefaultValue: true,
|
|
39
|
+
supportsValidation: true,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
type: "boolean",
|
|
43
|
+
label: "Boolean",
|
|
44
|
+
description: "True/false boolean",
|
|
45
|
+
valueType: "boolean",
|
|
46
|
+
allowsDefaultValue: true,
|
|
47
|
+
supportsValidation: false,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
type: "date",
|
|
51
|
+
label: "Date",
|
|
52
|
+
description: "Date picker",
|
|
53
|
+
valueType: "string",
|
|
54
|
+
allowsDefaultValue: true,
|
|
55
|
+
supportsValidation: true,
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
type: "media",
|
|
59
|
+
label: "Media",
|
|
60
|
+
description: "Image/video upload",
|
|
61
|
+
valueType: "string",
|
|
62
|
+
allowsDefaultValue: true,
|
|
63
|
+
supportsValidation: false,
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
type: "link",
|
|
67
|
+
label: "Link",
|
|
68
|
+
description: "URL input",
|
|
69
|
+
valueType: "string",
|
|
70
|
+
allowsDefaultValue: true,
|
|
71
|
+
supportsValidation: true,
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
type: "select",
|
|
75
|
+
label: "Select",
|
|
76
|
+
description: "Dropdown selection",
|
|
77
|
+
valueType: "string",
|
|
78
|
+
allowsDefaultValue: true,
|
|
79
|
+
supportsValidation: true,
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
type: "multiselect",
|
|
83
|
+
label: "Multi-select",
|
|
84
|
+
description: "Multiple selection",
|
|
85
|
+
valueType: "string[]",
|
|
86
|
+
allowsDefaultValue: true,
|
|
87
|
+
supportsValidation: true,
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: "color",
|
|
91
|
+
label: "Color",
|
|
92
|
+
description: "Color picker",
|
|
93
|
+
valueType: "string",
|
|
94
|
+
allowsDefaultValue: true,
|
|
95
|
+
supportsValidation: false,
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: "slider",
|
|
99
|
+
label: "Slider",
|
|
100
|
+
description: "Range slider",
|
|
101
|
+
valueType: "number",
|
|
102
|
+
allowsDefaultValue: true,
|
|
103
|
+
supportsValidation: true,
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: "repeater",
|
|
107
|
+
label: "Repeater",
|
|
108
|
+
description: "Repeatable nested fields",
|
|
109
|
+
valueType: "Record<string, unknown>[]",
|
|
110
|
+
allowsDefaultValue: true,
|
|
111
|
+
supportsValidation: false,
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
type: "form",
|
|
115
|
+
label: "Form",
|
|
116
|
+
description: "Form picker",
|
|
117
|
+
valueType: "string",
|
|
118
|
+
allowsDefaultValue: true,
|
|
119
|
+
supportsValidation: false,
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: "emailTemplate",
|
|
123
|
+
label: "Email Template",
|
|
124
|
+
description: "Email template picker",
|
|
125
|
+
valueType: "string",
|
|
126
|
+
allowsDefaultValue: true,
|
|
127
|
+
supportsValidation: false,
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: "emailConfiguration",
|
|
131
|
+
label: "Email Configuration",
|
|
132
|
+
description: "Email configuration picker",
|
|
133
|
+
valueType: "string",
|
|
134
|
+
allowsDefaultValue: true,
|
|
135
|
+
supportsValidation: false,
|
|
136
|
+
},
|
|
137
|
+
];
|
|
138
|
+
export async function getFieldTypes() {
|
|
139
|
+
// Check cache first
|
|
140
|
+
const cached = await loadCachedFieldTypes();
|
|
141
|
+
if (cached)
|
|
142
|
+
return cached;
|
|
143
|
+
// Try to fetch from backend via GraphQL if configured
|
|
144
|
+
if (hasConfig()) {
|
|
145
|
+
try {
|
|
146
|
+
const config = loadConfig();
|
|
147
|
+
const client = new GraphQLClient(config.apiUrl, {
|
|
148
|
+
headers: config.apiToken
|
|
149
|
+
? { Authorization: `Bearer ${config.apiToken}` }
|
|
150
|
+
: {},
|
|
151
|
+
});
|
|
152
|
+
const query = `
|
|
153
|
+
query GetFieldTypes {
|
|
154
|
+
fieldTypes {
|
|
155
|
+
type
|
|
156
|
+
label
|
|
157
|
+
description
|
|
158
|
+
valueType
|
|
159
|
+
allowsDefaultValue
|
|
160
|
+
supportsValidation
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
`;
|
|
164
|
+
const data = await client.request(query);
|
|
165
|
+
const fieldTypes = data.fieldTypes;
|
|
166
|
+
await cacheFieldTypes(fieldTypes);
|
|
167
|
+
return fieldTypes;
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
// Backend unreachable, use fallback
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return FALLBACK_FIELD_TYPES;
|
|
174
|
+
}
|
|
175
|
+
async function loadCachedFieldTypes() {
|
|
176
|
+
const cachePath = path.join(process.cwd(), CACHE_FILE);
|
|
177
|
+
if (!fs.existsSync(cachePath))
|
|
178
|
+
return null;
|
|
179
|
+
try {
|
|
180
|
+
const cached = await fs.readJson(cachePath);
|
|
181
|
+
const age = Date.now() - cached.timestamp;
|
|
182
|
+
if (age < CACHE_DURATION_MS) {
|
|
183
|
+
return cached.fieldTypes;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
// Invalid cache
|
|
188
|
+
}
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
async function cacheFieldTypes(fieldTypes) {
|
|
192
|
+
const cachePath = path.join(process.cwd(), CACHE_FILE);
|
|
193
|
+
fs.ensureDirSync(path.dirname(cachePath));
|
|
194
|
+
await fs.writeJson(cachePath, {
|
|
195
|
+
timestamp: Date.now(),
|
|
196
|
+
fieldTypes,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
export function isValidFieldType(type, fieldTypes) {
|
|
200
|
+
return fieldTypes.some((ft) => ft.type === type);
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=field-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-schema.js","sourceRoot":"","sources":["../../src/utils/field-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { GraphQLClient } from "graphql-request";
|
|
2
|
+
export declare function createClient(): GraphQLClient;
|
|
3
|
+
export declare const PUBLISH_PACKAGE_MUTATION = "\n mutation PublishPackage($token: String!, $input: PublishPackageInput!) {\n publishPackage(token: $token, input: $input) {\n success\n message\n packageId\n status\n }\n }\n";
|
|
4
|
+
export declare const IMPORT_BLOCK_MUTATION = "\n mutation ImportBlock($input: ImportBlockInput!) {\n importBlock(input: $input) {\n id\n blockType\n name\n description\n icon\n category\n layoutSlot\n schemaFields {\n key\n type\n label\n defaultValue\n placeholder\n required\n helperText\n options\n minValue\n maxValue\n group\n showWhen {\n field\n equals\n notEquals\n notEmpty\n isEmpty\n }\n validation {\n minLength\n maxLength\n min\n max\n pattern\n message\n }\n }\n defaultContent\n requires {\n auth\n language\n workspace\n modules\n permissions\n features\n }\n version\n createdAt\n }\n }\n";
|
|
5
|
+
export declare const IMPORT_TEMPLATE_MUTATION = "\n mutation ImportTemplate($input: ImportTemplateInput!) {\n importTemplate(input: $input) {\n success\n block {\n id\n blockType\n name\n version\n }\n pagesCreated\n pagesUpdated\n layoutSlotsCreated\n layoutSlotsUpdated\n message\n }\n }\n";
|
|
6
|
+
export declare const ADD_BLOCK_SOURCE_CODE_MUTATION = "\n mutation AddBlockSourceCode($input: AddBlockSourceCodeInput!) {\n addBlockSourceCode(input: $input) {\n id\n blockType\n name\n sourceUrl\n sourceCssUrl\n dependenciesUrl\n }\n }\n";
|
|
7
|
+
export declare const GET_WORKSPACE_BLOCKS_QUERY = "\n query GetWorkspaceBlocks {\n workspaceBlocks {\n id\n blockType\n name\n sourceUrl\n }\n }\n";
|
|
8
|
+
//# sourceMappingURL=graphql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../src/utils/graphql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,wBAAgB,YAAY,IAAI,aAAa,CAe5C;AAGD,eAAO,MAAM,wBAAwB,gNASpC,CAAC;AAEF,eAAO,MAAM,qBAAqB,y3BAmDjC,CAAC;AAEF,eAAO,MAAM,wBAAwB,mUAiBpC,CAAC;AAEF,eAAO,MAAM,8BAA8B,kOAW1C,CAAC;AAEF,eAAO,MAAM,0BAA0B,gIAStC,CAAC"}
|