typia 6.10.0 → 6.10.1-dev.20240914
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/lib/executable/TypiaGenerateWizard.js +2 -2
- package/lib/executable/TypiaGenerateWizard.js.map +1 -1
- package/lib/executable/TypiaSetupWizard.js +3 -1
- package/lib/executable/TypiaSetupWizard.js.map +1 -1
- package/lib/executable/setup/SourceFinder.d.ts +8 -0
- package/lib/executable/setup/SourceFinder.js +237 -0
- package/lib/executable/setup/SourceFinder.js.map +1 -0
- package/lib/programmers/TypiaProgrammer.js +114 -130
- package/lib/programmers/TypiaProgrammer.js.map +1 -1
- package/lib/transformers/features/llm/LlmApplicationTransformer.js +4 -30
- package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
- package/package.json +3 -1
- package/src/executable/TypiaGenerateWizard.ts +2 -2
- package/src/executable/TypiaSetupWizard.ts +4 -1
- package/src/executable/setup/SourceFinder.ts +56 -0
- package/src/programmers/TypiaProgrammer.ts +48 -48
- package/src/transformers/features/llm/LlmApplicationTransformer.ts +3 -7
|
@@ -76,7 +76,7 @@ var TypiaGenerateWizard;
|
|
|
76
76
|
var _this = this;
|
|
77
77
|
return __generator(this, function (_a) {
|
|
78
78
|
// PREPARE ASSETS
|
|
79
|
-
command.option("--input [path]", "input directory");
|
|
79
|
+
command.option("--input [path]", "input directory or pattern");
|
|
80
80
|
command.option("--output [directory]", "output directory");
|
|
81
81
|
command.option("--project [project]", "tsconfig.json file location");
|
|
82
82
|
questioned = { value: false };
|
|
@@ -145,7 +145,7 @@ var TypiaGenerateWizard;
|
|
|
145
145
|
return [3 /*break*/, 3];
|
|
146
146
|
case 1:
|
|
147
147
|
_b = options;
|
|
148
|
-
return [4 /*yield*/, input("input")("input directory")];
|
|
148
|
+
return [4 /*yield*/, input("input")("input directory or pattern")];
|
|
149
149
|
case 2:
|
|
150
150
|
_a = (_b.input = _k.sent());
|
|
151
151
|
_k.label = 3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypiaGenerateWizard.js","sourceRoot":"","sources":["../../src/executable/TypiaGenerateWizard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAoB;AAEpB,kEAAiE;AAEjE,yDAAwD;AACxD,yDAAwD;AAExD,IAAiB,mBAAmB,CA2EnC;AA3ED,WAAiB,mBAAmB;;IAClC,SAAsB,QAAQ;;;;;;wBAC5B,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;wBACxD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;wBACtC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;wBAG3B,qBAAM,+BAAc,CAAC,KAAK,EAAE,EAAA;;wBAAnD,IAAI,GAAmB,SAA4B;wBAC7B,qBAAM,+BAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAA;;wBAA/D,OAAO,GAAe,SAAyC;wBACrE,qBAAM,iCAAe,CAAC,KAAK,CAAC,OAAO,CAAC,EAAA;;wBAApC,SAAoC,CAAC;;;;;KACtC;IATqB,4BAAQ,WAS7B,CAAA;IAED,IAAM,OAAO,GAAuC,UAClD,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM;;;;YAEN,iBAAiB;YACjB,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"TypiaGenerateWizard.js","sourceRoot":"","sources":["../../src/executable/TypiaGenerateWizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,11 +52,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.TypiaSetupWizard = void 0;
|
|
54
54
|
var fs_1 = __importDefault(require("fs"));
|
|
55
|
+
var path_1 = __importDefault(require("path"));
|
|
55
56
|
var package_manager_detector_1 = require("package-manager-detector");
|
|
56
57
|
var ArgumentParser_1 = require("./setup/ArgumentParser");
|
|
57
58
|
var CommandExecutor_1 = require("./setup/CommandExecutor");
|
|
58
59
|
var PackageManager_1 = require("./setup/PackageManager");
|
|
59
60
|
var PluginConfigurator_1 = require("./setup/PluginConfigurator");
|
|
61
|
+
var pkg = JSON.parse(fs_1.default.readFileSync(path_1.default.join(__dirname, "../../package.json"), "utf-8"));
|
|
60
62
|
var TypiaSetupWizard;
|
|
61
63
|
(function (TypiaSetupWizard) {
|
|
62
64
|
var _this = this;
|
|
@@ -77,7 +79,7 @@ var TypiaSetupWizard;
|
|
|
77
79
|
case 2:
|
|
78
80
|
args = _b.sent();
|
|
79
81
|
// INSTALL TYPESCRIPT COMPILERS
|
|
80
|
-
pack.install({ dev: true, modulo: "typescript", version:
|
|
82
|
+
pack.install({ dev: true, modulo: "typescript", version: pkg.devDependencies.typescript });
|
|
81
83
|
pack.install({ dev: true, modulo: "ts-patch", version: "latest" });
|
|
82
84
|
(_a = args.project) !== null && _a !== void 0 ? _a : (args.project = (function () {
|
|
83
85
|
var runner = pack.manager === "npm" ? "npx" : pack.manager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypiaSetupWizard.js","sourceRoot":"","sources":["../../src/executable/TypiaSetupWizard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAoB;AACpB,qEAAgE;AAEhE,yDAAwD;AACxD,2DAA0D;AAC1D,yDAAwD;AACxD,iEAAgE;AAEhE,IAAiB,gBAAgB,CAuJhC;AAvJD,WAAiB,gBAAgB;;IAM/B,SAAsB,KAAK;;;;;;;wBACzB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;wBACxD,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;wBACnC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;wBAG3B,qBAAM,+BAAc,CAAC,KAAK,EAAE,EAAA;;wBAAnD,IAAI,GAAmB,SAA4B;wBAChC,qBAAM,+BAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAA;;wBAA5D,IAAI,GAAe,SAAyC;wBAElE,+BAA+B;wBAC/B,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TypiaSetupWizard.js","sourceRoot":"","sources":["../../src/executable/TypiaSetupWizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,237 @@
|
|
|
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 __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
39
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
+
if (!m) return o;
|
|
41
|
+
var i = m.call(o), r, ar = [], e;
|
|
42
|
+
try {
|
|
43
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
+
}
|
|
45
|
+
catch (error) { e = { error: error }; }
|
|
46
|
+
finally {
|
|
47
|
+
try {
|
|
48
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
+
}
|
|
50
|
+
finally { if (e) throw e.error; }
|
|
51
|
+
}
|
|
52
|
+
return ar;
|
|
53
|
+
};
|
|
54
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
55
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
56
|
+
if (ar || !(i in from)) {
|
|
57
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
58
|
+
ar[i] = from[i];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
62
|
+
};
|
|
63
|
+
var __values = (this && this.__values) || function(o) {
|
|
64
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
65
|
+
if (m) return m.call(o);
|
|
66
|
+
if (o && typeof o.length === "number") return {
|
|
67
|
+
next: function () {
|
|
68
|
+
if (o && i >= o.length) o = void 0;
|
|
69
|
+
return { value: o && o[i++], done: !o };
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
73
|
+
};
|
|
74
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
75
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
76
|
+
};
|
|
77
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
78
|
+
exports.SourceFinder = void 0;
|
|
79
|
+
var fs_1 = __importDefault(require("fs"));
|
|
80
|
+
var glob_1 = __importDefault(require("glob"));
|
|
81
|
+
var path_1 = __importDefault(require("path"));
|
|
82
|
+
var SourceFinder;
|
|
83
|
+
(function (SourceFinder) {
|
|
84
|
+
var _this = this;
|
|
85
|
+
SourceFinder.find = function (props) { return __awaiter(_this, void 0, void 0, function () {
|
|
86
|
+
var dict;
|
|
87
|
+
var _a;
|
|
88
|
+
return __generator(this, function (_b) {
|
|
89
|
+
switch (_b.label) {
|
|
90
|
+
case 0:
|
|
91
|
+
dict = new Set();
|
|
92
|
+
return [4 /*yield*/, emplace(props.filter)(props.include)(function (str) { return dict.add(str); })];
|
|
93
|
+
case 1:
|
|
94
|
+
_b.sent();
|
|
95
|
+
if (!((_a = props.exclude) === null || _a === void 0 ? void 0 : _a.length)) return [3 /*break*/, 3];
|
|
96
|
+
return [4 /*yield*/, emplace(props.filter)(props.exclude)(function (str) { return dict.delete(str); })];
|
|
97
|
+
case 2:
|
|
98
|
+
_b.sent();
|
|
99
|
+
_b.label = 3;
|
|
100
|
+
case 3: return [2 /*return*/, __spreadArray([], __read(dict), false)];
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}); };
|
|
104
|
+
var emplace = function (filter) {
|
|
105
|
+
return function (input) {
|
|
106
|
+
return function (closure) { return __awaiter(_this, void 0, void 0, function () {
|
|
107
|
+
var input_1, input_1_1, pattern, _a, _b, file, stats, e_1_1, e_2_1;
|
|
108
|
+
var e_2, _c, e_1, _d;
|
|
109
|
+
return __generator(this, function (_e) {
|
|
110
|
+
switch (_e.label) {
|
|
111
|
+
case 0:
|
|
112
|
+
_e.trys.push([0, 14, 15, 16]);
|
|
113
|
+
input_1 = __values(input), input_1_1 = input_1.next();
|
|
114
|
+
_e.label = 1;
|
|
115
|
+
case 1:
|
|
116
|
+
if (!!input_1_1.done) return [3 /*break*/, 13];
|
|
117
|
+
pattern = input_1_1.value;
|
|
118
|
+
_e.label = 2;
|
|
119
|
+
case 2:
|
|
120
|
+
_e.trys.push([2, 10, 11, 12]);
|
|
121
|
+
e_1 = void 0;
|
|
122
|
+
return [4 /*yield*/, _Glob(path_1.default.resolve(pattern))];
|
|
123
|
+
case 3:
|
|
124
|
+
_a = (__values.apply(void 0, [_e.sent()])), _b = _a.next();
|
|
125
|
+
_e.label = 4;
|
|
126
|
+
case 4:
|
|
127
|
+
if (!!_b.done) return [3 /*break*/, 9];
|
|
128
|
+
file = _b.value;
|
|
129
|
+
return [4 /*yield*/, fs_1.default.promises.stat(file)];
|
|
130
|
+
case 5:
|
|
131
|
+
stats = _e.sent();
|
|
132
|
+
if (!(stats.isDirectory() === true)) return [3 /*break*/, 7];
|
|
133
|
+
return [4 /*yield*/, iterate(filter)(closure)(file)];
|
|
134
|
+
case 6:
|
|
135
|
+
_e.sent();
|
|
136
|
+
return [3 /*break*/, 8];
|
|
137
|
+
case 7:
|
|
138
|
+
if (stats.isFile() && filter(file))
|
|
139
|
+
closure(file);
|
|
140
|
+
_e.label = 8;
|
|
141
|
+
case 8:
|
|
142
|
+
_b = _a.next();
|
|
143
|
+
return [3 /*break*/, 4];
|
|
144
|
+
case 9: return [3 /*break*/, 12];
|
|
145
|
+
case 10:
|
|
146
|
+
e_1_1 = _e.sent();
|
|
147
|
+
e_1 = { error: e_1_1 };
|
|
148
|
+
return [3 /*break*/, 12];
|
|
149
|
+
case 11:
|
|
150
|
+
try {
|
|
151
|
+
if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
|
|
152
|
+
}
|
|
153
|
+
finally { if (e_1) throw e_1.error; }
|
|
154
|
+
return [7 /*endfinally*/];
|
|
155
|
+
case 12:
|
|
156
|
+
input_1_1 = input_1.next();
|
|
157
|
+
return [3 /*break*/, 1];
|
|
158
|
+
case 13: return [3 /*break*/, 16];
|
|
159
|
+
case 14:
|
|
160
|
+
e_2_1 = _e.sent();
|
|
161
|
+
e_2 = { error: e_2_1 };
|
|
162
|
+
return [3 /*break*/, 16];
|
|
163
|
+
case 15:
|
|
164
|
+
try {
|
|
165
|
+
if (input_1_1 && !input_1_1.done && (_c = input_1.return)) _c.call(input_1);
|
|
166
|
+
}
|
|
167
|
+
finally { if (e_2) throw e_2.error; }
|
|
168
|
+
return [7 /*endfinally*/];
|
|
169
|
+
case 16: return [2 /*return*/];
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
}); };
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
var iterate = function (filter) {
|
|
176
|
+
return function (closure) {
|
|
177
|
+
return function (location) { return __awaiter(_this, void 0, void 0, function () {
|
|
178
|
+
var directory, directory_1, directory_1_1, file, next, stats, e_3_1;
|
|
179
|
+
var e_3, _a;
|
|
180
|
+
return __generator(this, function (_b) {
|
|
181
|
+
switch (_b.label) {
|
|
182
|
+
case 0: return [4 /*yield*/, fs_1.default.promises.readdir(location)];
|
|
183
|
+
case 1:
|
|
184
|
+
directory = _b.sent();
|
|
185
|
+
_b.label = 2;
|
|
186
|
+
case 2:
|
|
187
|
+
_b.trys.push([2, 9, 10, 11]);
|
|
188
|
+
directory_1 = __values(directory), directory_1_1 = directory_1.next();
|
|
189
|
+
_b.label = 3;
|
|
190
|
+
case 3:
|
|
191
|
+
if (!!directory_1_1.done) return [3 /*break*/, 8];
|
|
192
|
+
file = directory_1_1.value;
|
|
193
|
+
next = path_1.default.resolve("".concat(location, "/").concat(file));
|
|
194
|
+
return [4 /*yield*/, fs_1.default.promises.stat(next)];
|
|
195
|
+
case 4:
|
|
196
|
+
stats = _b.sent();
|
|
197
|
+
if (!(stats.isDirectory() === true)) return [3 /*break*/, 6];
|
|
198
|
+
return [4 /*yield*/, iterate(filter)(closure)(next)];
|
|
199
|
+
case 5:
|
|
200
|
+
_b.sent();
|
|
201
|
+
return [3 /*break*/, 7];
|
|
202
|
+
case 6:
|
|
203
|
+
if (stats.isFile() && filter(next))
|
|
204
|
+
closure(next);
|
|
205
|
+
_b.label = 7;
|
|
206
|
+
case 7:
|
|
207
|
+
directory_1_1 = directory_1.next();
|
|
208
|
+
return [3 /*break*/, 3];
|
|
209
|
+
case 8: return [3 /*break*/, 11];
|
|
210
|
+
case 9:
|
|
211
|
+
e_3_1 = _b.sent();
|
|
212
|
+
e_3 = { error: e_3_1 };
|
|
213
|
+
return [3 /*break*/, 11];
|
|
214
|
+
case 10:
|
|
215
|
+
try {
|
|
216
|
+
if (directory_1_1 && !directory_1_1.done && (_a = directory_1.return)) _a.call(directory_1);
|
|
217
|
+
}
|
|
218
|
+
finally { if (e_3) throw e_3.error; }
|
|
219
|
+
return [7 /*endfinally*/];
|
|
220
|
+
case 11: return [2 /*return*/];
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
}); };
|
|
224
|
+
};
|
|
225
|
+
};
|
|
226
|
+
var _Glob = function (pattern) {
|
|
227
|
+
return new Promise(function (resolve, reject) {
|
|
228
|
+
(0, glob_1.default)(pattern, function (err, matches) {
|
|
229
|
+
if (err)
|
|
230
|
+
reject(err);
|
|
231
|
+
else
|
|
232
|
+
resolve(matches.map(function (str) { return path_1.default.resolve(str); }));
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
};
|
|
236
|
+
})(SourceFinder || (exports.SourceFinder = SourceFinder = {}));
|
|
237
|
+
//# sourceMappingURL=SourceFinder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceFinder.js","sourceRoot":"","sources":["../../../src/executable/setup/SourceFinder.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,6 +62,15 @@ var __values = (this && this.__values) || function(o) {
|
|
|
62
62
|
};
|
|
63
63
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
64
64
|
};
|
|
65
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
66
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
67
|
+
if (ar || !(i in from)) {
|
|
68
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
69
|
+
ar[i] = from[i];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
73
|
+
};
|
|
65
74
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
66
75
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
67
76
|
};
|
|
@@ -71,77 +80,70 @@ var fs_1 = __importDefault(require("fs"));
|
|
|
71
80
|
var path_1 = __importDefault(require("path"));
|
|
72
81
|
var typescript_1 = __importDefault(require("typescript"));
|
|
73
82
|
var ImportTransformer_1 = require("../transformers/ImportTransformer");
|
|
83
|
+
var SourceFinder_1 = require("../executable/setup/SourceFinder");
|
|
74
84
|
var transform_1 = __importDefault(require("../transform"));
|
|
75
85
|
var TypiaProgrammer;
|
|
76
86
|
(function (TypiaProgrammer) {
|
|
77
87
|
var _this = this;
|
|
78
88
|
TypiaProgrammer.build = function (props) { return __awaiter(_this, void 0, void 0, function () {
|
|
79
|
-
var
|
|
80
|
-
var e_2,
|
|
81
|
-
var
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
+
var files, parent_1, base, compilerOptions, program, diagnostics, result, _loop_1, diagnostics_1, diagnostics_1_1, diag, directories, printer, _a, _b, file, to, content, parents, i, parent_2, _c, e_1_1;
|
|
90
|
+
var e_2, _d, e_1, _e;
|
|
91
|
+
var _f, _g;
|
|
92
|
+
return __generator(this, function (_h) {
|
|
93
|
+
switch (_h.label) {
|
|
94
|
+
case 0: return [4 /*yield*/, SourceFinder_1.SourceFinder.find({
|
|
95
|
+
include: [props.input],
|
|
96
|
+
filter: function (location) {
|
|
97
|
+
return (location.endsWith(".ts") && !location.endsWith("d.ts")) ||
|
|
98
|
+
(location.endsWith(".tsx") && !location.endsWith("d.tsx"));
|
|
99
|
+
},
|
|
100
|
+
})];
|
|
89
101
|
case 1:
|
|
90
|
-
|
|
91
|
-
|
|
102
|
+
files = _h.sent();
|
|
103
|
+
if (!(files.length === 0)) return [3 /*break*/, 2];
|
|
104
|
+
throw new Error("Error on TypiaGenerator.generate(): no file to generate.");
|
|
92
105
|
case 2:
|
|
93
106
|
if (!(fs_1.default.existsSync(props.output) === false)) return [3 /*break*/, 4];
|
|
94
107
|
return [4 /*yield*/, fs_1.default.promises.mkdir(props.output, { recursive: true })];
|
|
95
108
|
case 3:
|
|
96
|
-
|
|
109
|
+
_h.sent();
|
|
97
110
|
return [3 /*break*/, 8];
|
|
98
|
-
case 4: return [4 /*yield*/,
|
|
111
|
+
case 4: return [4 /*yield*/, isDirectory(props.output)];
|
|
99
112
|
case 5:
|
|
100
|
-
if (!((
|
|
113
|
+
if (!((_h.sent()) === false)) return [3 /*break*/, 8];
|
|
101
114
|
parent_1 = path_1.default.join(props.output, "..");
|
|
102
|
-
return [4 /*yield*/,
|
|
115
|
+
return [4 /*yield*/, isDirectory(parent_1)];
|
|
103
116
|
case 6:
|
|
104
|
-
if ((
|
|
105
|
-
throw new
|
|
117
|
+
if ((_h.sent()) === false)
|
|
118
|
+
throw new Error("Error on TypiaGenerator.generate(): output path is not a directory.");
|
|
106
119
|
return [4 /*yield*/, fs_1.default.promises.mkdir(props.output)];
|
|
107
120
|
case 7:
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
case 8:
|
|
121
|
+
_h.sent();
|
|
122
|
+
_h.label = 8;
|
|
123
|
+
case 8: return [4 /*yield*/, isDirectory(props.input)];
|
|
124
|
+
case 9:
|
|
125
|
+
base = (_h.sent())
|
|
126
|
+
? path_1.default.resolve(props.input)
|
|
127
|
+
: getBaseDirectory(files);
|
|
111
128
|
compilerOptions = typescript_1.default.parseJsonConfigFileContent(typescript_1.default.readConfigFile(props.project, typescript_1.default.sys.readFile).config, {
|
|
112
129
|
fileExists: typescript_1.default.sys.fileExists,
|
|
113
130
|
readFile: typescript_1.default.sys.readFile,
|
|
114
131
|
readDirectory: typescript_1.default.sys.readDirectory,
|
|
115
132
|
useCaseSensitiveFileNames: typescript_1.default.sys.useCaseSensitiveFileNames,
|
|
116
133
|
}, path_1.default.dirname(props.project)).options;
|
|
117
|
-
|
|
118
|
-
return [4 /*yield*/, (function () { return __awaiter(_this, void 0, void 0, function () {
|
|
119
|
-
var container;
|
|
120
|
-
return __generator(this, function (_a) {
|
|
121
|
-
switch (_a.label) {
|
|
122
|
-
case 0:
|
|
123
|
-
container = [];
|
|
124
|
-
return [4 /*yield*/, gather(props)(container)(props.input)(props.output)];
|
|
125
|
-
case 1:
|
|
126
|
-
_a.sent();
|
|
127
|
-
return [2 /*return*/, container];
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
}); })()];
|
|
131
|
-
case 9:
|
|
132
|
-
program = _b.apply(_a, [_j.sent(), compilerOptions]);
|
|
134
|
+
program = typescript_1.default.createProgram(files, compilerOptions);
|
|
133
135
|
diagnostics = [];
|
|
134
136
|
result = typescript_1.default.transform(program
|
|
135
137
|
.getSourceFiles()
|
|
136
138
|
.filter(function (file) {
|
|
137
139
|
return !file.isDeclarationFile &&
|
|
138
|
-
path_1.default.resolve(file.fileName).indexOf(
|
|
140
|
+
path_1.default.resolve(file.fileName).indexOf(base) !== -1;
|
|
139
141
|
}), [
|
|
140
|
-
ImportTransformer_1.ImportTransformer.transform(
|
|
141
|
-
(0, transform_1.default)(program, (
|
|
142
|
+
ImportTransformer_1.ImportTransformer.transform(base)(props.output),
|
|
143
|
+
(0, transform_1.default)(program, (_g = ((_f = compilerOptions.plugins) !== null && _f !== void 0 ? _f : []).find(function (p) {
|
|
142
144
|
return p.transform === "typia/lib/transform" ||
|
|
143
145
|
p.transform === "../src/transform.ts";
|
|
144
|
-
})) !== null &&
|
|
146
|
+
})) !== null && _g !== void 0 ? _g : {}, {
|
|
145
147
|
addDiagnostic: function (diag) { return diagnostics.push(diag); },
|
|
146
148
|
}),
|
|
147
149
|
], program.getCompilerOptions());
|
|
@@ -158,7 +160,7 @@ var TypiaProgrammer;
|
|
|
158
160
|
: diag.category === typescript_1.default.DiagnosticCategory.Message
|
|
159
161
|
? "message"
|
|
160
162
|
: "unkown";
|
|
161
|
-
var
|
|
163
|
+
var _j = __read(diag.file
|
|
162
164
|
? (function () {
|
|
163
165
|
var lines = diag
|
|
164
166
|
.file.text.substring(0, diag.start)
|
|
@@ -167,7 +169,7 @@ var TypiaProgrammer;
|
|
|
167
169
|
return [0, 0];
|
|
168
170
|
return [lines.length, lines.at(-1).length + 1];
|
|
169
171
|
})()
|
|
170
|
-
: [0, 0], 2), line =
|
|
172
|
+
: [0, 0], 2), line = _j[0], pos = _j[1];
|
|
171
173
|
console.error("".concat(file, ":").concat(line, ":").concat(pos, " - ").concat(category, " TS").concat(diag.code, ": ").concat(diag.messageText));
|
|
172
174
|
};
|
|
173
175
|
try {
|
|
@@ -180,123 +182,105 @@ var TypiaProgrammer;
|
|
|
180
182
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
181
183
|
finally {
|
|
182
184
|
try {
|
|
183
|
-
if (diagnostics_1_1 && !diagnostics_1_1.done && (
|
|
185
|
+
if (diagnostics_1_1 && !diagnostics_1_1.done && (_d = diagnostics_1.return)) _d.call(diagnostics_1);
|
|
184
186
|
}
|
|
185
187
|
finally { if (e_2) throw e_2.error; }
|
|
186
188
|
}
|
|
187
189
|
if (diagnostics.length)
|
|
188
190
|
process.exit(-1);
|
|
191
|
+
directories = new Set();
|
|
189
192
|
printer = typescript_1.default.createPrinter({
|
|
190
193
|
newLine: typescript_1.default.NewLineKind.LineFeed,
|
|
191
194
|
});
|
|
192
|
-
|
|
195
|
+
_h.label = 10;
|
|
193
196
|
case 10:
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
+
_h.trys.push([10, 21, 22, 23]);
|
|
198
|
+
_a = __values(result.transformed), _b = _a.next();
|
|
199
|
+
_h.label = 11;
|
|
197
200
|
case 11:
|
|
198
|
-
if (!!
|
|
199
|
-
file =
|
|
201
|
+
if (!!_b.done) return [3 /*break*/, 20];
|
|
202
|
+
file = _b.value;
|
|
200
203
|
to = path_1.default
|
|
201
204
|
.resolve(file.fileName)
|
|
202
|
-
.replace(
|
|
205
|
+
.replace(base, props.output);
|
|
203
206
|
content = printer.printFile(file);
|
|
204
|
-
|
|
207
|
+
parents = to.split(path_1.default.sep);
|
|
208
|
+
i = 1;
|
|
209
|
+
_h.label = 12;
|
|
205
210
|
case 12:
|
|
206
|
-
|
|
207
|
-
|
|
211
|
+
if (!(i < parents.length)) return [3 /*break*/, 17];
|
|
212
|
+
parent_2 = parents.slice(0, i).join(path_1.default.sep);
|
|
213
|
+
if (directories.has(parent_2))
|
|
214
|
+
return [3 /*break*/, 16];
|
|
215
|
+
_h.label = 13;
|
|
208
216
|
case 13:
|
|
209
|
-
|
|
210
|
-
return [
|
|
211
|
-
case 14:
|
|
217
|
+
_h.trys.push([13, 15, , 16]);
|
|
218
|
+
return [4 /*yield*/, fs_1.default.promises.mkdir(parent_2)];
|
|
219
|
+
case 14:
|
|
220
|
+
_h.sent();
|
|
221
|
+
return [3 /*break*/, 16];
|
|
212
222
|
case 15:
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
return [3 /*break*/, 17];
|
|
223
|
+
_c = _h.sent();
|
|
224
|
+
return [3 /*break*/, 16];
|
|
216
225
|
case 16:
|
|
226
|
+
i++;
|
|
227
|
+
return [3 /*break*/, 12];
|
|
228
|
+
case 17: return [4 /*yield*/, fs_1.default.promises.writeFile(to, content, "utf8")];
|
|
229
|
+
case 18:
|
|
230
|
+
_h.sent();
|
|
231
|
+
_h.label = 19;
|
|
232
|
+
case 19:
|
|
233
|
+
_b = _a.next();
|
|
234
|
+
return [3 /*break*/, 11];
|
|
235
|
+
case 20: return [3 /*break*/, 23];
|
|
236
|
+
case 21:
|
|
237
|
+
e_1_1 = _h.sent();
|
|
238
|
+
e_1 = { error: e_1_1 };
|
|
239
|
+
return [3 /*break*/, 23];
|
|
240
|
+
case 22:
|
|
217
241
|
try {
|
|
218
|
-
if (
|
|
242
|
+
if (_b && !_b.done && (_e = _a.return)) _e.call(_a);
|
|
219
243
|
}
|
|
220
244
|
finally { if (e_1) throw e_1.error; }
|
|
221
245
|
return [7 /*endfinally*/];
|
|
222
|
-
case
|
|
246
|
+
case 23: return [2 /*return*/];
|
|
223
247
|
}
|
|
224
248
|
});
|
|
225
249
|
}); };
|
|
226
|
-
var
|
|
227
|
-
var stat;
|
|
228
|
-
return __generator(this, function (
|
|
229
|
-
switch (
|
|
230
|
-
case 0:
|
|
250
|
+
var isDirectory = function (current) { return __awaiter(_this, void 0, void 0, function () {
|
|
251
|
+
var stat, _a;
|
|
252
|
+
return __generator(this, function (_b) {
|
|
253
|
+
switch (_b.label) {
|
|
254
|
+
case 0:
|
|
255
|
+
_b.trys.push([0, 2, , 3]);
|
|
256
|
+
return [4 /*yield*/, fs_1.default.promises.stat(current)];
|
|
231
257
|
case 1:
|
|
232
|
-
stat =
|
|
258
|
+
stat = _b.sent();
|
|
233
259
|
return [2 /*return*/, stat.isDirectory()];
|
|
260
|
+
case 2:
|
|
261
|
+
_a = _b.sent();
|
|
262
|
+
return [2 /*return*/, false];
|
|
263
|
+
case 3: return [2 /*return*/];
|
|
234
264
|
}
|
|
235
265
|
});
|
|
236
266
|
}); };
|
|
237
|
-
var
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
return [2 /*return*/];
|
|
248
|
-
case 1:
|
|
249
|
-
if (!(fs_1.default.existsSync(to) === false)) return [3 /*break*/, 3];
|
|
250
|
-
return [4 /*yield*/, fs_1.default.promises.mkdir(to)];
|
|
251
|
-
case 2:
|
|
252
|
-
_d.sent();
|
|
253
|
-
_d.label = 3;
|
|
254
|
-
case 3:
|
|
255
|
-
_d.trys.push([3, 11, 12, 13]);
|
|
256
|
-
return [4 /*yield*/, fs_1.default.promises.readdir(from)];
|
|
257
|
-
case 4:
|
|
258
|
-
_a = __values.apply(void 0, [_d.sent()]), _b = _a.next();
|
|
259
|
-
_d.label = 5;
|
|
260
|
-
case 5:
|
|
261
|
-
if (!!_b.done) return [3 /*break*/, 10];
|
|
262
|
-
file = _b.value;
|
|
263
|
-
next = path_1.default.join(from, file);
|
|
264
|
-
return [4 /*yield*/, fs_1.default.promises.stat(next)];
|
|
265
|
-
case 6:
|
|
266
|
-
stat = _d.sent();
|
|
267
|
-
if (!stat.isDirectory()) return [3 /*break*/, 8];
|
|
268
|
-
return [4 /*yield*/, gather(props)(container)(next)(path_1.default.join(to, file))];
|
|
269
|
-
case 7:
|
|
270
|
-
_d.sent();
|
|
271
|
-
return [3 /*break*/, 9];
|
|
272
|
-
case 8:
|
|
273
|
-
if (is_supported_extension(file))
|
|
274
|
-
container.push(next);
|
|
275
|
-
_d.label = 9;
|
|
276
|
-
case 9:
|
|
277
|
-
_b = _a.next();
|
|
278
|
-
return [3 /*break*/, 5];
|
|
279
|
-
case 10: return [3 /*break*/, 13];
|
|
280
|
-
case 11:
|
|
281
|
-
e_3_1 = _d.sent();
|
|
282
|
-
e_3 = { error: e_3_1 };
|
|
283
|
-
return [3 /*break*/, 13];
|
|
284
|
-
case 12:
|
|
285
|
-
try {
|
|
286
|
-
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
287
|
-
}
|
|
288
|
-
finally { if (e_3) throw e_3.error; }
|
|
289
|
-
return [7 /*endfinally*/];
|
|
290
|
-
case 13: return [2 /*return*/];
|
|
291
|
-
}
|
|
292
|
-
});
|
|
293
|
-
}); };
|
|
294
|
-
};
|
|
267
|
+
var getBaseDirectory = function (files) {
|
|
268
|
+
var splitPaths = files.map(function (p) { return p.split(path_1.default.sep); });
|
|
269
|
+
var minLength = Math.min.apply(Math, __spreadArray([], __read(splitPaths.map(function (p) { return p.length; })), false));
|
|
270
|
+
var commonPath = [];
|
|
271
|
+
var _loop_2 = function (i) {
|
|
272
|
+
var currentSegment = splitPaths[0][i];
|
|
273
|
+
if (splitPaths.every(function (p) { return p[i] === currentSegment; }))
|
|
274
|
+
commonPath.push(currentSegment);
|
|
275
|
+
else
|
|
276
|
+
return "break";
|
|
295
277
|
};
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
278
|
+
for (var i = 0; i < minLength; i++) {
|
|
279
|
+
var state_1 = _loop_2(i);
|
|
280
|
+
if (state_1 === "break")
|
|
281
|
+
break;
|
|
282
|
+
}
|
|
283
|
+
return commonPath.length > 0 ? commonPath.join(path_1.default.sep) : "";
|
|
300
284
|
};
|
|
301
285
|
})(TypiaProgrammer || (exports.TypiaProgrammer = TypiaProgrammer = {}));
|
|
302
286
|
//# sourceMappingURL=TypiaProgrammer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypiaProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypiaProgrammer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TypiaProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypiaProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
-
if (!m) return o;
|
|
5
|
-
var i = m.call(o), r, ar = [], e;
|
|
6
|
-
try {
|
|
7
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
-
}
|
|
9
|
-
catch (error) { e = { error: error }; }
|
|
10
|
-
finally {
|
|
11
|
-
try {
|
|
12
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
-
}
|
|
14
|
-
finally { if (e) throw e.error; }
|
|
15
|
-
}
|
|
16
|
-
return ar;
|
|
17
|
-
};
|
|
18
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
19
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
20
|
-
if (ar || !(i in from)) {
|
|
21
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
22
|
-
ar[i] = from[i];
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
|
-
};
|
|
27
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
28
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
29
4
|
};
|
|
@@ -70,13 +45,12 @@ var LlmApplicationTransformer;
|
|
|
70
45
|
throw TransformerError_1.TransformerError.from("typia.llm.application")(result.errors);
|
|
71
46
|
// GENERATE LLM APPLICATION
|
|
72
47
|
var schema = LlmApplicationProgrammer_1.LlmApplicationProgrammer.write(result.data);
|
|
48
|
+
var literal = LiteralFactory_1.LiteralFactory.generate(schema);
|
|
49
|
+
if (!((_b = expression.arguments) === null || _b === void 0 ? void 0 : _b[0]))
|
|
50
|
+
return literal;
|
|
73
51
|
return ExpressionFactory_1.ExpressionFactory.selfCall(typescript_1.default.factory.createBlock([
|
|
74
52
|
StatementFactory_1.StatementFactory.constant("app", LiteralFactory_1.LiteralFactory.generate(schema)),
|
|
75
|
-
typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createAsExpression(IdentifierFactory_1.IdentifierFactory.access(modulo)("finalize"), TypeFactory_1.TypeFactory.keyword("any")), undefined,
|
|
76
|
-
typescript_1.default.factory.createIdentifier("app")
|
|
77
|
-
], __read((((_b = expression.arguments) === null || _b === void 0 ? void 0 : _b[0])
|
|
78
|
-
? [expression.arguments[0]]
|
|
79
|
-
: [])), false))),
|
|
53
|
+
typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createAsExpression(IdentifierFactory_1.IdentifierFactory.access(modulo)("finalize"), TypeFactory_1.TypeFactory.keyword("any")), undefined, [typescript_1.default.factory.createIdentifier("app"), expression.arguments[0]])),
|
|
80
54
|
typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createIdentifier("app")),
|
|
81
55
|
], true));
|
|
82
56
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlmApplicationTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/llm/LlmApplicationTransformer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LlmApplicationTransformer.js","sourceRoot":"","sources":["../../../../src/transformers/features/llm/LlmApplicationTransformer.ts"],"names":[],"mappings":";;;;;;AACA,0DAA4B;AAE5B,0EAAyE;AACzE,0EAAyE;AACzE,oEAAmE;AACnE,4EAA2E;AAC3E,sEAAqE;AACrE,wEAAuE;AACvE,8DAA6D;AAI7D,8FAA6F;AAK7F,2DAA0D;AAE1D,IAAiB,yBAAyB,CA8DzC;AA9DD,WAAiB,yBAAyB;IAC3B,mCAAS,GACpB,UAAC,OAAiB;QAClB,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,UAA6B;;gBAC5B,uBAAuB;gBACvB,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,aAAa,0CAAE,MAAM,CAAA;oBACnC,MAAM,IAAI,mCAAgB,CAAC;wBACzB,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,sBAAsB;qBAChC,CAAC,CAAC;gBAEL,IAAM,GAAG,GAAY,UAAU,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC;gBAClD,IAAI,oBAAE,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,KAAK;oBAAE,OAAO,UAAU,CAAC;gBAEpD,WAAW;gBACX,IAAM,IAAI,GAAY,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBAC/D,IAAM,UAAU,GAAuB,IAAI,uCAAkB,CAAC;oBAC5D,OAAO,EAAE,uCAAkB,CAAC,OAAO;iBACpC,CAAC,CAAC;gBACH,IAAM,MAAM,GACV,iCAAe,CAAC,OAAO,CACrB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,CAChB,CAAC;oBACA,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,IAAI;oBAChB,QAAQ,EAAE,mDAAwB,CAAC,QAAQ;iBAC5C,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;gBACvB,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;oBAC1B,MAAM,mCAAgB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAEtE,2BAA2B;gBAC3B,IAAM,MAAM,GAAoB,mDAAwB,CAAC,KAAK,CAC5D,MAAM,CAAC,IAAI,CACZ,CAAC;gBACF,IAAM,OAAO,GAAkB,+BAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC/D,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,SAAS,0CAAG,CAAC,CAAC,CAAA;oBAAE,OAAO,OAAO,CAAC;gBAC/C,OAAO,qCAAiB,CAAC,QAAQ,CAC/B,oBAAE,CAAC,OAAO,CAAC,WAAW,CACpB;oBACE,mCAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,+BAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACjE,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAClC,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC7B,oBAAE,CAAC,OAAO,CAAC,kBAAkB,CAC3B,qCAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,EAC5C,yBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAC3B,EACD,SAAS,EACT,CAAC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAC9D,CACF;oBACD,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC9B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CACnC;iBACF,EACD,IAAI,CACL,CACF,CAAC;YACJ,CAAC;QAzDD,CAyDC;IA1DD,CA0DC,CAAC;AACN,CAAC,EA9DgB,yBAAyB,yCAAzB,yBAAyB,QA8DzC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typia",
|
|
3
|
-
"version": "6.10.
|
|
3
|
+
"version": "6.10.1-dev.20240914",
|
|
4
4
|
"description": "Superfast runtime validators with only one line",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
"@samchon/openapi": "^1.0.0",
|
|
71
71
|
"commander": "^10.0.0",
|
|
72
72
|
"comment-json": "^4.2.3",
|
|
73
|
+
"glob": "^7.2.0",
|
|
73
74
|
"inquirer": "^8.2.5",
|
|
74
75
|
"package-manager-detector": "^0.2.0",
|
|
75
76
|
"randexp": "^0.5.3"
|
|
@@ -82,6 +83,7 @@
|
|
|
82
83
|
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
83
84
|
"@rollup/plugin-typescript": "^11.1.6",
|
|
84
85
|
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
|
|
86
|
+
"@types/glob": "^7.2.0",
|
|
85
87
|
"@types/inquirer": "^8.2.5",
|
|
86
88
|
"@types/node": "^18.15.12",
|
|
87
89
|
"@types/ts-expose-internals": "npm:ts-expose-internals@5.5.4",
|
|
@@ -24,7 +24,7 @@ export namespace TypiaGenerateWizard {
|
|
|
24
24
|
action,
|
|
25
25
|
) => {
|
|
26
26
|
// PREPARE ASSETS
|
|
27
|
-
command.option("--input [path]", "input directory");
|
|
27
|
+
command.option("--input [path]", "input directory or pattern");
|
|
28
28
|
command.option("--output [directory]", "output directory");
|
|
29
29
|
command.option("--project [project]", "tsconfig.json file location");
|
|
30
30
|
|
|
@@ -68,7 +68,7 @@ export namespace TypiaGenerateWizard {
|
|
|
68
68
|
};
|
|
69
69
|
|
|
70
70
|
return action(async (options) => {
|
|
71
|
-
options.input ??= await input("input")("input directory");
|
|
71
|
+
options.input ??= await input("input")("input directory or pattern");
|
|
72
72
|
options.output ??= await input("output")("output directory");
|
|
73
73
|
options.project ??= await configure();
|
|
74
74
|
return options as IArguments;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
2
3
|
import { DetectResult, detect } from "package-manager-detector";
|
|
3
4
|
|
|
4
5
|
import { ArgumentParser } from "./setup/ArgumentParser";
|
|
@@ -6,6 +7,8 @@ import { CommandExecutor } from "./setup/CommandExecutor";
|
|
|
6
7
|
import { PackageManager } from "./setup/PackageManager";
|
|
7
8
|
import { PluginConfigurator } from "./setup/PluginConfigurator";
|
|
8
9
|
|
|
10
|
+
const pkg = JSON.parse(fs.readFileSync(path.join(__dirname, "../../package.json"), "utf-8"));
|
|
11
|
+
|
|
9
12
|
export namespace TypiaSetupWizard {
|
|
10
13
|
export interface IArguments {
|
|
11
14
|
manager: "npm" | "pnpm" | "yarn" | "bun";
|
|
@@ -22,7 +25,7 @@ export namespace TypiaSetupWizard {
|
|
|
22
25
|
const args: IArguments = await ArgumentParser.parse(pack)(inquiry);
|
|
23
26
|
|
|
24
27
|
// INSTALL TYPESCRIPT COMPILERS
|
|
25
|
-
pack.install({ dev: true, modulo: "typescript", version:
|
|
28
|
+
pack.install({ dev: true, modulo: "typescript", version: pkg.devDependencies.typescript as string });
|
|
26
29
|
pack.install({ dev: true, modulo: "ts-patch", version: "latest" });
|
|
27
30
|
args.project ??= (() => {
|
|
28
31
|
const runner: string = pack.manager === "npm" ? "npx" : pack.manager;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import glob from "glob";
|
|
3
|
+
import path from "path";
|
|
4
|
+
|
|
5
|
+
export namespace SourceFinder {
|
|
6
|
+
export interface IProps {
|
|
7
|
+
exclude?: string[];
|
|
8
|
+
include: string[];
|
|
9
|
+
filter: (location: string) => boolean;
|
|
10
|
+
}
|
|
11
|
+
export const find = async (props: IProps): Promise<string[]> => {
|
|
12
|
+
const dict: Set<string> = new Set();
|
|
13
|
+
|
|
14
|
+
await emplace(props.filter)(props.include)((str) => dict.add(str));
|
|
15
|
+
if (props.exclude?.length)
|
|
16
|
+
await emplace(props.filter)(props.exclude)((str) => dict.delete(str));
|
|
17
|
+
|
|
18
|
+
return [...dict];
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const emplace =
|
|
22
|
+
(filter: (file: string) => boolean) =>
|
|
23
|
+
(input: string[]) =>
|
|
24
|
+
async (closure: (location: string) => void): Promise<void> => {
|
|
25
|
+
for (const pattern of input) {
|
|
26
|
+
for (const file of await _Glob(path.resolve(pattern))) {
|
|
27
|
+
const stats: fs.Stats = await fs.promises.stat(file);
|
|
28
|
+
if (stats.isDirectory() === true)
|
|
29
|
+
await iterate(filter)(closure)(file);
|
|
30
|
+
else if (stats.isFile() && filter(file)) closure(file);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const iterate =
|
|
36
|
+
(filter: (location: string) => boolean) =>
|
|
37
|
+
(closure: (location: string) => void) =>
|
|
38
|
+
async (location: string): Promise<void> => {
|
|
39
|
+
const directory: string[] = await fs.promises.readdir(location);
|
|
40
|
+
for (const file of directory) {
|
|
41
|
+
const next: string = path.resolve(`${location}/${file}`);
|
|
42
|
+
const stats: fs.Stats = await fs.promises.stat(next);
|
|
43
|
+
|
|
44
|
+
if (stats.isDirectory() === true) await iterate(filter)(closure)(next);
|
|
45
|
+
else if (stats.isFile() && filter(next)) closure(next);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const _Glob = (pattern: string): Promise<string[]> =>
|
|
50
|
+
new Promise((resolve, reject) => {
|
|
51
|
+
glob(pattern, (err, matches) => {
|
|
52
|
+
if (err) reject(err);
|
|
53
|
+
else resolve(matches.map((str) => path.resolve(str)));
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
}
|
|
@@ -4,6 +4,7 @@ import ts from "typescript";
|
|
|
4
4
|
|
|
5
5
|
import { ImportTransformer } from "../transformers/ImportTransformer";
|
|
6
6
|
|
|
7
|
+
import { SourceFinder } from "../executable/setup/SourceFinder";
|
|
7
8
|
import transform from "../transform";
|
|
8
9
|
|
|
9
10
|
export namespace TypiaProgrammer {
|
|
@@ -14,25 +15,31 @@ export namespace TypiaProgrammer {
|
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
export const build = async (props: TypiaProgrammer.IProps): Promise<void> => {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
const files: string[] = await SourceFinder.find({
|
|
19
|
+
include: [props.input],
|
|
20
|
+
filter: (location: string) =>
|
|
21
|
+
(location.endsWith(".ts") && !location.endsWith("d.ts")) ||
|
|
22
|
+
(location.endsWith(".tsx") && !location.endsWith("d.tsx")),
|
|
23
|
+
});
|
|
24
|
+
if (files.length === 0)
|
|
25
|
+
throw new Error(
|
|
26
|
+
"Error on TypiaGenerator.generate(): no file to generate.",
|
|
23
27
|
);
|
|
24
28
|
else if (fs.existsSync(props.output) === false)
|
|
25
29
|
await fs.promises.mkdir(props.output, { recursive: true });
|
|
26
|
-
else if ((await
|
|
30
|
+
else if ((await isDirectory(props.output)) === false) {
|
|
27
31
|
const parent: string = path.join(props.output, "..");
|
|
28
|
-
if ((await
|
|
29
|
-
throw new
|
|
32
|
+
if ((await isDirectory(parent)) === false)
|
|
33
|
+
throw new Error(
|
|
30
34
|
"Error on TypiaGenerator.generate(): output path is not a directory.",
|
|
31
35
|
);
|
|
32
36
|
await fs.promises.mkdir(props.output);
|
|
33
37
|
}
|
|
34
38
|
|
|
35
39
|
// CREATE PROGRAM
|
|
40
|
+
const base: string = (await isDirectory(props.input))
|
|
41
|
+
? path.resolve(props.input)
|
|
42
|
+
: getBaseDirectory(files);
|
|
36
43
|
const { options: compilerOptions } = ts.parseJsonConfigFileContent(
|
|
37
44
|
ts.readConfigFile(props.project, ts.sys.readFile).config,
|
|
38
45
|
{
|
|
@@ -43,15 +50,7 @@ export namespace TypiaProgrammer {
|
|
|
43
50
|
},
|
|
44
51
|
path.dirname(props.project),
|
|
45
52
|
);
|
|
46
|
-
|
|
47
|
-
const program: ts.Program = ts.createProgram(
|
|
48
|
-
await (async () => {
|
|
49
|
-
const container: string[] = [];
|
|
50
|
-
await gather(props)(container)(props.input)(props.output);
|
|
51
|
-
return container;
|
|
52
|
-
})(),
|
|
53
|
-
compilerOptions,
|
|
54
|
-
);
|
|
53
|
+
const program: ts.Program = ts.createProgram(files, compilerOptions);
|
|
55
54
|
|
|
56
55
|
// DO TRANSFORM
|
|
57
56
|
const diagnostics: ts.Diagnostic[] = [];
|
|
@@ -61,10 +60,10 @@ export namespace TypiaProgrammer {
|
|
|
61
60
|
.filter(
|
|
62
61
|
(file) =>
|
|
63
62
|
!file.isDeclarationFile &&
|
|
64
|
-
path.resolve(file.fileName).indexOf(
|
|
63
|
+
path.resolve(file.fileName).indexOf(base) !== -1,
|
|
65
64
|
),
|
|
66
65
|
[
|
|
67
|
-
ImportTransformer.transform(
|
|
66
|
+
ImportTransformer.transform(base)(props.output),
|
|
68
67
|
transform(
|
|
69
68
|
program,
|
|
70
69
|
((compilerOptions.plugins as any[]) ?? []).find(
|
|
@@ -111,47 +110,48 @@ export namespace TypiaProgrammer {
|
|
|
111
110
|
if (diagnostics.length) process.exit(-1);
|
|
112
111
|
|
|
113
112
|
// ARCHIVE TRANSFORMED FILES
|
|
113
|
+
const directories: Set<string> = new Set();
|
|
114
114
|
const printer: ts.Printer = ts.createPrinter({
|
|
115
115
|
newLine: ts.NewLineKind.LineFeed,
|
|
116
116
|
});
|
|
117
117
|
for (const file of result.transformed) {
|
|
118
118
|
const to: string = path
|
|
119
119
|
.resolve(file.fileName)
|
|
120
|
-
.replace(
|
|
121
|
-
|
|
120
|
+
.replace(base, props.output);
|
|
122
121
|
const content: string = printer.printFile(file);
|
|
122
|
+
|
|
123
|
+
const parents: string[] = to.split(path.sep);
|
|
124
|
+
for (let i = 1; i < parents.length; i++) {
|
|
125
|
+
const parent: string = parents.slice(0, i).join(path.sep);
|
|
126
|
+
if (directories.has(parent)) continue;
|
|
127
|
+
try {
|
|
128
|
+
await fs.promises.mkdir(parent);
|
|
129
|
+
} catch {}
|
|
130
|
+
}
|
|
123
131
|
await fs.promises.writeFile(to, content, "utf8");
|
|
124
132
|
}
|
|
125
133
|
};
|
|
126
134
|
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
|
|
135
|
+
const isDirectory = async (current: string): Promise<boolean> => {
|
|
136
|
+
try {
|
|
137
|
+
const stat: fs.Stats = await fs.promises.stat(current);
|
|
138
|
+
return stat.isDirectory();
|
|
139
|
+
} catch {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
130
142
|
};
|
|
131
143
|
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
async (to: string) => {
|
|
137
|
-
if (from === props.output) return;
|
|
138
|
-
else if (fs.existsSync(to) === false) await fs.promises.mkdir(to);
|
|
139
|
-
|
|
140
|
-
for (const file of await fs.promises.readdir(from)) {
|
|
141
|
-
const next: string = path.join(from, file);
|
|
142
|
-
const stat: fs.Stats = await fs.promises.stat(next);
|
|
143
|
-
|
|
144
|
-
if (stat.isDirectory()) {
|
|
145
|
-
await gather(props)(container)(next)(path.join(to, file));
|
|
146
|
-
continue;
|
|
147
|
-
} else if (is_supported_extension(file)) container.push(next);
|
|
148
|
-
}
|
|
149
|
-
};
|
|
144
|
+
const getBaseDirectory = (files: string[]): string => {
|
|
145
|
+
const splitPaths: string[][] = files.map((p) => p.split(path.sep));
|
|
146
|
+
const minLength: number = Math.min(...splitPaths.map((p) => p.length));
|
|
147
|
+
let commonPath: string[] = [];
|
|
150
148
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
(
|
|
154
|
-
|
|
155
|
-
|
|
149
|
+
for (let i = 0; i < minLength; i++) {
|
|
150
|
+
const currentSegment: string = splitPaths[0]![i]!;
|
|
151
|
+
if (splitPaths.every((p) => p[i] === currentSegment))
|
|
152
|
+
commonPath.push(currentSegment);
|
|
153
|
+
else break;
|
|
154
|
+
}
|
|
155
|
+
return commonPath.length > 0 ? commonPath.join(path.sep) : "";
|
|
156
156
|
};
|
|
157
157
|
}
|
|
@@ -56,7 +56,8 @@ export namespace LlmApplicationTransformer {
|
|
|
56
56
|
const schema: ILlmApplication = LlmApplicationProgrammer.write(
|
|
57
57
|
result.data,
|
|
58
58
|
);
|
|
59
|
-
|
|
59
|
+
const literal: ts.Expression = LiteralFactory.generate(schema);
|
|
60
|
+
if (!expression.arguments?.[0]) return literal;
|
|
60
61
|
return ExpressionFactory.selfCall(
|
|
61
62
|
ts.factory.createBlock(
|
|
62
63
|
[
|
|
@@ -68,12 +69,7 @@ export namespace LlmApplicationTransformer {
|
|
|
68
69
|
TypeFactory.keyword("any"),
|
|
69
70
|
),
|
|
70
71
|
undefined,
|
|
71
|
-
[
|
|
72
|
-
ts.factory.createIdentifier("app"),
|
|
73
|
-
...(expression.arguments?.[0]
|
|
74
|
-
? [expression.arguments[0]]
|
|
75
|
-
: []),
|
|
76
|
-
],
|
|
72
|
+
[ts.factory.createIdentifier("app"), expression.arguments[0]],
|
|
77
73
|
),
|
|
78
74
|
),
|
|
79
75
|
ts.factory.createReturnStatement(
|