typia 7.0.0-dev.20241010 → 7.0.0-dev.20241011
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/index.mjs +7 -0
- package/lib/index.mjs.map +1 -1
- package/lib/internal/$httpParameterReadBigint.d.ts +1 -0
- package/lib/internal/{$httpParameterBigint.js → $httpParameterReadBigint.js} +4 -4
- package/lib/internal/$httpParameterReadBigint.js.map +1 -0
- package/lib/internal/$httpParameterReadBoolean.d.ts +1 -0
- package/lib/internal/{$httpParameterBoolean.js → $httpParameterReadBoolean.js} +4 -4
- package/lib/internal/$httpParameterReadBoolean.js.map +1 -0
- package/lib/internal/$httpParameterReadNumber.d.ts +1 -0
- package/lib/internal/{$httpParameterNumber.js → $httpParameterReadNumber.js} +4 -4
- package/lib/internal/$httpParameterReadNumber.js.map +1 -0
- package/lib/internal/$httpParameterReadString.d.ts +1 -0
- package/lib/internal/$httpParameterReadString.js +8 -0
- package/lib/internal/$httpParameterReadString.js.map +1 -0
- package/lib/json.d.ts +47 -13
- package/lib/json.js +7 -0
- package/lib/json.js.map +1 -1
- package/lib/module.d.ts +1 -0
- package/lib/module.js +1 -0
- package/lib/module.js.map +1 -1
- package/lib/programmers/json/JsonApplicationProgrammer.d.ts +6 -2
- package/lib/programmers/json/JsonApplicationProgrammer.js +200 -75
- package/lib/programmers/json/JsonApplicationProgrammer.js.map +1 -1
- package/lib/programmers/json/JsonSchemasProgrammer.d.ts +6 -0
- package/lib/programmers/json/JsonSchemasProgrammer.js +109 -0
- package/lib/programmers/json/JsonSchemasProgrammer.js.map +1 -0
- package/lib/programmers/llm/LlmApplicationProgrammer.d.ts +1 -1
- package/lib/programmers/llm/LlmApplicationProgrammer.js +57 -39
- package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
- package/lib/schemas/json/IJsonApplication.d.ts +31 -12
- package/lib/schemas/json/IJsonSchemaList.d.ts +16 -0
- package/lib/schemas/json/IJsonSchemaList.js +3 -0
- package/lib/schemas/json/IJsonSchemaList.js.map +1 -0
- package/lib/transformers/CallExpressionTransformer.js +3 -1
- package/lib/transformers/CallExpressionTransformer.js.map +1 -1
- package/lib/transformers/features/json/JsonApplicationTransformer.d.ts +1 -1
- package/lib/transformers/features/json/JsonApplicationTransformer.js +27 -97
- package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
- package/lib/transformers/features/json/JsonSchemasTransformer.d.ts +5 -0
- package/lib/transformers/features/json/JsonSchemasTransformer.js +159 -0
- package/lib/transformers/features/json/JsonSchemasTransformer.js.map +1 -0
- package/lib/transformers/features/llm/LlmApplicationTransformer.js +1 -1
- package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
- package/package.json +1 -1
- package/src/factories/MetadataFactory.ts +400 -400
- package/src/factories/internal/metadata/IMetadataIteratorProps.ts +16 -16
- package/src/factories/internal/metadata/emplace_metadata_object.ts +206 -206
- package/src/factories/internal/metadata/iterate_metadata_collection.ts +145 -145
- package/src/factories/internal/metadata/iterate_metadata_comment_tags.ts +32 -32
- package/src/factories/internal/metadata/iterate_metadata_function.ts +88 -88
- package/src/internal/{$httpParameterBigint.ts → $httpParameterReadBigint.ts} +1 -1
- package/src/internal/{$httpParameterBoolean.ts → $httpParameterReadBoolean.ts} +1 -1
- package/src/internal/{$httpParameterNumber.ts → $httpParameterReadNumber.ts} +1 -1
- package/src/internal/$httpParameterReadString.ts +2 -0
- package/src/json.ts +63 -17
- package/src/module.ts +1 -0
- package/src/programmers/json/JsonApplicationProgrammer.ts +249 -72
- package/src/programmers/json/JsonSchemasProgrammer.ts +94 -0
- package/src/programmers/llm/LlmApplicationProgrammer.ts +66 -41
- package/src/schemas/json/IJsonApplication.ts +61 -22
- package/src/schemas/json/IJsonSchemaList.ts +22 -0
- package/src/transformers/CallExpressionTransformer.ts +3 -1
- package/src/transformers/features/json/JsonApplicationTransformer.ts +29 -54
- package/src/transformers/features/json/JsonSchemasTransformer.ts +130 -0
- package/src/transformers/features/llm/LlmApplicationTransformer.ts +1 -1
- package/lib/internal/$httpParameterBigint.d.ts +0 -1
- package/lib/internal/$httpParameterBigint.js.map +0 -1
- package/lib/internal/$httpParameterBoolean.d.ts +0 -1
- package/lib/internal/$httpParameterBoolean.js.map +0 -1
- package/lib/internal/$httpParameterNumber.d.ts +0 -1
- package/lib/internal/$httpParameterNumber.js.map +0 -1
- package/lib/internal/$httpParameterString.d.ts +0 -1
- package/lib/internal/$httpParameterString.js +0 -8
- package/lib/internal/$httpParameterString.js.map +0 -1
- package/src/internal/$httpParameterString.ts +0 -2
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
var __values = (this && this.__values) || function(o) {
|
|
3
14
|
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
4
15
|
if (m) return m.call(o);
|
|
@@ -10,100 +21,214 @@ var __values = (this && this.__values) || function(o) {
|
|
|
10
21
|
};
|
|
11
22
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
23
|
};
|
|
24
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
25
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
26
|
+
if (!m) return o;
|
|
27
|
+
var i = m.call(o), r, ar = [], e;
|
|
28
|
+
try {
|
|
29
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
30
|
+
}
|
|
31
|
+
catch (error) { e = { error: error }; }
|
|
32
|
+
finally {
|
|
33
|
+
try {
|
|
34
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
35
|
+
}
|
|
36
|
+
finally { if (e) throw e.error; }
|
|
37
|
+
}
|
|
38
|
+
return ar;
|
|
39
|
+
};
|
|
13
40
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
41
|
exports.JsonApplicationProgrammer = void 0;
|
|
15
|
-
var
|
|
16
|
-
var AtomicPredicator_1 = require("../helpers/AtomicPredicator");
|
|
17
|
-
var application_v30_schema_1 = require("../internal/application_v30_schema");
|
|
18
|
-
var application_v31_schema_1 = require("../internal/application_v31_schema");
|
|
42
|
+
var JsonSchemasProgrammer_1 = require("./JsonSchemasProgrammer");
|
|
19
43
|
var JsonApplicationProgrammer;
|
|
20
44
|
(function (JsonApplicationProgrammer) {
|
|
21
|
-
JsonApplicationProgrammer.validate = function (
|
|
45
|
+
JsonApplicationProgrammer.validate = function (metadata, explore) {
|
|
22
46
|
var e_1, _a;
|
|
47
|
+
if (explore.top === false)
|
|
48
|
+
return JsonSchemasProgrammer_1.JsonSchemasProgrammer.validate(metadata);
|
|
23
49
|
var output = [];
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
output.push("JSON schema does not support Set type.");
|
|
36
|
-
try {
|
|
37
|
-
for (var _b = __values(meta.natives), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
38
|
-
var native = _c.value;
|
|
39
|
-
if (AtomicPredicator_1.AtomicPredicator.native(native) === false &&
|
|
40
|
-
native !== "Date" &&
|
|
41
|
-
native !== "Blob" &&
|
|
42
|
-
native !== "File")
|
|
43
|
-
output.push("JSON schema does not support ".concat(native, " type."));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
47
|
-
finally {
|
|
50
|
+
var valid = metadata.size() === 1 &&
|
|
51
|
+
metadata.objects.length === 1 &&
|
|
52
|
+
metadata.isRequired() === true &&
|
|
53
|
+
metadata.nullable === false;
|
|
54
|
+
if (valid === false)
|
|
55
|
+
output.push("JSON application's generic arugment must be a class/interface type.");
|
|
56
|
+
var object = metadata.objects[0];
|
|
57
|
+
if (object !== undefined) {
|
|
58
|
+
if (object.properties.some(function (p) { return p.key.isSoleLiteral() === false; }))
|
|
59
|
+
output.push("JSON application does not allow dynamic keys.");
|
|
60
|
+
var least = false;
|
|
48
61
|
try {
|
|
49
|
-
|
|
62
|
+
for (var _b = __values(object.properties), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
63
|
+
var p = _c.value;
|
|
64
|
+
var value = p.value;
|
|
65
|
+
if (value.functions.length) {
|
|
66
|
+
least || (least = true);
|
|
67
|
+
if (valid === false) {
|
|
68
|
+
if (value.functions.length !== 1 || value.size() !== 1)
|
|
69
|
+
output.push("JSON application's function type does not allow union type.");
|
|
70
|
+
if (value.isRequired() === false)
|
|
71
|
+
output.push("JSON application's function type must be required.");
|
|
72
|
+
if (value.nullable === true)
|
|
73
|
+
output.push("JSON application's function type must not be nullable.");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
50
77
|
}
|
|
51
|
-
|
|
78
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
79
|
+
finally {
|
|
80
|
+
try {
|
|
81
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
82
|
+
}
|
|
83
|
+
finally { if (e_1) throw e_1.error; }
|
|
84
|
+
}
|
|
85
|
+
if (least === false)
|
|
86
|
+
output.push("JSON application's target type must have at least a function type.");
|
|
52
87
|
}
|
|
53
88
|
return output;
|
|
54
89
|
};
|
|
55
|
-
JsonApplicationProgrammer.write = function (
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
90
|
+
JsonApplicationProgrammer.write = function (props) {
|
|
91
|
+
var errors = JsonApplicationProgrammer.validate(props.metadata, {
|
|
92
|
+
top: true,
|
|
93
|
+
object: null,
|
|
94
|
+
property: null,
|
|
95
|
+
parameter: null,
|
|
96
|
+
nested: null,
|
|
97
|
+
aliased: false,
|
|
98
|
+
escaped: false,
|
|
99
|
+
output: false,
|
|
100
|
+
});
|
|
101
|
+
if (errors.length)
|
|
102
|
+
throw new Error("Failed to write LLM application: " + errors.join("\n"));
|
|
103
|
+
var object = props.metadata.objects[0];
|
|
104
|
+
var definitions = [];
|
|
105
|
+
var setters = [];
|
|
106
|
+
var collect = function (metadata, setter) {
|
|
107
|
+
definitions.push(metadata);
|
|
108
|
+
setters.push(setter);
|
|
67
109
|
};
|
|
110
|
+
var functions = object.properties
|
|
111
|
+
.filter(function (p) {
|
|
112
|
+
return p.key.isSoleLiteral() &&
|
|
113
|
+
p.value.size() === 1 &&
|
|
114
|
+
p.value.nullable === false &&
|
|
115
|
+
p.value.isRequired() === true &&
|
|
116
|
+
p.value.functions.length === 1;
|
|
117
|
+
})
|
|
118
|
+
.map(function (r) {
|
|
119
|
+
return collectFunction({
|
|
120
|
+
version: props.version,
|
|
121
|
+
name: r.key.getSoleLiteral(),
|
|
122
|
+
function: r.value.functions[0],
|
|
123
|
+
description: r.description,
|
|
124
|
+
jsDocTags: r.jsDocTags,
|
|
125
|
+
collect: collect,
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
var _a = JsonSchemasProgrammer_1.JsonSchemasProgrammer.write(props.version)(definitions), components = _a.components, schemas = _a.schemas;
|
|
129
|
+
schemas.forEach(function (s, i) { var _a; return (_a = setters[i]) === null || _a === void 0 ? void 0 : _a.call(setters, s); });
|
|
68
130
|
return {
|
|
69
|
-
version:
|
|
131
|
+
version: props.version,
|
|
70
132
|
components: components,
|
|
71
|
-
|
|
72
|
-
var schema = generator(meta);
|
|
73
|
-
if (schema === null)
|
|
74
|
-
throw new TransformerError_1.TransformerError({
|
|
75
|
-
code: "typia.json.application",
|
|
76
|
-
message: "invalid type on argument - (".concat(meta.getName(), ", ").concat(i, ")"),
|
|
77
|
-
});
|
|
78
|
-
return schema;
|
|
79
|
-
}),
|
|
133
|
+
functions: functions,
|
|
80
134
|
};
|
|
81
135
|
};
|
|
82
|
-
var
|
|
83
|
-
var
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
136
|
+
var collectFunction = function (props) {
|
|
137
|
+
var _a;
|
|
138
|
+
var deprecated = props.jsDocTags.some(function (tag) { return tag.name === "deprecated"; });
|
|
139
|
+
var tags = props.jsDocTags
|
|
140
|
+
.map(function (tag) {
|
|
141
|
+
var _a, _b;
|
|
142
|
+
return tag.name === "tag"
|
|
143
|
+
? ((_b = (_a = tag.text) === null || _a === void 0 ? void 0 : _a.filter(function (elem) { return elem.kind === "text"; })) !== null && _b !== void 0 ? _b : [])
|
|
144
|
+
: [];
|
|
145
|
+
})
|
|
146
|
+
.flat()
|
|
147
|
+
.map(function (elem) { return elem.text; })
|
|
148
|
+
.map(function (str) { var _a; return (_a = str.trim().split(" ")[0]) !== null && _a !== void 0 ? _a : ""; })
|
|
149
|
+
.filter(function (str) { return !!str.length; });
|
|
94
150
|
return {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
var
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
151
|
+
name: props.name,
|
|
152
|
+
async: props.function.async,
|
|
153
|
+
parameters: props.function.parameters.map(function (param) {
|
|
154
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
155
|
+
var appParam = __assign(__assign({ name: param.name }, writeDescription({
|
|
156
|
+
description: (_h = (_e = (_a = param.description) !== null && _a !== void 0 ? _a : (_d = (_c = (_b = param.jsDocTags.find(function (tag) { return tag.name === "description"; })) === null || _b === void 0 ? void 0 : _b.text) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.text) !== null && _e !== void 0 ? _e : (_g = (_f = props.jsDocTags
|
|
157
|
+
.find(function (tag) { var _a, _b; return tag.name === "param" && ((_b = (_a = tag.text) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.text) === param.name; })) === null || _f === void 0 ? void 0 : _f.text) === null || _g === void 0 ? void 0 : _g.map(function (e) { return e.text; }).join("").substring(param.name.length)) !== null && _h !== void 0 ? _h : null,
|
|
158
|
+
jsDocTags: props.jsDocTags,
|
|
159
|
+
kind: "title",
|
|
160
|
+
})), { required: param.type.isRequired(), schema: null });
|
|
161
|
+
props.collect(param.type, function (schema) { return (appParam.schema = schema); });
|
|
162
|
+
return appParam;
|
|
105
163
|
}),
|
|
164
|
+
output: props.function.output.size()
|
|
165
|
+
? (function () {
|
|
166
|
+
var _a, _b;
|
|
167
|
+
var appOutput = {
|
|
168
|
+
schema: null,
|
|
169
|
+
required: props.function.output.isRequired(),
|
|
170
|
+
description: (_b = (_a = writeDescriptionFromJsDocTag({
|
|
171
|
+
jsDocTags: props.jsDocTags,
|
|
172
|
+
name: "return",
|
|
173
|
+
})) !== null && _a !== void 0 ? _a : writeDescriptionFromJsDocTag({
|
|
174
|
+
jsDocTags: props.jsDocTags,
|
|
175
|
+
name: "returns",
|
|
176
|
+
})) !== null && _b !== void 0 ? _b : undefined,
|
|
177
|
+
};
|
|
178
|
+
props.collect(props.function.output, function (schema) { return (appOutput.schema = schema); });
|
|
179
|
+
return appOutput;
|
|
180
|
+
})()
|
|
181
|
+
: undefined,
|
|
182
|
+
description: (_a = props.description) !== null && _a !== void 0 ? _a : undefined,
|
|
183
|
+
deprecated: deprecated || undefined,
|
|
184
|
+
tags: tags.length ? tags : undefined,
|
|
106
185
|
};
|
|
107
186
|
};
|
|
108
187
|
})(JsonApplicationProgrammer || (exports.JsonApplicationProgrammer = JsonApplicationProgrammer = {}));
|
|
188
|
+
var writeDescription = function (props) {
|
|
189
|
+
var _a;
|
|
190
|
+
var _b;
|
|
191
|
+
var title = (function () {
|
|
192
|
+
var _a;
|
|
193
|
+
var _b = __read(getJsDocTexts({
|
|
194
|
+
jsDocTags: props.jsDocTags,
|
|
195
|
+
name: props.kind,
|
|
196
|
+
}), 1), explicit = _b[0];
|
|
197
|
+
if (explicit === null || explicit === void 0 ? void 0 : explicit.length)
|
|
198
|
+
return explicit;
|
|
199
|
+
else if (!((_a = props.description) === null || _a === void 0 ? void 0 : _a.length))
|
|
200
|
+
return undefined;
|
|
201
|
+
var index = props.description.indexOf("\n");
|
|
202
|
+
var top = (index === -1 ? props.description : props.description.substring(0, index)).trim();
|
|
203
|
+
return top.endsWith(".") ? top.substring(0, top.length - 1) : undefined;
|
|
204
|
+
})();
|
|
205
|
+
return _a = {},
|
|
206
|
+
_a[props.kind] = title,
|
|
207
|
+
_a.description = ((_b = props.description) === null || _b === void 0 ? void 0 : _b.length) ? props.description : undefined,
|
|
208
|
+
_a;
|
|
209
|
+
};
|
|
210
|
+
var writeDescriptionFromJsDocTag = function (props) {
|
|
211
|
+
var _a, _b;
|
|
212
|
+
var parametric = props.parameter
|
|
213
|
+
? function (tag) {
|
|
214
|
+
return tag.text.find(function (elem) {
|
|
215
|
+
return elem.kind === "parameterName" && elem.text === props.parameter;
|
|
216
|
+
}) !== undefined;
|
|
217
|
+
}
|
|
218
|
+
: function () { return true; };
|
|
219
|
+
var tag = props.jsDocTags.find(function (tag) { return tag.name === props.name && tag.text && parametric(tag); });
|
|
220
|
+
return tag && tag.text
|
|
221
|
+
? ((_b = (_a = tag.text.find(function (elem) { return elem.kind === "text"; })) === null || _a === void 0 ? void 0 : _a.text) !== null && _b !== void 0 ? _b : null)
|
|
222
|
+
: null;
|
|
223
|
+
};
|
|
224
|
+
var getJsDocTexts = function (props) {
|
|
225
|
+
return props.jsDocTags
|
|
226
|
+
.filter(function (tag) {
|
|
227
|
+
return tag.name === props.name &&
|
|
228
|
+
tag.text &&
|
|
229
|
+
tag.text.find(function (elem) { return elem.kind === "text" && elem.text.length; }) !==
|
|
230
|
+
undefined;
|
|
231
|
+
})
|
|
232
|
+
.map(function (tag) { return tag.text.find(function (elem) { return elem.kind === "text"; }).text; });
|
|
233
|
+
};
|
|
109
234
|
//# sourceMappingURL=JsonApplicationProgrammer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonApplicationProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/json/JsonApplicationProgrammer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"JsonApplicationProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/json/JsonApplicationProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IJsonSchemaCollection } from "../../schemas/json/IJsonSchemaList";
|
|
2
|
+
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
3
|
+
export declare namespace JsonSchemasProgrammer {
|
|
4
|
+
const validate: (metadata: Metadata) => string[];
|
|
5
|
+
const write: <Version extends "3.0" | "3.1">(version: Version) => ((medadataList: Array<Metadata>) => IJsonSchemaCollection<"3.0">) | ((metadataList: Array<Metadata>) => IJsonSchemaCollection<"3.1">);
|
|
6
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __values = (this && this.__values) || function(o) {
|
|
3
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
4
|
+
if (m) return m.call(o);
|
|
5
|
+
if (o && typeof o.length === "number") return {
|
|
6
|
+
next: function () {
|
|
7
|
+
if (o && i >= o.length) o = void 0;
|
|
8
|
+
return { value: o && o[i++], done: !o };
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.JsonSchemasProgrammer = void 0;
|
|
15
|
+
var TransformerError_1 = require("../../transformers/TransformerError");
|
|
16
|
+
var AtomicPredicator_1 = require("../helpers/AtomicPredicator");
|
|
17
|
+
var application_v30_schema_1 = require("../internal/application_v30_schema");
|
|
18
|
+
var application_v31_schema_1 = require("../internal/application_v31_schema");
|
|
19
|
+
var JsonSchemasProgrammer;
|
|
20
|
+
(function (JsonSchemasProgrammer) {
|
|
21
|
+
JsonSchemasProgrammer.validate = function (metadata) {
|
|
22
|
+
var e_1, _a;
|
|
23
|
+
var output = [];
|
|
24
|
+
if (metadata.atomics.some(function (a) { return a.type === "bigint"; }) ||
|
|
25
|
+
metadata.constants.some(function (c) { return c.type === "bigint"; }))
|
|
26
|
+
output.push("JSON schema does not support bigint type.");
|
|
27
|
+
if (metadata.tuples.some(function (t) {
|
|
28
|
+
return t.type.elements.some(function (e) { return e.isRequired() === false; });
|
|
29
|
+
}) ||
|
|
30
|
+
metadata.arrays.some(function (a) { return a.type.value.isRequired() === false; }))
|
|
31
|
+
output.push("JSON schema does not support undefined type in array.");
|
|
32
|
+
if (metadata.maps.length)
|
|
33
|
+
output.push("JSON schema does not support Map type.");
|
|
34
|
+
if (metadata.sets.length)
|
|
35
|
+
output.push("JSON schema does not support Set type.");
|
|
36
|
+
try {
|
|
37
|
+
for (var _b = __values(metadata.natives), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
38
|
+
var native = _c.value;
|
|
39
|
+
if (AtomicPredicator_1.AtomicPredicator.native(native) === false &&
|
|
40
|
+
native !== "Date" &&
|
|
41
|
+
native !== "Blob" &&
|
|
42
|
+
native !== "File")
|
|
43
|
+
output.push("JSON schema does not support ".concat(native, " type."));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
47
|
+
finally {
|
|
48
|
+
try {
|
|
49
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
50
|
+
}
|
|
51
|
+
finally { if (e_1) throw e_1.error; }
|
|
52
|
+
}
|
|
53
|
+
return output;
|
|
54
|
+
};
|
|
55
|
+
JsonSchemasProgrammer.write = function (version) {
|
|
56
|
+
return version === "3.0" ? v30 : v31;
|
|
57
|
+
};
|
|
58
|
+
var v30 = function (medadataList) {
|
|
59
|
+
var components = {};
|
|
60
|
+
var generator = function (metadata) {
|
|
61
|
+
return (0, application_v30_schema_1.application_v30_schema)({
|
|
62
|
+
blockNever: true,
|
|
63
|
+
components: components,
|
|
64
|
+
attribute: {},
|
|
65
|
+
metadata: metadata,
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
return {
|
|
69
|
+
version: "3.0",
|
|
70
|
+
components: components,
|
|
71
|
+
schemas: medadataList.map(function (meta, i) {
|
|
72
|
+
var schema = generator(meta);
|
|
73
|
+
if (schema === null)
|
|
74
|
+
throw new TransformerError_1.TransformerError({
|
|
75
|
+
code: "typia.json.application",
|
|
76
|
+
message: "invalid type on argument - (".concat(meta.getName(), ", ").concat(i, ")"),
|
|
77
|
+
});
|
|
78
|
+
return schema;
|
|
79
|
+
}),
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
var v31 = function (metadataList) {
|
|
83
|
+
var components = {
|
|
84
|
+
schemas: {},
|
|
85
|
+
};
|
|
86
|
+
var generator = function (metadata) {
|
|
87
|
+
return (0, application_v31_schema_1.application_v31_schema)({
|
|
88
|
+
blockNever: true,
|
|
89
|
+
components: components,
|
|
90
|
+
attribute: {},
|
|
91
|
+
metadata: metadata,
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
return {
|
|
95
|
+
version: "3.1",
|
|
96
|
+
components: components,
|
|
97
|
+
schemas: metadataList.map(function (meta, i) {
|
|
98
|
+
var schema = generator(meta);
|
|
99
|
+
if (schema === null)
|
|
100
|
+
throw new TransformerError_1.TransformerError({
|
|
101
|
+
code: "typia.json.application",
|
|
102
|
+
message: "invalid type on argument - (".concat(meta.getName(), ", ").concat(i, ")"),
|
|
103
|
+
});
|
|
104
|
+
return schema;
|
|
105
|
+
}),
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
})(JsonSchemasProgrammer || (exports.JsonSchemasProgrammer = JsonSchemasProgrammer = {}));
|
|
109
|
+
//# sourceMappingURL=JsonSchemasProgrammer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonSchemasProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/json/JsonSchemasProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,6 @@ import { ILlmApplication } from "@samchon/openapi";
|
|
|
2
2
|
import { MetadataFactory } from "../../factories/MetadataFactory";
|
|
3
3
|
import { Metadata } from "../../schemas/metadata/Metadata";
|
|
4
4
|
export declare namespace LlmApplicationProgrammer {
|
|
5
|
-
const validate: (metadata: Metadata, explore: MetadataFactory.IExplore) => string[];
|
|
5
|
+
const validate: () => (metadata: Metadata, explore: MetadataFactory.IExplore) => string[];
|
|
6
6
|
const write: (metadata: Metadata) => ILlmApplication;
|
|
7
7
|
}
|
|
@@ -42,53 +42,71 @@ exports.LlmApplicationProgrammer = void 0;
|
|
|
42
42
|
var LlmSchemaProgrammer_1 = require("./LlmSchemaProgrammer");
|
|
43
43
|
var LlmApplicationProgrammer;
|
|
44
44
|
(function (LlmApplicationProgrammer) {
|
|
45
|
-
LlmApplicationProgrammer.validate = function (
|
|
46
|
-
var
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
var
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
45
|
+
LlmApplicationProgrammer.validate = function () {
|
|
46
|
+
var top;
|
|
47
|
+
return function (metadata, explore) {
|
|
48
|
+
var e_1, _a;
|
|
49
|
+
top !== null && top !== void 0 ? top : (top = metadata);
|
|
50
|
+
if (explore.top === false)
|
|
51
|
+
if (explore.object === (top === null || top === void 0 ? void 0 : top.objects[0]) &&
|
|
52
|
+
typeof explore.property === "string" &&
|
|
53
|
+
metadata.size() === 1 &&
|
|
54
|
+
metadata.nullable === false &&
|
|
55
|
+
metadata.isRequired() === true &&
|
|
56
|
+
metadata.functions.length === 1)
|
|
57
|
+
return validateFunction(metadata.functions[0]);
|
|
58
|
+
else
|
|
59
|
+
return LlmSchemaProgrammer_1.LlmSchemaProgrammer.validate(metadata);
|
|
60
|
+
var output = [];
|
|
61
|
+
var valid = metadata.size() === 1 &&
|
|
62
|
+
metadata.objects.length === 1 &&
|
|
63
|
+
metadata.isRequired() === true &&
|
|
64
|
+
metadata.nullable === false;
|
|
65
|
+
if (valid === false)
|
|
66
|
+
output.push("LLM application's generic arugment must be a class/interface type.");
|
|
67
|
+
var object = metadata.objects[0];
|
|
68
|
+
if (object !== undefined) {
|
|
69
|
+
if (object.properties.some(function (p) { return p.key.isSoleLiteral() === false; }))
|
|
70
|
+
output.push("LLM application does not allow dynamic keys.");
|
|
71
|
+
var least = false;
|
|
72
|
+
try {
|
|
73
|
+
for (var _b = __values(object.properties), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
74
|
+
var p = _c.value;
|
|
75
|
+
var value = p.value;
|
|
76
|
+
if (value.functions.length) {
|
|
77
|
+
least || (least = true);
|
|
78
|
+
if (valid === false) {
|
|
79
|
+
if (value.functions.length !== 1 || value.size() !== 1)
|
|
80
|
+
output.push("LLM application's function type does not allow union type.");
|
|
81
|
+
if (value.isRequired() === false)
|
|
82
|
+
output.push("LLM application's function type must be required.");
|
|
83
|
+
if (value.nullable === true)
|
|
84
|
+
output.push("LLM application's function type must not be nullable.");
|
|
85
|
+
}
|
|
74
86
|
}
|
|
75
87
|
}
|
|
76
88
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
89
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
90
|
+
finally {
|
|
91
|
+
try {
|
|
92
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
93
|
+
}
|
|
94
|
+
finally { if (e_1) throw e_1.error; }
|
|
82
95
|
}
|
|
83
|
-
|
|
96
|
+
if (least === false)
|
|
97
|
+
output.push("LLM application's target type must have at least a function type.");
|
|
84
98
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
99
|
+
return output;
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
var validateFunction = function (func) {
|
|
103
|
+
var output = [];
|
|
104
|
+
if (func.output.size() && func.output.isRequired() === false)
|
|
105
|
+
output.push("LLM application's function return type must not be union type with undefined.");
|
|
88
106
|
return output;
|
|
89
107
|
};
|
|
90
108
|
LlmApplicationProgrammer.write = function (metadata) {
|
|
91
|
-
var errors = LlmApplicationProgrammer.validate(metadata, {
|
|
109
|
+
var errors = LlmApplicationProgrammer.validate()(metadata, {
|
|
92
110
|
top: true,
|
|
93
111
|
object: null,
|
|
94
112
|
property: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlmApplicationProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/llm/LlmApplicationProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,6DAA4D;AAE5D,IAAiB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"LlmApplicationProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/llm/LlmApplicationProgrammer.ts"],"names":[],"mappings":"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"}
|