nestia 11.0.0-dev.20260305 → 11.0.0-dev.20260312

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 (36) hide show
  1. package/bin/NestiaSetupWizard.d.ts +3 -0
  2. package/bin/NestiaSetupWizard.js +98 -0
  3. package/bin/NestiaSetupWizard.js.map +1 -0
  4. package/bin/NestiaStarter.d.ts +3 -0
  5. package/bin/NestiaStarter.js +49 -0
  6. package/bin/NestiaStarter.js.map +1 -0
  7. package/bin/NestiaTemplate.d.ts +3 -0
  8. package/bin/NestiaTemplate.js +46 -0
  9. package/bin/NestiaTemplate.js.map +1 -0
  10. package/bin/index.d.ts +4 -0
  11. package/bin/index.js +107 -0
  12. package/bin/index.js.map +1 -0
  13. package/bin/internal/ArgumentParser.d.ts +9 -0
  14. package/bin/internal/ArgumentParser.js +106 -0
  15. package/bin/internal/ArgumentParser.js.map +1 -0
  16. package/bin/internal/CommandExecutor.d.ts +3 -0
  17. package/bin/internal/CommandExecutor.js +16 -0
  18. package/bin/internal/CommandExecutor.js.map +1 -0
  19. package/bin/internal/FileRetriever.d.ts +4 -0
  20. package/bin/internal/FileRetriever.js +28 -0
  21. package/bin/internal/FileRetriever.js.map +1 -0
  22. package/bin/internal/PackageManager.d.ts +25 -0
  23. package/bin/internal/PackageManager.js +76 -0
  24. package/bin/internal/PackageManager.js.map +1 -0
  25. package/bin/internal/PluginConfigurator.d.ts +4 -0
  26. package/bin/internal/PluginConfigurator.js +99 -0
  27. package/bin/internal/PluginConfigurator.js.map +1 -0
  28. package/package.json +3 -3
  29. package/src/NestiaSetupWizard.ts +90 -90
  30. package/src/NestiaStarter.ts +41 -41
  31. package/src/NestiaTemplate.ts +37 -37
  32. package/src/internal/ArgumentParser.ts +123 -123
  33. package/src/internal/CommandExecutor.ts +8 -8
  34. package/src/internal/FileRetriever.ts +22 -22
  35. package/src/internal/PackageManager.ts +91 -91
  36. package/src/internal/PluginConfigurator.ts +125 -125
