@loom-framework/core 0.1.0-alpha.142 → 0.1.0-alpha.144
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/adapters/base.d.ts +31 -0
- package/dist/adapters/base.d.ts.map +1 -0
- package/dist/adapters/base.js +69 -0
- package/dist/adapters/base.js.map +1 -0
- package/dist/adapters/factory.d.ts +8 -0
- package/dist/adapters/factory.d.ts.map +1 -0
- package/dist/adapters/factory.js +25 -0
- package/dist/adapters/factory.js.map +1 -0
- package/dist/adapters/filesystem.d.ts +46 -0
- package/dist/adapters/filesystem.d.ts.map +1 -0
- package/dist/adapters/filesystem.js +321 -0
- package/dist/adapters/filesystem.js.map +1 -0
- package/dist/adapters/index.d.ts +10 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +8 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/sqlite.d.ts +37 -0
- package/dist/adapters/sqlite.d.ts.map +1 -0
- package/dist/adapters/sqlite.js +264 -0
- package/dist/adapters/sqlite.js.map +1 -0
- package/dist/backend/ai/content-blocks.d.ts +18 -0
- package/dist/backend/ai/content-blocks.d.ts.map +1 -0
- package/dist/backend/ai/content-blocks.js +66 -0
- package/dist/backend/ai/content-blocks.js.map +1 -0
- package/dist/backend/ai/session-manager.d.ts.map +1 -1
- package/dist/backend/ai/session-manager.js +2 -1
- package/dist/backend/ai/session-manager.js.map +1 -1
- package/dist/backend/index.js +1 -1
- package/dist/backend/index.js.map +1 -1
- package/dist/backend/observe/index.d.ts +1 -1
- package/dist/backend/observe/index.d.ts.map +1 -1
- package/dist/backend/observe/index.js +1 -1
- package/dist/backend/observe/index.js.map +1 -1
- package/dist/backend/observe/logger.d.ts +0 -1
- package/dist/backend/observe/logger.d.ts.map +1 -1
- package/dist/backend/observe/logger.js +0 -2
- package/dist/backend/observe/logger.js.map +1 -1
- package/dist/backend/routes/chat.d.ts.map +1 -1
- package/dist/backend/routes/chat.js +6 -45
- package/dist/backend/routes/chat.js.map +1 -1
- package/dist/backend/routes/index.d.ts +1 -1
- package/dist/backend/routes/index.d.ts.map +1 -1
- package/dist/backend/routes/index.js +1 -1
- package/dist/backend/routes/index.js.map +1 -1
- package/dist/backend/routes/skills.d.ts +0 -3
- package/dist/backend/routes/skills.d.ts.map +1 -1
- package/dist/backend/routes/skills.js +1 -4
- package/dist/backend/routes/skills.js.map +1 -1
- package/dist/backend/services/skill-archive.d.ts +13 -0
- package/dist/backend/services/skill-archive.d.ts.map +1 -0
- package/dist/backend/services/skill-archive.js +84 -0
- package/dist/backend/services/skill-archive.js.map +1 -0
- package/dist/backend/services/skill-parser.d.ts +41 -0
- package/dist/backend/services/skill-parser.d.ts.map +1 -0
- package/dist/backend/services/skill-parser.js +184 -0
- package/dist/backend/services/skill-parser.js.map +1 -0
- package/dist/backend/services/skill-service.d.ts +113 -0
- package/dist/backend/services/skill-service.d.ts.map +1 -0
- package/dist/backend/services/skill-service.js +265 -0
- package/dist/backend/services/skill-service.js.map +1 -0
- package/dist/cli/commands/data.js +2 -2
- package/dist/cli/commands/data.js.map +1 -1
- package/dist/cli/commands/generate-dashboard.d.ts.map +1 -1
- package/dist/cli/commands/generate-dashboard.js +4 -451
- package/dist/cli/commands/generate-dashboard.js.map +1 -1
- package/dist/cli/commands/generate-page.d.ts.map +1 -1
- package/dist/cli/commands/generate-page.js +7 -437
- package/dist/cli/commands/generate-page.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +8 -4
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/observe.js +1 -1
- package/dist/cli/commands/observe.js.map +1 -1
- package/dist/cli/commands/serve.d.ts +12 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +43 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/framework.d.ts +28 -0
- package/dist/cli/framework.d.ts.map +1 -0
- package/dist/cli/framework.js +29 -0
- package/dist/cli/framework.js.map +1 -0
- package/dist/cli/helpers/backup.d.ts.map +1 -1
- package/dist/cli/helpers/backup.js +0 -3
- package/dist/cli/helpers/backup.js.map +1 -1
- package/dist/cli/helpers/field-template.d.ts +2 -2
- package/dist/cli/helpers/field-template.d.ts.map +1 -1
- package/dist/cli/helpers/field-template.js +12 -7
- package/dist/cli/helpers/field-template.js.map +1 -1
- package/dist/cli/helpers/i18n-template.d.ts +21 -0
- package/dist/cli/helpers/i18n-template.d.ts.map +1 -0
- package/dist/cli/helpers/i18n-template.js +69 -0
- package/dist/cli/helpers/i18n-template.js.map +1 -0
- package/dist/cli/helpers/naming.d.ts +0 -1
- package/dist/cli/helpers/naming.d.ts.map +1 -1
- package/dist/cli/helpers/naming.js +0 -4
- package/dist/cli/helpers/naming.js.map +1 -1
- package/dist/cli/templates/crud-page.d.ts +14 -0
- package/dist/cli/templates/crud-page.d.ts.map +1 -0
- package/dist/cli/templates/crud-page.js +430 -0
- package/dist/cli/templates/crud-page.js.map +1 -0
- package/dist/cli/templates/dashboard-page.d.ts +11 -0
- package/dist/cli/templates/dashboard-page.d.ts.map +1 -0
- package/dist/cli/templates/dashboard-page.js +462 -0
- package/dist/cli/templates/dashboard-page.js.map +1 -0
- package/dist/cli/templates/index.d.ts +2 -0
- package/dist/cli/templates/index.d.ts.map +1 -1
- package/dist/cli/templates/index.js +2 -0
- package/dist/cli/templates/index.js.map +1 -1
- package/dist/config.d.ts +22 -22
- package/dist/dashboard-config.d.ts +10 -10
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/utils/id.d.ts +7 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js +9 -0
- package/dist/utils/id.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* loom-server CLI Entry Point
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* loom-server # Serve from current directory
|
|
7
|
+
* loom-server /path/to/project # Serve from specified directory
|
|
8
|
+
* loom-server --port 8080 # Custom port
|
|
9
|
+
* loom-server --host 127.0.0.1 # Custom host
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=serve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/serve.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* loom-server CLI Entry Point
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* loom-server # Serve from current directory
|
|
7
|
+
* loom-server /path/to/project # Serve from specified directory
|
|
8
|
+
* loom-server --port 8080 # Custom port
|
|
9
|
+
* loom-server --host 127.0.0.1 # Custom host
|
|
10
|
+
*/
|
|
11
|
+
import { Command } from 'commander';
|
|
12
|
+
const program = new Command()
|
|
13
|
+
.name('loom-server')
|
|
14
|
+
.description('Start a Loom backend server')
|
|
15
|
+
.argument('[project-root]', 'project root directory', process.cwd())
|
|
16
|
+
.option('-p, --port <number>', 'server port', parseInt)
|
|
17
|
+
.option('-h, --host <string>', 'server host')
|
|
18
|
+
.action(async (projectRoot, options) => {
|
|
19
|
+
const serverConfig = {};
|
|
20
|
+
if (options.port !== undefined)
|
|
21
|
+
serverConfig.port = options.port;
|
|
22
|
+
if (options.host !== undefined)
|
|
23
|
+
serverConfig.host = options.host;
|
|
24
|
+
try {
|
|
25
|
+
const { LoomServer } = await import('../../backend/index.js');
|
|
26
|
+
const server = new LoomServer({
|
|
27
|
+
projectRoot,
|
|
28
|
+
serverConfig,
|
|
29
|
+
});
|
|
30
|
+
await server.initialize();
|
|
31
|
+
await server.start();
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
if (error instanceof Error && error.message.includes('No loom.config.ts found')) {
|
|
35
|
+
console.error(`Error: No loom.config.ts found in ${projectRoot}`);
|
|
36
|
+
console.error('Create one with: loom init <name>');
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
throw error;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
program.parse();
|
|
43
|
+
//# sourceMappingURL=serve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/cli/commands/serve.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,QAAQ,CAAC,gBAAgB,EAAE,wBAAwB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KACnE,MAAM,CAAC,qBAAqB,EAAE,aAAa,EAAE,QAAQ,CAAC;KACtD,MAAM,CAAC,qBAAqB,EAAE,aAAa,CAAC;KAC5C,MAAM,CAAC,KAAK,EAAE,WAAmB,EAAE,OAAyC,EAAE,EAAE;IAC/E,MAAM,YAAY,GAA4B,EAAE,CAAC;IACjD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACjE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAEjE,IAAI,CAAC;QACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;YAC5B,WAAW;YACX,YAAY;SACb,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAChF,OAAO,CAAC,KAAK,CAAC,qCAAqC,WAAW,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Command Framework
|
|
3
|
+
*
|
|
4
|
+
* defineCommand() - Type-safe command registration
|
|
5
|
+
* Auto-discovery from cli/commands/ directory
|
|
6
|
+
*/
|
|
7
|
+
import type { CommandDefinition } from '../types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Define a CLI command with type safety
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* export default defineCommand({
|
|
14
|
+
* name: 'data:read:users',
|
|
15
|
+
* description: 'Read user records',
|
|
16
|
+
* options: {
|
|
17
|
+
* id: { type: 'string', description: 'User ID' },
|
|
18
|
+
* },
|
|
19
|
+
* async execute(args, context) {
|
|
20
|
+
* const adapter = context.getDataAdapter();
|
|
21
|
+
* const result = await adapter.read('users', { id: args.id as string });
|
|
22
|
+
* return JSON.stringify(result, null, 2);
|
|
23
|
+
* },
|
|
24
|
+
* });
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare function defineCommand(command: CommandDefinition): CommandDefinition;
|
|
28
|
+
//# sourceMappingURL=framework.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framework.d.ts","sourceRoot":"","sources":["../../src/cli/framework.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,iBAAiB,CAE3E"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Command Framework
|
|
3
|
+
*
|
|
4
|
+
* defineCommand() - Type-safe command registration
|
|
5
|
+
* Auto-discovery from cli/commands/ directory
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Define a CLI command with type safety
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* export default defineCommand({
|
|
13
|
+
* name: 'data:read:users',
|
|
14
|
+
* description: 'Read user records',
|
|
15
|
+
* options: {
|
|
16
|
+
* id: { type: 'string', description: 'User ID' },
|
|
17
|
+
* },
|
|
18
|
+
* async execute(args, context) {
|
|
19
|
+
* const adapter = context.getDataAdapter();
|
|
20
|
+
* const result = await adapter.read('users', { id: args.id as string });
|
|
21
|
+
* return JSON.stringify(result, null, 2);
|
|
22
|
+
* },
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export function defineCommand(command) {
|
|
27
|
+
return command;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=framework.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framework.js","sourceRoot":"","sources":["../../src/cli/framework.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,aAAa,CAAC,OAA0B;IACtD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../../src/cli/helpers/backup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../../src/cli/helpers/backup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkB9F"}
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { promises as fs } from 'fs';
|
|
9
9
|
import path from 'path';
|
|
10
|
-
import chalk from 'chalk';
|
|
11
10
|
/**
|
|
12
11
|
* Backup a file before overwriting it with --force.
|
|
13
12
|
* Copies the file to .loom/backup/<timestamp>/<filename>.
|
|
@@ -30,8 +29,6 @@ export async function backupFile(projectRoot, filePath) {
|
|
|
30
29
|
const fileName = path.basename(filePath);
|
|
31
30
|
const backupPath = path.join(backupDir, fileName);
|
|
32
31
|
await fs.writeFile(backupPath, content, 'utf-8');
|
|
33
|
-
const relativePath = path.relative(projectRoot, backupPath);
|
|
34
|
-
console.log(chalk.dim(` Backup: ${relativePath}`));
|
|
35
32
|
return backupPath;
|
|
36
33
|
}
|
|
37
34
|
//# sourceMappingURL=backup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../../src/cli/helpers/backup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../../src/cli/helpers/backup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,WAAmB,EAAE,QAAgB;IACpE,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACvE,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEjD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Field-to-template utilities - extracted for testability
|
|
3
3
|
*/
|
|
4
4
|
import type { FieldDefinition, FieldType } from '../../types/model.js';
|
|
5
|
-
/** Map FieldType to
|
|
6
|
-
export declare function
|
|
5
|
+
/** Map FieldType to TypeScript type string for interface generation */
|
|
6
|
+
export declare function fieldToTsType(type: FieldType): string;
|
|
7
7
|
/** Fallback labels for common field names without description */
|
|
8
8
|
export declare const FALLBACK_LABELS: Record<string, string>;
|
|
9
9
|
export declare function getFieldLabel(field: FieldDefinition): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-template.d.ts","sourceRoot":"","sources":["../../../src/cli/helpers/field-template.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGvE,
|
|
1
|
+
{"version":3,"file":"field-template.d.ts","sourceRoot":"","sources":["../../../src/cli/helpers/field-template.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGvE,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAiBrD;AAED,iEAAiE;AACjE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGlD,CAAC;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAG5D;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAe/D;AAgBD,gDAAgD;AAChD,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAoDtG"}
|
|
@@ -2,18 +2,23 @@
|
|
|
2
2
|
* Field-to-template utilities - extracted for testability
|
|
3
3
|
*/
|
|
4
4
|
import { resolveLocale } from '../../types/locale.js';
|
|
5
|
-
/** Map FieldType to
|
|
6
|
-
export function
|
|
5
|
+
/** Map FieldType to TypeScript type string for interface generation */
|
|
6
|
+
export function fieldToTsType(type) {
|
|
7
7
|
switch (type) {
|
|
8
|
-
case '
|
|
8
|
+
case 'string[]':
|
|
9
|
+
return 'string[]';
|
|
9
10
|
case 'number[]':
|
|
10
|
-
return
|
|
11
|
+
return 'number[]';
|
|
12
|
+
case 'json':
|
|
13
|
+
return 'Record<string, unknown>';
|
|
14
|
+
case 'number':
|
|
15
|
+
return 'number';
|
|
11
16
|
case 'boolean':
|
|
12
|
-
return
|
|
17
|
+
return 'boolean';
|
|
13
18
|
case 'date':
|
|
14
|
-
return
|
|
19
|
+
return 'string';
|
|
15
20
|
default:
|
|
16
|
-
return
|
|
21
|
+
return 'string';
|
|
17
22
|
}
|
|
18
23
|
}
|
|
19
24
|
/** Fallback labels for common field names without description */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-template.js","sourceRoot":"","sources":["../../../src/cli/helpers/field-template.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,
|
|
1
|
+
{"version":3,"file":"field-template.js","sourceRoot":"","sources":["../../../src/cli/helpers/field-template.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,uEAAuE;AACvE,MAAM,UAAU,aAAa,CAAC,IAAe;IAC3C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU;YACb,OAAO,UAAU,CAAC;QACpB,KAAK,UAAU;YACb,OAAO,UAAU,CAAC;QACpB,KAAK,MAAM;YACT,OAAO,yBAAyB,CAAC;QACnC,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM;CAClB,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,KAAsB;IAClD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACvD,OAAO,IAAI,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;AAC3D,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,eAAe,CAAC,KAAsB;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACtC,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,QAAQ;QACvB,CAAC,KAAK,CAAC,IAAI;QACX,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAC7B,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,SAAS,eAAe,CAAC,KAAsB,EAAE,KAAa;IAC5D,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC5C,OAAO,6DAA6D,KAAK,QAAQ,CAAC;IACpF,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,6DAA6D,KAAK,QAAQ,CAAC;IACpF,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,4DAA4D,KAAK,QAAQ,CAAC;IACnF,CAAC;IACD,OAAO,4DAA4D,KAAK,QAAQ,CAAC;AACnF,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,eAAe,CAAC,KAAsB,EAAE,SAAiB,EAAE,SAAmB;IAC5F,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,MAAM,SAAS,GAAG,YAAY,SAAS,UAAU,IAAI,IAAI,CAAC;IAC1D,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7E,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,0BAA0B,IAAI,YAAY,SAAS,IAAI,YAAY;wDACxB,SAAS,wCAAwC,IAAI;mBAC1F,CAAC;QAChB,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iCAAiC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7G,OAAO,0BAA0B,IAAI,YAAY,SAAS,IAAI,YAAY;wDACtB,SAAS;EAC/D,OAAO;;mBAEU,CAAC;IAClB,CAAC;IAED,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS;YACZ,OAAO,0BAA0B,IAAI,YAAY,SAAS;;mBAE7C,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU;YACb,OAAO,0BAA0B,IAAI,YAAY,SAAS,IAAI,YAAY;;mBAE7D,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,0BAA0B,IAAI,YAAY,SAAS,IAAI,YAAY;mEACb,SAAS;mBACzD,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,0BAA0B,IAAI,YAAY,SAAS;;mBAE7C,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,0BAA0B,IAAI,YAAY,SAAS,IAAI,YAAY;;mBAE7D,CAAC;QAChB;YACE,gCAAgC;YAChC,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,0BAA0B,IAAI,YAAY,SAAS,IAAI,YAAY;wEACV,SAAS;mBAC9D,CAAC;YACd,CAAC;YACD,OAAO,0BAA0B,IAAI,YAAY,SAAS,IAAI,YAAY;sDAC1B,SAAS;mBAC5C,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* i18n template helpers for page generation
|
|
3
|
+
*
|
|
4
|
+
* Generates registerMessages() calls for model/dashboard LocaleString fields.
|
|
5
|
+
* Shared between CRUD page and Dashboard page generators.
|
|
6
|
+
*/
|
|
7
|
+
import type { ModelSchema } from '../../types/model.js';
|
|
8
|
+
import type { RelationConfig } from '../../types/config.js';
|
|
9
|
+
import type { LocaleString } from '../../types/locale.js';
|
|
10
|
+
/** Generate i18n key prefix for a model */
|
|
11
|
+
export declare function i18nKey(modelName: string): string;
|
|
12
|
+
/** Generate registerMessages() calls for a model's LocaleString fields */
|
|
13
|
+
export declare function generateRegisterMessages(model: ModelSchema, relations?: RelationConfig[]): string;
|
|
14
|
+
/** Generate registerMessages() calls for a dashboard's LocaleString fields */
|
|
15
|
+
export declare function generateDashboardMessages(name: string, description: LocaleString | undefined, layout: Array<{
|
|
16
|
+
row: Array<{
|
|
17
|
+
title: LocaleString;
|
|
18
|
+
type: string;
|
|
19
|
+
}>;
|
|
20
|
+
}>): string;
|
|
21
|
+
//# sourceMappingURL=i18n-template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-template.d.ts","sourceRoot":"","sources":["../../../src/cli/helpers/i18n-template.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI1D,2CAA2C;AAC3C,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,0EAA0E;AAC1E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,cAAc,EAAE,GAAG,MAAM,CAoCjG;AAED,8EAA8E;AAC9E,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,YAAY,GAAG,SAAS,EACrC,MAAM,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,GACnE,MAAM,CAoBR"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* i18n template helpers for page generation
|
|
3
|
+
*
|
|
4
|
+
* Generates registerMessages() calls for model/dashboard LocaleString fields.
|
|
5
|
+
* Shared between CRUD page and Dashboard page generators.
|
|
6
|
+
*/
|
|
7
|
+
import { resolveLocale } from '../../types/locale.js';
|
|
8
|
+
import { toPascalCase } from './naming.js';
|
|
9
|
+
/** Generate i18n key prefix for a model */
|
|
10
|
+
export function i18nKey(modelName) {
|
|
11
|
+
return `model.${modelName}`;
|
|
12
|
+
}
|
|
13
|
+
/** Generate registerMessages() calls for a model's LocaleString fields */
|
|
14
|
+
export function generateRegisterMessages(model, relations) {
|
|
15
|
+
const prefix = i18nKey(model.name);
|
|
16
|
+
const zhMessages = {};
|
|
17
|
+
const enMessages = {};
|
|
18
|
+
// Model title
|
|
19
|
+
zhMessages[`${prefix}.title`] = resolveLocale(model.description, 'zh-CN') || toPascalCase(model.name);
|
|
20
|
+
enMessages[`${prefix}.title`] = resolveLocale(model.description, 'en-US') || toPascalCase(model.name);
|
|
21
|
+
// Field labels
|
|
22
|
+
for (const f of model.fields) {
|
|
23
|
+
if (f.name === 'id')
|
|
24
|
+
continue;
|
|
25
|
+
const key = `${prefix}.field.${f.name}`;
|
|
26
|
+
zhMessages[key] = resolveLocale(f.description, 'zh-CN') || f.name;
|
|
27
|
+
enMessages[key] = resolveLocale(f.description, 'en-US') || f.name;
|
|
28
|
+
}
|
|
29
|
+
// Enum labels (for Tag display)
|
|
30
|
+
for (const f of model.fields) {
|
|
31
|
+
if (!f.enumLabels)
|
|
32
|
+
continue;
|
|
33
|
+
for (const [enumVal, localeMap] of Object.entries(f.enumLabels)) {
|
|
34
|
+
const key = `${prefix}.enum.${f.name}.${enumVal}`;
|
|
35
|
+
zhMessages[key] = localeMap['zh-CN'] || enumVal;
|
|
36
|
+
enMessages[key] = localeMap['en-US'] || enumVal;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// Relation labels
|
|
40
|
+
for (const r of (relations?.filter(r => r.from === model.name) ?? [])) {
|
|
41
|
+
const key = `${prefix}.relation.${r.name}`;
|
|
42
|
+
zhMessages[key] = resolveLocale(r.label, 'zh-CN') || r.name;
|
|
43
|
+
enMessages[key] = resolveLocale(r.label, 'en-US') || r.name;
|
|
44
|
+
}
|
|
45
|
+
return `registerMessages('zh-CN', ${JSON.stringify(zhMessages)});
|
|
46
|
+
registerMessages('en-US', ${JSON.stringify(enMessages)});`;
|
|
47
|
+
}
|
|
48
|
+
/** Generate registerMessages() calls for a dashboard's LocaleString fields */
|
|
49
|
+
export function generateDashboardMessages(name, description, layout) {
|
|
50
|
+
const pascalName = toPascalCase(name);
|
|
51
|
+
const pageLabel = resolveLocale(description, 'zh-CN') || pascalName;
|
|
52
|
+
const zhMessages = {};
|
|
53
|
+
const enMessages = {};
|
|
54
|
+
let widgetIndex = 0;
|
|
55
|
+
for (const row of layout) {
|
|
56
|
+
for (const widget of row.row) {
|
|
57
|
+
const key = `dashboard.${name}.widget.${widgetIndex}`;
|
|
58
|
+
zhMessages[key] = resolveLocale(widget.title, 'zh-CN') || widget.type;
|
|
59
|
+
enMessages[key] = resolveLocale(widget.title, 'en-US') || widget.type;
|
|
60
|
+
widgetIndex++;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Also register the dashboard nav label
|
|
64
|
+
zhMessages[`nav.${name}`] = pageLabel;
|
|
65
|
+
enMessages[`nav.${name}`] = resolveLocale(description, 'en-US') || pascalName;
|
|
66
|
+
return `registerMessages('zh-CN', ${JSON.stringify(zhMessages)});
|
|
67
|
+
registerMessages('en-US', ${JSON.stringify(enMessages)});`;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=i18n-template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-template.js","sourceRoot":"","sources":["../../../src/cli/helpers/i18n-template.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../../src/cli/helpers/naming.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMjD
|
|
1
|
+
{"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../../src/cli/helpers/naming.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMjD"}
|
|
@@ -18,8 +18,4 @@ export function toPascalCase(name) {
|
|
|
18
18
|
const parts = name.split(/[-_]/).map(capitalizeFirst).join('');
|
|
19
19
|
return capitalizeFirst(parts);
|
|
20
20
|
}
|
|
21
|
-
export function toCamelCase(name) {
|
|
22
|
-
const pascal = toPascalCase(name);
|
|
23
|
-
return pascal.charAt(0).toLowerCase() + pascal.slice(1);
|
|
24
|
-
}
|
|
25
21
|
//# sourceMappingURL=naming.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"naming.js","sourceRoot":"","sources":["../../../src/cli/helpers/naming.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,SAAS,eAAe,CAAC,CAAS;IAChC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,+DAA+D;IAC/D,gCAAgC;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC
|
|
1
|
+
{"version":3,"file":"naming.js","sourceRoot":"","sources":["../../../src/cli/helpers/naming.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,SAAS,eAAe,CAAC,CAAS;IAChC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,+DAA+D;IAC/D,gCAAgC;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CRUD page template generator
|
|
3
|
+
*
|
|
4
|
+
* Pure function: takes model schema + options, returns TSX string.
|
|
5
|
+
* No I/O side effects — file writing is done by the command.
|
|
6
|
+
*/
|
|
7
|
+
import type { ModelSchema } from '../../types/model.js';
|
|
8
|
+
import type { AIButtonConfig } from '../../types/ai.js';
|
|
9
|
+
import type { RelationConfig } from '../../types/config.js';
|
|
10
|
+
/** Generate CRUD page template from model schema */
|
|
11
|
+
export declare function crudPageTemplate(model: ModelSchema, aiButtons?: AIButtonConfig[], relations?: RelationConfig[]): string;
|
|
12
|
+
/** Generate minimal skeleton page template (no model) */
|
|
13
|
+
export declare function skeletonPageTemplate(pascalName: string): string;
|
|
14
|
+
//# sourceMappingURL=crud-page.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crud-page.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/crud-page.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAM5D,oDAAoD;AACpD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,SAAS,CAAC,EAAE,cAAc,EAAE,GAAG,MAAM,CA2ZvH;AAED,yDAAyD;AACzD,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAkB/D"}
|