@nexus-framework/cli 0.2.0 → 0.2.1
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/cli.js +5 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.d.ts +4 -2
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +47 -8
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/generators/docs.d.ts +10 -1
- package/dist/generators/docs.d.ts.map +1 -1
- package/dist/generators/docs.js +40 -65
- package/dist/generators/docs.js.map +1 -1
- package/dist/generators/index.d.ts +2 -1
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +47 -7
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/spring-boot.d.ts +12 -0
- package/dist/generators/spring-boot.d.ts.map +1 -0
- package/dist/generators/spring-boot.js +220 -0
- package/dist/generators/spring-boot.js.map +1 -0
- package/dist/generators/structure.d.ts +1 -0
- package/dist/generators/structure.d.ts.map +1 -1
- package/dist/generators/structure.js +90 -24
- package/dist/generators/structure.js.map +1 -1
- package/dist/prompts/adoption.d.ts +35 -0
- package/dist/prompts/adoption.d.ts.map +1 -0
- package/dist/prompts/adoption.js +153 -0
- package/dist/prompts/adoption.js.map +1 -0
- package/dist/prompts/frameworks.d.ts +5 -1
- package/dist/prompts/frameworks.d.ts.map +1 -1
- package/dist/prompts/frameworks.js +48 -0
- package/dist/prompts/frameworks.js.map +1 -1
- package/dist/prompts/index.d.ts +2 -1
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +15 -7
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/project-type.d.ts.map +1 -1
- package/dist/prompts/project-type.js +6 -1
- package/dist/prompts/project-type.js.map +1 -1
- package/dist/types/config.d.ts +6 -2
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/file-system.d.ts.map +1 -1
- package/dist/utils/file-system.js +4 -2
- package/dist/utils/file-system.js.map +1 -1
- package/dist/utils/logger.d.ts +2 -2
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +49 -36
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/project-detector.d.ts +20 -4
- package/dist/utils/project-detector.d.ts.map +1 -1
- package/dist/utils/project-detector.js +156 -27
- package/dist/utils/project-detector.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -1
package/dist/cli.js
CHANGED
|
@@ -18,14 +18,16 @@ program
|
|
|
18
18
|
.command('init [project-name]')
|
|
19
19
|
.description('Initialize a new NEXUS project with interactive setup')
|
|
20
20
|
.option('--adopt', 'Shorthand: same as `nexus adopt` (add NEXUS to an existing project)')
|
|
21
|
+
.option('--local', 'Configure NEXUS as local-only (not tracked by git)')
|
|
21
22
|
.action(async (projectName, options) => {
|
|
22
|
-
await initCommand(projectName, { adopt: options.adopt ?? false });
|
|
23
|
+
await initCommand(projectName, { adopt: options.adopt ?? false, local: options.local ?? false });
|
|
23
24
|
});
|
|
24
25
|
program
|
|
25
26
|
.command('adopt [path]')
|
|
26
27
|
.description('Add NEXUS docs & AI config to an existing project (no scaffolding)')
|
|
27
|
-
.
|
|
28
|
-
|
|
28
|
+
.option('--force', 'Force adoption even if no project is detected')
|
|
29
|
+
.action(async (targetPath, options) => {
|
|
30
|
+
await adoptCommand(targetPath, options);
|
|
29
31
|
});
|
|
30
32
|
program
|
|
31
33
|
.command('upgrade [path]')
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,8DAA8D,CAAC;KAC3E,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAErC,OAAO;KACJ,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,SAAS,EAAE,qEAAqE,CAAC;KACxF,MAAM,CAAC,KAAK,EAAE,WAA+B,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,8DAA8D,CAAC;KAC3E,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAErC,OAAO;KACJ,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,SAAS,EAAE,qEAAqE,CAAC;KACxF,MAAM,CAAC,SAAS,EAAE,oDAAoD,CAAC;KACvE,MAAM,CAAC,KAAK,EAAE,WAA+B,EAAE,OAA6C,EAAE,EAAE;IAC/F,MAAM,WAAW,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;AACnG,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,oEAAoE,CAAC;KACjF,MAAM,CAAC,SAAS,EAAE,+CAA+C,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,UAA8B,EAAE,OAA4B,EAAE,EAAE;IAC7E,MAAM,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,2EAA2E,CAAC;KACxF,MAAM,CAAC,KAAK,EAAE,UAA8B,EAAE,EAAE;IAC/C,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,wEAAwE,CAAC;KACrF,MAAM,CAAC,KAAK,EAAE,UAA8B,EAAE,EAAE;IAC/C,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEL,yCAAyC;AACzC,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/commands/adopt.d.ts
CHANGED
|
@@ -19,7 +19,9 @@
|
|
|
19
19
|
* Handler for `nexus adopt [path]`.
|
|
20
20
|
*
|
|
21
21
|
* @param targetPath - Optional path to the project to adopt (defaults to cwd)
|
|
22
|
-
* @param options -
|
|
22
|
+
* @param options - Command options (--force to skip project detection)
|
|
23
23
|
*/
|
|
24
|
-
export declare function adoptCommand(targetPath?: string,
|
|
24
|
+
export declare function adoptCommand(targetPath?: string, options?: {
|
|
25
|
+
force?: boolean;
|
|
26
|
+
}): Promise<void>;
|
|
25
27
|
//# sourceMappingURL=adopt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adopt.d.ts","sourceRoot":"","sources":["../../src/commands/adopt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"adopt.d.ts","sourceRoot":"","sources":["../../src/commands/adopt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAUH;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAChC,OAAO,CAAC,IAAI,CAAC,CA0Ff"}
|
package/dist/commands/adopt.js
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import path from 'node:path';
|
|
19
19
|
import { adoptProject } from '../generators/index.js';
|
|
20
|
+
import { promptAdoption } from '../prompts/adoption.js';
|
|
20
21
|
import { logger } from '../utils/logger.js';
|
|
21
22
|
import { detectProject } from '../utils/project-detector.js';
|
|
22
23
|
import { version } from '../version.js';
|
|
@@ -24,21 +25,57 @@ import { version } from '../version.js';
|
|
|
24
25
|
* Handler for `nexus adopt [path]`.
|
|
25
26
|
*
|
|
26
27
|
* @param targetPath - Optional path to the project to adopt (defaults to cwd)
|
|
27
|
-
* @param options -
|
|
28
|
+
* @param options - Command options (--force to skip project detection)
|
|
28
29
|
*/
|
|
29
|
-
export async function adoptCommand(targetPath,
|
|
30
|
+
export async function adoptCommand(targetPath, options = {}) {
|
|
30
31
|
logger.banner(version);
|
|
31
32
|
const targetDir = targetPath
|
|
32
33
|
? path.resolve(process.cwd(), targetPath)
|
|
33
34
|
: process.cwd();
|
|
34
|
-
// Detect the existing project
|
|
35
|
-
const projectInfo =
|
|
36
|
-
|
|
35
|
+
// Detect the existing project (skip if --force)
|
|
36
|
+
const projectInfo = options.force
|
|
37
|
+
? {
|
|
38
|
+
detected: true,
|
|
39
|
+
signals: {
|
|
40
|
+
hasPackageJson: false,
|
|
41
|
+
hasGit: false,
|
|
42
|
+
hasSrc: false,
|
|
43
|
+
hasTsConfig: false,
|
|
44
|
+
hasNodeModules: false,
|
|
45
|
+
hasGoMod: false,
|
|
46
|
+
hasCargoToml: false,
|
|
47
|
+
hasPyProjectToml: false,
|
|
48
|
+
hasFirebaseJson: false,
|
|
49
|
+
hasPomXml: false,
|
|
50
|
+
hasBuildGradle: false,
|
|
51
|
+
isInsideMonorepo: false,
|
|
52
|
+
monorepoRoot: null,
|
|
53
|
+
},
|
|
54
|
+
name: null,
|
|
55
|
+
description: null,
|
|
56
|
+
framework: null,
|
|
57
|
+
testFramework: null,
|
|
58
|
+
packageManager: null,
|
|
59
|
+
hasNexus: false,
|
|
60
|
+
dependencies: [],
|
|
61
|
+
}
|
|
62
|
+
: await detectProject(targetDir);
|
|
63
|
+
if (!projectInfo.detected && !options.force) {
|
|
37
64
|
logger.error('No existing project detected in this directory.');
|
|
38
65
|
logger.newline();
|
|
39
|
-
logger.info('
|
|
40
|
-
logger.info('
|
|
66
|
+
logger.info('NEXUS adopt works with:');
|
|
67
|
+
logger.info(' • Node.js projects (package.json)');
|
|
68
|
+
logger.info(' • Spring Boot projects (pom.xml, build.gradle)');
|
|
69
|
+
logger.info(' • Cloud Functions (firebase.json)');
|
|
70
|
+
logger.info(' • Go projects (go.mod)');
|
|
71
|
+
logger.info(' • Rust projects (Cargo.toml)');
|
|
72
|
+
logger.info(' • Python projects (pyproject.toml)');
|
|
73
|
+
logger.info(' • Monorepos (workspace structure)');
|
|
74
|
+
logger.newline();
|
|
75
|
+
logger.info('To force adoption of any directory:');
|
|
76
|
+
logger.nexus(' nexus adopt --force');
|
|
41
77
|
logger.newline();
|
|
78
|
+
logger.info('To create a brand-new project:');
|
|
42
79
|
logger.nexus(' nexus init <project-name>');
|
|
43
80
|
logger.newline();
|
|
44
81
|
process.exit(1);
|
|
@@ -58,8 +95,10 @@ export async function adoptCommand(targetPath, _options = {}) {
|
|
|
58
95
|
logger.info(`Detected test framework: ${testFw}`);
|
|
59
96
|
logger.info(`Detected package manager: ${pm}`);
|
|
60
97
|
logger.newline();
|
|
98
|
+
// Run pre-adoption interview
|
|
99
|
+
const adoptionContext = await promptAdoption(projectInfo);
|
|
61
100
|
try {
|
|
62
|
-
await adoptProject(targetDir, projectInfo);
|
|
101
|
+
await adoptProject(targetDir, projectInfo, adoptionContext);
|
|
63
102
|
logger.adoptComplete(displayName);
|
|
64
103
|
}
|
|
65
104
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adopt.js","sourceRoot":"","sources":["../../src/commands/adopt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"adopt.js","sourceRoot":"","sources":["../../src/commands/adopt.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,iCAAiC;AACjC,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CA2Df"}
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,iCAAiC;AACjC,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CA2Df"}
|
package/dist/commands/init.js
CHANGED
|
@@ -54,7 +54,7 @@ export async function initCommand(projectName, options = {}) {
|
|
|
54
54
|
}
|
|
55
55
|
try {
|
|
56
56
|
// Run interactive prompts
|
|
57
|
-
const config = await runPrompts(projectName);
|
|
57
|
+
const config = await runPrompts(projectName, options.local);
|
|
58
58
|
logger.newline();
|
|
59
59
|
logger.nexus(`Creating "${config.displayName}" with ${config.frontendFramework}...`);
|
|
60
60
|
logger.newline();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,15 @@ import type { NexusConfig } from '../types/config.js';
|
|
|
14
14
|
import type { GeneratedFile } from '../types/templates.js';
|
|
15
15
|
/**
|
|
16
16
|
* Generate all NEXUS documentation files for a new project.
|
|
17
|
+
*
|
|
18
|
+
* @param config - Project configuration
|
|
19
|
+
* @param localOnly - Whether to mark as local-only in manifest
|
|
20
|
+
* @param adoptionContext - Optional context from pre-adoption interview (used to pre-fill docs)
|
|
17
21
|
*/
|
|
18
|
-
export declare function generateDocs(config: NexusConfig
|
|
22
|
+
export declare function generateDocs(config: NexusConfig, localOnly?: boolean, adoptionContext?: {
|
|
23
|
+
projectDescription?: string;
|
|
24
|
+
architectureType?: string;
|
|
25
|
+
techStack?: string;
|
|
26
|
+
painPoints?: string;
|
|
27
|
+
}): GeneratedFile[];
|
|
19
28
|
//# sourceMappingURL=docs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/generators/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AA2C3D
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/generators/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AA2C3D;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,WAAW,EACnB,SAAS,UAAQ,EACjB,eAAe,CAAC,EAAE;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,aAAa,EAAE,CAgBjB"}
|
package/dist/generators/docs.js
CHANGED
|
@@ -49,24 +49,33 @@ last_updated: "${now}"
|
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* Generate all NEXUS documentation files for a new project.
|
|
52
|
+
*
|
|
53
|
+
* @param config - Project configuration
|
|
54
|
+
* @param localOnly - Whether to mark as local-only in manifest
|
|
55
|
+
* @param adoptionContext - Optional context from pre-adoption interview (used to pre-fill docs)
|
|
52
56
|
*/
|
|
53
|
-
export function generateDocs(config) {
|
|
57
|
+
export function generateDocs(config, localOnly = false, adoptionContext) {
|
|
54
58
|
const files = [];
|
|
55
|
-
files.push(generateVision(config));
|
|
56
|
-
files.push(generateArchitecture(config));
|
|
59
|
+
files.push(generateVision(config, adoptionContext));
|
|
60
|
+
files.push(generateArchitecture(config, adoptionContext));
|
|
57
61
|
files.push(generateDataContracts(config));
|
|
58
62
|
files.push(generateApiContracts(config));
|
|
59
63
|
files.push(generateBusinessLogic(config));
|
|
60
64
|
files.push(generateTestStrategy(config));
|
|
61
65
|
files.push(generateImplementation(config));
|
|
62
66
|
files.push(generateDeployment(config));
|
|
63
|
-
files.push(generateProjectIndex(config));
|
|
67
|
+
files.push(generateProjectIndex(config, adoptionContext));
|
|
64
68
|
files.push(generateKnowledge(config));
|
|
65
|
-
files.push(
|
|
66
|
-
files.push(generateNexusManifest(config));
|
|
69
|
+
files.push(generateNexusManifest(config, localOnly));
|
|
67
70
|
return files;
|
|
68
71
|
}
|
|
69
|
-
function generateVision(config) {
|
|
72
|
+
function generateVision(config, adoptionContext) {
|
|
73
|
+
const visionContent = adoptionContext?.projectDescription
|
|
74
|
+
? adoptionContext.projectDescription
|
|
75
|
+
: '<!-- What are you building and why? What problem does it solve? -->';
|
|
76
|
+
const painPointsContent = adoptionContext?.painPoints
|
|
77
|
+
? `\n### Known Pain Points\n${adoptionContext.painPoints}\n`
|
|
78
|
+
: '';
|
|
70
79
|
return {
|
|
71
80
|
path: '.nexus/docs/01_vision.md',
|
|
72
81
|
content: `${frontmatter('01_vision', 'Product Vision & Requirements')}# Product Vision & Requirements
|
|
@@ -76,8 +85,8 @@ function generateVision(config) {
|
|
|
76
85
|
---
|
|
77
86
|
|
|
78
87
|
## 🎯 Product Vision
|
|
79
|
-
|
|
80
|
-
|
|
88
|
+
${visionContent}
|
|
89
|
+
${painPointsContent}
|
|
81
90
|
## 👥 Target Users
|
|
82
91
|
<!-- 2-3 personas: role, goals, pain points, needs -->
|
|
83
92
|
|
|
@@ -93,15 +102,20 @@ function generateVision(config) {
|
|
|
93
102
|
`,
|
|
94
103
|
};
|
|
95
104
|
}
|
|
96
|
-
function generateArchitecture(config) {
|
|
105
|
+
function generateArchitecture(config, adoptionContext) {
|
|
106
|
+
const archTypeContent = adoptionContext?.architectureType
|
|
107
|
+
? `\n**Architecture Type:** ${adoptionContext.architectureType}\n`
|
|
108
|
+
: '';
|
|
109
|
+
const techStackContent = adoptionContext?.techStack
|
|
110
|
+
? `\n### Additional Technologies\n${adoptionContext.techStack}\n`
|
|
111
|
+
: '';
|
|
97
112
|
return {
|
|
98
113
|
path: '.nexus/docs/02_architecture.md',
|
|
99
114
|
content: `${frontmatter('02_architecture', 'System Architecture')}# System Architecture
|
|
100
115
|
|
|
101
116
|
**Project:** ${config.displayName}
|
|
102
117
|
**Framework:** ${config.frontendFramework}
|
|
103
|
-
**Data Strategy:** ${config.dataStrategy}
|
|
104
|
-
|
|
118
|
+
**Data Strategy:** ${config.dataStrategy}${archTypeContent}
|
|
105
119
|
---
|
|
106
120
|
|
|
107
121
|
## 🏗️ Architecture Overview
|
|
@@ -114,7 +128,7 @@ function generateArchitecture(config) {
|
|
|
114
128
|
| Frontend | ${config.frontendFramework} | Selected during project setup |
|
|
115
129
|
| Data | ${config.dataStrategy} | ${config.dataStrategy} strategy |
|
|
116
130
|
| Testing | ${config.testFramework} | Selected during project setup |
|
|
117
|
-
|
|
131
|
+
${techStackContent}
|
|
118
132
|
## 📁 Directory Structure
|
|
119
133
|
<!-- Folder conventions: what goes where and why -->
|
|
120
134
|
|
|
@@ -387,9 +401,16 @@ lint → typecheck → test → build
|
|
|
387
401
|
*
|
|
388
402
|
* The agent must READ this before every task and UPDATE it after.
|
|
389
403
|
* ────────────────────────────────────────────────────────────── */
|
|
390
|
-
function generateProjectIndex(config) {
|
|
404
|
+
function generateProjectIndex(config, adoptionContext) {
|
|
391
405
|
const frameworkDisplay = getFrameworkDisplay(config.frontendFramework);
|
|
392
406
|
const now = new Date().toISOString().split('T')[0];
|
|
407
|
+
// Pre-fill the current objective if we have adoption context
|
|
408
|
+
const activeTask = adoptionContext?.projectDescription
|
|
409
|
+
? 'Review and expand pre-filled vision from adoption interview'
|
|
410
|
+
: "Populate NEXUS docs from user's project vision";
|
|
411
|
+
const statusNote = adoptionContext?.projectDescription
|
|
412
|
+
? '🟡 Partially filled from adoption interview'
|
|
413
|
+
: '🔴 Template';
|
|
393
414
|
return {
|
|
394
415
|
path: '.nexus/docs/index.md',
|
|
395
416
|
content: `${frontmatter('project_index', 'Project Index — AI Agent Brain')}# ${config.displayName} — Project Index
|
|
@@ -412,7 +433,7 @@ function generateProjectIndex(config) {
|
|
|
412
433
|
Update it at the start of every task. -->
|
|
413
434
|
|
|
414
435
|
**Current Phase:** Phase 1 — Foundation
|
|
415
|
-
**Active Task:**
|
|
436
|
+
**Active Task:** ${activeTask}
|
|
416
437
|
**Blocked:** None
|
|
417
438
|
**Next Up:** See "What's Next" section below
|
|
418
439
|
|
|
@@ -424,8 +445,8 @@ function generateProjectIndex(config) {
|
|
|
424
445
|
|
|
425
446
|
| Area | Status | Notes |
|
|
426
447
|
|------|--------|-------|
|
|
427
|
-
| 📋 Vision & Requirements |
|
|
428
|
-
| 🏗️ Architecture |
|
|
448
|
+
| 📋 Vision & Requirements | ${statusNote} | ${adoptionContext?.projectDescription ? 'See .nexus/docs/01_vision.md' : 'Needs user input → `.nexus/docs/01_vision.md`'} |
|
|
449
|
+
| 🏗️ Architecture | ${statusNote} | ${adoptionContext?.projectDescription ? 'See .nexus/docs/02_architecture.md' : 'Auto-fill from codebase → `.nexus/docs/02_architecture.md`'} |
|
|
429
450
|
| 📊 Data Contracts | 🔴 Template | Define from code → \`.nexus/docs/03_data_contracts.md\` |
|
|
430
451
|
| 🔌 API Contracts | 🔴 Template | Define from code → \`.nexus/docs/04_api_contracts.md\` |
|
|
431
452
|
| 📐 Business Logic | 🔴 Template | Needs user input → \`.nexus/docs/05_business_logic.md\` |
|
|
@@ -586,54 +607,7 @@ Optional: Brief supporting detail (1-2 sentences max).
|
|
|
586
607
|
`,
|
|
587
608
|
};
|
|
588
609
|
}
|
|
589
|
-
function
|
|
590
|
-
return {
|
|
591
|
-
path: '.nexus/index.md',
|
|
592
|
-
content: `# NEXUS Project Index
|
|
593
|
-
|
|
594
|
-
**Project:** ${config.displayName}
|
|
595
|
-
**Generated:** ${new Date().toISOString().split('T')[0]}
|
|
596
|
-
**CLI Version:** ${version}
|
|
597
|
-
|
|
598
|
-
---
|
|
599
|
-
|
|
600
|
-
## 🧠 Start Here
|
|
601
|
-
|
|
602
|
-
**AI agents: Read \`.nexus/docs/index.md\` FIRST** — that is your project brain.
|
|
603
|
-
It tracks status, features, progress, and what to work on next.
|
|
604
|
-
|
|
605
|
-
---
|
|
606
|
-
|
|
607
|
-
## 📚 Document Map
|
|
608
|
-
|
|
609
|
-
| Doc | Path | Purpose |
|
|
610
|
-
|-----|------|---------|
|
|
611
|
-
| **🧠 Project Brain** | **\`.nexus/docs/index.md\`** | **Status, backlog, progress, what's next** |
|
|
612
|
-
| Vision | \`.nexus/docs/01_vision.md\` | Product requirements & user stories |
|
|
613
|
-
| Architecture | \`.nexus/docs/02_architecture.md\` | System design & tech stack |
|
|
614
|
-
| Data Contracts | \`.nexus/docs/03_data_contracts.md\` | Database schemas & validation |
|
|
615
|
-
| API Contracts | \`.nexus/docs/04_api_contracts.md\` | Endpoints & interfaces |
|
|
616
|
-
| Business Logic | \`.nexus/docs/05_business_logic.md\` | Rules, algorithms & flows |
|
|
617
|
-
| Test Strategy | \`.nexus/docs/06_test_strategy.md\` | Testing philosophy & coverage |
|
|
618
|
-
| Implementation | \`.nexus/docs/07_implementation.md\` | Build order & file-by-file plan |
|
|
619
|
-
| Deployment | \`.nexus/docs/08_deployment.md\` | Infrastructure & CI/CD |
|
|
620
|
-
| **📚 Knowledge Base** | **\`.nexus/docs/knowledge.md\`** | **Learned insights, patterns & gotchas** |
|
|
621
|
-
|
|
622
|
-
---
|
|
623
|
-
|
|
624
|
-
## 🤖 AI Agent Instructions
|
|
625
|
-
|
|
626
|
-
If you are an AI reading this project:
|
|
627
|
-
|
|
628
|
-
1. **START with \`.nexus/docs/index.md\`** — your project brain, read it before every task
|
|
629
|
-
2. **Read \`.nexus/docs/01_vision.md\`** to understand what this project does
|
|
630
|
-
3. **Check \`.nexus/docs/07_implementation.md\`** for the file-by-file build plan
|
|
631
|
-
4. **After every task, update \`.nexus/docs/index.md\`** — progress log, status, what's next
|
|
632
|
-
5. **Never ask "what should we do next?"** — the index tells you
|
|
633
|
-
`,
|
|
634
|
-
};
|
|
635
|
-
}
|
|
636
|
-
function generateNexusManifest(config) {
|
|
610
|
+
function generateNexusManifest(config, localOnly = false) {
|
|
637
611
|
const manifest = {
|
|
638
612
|
version: '1.0.0',
|
|
639
613
|
generatedAt: new Date().toISOString(),
|
|
@@ -642,6 +616,7 @@ function generateNexusManifest(config) {
|
|
|
642
616
|
version,
|
|
643
617
|
name: '@nexus-framework/cli',
|
|
644
618
|
},
|
|
619
|
+
localOnly,
|
|
645
620
|
};
|
|
646
621
|
return {
|
|
647
622
|
path: '.nexus/manifest.json',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/generators/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;oEAEoE;AAEpE,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,MAAM,GAAG,GAA2B;QAClC,MAAM,EAAE,yBAAyB;QACjC,YAAY,EAAE,cAAc;QAC5B,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,OAAO;KACf,CAAC;IACF,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;AACrC,CAAC;AAED;;oEAEoE;AAEpE;;;;;GAKG;AACH,SAAS,WAAW,CAAC,KAAa,EAAE,KAAa;IAC/C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,OAAO;;OAEF,KAAK;UACF,KAAK;;;iBAGE,GAAG;;;CAGnB,CAAC;AACF,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/generators/docs.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Coordinates all generators to produce a complete project.
|
|
5
5
|
* Also provides `adoptProject()` for adding .nexus/ to existing projects.
|
|
6
6
|
*/
|
|
7
|
+
import type { AdoptionContext } from '../prompts/adoption.js';
|
|
7
8
|
import type { NexusConfig } from '../types/config.js';
|
|
8
9
|
import type { ProjectInfo } from '../utils/project-detector.js';
|
|
9
10
|
/**
|
|
@@ -20,7 +21,7 @@ export declare function generateProject(config: NexusConfig): Promise<void>;
|
|
|
20
21
|
*
|
|
21
22
|
* It does NOT scaffold source code, configs, tests, or landing pages.
|
|
22
23
|
*/
|
|
23
|
-
export declare function adoptProject(targetDir: string, projectInfo: ProjectInfo): Promise<void>;
|
|
24
|
+
export declare function adoptProject(targetDir: string, projectInfo: ProjectInfo, adoptionContext: AdoptionContext): Promise<void>;
|
|
24
25
|
/** Reconcile mode: upgrade replaces scaffolding; repair only fixes broken files */
|
|
25
26
|
export type ReconcileMode = 'upgrade' | 'repair';
|
|
26
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAgBhE;;GAEG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAoExE;AAMD;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,IAAI,CAAC,CAmCf;AA0BD,mFAAmF;AACnF,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAC;AAmBjD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAuBtE;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,eAAe,CAAC,CAgF1B;AAED,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wFAAwF;IACxF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yCAAyC;IACzC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,eAAe,CAAC,CAE1B"}
|
package/dist/generators/index.js
CHANGED
|
@@ -14,6 +14,7 @@ import { generateCiCd } from './ci-cd.js';
|
|
|
14
14
|
import { generateConfigs } from './config.js';
|
|
15
15
|
import { generateDocs } from './docs.js';
|
|
16
16
|
import { generateLandingPage } from './landing-page.js';
|
|
17
|
+
import { generateSpringBootFiles } from './spring-boot.js';
|
|
17
18
|
import { generateDirectories, generatePackageJson, generateGitignore, generateReadme, } from './structure.js';
|
|
18
19
|
import { generateTests } from './tests.js';
|
|
19
20
|
/**
|
|
@@ -29,15 +30,24 @@ export async function generateProject(config) {
|
|
|
29
30
|
generatePackageJson(config),
|
|
30
31
|
generateGitignore(),
|
|
31
32
|
generateReadme(config),
|
|
32
|
-
...generateDocs(config),
|
|
33
|
+
...generateDocs(config, config.localOnly ?? false),
|
|
33
34
|
...generateConfigs(config),
|
|
34
35
|
...generateTests(config),
|
|
35
36
|
...generateCiCd(config),
|
|
36
37
|
...generateLandingPage(config),
|
|
37
38
|
...generateAiConfig(config),
|
|
38
39
|
];
|
|
40
|
+
// Add Spring Boot files if backend is Spring Boot
|
|
41
|
+
if (config.backendFramework === 'spring-boot') {
|
|
42
|
+
files.push(...generateSpringBootFiles(config));
|
|
43
|
+
}
|
|
39
44
|
// Write everything to disk
|
|
40
45
|
await writeGeneratorResult(projectRoot, files, directories);
|
|
46
|
+
// If local-only mode, add .nexus/ to .gitignore
|
|
47
|
+
if (config.localOnly) {
|
|
48
|
+
await appendToGitignore(projectRoot);
|
|
49
|
+
spinner.text = 'NEXUS configured as local-only (not tracked by git)';
|
|
50
|
+
}
|
|
41
51
|
spinner.succeed('Project structure generated.');
|
|
42
52
|
// Install dependencies
|
|
43
53
|
if (config.installDeps) {
|
|
@@ -84,11 +94,11 @@ export async function generateProject(config) {
|
|
|
84
94
|
*
|
|
85
95
|
* It does NOT scaffold source code, configs, tests, or landing pages.
|
|
86
96
|
*/
|
|
87
|
-
export async function adoptProject(targetDir, projectInfo) {
|
|
97
|
+
export async function adoptProject(targetDir, projectInfo, adoptionContext) {
|
|
88
98
|
const spinner = ora('Generating NEXUS documentation & AI config...').start();
|
|
89
99
|
try {
|
|
90
|
-
// Build a minimal NexusConfig from detected project info
|
|
91
|
-
const config = buildAdoptConfig(targetDir, projectInfo);
|
|
100
|
+
// Build a minimal NexusConfig from detected project info + user interview
|
|
101
|
+
const config = buildAdoptConfig(targetDir, projectInfo, adoptionContext);
|
|
92
102
|
// Directories to create
|
|
93
103
|
const directories = [
|
|
94
104
|
{ path: '.nexus' },
|
|
@@ -97,10 +107,16 @@ export async function adoptProject(targetDir, projectInfo) {
|
|
|
97
107
|
{ path: '.github' },
|
|
98
108
|
];
|
|
99
109
|
// Files to generate — docs + AI config only
|
|
110
|
+
// Pass adoption context to docs generator for pre-filling
|
|
100
111
|
const files = [
|
|
101
|
-
...generateDocs(config),
|
|
112
|
+
...generateDocs(config, adoptionContext.localOnly, adoptionContext),
|
|
102
113
|
...generateAiConfig(config),
|
|
103
114
|
];
|
|
115
|
+
// If local-only mode, add .nexus/ to .gitignore
|
|
116
|
+
if (adoptionContext.localOnly) {
|
|
117
|
+
await appendToGitignore(targetDir);
|
|
118
|
+
spinner.text = 'NEXUS configured as local-only (not tracked by git)';
|
|
119
|
+
}
|
|
104
120
|
// Write to disk
|
|
105
121
|
await writeGeneratorResult(targetDir, files, directories);
|
|
106
122
|
spinner.succeed('NEXUS documentation & AI config generated.');
|
|
@@ -254,12 +270,12 @@ export async function repairProject(targetDir, config) {
|
|
|
254
270
|
return reconcileNexusFiles(targetDir, config, 'repair');
|
|
255
271
|
}
|
|
256
272
|
/**
|
|
257
|
-
* Build a NexusConfig from detected ProjectInfo.
|
|
273
|
+
* Build a NexusConfig from detected ProjectInfo + user interview.
|
|
258
274
|
*
|
|
259
275
|
* Maps detected values to the closest NexusConfig equivalents,
|
|
260
276
|
* using sensible defaults for anything not detected.
|
|
261
277
|
*/
|
|
262
|
-
function buildAdoptConfig(targetDir, info) {
|
|
278
|
+
function buildAdoptConfig(targetDir, info, _adoptionContext) {
|
|
263
279
|
const slug = info.name ?? path.basename(targetDir);
|
|
264
280
|
return {
|
|
265
281
|
projectName: slug,
|
|
@@ -298,4 +314,28 @@ function mapPackageManager(detected) {
|
|
|
298
314
|
return 'pnpm';
|
|
299
315
|
return 'npm';
|
|
300
316
|
}
|
|
317
|
+
/**
|
|
318
|
+
* Append `.nexus/` to .gitignore (for local-only mode).
|
|
319
|
+
*
|
|
320
|
+
* If .gitignore doesn't exist, create it. If it exists, append only if not already present.
|
|
321
|
+
*/
|
|
322
|
+
async function appendToGitignore(targetDir) {
|
|
323
|
+
const gitignorePath = path.join(targetDir, '.gitignore');
|
|
324
|
+
const entry = '\n# NEXUS (local-only mode)\n.nexus/\n';
|
|
325
|
+
if (await fileExists(gitignorePath)) {
|
|
326
|
+
const content = await readFile(gitignorePath);
|
|
327
|
+
if (!content) {
|
|
328
|
+
await writeFile(gitignorePath, entry.trim() + '\n');
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
if (content.includes('.nexus/')) {
|
|
332
|
+
// Already gitignored
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
await writeFile(gitignorePath, content + entry);
|
|
336
|
+
}
|
|
337
|
+
else {
|
|
338
|
+
await writeFile(gitignorePath, entry.trim() + '\n');
|
|
339
|
+
}
|
|
340
|
+
}
|
|
301
341
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,GAAG,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NEXUS CLI - Spring Boot Project Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates pom.xml, application.properties, and basic Spring Boot structure.
|
|
5
|
+
*/
|
|
6
|
+
import type { NexusConfig } from '../types/config.js';
|
|
7
|
+
import type { GeneratedFile } from '../types/templates.js';
|
|
8
|
+
/**
|
|
9
|
+
* Generate Spring Boot project files (Maven-based)
|
|
10
|
+
*/
|
|
11
|
+
export declare function generateSpringBootFiles(config: NexusConfig): GeneratedFile[];
|
|
12
|
+
//# sourceMappingURL=spring-boot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spring-boot.d.ts","sourceRoot":"","sources":["../../src/generators/spring-boot.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,EAAE,CAmB5E"}
|