@@ -0,0 +1,3 @@
1
+ export declare namespace NestiaSetupWizard {
2
+ function setup(): Promise<void>;
3
+ }
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.NestiaSetupWizard = void 0;
16
+ const fs_1 = __importDefault(require("fs"));
17
+ const ArgumentParser_1 = require("./internal/ArgumentParser");
18
+ const CommandExecutor_1 = require("./internal/CommandExecutor");
19
+ const PackageManager_1 = require("./internal/PackageManager");
20
+ const PluginConfigurator_1 = require("./internal/PluginConfigurator");
21
+ var NestiaSetupWizard;
22
+ (function (NestiaSetupWizard) {
23
+ function setup() {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ var _a;
26
+ console.log("----------------------------------------");
27
+ console.log(" Nestia Setup Wizard");
28
+ console.log("----------------------------------------");
29
+ // PREPARE ASSETS
30
+ const pack = yield PackageManager_1.PackageManager.mount();
31
+ const args = yield ArgumentParser_1.ArgumentParser.parse(pack);
32
+ // INSTALL NESTIA
33
+ pack.install({ dev: false, modulo: "@nestia/core", version: "latest" });
34
+ pack.install({ dev: false, modulo: "@nestia/e2e", version: "latest" });
35
+ pack.install({ dev: false, modulo: "@nestia/fetcher", version: "latest" });
36
+ pack.install({
37
+ dev: args.runtime === false,
38
+ modulo: "@nestia/sdk",
39
+ version: "latest",
40
+ });
41
+ pack.install({ dev: true, modulo: "@nestia/benchmark", version: "latest" });
42
+ pack.install({ dev: true, modulo: "nestia", version: "latest" });
43
+ pack.install({ dev: false, modulo: "typia", version: "latest" });
44
+ // INSTALL TYPESCRIPT COMPILERS
45
+ pack.install({ dev: true, modulo: "ts-patch", version: "latest" });
46
+ pack.install({ dev: true, modulo: "ts-node", version: "latest" });
47
+ pack.install({
48
+ dev: true,
49
+ modulo: "typescript",
50
+ version: yield getTypeScriptVersion(),
51
+ });
52
+ (_a = args.project) !== null && _a !== void 0 ? _a : (args.project = (() => {
53
+ const runner = pack.manager === "npm" ? "npx" : pack.manager;
54
+ CommandExecutor_1.CommandExecutor.run(`${runner} tsc --init`);
55
+ return (args.project = "tsconfig.json");
56
+ })());
57
+ // SETUP TRANSFORMER
58
+ yield pack.save((data) => {
59
+ var _a;
60
+ // COMPOSE PREPARE COMMAND
61
+ (_a = data.scripts) !== null && _a !== void 0 ? _a : (data.scripts = {});
62
+ if (typeof data.scripts.prepare === "string" &&
63
+ data.scripts.prepare.trim().length !== 0) {
64
+ if (data.scripts.prepare.includes("ts-patch install") === false)
65
+ data.scripts.prepare = "ts-patch install && " + data.scripts.prepare;
66
+ }
67
+ else
68
+ data.scripts.prepare = "ts-patch install";
69
+ // NO MORE "typia patch" REQUIRED
70
+ data.scripts.prepare = data.scripts.prepare
71
+ .split("&&")
72
+ .map((str) => str.trim())
73
+ .filter((str) => str !== "typia patch")
74
+ .join(" && ");
75
+ // FOR OLDER VERSIONS
76
+ if (typeof data.scripts.postinstall === "string") {
77
+ data.scripts.postinstall = data.scripts.postinstall
78
+ .split("&&")
79
+ .map((str) => str.trim())
80
+ .filter((str) => str.indexOf("ts-patch install") === -1)
81
+ .join(" && ");
82
+ if (data.scripts.postinstall.length === 0)
83
+ delete data.scripts.postinstall;
84
+ }
85
+ });
86
+ CommandExecutor_1.CommandExecutor.run(`${pack.manager} run prepare`);
87
+ // CONFIGURE PLUGIN
88
+ yield PluginConfigurator_1.PluginConfigurator.configure(args);
89
+ });
90
+ }
91
+ NestiaSetupWizard.setup = setup;
92
+ const getTypeScriptVersion = () => __awaiter(this, void 0, void 0, function* () {
93
+ const content = yield fs_1.default.promises.readFile(`${__dirname}/../package.json`, "utf-8");
94
+ const json = JSON.parse(content);
95
+ return json.devDependencies.typescript;
96
+ });
97
+ })(NestiaSetupWizard || (exports.NestiaSetupWizard = NestiaSetupWizard = {}));
98
+ //# sourceMappingURL=NestiaSetupWizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NestiaSetupWizard.js","sourceRoot":"","sources":["../src/NestiaSetupWizard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare namespace NestiaStarter {
2
+ const clone: (halter: (msg?: string) => never) => (argv: string[]) => Promise<void>;
3
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.NestiaStarter = void 0;
16
+ const child_process_1 = __importDefault(require("child_process"));
17
+ const fs_1 = __importDefault(require("fs"));
18
+ var NestiaStarter;
19
+ (function (NestiaStarter) {
20
+ NestiaStarter.clone = (halter) => (argv) => __awaiter(this, void 0, void 0, function* () {
21
+ // VALIDATION
22
+ const dest = argv[0];
23
+ if (dest === undefined)
24
+ halter();
25
+ else if (fs_1.default.existsSync(dest) === true)
26
+ halter("The target directory already exists.");
27
+ console.log("-----------------------------------------");
28
+ console.log(" Nestia Starter Kit");
29
+ console.log("-----------------------------------------");
30
+ // COPY PROJECTS
31
+ execute(`git clone https://github.com/samchon/nestia-template ${dest}`);
32
+ console.log(`cd "${dest}"`);
33
+ process.chdir(dest);
34
+ // INSTALL DEPENDENCIES
35
+ execute("npm install");
36
+ // BUILD TYPESCRIPT
37
+ execute("npm run build");
38
+ // DO TEST
39
+ execute("npm run test");
40
+ // REMOVE .GIT DIRECTORY
41
+ child_process_1.default.execSync("npx rimraf .git");
42
+ child_process_1.default.execSync("npx rimraf .github/dependabot.yml");
43
+ });
44
+ function execute(command) {
45
+ console.log(`\n$ ${command}`);
46
+ child_process_1.default.execSync(command, { stdio: "inherit" });
47
+ }
48
+ })(NestiaStarter || (exports.NestiaStarter = NestiaStarter = {}));
49
+ //# sourceMappingURL=NestiaStarter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NestiaStarter.js","sourceRoot":"","sources":["../src/NestiaStarter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kEAA+B;AAC/B,4CAAoB;AAEpB,IAAiB,aAAa,CAqC7B;AArCD,WAAiB,aAAa;IACf,mBAAK,GAChB,CAAC,MAA+B,EAAE,EAAE,CACpC,CAAO,IAAc,EAAiB,EAAE;QACtC,aAAa;QACb,MAAM,IAAI,GAAuB,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,EAAE,CAAC;aAC5B,IAAI,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI;YACnC,MAAM,CAAC,sCAAsC,CAAC,CAAC;QAEjD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAEzD,gBAAgB;QAChB,OAAO,CAAC,wDAAwD,IAAI,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpB,uBAAuB;QACvB,OAAO,CAAC,aAAa,CAAC,CAAC;QAEvB,mBAAmB;QACnB,OAAO,CAAC,eAAe,CAAC,CAAC;QAEzB,UAAU;QACV,OAAO,CAAC,cAAc,CAAC,CAAC;QAExB,wBAAwB;QACxB,uBAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC/B,uBAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC,CAAA,CAAC;IAEJ,SAAS,OAAO,CAAC,OAAe;QAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;QAC9B,uBAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC,EArCgB,aAAa,6BAAb,aAAa,QAqC7B"}
@@ -0,0 +1,3 @@
1
+ export declare namespace NestiaTemplate {
2
+ const clone: (halter: (msg?: string) => never) => (argv: string[]) => Promise<void>;
3
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.NestiaTemplate = void 0;
16
+ const child_process_1 = __importDefault(require("child_process"));
17
+ const fs_1 = __importDefault(require("fs"));
18
+ var NestiaTemplate;
19
+ (function (NestiaTemplate) {
20
+ NestiaTemplate.clone = (halter) => (argv) => __awaiter(this, void 0, void 0, function* () {
21
+ // VALIDATION
22
+ const dest = argv[0];
23
+ if (dest === undefined)
24
+ halter();
25
+ else if (fs_1.default.existsSync(dest) === true)
26
+ halter("The target directory already exists.");
27
+ console.log("-----------------------------------------");
28
+ console.log(" Nestia Template Kit");
29
+ console.log("-----------------------------------------");
30
+ // COPY PROJECTS
31
+ execute(`git clone https://github.com/samchon/backend ${dest}`);
32
+ console.log(`cd "${dest}"`);
33
+ process.chdir(dest);
34
+ // INSTALL DEPENDENCIES
35
+ execute("npm install");
36
+ // BUILD TYPESCRIPT
37
+ execute("npm run build");
38
+ // REMOVE .GIT DIRECTORY
39
+ child_process_1.default.execSync("npx rimraf .git");
40
+ });
41
+ function execute(command) {
42
+ console.log(`\n$ ${command}`);
43
+ child_process_1.default.execSync(command, { stdio: "inherit" });
44
+ }
45
+ })(NestiaTemplate || (exports.NestiaTemplate = NestiaTemplate = {}));
46
+ //# sourceMappingURL=NestiaTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NestiaTemplate.js","sourceRoot":"","sources":["../src/NestiaTemplate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kEAA+B;AAC/B,4CAAoB;AAEpB,IAAiB,cAAc,CAiC9B;AAjCD,WAAiB,cAAc;IAChB,oBAAK,GAChB,CAAC,MAA+B,EAAE,EAAE,CACpC,CAAO,IAAc,EAAiB,EAAE;QACtC,aAAa;QACb,MAAM,IAAI,GAAuB,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,EAAE,CAAC;aAC5B,IAAI,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI;YACnC,MAAM,CAAC,sCAAsC,CAAC,CAAC;QAEjD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAEzD,gBAAgB;QAChB,OAAO,CAAC,gDAAgD,IAAI,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpB,uBAAuB;QACvB,OAAO,CAAC,aAAa,CAAC,CAAC;QAEvB,mBAAmB;QACnB,OAAO,CAAC,eAAe,CAAC,CAAC;QAEzB,wBAAwB;QACxB,uBAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACjC,CAAC,CAAA,CAAC;IAEJ,SAAS,OAAO,CAAC,OAAe;QAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;QAC9B,uBAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC,EAjCgB,cAAc,8BAAd,cAAc,QAiC9B"}
package/bin/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ declare const USAGE = "Wrong command has been detected. Use like below:\n\nnpx nestia [command] [options?]\n\n 1. npx nestia start <directory>\n 2. npx nestia template <directory>\n 3. npx nestia setup\n 4. npx nestia dependencies\n 5. npx nestia init\n 6. npx nestia sdk\n 7. npx nestia swagger\n 9. npx nestia e2e\n 10. npx nestia all\n";
3
+ declare function halt(desc: string): never;
4
+ declare function main(): Promise<void>;
package/bin/index.js ADDED
@@ -0,0 +1,107 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
+ return new (P || (P = Promise))(function (resolve, reject) {
39
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
43
+ });
44
+ };
45
+ const USAGE = `Wrong command has been detected. Use like below:
46
+
47
+ npx nestia [command] [options?]
48
+
49
+ 1. npx nestia start <directory>
50
+ 2. npx nestia template <directory>
51
+ 3. npx nestia setup
52
+ 4. npx nestia dependencies
53
+ 5. npx nestia init
54
+ 6. npx nestia sdk
55
+ 7. npx nestia swagger
56
+ 9. npx nestia e2e
57
+ 10. npx nestia all
58
+ `;
59
+ function halt(desc) {
60
+ console.error(desc);
61
+ process.exit(-1);
62
+ }
63
+ function main() {
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ const type = process.argv[2];
66
+ const argv = process.argv.slice(3);
67
+ if (type === "start") {
68
+ yield (yield Promise.resolve().then(() => __importStar(require("./NestiaStarter")))).NestiaStarter.clone((msg) => halt(msg !== null && msg !== void 0 ? msg : USAGE))(argv);
69
+ }
70
+ else if (type === "template") {
71
+ yield (yield Promise.resolve().then(() => __importStar(require("./NestiaTemplate")))).NestiaTemplate.clone((msg) => halt(msg !== null && msg !== void 0 ? msg : USAGE))(argv);
72
+ }
73
+ else if (type === "setup") {
74
+ try {
75
+ yield Promise.resolve().then(() => __importStar(require("comment-json")));
76
+ yield Promise.resolve().then(() => __importStar(require("inquirer")));
77
+ yield Promise.resolve().then(() => __importStar(require("commander")));
78
+ }
79
+ catch (_a) {
80
+ halt(`nestia has not been installed. Run "npm i -D nestia" before.`);
81
+ }
82
+ yield (yield Promise.resolve().then(() => __importStar(require("./NestiaSetupWizard")))).NestiaSetupWizard.setup();
83
+ }
84
+ else if (type === "dependencies" ||
85
+ type === "init" ||
86
+ type === "sdk" ||
87
+ type === "swagger" ||
88
+ type === "e2e" ||
89
+ type === "all") {
90
+ const location = "@nestia/sdk/lib/executable/sdk";
91
+ try {
92
+ require.resolve(location);
93
+ }
94
+ catch (_b) {
95
+ halt(`@nestia/sdk has not been installed. Run "npx nestia setup" before.`);
96
+ }
97
+ yield Promise.resolve(`${location}`).then(s => __importStar(require(s)));
98
+ }
99
+ else
100
+ halt(USAGE);
101
+ });
102
+ }
103
+ main().catch((exp) => {
104
+ console.log(exp.message);
105
+ process.exit(-1);
106
+ });
107
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,MAAM,KAAK,GAAG;;;;;;;;;;;;;CAab,CAAC;AAEF,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,SAAe,IAAI;;QACjB,MAAM,IAAI,GAAuB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE7C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,CACJ,wDAAa,iBAAiB,GAAC,CAChC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,MAAM,CACJ,wDAAa,kBAAkB,GAAC,CACjC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,wDAAa,cAAc,GAAC,CAAC;gBAC7B,wDAAa,UAAU,GAAC,CAAC;gBACzB,wDAAa,WAAW,GAAC,CAAC;YAC5B,CAAC;YAAC,WAAM,CAAC;gBACP,IAAI,CAAC,8DAA8D,CAAC,CAAC;YACvE,CAAC;YACD,MAAM,CAAC,wDAAa,qBAAqB,GAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACxE,CAAC;aAAM,IACL,IAAI,KAAK,cAAc;YACvB,IAAI,KAAK,MAAM;YACf,IAAI,KAAK,KAAK;YACd,IAAI,KAAK,SAAS;YAClB,IAAI,KAAK,KAAK;YACd,IAAI,KAAK,KAAK,EACd,CAAC;YACD,MAAM,QAAQ,GAAW,gCAAgC,CAAC;YAC1D,IAAI,CAAC;gBACH,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;YAAC,WAAM,CAAC;gBACP,IAAI,CACF,oEAAoE,CACrE,CAAC;YACJ,CAAC;YACD,yBAAa,QAAQ,uCAAC,CAAC;QACzB,CAAC;;YAAM,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;CAAA;AACD,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { PackageManager } from "./PackageManager";
2
+ export declare namespace ArgumentParser {
3
+ interface IArguments {
4
+ manager: "npm" | "pnpm" | "yarn" | "bun";
5
+ project: string | null;
6
+ runtime: boolean;
7
+ }
8
+ function parse(pack: PackageManager): Promise<IArguments>;
9
+ }
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ArgumentParser = void 0;
16
+ const commander_1 = __importDefault(require("commander"));
17
+ const fs_1 = __importDefault(require("fs"));
18
+ const inquirer_1 = __importDefault(require("inquirer"));
19
+ const package_manager_detector_1 = require("package-manager-detector");
20
+ var ArgumentParser;
21
+ (function (ArgumentParser) {
22
+ function parse(pack) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ // PREPARE ASSETS
25
+ commander_1.default.program.option("--manager [manager]", "package manager");
26
+ commander_1.default.program.option("--project [project]", "tsconfig.json file location");
27
+ commander_1.default.program.option("--runtime [boolean]", "transform runtime swagger");
28
+ // INTERNAL PROCEDURES
29
+ const questioned = { value: false };
30
+ const action = (closure) => {
31
+ return new Promise((resolve, reject) => {
32
+ commander_1.default.program.action((options) => __awaiter(this, void 0, void 0, function* () {
33
+ try {
34
+ resolve(yield closure(options));
35
+ }
36
+ catch (exp) {
37
+ reject(exp);
38
+ }
39
+ }));
40
+ commander_1.default.program.parseAsync().catch(reject);
41
+ });
42
+ };
43
+ const select = (name) => (message) => (choices, filter) => __awaiter(this, void 0, void 0, function* () {
44
+ questioned.value = true;
45
+ return (yield inquirer_1.default.createPromptModule()({
46
+ type: "list",
47
+ name: name,
48
+ message: message,
49
+ choices: choices,
50
+ filter,
51
+ }))[name];
52
+ });
53
+ const configure = () => __awaiter(this, void 0, void 0, function* () {
54
+ const fileList = yield (yield fs_1.default.promises.readdir(process.cwd()))
55
+ .filter((str) => str.substring(0, 8) === "tsconfig" &&
56
+ str.substring(str.length - 5) === ".json")
57
+ .sort((x, y) => x === "tsconfig.json"
58
+ ? -1
59
+ : y === "tsconfig.json"
60
+ ? 1
61
+ : x < y
62
+ ? -1
63
+ : 1);
64
+ if (fileList.length === 0) {
65
+ if (process.cwd() !== pack.directory)
66
+ throw new Error(`Unable to find "tsconfig.json" file.`);
67
+ return null;
68
+ }
69
+ else if (fileList.length === 1)
70
+ return fileList[0];
71
+ return select("tsconfig")("TS Config File")(fileList);
72
+ });
73
+ // DO CONSTRUCT
74
+ return action((options) => __awaiter(this, void 0, void 0, function* () {
75
+ var _a, _b, _c, _d;
76
+ (_a = options.manager) !== null && _a !== void 0 ? _a : (options.manager = (_b = (yield detectManager())) !== null && _b !== void 0 ? _b : (yield select("manager")("Package Manager")([
77
+ "npm",
78
+ "pnpm",
79
+ "yarn (berry is not supported)",
80
+ "bun",
81
+ ], (value) => value.split(" ")[0])));
82
+ pack.manager = options.manager;
83
+ (_c = options.project) !== null && _c !== void 0 ? _c : (options.project = yield configure());
84
+ options.runtime =
85
+ ((_d = options.runtime) !== null && _d !== void 0 ? _d : (yield select("runtime")("Transform Runtime Swagger")([
86
+ "true",
87
+ "false",
88
+ ]))) !== "false";
89
+ if (questioned.value)
90
+ console.log("");
91
+ return options;
92
+ }));
93
+ });
94
+ }
95
+ ArgumentParser.parse = parse;
96
+ const detectManager = () => __awaiter(this, void 0, void 0, function* () {
97
+ var _a;
98
+ const result = yield (0, package_manager_detector_1.detect)({ cwd: process.cwd() });
99
+ if ((result === null || result === void 0 ? void 0 : result.name) === "npm")
100
+ return null; // NPM case is still selectable
101
+ else if ((result === null || result === void 0 ? void 0 : result.name) === "deno")
102
+ return null; // Deno case is not supported
103
+ return (_a = result === null || result === void 0 ? void 0 : result.name) !== null && _a !== void 0 ? _a : null;
104
+ });
105
+ })(ArgumentParser || (exports.ArgumentParser = ArgumentParser = {}));
106
+ //# sourceMappingURL=ArgumentParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArgumentParser.js","sourceRoot":"","sources":["../../src/internal/ArgumentParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare namespace CommandExecutor {
2
+ function run(str: string): void;
3
+ }
@@ -0,0 +1,16 @@
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.CommandExecutor = void 0;
7
+ const child_process_1 = __importDefault(require("child_process"));
8
+ var CommandExecutor;
9
+ (function (CommandExecutor) {
10
+ function run(str) {
11
+ console.log(`\n$ ${str}`);
12
+ child_process_1.default.execSync(str, { stdio: "inherit" });
13
+ }
14
+ CommandExecutor.run = run;
15
+ })(CommandExecutor || (exports.CommandExecutor = CommandExecutor = {}));
16
+ //# sourceMappingURL=CommandExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandExecutor.js","sourceRoot":"","sources":["../../src/internal/CommandExecutor.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA+B;AAE/B,IAAiB,eAAe,CAK/B;AALD,WAAiB,eAAe;IAC9B,SAAgB,GAAG,CAAC,GAAW;QAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAC1B,uBAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACzC,CAAC;IAHe,mBAAG,MAGlB,CAAA;AACH,CAAC,EALgB,eAAe,+BAAf,eAAe,QAK/B"}
@@ -0,0 +1,4 @@
1
+ export declare namespace FileRetriever {
2
+ const directory: (name: string) => (dir: string, depth?: number) => string | null;
3
+ const file: (name: string) => (directory: string, depth?: number) => string | null;
4
+ }
@@ -0,0 +1,28 @@
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.FileRetriever = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ var FileRetriever;
10
+ (function (FileRetriever) {
11
+ FileRetriever.directory = (name) => (dir, depth = 0) => {
12
+ const location = path_1.default.join(dir, name);
13
+ if (fs_1.default.existsSync(location))
14
+ return dir;
15
+ else if (depth > 2)
16
+ return null;
17
+ return FileRetriever.directory(name)(path_1.default.join(dir, ".."), depth + 1);
18
+ };
19
+ FileRetriever.file = (name) => (directory, depth = 0) => {
20
+ const location = path_1.default.join(directory, name);
21
+ if (fs_1.default.existsSync(location))
22
+ return location;
23
+ else if (depth > 2)
24
+ return null;
25
+ return FileRetriever.file(name)(path_1.default.join(directory, ".."), depth + 1);
26
+ };
27
+ })(FileRetriever || (exports.FileRetriever = FileRetriever = {}));
28
+ //# sourceMappingURL=FileRetriever.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileRetriever.js","sourceRoot":"","sources":["../../src/internal/FileRetriever.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,IAAiB,aAAa,CAkB7B;AAlBD,WAAiB,aAAa;IACf,uBAAS,GACpB,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,GAAW,EAAE,QAAgB,CAAC,EAAiB,EAAE;QAChD,MAAM,QAAQ,GAAW,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,GAAG,CAAC;aACnC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAChC,OAAO,cAAA,SAAS,CAAC,IAAI,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC;IAES,kBAAI,GACf,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,SAAiB,EAAE,QAAgB,CAAC,EAAiB,EAAE;QACtD,MAAM,QAAQ,GAAW,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;aACxC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAChC,OAAO,cAAA,IAAI,CAAC,IAAI,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC;AACN,CAAC,EAlBgB,aAAa,6BAAb,aAAa,QAkB7B"}
@@ -0,0 +1,25 @@
1
+ export declare class PackageManager {
2
+ readonly directory: string;
3
+ data: Package.Data;
4
+ manager: Manager;
5
+ get file(): string;
6
+ static mount(): Promise<PackageManager>;
7
+ save(modifier: (data: Package.Data) => void): Promise<void>;
8
+ install(props: {
9
+ dev: boolean;
10
+ modulo: string;
11
+ version?: `latest` | `next` | `^${number}.${number}.${number}` | (string & {});
12
+ force?: boolean;
13
+ }): boolean;
14
+ private constructor();
15
+ private static load;
16
+ }
17
+ export declare namespace Package {
18
+ interface Data {
19
+ scripts?: Record<string, string>;
20
+ dependencies?: Record<string, string>;
21
+ devDependencies?: Record<string, string>;
22
+ }
23
+ }
24
+ type Manager = "npm" | "pnpm" | "yarn" | "bun";
25
+ export {};
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.PackageManager = void 0;
16
+ const fs_1 = __importDefault(require("fs"));
17
+ const path_1 = __importDefault(require("path"));
18
+ const CommandExecutor_1 = require("./CommandExecutor");
19
+ const FileRetriever_1 = require("./FileRetriever");
20
+ class PackageManager {
21
+ get file() {
22
+ return path_1.default.join(this.directory, "package.json");
23
+ }
24
+ static mount() {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ const location = yield FileRetriever_1.FileRetriever.directory("package.json")(process.cwd());
27
+ if (location === null)
28
+ throw new Error(`Unable to find "package.json" file`);
29
+ return new PackageManager(location, yield this.load(path_1.default.join(location, "package.json")));
30
+ });
31
+ }
32
+ save(modifier) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ const content = yield fs_1.default.promises.readFile(this.file, "utf8");
35
+ this.data = JSON.parse(content);
36
+ modifier(this.data);
37
+ return fs_1.default.promises.writeFile(this.file, JSON.stringify(this.data, null, 2), "utf8");
38
+ });
39
+ }
40
+ install(props) {
41
+ const middle = [
42
+ installCmdTable[this.manager],
43
+ props.dev ? devOptionTable[this.manager] : "",
44
+ ]
45
+ .filter((str) => !!str.length)
46
+ .join(" ");
47
+ const modulo = `${props.modulo}${props.version ? `@${props.version}` : ""}`;
48
+ CommandExecutor_1.CommandExecutor.run([this.manager, middle, modulo].join(" "));
49
+ return true;
50
+ }
51
+ constructor(directory, data) {
52
+ this.directory = directory;
53
+ this.data = data;
54
+ this.manager = "npm";
55
+ }
56
+ static load(file) {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ const content = yield fs_1.default.promises.readFile(file, "utf8");
59
+ return JSON.parse(content);
60
+ });
61
+ }
62
+ }
63
+ exports.PackageManager = PackageManager;
64
+ const installCmdTable = {
65
+ npm: "i",
66
+ pnpm: "add",
67
+ yarn: "add",
68
+ bun: "add",
69
+ };
70
+ const devOptionTable = {
71
+ npm: "-D",
72
+ pnpm: "-D",
73
+ yarn: "-D",
74
+ bun: "-d",
75
+ };
76
+ //# sourceMappingURL=PackageManager.js.map