@digitaldefiance/express-suite-starter 2.1.41
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 +342 -0
- package/config/package-groups.json +83 -0
- package/config/presets/minimal.json +32 -0
- package/config/presets/standard.json +70 -0
- package/dist/scripts/addScriptsToPackageJson.d.ts +7 -0
- package/dist/scripts/addScriptsToPackageJson.d.ts.map +1 -0
- package/dist/scripts/addScriptsToPackageJson.js +69 -0
- package/dist/scripts/addScriptsToPackageJson.js.map +1 -0
- package/dist/scripts/albatross.d.ts +4 -0
- package/dist/scripts/albatross.d.ts.map +1 -0
- package/dist/scripts/albatross.js +36 -0
- package/dist/scripts/albatross.js.map +1 -0
- package/dist/scripts/fsUtils.d.ts +15 -0
- package/dist/scripts/fsUtils.d.ts.map +1 -0
- package/dist/scripts/fsUtils.js +99 -0
- package/dist/scripts/fsUtils.js.map +1 -0
- package/dist/scripts/generate-monorepo.d.ts +2 -0
- package/dist/scripts/generate-monorepo.d.ts.map +1 -0
- package/dist/scripts/generate-monorepo.js +227 -0
- package/dist/scripts/generate-monorepo.js.map +1 -0
- package/dist/scripts/licensePrompt.d.ts +5 -0
- package/dist/scripts/licensePrompt.d.ts.map +1 -0
- package/dist/scripts/licensePrompt.js +63 -0
- package/dist/scripts/licensePrompt.js.map +1 -0
- package/dist/scripts/monorepoConfig.d.ts +18 -0
- package/dist/scripts/monorepoConfig.d.ts.map +1 -0
- package/dist/scripts/monorepoConfig.js +83 -0
- package/dist/scripts/monorepoConfig.js.map +1 -0
- package/dist/scripts/nodeSetup.d.ts +5 -0
- package/dist/scripts/nodeSetup.d.ts.map +1 -0
- package/dist/scripts/nodeSetup.js +32 -0
- package/dist/scripts/nodeSetup.js.map +1 -0
- package/dist/scripts/passwordObfuscator.d.ts +14 -0
- package/dist/scripts/passwordObfuscator.d.ts.map +1 -0
- package/dist/scripts/passwordObfuscator.js +52 -0
- package/dist/scripts/passwordObfuscator.js.map +1 -0
- package/dist/scripts/shellUtils.d.ts +11 -0
- package/dist/scripts/shellUtils.d.ts.map +1 -0
- package/dist/scripts/shellUtils.js +28 -0
- package/dist/scripts/shellUtils.js.map +1 -0
- package/dist/scripts/templateUtils.d.ts +6 -0
- package/dist/scripts/templateUtils.d.ts.map +1 -0
- package/dist/scripts/templateUtils.js +15 -0
- package/dist/scripts/templateUtils.js.map +1 -0
- package/dist/src/cli/logger.d.ts +15 -0
- package/dist/src/cli/logger.d.ts.map +1 -0
- package/dist/src/cli/logger.js +48 -0
- package/dist/src/cli/logger.js.map +1 -0
- package/dist/src/cli.d.ts +6 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +12 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/core/config-schema.d.ts +3 -0
- package/dist/src/core/config-schema.d.ts.map +1 -0
- package/dist/src/core/config-schema.js +20 -0
- package/dist/src/core/config-schema.js.map +1 -0
- package/dist/src/core/dry-run-executor.d.ts +15 -0
- package/dist/src/core/dry-run-executor.d.ts.map +1 -0
- package/dist/src/core/dry-run-executor.js +86 -0
- package/dist/src/core/dry-run-executor.js.map +1 -0
- package/dist/src/core/interfaces/checkpoint.interface.d.ts +6 -0
- package/dist/src/core/interfaces/checkpoint.interface.d.ts.map +1 -0
- package/dist/src/core/interfaces/checkpoint.interface.js +3 -0
- package/dist/src/core/interfaces/checkpoint.interface.js.map +1 -0
- package/dist/src/core/interfaces/command-options.interface.d.ts +5 -0
- package/dist/src/core/interfaces/command-options.interface.d.ts.map +1 -0
- package/dist/src/core/interfaces/command-options.interface.js +3 -0
- package/dist/src/core/interfaces/command-options.interface.js.map +1 -0
- package/dist/src/core/interfaces/devcontainer-config.interface.d.ts +6 -0
- package/dist/src/core/interfaces/devcontainer-config.interface.d.ts.map +1 -0
- package/dist/src/core/interfaces/devcontainer-config.interface.js +3 -0
- package/dist/src/core/interfaces/devcontainer-config.interface.js.map +1 -0
- package/dist/src/core/interfaces/dry-run.interface.d.ts +16 -0
- package/dist/src/core/interfaces/dry-run.interface.d.ts.map +1 -0
- package/dist/src/core/interfaces/dry-run.interface.js +3 -0
- package/dist/src/core/interfaces/dry-run.interface.js.map +1 -0
- package/dist/src/core/interfaces/generator-config.interface.d.ts +17 -0
- package/dist/src/core/interfaces/generator-config.interface.d.ts.map +1 -0
- package/dist/src/core/interfaces/generator-config.interface.js +3 -0
- package/dist/src/core/interfaces/generator-config.interface.js.map +1 -0
- package/dist/src/core/interfaces/generator-context.interface.d.ts +6 -0
- package/dist/src/core/interfaces/generator-context.interface.d.ts.map +1 -0
- package/dist/src/core/interfaces/generator-context.interface.js +3 -0
- package/dist/src/core/interfaces/generator-context.interface.js.map +1 -0
- package/dist/src/core/interfaces/index.d.ts +16 -0
- package/dist/src/core/interfaces/index.d.ts.map +1 -0
- package/dist/src/core/interfaces/index.js +32 -0
- package/dist/src/core/interfaces/index.js.map +1 -0
- package/dist/src/core/interfaces/node-config.interface.d.ts +5 -0
- package/dist/src/core/interfaces/node-config.interface.d.ts.map +1 -0
- package/dist/src/core/interfaces/node-config.interface.js +3 -0
- package/dist/src/core/interfaces/node-config.interface.js.map +1 -0
- package/dist/src/core/interfaces/nx-config.interface.d.ts +9 -0
- package/dist/src/core/interfaces/nx-config.interface.d.ts.map +1 -0
- package/dist/src/core/interfaces/nx-config.interface.js +3 -0
- package/dist/src/core/interfaces/nx-config.interface.js.map +1 -0
- package/dist/src/core/interfaces/package-config.interface.d.ts +6 -0
- package/dist/src/core/interfaces/package-config.interface.d.ts.map +1 -0
- package/dist/src/core/interfaces/package-config.interface.js +3 -0
- package/dist/src/core/interfaces/package-config.interface.js.map +1 -0
- package/dist/src/core/interfaces/package-resolution.interface.d.ts +21 -0
- package/dist/src/core/interfaces/package-resolution.interface.d.ts.map +1 -0
- package/dist/src/core/interfaces/package-resolution.interface.js +3 -0
- package/dist/src/core/interfaces/package-resolution.interface.js.map +1 -0
- package/dist/src/core/interfaces/plugin.interface.d.ts +21 -0
- package/dist/src/core/interfaces/plugin.interface.d.ts.map +1 -0
- package/dist/src/core/interfaces/plugin.interface.js +3 -0
- package/dist/src/core/interfaces/plugin.interface.js.map +1 -0
- package/dist/src/core/interfaces/project-config.interface.d.ts +7 -0
- package/dist/src/core/interfaces/project-config.interface.d.ts.map +1 -0
- package/dist/src/core/interfaces/project-config.interface.js +3 -0
- package/dist/src/core/interfaces/project-config.interface.js.map +1 -0
- package/dist/src/core/interfaces/step.interface.d.ts +9 -0
- package/dist/src/core/interfaces/step.interface.d.ts.map +1 -0
- package/dist/src/core/interfaces/step.interface.js +3 -0
- package/dist/src/core/interfaces/step.interface.js.map +1 -0
- package/dist/src/core/interfaces/template-config.interface.d.ts +5 -0
- package/dist/src/core/interfaces/template-config.interface.d.ts.map +1 -0
- package/dist/src/core/interfaces/template-config.interface.js +3 -0
- package/dist/src/core/interfaces/template-config.interface.js.map +1 -0
- package/dist/src/core/interfaces/validation-issue.interface.d.ts +18 -0
- package/dist/src/core/interfaces/validation-issue.interface.d.ts.map +1 -0
- package/dist/src/core/interfaces/validation-issue.interface.js +3 -0
- package/dist/src/core/interfaces/validation-issue.interface.js.map +1 -0
- package/dist/src/core/interfaces/validation-result.interface.d.ts +5 -0
- package/dist/src/core/interfaces/validation-result.interface.d.ts.map +1 -0
- package/dist/src/core/interfaces/validation-result.interface.js +3 -0
- package/dist/src/core/interfaces/validation-result.interface.js.map +1 -0
- package/dist/src/core/interfaces/workspace-config.interface.d.ts +8 -0
- package/dist/src/core/interfaces/workspace-config.interface.d.ts.map +1 -0
- package/dist/src/core/interfaces/workspace-config.interface.js +3 -0
- package/dist/src/core/interfaces/workspace-config.interface.js.map +1 -0
- package/dist/src/core/package-resolver.d.ts +10 -0
- package/dist/src/core/package-resolver.d.ts.map +1 -0
- package/dist/src/core/package-resolver.js +68 -0
- package/dist/src/core/package-resolver.js.map +1 -0
- package/dist/src/core/plugin-manager.d.ts +13 -0
- package/dist/src/core/plugin-manager.d.ts.map +1 -0
- package/dist/src/core/plugin-manager.js +48 -0
- package/dist/src/core/plugin-manager.js.map +1 -0
- package/dist/src/core/plugins/example-plugin.d.ts +3 -0
- package/dist/src/core/plugins/example-plugin.d.ts.map +1 -0
- package/dist/src/core/plugins/example-plugin.js +30 -0
- package/dist/src/core/plugins/example-plugin.js.map +1 -0
- package/dist/src/core/project-config-builder.d.ts +11 -0
- package/dist/src/core/project-config-builder.d.ts.map +1 -0
- package/dist/src/core/project-config-builder.js +77 -0
- package/dist/src/core/project-config-builder.js.map +1 -0
- package/dist/src/core/project-generator.d.ts +11 -0
- package/dist/src/core/project-generator.d.ts.map +1 -0
- package/dist/src/core/project-generator.js +29 -0
- package/dist/src/core/project-generator.js.map +1 -0
- package/dist/src/core/step-executor.d.ts +19 -0
- package/dist/src/core/step-executor.d.ts.map +1 -0
- package/dist/src/core/step-executor.js +130 -0
- package/dist/src/core/step-executor.js.map +1 -0
- package/dist/src/core/validators/config-validator.d.ts +10 -0
- package/dist/src/core/validators/config-validator.d.ts.map +1 -0
- package/dist/src/core/validators/config-validator.js +44 -0
- package/dist/src/core/validators/config-validator.js.map +1 -0
- package/dist/src/core/validators/post-generation-validator.d.ts +10 -0
- package/dist/src/core/validators/post-generation-validator.d.ts.map +1 -0
- package/dist/src/core/validators/post-generation-validator.js +219 -0
- package/dist/src/core/validators/post-generation-validator.js.map +1 -0
- package/dist/src/generate-monorepo.d.ts +3 -0
- package/dist/src/generate-monorepo.d.ts.map +1 -0
- package/dist/src/generate-monorepo.js +668 -0
- package/dist/src/generate-monorepo.js.map +1 -0
- package/dist/src/templates/engines/handlebars-engine.d.ts +7 -0
- package/dist/src/templates/engines/handlebars-engine.d.ts.map +1 -0
- package/dist/src/templates/engines/handlebars-engine.js +19 -0
- package/dist/src/templates/engines/handlebars-engine.js.map +1 -0
- package/dist/src/templates/engines/mustache-engine.d.ts +5 -0
- package/dist/src/templates/engines/mustache-engine.d.ts.map +1 -0
- package/dist/src/templates/engines/mustache-engine.js +44 -0
- package/dist/src/templates/engines/mustache-engine.js.map +1 -0
- package/dist/src/templates/index.d.ts +5 -0
- package/dist/src/templates/index.d.ts.map +1 -0
- package/dist/src/templates/index.js +21 -0
- package/dist/src/templates/index.js.map +1 -0
- package/dist/src/templates/interfaces/template-engine.interface.d.ts +4 -0
- package/dist/src/templates/interfaces/template-engine.interface.d.ts.map +1 -0
- package/dist/src/templates/interfaces/template-engine.interface.js +3 -0
- package/dist/src/templates/interfaces/template-engine.interface.js.map +1 -0
- package/dist/src/templates/template-engine-factory.d.ts +3 -0
- package/dist/src/templates/template-engine-factory.d.ts.map +1 -0
- package/dist/src/templates/template-engine-factory.js +9 -0
- package/dist/src/templates/template-engine-factory.js.map +1 -0
- package/dist/src/utils/diff-viewer.d.ts +15 -0
- package/dist/src/utils/diff-viewer.d.ts.map +1 -0
- package/dist/src/utils/diff-viewer.js +61 -0
- package/dist/src/utils/diff-viewer.js.map +1 -0
- package/dist/src/utils/doc-generator.d.ts +8 -0
- package/dist/src/utils/doc-generator.d.ts.map +1 -0
- package/dist/src/utils/doc-generator.js +174 -0
- package/dist/src/utils/doc-generator.js.map +1 -0
- package/dist/src/utils/shell-utils.d.ts +4 -0
- package/dist/src/utils/shell-utils.d.ts.map +1 -0
- package/dist/src/utils/shell-utils.js +32 -0
- package/dist/src/utils/shell-utils.js.map +1 -0
- package/dist/src/utils/system-check.d.ts +11 -0
- package/dist/src/utils/system-check.d.ts.map +1 -0
- package/dist/src/utils/system-check.js +71 -0
- package/dist/src/utils/system-check.js.map +1 -0
- package/dist/src/utils/template-renderer.d.ts +3 -0
- package/dist/src/utils/template-renderer.d.ts.map +1 -0
- package/dist/src/utils/template-renderer.js +127 -0
- package/dist/src/utils/template-renderer.js.map +1 -0
- package/package.json +51 -0
- package/templates/api/.env.example.mustache +57 -0
- package/templates/api-lib/README.md.mustache +23 -0
- package/templates/react-lib/README.md.mustache +23 -0
- package/templates/root/README.md.mustache +175 -0
- package/templates/root/reset.sh.mustache +25 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper to copy and render mustache templates.
|
|
3
|
+
*/
|
|
4
|
+
export declare function renderTemplates(templatesDir: string, destDir: string, variables: Record<string, any>): void;
|
|
5
|
+
/**
|
|
6
|
+
* Recursively copy files from srcDir to destDir, preserving subdirectory structure.
|
|
7
|
+
* Creates directories as needed. Overwrites files if they exist.
|
|
8
|
+
*/
|
|
9
|
+
export declare function copyDir(srcDir: string, destDir: string): void;
|
|
10
|
+
/**
|
|
11
|
+
* Copy files from scaffolding/react, scaffolding/lib, and scaffolding/root
|
|
12
|
+
* to their respective destinations in the monorepo.
|
|
13
|
+
*/
|
|
14
|
+
export declare function copyScaffoldingFiles(scaffoldingDir: string, monorepoPath: string, reactAppName: string, libName: string): void;
|
|
15
|
+
//# sourceMappingURL=fsUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fsUtils.d.ts","sourceRoot":"","sources":["../../scripts/fsUtils.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAuC/B;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAgBtD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,QAmBhB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderTemplates = renderTemplates;
|
|
4
|
+
exports.copyDir = copyDir;
|
|
5
|
+
exports.copyScaffoldingFiles = copyScaffoldingFiles;
|
|
6
|
+
const shellUtils_1 = require("./shellUtils");
|
|
7
|
+
const fs = require("fs");
|
|
8
|
+
const path = require("path");
|
|
9
|
+
const mustache = require("mustache");
|
|
10
|
+
/**
|
|
11
|
+
* Helper to copy and render mustache templates.
|
|
12
|
+
*/
|
|
13
|
+
function renderTemplates(templatesDir, destDir, variables) {
|
|
14
|
+
if (!fs.existsSync(templatesDir))
|
|
15
|
+
return;
|
|
16
|
+
// Helper to render all templates in a directory to a destination
|
|
17
|
+
function renderDir(srcDir, outDir) {
|
|
18
|
+
if (!fs.existsSync(srcDir))
|
|
19
|
+
return;
|
|
20
|
+
const entries = fs.readdirSync(srcDir, { withFileTypes: true });
|
|
21
|
+
for (const entry of entries) {
|
|
22
|
+
const srcPath = path.join(srcDir, entry.name);
|
|
23
|
+
const destPath = path.join(outDir, entry.name.replace(/\.mustache$/, ""));
|
|
24
|
+
if (entry.isDirectory()) {
|
|
25
|
+
renderDir(srcPath, destPath);
|
|
26
|
+
}
|
|
27
|
+
else if (entry.isFile()) {
|
|
28
|
+
const template = fs.readFileSync(srcPath, "utf8");
|
|
29
|
+
const rendered = mustache.render(template, variables);
|
|
30
|
+
fs.mkdirSync(path.dirname(destPath), { recursive: true });
|
|
31
|
+
fs.writeFileSync(destPath, rendered, "utf8");
|
|
32
|
+
(0, shellUtils_1.setPerms)(destPath);
|
|
33
|
+
console.log(`Rendered: ${destPath}`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
// Map subdir to destination
|
|
38
|
+
const subdirs = [
|
|
39
|
+
{ name: "root", dest: destDir },
|
|
40
|
+
{ name: "react", dest: variables.REACT_APP_NAME ? path.join(destDir, variables.REACT_APP_NAME) : null },
|
|
41
|
+
{ name: "api", dest: variables.API_APP_NAME ? path.join(destDir, variables.API_APP_NAME) : null },
|
|
42
|
+
{ name: "lib", dest: variables.LIB_NAME ? path.join(destDir, variables.LIB_NAME) : null },
|
|
43
|
+
];
|
|
44
|
+
for (const { name, dest } of subdirs) {
|
|
45
|
+
if (!dest)
|
|
46
|
+
continue;
|
|
47
|
+
const src = path.join(templatesDir, name);
|
|
48
|
+
if (fs.existsSync(src)) {
|
|
49
|
+
renderDir(src, dest);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Recursively copy files from srcDir to destDir, preserving subdirectory structure.
|
|
55
|
+
* Creates directories as needed. Overwrites files if they exist.
|
|
56
|
+
*/
|
|
57
|
+
function copyDir(srcDir, destDir) {
|
|
58
|
+
if (!fs.existsSync(srcDir))
|
|
59
|
+
return;
|
|
60
|
+
const entries = fs.readdirSync(srcDir, { withFileTypes: true });
|
|
61
|
+
for (const entry of entries) {
|
|
62
|
+
const srcPath = path.join(srcDir, entry.name);
|
|
63
|
+
const destPath = path.join(destDir, entry.name);
|
|
64
|
+
if (entry.isDirectory()) {
|
|
65
|
+
fs.mkdirSync(destPath, { recursive: true });
|
|
66
|
+
copyDir(srcPath, destPath);
|
|
67
|
+
}
|
|
68
|
+
else if (entry.isFile()) {
|
|
69
|
+
fs.mkdirSync(path.dirname(destPath), { recursive: true });
|
|
70
|
+
fs.copyFileSync(srcPath, destPath);
|
|
71
|
+
(0, shellUtils_1.setPerms)(destPath);
|
|
72
|
+
console.log(`Scaffolded: ${destPath}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Copy files from scaffolding/react, scaffolding/lib, and scaffolding/root
|
|
78
|
+
* to their respective destinations in the monorepo.
|
|
79
|
+
*/
|
|
80
|
+
function copyScaffoldingFiles(scaffoldingDir, monorepoPath, reactAppName, libName) {
|
|
81
|
+
// Copy react files
|
|
82
|
+
const reactSrc = path.join(scaffoldingDir, "react");
|
|
83
|
+
const reactDest = path.join(monorepoPath, reactAppName);
|
|
84
|
+
if (fs.existsSync(reactSrc)) {
|
|
85
|
+
copyDir(reactSrc, reactDest);
|
|
86
|
+
}
|
|
87
|
+
// Copy lib files
|
|
88
|
+
const libSrc = path.join(scaffoldingDir, "lib");
|
|
89
|
+
const libDest = path.join(monorepoPath, libName);
|
|
90
|
+
if (fs.existsSync(libSrc)) {
|
|
91
|
+
copyDir(libSrc, libDest);
|
|
92
|
+
}
|
|
93
|
+
// Copy root files (preserve structure)
|
|
94
|
+
const rootSrc = path.join(scaffoldingDir, "root");
|
|
95
|
+
if (fs.existsSync(rootSrc)) {
|
|
96
|
+
copyDir(rootSrc, monorepoPath);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=fsUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fsUtils.js","sourceRoot":"","sources":["../../scripts/fsUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-monorepo.d.ts","sourceRoot":"","sources":["../../scripts/generate-monorepo.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const input_1 = __importDefault(require("@inquirer/input"));
|
|
7
|
+
const select_1 = __importDefault(require("@inquirer/select"));
|
|
8
|
+
const passwordObfuscator_1 = require("./passwordObfuscator");
|
|
9
|
+
const addScriptsToPackageJson_1 = require("./addScriptsToPackageJson");
|
|
10
|
+
const albatross_1 = require("./albatross");
|
|
11
|
+
const shellUtils_1 = require("./shellUtils");
|
|
12
|
+
const fsUtils_1 = require("./fsUtils");
|
|
13
|
+
const nodeSetup_1 = require("./nodeSetup");
|
|
14
|
+
const licensePrompt_1 = require("./licensePrompt");
|
|
15
|
+
const templateUtils_1 = require("./templateUtils");
|
|
16
|
+
const monorepoConfig_1 = require("./monorepoConfig");
|
|
17
|
+
const fs = require("fs");
|
|
18
|
+
const path = require("path");
|
|
19
|
+
/**
|
|
20
|
+
* Parse --start-at argument from process.argv, or return null if not present.
|
|
21
|
+
*/
|
|
22
|
+
function getStartAtStep() {
|
|
23
|
+
const arg = process.argv.find((arg) => arg.startsWith("--start-at="));
|
|
24
|
+
return arg ? arg.split("=")[1] : null;
|
|
25
|
+
}
|
|
26
|
+
async function main() {
|
|
27
|
+
(0, albatross_1.printBanner)();
|
|
28
|
+
// Ensure Node.js is active via nvm if available
|
|
29
|
+
(0, nodeSetup_1.checkAndUseNode)();
|
|
30
|
+
// 1. Prompt for workspace name, destination directory, and git repo URL
|
|
31
|
+
const workspaceName = await (0, input_1.default)({
|
|
32
|
+
message: "Enter the workspace name (e.g. example-project):",
|
|
33
|
+
default: "example-project",
|
|
34
|
+
validate: (val) => /^[a-zA-Z0-9-]+$/.test(val)
|
|
35
|
+
? true
|
|
36
|
+
: "Invalid workspace name (letters, numbers, dashes only)",
|
|
37
|
+
});
|
|
38
|
+
const projectPrefix = await (0, input_1.default)({
|
|
39
|
+
message: "Enter the project prefix for sub-projects (e.g. example-project):",
|
|
40
|
+
default: "example-project",
|
|
41
|
+
validate: (val) => /^[a-z0-9-]+$/.test(val)
|
|
42
|
+
? true
|
|
43
|
+
: "Invalid prefix (lowercase letters, numbers, dashes only)",
|
|
44
|
+
});
|
|
45
|
+
const namespaceRoot = await (0, input_1.default)({
|
|
46
|
+
message: "Enter the npm namespace root (e.g. @example-project):",
|
|
47
|
+
default: "@example-project",
|
|
48
|
+
validate: (val) => /^@[a-z0-9-]+$/.test(val)
|
|
49
|
+
? true
|
|
50
|
+
: "Invalid namespace (must start with @, lowercase letters, numbers, dashes only)",
|
|
51
|
+
});
|
|
52
|
+
const defaultParentDir = process.cwd();
|
|
53
|
+
const parentDirInput = await (0, input_1.default)({
|
|
54
|
+
message: `Enter the parent directory where the workspace will be created (default: ${defaultParentDir}):`,
|
|
55
|
+
default: defaultParentDir,
|
|
56
|
+
validate: (val) => (val && val.length > 0 ? true : "Parent directory required"),
|
|
57
|
+
});
|
|
58
|
+
const parentDir = path.resolve(parentDirInput);
|
|
59
|
+
const monorepoPath = path.join(parentDir, workspaceName);
|
|
60
|
+
const templatesDir = path.resolve(process.cwd(), "templates");
|
|
61
|
+
const reactAppName = `${projectPrefix}-react`;
|
|
62
|
+
const apiAppName = `${projectPrefix}-api`;
|
|
63
|
+
const libName = `${projectPrefix}-lib`;
|
|
64
|
+
const reactImportPath = `${namespaceRoot}/react`;
|
|
65
|
+
const apiImportPath = `${namespaceRoot}/api`;
|
|
66
|
+
const libImportPath = `${namespaceRoot}/lib`;
|
|
67
|
+
const gitRepo = await (0, input_1.default)({
|
|
68
|
+
message: "Enter the git repository URL (optional):",
|
|
69
|
+
});
|
|
70
|
+
// Step control
|
|
71
|
+
const startAt = getStartAtStep();
|
|
72
|
+
const steps = [
|
|
73
|
+
"checkTargetDir",
|
|
74
|
+
"createMonorepo",
|
|
75
|
+
"setupGitOrigin",
|
|
76
|
+
"yarnBerrySetup",
|
|
77
|
+
"addNxPlugins",
|
|
78
|
+
"addYarnPackages",
|
|
79
|
+
"createReactApp",
|
|
80
|
+
"createApiApp",
|
|
81
|
+
"createLib",
|
|
82
|
+
"renderTemplates",
|
|
83
|
+
"copyScaffoldingFiles",
|
|
84
|
+
"createLicense",
|
|
85
|
+
"addScripts",
|
|
86
|
+
"initialCommit",
|
|
87
|
+
];
|
|
88
|
+
const stepFns = {
|
|
89
|
+
checkTargetDir: () => {
|
|
90
|
+
if (fs.existsSync(monorepoPath) && fs.readdirSync(monorepoPath).length > 0) {
|
|
91
|
+
console.error(`Error: Target directory "${monorepoPath}" already exists and is not empty. Please remove it or choose a different workspace name or parent directory.`);
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
createMonorepo: () => {
|
|
96
|
+
(0, shellUtils_1.runCommand)(`npx create-nx-workspace@latest "${workspaceName}" --package-manager=yarn --preset=apps --ci=${monorepoConfig_1.CI_PROVIDER}`, { cwd: parentDir });
|
|
97
|
+
},
|
|
98
|
+
setupGitOrigin: () => {
|
|
99
|
+
if (gitRepo) {
|
|
100
|
+
(0, shellUtils_1.runCommand)(`git remote add origin ${gitRepo}`, { cwd: monorepoPath });
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
yarnBerrySetup: () => {
|
|
104
|
+
(0, shellUtils_1.runCommand)(`yarn set version berry`, { cwd: monorepoPath });
|
|
105
|
+
(0, shellUtils_1.runCommand)(`yarn config set nodeLinker node-modules`, { cwd: monorepoPath });
|
|
106
|
+
(0, shellUtils_1.runCommand)(`yarn`, { cwd: monorepoPath });
|
|
107
|
+
},
|
|
108
|
+
addNxPlugins: () => {
|
|
109
|
+
(0, shellUtils_1.runCommand)(`yarn add -D @nx/react @nx/node`, { cwd: monorepoPath });
|
|
110
|
+
},
|
|
111
|
+
addYarnPackages: () => {
|
|
112
|
+
monorepoConfig_1.devPackages.length > 0 &&
|
|
113
|
+
(0, shellUtils_1.runCommand)(`yarn add -D ${monorepoConfig_1.devPackages.join(" ")}`, { cwd: monorepoPath });
|
|
114
|
+
monorepoConfig_1.packages.length > 0 &&
|
|
115
|
+
(0, shellUtils_1.runCommand)(`yarn add ${monorepoConfig_1.packages.join(" ")}`, { cwd: monorepoPath });
|
|
116
|
+
},
|
|
117
|
+
createReactApp: () => {
|
|
118
|
+
(0, shellUtils_1.runCommand)(`npx nx g @nx/react:application ${reactAppName} --style=${monorepoConfig_1.STYLE} --routing=true --bundler=${monorepoConfig_1.BUNDLER} --linter=${monorepoConfig_1.LINTER} --unitTestRunner=${monorepoConfig_1.UNIT_TEST_RUNNER} --e2eTestRunner=${monorepoConfig_1.E2E_TEST_RUNNER} --importPath=${reactImportPath}`, { cwd: monorepoPath });
|
|
119
|
+
},
|
|
120
|
+
createApiApp: () => {
|
|
121
|
+
(0, shellUtils_1.runCommand)(`npx nx g @nx/node:application ${apiAppName} --framework=${monorepoConfig_1.NODE_API_FRAMEWORK} --linter=${monorepoConfig_1.LINTER} --unitTestRunner=${monorepoConfig_1.UNIT_TEST_RUNNER} --e2eTestRunner=${monorepoConfig_1.NODE_API_E2E_TEST_RUNNER} --importPath=${apiImportPath}`, { cwd: monorepoPath });
|
|
122
|
+
},
|
|
123
|
+
createLib: () => {
|
|
124
|
+
(0, shellUtils_1.runCommand)(`npx nx g @nx/js:lib ${libName} --bundler=${monorepoConfig_1.LIB_BUNDLER} --linter=${monorepoConfig_1.LINTER} --unitTestRunner=${monorepoConfig_1.UNIT_TEST_RUNNER} --importPath=${libImportPath}`, { cwd: monorepoPath });
|
|
125
|
+
},
|
|
126
|
+
renderTemplates: () => {
|
|
127
|
+
(0, fsUtils_1.renderTemplates)(templatesDir, monorepoPath, {
|
|
128
|
+
WORKSPACE_NAME: workspaceName,
|
|
129
|
+
PROJECT_PREFIX: projectPrefix,
|
|
130
|
+
EXAMPLE_PASSWORD: (0, passwordObfuscator_1.obfuscatePassword)(projectPrefix),
|
|
131
|
+
EXAMPLE_JWT_SECRET: (0, passwordObfuscator_1.obfuscatePassword)(`${workspaceName}Secret`),
|
|
132
|
+
NAMESPACE_ROOT: namespaceRoot,
|
|
133
|
+
REACT_APP_NAME: reactAppName,
|
|
134
|
+
API_APP_NAME: apiAppName,
|
|
135
|
+
LIB_NAME: libName,
|
|
136
|
+
REACT_IMPORT_PATH: reactImportPath,
|
|
137
|
+
API_IMPORT_PATH: apiImportPath,
|
|
138
|
+
LIB_IMPORT_PATH: libImportPath,
|
|
139
|
+
GIT_REPO: gitRepo,
|
|
140
|
+
NVM_USE_VERSION: monorepoConfig_1.NVM_USE_VERSION,
|
|
141
|
+
YARN_VERSION: monorepoConfig_1.YARN_VERSION,
|
|
142
|
+
});
|
|
143
|
+
},
|
|
144
|
+
copyScaffoldingFiles: () => {
|
|
145
|
+
const scaffoldingDir = path.resolve(process.cwd(), "scaffolding");
|
|
146
|
+
(0, fsUtils_1.copyScaffoldingFiles)(scaffoldingDir, monorepoPath, reactAppName, libName);
|
|
147
|
+
},
|
|
148
|
+
createLicense: async () => {
|
|
149
|
+
await (0, licensePrompt_1.promptAndGenerateLicense)(monorepoPath);
|
|
150
|
+
},
|
|
151
|
+
addScripts: () => {
|
|
152
|
+
const packageJsonPath = path.join(monorepoPath, "package.json");
|
|
153
|
+
// Build a context object with all relevant variables
|
|
154
|
+
const context = {
|
|
155
|
+
workspaceName,
|
|
156
|
+
projectPrefix,
|
|
157
|
+
namespaceRoot,
|
|
158
|
+
reactAppName,
|
|
159
|
+
apiAppName,
|
|
160
|
+
libName,
|
|
161
|
+
reactImportPath,
|
|
162
|
+
apiImportPath,
|
|
163
|
+
libImportPath,
|
|
164
|
+
gitRepo,
|
|
165
|
+
};
|
|
166
|
+
// Interpolate all variables in addScripts using the context
|
|
167
|
+
const interpolatedScripts = {};
|
|
168
|
+
for (const [k, v] of Object.entries(monorepoConfig_1.addScripts)) {
|
|
169
|
+
interpolatedScripts[k] = (0, templateUtils_1.interpolateTemplateStrings)(v, context);
|
|
170
|
+
}
|
|
171
|
+
(0, addScriptsToPackageJson_1.addScriptsToPackageJson)(packageJsonPath, interpolatedScripts);
|
|
172
|
+
console.log("Scripts added to package.json.");
|
|
173
|
+
},
|
|
174
|
+
initialCommit: async () => {
|
|
175
|
+
const doCommit = await (0, select_1.default)({
|
|
176
|
+
message: "Would you like to make an initial git commit?",
|
|
177
|
+
choices: [
|
|
178
|
+
{ name: "Yes", value: "yes" },
|
|
179
|
+
{ name: "No", value: "no" },
|
|
180
|
+
],
|
|
181
|
+
default: "yes",
|
|
182
|
+
});
|
|
183
|
+
if (doCommit === "yes") {
|
|
184
|
+
(0, shellUtils_1.runCommand)("git add -A", { cwd: monorepoPath });
|
|
185
|
+
(0, shellUtils_1.runCommand)('git commit -m "Initial commit"', { cwd: monorepoPath });
|
|
186
|
+
console.log("Initial commit created.");
|
|
187
|
+
const doPush = await (0, select_1.default)({
|
|
188
|
+
message: "Would you like to push to the remote repository?",
|
|
189
|
+
choices: [
|
|
190
|
+
{ name: "Yes", value: "yes" },
|
|
191
|
+
{ name: "No", value: "no" },
|
|
192
|
+
],
|
|
193
|
+
default: "yes",
|
|
194
|
+
});
|
|
195
|
+
if (doPush === "yes") {
|
|
196
|
+
(0, shellUtils_1.runCommand)("git push --set-upstream origin main", { cwd: monorepoPath });
|
|
197
|
+
console.log("Pushed to remote repository and set upstream for main branch.");
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
console.log("Push skipped.");
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
console.log("Initial commit skipped.");
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
};
|
|
208
|
+
// Find the index to start at
|
|
209
|
+
const startIndex = startAt ? steps.indexOf(startAt) : 0;
|
|
210
|
+
if (startIndex === -1) {
|
|
211
|
+
console.error(`Invalid --start-at value: ${startAt}. Valid steps: ${steps.join(", ")}`);
|
|
212
|
+
process.exit(1);
|
|
213
|
+
}
|
|
214
|
+
// Run steps in order from startIndex
|
|
215
|
+
for (let i = startIndex; i < steps.length; i++) {
|
|
216
|
+
const fn = stepFns[steps[i]];
|
|
217
|
+
if (fn) {
|
|
218
|
+
await fn();
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
console.log("\nMonorepo setup complete!");
|
|
222
|
+
}
|
|
223
|
+
main().catch((err) => {
|
|
224
|
+
console.error(err);
|
|
225
|
+
process.exit(1);
|
|
226
|
+
});
|
|
227
|
+
//# sourceMappingURL=generate-monorepo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-monorepo.js","sourceRoot":"","sources":["../../scripts/generate-monorepo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"licensePrompt.d.ts","sourceRoot":"","sources":["../../scripts/licensePrompt.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDlF"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.promptAndGenerateLicense = promptAndGenerateLicense;
|
|
7
|
+
const select_1 = __importDefault(require("@inquirer/select"));
|
|
8
|
+
const fs = require("fs");
|
|
9
|
+
const path = require("path");
|
|
10
|
+
const https = require("https");
|
|
11
|
+
/**
|
|
12
|
+
* Prompts the user for a license and generates the LICENSE file in the monorepo.
|
|
13
|
+
*/
|
|
14
|
+
async function promptAndGenerateLicense(monorepoPath) {
|
|
15
|
+
const licenseChoices = [
|
|
16
|
+
{ name: "MIT", value: "mit" },
|
|
17
|
+
{ name: "Apache 2.0", value: "apache-2.0" },
|
|
18
|
+
{ name: "GPL v3.0", value: "gpl-3.0" },
|
|
19
|
+
{ name: "BSD 3-Clause", value: "bsd-3-clause" },
|
|
20
|
+
{ name: "MPL 2.0", value: "mpl-2.0" },
|
|
21
|
+
{ name: "Unlicense", value: "unlicense" },
|
|
22
|
+
{ name: "None", value: "" },
|
|
23
|
+
];
|
|
24
|
+
const licenseKey = await (0, select_1.default)({
|
|
25
|
+
message: "Choose a license to add to the project (optional):",
|
|
26
|
+
choices: licenseChoices.map((l) => ({ name: l.name, value: l.value })),
|
|
27
|
+
default: "mit",
|
|
28
|
+
});
|
|
29
|
+
if (licenseKey) {
|
|
30
|
+
const licenseUrl = `https://api.github.com/licenses/${licenseKey}`;
|
|
31
|
+
const licenseText = await new Promise((resolve, reject) => {
|
|
32
|
+
https.get(licenseUrl, {
|
|
33
|
+
headers: {
|
|
34
|
+
"User-Agent": "project-generator",
|
|
35
|
+
"Accept": "application/vnd.github.v3+json",
|
|
36
|
+
},
|
|
37
|
+
}, (res) => {
|
|
38
|
+
let data = "";
|
|
39
|
+
res.on("data", (chunk) => (data += chunk));
|
|
40
|
+
res.on("end", () => {
|
|
41
|
+
try {
|
|
42
|
+
const json = JSON.parse(data);
|
|
43
|
+
if (json.body) {
|
|
44
|
+
resolve(json.body);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
reject(new Error("License text not found in GitHub API response."));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (e) {
|
|
51
|
+
reject(e);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}).on("error", reject);
|
|
55
|
+
});
|
|
56
|
+
fs.writeFileSync(path.join(monorepoPath, "LICENSE"), licenseText, "utf8");
|
|
57
|
+
console.log(`LICENSE file created with ${licenseKey.toUpperCase()} license.`);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
console.log("No license selected. Skipping LICENSE file creation.");
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=licensePrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"licensePrompt.js","sourceRoot":"","sources":["../../scripts/licensePrompt.ts"],"names":[],"mappings":";;;;;AAQA,4DAoDC;AA5DD,8DAAsC;AACtC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/B;;GAEG;AACI,KAAK,UAAU,wBAAwB,CAAC,YAAoB;IACjE,MAAM,cAAc,GAAG;QACrB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC7B,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;QAC3C,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE;QACtC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;QAC/C,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;QACrC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;QACzC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;KAC5B,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,IAAA,gBAAM,EAAC;QAC9B,OAAO,EAAE,oDAAoD;QAC7D,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACtE,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,mCAAmC,UAAU,EAAE,CAAC;QACnE,MAAM,WAAW,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAChE,KAAK,CAAC,GAAG,CACP,UAAU,EACV;gBACE,OAAO,EAAE;oBACP,YAAY,EAAE,mBAAmB;oBACjC,QAAQ,EAAE,gCAAgC;iBAC3C;aACF,EACD,CAAC,GAAmC,EAAE,EAAE;gBACtC,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;gBACnD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;4BACd,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACrB,CAAC;6BAAM,CAAC;4BACN,MAAM,CACJ,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAC5D,CAAC;wBACJ,CAAC;oBACH,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,MAAM,CAAC,CAAC,CAAC,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CACF,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,6BAA6B,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAChF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Monorepo generator configuration and package lists.
|
|
3
|
+
*/
|
|
4
|
+
export declare const LINTER = "eslint";
|
|
5
|
+
export declare const UNIT_TEST_RUNNER = "jest";
|
|
6
|
+
export declare const E2E_TEST_RUNNER = "playwright";
|
|
7
|
+
export declare const STYLE = "scss";
|
|
8
|
+
export declare const BUNDLER = "vite";
|
|
9
|
+
export declare const CI_PROVIDER = "github";
|
|
10
|
+
export declare const NODE_API_E2E_TEST_RUNNER = "jest";
|
|
11
|
+
export declare const NODE_API_FRAMEWORK = "express";
|
|
12
|
+
export declare const LIB_BUNDLER = "none";
|
|
13
|
+
export declare const NVM_USE_VERSION = "22";
|
|
14
|
+
export declare const YARN_VERSION = "4.11.0";
|
|
15
|
+
export declare const devPackages: string[];
|
|
16
|
+
export declare const packages: string[];
|
|
17
|
+
export declare const addScripts: Record<string, string>;
|
|
18
|
+
//# sourceMappingURL=monorepoConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monorepoConfig.d.ts","sourceRoot":"","sources":["../../scripts/monorepoConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,gBAAgB,SAAS,CAAC;AACvC,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,KAAK,SAAS,CAAC;AAC5B,eAAO,MAAM,OAAO,SAAS,CAAC;AAC9B,eAAO,MAAM,WAAW,WAAW,CAAC;AACpC,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAC/C,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,WAAW,SAAS,CAAC;AAClC,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,YAAY,WAAW,CAAC;AAErC,eAAO,MAAM,WAAW,EAAE,MAAM,EAoB/B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,MAAM,EAmB5B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAuB7C,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Monorepo generator configuration and package lists.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.addScripts = exports.packages = exports.devPackages = exports.YARN_VERSION = exports.NVM_USE_VERSION = exports.LIB_BUNDLER = exports.NODE_API_FRAMEWORK = exports.NODE_API_E2E_TEST_RUNNER = exports.CI_PROVIDER = exports.BUNDLER = exports.STYLE = exports.E2E_TEST_RUNNER = exports.UNIT_TEST_RUNNER = exports.LINTER = void 0;
|
|
7
|
+
exports.LINTER = "eslint";
|
|
8
|
+
exports.UNIT_TEST_RUNNER = "jest";
|
|
9
|
+
exports.E2E_TEST_RUNNER = "playwright";
|
|
10
|
+
exports.STYLE = "scss";
|
|
11
|
+
exports.BUNDLER = "vite";
|
|
12
|
+
exports.CI_PROVIDER = "github";
|
|
13
|
+
exports.NODE_API_E2E_TEST_RUNNER = "jest";
|
|
14
|
+
exports.NODE_API_FRAMEWORK = "express";
|
|
15
|
+
exports.LIB_BUNDLER = "none";
|
|
16
|
+
exports.NVM_USE_VERSION = "22";
|
|
17
|
+
exports.YARN_VERSION = "4.11.0";
|
|
18
|
+
exports.devPackages = [
|
|
19
|
+
'@digitaldefiance/express-suite-test-utils@1.0.3',
|
|
20
|
+
'@typescript-eslint/eslint-plugin',
|
|
21
|
+
'@typescript-eslint/parser',
|
|
22
|
+
'eslint-config-prettier',
|
|
23
|
+
'eslint-plugin-prettier',
|
|
24
|
+
'eslint-plugin-react',
|
|
25
|
+
'eslint-plugin-react-hooks',
|
|
26
|
+
'eslint-plugin-import',
|
|
27
|
+
'eslint-plugin-jsx-a11y',
|
|
28
|
+
'eslint-plugin-playwright',
|
|
29
|
+
'mongodb-memory-server',
|
|
30
|
+
'supertest',
|
|
31
|
+
'@types/cors',
|
|
32
|
+
'@types/express',
|
|
33
|
+
'@types/jsonwebtoken',
|
|
34
|
+
'@types/supertest',
|
|
35
|
+
'@types/node',
|
|
36
|
+
'@types/react',
|
|
37
|
+
'@types/react-dom'
|
|
38
|
+
];
|
|
39
|
+
exports.packages = [
|
|
40
|
+
'@digitaldefiance/node-express-suite@2.1.25',
|
|
41
|
+
'@digitaldefiance/ecies-lib@2.1.26',
|
|
42
|
+
'@digitaldefiance/node-ecies-lib@2.1.27',
|
|
43
|
+
'@digitaldefiance/i18n-lib@2.1.25',
|
|
44
|
+
'@digitaldefiance/suite-core-lib@2.1.25',
|
|
45
|
+
'@emotion/react',
|
|
46
|
+
'@emotion/styled',
|
|
47
|
+
'@mui/icons-material',
|
|
48
|
+
'@mui/material',
|
|
49
|
+
'@mui/system',
|
|
50
|
+
'axios',
|
|
51
|
+
'cors',
|
|
52
|
+
'dotenv',
|
|
53
|
+
'express',
|
|
54
|
+
'helmet',
|
|
55
|
+
'jsonwebtoken',
|
|
56
|
+
'mongodb',
|
|
57
|
+
'mongoose',
|
|
58
|
+
];
|
|
59
|
+
exports.addScripts = {
|
|
60
|
+
"build": "NODE_ENV=production npx nx run-many --target=build --all --configuration=production && yarn postbuild",
|
|
61
|
+
"build:dev": "NODE_ENV=development npx nx run-many --target=build --all --configuration=development && yarn postbuild",
|
|
62
|
+
"build:api": `npx nx build \${apiAppName} && yarn postbuild`,
|
|
63
|
+
"build:api:dev": `npx nx build \${apiAppName} --configuration development && yarn postbuild`,
|
|
64
|
+
"build:react": `npx nx build \${reactAppName}`,
|
|
65
|
+
"build:react:dev": `npx nx build \${reactAppName} --configuration development`,
|
|
66
|
+
"test:all": "yarn test:jest && yarn test:e2e",
|
|
67
|
+
"test:jest": "NODE_ENV=development npx nx run-many --target=test --all --configuration=development",
|
|
68
|
+
"test:e2e": `npx nx e2e \${apiAppName}-e2e --runInBand`,
|
|
69
|
+
"test:e2e:single": `npx nx e2e \${apiAppName}-e2e --runInBand --testFile`,
|
|
70
|
+
"serve": `npx nx serve \${apiAppName} --configuration production`,
|
|
71
|
+
"serve:dev": `npx nx serve \${apiAppName} --configuration development`,
|
|
72
|
+
"build-serve:dev": "yarn build:dev && yarn serve:dev",
|
|
73
|
+
"postbuild": `cp ./\${apiAppName}/.env ./dist/\${apiAppName}/.env`,
|
|
74
|
+
"npm:install-globals": "./npm-install-globals.sh",
|
|
75
|
+
"lint:all": "npx nx run-many --target=lint --all",
|
|
76
|
+
"prettier:check": "prettier --check '**/*.{ts,tsx}'",
|
|
77
|
+
"prettier:fix": "prettier --write '**/*.{ts,tsx}'",
|
|
78
|
+
"migrate:latest": "npx nx migrate latest",
|
|
79
|
+
"migrate:run-migrations": "npx nx migrate --run-migrations",
|
|
80
|
+
"upgrade:all": "./do-yarn.sh upgrade",
|
|
81
|
+
"commands": "./list-scripts.sh"
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=monorepoConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monorepoConfig.js","sourceRoot":"","sources":["../../scripts/monorepoConfig.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,MAAM,GAAG,QAAQ,CAAC;AAClB,QAAA,gBAAgB,GAAG,MAAM,CAAC;AAC1B,QAAA,eAAe,GAAG,YAAY,CAAC;AAC/B,QAAA,KAAK,GAAG,MAAM,CAAC;AACf,QAAA,OAAO,GAAG,MAAM,CAAC;AACjB,QAAA,WAAW,GAAG,QAAQ,CAAC;AACvB,QAAA,wBAAwB,GAAG,MAAM,CAAC;AAClC,QAAA,kBAAkB,GAAG,SAAS,CAAC;AAC/B,QAAA,WAAW,GAAG,MAAM,CAAC;AACrB,QAAA,eAAe,GAAG,IAAI,CAAC;AACvB,QAAA,YAAY,GAAG,QAAQ,CAAC;AAExB,QAAA,WAAW,GAAa;IACnC,iDAAiD;IACjD,kCAAkC;IAClC,2BAA2B;IAC3B,wBAAwB;IACxB,wBAAwB;IACxB,qBAAqB;IACrB,2BAA2B;IAC3B,sBAAsB;IACtB,wBAAwB;IACxB,0BAA0B;IAC1B,uBAAuB;IACvB,WAAW;IACX,aAAa;IACb,gBAAgB;IAChB,qBAAqB;IACrB,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,kBAAkB;CACnB,CAAC;AAEW,QAAA,QAAQ,GAAa;IAChC,4CAA4C;IAC5C,mCAAmC;IACnC,wCAAwC;IACxC,kCAAkC;IAClC,wCAAwC;IACxC,gBAAgB;IAChB,iBAAiB;IACjB,qBAAqB;IACrB,eAAe;IACf,aAAa;IACb,OAAO;IACP,MAAM;IACN,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,cAAc;IACd,SAAS;IACT,UAAU;CACX,CAAC;AAEW,QAAA,UAAU,GAA2B;IAChD,OAAO,EAAE,uGAAuG;IAChH,WAAW,EAAE,yGAAyG;IACtH,WAAW,EAAE,+CAA+C;IAC5D,eAAe,EAAE,2EAA2E;IAC5F,aAAa,EAAE,+BAA+B;IAC9C,iBAAiB,EAAE,2DAA2D;IAC9E,UAAU,EAAE,iCAAiC;IAC7C,WAAW,EAAE,sFAAsF;IACnG,UAAU,EAAE,2CAA2C;IACvD,iBAAiB,EAAE,sDAAsD;IACzE,OAAO,EAAE,wDAAwD;IACjE,WAAW,EAAE,yDAAyD;IACtE,iBAAiB,EAAE,kCAAkC;IACrD,WAAW,EAAE,qDAAqD;IAClE,qBAAqB,EAAE,0BAA0B;IACjD,UAAU,EAAE,qCAAqC;IACjD,gBAAgB,EAAE,kCAAkC;IACpD,cAAc,EAAE,kCAAkC;IAClD,gBAAgB,EAAE,uBAAuB;IACzC,wBAAwB,EAAE,iCAAiC;IAC3D,aAAa,EAAE,sBAAsB;IACrC,UAAU,EAAE,mBAAmB;CAChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeSetup.d.ts","sourceRoot":"","sources":["../../scripts/nodeSetup.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,eAAe,SAqB9B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkAndUseNode = checkAndUseNode;
|
|
4
|
+
const monorepoConfig_1 = require("./monorepoConfig");
|
|
5
|
+
/**
|
|
6
|
+
* Ensures Node.js is active via nvm if available, and sets up corepack/yarn.
|
|
7
|
+
*/
|
|
8
|
+
function checkAndUseNode() {
|
|
9
|
+
const { execSync } = require("child_process");
|
|
10
|
+
const process = require("process");
|
|
11
|
+
// Try to source nvm and use node NVM_USE_VERSION in a subshell
|
|
12
|
+
const nvmDir = process.env.NVM_DIR || `${process.env.HOME}/.nvm`;
|
|
13
|
+
const nvmScript = `${nvmDir}/nvm.sh`;
|
|
14
|
+
const shellCmd = `[ -s "${nvmScript}" ] && . "${nvmScript}" && nvm install ${monorepoConfig_1.NVM_USE_VERSION} && nvm use ${monorepoConfig_1.NVM_USE_VERSION}`;
|
|
15
|
+
try {
|
|
16
|
+
execSync(shellCmd, { stdio: "inherit", shell: "/bin/bash" });
|
|
17
|
+
console.log(`\nUsed nvm to ensure Node.js ${monorepoConfig_1.NVM_USE_VERSION} is installed and active.`);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
console.warn(`nvm not found or failed to activate Node.js ${monorepoConfig_1.NVM_USE_VERSION}. Please ensure Node.js ${monorepoConfig_1.NVM_USE_VERSION} is active before running this script.`);
|
|
21
|
+
}
|
|
22
|
+
// Enable corepack and prepare yarn
|
|
23
|
+
try {
|
|
24
|
+
execSync("corepack enable", { stdio: "inherit" });
|
|
25
|
+
execSync("corepack prepare yarn@stable --activate", { stdio: "inherit" });
|
|
26
|
+
console.log("Corepack enabled and Yarn set up.");
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
console.warn("Failed to enable corepack or set up Yarn. Please ensure corepack and yarn are available.");
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=nodeSetup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeSetup.js","sourceRoot":"","sources":["../../scripts/nodeSetup.ts"],"names":[],"mappings":";;AAKA,0CAqBC;AA1BD,qDAAmD;AAEnD;;GAEG;AACH,SAAgB,eAAe;IAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,+DAA+D;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC;IACjE,MAAM,SAAS,GAAG,GAAG,MAAM,SAAS,CAAC;IACrC,MAAM,QAAQ,GAAG,SAAS,SAAS,aAAa,SAAS,oBAAoB,gCAAe,eAAe,gCAAe,EAAE,CAAC;IAC7H,IAAI,CAAC;QACH,QAAQ,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,gCAAgC,gCAAe,2BAA2B,CAAC,CAAC;IAC1F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,+CAA+C,gCAAe,2BAA2B,gCAAe,wCAAwC,CAAC,CAAC;IACjK,CAAC;IACD,mCAAmC;IACnC,IAAI,CAAC;QACH,QAAQ,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAClD,QAAQ,CAAC,yCAAyC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAC;IAC3G,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Obfuscates a string for password generation by randomly replacing certain characters
|
|
3
|
+
* with symbol equivalents. Only some characters are replaced, so the result is partially
|
|
4
|
+
* obfuscated and still recognizable.
|
|
5
|
+
*
|
|
6
|
+
* Example mappings:
|
|
7
|
+
* S -> 5, A -> @, C -> (, I -> !, O -> 0, E -> 3, T -> 7, B -> 8, G -> 6, Z -> 2
|
|
8
|
+
*
|
|
9
|
+
* @param input The string to obfuscate (e.g., project name)
|
|
10
|
+
* @param probability Probability (0-1) to obfuscate each eligible character (default: 0.5)
|
|
11
|
+
* @returns Obfuscated string
|
|
12
|
+
*/
|
|
13
|
+
export declare function obfuscatePassword(input: string, probability?: number): string;
|
|
14
|
+
//# sourceMappingURL=passwordObfuscator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"passwordObfuscator.d.ts","sourceRoot":"","sources":["../../scripts/passwordObfuscator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,SAAM,GAAG,MAAM,CAoC1E"}
|