@auto-engineer/cli 0.5.20 → 0.6.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.
Files changed (70) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +185 -151
  3. package/dist/src/index.js +254 -93
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/manifest-types.d.ts +21 -0
  6. package/dist/src/manifest-types.d.ts.map +1 -0
  7. package/dist/src/manifest-types.js +2 -0
  8. package/dist/src/manifest-types.js.map +1 -0
  9. package/dist/src/plugin-loader.d.ts +49 -0
  10. package/dist/src/plugin-loader.d.ts.map +1 -0
  11. package/dist/src/plugin-loader.js +383 -0
  12. package/dist/src/plugin-loader.js.map +1 -0
  13. package/dist/tsconfig.tsbuildinfo +1 -1
  14. package/package.json +12 -11
  15. package/dist/src/commands/check-client.d.ts +0 -6
  16. package/dist/src/commands/check-client.d.ts.map +0 -1
  17. package/dist/src/commands/check-client.js +0 -69
  18. package/dist/src/commands/check-client.js.map +0 -1
  19. package/dist/src/commands/check-lint.d.ts +0 -5
  20. package/dist/src/commands/check-lint.d.ts.map +0 -1
  21. package/dist/src/commands/check-lint.js +0 -96
  22. package/dist/src/commands/check-lint.js.map +0 -1
  23. package/dist/src/commands/check-tests.d.ts +0 -5
  24. package/dist/src/commands/check-tests.d.ts.map +0 -1
  25. package/dist/src/commands/check-tests.js +0 -87
  26. package/dist/src/commands/check-tests.js.map +0 -1
  27. package/dist/src/commands/check-types.d.ts +0 -5
  28. package/dist/src/commands/check-types.d.ts.map +0 -1
  29. package/dist/src/commands/check-types.js +0 -83
  30. package/dist/src/commands/check-types.js.map +0 -1
  31. package/dist/src/commands/copy-example.d.ts +0 -5
  32. package/dist/src/commands/copy-example.d.ts.map +0 -1
  33. package/dist/src/commands/copy-example.js +0 -54
  34. package/dist/src/commands/copy-example.js.map +0 -1
  35. package/dist/src/commands/create-example.d.ts +0 -5
  36. package/dist/src/commands/create-example.d.ts.map +0 -1
  37. package/dist/src/commands/create-example.js +0 -60
  38. package/dist/src/commands/create-example.js.map +0 -1
  39. package/dist/src/commands/export-schema.d.ts +0 -5
  40. package/dist/src/commands/export-schema.d.ts.map +0 -1
  41. package/dist/src/commands/export-schema.js +0 -49
  42. package/dist/src/commands/export-schema.js.map +0 -1
  43. package/dist/src/commands/generate-client.d.ts +0 -5
  44. package/dist/src/commands/generate-client.d.ts.map +0 -1
  45. package/dist/src/commands/generate-client.js +0 -77
  46. package/dist/src/commands/generate-client.js.map +0 -1
  47. package/dist/src/commands/generate-gql-schema.d.ts +0 -5
  48. package/dist/src/commands/generate-gql-schema.d.ts.map +0 -1
  49. package/dist/src/commands/generate-gql-schema.js +0 -57
  50. package/dist/src/commands/generate-gql-schema.js.map +0 -1
  51. package/dist/src/commands/generate-ia.d.ts +0 -5
  52. package/dist/src/commands/generate-ia.d.ts.map +0 -1
  53. package/dist/src/commands/generate-ia.js +0 -54
  54. package/dist/src/commands/generate-ia.js.map +0 -1
  55. package/dist/src/commands/generate-server.d.ts +0 -5
  56. package/dist/src/commands/generate-server.d.ts.map +0 -1
  57. package/dist/src/commands/generate-server.js +0 -50
  58. package/dist/src/commands/generate-server.js.map +0 -1
  59. package/dist/src/commands/implement-client.d.ts +0 -5
  60. package/dist/src/commands/implement-client.d.ts.map +0 -1
  61. package/dist/src/commands/implement-client.js +0 -70
  62. package/dist/src/commands/implement-client.js.map +0 -1
  63. package/dist/src/commands/implement-server.d.ts +0 -5
  64. package/dist/src/commands/implement-server.d.ts.map +0 -1
  65. package/dist/src/commands/implement-server.js +0 -69
  66. package/dist/src/commands/implement-server.js.map +0 -1
  67. package/dist/src/commands/import-design-system.d.ts +0 -5
  68. package/dist/src/commands/import-design-system.d.ts.map +0 -1
  69. package/dist/src/commands/import-design-system.js +0 -62
  70. package/dist/src/commands/import-design-system.js.map +0 -1
