nestia 11.2.1 → 12.0.0-dev.20260520.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/NestiaSetupWizard.d.ts +1 -1
- package/bin/NestiaSetupWizard.js +84 -71
- package/bin/NestiaSetupWizard.js.map +1 -1
- package/bin/NestiaStarter.js.map +1 -1
- package/bin/NestiaTemplate.js.map +1 -1
- package/bin/index.js +14 -15
- package/bin/index.js.map +1 -1
- package/package.json +5 -14
- package/src/NestiaSetupWizard.ts +102 -73
- package/src/index.ts +15 -13
- package/bin/internal/ArgumentParser.d.ts +0 -9
- package/bin/internal/ArgumentParser.js +0 -106
- package/bin/internal/ArgumentParser.js.map +0 -1
- package/bin/internal/CommandExecutor.d.ts +0 -3
- package/bin/internal/CommandExecutor.js +0 -16
- package/bin/internal/CommandExecutor.js.map +0 -1
- package/bin/internal/FileRetriever.d.ts +0 -4
- package/bin/internal/FileRetriever.js +0 -28
- package/bin/internal/FileRetriever.js.map +0 -1
- package/bin/internal/PackageManager.d.ts +0 -25
- package/bin/internal/PackageManager.js +0 -76
- package/bin/internal/PackageManager.js.map +0 -1
- package/bin/internal/PluginConfigurator.d.ts +0 -4
- package/bin/internal/PluginConfigurator.js +0 -99
- package/bin/internal/PluginConfigurator.js.map +0 -1
- package/src/boot.js +0 -17
- package/src/internal/ArgumentParser.ts +0 -123
- package/src/internal/CommandExecutor.ts +0 -8
- package/src/internal/FileRetriever.ts +0 -22
- package/src/internal/PackageManager.ts +0 -91
- package/src/internal/PluginConfigurator.ts +0 -125
package/bin/NestiaSetupWizard.js
CHANGED
|
@@ -13,86 +13,99 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.NestiaSetupWizard = void 0;
|
|
16
|
+
const child_process_1 = __importDefault(require("child_process"));
|
|
16
17
|
const fs_1 = __importDefault(require("fs"));
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
const ADD = {
|
|
19
|
+
npm: "npm install",
|
|
20
|
+
pnpm: "pnpm add",
|
|
21
|
+
yarn: "yarn add",
|
|
22
|
+
bun: "bun add",
|
|
23
|
+
};
|
|
24
|
+
const DEV = {
|
|
25
|
+
npm: "-D",
|
|
26
|
+
pnpm: "-D",
|
|
27
|
+
yarn: "-D",
|
|
28
|
+
bun: "-d",
|
|
29
|
+
};
|
|
30
|
+
const TAG = "next";
|
|
21
31
|
var NestiaSetupWizard;
|
|
22
32
|
(function (NestiaSetupWizard) {
|
|
23
|
-
function setup() {
|
|
33
|
+
function setup(argv) {
|
|
24
34
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
-
|
|
35
|
+
if (!fs_1.default.existsSync("package.json")) {
|
|
36
|
+
console.error([
|
|
37
|
+
`npx nestia setup must be run inside a directory that owns a package.json.`,
|
|
38
|
+
`Either cd into the project root, or create one with "npm init -y" and re-run.`,
|
|
39
|
+
].join("\n"));
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
const manager = pick(argv);
|
|
26
43
|
console.log("----------------------------------------");
|
|
27
44
|
console.log(" Nestia Setup Wizard");
|
|
28
45
|
console.log("----------------------------------------");
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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);
|
|
46
|
+
console.log(`package manager : ${manager}`);
|
|
47
|
+
console.log("");
|
|
48
|
+
const go = child_process_1.default.spawnSync("go", ["version"], { stdio: "ignore" });
|
|
49
|
+
if (go.status !== 0 && !process.env.TTSC_GO_BINARY) {
|
|
50
|
+
console.warn([
|
|
51
|
+
"Heads up: Go 1.26+ was not found on PATH.",
|
|
52
|
+
"Install it (https://go.dev/dl) or set TTSC_GO_BINARY before you run `ttsc`.",
|
|
53
|
+
"Continuing with the install — the @nestia/core native transform binary is built on demand the first time `ttsc` compiles your project.",
|
|
54
|
+
"",
|
|
55
|
+
].join("\n"));
|
|
56
|
+
}
|
|
57
|
+
install(manager, true, "ttsc", "@typescript/native-preview");
|
|
58
|
+
install(manager, false, tagged("typia"));
|
|
59
|
+
install(manager, false, tagged("@nestia/core"), tagged("@nestia/sdk"), tagged("@nestia/fetcher"));
|
|
60
|
+
install(manager, true, tagged("nestia"));
|
|
61
|
+
console.log("----------------------------------------");
|
|
62
|
+
console.log(" Nestia setup complete.");
|
|
63
|
+
console.log("----------------------------------------");
|
|
64
|
+
console.log("Next: see https://nestia.io/docs/setup/tsgo");
|
|
65
|
+
console.log("");
|
|
89
66
|
});
|
|
90
67
|
}
|
|
91
68
|
NestiaSetupWizard.setup = setup;
|
|
92
|
-
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
69
|
+
function install(manager, dev, ...modules) {
|
|
70
|
+
const command = [ADD[manager], dev ? DEV[manager] : "", ...modules]
|
|
71
|
+
.filter((s) => s.length !== 0)
|
|
72
|
+
.join(" ");
|
|
73
|
+
console.log(`$ ${command}`);
|
|
74
|
+
child_process_1.default.execSync(command, { stdio: "inherit" });
|
|
75
|
+
console.log("");
|
|
76
|
+
}
|
|
77
|
+
function tagged(name) {
|
|
78
|
+
return `${name}@${TAG}`;
|
|
79
|
+
}
|
|
80
|
+
function pick(argv) {
|
|
81
|
+
for (let i = 0; i < argv.length; ++i) {
|
|
82
|
+
const token = argv[i];
|
|
83
|
+
if (token === undefined)
|
|
84
|
+
continue;
|
|
85
|
+
if (token === "--manager")
|
|
86
|
+
return ensure(argv[i + 1]);
|
|
87
|
+
if (token.startsWith("--manager="))
|
|
88
|
+
return ensure(token.slice("--manager=".length));
|
|
89
|
+
}
|
|
90
|
+
if (fs_1.default.existsSync("bun.lockb") || fs_1.default.existsSync("bun.lock"))
|
|
91
|
+
return "bun";
|
|
92
|
+
if (fs_1.default.existsSync("pnpm-lock.yaml"))
|
|
93
|
+
return "pnpm";
|
|
94
|
+
if (fs_1.default.existsSync("yarn.lock"))
|
|
95
|
+
return "yarn";
|
|
96
|
+
return "npm";
|
|
97
|
+
}
|
|
98
|
+
function ensure(value) {
|
|
99
|
+
if (value === "npm" ||
|
|
100
|
+
value === "pnpm" ||
|
|
101
|
+
value === "yarn" ||
|
|
102
|
+
value === "bun")
|
|
103
|
+
return value;
|
|
104
|
+
console.error([
|
|
105
|
+
`--manager requires one of: npm | pnpm | yarn | bun.`,
|
|
106
|
+
`Use either "--manager <name>" or "--manager=<name>".`,
|
|
107
|
+
].join("\n"));
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
97
110
|
})(NestiaSetupWizard || (exports.NestiaSetupWizard = NestiaSetupWizard = {}));
|
|
98
111
|
//# sourceMappingURL=NestiaSetupWizard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestiaSetupWizard.js","sourceRoot":"","sources":["../src/NestiaSetupWizard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"NestiaSetupWizard.js","sourceRoot":"","sources":["../src/NestiaSetupWizard.ts"],"names":[],"mappings":"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"}
|
package/bin/NestiaStarter.js.map
CHANGED
|
@@ -1 +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,
|
|
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,aAAb,aAAa,GAAb,aAAa,QAqC7B"}
|
|
@@ -1 +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,
|
|
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,aAAd,cAAc,GAAd,cAAc,QAiC9B"}
|
package/bin/index.js
CHANGED
|
@@ -16,13 +16,13 @@ npx nestia [command] [options?]
|
|
|
16
16
|
|
|
17
17
|
1. npx nestia start <directory>
|
|
18
18
|
2. npx nestia template <directory>
|
|
19
|
-
3. npx nestia setup
|
|
19
|
+
3. npx nestia setup [--manager npm|pnpm|yarn|bun] (also: --manager=value)
|
|
20
20
|
4. npx nestia dependencies
|
|
21
21
|
5. npx nestia init
|
|
22
22
|
6. npx nestia sdk
|
|
23
23
|
7. npx nestia swagger
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
8. npx nestia e2e
|
|
25
|
+
9. npx nestia all
|
|
26
26
|
`;
|
|
27
27
|
function halt(desc) {
|
|
28
28
|
console.error(desc);
|
|
@@ -39,15 +39,7 @@ function main() {
|
|
|
39
39
|
yield (yield import("./NestiaTemplate.js")).NestiaTemplate.clone((msg) => halt(msg !== null && msg !== void 0 ? msg : USAGE))(argv);
|
|
40
40
|
}
|
|
41
41
|
else if (type === "setup") {
|
|
42
|
-
|
|
43
|
-
yield import("comment-json");
|
|
44
|
-
yield import("inquirer");
|
|
45
|
-
yield import("commander");
|
|
46
|
-
}
|
|
47
|
-
catch (_a) {
|
|
48
|
-
halt(`nestia has not been installed. Run "npm i -D nestia" before.`);
|
|
49
|
-
}
|
|
50
|
-
yield (yield import("./NestiaSetupWizard.js")).NestiaSetupWizard.setup();
|
|
42
|
+
yield (yield import("./NestiaSetupWizard.js")).NestiaSetupWizard.setup(argv);
|
|
51
43
|
}
|
|
52
44
|
else if (type === "dependencies" ||
|
|
53
45
|
type === "init" ||
|
|
@@ -59,8 +51,15 @@ function main() {
|
|
|
59
51
|
try {
|
|
60
52
|
require.resolve(location);
|
|
61
53
|
}
|
|
62
|
-
catch (
|
|
63
|
-
halt(
|
|
54
|
+
catch (_a) {
|
|
55
|
+
halt([
|
|
56
|
+
`@nestia/sdk has not been installed.`,
|
|
57
|
+
`Run "npx nestia setup" first, or install manually:`,
|
|
58
|
+
` npm i -D ttsc @typescript/native-preview`,
|
|
59
|
+
` npm i typia`,
|
|
60
|
+
` npm i @nestia/core @nestia/sdk @nestia/fetcher`,
|
|
61
|
+
` npm i -D nestia`,
|
|
62
|
+
].join("\n"));
|
|
64
63
|
}
|
|
65
64
|
yield import(location);
|
|
66
65
|
}
|
|
@@ -69,7 +68,7 @@ function main() {
|
|
|
69
68
|
});
|
|
70
69
|
}
|
|
71
70
|
main().catch((exp) => {
|
|
72
|
-
console.
|
|
71
|
+
console.error(exp instanceof Error ? exp.message : String(exp));
|
|
73
72
|
process.exit(-1);
|
|
74
73
|
});
|
|
75
74
|
//# sourceMappingURL=index.js.map
|
package/bin/index.js.map
CHANGED
|
@@ -1 +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,MAAM,MAAM,CAAC,oBAAoB,CAAC,CACnC,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,MAAM,MAAM,CAAC,qBAAqB,CAAC,CACpC,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,
|
|
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,MAAM,MAAM,CAAC,oBAAoB,CAAC,CACnC,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,MAAM,MAAM,CAAC,qBAAqB,CAAC,CACpC,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,MAAM,CAAC,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CACpE,IAAI,CACL,CAAC;QACJ,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;uBAAO,CAAC;gBACP,IAAI,CACF;oBACE,qCAAqC;oBACrC,oDAAoD;oBACpD,4CAA4C;oBAC5C,eAAe;oBACf,kDAAkD;oBAClD,mBAAmB;iBACpB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,CAAC,QAAQ,CAAC,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,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nestia",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "12.0.0-dev.20260520.1",
|
|
4
4
|
"description": "Nestia CLI tool",
|
|
5
5
|
"main": "bin/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -32,20 +32,11 @@
|
|
|
32
32
|
"url": "https://github.com/samchon/nestia/issues"
|
|
33
33
|
},
|
|
34
34
|
"homepage": "https://nestia.io",
|
|
35
|
-
"dependencies": {
|
|
36
|
-
"commander": "^10.0.0",
|
|
37
|
-
"comment-json": "^4.2.3",
|
|
38
|
-
"inquirer": "^8.2.5",
|
|
39
|
-
"package-manager-detector": "^0.2.0"
|
|
40
|
-
},
|
|
41
35
|
"devDependencies": {
|
|
42
|
-
"@types/inquirer": "^9.0.3",
|
|
43
36
|
"@types/node": "^25.3.3",
|
|
44
37
|
"rimraf": "^6.1.3",
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"@nestia/sdk": "^11.2.1",
|
|
48
|
-
"@nestia/core": "^11.2.1"
|
|
38
|
+
"@nestia/core": "^12.0.0-dev.20260520.1",
|
|
39
|
+
"@nestia/sdk": "^12.0.0-dev.20260520.1"
|
|
49
40
|
},
|
|
50
41
|
"files": [
|
|
51
42
|
"bin",
|
|
@@ -58,8 +49,8 @@
|
|
|
58
49
|
"access": "public"
|
|
59
50
|
},
|
|
60
51
|
"scripts": {
|
|
61
|
-
"build": "rimraf bin &&
|
|
62
|
-
"dev": "rimraf bin &&
|
|
52
|
+
"build": "rimraf bin && ttsc",
|
|
53
|
+
"dev": "rimraf bin && ttsc --watch"
|
|
63
54
|
},
|
|
64
55
|
"types": "bin/index.d.ts"
|
|
65
56
|
}
|
package/src/NestiaSetupWizard.ts
CHANGED
|
@@ -1,90 +1,119 @@
|
|
|
1
|
+
import cp from "child_process";
|
|
1
2
|
import fs from "fs";
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
type Manager = "npm" | "pnpm" | "yarn" | "bun";
|
|
5
|
+
|
|
6
|
+
const ADD: Record<Manager, string> = {
|
|
7
|
+
npm: "npm install",
|
|
8
|
+
pnpm: "pnpm add",
|
|
9
|
+
yarn: "yarn add",
|
|
10
|
+
bun: "bun add",
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const DEV: Record<Manager, string> = {
|
|
14
|
+
npm: "-D",
|
|
15
|
+
pnpm: "-D",
|
|
16
|
+
yarn: "-D",
|
|
17
|
+
bun: "-d",
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const TAG = "next";
|
|
7
21
|
|
|
8
22
|
export namespace NestiaSetupWizard {
|
|
9
|
-
export async function setup(): Promise<void> {
|
|
23
|
+
export async function setup(argv: string[]): Promise<void> {
|
|
24
|
+
if (!fs.existsSync("package.json")) {
|
|
25
|
+
console.error(
|
|
26
|
+
[
|
|
27
|
+
`npx nestia setup must be run inside a directory that owns a package.json.`,
|
|
28
|
+
`Either cd into the project root, or create one with "npm init -y" and re-run.`,
|
|
29
|
+
].join("\n"),
|
|
30
|
+
);
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const manager: Manager = pick(argv);
|
|
35
|
+
|
|
10
36
|
console.log("----------------------------------------");
|
|
11
37
|
console.log(" Nestia Setup Wizard");
|
|
12
38
|
console.log("----------------------------------------");
|
|
39
|
+
console.log(`package manager : ${manager}`);
|
|
40
|
+
console.log("");
|
|
13
41
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
version: "latest",
|
|
26
|
-
});
|
|
27
|
-
pack.install({ dev: true, modulo: "@nestia/benchmark", version: "latest" });
|
|
28
|
-
pack.install({ dev: true, modulo: "nestia", version: "latest" });
|
|
29
|
-
pack.install({ dev: false, modulo: "typia", version: "latest" });
|
|
42
|
+
const go = cp.spawnSync("go", ["version"], { stdio: "ignore" });
|
|
43
|
+
if (go.status !== 0 && !process.env.TTSC_GO_BINARY) {
|
|
44
|
+
console.warn(
|
|
45
|
+
[
|
|
46
|
+
"Heads up: Go 1.26+ was not found on PATH.",
|
|
47
|
+
"Install it (https://go.dev/dl) or set TTSC_GO_BINARY before you run `ttsc`.",
|
|
48
|
+
"Continuing with the install — the @nestia/core native transform binary is built on demand the first time `ttsc` compiles your project.",
|
|
49
|
+
"",
|
|
50
|
+
].join("\n"),
|
|
51
|
+
);
|
|
52
|
+
}
|
|
30
53
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
CommandExecutor.run(`${runner} tsc --init`);
|
|
42
|
-
return (args.project = "tsconfig.json");
|
|
43
|
-
})();
|
|
54
|
+
install(manager, true, "ttsc", "@typescript/native-preview");
|
|
55
|
+
install(manager, false, tagged("typia"));
|
|
56
|
+
install(
|
|
57
|
+
manager,
|
|
58
|
+
false,
|
|
59
|
+
tagged("@nestia/core"),
|
|
60
|
+
tagged("@nestia/sdk"),
|
|
61
|
+
tagged("@nestia/fetcher"),
|
|
62
|
+
);
|
|
63
|
+
install(manager, true, tagged("nestia"));
|
|
44
64
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
data.scripts.prepare.trim().length !== 0
|
|
52
|
-
) {
|
|
53
|
-
if (data.scripts.prepare.includes("ts-patch install") === false)
|
|
54
|
-
data.scripts.prepare = "ts-patch install && " + data.scripts.prepare;
|
|
55
|
-
} else data.scripts.prepare = "ts-patch install";
|
|
65
|
+
console.log("----------------------------------------");
|
|
66
|
+
console.log(" Nestia setup complete.");
|
|
67
|
+
console.log("----------------------------------------");
|
|
68
|
+
console.log("Next: see https://nestia.io/docs/setup/tsgo");
|
|
69
|
+
console.log("");
|
|
70
|
+
}
|
|
56
71
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
72
|
+
function install(
|
|
73
|
+
manager: Manager,
|
|
74
|
+
dev: boolean,
|
|
75
|
+
...modules: string[]
|
|
76
|
+
): void {
|
|
77
|
+
const command: string = [ADD[manager], dev ? DEV[manager] : "", ...modules]
|
|
78
|
+
.filter((s) => s.length !== 0)
|
|
79
|
+
.join(" ");
|
|
80
|
+
console.log(`$ ${command}`);
|
|
81
|
+
cp.execSync(command, { stdio: "inherit" });
|
|
82
|
+
console.log("");
|
|
83
|
+
}
|
|
63
84
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
.split("&&")
|
|
68
|
-
.map((str) => str.trim())
|
|
69
|
-
.filter((str) => str.indexOf("ts-patch install") === -1)
|
|
70
|
-
.join(" && ");
|
|
71
|
-
if (data.scripts.postinstall.length === 0)
|
|
72
|
-
delete data.scripts.postinstall;
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
CommandExecutor.run(`${pack.manager} run prepare`);
|
|
85
|
+
function tagged(name: string): string {
|
|
86
|
+
return `${name}@${TAG}`;
|
|
87
|
+
}
|
|
76
88
|
|
|
77
|
-
|
|
78
|
-
|
|
89
|
+
function pick(argv: string[]): Manager {
|
|
90
|
+
for (let i = 0; i < argv.length; ++i) {
|
|
91
|
+
const token: string | undefined = argv[i];
|
|
92
|
+
if (token === undefined) continue;
|
|
93
|
+
if (token === "--manager") return ensure(argv[i + 1]);
|
|
94
|
+
if (token.startsWith("--manager="))
|
|
95
|
+
return ensure(token.slice("--manager=".length));
|
|
96
|
+
}
|
|
97
|
+
if (fs.existsSync("bun.lockb") || fs.existsSync("bun.lock")) return "bun";
|
|
98
|
+
if (fs.existsSync("pnpm-lock.yaml")) return "pnpm";
|
|
99
|
+
if (fs.existsSync("yarn.lock")) return "yarn";
|
|
100
|
+
return "npm";
|
|
79
101
|
}
|
|
80
102
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
"
|
|
103
|
+
function ensure(value: string | undefined): Manager {
|
|
104
|
+
if (
|
|
105
|
+
value === "npm" ||
|
|
106
|
+
value === "pnpm" ||
|
|
107
|
+
value === "yarn" ||
|
|
108
|
+
value === "bun"
|
|
109
|
+
)
|
|
110
|
+
return value;
|
|
111
|
+
console.error(
|
|
112
|
+
[
|
|
113
|
+
`--manager requires one of: npm | pnpm | yarn | bun.`,
|
|
114
|
+
`Use either "--manager <name>" or "--manager=<name>".`,
|
|
115
|
+
].join("\n"),
|
|
85
116
|
);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
return json.devDependencies.typescript;
|
|
89
|
-
};
|
|
117
|
+
process.exit(1);
|
|
118
|
+
}
|
|
90
119
|
}
|
package/src/index.ts
CHANGED
|
@@ -5,13 +5,13 @@ npx nestia [command] [options?]
|
|
|
5
5
|
|
|
6
6
|
1. npx nestia start <directory>
|
|
7
7
|
2. npx nestia template <directory>
|
|
8
|
-
3. npx nestia setup
|
|
8
|
+
3. npx nestia setup [--manager npm|pnpm|yarn|bun] (also: --manager=value)
|
|
9
9
|
4. npx nestia dependencies
|
|
10
10
|
5. npx nestia init
|
|
11
11
|
6. npx nestia sdk
|
|
12
12
|
7. npx nestia swagger
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
8. npx nestia e2e
|
|
14
|
+
9. npx nestia all
|
|
15
15
|
`;
|
|
16
16
|
|
|
17
17
|
function halt(desc: string): never {
|
|
@@ -32,14 +32,9 @@ async function main(): Promise<void> {
|
|
|
32
32
|
await import("./NestiaTemplate.js")
|
|
33
33
|
).NestiaTemplate.clone((msg) => halt(msg ?? USAGE))(argv);
|
|
34
34
|
} else if (type === "setup") {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
await import("commander");
|
|
39
|
-
} catch {
|
|
40
|
-
halt(`nestia has not been installed. Run "npm i -D nestia" before.`);
|
|
41
|
-
}
|
|
42
|
-
await (await import("./NestiaSetupWizard.js")).NestiaSetupWizard.setup();
|
|
35
|
+
await (await import("./NestiaSetupWizard.js")).NestiaSetupWizard.setup(
|
|
36
|
+
argv,
|
|
37
|
+
);
|
|
43
38
|
} else if (
|
|
44
39
|
type === "dependencies" ||
|
|
45
40
|
type === "init" ||
|
|
@@ -53,13 +48,20 @@ async function main(): Promise<void> {
|
|
|
53
48
|
require.resolve(location);
|
|
54
49
|
} catch {
|
|
55
50
|
halt(
|
|
56
|
-
|
|
51
|
+
[
|
|
52
|
+
`@nestia/sdk has not been installed.`,
|
|
53
|
+
`Run "npx nestia setup" first, or install manually:`,
|
|
54
|
+
` npm i -D ttsc @typescript/native-preview`,
|
|
55
|
+
` npm i typia`,
|
|
56
|
+
` npm i @nestia/core @nestia/sdk @nestia/fetcher`,
|
|
57
|
+
` npm i -D nestia`,
|
|
58
|
+
].join("\n"),
|
|
57
59
|
);
|
|
58
60
|
}
|
|
59
61
|
await import(location);
|
|
60
62
|
} else halt(USAGE);
|
|
61
63
|
}
|
|
62
64
|
main().catch((exp) => {
|
|
63
|
-
console.
|
|
65
|
+
console.error(exp instanceof Error ? exp.message : String(exp));
|
|
64
66
|
process.exit(-1);
|
|
65
67
|
});
|
|
@@ -1,9 +0,0 @@
|
|
|
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
|
-
}
|