@plumbus/core 0.1.1 → 0.1.3
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/README.md +163 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/ai/ai-service.d.ts.map +1 -1
- package/dist/ai/ai-service.js +1 -0
- package/dist/ai/ai-service.js.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/route-generator.d.ts +5 -1
- package/dist/api/route-generator.d.ts.map +1 -1
- package/dist/api/route-generator.js +2 -1
- package/dist/api/route-generator.js.map +1 -1
- package/dist/cli/__tests__/cli.test.js +90 -1
- package/dist/cli/__tests__/cli.test.js.map +1 -1
- package/dist/cli/__tests__/create.test.js +22 -0
- package/dist/cli/__tests__/create.test.js.map +1 -1
- package/dist/cli/__tests__/generate.test.js +219 -1
- package/dist/cli/__tests__/generate.test.js.map +1 -1
- package/dist/cli/__tests__/init.test.js +9 -0
- package/dist/cli/__tests__/init.test.js.map +1 -1
- package/dist/cli/__tests__/start.test.d.ts +2 -0
- package/dist/cli/__tests__/start.test.d.ts.map +1 -0
- package/dist/cli/__tests__/start.test.js +91 -0
- package/dist/cli/__tests__/start.test.js.map +1 -0
- package/dist/cli/__tests__/utils.test.js +70 -2
- package/dist/cli/__tests__/utils.test.js.map +1 -1
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +16 -1
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/commands/create.d.ts.map +1 -1
- package/dist/cli/commands/create.js +28 -2
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/generate.d.ts +26 -1
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +195 -4
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/index.d.ts +3 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +5 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +20 -21
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/run.d.ts +3 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +147 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/start.d.ts +25 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +125 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/translation.d.ts +3 -0
- package/dist/cli/commands/translation.d.ts.map +1 -0
- package/dist/cli/commands/translation.js +277 -0
- package/dist/cli/commands/translation.js.map +1 -0
- package/dist/cli/commands/ui.d.ts +8 -2
- package/dist/cli/commands/ui.d.ts.map +1 -1
- package/dist/cli/commands/ui.js +13 -5
- package/dist/cli/commands/ui.js.map +1 -1
- package/dist/cli/discover.d.ts +2 -0
- package/dist/cli/discover.d.ts.map +1 -1
- package/dist/cli/discover.js +11 -1
- package/dist/cli/discover.js.map +1 -1
- package/dist/cli/index.d.ts +3 -3
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +3 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/templates/resources.d.ts +1 -0
- package/dist/cli/templates/resources.d.ts.map +1 -1
- package/dist/cli/templates/resources.js +16 -0
- package/dist/cli/templates/resources.js.map +1 -1
- package/dist/cli/utils.d.ts +15 -0
- package/dist/cli/utils.d.ts.map +1 -1
- package/dist/cli/utils.js +47 -0
- package/dist/cli/utils.js.map +1 -1
- package/dist/config/loader.d.ts +2 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/data/__tests__/registry.test.js +15 -0
- package/dist/data/__tests__/registry.test.js.map +1 -1
- package/dist/data/__tests__/repository.test.js +33 -0
- package/dist/data/__tests__/repository.test.js.map +1 -1
- package/dist/data/registry.d.ts +2 -0
- package/dist/data/registry.d.ts.map +1 -1
- package/dist/data/registry.js +1 -0
- package/dist/data/registry.js.map +1 -1
- package/dist/data/repository.d.ts +2 -0
- package/dist/data/repository.d.ts.map +1 -1
- package/dist/data/repository.js +3 -3
- package/dist/data/repository.js.map +1 -1
- package/dist/define/__tests__/defineTranslation.test.d.ts +2 -0
- package/dist/define/__tests__/defineTranslation.test.d.ts.map +1 -0
- package/dist/define/__tests__/defineTranslation.test.js +90 -0
- package/dist/define/__tests__/defineTranslation.test.js.map +1 -0
- package/dist/define/defineTranslation.d.ts +21 -0
- package/dist/define/defineTranslation.d.ts.map +1 -0
- package/dist/define/defineTranslation.js +67 -0
- package/dist/define/defineTranslation.js.map +1 -0
- package/dist/define/index.d.ts +1 -0
- package/dist/define/index.d.ts.map +1 -1
- package/dist/define/index.js +1 -0
- package/dist/define/index.js.map +1 -1
- package/dist/execution/context-factory.d.ts +2 -0
- package/dist/execution/context-factory.d.ts.map +1 -1
- package/dist/execution/context-factory.js +5 -0
- package/dist/execution/context-factory.js.map +1 -1
- package/dist/fields/index.d.ts +1 -0
- package/dist/fields/index.d.ts.map +1 -1
- package/dist/fields/index.js +1 -0
- package/dist/fields/index.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -6
- package/dist/index.js.map +1 -1
- package/dist/server/bootstrap.d.ts.map +1 -1
- package/dist/server/bootstrap.js +7 -2
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/testing/context.js +2 -2
- package/dist/testing/context.js.map +1 -1
- package/dist/testing/index.d.ts +3 -3
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +1 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/translations/__tests__/translation-resolver.test.d.ts +2 -0
- package/dist/translations/__tests__/translation-resolver.test.d.ts.map +1 -0
- package/dist/translations/__tests__/translation-resolver.test.js +140 -0
- package/dist/translations/__tests__/translation-resolver.test.js.map +1 -0
- package/dist/translations/index.d.ts +40 -0
- package/dist/translations/index.d.ts.map +1 -0
- package/dist/translations/index.js +144 -0
- package/dist/translations/index.js.map +1 -0
- package/dist/types/context.d.ts +13 -7
- package/dist/types/context.d.ts.map +1 -1
- package/dist/types/fields.d.ts +1 -0
- package/dist/types/fields.d.ts.map +1 -1
- package/dist/types/flow.d.ts +2 -0
- package/dist/types/flow.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/translation.d.ts +28 -0
- package/dist/types/translation.d.ts.map +1 -0
- package/dist/types/translation.js +6 -0
- package/dist/types/translation.js.map +1 -0
- package/instructions/cli.md +24 -0
- package/instructions/deployment.md +332 -0
- package/instructions/translations.md +78 -0
- package/package.json +2 -2
|
@@ -1,8 +1,88 @@
|
|
|
1
1
|
// ── plumbus generate ──
|
|
2
2
|
// Auto-generate derived artifacts from contracts
|
|
3
3
|
import * as path from 'node:path';
|
|
4
|
+
import { z } from 'zod';
|
|
4
5
|
import { discoverResources } from '../discover.js';
|
|
5
6
|
import { info, resolvePath, success, toCamelCase, toKebabCase, toPascalCase, warn, writeFile, } from '../utils.js';
|
|
7
|
+
/**
|
|
8
|
+
* Convert a Zod type to a TypeScript type string for code generation.
|
|
9
|
+
* Handles ZodObject (with nested shapes), ZodArray, ZodString, ZodNumber,
|
|
10
|
+
* ZodBoolean, ZodEnum, ZodOptional, ZodNullable, ZodDefault, and ZodLiteral.
|
|
11
|
+
* Falls back to `unknown` for unsupported types.
|
|
12
|
+
*/
|
|
13
|
+
export function zodTypeToString(schema) {
|
|
14
|
+
if (schema instanceof z.ZodObject) {
|
|
15
|
+
const shape = schema.shape;
|
|
16
|
+
const entries = Object.entries(shape);
|
|
17
|
+
if (entries.length === 0)
|
|
18
|
+
return 'Record<string, never>';
|
|
19
|
+
const fields = entries.map(([key, value]) => {
|
|
20
|
+
const isOptional = value instanceof z.ZodOptional || value instanceof z.ZodDefault;
|
|
21
|
+
return ` ${key}${isOptional ? '?' : ''}: ${zodTypeToString(value)};`;
|
|
22
|
+
});
|
|
23
|
+
return `{\n${fields.join('\n')}\n}`;
|
|
24
|
+
}
|
|
25
|
+
if (schema instanceof z.ZodArray) {
|
|
26
|
+
const inner = zodTypeToString(schema.element);
|
|
27
|
+
return inner.includes('|') ? `(${inner})[]` : `${inner}[]`;
|
|
28
|
+
}
|
|
29
|
+
if (schema instanceof z.ZodString)
|
|
30
|
+
return 'string';
|
|
31
|
+
if (schema instanceof z.ZodNumber)
|
|
32
|
+
return 'number';
|
|
33
|
+
if (schema instanceof z.ZodBoolean)
|
|
34
|
+
return 'boolean';
|
|
35
|
+
if (schema instanceof z.ZodDate)
|
|
36
|
+
return 'Date';
|
|
37
|
+
if (schema instanceof z.ZodLiteral) {
|
|
38
|
+
const val = schema.value;
|
|
39
|
+
return typeof val === 'string' ? `"${val}"` : String(val);
|
|
40
|
+
}
|
|
41
|
+
if (schema instanceof z.ZodEnum) {
|
|
42
|
+
const values = schema.options;
|
|
43
|
+
return values.map((v) => `"${v}"`).join(' | ');
|
|
44
|
+
}
|
|
45
|
+
if (schema instanceof z.ZodNativeEnum)
|
|
46
|
+
return 'string | number';
|
|
47
|
+
if (schema instanceof z.ZodOptional)
|
|
48
|
+
return zodTypeToString(schema.unwrap());
|
|
49
|
+
if (schema instanceof z.ZodNullable)
|
|
50
|
+
return `${zodTypeToString(schema.unwrap())} | null`;
|
|
51
|
+
if (schema instanceof z.ZodDefault)
|
|
52
|
+
return zodTypeToString(schema.removeDefault());
|
|
53
|
+
if (schema instanceof z.ZodUnion) {
|
|
54
|
+
const opts = schema.options;
|
|
55
|
+
return opts.map((o) => zodTypeToString(o)).join(' | ');
|
|
56
|
+
}
|
|
57
|
+
if (schema instanceof z.ZodRecord)
|
|
58
|
+
return 'Record<string, unknown>';
|
|
59
|
+
if (schema instanceof z.ZodVoid)
|
|
60
|
+
return 'void';
|
|
61
|
+
if (schema instanceof z.ZodUndefined)
|
|
62
|
+
return 'undefined';
|
|
63
|
+
if (schema instanceof z.ZodNull)
|
|
64
|
+
return 'null';
|
|
65
|
+
if (schema instanceof z.ZodAny)
|
|
66
|
+
return 'any';
|
|
67
|
+
if (schema instanceof z.ZodUnknown)
|
|
68
|
+
return 'unknown';
|
|
69
|
+
return 'unknown';
|
|
70
|
+
}
|
|
71
|
+
/** Generate TypeScript type declarations for a capability's input and output */
|
|
72
|
+
export function generateCapabilityTypes(cap) {
|
|
73
|
+
const name = toPascalCase(cap.name);
|
|
74
|
+
const inputType = zodTypeToString(cap.input);
|
|
75
|
+
const outputType = zodTypeToString(cap.output);
|
|
76
|
+
return `export type ${name}Input = ${inputType};\nexport type ${name}Output = ${outputType};`;
|
|
77
|
+
}
|
|
78
|
+
/** Generate a union type of all capability names */
|
|
79
|
+
export function generateCapabilityNameType(capabilities) {
|
|
80
|
+
if (capabilities.length === 0) {
|
|
81
|
+
return 'export type CapabilityName = never;';
|
|
82
|
+
}
|
|
83
|
+
const names = capabilities.map((c) => `"${c.name}"`).join(' | ');
|
|
84
|
+
return `export type CapabilityName = ${names};`;
|
|
85
|
+
}
|
|
6
86
|
/** Generate a typed API client function for a capability */
|
|
7
87
|
export function generateClientFunction(cap) {
|
|
8
88
|
const fnName = toCamelCase(cap.name);
|
|
@@ -96,13 +176,106 @@ export function generateManifestEntry(cap) {
|
|
|
96
176
|
access: cap.access,
|
|
97
177
|
};
|
|
98
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Map an entity FieldDescriptor type to its TypeScript type string.
|
|
181
|
+
*/
|
|
182
|
+
function fieldTypeToTS(descriptor) {
|
|
183
|
+
switch (descriptor.type) {
|
|
184
|
+
case 'id':
|
|
185
|
+
return 'string';
|
|
186
|
+
case 'string':
|
|
187
|
+
return 'string';
|
|
188
|
+
case 'number':
|
|
189
|
+
return 'number';
|
|
190
|
+
case 'decimal':
|
|
191
|
+
return 'number';
|
|
192
|
+
case 'boolean':
|
|
193
|
+
return 'boolean';
|
|
194
|
+
case 'timestamp':
|
|
195
|
+
return 'Date';
|
|
196
|
+
case 'json':
|
|
197
|
+
return 'unknown';
|
|
198
|
+
case 'enum':
|
|
199
|
+
return descriptor.values.map((v) => `"${v}"`).join(' | ') || 'string';
|
|
200
|
+
case 'relation':
|
|
201
|
+
return 'string';
|
|
202
|
+
default:
|
|
203
|
+
return 'unknown';
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Generate a TypeScript interface for a single entity definition.
|
|
208
|
+
*/
|
|
209
|
+
export function generateEntityInterface(entity) {
|
|
210
|
+
const name = toPascalCase(entity.name);
|
|
211
|
+
const lines = [];
|
|
212
|
+
lines.push(`export interface ${name}Record {`);
|
|
213
|
+
for (const [fieldName, descriptor] of Object.entries(entity.fields)) {
|
|
214
|
+
const tsType = fieldTypeToTS(descriptor);
|
|
215
|
+
const optional = !descriptor.options.required && descriptor.type !== 'id';
|
|
216
|
+
lines.push(` ${fieldName}${optional ? '?' : ''}: ${tsType};`);
|
|
217
|
+
}
|
|
218
|
+
// Auto-added fields (mirrors schema-generator.ts behavior)
|
|
219
|
+
if (!entity.fields.createdAt) {
|
|
220
|
+
lines.push(' createdAt: Date;');
|
|
221
|
+
}
|
|
222
|
+
if (!entity.fields.updatedAt) {
|
|
223
|
+
lines.push(' updatedAt: Date;');
|
|
224
|
+
}
|
|
225
|
+
if (entity.tenantScoped && !entity.fields.tenantId) {
|
|
226
|
+
lines.push(' tenantId: string;');
|
|
227
|
+
}
|
|
228
|
+
lines.push('}');
|
|
229
|
+
return lines.join('\n');
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Generate a DataServiceMap interface that maps entity names to typed repositories.
|
|
233
|
+
*/
|
|
234
|
+
export function generateDataServiceMap(entities) {
|
|
235
|
+
const lines = [];
|
|
236
|
+
lines.push('import type { Repository } from "@plumbus/core";');
|
|
237
|
+
lines.push('');
|
|
238
|
+
for (const entity of entities) {
|
|
239
|
+
lines.push(generateEntityInterface(entity));
|
|
240
|
+
lines.push('');
|
|
241
|
+
}
|
|
242
|
+
lines.push('export interface DataServiceMap {');
|
|
243
|
+
for (const entity of entities) {
|
|
244
|
+
const name = toPascalCase(entity.name);
|
|
245
|
+
lines.push(` ${entity.name}: Repository<${name}Record>;`);
|
|
246
|
+
}
|
|
247
|
+
lines.push('}');
|
|
248
|
+
return lines.join('\n');
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Generate the full entity types file content.
|
|
252
|
+
*/
|
|
253
|
+
export function generateEntityTypeFile(entities) {
|
|
254
|
+
const header = '// Auto-generated by `plumbus generate` — do not edit\n';
|
|
255
|
+
if (entities.length === 0) {
|
|
256
|
+
return `${header}\nexport interface DataServiceMap {}\n`;
|
|
257
|
+
}
|
|
258
|
+
return `${header}\n${generateDataServiceMap(entities)}\n`;
|
|
259
|
+
}
|
|
99
260
|
/** Run full code generation for a set of capabilities */
|
|
100
|
-
export function generateAll(capabilities, outputDir) {
|
|
261
|
+
export function generateAll(capabilities, outputDir, entities = []) {
|
|
101
262
|
const generated = [];
|
|
263
|
+
// Capability types (input/output interfaces + CapabilityName union)
|
|
264
|
+
const capabilityTypeLines = [
|
|
265
|
+
'// Auto-generated by `plumbus generate` — do not edit',
|
|
266
|
+
'',
|
|
267
|
+
...capabilities.map(generateCapabilityTypes),
|
|
268
|
+
'',
|
|
269
|
+
generateCapabilityNameType(capabilities),
|
|
270
|
+
];
|
|
271
|
+
writeFile(path.join(outputDir, 'capability-types.ts'), capabilityTypeLines.join('\n\n'));
|
|
272
|
+
generated.push('capability-types.ts');
|
|
102
273
|
// Client functions
|
|
103
274
|
const clientLines = [
|
|
104
275
|
'// Auto-generated by `plumbus generate` — do not edit',
|
|
105
276
|
'',
|
|
277
|
+
...capabilities.map((c) => `import type { ${toPascalCase(c.name)}Input, ${toPascalCase(c.name)}Output } from "./capability-types.js";`),
|
|
278
|
+
'',
|
|
106
279
|
...capabilities.map(generateClientFunction),
|
|
107
280
|
];
|
|
108
281
|
writeFile(path.join(outputDir, 'clients', 'api.ts'), clientLines.join('\n\n'));
|
|
@@ -110,8 +283,14 @@ export function generateAll(capabilities, outputDir) {
|
|
|
110
283
|
// React hooks
|
|
111
284
|
const hookLines = [
|
|
112
285
|
'// Auto-generated by `plumbus generate` — do not edit',
|
|
113
|
-
'//
|
|
286
|
+
'// biome-ignore-all lint/correctness/noUnusedImports: generated code',
|
|
114
287
|
'import { useState, useEffect } from "react";',
|
|
288
|
+
...capabilities.map((c) => `import type { ${toPascalCase(c.name)}Input, ${toPascalCase(c.name)}Output } from "./capability-types.js";`),
|
|
289
|
+
'',
|
|
290
|
+
...capabilities.map((c) => {
|
|
291
|
+
const fnName = toCamelCase(c.name);
|
|
292
|
+
return `import { ${fnName} } from "./api.js";`;
|
|
293
|
+
}),
|
|
115
294
|
'',
|
|
116
295
|
...capabilities.map(generateReactHook),
|
|
117
296
|
];
|
|
@@ -137,6 +316,10 @@ export function generateAll(capabilities, outputDir) {
|
|
|
137
316
|
};
|
|
138
317
|
writeFile(path.join(outputDir, 'manifest.json'), JSON.stringify(manifest, null, 2));
|
|
139
318
|
generated.push('manifest.json');
|
|
319
|
+
// Entity types
|
|
320
|
+
const entityTypesContent = generateEntityTypeFile(entities);
|
|
321
|
+
writeFile(path.join(outputDir, 'entity-types.ts'), entityTypesContent);
|
|
322
|
+
generated.push('entity-types.ts');
|
|
140
323
|
return generated;
|
|
141
324
|
}
|
|
142
325
|
export function registerGenerateCommand(program) {
|
|
@@ -146,22 +329,30 @@ export function registerGenerateCommand(program) {
|
|
|
146
329
|
.option('--json', 'Output results as JSON')
|
|
147
330
|
.action(async (opts) => {
|
|
148
331
|
const outputDir = resolvePath('.plumbus', 'generated');
|
|
149
|
-
info('Scanning for registered
|
|
332
|
+
info('Scanning for registered resources...');
|
|
150
333
|
let capabilities = [];
|
|
334
|
+
let entities = [];
|
|
151
335
|
try {
|
|
152
336
|
const resources = await discoverResources();
|
|
153
337
|
capabilities = resources.capabilities;
|
|
338
|
+
entities = resources.entities;
|
|
154
339
|
if (capabilities.length > 0) {
|
|
155
340
|
info(`Discovered ${capabilities.length} capability(ies)`);
|
|
156
341
|
}
|
|
157
342
|
else {
|
|
158
343
|
warn('No capabilities found in app/capabilities/');
|
|
159
344
|
}
|
|
345
|
+
if (entities.length > 0) {
|
|
346
|
+
info(`Discovered ${entities.length} entity(ies)`);
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
warn('No entities found in app/entities/');
|
|
350
|
+
}
|
|
160
351
|
}
|
|
161
352
|
catch {
|
|
162
353
|
warn('Could not auto-discover resources (app/ directory may not exist)');
|
|
163
354
|
}
|
|
164
|
-
const generated = generateAll(capabilities, outputDir);
|
|
355
|
+
const generated = generateAll(capabilities, outputDir, entities);
|
|
165
356
|
if (opts.json) {
|
|
166
357
|
console.log(JSON.stringify({ generated }, null, 2));
|
|
167
358
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,iDAAiD;AAGjD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EACL,IAAI,EACJ,WAAW,EACX,OAAO,EACP,WAAW,EACX,WAAW,EACX,YAAY,EACZ,IAAI,EACJ,SAAS,GACV,MAAM,aAAa,CAAC;AAMrB;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,IAAI,MAAM,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAqC,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,uBAAuB,CAAC;QACzD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC1C,MAAM,UAAU,GAAG,KAAK,YAAY,CAAC,CAAC,WAAW,IAAI,KAAK,YAAY,CAAC,CAAC,UAAU,CAAC;YACnF,OAAO,KAAK,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;QACxE,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACtC,CAAC;IACD,IAAI,MAAM,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC;IAC7D,CAAC;IACD,IAAI,MAAM,YAAY,CAAC,CAAC,SAAS;QAAE,OAAO,QAAQ,CAAC;IACnD,IAAI,MAAM,YAAY,CAAC,CAAC,SAAS;QAAE,OAAO,QAAQ,CAAC;IACnD,IAAI,MAAM,YAAY,CAAC,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IACrD,IAAI,MAAM,YAAY,CAAC,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAC/C,IAAI,MAAM,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;QACzB,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,MAAM,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAmB,CAAC;QAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,MAAM,YAAY,CAAC,CAAC,aAAa;QAAE,OAAO,iBAAiB,CAAC;IAChE,IAAI,MAAM,YAAY,CAAC,CAAC,WAAW;QAAE,OAAO,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,IAAI,MAAM,YAAY,CAAC,CAAC,WAAW;QAAE,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC;IACzF,IAAI,MAAM,YAAY,CAAC,CAAC,UAAU;QAAE,OAAO,eAAe,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IACnF,IAAI,MAAM,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAyB,CAAC;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,MAAM,YAAY,CAAC,CAAC,SAAS;QAAE,OAAO,yBAAyB,CAAC;IACpE,IAAI,MAAM,YAAY,CAAC,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAC/C,IAAI,MAAM,YAAY,CAAC,CAAC,YAAY;QAAE,OAAO,WAAW,CAAC;IACzD,IAAI,MAAM,YAAY,CAAC,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAC/C,IAAI,MAAM,YAAY,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,MAAM,YAAY,CAAC,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IACrD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,uBAAuB,CAAC,GAAuB;IAC7D,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,eAAe,IAAI,WAAW,SAAS,kBAAkB,IAAI,YAAY,UAAU,GAAG,CAAC;AAChG,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,0BAA0B,CAAC,YAAkC;IAC3E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,qCAAqC,CAAC;IAC/C,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjE,OAAO,gCAAgC,KAAK,GAAG,CAAC;AAClD,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,sBAAsB,CAAC,GAAuB;IAC5D,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAsB,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IACjD,MAAM,OAAO,GAAG,QAAQ,GAAG,CAAC,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IAE9D,OAAO,yBAAyB,MAAM,WAAW,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;kCAChF,OAAO;eAC1B,MAAM;;YAET,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,uBAAuB;;;sCAG9B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;EAC1D,CAAC;AACH,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,iBAAiB,CAAC,GAAuB;IACvD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAsB,CAAC;IAExC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,mBAAmB,QAAQ,WAAW,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;qCAClC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;;;;;;MAMrD,MAAM;;;;EAIV,CAAC;IACD,CAAC;IAED,OAAO,mBAAmB,QAAQ;;;;iCAIH,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;;;;qBAIlC,MAAM;;;;;;;;;;EAUzB,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,mBAAmB,CAAC,GAAuB;IACzD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAsB,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IACjD,MAAM,OAAO,GAAG,QAAQ,GAAG,CAAC,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IAE9D,OAAO;QACL,CAAC,OAAO,CAAC,EAAE;YACT,CAAC,MAAM,CAAC,EAAE;gBACR,WAAW,EAAE,GAAG,CAAC,IAAI;gBACrB,OAAO,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI;gBACpC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;gBAClB,WAAW,EACT,MAAM,KAAK,MAAM;oBACf,CAAC,CAAC;wBACE,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;qBAChE;oBACH,CAAC,CAAC,SAAS;gBACf,SAAS,EAAE;oBACT,KAAK,EAAE;wBACL,WAAW,EAAE,qBAAqB;wBAClC,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;qBAChE;iBACF;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,qBAAqB,CAAC,GAAuB;IAC3D,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,UAA2B;IAChD,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,IAAI;YACP,OAAO,QAAQ,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,WAAW;YACd,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC;QACxE,KAAK,UAAU;YACb,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAwB;IAC9D,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,oBAAoB,IAAI,UAAU,CAAC,CAAC;IAC/C,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACpE,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,2DAA2D;IAC3D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAA4B;IACjE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAChD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,gBAAgB,IAAI,UAAU,CAAC,CAAC;IAC7D,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAA4B;IACjE,MAAM,MAAM,GAAG,yDAAyD,CAAC;IACzE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,GAAG,MAAM,wCAAwC,CAAC;IAC3D,CAAC;IACD,OAAO,GAAG,MAAM,KAAK,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC5D,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,WAAW,CACzB,YAAkC,EAClC,SAAiB,EACjB,WAA+B,EAAE;IAEjC,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,oEAAoE;IACpE,MAAM,mBAAmB,GAAG;QAC1B,uDAAuD;QACvD,EAAE;QACF,GAAG,YAAY,CAAC,GAAG,CAAC,uBAAuB,CAAC;QAC5C,EAAE;QACF,0BAA0B,CAAC,YAAY,CAAC;KACzC,CAAC;IACF,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,EAAE,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAEtC,mBAAmB;IACnB,MAAM,WAAW,GAAG;QAClB,uDAAuD;QACvD,EAAE;QACF,GAAG,YAAY,CAAC,GAAG,CACjB,CAAC,CAAC,EAAE,EAAE,CACJ,iBAAiB,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,wCAAwC,CAC9G;QACD,EAAE;QACF,GAAG,YAAY,CAAC,GAAG,CAAC,sBAAsB,CAAC;KAC5C,CAAC;IACF,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/E,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAEjC,cAAc;IACd,MAAM,SAAS,GAAG;QAChB,uDAAuD;QACvD,sEAAsE;QACtE,8CAA8C;QAC9C,GAAG,YAAY,CAAC,GAAG,CACjB,CAAC,CAAC,EAAE,EAAE,CACJ,iBAAiB,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,wCAAwC,CAC9G;QACD,EAAE;QACF,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnC,OAAO,YAAY,MAAM,qBAAqB,CAAC;QACjD,CAAC,CAAC;QACF,EAAE;QACF,GAAG,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC;KACvC,CAAC;IACF,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/E,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAEnC,eAAe;IACf,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,OAAO,GAAG;QACd,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE;QAChD,KAAK;KACN,CAAC;IACF,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAClF,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE/B,WAAW;IACX,MAAM,QAAQ,GAAG;QACf,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,qBAAqB,CAAC;KACtD,CAAC;IACF,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACpF,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAEhC,eAAe;IACf,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC5D,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACvE,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAElC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CACV,mFAAmF,CACpF;SACA,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC;SAC1C,MAAM,CAAC,KAAK,EAAE,IAAqB,EAAE,EAAE;QACtC,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEvD,IAAI,CAAC,sCAAsC,CAAC,CAAC;QAC7C,IAAI,YAAY,GAAyB,EAAE,CAAC;QAC5C,IAAI,QAAQ,GAAuB,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,iBAAiB,EAAE,CAAC;YAC5C,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;YACtC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;YAC9B,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,cAAc,YAAY,CAAC,MAAM,kBAAkB,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,4CAA4C,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,cAAc,QAAQ,CAAC,MAAM,cAAc,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEjE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -13,8 +13,11 @@ export { registerInitCommand } from './init.js';
|
|
|
13
13
|
export { registerDbCommand, registerMigrateCommand } from './migrate.js';
|
|
14
14
|
export { registerPromptCommand } from './prompt.js';
|
|
15
15
|
export { registerRagCommand } from './rag.js';
|
|
16
|
+
export { registerRunCommand } from './run.js';
|
|
16
17
|
export { registerSeedCommand } from './seed.js';
|
|
18
|
+
export { registerStartCommand } from './start.js';
|
|
17
19
|
export { registerTestCommand } from './test.js';
|
|
20
|
+
export { registerTranslationCommand } from './translation.js';
|
|
18
21
|
export { registerUiCommand } from './ui.js';
|
|
19
22
|
export { registerVerifyCommand } from './verify.js';
|
|
20
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -19,7 +19,9 @@
|
|
|
19
19
|
// migrate — Database migration commands
|
|
20
20
|
// prompt — Scaffold a new prompt
|
|
21
21
|
// rag — RAG document ingestion
|
|
22
|
+
// run — Run app command scripts from app/commands/
|
|
22
23
|
// seed — Run seed files to populate the database
|
|
24
|
+
// start — Start production server
|
|
23
25
|
// test — Run unit tests using vitest
|
|
24
26
|
// ui — Generate frontend source files and scaffolds
|
|
25
27
|
// verify — Run governance rules
|
|
@@ -38,8 +40,11 @@ export { registerInitCommand } from './init.js';
|
|
|
38
40
|
export { registerDbCommand, registerMigrateCommand } from './migrate.js';
|
|
39
41
|
export { registerPromptCommand } from './prompt.js';
|
|
40
42
|
export { registerRagCommand } from './rag.js';
|
|
43
|
+
export { registerRunCommand } from './run.js';
|
|
41
44
|
export { registerSeedCommand } from './seed.js';
|
|
45
|
+
export { registerStartCommand } from './start.js';
|
|
42
46
|
export { registerTestCommand } from './test.js';
|
|
47
|
+
export { registerTranslationCommand } from './translation.js';
|
|
43
48
|
export { registerUiCommand } from './ui.js';
|
|
44
49
|
export { registerVerifyCommand } from './verify.js';
|
|
45
50
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,6CAA6C;AAC7C,6EAA6E;AAC7E,EAAE;AACF,sBAAsB;AACtB,wDAAwD;AACxD,2CAA2C;AAC3C,mDAAmD;AACnD,oDAAoD;AACpD,0DAA0D;AAC1D,6CAA6C;AAC7C,oEAAoE;AACpE,uCAAuC;AACvC,sCAAsC;AACtC,qCAAqC;AACrC,4DAA4D;AAC5D,gDAAgD;AAChD,+DAA+D;AAC/D,6CAA6C;AAC7C,uCAAuC;AACvC,wCAAwC;AACxC,yDAAyD;AACzD,6CAA6C;AAC7C,8DAA8D;AAC9D,sCAAsC;AAEtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,6CAA6C;AAC7C,6EAA6E;AAC7E,EAAE;AACF,sBAAsB;AACtB,wDAAwD;AACxD,2CAA2C;AAC3C,mDAAmD;AACnD,oDAAoD;AACpD,0DAA0D;AAC1D,6CAA6C;AAC7C,oEAAoE;AACpE,uCAAuC;AACvC,sCAAsC;AACtC,qCAAqC;AACrC,4DAA4D;AAC5D,gDAAgD;AAChD,+DAA+D;AAC/D,6CAA6C;AAC7C,uCAAuC;AACvC,wCAAwC;AACxC,4DAA4D;AAC5D,yDAAyD;AACzD,yCAAyC;AACzC,6CAA6C;AAC7C,8DAA8D;AAC9D,sCAAsC;AAEtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAmID,mDAAmD;AACnD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CA6DnE;AAED,4CAA4C;AAC5C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAgC1D;AAED,+CAA+C;AAC/C,wBAAgB,4BAA4B,IAAI,MAAM,CAarD;AAED,iCAAiC;AACjC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CA8CxD;AAED,iCAAiC;AACjC,wBAAgB,oBAAoB,IAAI,MAAM,CAuB7C;AAED,+CAA+C;AAC/C,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,WAAW,EAAE,EACtB,MAAM,EAAE,OAAO,EACf,mBAAmB,UAAO,GACzB,MAAM,EAAE,CAqCV;AAaD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiB1D"}
|
|
@@ -57,6 +57,14 @@ function addInstructionReferenceLines(lines, inline) {
|
|
|
57
57
|
lines.push(`- When working on ${reference.area}, read \`${reference.path}\``);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
+
/** Documentation maintenance section shared across all agent file formats */
|
|
61
|
+
function addDocumentationMaintenanceLines(lines) {
|
|
62
|
+
lines.push('', '## Documentation Maintenance — CRITICAL', '', '**Every code change must include corresponding documentation updates.** The project has comprehensive documentation in `docs/`. Read `docs/maintaining-docs.md` for the full area-to-doc mapping.', '', '### Area-to-Doc Quick Reference', '', '| Code Area | Update These Docs |', '|-----------|------------------|', '| `app/entities/` | `docs/architecture/data-model.md` |', '| `app/capabilities/` | `docs/capabilities/index.md` |', '| `app/flows/` | `docs/flows/index.md` |', '| `app/events/` | `docs/events/index.md` |', '| `app/prompts/` | `docs/prompts/index.md` |', '| `config/` | `docs/configuration/index.md` |', '| `frontend/` | `docs/frontend/architecture.md` |', '| `frontend-admin/` | `docs/frontend/architecture.md`, `docs/admin/operations.md` |', '| New domain concept | Create or update `docs/domain/` |', '| Architecture change | Update `docs/architecture/` |', '', '### Documentation Rules', '', '1. **Accuracy over speed** — docs must match actual code', '2. **ASCII diagrams only** — do NOT use Mermaid (too fragile with AI edits)', '3. **Cross-references** — always link to related docs', '4. **No stale content** — if you remove code, remove its docs', '5. **Full docs index** — `docs/README.md` is the table of contents');
|
|
63
|
+
}
|
|
64
|
+
/** Framework-provided dependency warnings shared across agent file formats */
|
|
65
|
+
function addFrameworkDependencyLines(lines) {
|
|
66
|
+
lines.push('', '## Framework-Provided Dependencies — DO NOT Install Separately', '', "The framework provides these packages. **Never add them to this project's package.json**:", '', '### From `@plumbus/core`', '', '| Package | Import from | NOT from |', '|---------|-------------|----------|', '| zod | `@plumbus/core/zod` | ~~`zod`~~ |', '| vitest | `vitest` (at runtime) | ~~devDependencies~~ |', '| vitest config | `@plumbus/core/vitest` | ~~`vitest/config`~~ |', '| playwright | `@plumbus/core/testing` | ~~`playwright`~~ |', '', '### From `@plumbus/ui`', '', '| Package | NOT in package.json |', '|---------|--------------------|', '| next | ~~`next`~~ |', '| react | ~~`react`~~ |', '| react-dom | ~~`react-dom`~~ |', '| tailwindcss | ~~`tailwindcss`~~ |', '| @tailwindcss/postcss | ~~`@tailwindcss/postcss`~~ |', '| typescript | ~~`typescript`~~ |', '| @types/react | ~~`@types/react`~~ |', '| @types/react-dom | ~~`@types/react-dom`~~ |');
|
|
67
|
+
}
|
|
60
68
|
/** Generate the copilot-instructions.md content */
|
|
61
69
|
export function generateCopilotInstructions(inline) {
|
|
62
70
|
const lines = [
|
|
@@ -73,27 +81,16 @@ export function generateCopilotInstructions(inline) {
|
|
|
73
81
|
'- Config in `config/`',
|
|
74
82
|
'',
|
|
75
83
|
'## Edit Zones',
|
|
76
|
-
'- **Safe**: `app/` directory (capabilities, entities, flows, events, prompts), `config/`, tests',
|
|
84
|
+
'- **Safe**: `app/` directory (capabilities, entities, flows, events, prompts), `config/`, `docs/`, tests',
|
|
77
85
|
'- **Restricted**: `.plumbus/` generated files (regenerated by CLI)',
|
|
78
86
|
'- **Forbidden**: `node_modules/`, `dist/`',
|
|
79
|
-
'',
|
|
80
|
-
'## CLI Scaffolding',
|
|
81
|
-
'**Always run CLI commands from the project root**. Use the Plumbus CLI to scaffold new primitives and UI artifacts:',
|
|
82
|
-
'```',
|
|
83
|
-
'plumbus entity new <EntityName>',
|
|
84
|
-
'plumbus capability new <CapabilityName>',
|
|
85
|
-
'plumbus event new <EventName>',
|
|
86
|
-
'plumbus flow new <FlowName>',
|
|
87
|
-
'plumbus prompt new <PromptName>',
|
|
88
|
-
'plumbus ui generate',
|
|
89
|
-
'plumbus ui nextjs <output-dir>',
|
|
90
|
-
'```',
|
|
91
|
-
'After scaffolding, fill in the `// TODO` sections in the generated files.',
|
|
92
|
-
'',
|
|
93
|
-
'## SDK Reference',
|
|
94
87
|
];
|
|
88
|
+
addFrameworkDependencyLines(lines);
|
|
89
|
+
lines.push('', '### Commands', '| Task | Command |', '|------|---------|', '| Run tests | `plumbus test` |', '| Watch tests | `plumbus test --watch` |', '| Run e2e | `plumbus test --config frontend/e2e/vitest.config.e2e.ts` |', '| Dev server | `plumbus dev` |', '', '## CLI Scaffolding', '**Always run CLI commands from the project root**. Use the Plumbus CLI to scaffold new primitives and UI artifacts:', '```', 'plumbus entity new <EntityName>', 'plumbus capability new <CapabilityName>', 'plumbus event new <EventName>', 'plumbus flow new <FlowName>', 'plumbus prompt new <PromptName>', 'plumbus ui generate', 'plumbus ui nextjs <output-dir>', '```', 'After scaffolding, fill in the `// TODO` sections in the generated files.', '', '## SDK Reference');
|
|
95
90
|
addInstructionReferenceLines(lines, inline);
|
|
96
|
-
lines.push('', '## Project Brief', 'See `.plumbus/briefs/project.md` for project-specific context.'
|
|
91
|
+
lines.push('', '## Project Brief', 'See `.plumbus/briefs/project.md` for project-specific context.');
|
|
92
|
+
addDocumentationMaintenanceLines(lines);
|
|
93
|
+
lines.push('');
|
|
97
94
|
return lines.join('\n');
|
|
98
95
|
}
|
|
99
96
|
/** Generate the Cursor .mdc rule content */
|
|
@@ -116,13 +113,14 @@ export function generateCursorRule(inline) {
|
|
|
116
113
|
'- Prompts: `app/prompts/<name>.prompt.ts`',
|
|
117
114
|
'',
|
|
118
115
|
'## Edit Zones',
|
|
119
|
-
'- Safe: `app/`, `config/`, tests',
|
|
116
|
+
'- Safe: `app/`, `config/`, `docs/`, tests',
|
|
120
117
|
'- Restricted: `.plumbus/generated/`',
|
|
121
118
|
'- Forbidden: `node_modules/`, `dist/`',
|
|
122
119
|
'',
|
|
123
120
|
'## SDK Reference',
|
|
124
121
|
];
|
|
125
122
|
addInstructionReferenceLines(lines, inline);
|
|
123
|
+
addDocumentationMaintenanceLines(lines);
|
|
126
124
|
lines.push('');
|
|
127
125
|
return lines.join('\n');
|
|
128
126
|
}
|
|
@@ -162,13 +160,14 @@ export function generateAgentsMd(inline) {
|
|
|
162
160
|
'- `.plumbus/generated/` — Auto-generated (do not edit)',
|
|
163
161
|
'',
|
|
164
162
|
'## Edit Zones',
|
|
165
|
-
'- **Safe**: `app/`, `config/`, tests',
|
|
163
|
+
'- **Safe**: `app/`, `config/`, `docs/`, tests',
|
|
166
164
|
'- **Restricted**: `.plumbus/` (regenerated by `plumbus generate`)',
|
|
167
165
|
'- **Forbidden**: `node_modules/`, `dist/`',
|
|
168
|
-
'',
|
|
169
|
-
'## SDK Reference',
|
|
170
166
|
];
|
|
167
|
+
addFrameworkDependencyLines(lines);
|
|
168
|
+
lines.push('', '### Commands', '| Task | Command |', '|------|---------|', '| Run tests | `plumbus test` |', '| Watch tests | `plumbus test --watch` |', '| Run e2e | `plumbus test --config frontend/e2e/vitest.config.e2e.ts` |', '| Dev server | `plumbus dev` |', '', '## SDK Reference');
|
|
171
169
|
addInstructionReferenceLines(lines, inline);
|
|
170
|
+
addDocumentationMaintenanceLines(lines);
|
|
172
171
|
lines.push('');
|
|
173
172
|
return lines.join('\n');
|
|
174
173
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,mFAAmF;AAGnF,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AASvD,MAAM,uBAAuB,GAAG;IAC9B,WAAW;IACX,KAAK;IACL,cAAc;IACd,OAAO;IACP,UAAU;IACV,QAAQ;IACR,IAAI;IACJ,UAAU;IACV,YAAY;IACZ,SAAS;IACT,UAAU;CACF,CAAC;AAEX,MAAM,yBAAyB,GAAG;IAChC;QACE,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,oDAAoD;KAC3D;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,IAAI,EAAE,2DAA2D;KAClE;IACD;QACE,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,yDAAyD;KAChE;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,IAAI,EAAE,yDAAyD;KAChE;IACD;QACE,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,0DAA0D;KACjE;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,kDAAkD;KACzD;IACD;QACE,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,mDAAmD;KAC1D;CACO,CAAC;AAEX,SAAS,4BAA4B,CAAC,KAAe,EAAE,MAAe;IACpE,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CACR,qGAAqG,CACtG,CAAC;QACF,OAAO;IACT,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,uBAAuB,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CACR,qBAAqB,KAAK,oDAAoD,KAAK,OAAO,CAC3F,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,yBAAyB,EAAE,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,qBAAqB,SAAS,CAAC,IAAI,YAAY,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,2BAA2B,CAAC,MAAe;IACzD,MAAM,KAAK,GAAG;QACZ,4CAA4C;QAC5C,EAAE;QACF,wGAAwG;QACxG,EAAE;QACF,oBAAoB;QACpB,+DAA+D;QAC/D,kCAAkC;QAClC,6CAA6C;QAC7C,2BAA2B;QAC3B,gCAAgC;QAChC,uBAAuB;QACvB,EAAE;QACF,eAAe;QACf,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwDzC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkIzD"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// ── plumbus run <script> ──
|
|
2
|
+
// Run application-defined command scripts from app/commands/.
|
|
3
|
+
// Command scripts export a default async function that receives the DB
|
|
4
|
+
// connection and parsed CLI arguments, enabling consumer apps to create
|
|
5
|
+
// custom operations (user setup, data migration, etc.) using the framework's
|
|
6
|
+
// infrastructure (config, DB, password hashing, etc.).
|
|
7
|
+
import * as fs from 'node:fs';
|
|
8
|
+
import { createRequire } from 'node:module';
|
|
9
|
+
import * as path from 'node:path';
|
|
10
|
+
import { pathToFileURL } from 'node:url';
|
|
11
|
+
import { loadConfig } from '../../config/loader.js';
|
|
12
|
+
import { info, error as logError, resolvePath, success, warn } from '../utils.js';
|
|
13
|
+
/**
|
|
14
|
+
* Create a database connection from the loaded config.
|
|
15
|
+
*/
|
|
16
|
+
async function connectDb() {
|
|
17
|
+
try {
|
|
18
|
+
const config = loadConfig({});
|
|
19
|
+
const { drizzle } = await import('drizzle-orm/postgres-js');
|
|
20
|
+
const postgres = (await import('postgres')).default;
|
|
21
|
+
const sql = postgres({
|
|
22
|
+
host: config.database.host,
|
|
23
|
+
port: config.database.port,
|
|
24
|
+
database: config.database.database,
|
|
25
|
+
username: config.database.user,
|
|
26
|
+
password: config.database.password,
|
|
27
|
+
});
|
|
28
|
+
return { db: drizzle(sql), sql, close: () => sql.end() };
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Discover command scripts in app/commands/.
|
|
36
|
+
*/
|
|
37
|
+
function discoverCommands(commandsDir) {
|
|
38
|
+
if (!fs.existsSync(commandsDir))
|
|
39
|
+
return [];
|
|
40
|
+
return fs
|
|
41
|
+
.readdirSync(commandsDir)
|
|
42
|
+
.filter((f) => (f.endsWith('.ts') || f.endsWith('.js')) &&
|
|
43
|
+
!f.endsWith('.d.ts') &&
|
|
44
|
+
!f.endsWith('.test.ts') &&
|
|
45
|
+
!f.endsWith('.test.js'))
|
|
46
|
+
.sort()
|
|
47
|
+
.map((f) => path.join(commandsDir, f));
|
|
48
|
+
}
|
|
49
|
+
export function registerRunCommand(program) {
|
|
50
|
+
program
|
|
51
|
+
.command('run <script>')
|
|
52
|
+
.description('Run an app command script from app/commands/')
|
|
53
|
+
.option('--json', 'Output as JSON')
|
|
54
|
+
.allowUnknownOption(true)
|
|
55
|
+
.allowExcessArguments(true)
|
|
56
|
+
.action(async (script, opts, cmd) => {
|
|
57
|
+
const commandsDir = resolvePath('app', 'commands');
|
|
58
|
+
// Discover available command scripts
|
|
59
|
+
const commandFiles = discoverCommands(commandsDir);
|
|
60
|
+
if (commandFiles.length === 0) {
|
|
61
|
+
if (opts.json) {
|
|
62
|
+
console.log(JSON.stringify({
|
|
63
|
+
status: 'error',
|
|
64
|
+
error: 'No command scripts found in app/commands/',
|
|
65
|
+
}, null, 2));
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
warn('No command scripts found in app/commands/. Create .ts files that export a default async function.');
|
|
69
|
+
}
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
// Find the matching script
|
|
73
|
+
const match = commandFiles.find((f) => {
|
|
74
|
+
const base = path.basename(f);
|
|
75
|
+
const nameNoExt = base.replace(/\.(ts|js)$/, '');
|
|
76
|
+
return base === script || nameNoExt === script;
|
|
77
|
+
});
|
|
78
|
+
if (!match) {
|
|
79
|
+
const available = commandFiles.map((f) => path.basename(f).replace(/\.(ts|js)$/, ''));
|
|
80
|
+
if (opts.json) {
|
|
81
|
+
console.log(JSON.stringify({
|
|
82
|
+
status: 'error',
|
|
83
|
+
error: `Command "${script}" not found`,
|
|
84
|
+
available,
|
|
85
|
+
}, null, 2));
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
logError(`Command "${script}" not found in app/commands/`);
|
|
89
|
+
info(`Available commands: ${available.join(', ')}`);
|
|
90
|
+
}
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
// Collect pass-through arguments (everything after the script name)
|
|
94
|
+
const passedArgs = cmd.args.slice(0);
|
|
95
|
+
if (!opts.json) {
|
|
96
|
+
info(`Running command: ${path.basename(match)}`);
|
|
97
|
+
}
|
|
98
|
+
// Connect to the database
|
|
99
|
+
const conn = await connectDb();
|
|
100
|
+
// Register tsx loader for TypeScript files
|
|
101
|
+
let unregister;
|
|
102
|
+
try {
|
|
103
|
+
const require = createRequire(import.meta.url);
|
|
104
|
+
const tsxPath = require.resolve('tsx/esm/api');
|
|
105
|
+
const tsx = await import(pathToFileURL(tsxPath).href);
|
|
106
|
+
unregister = tsx.register();
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
// tsx not available; only .js command files will work
|
|
110
|
+
}
|
|
111
|
+
try {
|
|
112
|
+
const fileUrl = pathToFileURL(match).href;
|
|
113
|
+
const mod = (await import(fileUrl));
|
|
114
|
+
const runFn = typeof mod.default === 'function'
|
|
115
|
+
? mod.default
|
|
116
|
+
: typeof mod.run === 'function'
|
|
117
|
+
? mod.run
|
|
118
|
+
: null;
|
|
119
|
+
if (!runFn) {
|
|
120
|
+
throw new Error(`Command file ${path.basename(match)} must export a default function or a named "run" function`);
|
|
121
|
+
}
|
|
122
|
+
await runFn({
|
|
123
|
+
db: conn?.db ?? null,
|
|
124
|
+
sql: conn?.sql ?? null,
|
|
125
|
+
args: passedArgs,
|
|
126
|
+
close: conn?.close ?? (async () => { }),
|
|
127
|
+
});
|
|
128
|
+
if (!opts.json) {
|
|
129
|
+
success(`Command completed: ${path.basename(match)}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch (err) {
|
|
133
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
134
|
+
if (opts.json) {
|
|
135
|
+
console.log(JSON.stringify({ status: 'error', error: msg }, null, 2));
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
logError(`Command failed: ${msg}`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
finally {
|
|
142
|
+
unregister?.();
|
|
143
|
+
await conn?.close();
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
|