@@ -1,77 +0,0 @@
1
- import { Command } from 'commander';
2
- import { createOutput } from '../utils/terminal.js';
3
- import { handleError } from '../utils/errors.js';
4
- import * as path from 'path';
5
- import createDebug from 'debug';
6
- const debug = createDebug('cli:generate-client');
7
- export const createGenerateClientCommand = (config, analytics) => {
8
- const output = createOutput(config);
9
- const command = new Command('generate:client');
10
- command
11
- .description('Generate client application from IA schema and GraphQL schema')
12
- .argument('<starterDir>', 'Path to the starter template directory')
13
- .argument('<targetDir>', 'Target directory for the generated client')
14
- .argument('<iaSchemaPath>', 'Path to the IA schema JSON file')
15
- .argument('<gqlSchemaPath>', 'Path to the GraphQL schema file')
16
- .argument('<figmaVariablesPath>', 'Path to the Figma variables file')
17
- .action(async (starterDir, targetDir, iaSchemaPath, gqlSchemaPath, figmaVariablesPath) => {
18
- debug('Command started with args - starter: %s, target: %s, ia: %s, gql: %s, figma: %s', starterDir, targetDir, iaSchemaPath, gqlSchemaPath, figmaVariablesPath);
19
- try {
20
- await analytics.track({ command: 'generate:client:start', success: true });
21
- debug('Analytics tracked');
22
- // Resolve paths
23
- const resolvedStarterDir = path.resolve(starterDir);
24
- const resolvedTargetDir = path.resolve(targetDir);
25
- const resolvedIASchemaPath = path.resolve(iaSchemaPath);
26
- const resolvedGQLSchemaPath = path.resolve(gqlSchemaPath);
27
- debug('Paths resolved');
28
- output.info(`Generating client application`);
29
- output.info(`Starter template: ${resolvedStarterDir}`);
30
- output.info(`Target directory: ${resolvedTargetDir}`);
31
- output.info(`IA schema: ${resolvedIASchemaPath}`);
32
- output.info(`GraphQL schema: ${resolvedGQLSchemaPath}`);
33
- output.info(`Figma Variables: ${figmaVariablesPath}`);
34
- // Import the handler
35
- debug('Importing react-graphql-generator handler');
36
- const { handleGenerateClientCommand } = await import('@auto-engineer/react-graphql-generator');
37
- debug('Handler imported successfully');
38
- const generateCommand = {
39
- type: 'GenerateClient',
40
- data: {
41
- starterDir: resolvedStarterDir,
42
- targetDir: resolvedTargetDir,
43
- iaSchemaPath: resolvedIASchemaPath,
44
- gqlSchemaPath: resolvedGQLSchemaPath,
45
- figmaVariablesPath: figmaVariablesPath,
46
- },
47
- timestamp: new Date(),
48
- requestId: `generate-client-${Date.now()}`,
49
- };
50
- debug('Calling handleGenerateClientCommand with request ID: %s', generateCommand.requestId);
51
- const result = await handleGenerateClientCommand(generateCommand);
52
- debug('Command handler returned result type: %s', result.type);
53
- if (result.type === 'ClientGenerated') {
54
- debug('Client generation successful');
55
- output.success(`✅ Client generated at: ${result.data.targetDir}`);
56
- await analytics.track({ command: 'generate:client', success: true });
57
- debug('Success analytics tracked');
58
- }
59
- else {
60
- debug('Client generation failed: %s', result.data.error);
61
- output.error(`❌ Failed to generate client: ${result.data.error}`);
62
- await analytics.track({ command: 'generate:client', success: false, errorCode: result.data.error });
63
- debug('Failure analytics tracked, exiting with code 1');
64
- process.exit(1);
65
- }
66
- }
67
- catch (error) {
68
- debug('Exception caught: %O', error);
69
- await analytics.track({ command: 'generate:client', success: false, errorCode: 'exception' });
70
- handleError(error instanceof Error ? error : new Error(String(error)));
71
- debug('Error handled, exiting with code 1');
72
- process.exit(1);
73
- }
74
- });
75
- return command;
76
- };
77
- //# sourceMappingURL=generate-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-client.js","sourceRoot":"","sources":["../../../src/commands/generate-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,WAAW,MAAM,OAAO,CAAC;AAEhC,MAAM,KAAK,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,MAAc,EAAE,SAAoB,EAAW,EAAE;IAC3F,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAEpC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE/C,OAAO;SACJ,WAAW,CAAC,+DAA+D,CAAC;SAC5E,QAAQ,CAAC,cAAc,EAAE,wCAAwC,CAAC;SAClE,QAAQ,CAAC,aAAa,EAAE,2CAA2C,CAAC;SACpE,QAAQ,CAAC,gBAAgB,EAAE,iCAAiC,CAAC;SAC7D,QAAQ,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;SAC9D,QAAQ,CAAC,sBAAsB,EAAE,kCAAkC,CAAC;SACpE,MAAM,CACL,KAAK,EACH,UAAkB,EAClB,SAAiB,EACjB,YAAoB,EACpB,aAAqB,EACrB,kBAA0B,EAC1B,EAAE;QACF,KAAK,CACH,iFAAiF,EACjF,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,kBAAkB,CACnB,CAAC;QACF,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3E,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAE3B,gBAAgB;YAChB,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACpD,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAClD,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACxD,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC1D,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAExB,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,qBAAqB,kBAAkB,EAAE,CAAC,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,qBAAqB,iBAAiB,EAAE,CAAC,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,cAAc,oBAAoB,EAAE,CAAC,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,mBAAmB,qBAAqB,EAAE,CAAC,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,oBAAoB,kBAAkB,EAAE,CAAC,CAAC;YAEtD,qBAAqB;YACrB,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACnD,MAAM,EAAE,2BAA2B,EAAE,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;YAC/F,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAEvC,MAAM,eAAe,GAAG;gBACtB,IAAI,EAAE,gBAAyB;gBAC/B,IAAI,EAAE;oBACJ,UAAU,EAAE,kBAAkB;oBAC9B,SAAS,EAAE,iBAAiB;oBAC5B,YAAY,EAAE,oBAAoB;oBAClC,aAAa,EAAE,qBAAqB;oBACpC,kBAAkB,EAAE,kBAAkB;iBACvC;gBACD,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,SAAS,EAAE,mBAAmB,IAAI,CAAC,GAAG,EAAE,EAAE;aAC3C,CAAC;YAEF,KAAK,CAAC,yDAAyD,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;YAC5F,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,eAAe,CAAC,CAAC;YAClE,KAAK,CAAC,0CAA0C,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAE/D,IAAI,MAAM,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACtC,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBACtC,MAAM,CAAC,OAAO,CAAC,0BAA0B,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBAClE,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrE,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,8BAA8B,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzD,MAAM,CAAC,KAAK,CAAC,gCAAgC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAClE,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACpG,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;YAC9F,WAAW,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvE,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CACF,CAAC;IAEJ,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- import { Command } from 'commander';
2
- import { Config } from '../utils/config';
3
- import { Analytics } from '../utils/analytics';
4
- export declare const createGenerateGQLSchemaCommand: (config: Config, analytics: Analytics) => Command;
5
- //# sourceMappingURL=generate-gql-schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-gql-schema.d.ts","sourceRoot":"","sources":["../../../src/commands/generate-gql-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAK/C,eAAO,MAAM,8BAA8B,WAAY,MAAM,aAAa,SAAS,KAAG,OAwDrF,CAAC"}
@@ -1,57 +0,0 @@
1
- import { Command } from 'commander';
2
- import { createOutput } from '../utils/terminal.js';
3
- import { handleError } from '../utils/errors.js';
4
- import { execa } from 'execa';
5
- import * as path from 'path';
6
- import { existsSync } from 'fs';
7
- export const createGenerateGQLSchemaCommand = (config, analytics) => {
8
- const output = createOutput(config);
9
- const command = new Command('generate:gql-schema');
10
- command
11
- .description('Generate GraphQL schema from server resolvers')
12
- .argument('<serverPath>', 'Path to the server directory')
13
- .action(async (serverPath) => {
14
- try {
15
- await analytics.track({ command: 'generate:gql-schema:start', success: true });
16
- const absServerPath = path.resolve(serverPath);
17
- // Check if server directory exists
18
- if (!existsSync(absServerPath)) {
19
- output.error(`❌ Server directory not found: ${absServerPath}`);
20
- await analytics.track({ command: 'generate:gql-schema', success: false, errorCode: 'server_not_found' });
21
- process.exit(1);
22
- }
23
- // Check if generate-schema script exists
24
- const schemaScriptPath = path.join(absServerPath, 'scripts', 'generate-schema.ts');
25
- if (!existsSync(schemaScriptPath)) {
26
- output.error(`❌ GraphQL schema generation script not found at: ${schemaScriptPath}`);
27
- output.info('Please ensure the server was generated with generate:server command first');
28
- await analytics.track({ command: 'generate:gql-schema', success: false, errorCode: 'script_not_found' });
29
- process.exit(1);
30
- }
31
- output.info(`🔄 Generating GraphQL schema from: ${absServerPath}`);
32
- try {
33
- // Run the schema generation script
34
- await execa('npx', ['tsx', 'scripts/generate-schema.ts'], {
35
- cwd: absServerPath,
36
- stdio: 'inherit',
37
- });
38
- output.success(`✅ GraphQL schema generated successfully`);
39
- await analytics.track({ command: 'generate:gql-schema', success: true });
40
- }
41
- catch (execError) {
42
- output.error(`❌ Failed to generate GraphQL schema`);
43
- if (execError instanceof Error) {
44
- output.error(execError.message);
45
- }
46
- await analytics.track({ command: 'generate:gql-schema', success: false, errorCode: 'generation_failed' });
47
- process.exit(1);
48
- }
49
- }
50
- catch (error) {
51
- await analytics.track({ command: 'generate:gql-schema', success: false, errorCode: 'exception' });
52
- handleError(error instanceof Error ? error : new Error(String(error)));
53
- }
54
- });
55
- return command;
56
- };
57
- //# sourceMappingURL=generate-gql-schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-gql-schema.js","sourceRoot":"","sources":["../../../src/commands/generate-gql-schema.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { Command } from 'commander';
2
- import { Config } from '../utils/config';
3
- import { Analytics } from '../utils/analytics';
4
- export declare const createGenerateIACommand: (config: Config, analytics: Analytics) => Command;
5
- //# sourceMappingURL=generate-ia.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-ia.d.ts","sourceRoot":"","sources":["../../../src/commands/generate-ia.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,eAAO,MAAM,uBAAuB,WAAY,MAAM,aAAa,SAAS,KAAG,OAwD9E,CAAC"}
@@ -1,54 +0,0 @@
1
- import { Command } from 'commander';
2
- import { createOutput } from '../utils/terminal.js';
3
- import { handleError } from '../utils/errors.js';
4
- import * as path from 'path';
5
- export const createGenerateIACommand = (config, analytics) => {
6
- const output = createOutput(config);
7
- const command = new Command('generate:ia');
8
- command
9
- .description('Generate Information Architecture schema from flow files')
10
- .argument('<outputDir>', 'Output directory for the IA schema')
11
- .argument('[flowFiles...]', 'Flow files to process')
12
- .action(async (outputDir, flowFiles) => {
13
- try {
14
- await analytics.track({ command: 'generate:ia:start', success: true });
15
- if (flowFiles.length === 0) {
16
- output.error('❌ No flow files provided');
17
- process.exit(1);
18
- }
19
- // Resolve paths
20
- const resolvedOutputDir = path.resolve(outputDir);
21
- const resolvedFlowFiles = flowFiles.map((f) => path.resolve(f));
22
- output.info(`Generating IA schema from ${flowFiles.length} flow file(s)`);
23
- output.info(`Output directory: ${resolvedOutputDir}`);
24
- // Import the handler
25
- const { handleGenerateIACommand } = await import('@auto-engineer/information-architect');
26
- const generateCommand = {
27
- type: 'GenerateIA',
28
- data: {
29
- outputDir: resolvedOutputDir,
30
- flowFiles: resolvedFlowFiles,
31
- },
32
- timestamp: new Date(),
33
- requestId: `generate-ia-${Date.now()}`,
34
- };
35
- const result = await handleGenerateIACommand(generateCommand);
36
- if (result.type === 'IAGenerated') {
37
- output.success(`✅ IA schema generated at: ${result.data.outputPath}`);
38
- await analytics.track({ command: 'generate:ia', success: true });
39
- }
40
- else {
41
- output.error(`❌ Failed to generate IA schema: ${result.data.error}`);
42
- await analytics.track({ command: 'generate:ia', success: false, errorCode: result.data.error });
43
- process.exit(1);
44
- }
45
- }
46
- catch (error) {
47
- await analytics.track({ command: 'generate:ia', success: false, errorCode: 'exception' });
48
- handleError(error instanceof Error ? error : new Error(String(error)));
49
- process.exit(1);
50
- }
51
- });
52
- return command;
53
- };
54
- //# sourceMappingURL=generate-ia.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-ia.js","sourceRoot":"","sources":["../../../src/commands/generate-ia.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { Command } from 'commander';
2
- import { Config } from '../utils/config';
3
- import { Analytics } from '../utils/analytics';
4
- export declare const createGenerateServerCommand: (config: Config, analytics: Analytics) => Command;
5
- //# sourceMappingURL=generate-server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-server.d.ts","sourceRoot":"","sources":["../../../src/commands/generate-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,eAAO,MAAM,2BAA2B,WAAY,MAAM,aAAa,SAAS,KAAG,OAmDlF,CAAC"}
@@ -1,50 +0,0 @@
1
- import { Command } from 'commander';
2
- import { createOutput } from '../utils/terminal.js';
3
- import { handleError } from '../utils/errors.js';
4
- export const createGenerateServerCommand = (config, analytics) => {
5
- const output = createOutput(config);
6
- const command = new Command('generate:server');
7
- command
8
- .description('Generate server implementation from schema.json into ./server')
9
- .argument('<schemaPath>', 'Path to .context/schema.json')
10
- .option('--destination <path>', 'Destination project root (default: current directory)')
11
- .action(async (schemaPath, options) => {
12
- try {
13
- await analytics.track({ command: 'generate:server:start', success: true });
14
- const destination = options.destination ?? process.cwd();
15
- output.info(`Generating server from schema: ${schemaPath}`);
16
- output.info(`Destination: ${destination}`);
17
- // Import the handler
18
- const { handleGenerateServerCommand } = await import('@auto-engineer/emmett-generator');
19
- const generateCommand = {
20
- type: 'GenerateServer',
21
- data: {
22
- schemaPath,
23
- destination,
24
- },
25
- timestamp: new Date(),
26
- requestId: `generate-server-${Date.now()}`,
27
- };
28
- const result = await handleGenerateServerCommand(generateCommand);
29
- if (result.type === 'ServerGenerated') {
30
- output.success(`✅ Server generated at: ${result.data.serverDir}`);
31
- const schemaOut = result.data.contextSchemaGraphQL;
32
- if (typeof schemaOut === 'string' && schemaOut.length > 0) {
33
- output.info(`GraphQL schema: ${schemaOut}`);
34
- }
35
- await analytics.track({ command: 'generate:server', success: true });
36
- }
37
- else {
38
- output.error(`❌ Failed to generate server: ${result.data.error}`);
39
- await analytics.track({ command: 'generate:server', success: false, errorCode: result.data.error });
40
- process.exit(1);
41
- }
42
- }
43
- catch (error) {
44
- await analytics.track({ command: 'generate:server', success: false, errorCode: 'exception' });
45
- handleError(error instanceof Error ? error : new Error(String(error)));
46
- }
47
- });
48
- return command;
49
- };
50
- //# sourceMappingURL=generate-server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-server.js","sourceRoot":"","sources":["../../../src/commands/generate-server.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { Command } from 'commander';
2
- import { Config } from '../utils/config';
3
- import { Analytics } from '../utils/analytics';
4
- export declare const createImplementClientCommand: (config: Config, analytics: Analytics) => Command;
5
- //# sourceMappingURL=implement-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"implement-client.d.ts","sourceRoot":"","sources":["../../../src/commands/implement-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAM/C,eAAO,MAAM,4BAA4B,WAAY,MAAM,aAAa,SAAS,KAAG,OA+EnF,CAAC"}
@@ -1,70 +0,0 @@
1
- import { Command } from 'commander';
2
- import { createOutput } from '../utils/terminal.js';
3
- import { handleError } from '../utils/errors.js';
4
- import * as path from 'path';
5
- import createDebug from 'debug';
6
- const debug = createDebug('cli:implement-client');
7
- export const createImplementClientCommand = (config, analytics) => {
8
- const output = createOutput(config);
9
- const command = new Command('implement:client');
10
- command
11
- .description('Use AI to implement the client application based on IA schema')
12
- .argument('<projectDir>', 'Client project directory to implement')
13
- .argument('<iaSchemeDir>', 'Directory containing the IA schema')
14
- .argument('<designSystemPath>', 'Path to design system markdown file')
15
- .action(async (projectDir, iaSchemeDir, designSystemPath) => {
16
- debug('Command started with args - projectDir: %s, iaSchemeDir: %s, designSystemPath: %s', projectDir, iaSchemeDir, designSystemPath);
17
- try {
18
- await analytics.track({ command: 'implement:client:start', success: true });
19
- debug('Analytics tracked');
20
- // Resolve paths
21
- const resolvedProjectDir = path.resolve(projectDir);
22
- const resolvedIASchemeDir = path.resolve(iaSchemeDir);
23
- const resolvedDesignSystemPath = path.resolve(designSystemPath);
24
- debug('Resolved paths - project: %s, IA: %s, design: %s', resolvedProjectDir, resolvedIASchemeDir, resolvedDesignSystemPath);
25
- output.info(`Implementing client application`);
26
- output.info(`Project directory: ${resolvedProjectDir}`);
27
- output.info(`IA schema directory: ${resolvedIASchemeDir}`);
28
- output.info(`Design system: ${resolvedDesignSystemPath}`);
29
- // Import the handler
30
- debug('Importing frontend-implementation handler');
31
- const { handleImplementClientCommand } = await import('@auto-engineer/frontend-implementation');
32
- debug('Handler imported successfully');
33
- const implementCommand = {
34
- type: 'ImplementClient',
35
- data: {
36
- projectDir: resolvedProjectDir,
37
- iaSchemeDir: resolvedIASchemeDir,
38
- designSystemPath: resolvedDesignSystemPath,
39
- },
40
- timestamp: new Date(),
41
- requestId: `implement-client-${Date.now()}`,
42
- };
43
- debug('Calling handleImplementClientCommand with request ID: %s', implementCommand.requestId);
44
- const result = await handleImplementClientCommand(implementCommand);
45
- debug('Command handler returned result type: %s', result.type);
46
- if (result.type === 'ClientImplemented') {
47
- debug('Client implementation successful');
48
- output.success(`✅ Client implemented successfully at: ${result.data.projectDir}`);
49
- await analytics.track({ command: 'implement:client', success: true });
50
- debug('Success analytics tracked');
51
- }
52
- else {
53
- debug('Client implementation failed: %s', result.data.error);
54
- output.error(`❌ Failed to implement client: ${result.data.error}`);
55
- await analytics.track({ command: 'implement:client', success: false, errorCode: result.data.error });
56
- debug('Failure analytics tracked, exiting with code 1');
57
- process.exit(1);
58
- }
59
- }
60
- catch (error) {
61
- debug('Exception caught: %O', error);
62
- await analytics.track({ command: 'implement:client', success: false, errorCode: 'exception' });
63
- handleError(error instanceof Error ? error : new Error(String(error)));
64
- debug('Error handled, exiting with code 1');
65
- process.exit(1);
66
- }
67
- });
68
- return command;
69
- };
70
- //# sourceMappingURL=implement-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"implement-client.js","sourceRoot":"","sources":["../../../src/commands/implement-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,WAAW,MAAM,OAAO,CAAC;AAEhC,MAAM,KAAK,GAAG,WAAW,CAAC,sBAAsB,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,MAAc,EAAE,SAAoB,EAAW,EAAE;IAC5F,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAEpC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEhD,OAAO;SACJ,WAAW,CAAC,+DAA+D,CAAC;SAC5E,QAAQ,CAAC,cAAc,EAAE,uCAAuC,CAAC;SACjE,QAAQ,CAAC,eAAe,EAAE,oCAAoC,CAAC;SAC/D,QAAQ,CAAC,oBAAoB,EAAE,qCAAqC,CAAC;SACrE,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,WAAmB,EAAE,gBAAwB,EAAE,EAAE;QAClF,KAAK,CACH,mFAAmF,EACnF,UAAU,EACV,WAAW,EACX,gBAAgB,CACjB,CAAC;QACF,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5E,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAE3B,gBAAgB;YAChB,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACpD,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtD,MAAM,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAChE,KAAK,CACH,kDAAkD,EAClD,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,CACzB,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,sBAAsB,kBAAkB,EAAE,CAAC,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,wBAAwB,mBAAmB,EAAE,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,kBAAkB,wBAAwB,EAAE,CAAC,CAAC;YAE1D,qBAAqB;YACrB,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACnD,MAAM,EAAE,4BAA4B,EAAE,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;YAChG,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAEvC,MAAM,gBAAgB,GAAG;gBACvB,IAAI,EAAE,iBAA0B;gBAChC,IAAI,EAAE;oBACJ,UAAU,EAAE,kBAAkB;oBAC9B,WAAW,EAAE,mBAAmB;oBAChC,gBAAgB,EAAE,wBAAwB;iBAC3C;gBACD,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,SAAS,EAAE,oBAAoB,IAAI,CAAC,GAAG,EAAE,EAAE;aAC5C,CAAC;YAEF,KAAK,CAAC,0DAA0D,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC9F,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC,gBAAgB,CAAC,CAAC;YACpE,KAAK,CAAC,0CAA0C,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAE/D,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACxC,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBAC1C,MAAM,CAAC,OAAO,CAAC,yCAAyC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;gBAClF,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtE,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,kCAAkC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC7D,MAAM,CAAC,KAAK,CAAC,iCAAiC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACnE,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACrG,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;YAC/F,WAAW,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvE,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- import { Command } from 'commander';
2
- import type { Analytics } from '../utils/analytics';
3
- import { Config } from '../utils/config';
4
- export declare const createImplementServerCommand: (config: Config, analytics: Analytics) => Command;
5
- //# sourceMappingURL=implement-server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"implement-server.d.ts","sourceRoot":"","sources":["../../../src/commands/implement-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAiDzC,eAAO,MAAM,4BAA4B,WAAY,MAAM,aAAa,SAAS,KAAG,OAgCnF,CAAC"}
@@ -1,69 +0,0 @@
1
- import { Command } from 'commander';
2
- import path from 'path';
3
- import { createOutput } from '../utils/terminal.js';
4
- import { handleError } from '../utils/errors.js';
5
- const determineServerDirectory = (serverDirectoryArg, options) => {
6
- let serverDirectory = './server';
7
- if (serverDirectoryArg !== undefined && serverDirectoryArg !== null && serverDirectoryArg.trim() !== '') {
8
- serverDirectory = serverDirectoryArg;
9
- }
10
- else if (options?.directory !== undefined && options.directory !== null && options.directory.trim() !== '') {
11
- serverDirectory = options.directory;
12
- }
13
- return path.resolve(serverDirectory);
14
- };
15
- const handleServerImplementation = async (resolvedDirectory, output, analytics) => {
16
- output.info(`🚀 Implementing server flows in: ${resolvedDirectory}`);
17
- // Dynamic import to avoid circular dependency issues
18
- const { handleImplementServerCommand } = await import('@auto-engineer/server-implementer');
19
- const implementCommand = {
20
- type: 'ImplementServer',
21
- data: {
22
- serverDirectory: resolvedDirectory,
23
- },
24
- timestamp: new Date(),
25
- requestId: `implement-server-${Date.now()}`,
26
- correlationId: `implement-server-${Date.now()}`,
27
- };
28
- const result = await handleImplementServerCommand(implementCommand);
29
- if (result.type === 'ServerImplemented') {
30
- output.success('✅ Server implementation completed successfully');
31
- if (result.data.flowsImplemented > 0) {
32
- output.info(` ${result.data.flowsImplemented} flows implemented`);
33
- }
34
- await analytics.track({ command: 'implement:server:complete', success: true });
35
- }
36
- else {
37
- output.error(`❌ Server implementation failed: ${result.data.error}`);
38
- await analytics.track({ command: 'implement:server:failed', success: false });
39
- process.exit(1);
40
- }
41
- };
42
- export const createImplementServerCommand = (config, analytics) => {
43
- const output = createOutput(config);
44
- const command = new Command('implement:server');
45
- command
46
- .description('Implement server flows using AI')
47
- .argument('[server-directory]', 'Path to the server directory (defaults to ./server)')
48
- .option('-d, --directory <path>', 'Server directory path (alternative to argument)')
49
- .action(async (serverDirectoryArg, options) => {
50
- try {
51
- await analytics.track({ command: 'implement:server:start', success: true });
52
- const resolvedDirectory = determineServerDirectory(serverDirectoryArg, options);
53
- await handleServerImplementation(resolvedDirectory, output, analytics);
54
- }
55
- catch (error) {
56
- await analytics.track({ command: 'implement:server:error', success: false });
57
- handleError(error);
58
- process.exit(1);
59
- }
60
- });
61
- command.addHelpText('after', `
62
- Examples:
63
- $ auto-engineer implement:server
64
- $ auto-engineer implement:server ./my-server
65
- $ auto-engineer implement:server --directory ./backend/server
66
- `);
67
- return command;
68
- };
69
- //# sourceMappingURL=implement-server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"implement-server.js","sourceRoot":"","sources":["../../../src/commands/implement-server.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { Command } from 'commander';
2
- import { Config } from '../utils/config';
3
- import { Analytics } from '../utils/analytics';
4
- export declare const createImportDesignSystemCommand: (config: Config, analytics: Analytics) => Command;
5
- //# sourceMappingURL=import-design-system.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-design-system.d.ts","sourceRoot":"","sources":["../../../src/commands/import-design-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAO/C,eAAO,MAAM,+BAA+B,WAAY,MAAM,aAAa,SAAS,KAAG,OAoEtF,CAAC"}
@@ -1,62 +0,0 @@
1
- import { Command } from 'commander';
2
- import { createOutput } from '../utils/terminal.js';
3
- import { handleError } from '../utils/errors.js';
4
- import * as path from 'path';
5
- const allowedStrategies = ['WITH_COMPONENTS', 'WITH_COMPONENT_SETS', 'WITH_ALL_FIGMA_INSTANCES'];
6
- export const createImportDesignSystemCommand = (config, analytics) => {
7
- const output = createOutput(config);
8
- const command = new Command('import:design-system');
9
- command
10
- .description('Import design system documentation and preferences')
11
- .argument('<outputDir>', 'Output directory to copy design system files to')
12
- .argument('[strategy]', 'Import strategy: WITH_COMPONENTS | WITH_COMPONENT_SETS | WITH_ALL_FIGMA_INSTANCES', 'WITH_COMPONENT_SETS')
13
- .argument('[filterPath]', 'Path to a .ts file exporting a named function "filter"')
14
- .action(async (outputDir, strategy, filterPath) => {
15
- try {
16
- await analytics.track({ command: 'import:design-system:start', success: true });
17
- // Resolve paths
18
- const resolvedOutputDir = path.resolve(outputDir);
19
- output.info(`Output directory: ${resolvedOutputDir}`);
20
- const chosenStrategy = strategy ?? 'WITH_COMPONENT_SETS';
21
- if (!allowedStrategies.includes(chosenStrategy)) {
22
- output.error(`Invalid strategy: ${String(strategy)}. Valid values are: ${allowedStrategies.join(', ')}`);
23
- process.exit(1);
24
- }
25
- output.info(`Using strategy: ${chosenStrategy}`);
26
- let resolvedFilterPath;
27
- if (typeof filterPath === 'string' && filterPath.trim().length > 0) {
28
- resolvedFilterPath = path.resolve(filterPath);
29
- output.info(`Using custom filter from: ${resolvedFilterPath}`);
30
- }
31
- // Import the handler
32
- const { handleImportDesignSystemCommand } = await import('@auto-engineer/design-system-importer');
33
- const importCommand = {
34
- type: 'ImportDesignSystem',
35
- data: {
36
- outputDir: resolvedOutputDir,
37
- strategy: chosenStrategy,
38
- filterPath: resolvedFilterPath,
39
- },
40
- timestamp: new Date(),
41
- requestId: `import-design-system-${Date.now()}`,
42
- };
43
- const result = await handleImportDesignSystemCommand(importCommand);
44
- if (result.type === 'DesignSystemImported') {
45
- output.success(`✅ Design system imported successfully to: ${result.data.outputDir}`);
46
- await analytics.track({ command: 'import:design-system', success: true });
47
- }
48
- else {
49
- output.error(`❌ Failed to import design system: ${result.data.error}`);
50
- await analytics.track({ command: 'import:design-system', success: false, errorCode: result.data.error });
51
- process.exit(1);
52
- }
53
- }
54
- catch (error) {
55
- await analytics.track({ command: 'import:design-system', success: false, errorCode: 'exception' });
56
- handleError(error instanceof Error ? error : new Error(String(error)));
57
- process.exit(1);
58
- }
59
- });
60
- return command;
61
- };
62
- //# sourceMappingURL=import-design-system.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-design-system.js","sourceRoot":"","sources":["../../../src/commands/import-design-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,iBAAiB,GAAG,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,0BAA0B,CAAU,CAAC;AAI1G,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,MAAc,EAAE,SAAoB,EAAW,EAAE;IAC/F,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAEpC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEpD,OAAO;SACJ,WAAW,CAAC,oDAAoD,CAAC;SACjE,QAAQ,CAAC,aAAa,EAAE,iDAAiD,CAAC;SAC1E,QAAQ,CACP,YAAY,EACZ,mFAAmF,EACnF,qBAAqB,CACtB;SACA,QAAQ,CAAC,cAAc,EAAE,wDAAwD,CAAC;SAClF,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,QAAuB,EAAE,UAAmB,EAAE,EAAE;QAChF,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAEhF,gBAAgB;YAChB,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAElD,MAAM,CAAC,IAAI,CAAC,qBAAqB,iBAAiB,EAAE,CAAC,CAAC;YAEtD,MAAM,cAAc,GAAG,QAAQ,IAAI,qBAAqB,CAAC;YACzD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,KAAK,CAAC,qBAAqB,MAAM,CAAC,QAAQ,CAAC,uBAAuB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACzG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,mBAAmB,cAAc,EAAE,CAAC,CAAC;YAEjD,IAAI,kBAAsC,CAAC;YAC3C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnE,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC9C,MAAM,CAAC,IAAI,CAAC,6BAA6B,kBAAkB,EAAE,CAAC,CAAC;YACjE,CAAC;YAED,qBAAqB;YACrB,MAAM,EAAE,+BAA+B,EAAE,GAAG,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC;YAElG,MAAM,aAAa,GAAG;gBACpB,IAAI,EAAE,oBAA6B;gBACnC,IAAI,EAAE;oBACJ,SAAS,EAAE,iBAAiB;oBAC5B,QAAQ,EAAE,cAAc;oBACxB,UAAU,EAAE,kBAAkB;iBAC/B;gBACD,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,SAAS,EAAE,wBAAwB,IAAI,CAAC,GAAG,EAAE,EAAE;aAChD,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,+BAA+B,CAAC,aAAa,CAAC,CAAC;YAEpE,IAAI,MAAM,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;gBAC3C,MAAM,CAAC,OAAO,CAAC,6CAA6C,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBACrF,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,qCAAqC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACvE,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;YACnG,WAAW,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}