nestia 4.4.0-dev.20230607 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ export declare namespace NestiaSetupWizard {
2
+ function setup(): Promise<void>;
3
+ }
@@ -0,0 +1,73 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.NestiaSetupWizard = void 0;
13
+ const ArgumentParser_1 = require("./internal/ArgumentParser");
14
+ const CommandExecutor_1 = require("./internal/CommandExecutor");
15
+ const PackageManager_1 = require("./internal/PackageManager");
16
+ const PluginConfigurator_1 = require("./internal/PluginConfigurator");
17
+ var NestiaSetupWizard;
18
+ (function (NestiaSetupWizard) {
19
+ function setup() {
20
+ var _a;
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ console.log("----------------------------------------");
23
+ console.log(" Nestia Setup Wizard");
24
+ console.log("----------------------------------------");
25
+ // PREPARE ASSETS
26
+ const pack = yield PackageManager_1.PackageManager.mount();
27
+ const args = yield ArgumentParser_1.ArgumentParser.parse(pack);
28
+ // INSTALL TYPESCRIPT COMPILERS
29
+ pack.install({ dev: true, modulo: "ts-patch", version: "latest" });
30
+ pack.install({ dev: true, modulo: "ts-node", version: "latest" });
31
+ pack.install({ dev: true, modulo: "typescript", version: "latest" });
32
+ (_a = args.project) !== null && _a !== void 0 ? _a : (args.project = (() => {
33
+ const runner = pack.manager === "npm" ? "npx" : pack.manager;
34
+ CommandExecutor_1.CommandExecutor.run(`${runner} tsc --init`);
35
+ return (args.project = "tsconfig.json");
36
+ })());
37
+ // SETUP TRANSFORMER
38
+ yield pack.save((data) => {
39
+ var _a;
40
+ // COMPOSE POSTINSTALL COMMAND
41
+ (_a = data.scripts) !== null && _a !== void 0 ? _a : (data.scripts = {});
42
+ if (typeof data.scripts.postinstall === "string" &&
43
+ data.scripts.postinstall.trim().length) {
44
+ if (data.scripts.postinstall.indexOf("ts-patch install") === -1)
45
+ data.scripts.postinstall =
46
+ "ts-patch install && " + data.scripts.postinstall;
47
+ }
48
+ else
49
+ data.scripts.postinstall = "ts-patch install";
50
+ // FOR OLDER VERSIONS
51
+ if (typeof data.scripts.prepare === "string") {
52
+ data.scripts.prepare = data.scripts.prepare
53
+ .split("&&")
54
+ .map((str) => str.trim())
55
+ .filter((str) => str.indexOf("ts-patch install") === -1)
56
+ .join(" && ");
57
+ if (data.scripts.prepare.length === 0)
58
+ delete data.scripts.prepare;
59
+ }
60
+ });
61
+ CommandExecutor_1.CommandExecutor.run(`${pack.manager} run postinstall`);
62
+ // INSTALL AND CONFIGURE TYPIA + NESTIA
63
+ pack.install({ dev: false, modulo: "typia", version: "latest" });
64
+ pack.install({ dev: false, modulo: "@nestia/core", version: "latest" });
65
+ pack.install({ dev: true, modulo: "@nestia/e2e", version: "latest" });
66
+ pack.install({ dev: true, modulo: "@nestia/sdk", version: "latest" });
67
+ pack.install({ dev: true, modulo: "nestia", version: "latest" });
68
+ yield PluginConfigurator_1.PluginConfigurator.configure(args);
69
+ });
70
+ }
71
+ NestiaSetupWizard.setup = setup;
72
+ })(NestiaSetupWizard || (exports.NestiaSetupWizard = NestiaSetupWizard = {}));
73
+ //# 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 start: (halter: (msg?: string) => never) => (argv: string[]) => Promise<void>;
3
+ }
@@ -0,0 +1,48 @@
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.start = (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
+ });
43
+ function execute(command) {
44
+ console.log(command);
45
+ child_process_1.default.execSync(command, { stdio: "inherit" });
46
+ }
47
+ })(NestiaStarter || (exports.NestiaStarter = NestiaStarter = {}));
48
+ //# 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,CAsC7B;AAtCD,WAAiB,aAAa;IACb,mBAAK,GACd,CAAC,MAA+B,EAAE,EAAE,CACpC,CAAO,IAAc,EAAiB,EAAE;QACpC,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;YACjC,MAAM,CAAC,sCAAsC,CAAC,CAAC;QAEnD,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,CACH,wDAAwD,IAAI,EAAE,CACjE,CAAC;QACF,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;IACnC,CAAC,CAAA,CAAC;IAEN,SAAS,OAAO,CAAC,OAAe;QAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,uBAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/C,CAAC;AACL,CAAC,EAtCgB,aAAa,6BAAb,aAAa,QAsC7B"}
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 setup\n 3. npx nestia dependencies\n 4. npx nestia init\n 5. npx nestia sdk\n 6. npx nestia swagger\n 7. npx nestia e2e\n";
3
+ declare function halt(desc: string): never;
4
+ declare function main(): Promise<void>;
package/bin/index.js ADDED
@@ -0,0 +1,90 @@
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 (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
27
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28
+ return new (P || (P = Promise))(function (resolve, reject) {
29
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
30
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
31
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
32
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
33
+ });
34
+ };
35
+ const USAGE = `Wrong command has been detected. Use like below:
36
+
37
+ npx nestia [command] [options?]
38
+
39
+ 1. npx nestia start <directory>
40
+ 2. npx nestia setup
41
+ 3. npx nestia dependencies
42
+ 4. npx nestia init
43
+ 5. npx nestia sdk
44
+ 6. npx nestia swagger
45
+ 7. npx nestia e2e
46
+ `;
47
+ function halt(desc) {
48
+ console.error(desc);
49
+ process.exit(-1);
50
+ }
51
+ function main() {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ const type = process.argv[2];
54
+ const argv = process.argv.slice(3);
55
+ if (type === "start") {
56
+ yield (yield Promise.resolve().then(() => __importStar(require("./NestiaStarter")))).NestiaStarter.start((msg) => halt(msg !== null && msg !== void 0 ? msg : USAGE))(argv);
57
+ }
58
+ else if (type === "setup") {
59
+ try {
60
+ yield Promise.resolve().then(() => __importStar(require("comment-json")));
61
+ yield Promise.resolve().then(() => __importStar(require("inquirer")));
62
+ yield Promise.resolve().then(() => __importStar(require("commander")));
63
+ }
64
+ catch (_a) {
65
+ halt(`nestia has not been installed. Run "npm i -D nestia" before.`);
66
+ }
67
+ yield (yield Promise.resolve().then(() => __importStar(require("./NestiaSetupWizard")))).NestiaSetupWizard.setup();
68
+ }
69
+ else if (type === "dependencies" ||
70
+ type === "init" ||
71
+ type === "sdk" ||
72
+ type === "swagger" ||
73
+ type === "e2e") {
74
+ try {
75
+ require.resolve("@nestia/sdk/lib/executable/sdk");
76
+ }
77
+ catch (_b) {
78
+ halt(`@nestia/sdk has not been installed. Run "npx nestia setup" before.`);
79
+ }
80
+ yield Promise.resolve().then(() => __importStar(require("@nestia/sdk/lib/executable/sdk")));
81
+ }
82
+ else
83
+ halt(USAGE);
84
+ });
85
+ }
86
+ main().catch((exp) => {
87
+ console.log(exp.message);
88
+ process.exit(-1);
89
+ });
90
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,MAAM,KAAK,GAAG;;;;;;;;;;;CAWb,CAAC;AAEF,SAAS,IAAI,CAAC,IAAY;IACtB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;AAED,SAAe,IAAI;;QACf,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;YAClB,MAAM,CACF,wDAAa,iBAAiB,GAAC,CAClC,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;SAC5D;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE;YACzB,IAAI;gBACA,wDAAa,cAAc,GAAC,CAAC;gBAC7B,wDAAa,UAAU,GAAC,CAAC;gBACzB,wDAAa,WAAW,GAAC,CAAC;aAC7B;YAAC,WAAM;gBACJ,IAAI,CACA,8DAA8D,CACjE,CAAC;aACL;YACD,MAAM,CAAC,wDAAa,qBAAqB,GAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;SACzE;aAAM,IACH,IAAI,KAAK,cAAc;YACvB,IAAI,KAAK,MAAM;YACf,IAAI,KAAK,KAAK;YACd,IAAI,KAAK,SAAS;YAClB,IAAI,KAAK,KAAK,EAChB;YACE,IAAI;gBACA,OAAO,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;aACrD;YAAC,WAAM;gBACJ,IAAI,CACA,oEAAoE,CACvE,CAAC;aACL;YACD,wDAAa,gCAAgC,GAAC,CAAC;SAClD;;YAAM,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;CAAA;AACD,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { PackageManager } from "./PackageManager";
2
+ export declare namespace ArgumentParser {
3
+ interface IArguments {
4
+ manager: "npm" | "pnpm" | "yarn";
5
+ project: string | null;
6
+ }
7
+ function parse(pack: PackageManager): Promise<IArguments>;
8
+ }
@@ -0,0 +1,89 @@
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
+ var ArgumentParser;
20
+ (function (ArgumentParser) {
21
+ function parse(pack) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ // PREPARE ASSETS
24
+ commander_1.default.program.option("--manager [manager]", "package manager");
25
+ commander_1.default.program.option("--project [project]", "tsconfig.json file location");
26
+ // INTERNAL PROCEDURES
27
+ const questioned = { value: false };
28
+ const action = (closure) => {
29
+ return new Promise((resolve, reject) => {
30
+ commander_1.default.program.action((options) => __awaiter(this, void 0, void 0, function* () {
31
+ try {
32
+ resolve(yield closure(options));
33
+ }
34
+ catch (exp) {
35
+ reject(exp);
36
+ }
37
+ }));
38
+ commander_1.default.program.parseAsync().catch(reject);
39
+ });
40
+ };
41
+ const select = (name) => (message) => (choices, filter) => __awaiter(this, void 0, void 0, function* () {
42
+ questioned.value = true;
43
+ return (yield inquirer_1.default.createPromptModule()({
44
+ type: "list",
45
+ name: name,
46
+ message: message,
47
+ choices: choices,
48
+ filter,
49
+ }))[name];
50
+ });
51
+ const configure = () => __awaiter(this, void 0, void 0, function* () {
52
+ const fileList = yield (yield fs_1.default.promises.readdir(process.cwd()))
53
+ .filter((str) => str.substring(0, 8) === "tsconfig" &&
54
+ str.substring(str.length - 5) === ".json")
55
+ .sort((x, y) => x === "tsconfig.json"
56
+ ? -1
57
+ : y === "tsconfig.json"
58
+ ? 1
59
+ : x < y
60
+ ? -1
61
+ : 1);
62
+ if (fileList.length === 0) {
63
+ if (process.cwd() !== pack.directory)
64
+ throw new Error(`Unable to find "tsconfig.json" file.`);
65
+ return null;
66
+ }
67
+ else if (fileList.length === 1)
68
+ return fileList[0];
69
+ return select("tsconfig")("TS Config File")(fileList);
70
+ });
71
+ // DO CONSTRUCT
72
+ return action((options) => __awaiter(this, void 0, void 0, function* () {
73
+ var _a, _b;
74
+ (_a = options.manager) !== null && _a !== void 0 ? _a : (options.manager = yield select("manager")("Package Manager")([
75
+ "npm",
76
+ "pnpm",
77
+ "yarn (berry is not supported)",
78
+ ], (value) => value.split(" ")[0]));
79
+ pack.manager = options.manager;
80
+ (_b = options.project) !== null && _b !== void 0 ? _b : (options.project = yield configure());
81
+ if (questioned.value)
82
+ console.log("");
83
+ return options;
84
+ }));
85
+ });
86
+ }
87
+ ArgumentParser.parse = parse;
88
+ })(ArgumentParser || (exports.ArgumentParser = ArgumentParser = {}));
89
+ //# 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(str);
12
+ child_process_1.default.execSync(str, { stdio: "ignore" });
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;IAC5B,SAAgB,GAAG,CAAC,GAAW;QAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,uBAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1C,CAAC;IAHe,mBAAG,MAGlB,CAAA;AACL,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;IACb,uBAAS,GAClB,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,GAAW,EAAE,QAAgB,CAAC,EAAiB,EAAE;QAC9C,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;IAC5D,CAAC,CAAC;IAEO,kBAAI,GACb,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,SAAiB,EAAE,QAAgB,CAAC,EAAiB,EAAE;QACpD,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;IAC7D,CAAC,CAAC;AACV,CAAC,EAlBgB,aAAa,6BAAb,aAAa,QAkB7B"}
@@ -0,0 +1,22 @@
1
+ export declare class PackageManager {
2
+ readonly directory: string;
3
+ data: Package.Data;
4
+ manager: string;
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` | `${number}.${number}.${number}`;
12
+ }): boolean;
13
+ private constructor();
14
+ private static load;
15
+ }
16
+ export declare namespace Package {
17
+ interface Data {
18
+ scripts?: Record<string, string>;
19
+ dependencies?: Record<string, string>;
20
+ devDependencies?: Record<string, string>;
21
+ }
22
+ }
@@ -0,0 +1,60 @@
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 = this.manager === "yarn"
42
+ ? `add${props.dev ? " -D" : ""}`
43
+ : `install ${props.dev ? "--save-dev" : "--save"}`;
44
+ CommandExecutor_1.CommandExecutor.run(`${this.manager} ${middle} ${props.modulo}${props.version ? `@${props.version}` : ""}`);
45
+ return true;
46
+ }
47
+ constructor(directory, data) {
48
+ this.directory = directory;
49
+ this.data = data;
50
+ this.manager = "npm";
51
+ }
52
+ static load(file) {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ const content = yield fs_1.default.promises.readFile(file, "utf8");
55
+ return JSON.parse(content);
56
+ });
57
+ }
58
+ }
59
+ exports.PackageManager = PackageManager;
60
+ //# sourceMappingURL=PackageManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackageManager.js","sourceRoot":"","sources":["../../src/internal/PackageManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,uDAAoD;AACpD,mDAAgD;AAEhD,MAAa,cAAc;IAEvB,IAAW,IAAI;QACX,OAAO,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACrD,CAAC;IAEM,MAAM,CAAO,KAAK;;YACrB,MAAM,QAAQ,GAAkB,MAAM,6BAAa,CAAC,SAAS,CACzD,cAAc,CACjB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACjB,IAAI,QAAQ,KAAK,IAAI;gBACjB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAE1D,OAAO,IAAI,cAAc,CACrB,QAAQ,EACR,MAAM,IAAI,CAAC,IAAI,CAAC,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CACvD,CAAC;QACN,CAAC;KAAA;IAEY,IAAI,CAAC,QAAsC;;YACpD,MAAM,OAAO,GAAW,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACtE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEpB,OAAO,YAAE,CAAC,QAAQ,CAAC,SAAS,CACxB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAClC,MAAM,CACT,CAAC;QACN,CAAC;KAAA;IAEM,OAAO,CAAC,KAId;QACG,MAAM,MAAM,GACR,IAAI,CAAC,OAAO,KAAK,MAAM;YACnB,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YAChC,CAAC,CAAC,WAAW,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3D,iCAAe,CAAC,GAAG,CACf,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,GACrC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAC1C,EAAE,CACL,CAAC;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,YACoB,SAAiB,EAC1B,IAAkB;QADT,cAAS,GAAT,SAAS,CAAQ;QAC1B,SAAI,GAAJ,IAAI,CAAc;QAjDtB,YAAO,GAAW,KAAK,CAAC;IAkD5B,CAAC;IAEI,MAAM,CAAO,IAAI,CAAC,IAAY;;YAClC,MAAM,OAAO,GAAW,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACjE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;KAAA;CACJ;AAzDD,wCAyDC"}
@@ -0,0 +1,4 @@
1
+ import { ArgumentParser } from "./ArgumentParser";
2
+ export declare namespace PluginConfigurator {
3
+ function configure(args: ArgumentParser.IArguments): Promise<void>;
4
+ }
@@ -0,0 +1,89 @@
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.PluginConfigurator = void 0;
16
+ const comment_json_1 = __importDefault(require("comment-json"));
17
+ const fs_1 = __importDefault(require("fs"));
18
+ var PluginConfigurator;
19
+ (function (PluginConfigurator) {
20
+ function configure(args) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ // GET COMPILER-OPTIONS
23
+ const config = comment_json_1.default.parse(yield fs_1.default.promises.readFile(args.project, "utf8"));
24
+ const compilerOptions = config.compilerOptions;
25
+ if (compilerOptions === undefined)
26
+ throw new Error(`${args.project} file does not have "compilerOptions" property.`);
27
+ // PREPARE PLUGINS
28
+ const plugins = (() => {
29
+ const plugins = compilerOptions.plugins;
30
+ if (plugins === undefined)
31
+ return (compilerOptions.plugins = []);
32
+ else if (!Array.isArray(plugins))
33
+ throw new Error(`"plugins" property of ${args.project} must be array type.`);
34
+ return plugins;
35
+ })();
36
+ // CHECK WHETHER CONFIGURED
37
+ const strict = compilerOptions.strict;
38
+ const strictNullChecks = compilerOptions.strictNullChecks;
39
+ const core = plugins.find((p) => typeof p === "object" &&
40
+ p !== null &&
41
+ p.transform === "@nestia/core/lib/transform");
42
+ const typia = plugins.find((p) => typeof p === "object" &&
43
+ p !== null &&
44
+ p.transform === "typia/lib/transform");
45
+ if (strictNullChecks !== false &&
46
+ (strict === true || strictNullChecks === true) &&
47
+ core !== undefined &&
48
+ typia !== undefined)
49
+ return;
50
+ // DO CONFIGURE
51
+ compilerOptions.strictNullChecks = true;
52
+ if (strict === undefined && strictNullChecks === undefined)
53
+ compilerOptions.strict = true;
54
+ compilerOptions.experimentalDecorators = true;
55
+ compilerOptions.emitDecoratorMetadata = true;
56
+ if (core === undefined)
57
+ plugins.push(comment_json_1.default.parse(`{
58
+ "transform": "@nestia/core/lib/transform",
59
+ /**
60
+ * Validate request body.
61
+ *
62
+ * - "assert": Use typia.assert() function
63
+ * - "is": Use typia.is() function
64
+ * - "validate": Use typia.validate() function
65
+ * - "assertEquals": Use typia.assertEquals() function
66
+ * - "equals": Use typia.equals() function
67
+ * - "validateEquals": Use typia.validateEquals() function
68
+ */
69
+ "validate": "assert",
70
+
71
+ /**
72
+ * Validate JSON typed response body.
73
+ *
74
+ * - "assert": Use typia.assertStringify() function
75
+ * - "is": Use typia.isStringify() function
76
+ * - "validate": Use typia.validateStringify() function
77
+ * - "stringify": Use typia.stringify() function, but dangerous
78
+ * - null: Just use JSON.stringify() function, without boosting
79
+ */
80
+ "stringify": "assert"
81
+ }`));
82
+ if (typia === undefined)
83
+ plugins.push(comment_json_1.default.parse(`{ "transform": "typia/lib/transform" }`));
84
+ yield fs_1.default.promises.writeFile(args.project, comment_json_1.default.stringify(config, null, 2));
85
+ });
86
+ }
87
+ PluginConfigurator.configure = configure;
88
+ })(PluginConfigurator || (exports.PluginConfigurator = PluginConfigurator = {}));
89
+ //# sourceMappingURL=PluginConfigurator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginConfigurator.js","sourceRoot":"","sources":["../../src/internal/PluginConfigurator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gEAAoC;AACpC,4CAAoB;AAIpB,IAAiB,kBAAkB,CAqGlC;AArGD,WAAiB,kBAAkB;IAC/B,SAAsB,SAAS,CAC3B,IAA+B;;YAE/B,uBAAuB;YACvB,MAAM,MAAM,GAA2B,sBAAQ,CAAC,KAAK,CACjD,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAQ,EAAE,MAAM,CAAC,CAC1B,CAAC;YAC5B,MAAM,eAAe,GACjB,MAAM,CAAC,eAAqD,CAAC;YACjE,IAAI,eAAe,KAAK,SAAS;gBAC7B,MAAM,IAAI,KAAK,CACX,GAAG,IAAI,CAAC,OAAO,iDAAiD,CACnE,CAAC;YAEN,kBAAkB;YAClB,MAAM,OAAO,GAAkD,CAAC,GAAG,EAAE;gBACjE,MAAM,OAAO,GAAG,eAAe,CAAC,OAEjB,CAAC;gBAChB,IAAI,OAAO,KAAK,SAAS;oBACrB,OAAO,CAAC,eAAe,CAAC,OAAO,GAAG,EAAS,CAAC,CAAC;qBAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;oBAC5B,MAAM,IAAI,KAAK,CACX,yBAAyB,IAAI,CAAC,OAAO,sBAAsB,CAC9D,CAAC;gBACN,OAAO,OAAO,CAAC;YACnB,CAAC,CAAC,EAAE,CAAC;YAEL,2BAA2B;YAC3B,MAAM,MAAM,GAAwB,eAAe,CAAC,MAErC,CAAC;YAChB,MAAM,gBAAgB,GAClB,eAAe,CAAC,gBAAuC,CAAC;YAC5D,MAAM,IAAI,GAAuC,OAAO,CAAC,IAAI,CACzD,CAAC,CAAC,EAAE,EAAE,CACF,OAAO,CAAC,KAAK,QAAQ;gBACrB,CAAC,KAAK,IAAI;gBACV,CAAC,CAAC,SAAS,KAAK,4BAA4B,CACnD,CAAC;YACF,MAAM,KAAK,GAAuC,OAAO,CAAC,IAAI,CAC1D,CAAC,CAAC,EAAE,EAAE,CACF,OAAO,CAAC,KAAK,QAAQ;gBACrB,CAAC,KAAK,IAAI;gBACV,CAAC,CAAC,SAAS,KAAK,qBAAqB,CAC5C,CAAC;YACF,IACI,gBAAgB,KAAK,KAAK;gBAC1B,CAAC,MAAM,KAAK,IAAI,IAAI,gBAAgB,KAAK,IAAI,CAAC;gBAC9C,IAAI,KAAK,SAAS;gBAClB,KAAK,KAAK,SAAS;gBAEnB,OAAO;YAEX,eAAe;YACf,eAAe,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACxC,IAAI,MAAM,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS;gBACtD,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;YAClC,eAAe,CAAC,sBAAsB,GAAG,IAAI,CAAC;YAC9C,eAAe,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAE7C,IAAI,IAAI,KAAK,SAAS;gBAClB,OAAO,CAAC,IAAI,CACR,sBAAQ,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;kBAwBb,CAA2B,CAChC,CAAC;YACN,IAAI,KAAK,KAAK,SAAS;gBACnB,OAAO,CAAC,IAAI,CACR,sBAAQ,CAAC,KAAK,CACV,wCAAwC,CACjB,CAC9B,CAAC;YACN,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CACvB,IAAI,CAAC,OAAQ,EACb,sBAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CACtC,CAAC;QACN,CAAC;KAAA;IAnGqB,4BAAS,YAmG9B,CAAA;AACL,CAAC,EArGgB,kBAAkB,kCAAlB,kBAAkB,QAqGlC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nestia",
3
- "version": "4.4.0-dev.20230607",
3
+ "version": "4.4.0",
4
4
  "description": "Nestia CLI tool",
5
5
  "main": "bin/index.js",
6
6
  "bin": {
@@ -9,7 +9,7 @@
9
9
  "scripts": {
10
10
  "build": "rimraf bin && tsc",
11
11
  "prettier": "prettier ./src/**/*.ts --write",
12
- "package:next": "npm publish --access public --tag next"
12
+ "package:next": "npm run build && npm publish --access public --tag next"
13
13
  },
14
14
  "repository": {
15
15
  "type": "git",