typia 7.0.0-dev.20240923 → 7.0.0-dev.20240928
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 +1 -0
- package/lib/index.mjs.map +1 -1
- package/lib/programmers/AssertProgrammer.d.ts +1 -1
- package/lib/programmers/AssertProgrammer.js +169 -127
- package/lib/programmers/AssertProgrammer.js.map +1 -1
- package/lib/programmers/CheckerProgrammer.d.ts +70 -15
- package/lib/programmers/CheckerProgrammer.js +998 -638
- package/lib/programmers/CheckerProgrammer.js.map +1 -1
- package/lib/programmers/FeatureProgrammer.d.ts +7 -3
- package/lib/programmers/FeatureProgrammer.js +17 -17
- package/lib/programmers/FeatureProgrammer.js.map +1 -1
- package/lib/programmers/IsProgrammer.d.ts +25 -4
- package/lib/programmers/IsProgrammer.js +54 -39
- package/lib/programmers/IsProgrammer.js.map +1 -1
- package/lib/programmers/ValidateProgrammer.js +110 -97
- package/lib/programmers/ValidateProgrammer.js.map +1 -1
- package/lib/programmers/helpers/UnionExplorer.d.ts +1 -1
- package/lib/programmers/json/JsonStringifyProgrammer.js +71 -38
- package/lib/programmers/json/JsonStringifyProgrammer.js.map +1 -1
- package/lib/programmers/llm/LlmApplicationProgrammer.js +16 -2
- package/lib/programmers/llm/LlmApplicationProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscCloneProgrammer.js +504 -406
- package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscLiteralsProgrammer.js +3 -3
- package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
- package/lib/programmers/misc/MiscPruneProgrammer.js +365 -301
- package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
- package/lib/programmers/notations/NotationGeneralProgrammer.js +62 -15
- package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +17 -3
- package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
- package/lib/tags/Example.d.ts +14 -0
- package/lib/tags/Example.js +3 -0
- package/lib/tags/Example.js.map +1 -0
- package/lib/tags/Examples.d.ts +10 -0
- package/lib/tags/Examples.js +3 -0
- package/lib/tags/Examples.js.map +1 -0
- package/lib/tags/index.d.ts +2 -0
- package/lib/tags/index.js +2 -0
- package/lib/tags/index.js.map +1 -1
- package/package.json +2 -2
- package/src/programmers/AssertProgrammer.ts +185 -143
- package/src/programmers/CheckerProgrammer.ts +1380 -998
- package/src/programmers/FeatureProgrammer.ts +40 -34
- package/src/programmers/IsProgrammer.ts +94 -66
- package/src/programmers/ValidateProgrammer.ts +149 -137
- package/src/programmers/helpers/UnionExplorer.ts +1 -1
- package/src/programmers/json/JsonStringifyProgrammer.ts +60 -38
- package/src/programmers/llm/LlmApplicationProgrammer.ts +51 -32
- package/src/programmers/misc/MiscCloneProgrammer.ts +775 -600
- package/src/programmers/misc/MiscLiteralsProgrammer.ts +4 -4
- package/src/programmers/misc/MiscPruneProgrammer.ts +532 -415
- package/src/programmers/notations/NotationGeneralProgrammer.ts +64 -26
- package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +16 -9
- package/src/tags/Example.ts +17 -0
- package/src/tags/Examples.ts +16 -0
- package/src/tags/index.ts +20 -18
|
@@ -47,9 +47,11 @@ export namespace JsonStringifyProgrammer {
|
|
|
47
47
|
const config: FeatureProgrammer.IConfig = configure(props);
|
|
48
48
|
if (props.validated === false)
|
|
49
49
|
config.addition = (collection) =>
|
|
50
|
-
IsProgrammer.write_function_statements(
|
|
50
|
+
IsProgrammer.write_function_statements({
|
|
51
|
+
context: props.context,
|
|
52
|
+
importer: props.importer,
|
|
51
53
|
collection,
|
|
52
|
-
);
|
|
54
|
+
});
|
|
53
55
|
const composed: FeatureProgrammer.IComposed = FeatureProgrammer.compose({
|
|
54
56
|
...props,
|
|
55
57
|
config,
|
|
@@ -231,7 +233,11 @@ export namespace JsonStringifyProgrammer {
|
|
|
231
233
|
props.metadata.escaped.original.size() === 1 &&
|
|
232
234
|
props.metadata.escaped.original.natives[0] === "Date"
|
|
233
235
|
? () => check_native("Date")(props.input)
|
|
234
|
-
: () =>
|
|
236
|
+
: () =>
|
|
237
|
+
IsProgrammer.decode_to_json({
|
|
238
|
+
checkNull: false,
|
|
239
|
+
input: props.input,
|
|
240
|
+
}),
|
|
235
241
|
value: () =>
|
|
236
242
|
decode_to_json({
|
|
237
243
|
...props,
|
|
@@ -255,11 +261,10 @@ export namespace JsonStringifyProgrammer {
|
|
|
255
261
|
unions.push({
|
|
256
262
|
type: "template literal",
|
|
257
263
|
is: () =>
|
|
258
|
-
IsProgrammer.decode(
|
|
259
|
-
props
|
|
260
|
-
partial,
|
|
261
|
-
|
|
262
|
-
),
|
|
264
|
+
IsProgrammer.decode({
|
|
265
|
+
...props,
|
|
266
|
+
metadata: partial,
|
|
267
|
+
}),
|
|
263
268
|
value: () =>
|
|
264
269
|
decode_atomic({
|
|
265
270
|
...props,
|
|
@@ -281,9 +286,9 @@ export namespace JsonStringifyProgrammer {
|
|
|
281
286
|
unions.push({
|
|
282
287
|
type: "atomic",
|
|
283
288
|
is: () =>
|
|
284
|
-
IsProgrammer.decode(
|
|
285
|
-
props
|
|
286
|
-
(() => {
|
|
289
|
+
IsProgrammer.decode({
|
|
290
|
+
...props,
|
|
291
|
+
metadata: (() => {
|
|
287
292
|
const partial = Metadata.initialize();
|
|
288
293
|
partial.atomics.push(
|
|
289
294
|
MetadataAtomic.create({
|
|
@@ -293,8 +298,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
293
298
|
);
|
|
294
299
|
return partial;
|
|
295
300
|
})(),
|
|
296
|
-
|
|
297
|
-
),
|
|
301
|
+
}),
|
|
298
302
|
value: () =>
|
|
299
303
|
decode_atomic({
|
|
300
304
|
...props,
|
|
@@ -305,9 +309,9 @@ export namespace JsonStringifyProgrammer {
|
|
|
305
309
|
unions.push({
|
|
306
310
|
type: "const string",
|
|
307
311
|
is: () =>
|
|
308
|
-
IsProgrammer.decode(
|
|
309
|
-
props
|
|
310
|
-
(() => {
|
|
312
|
+
IsProgrammer.decode({
|
|
313
|
+
...props,
|
|
314
|
+
metadata: (() => {
|
|
311
315
|
const partial = Metadata.initialize();
|
|
312
316
|
partial.atomics.push(
|
|
313
317
|
MetadataAtomic.create({
|
|
@@ -317,8 +321,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
317
321
|
);
|
|
318
322
|
return partial;
|
|
319
323
|
})(),
|
|
320
|
-
|
|
321
|
-
),
|
|
324
|
+
}),
|
|
322
325
|
value: () =>
|
|
323
326
|
decode_constant_string({
|
|
324
327
|
...props,
|
|
@@ -337,15 +340,14 @@ export namespace JsonStringifyProgrammer {
|
|
|
337
340
|
unions.push({
|
|
338
341
|
type: "atomic",
|
|
339
342
|
is: () =>
|
|
340
|
-
IsProgrammer.decode(
|
|
341
|
-
props
|
|
342
|
-
(() => {
|
|
343
|
+
IsProgrammer.decode({
|
|
344
|
+
...props,
|
|
345
|
+
metadata: (() => {
|
|
343
346
|
const partial = Metadata.initialize();
|
|
344
347
|
partial.atomics.push(a);
|
|
345
348
|
return partial;
|
|
346
349
|
})(),
|
|
347
|
-
|
|
348
|
-
),
|
|
350
|
+
}),
|
|
349
351
|
value: () =>
|
|
350
352
|
decode_atomic({
|
|
351
353
|
...props,
|
|
@@ -358,15 +360,14 @@ export namespace JsonStringifyProgrammer {
|
|
|
358
360
|
unions.push({
|
|
359
361
|
type: "tuple",
|
|
360
362
|
is: () =>
|
|
361
|
-
IsProgrammer.decode(
|
|
362
|
-
props
|
|
363
|
-
(() => {
|
|
363
|
+
IsProgrammer.decode({
|
|
364
|
+
...props,
|
|
365
|
+
metadata: (() => {
|
|
364
366
|
const partial = Metadata.initialize();
|
|
365
367
|
partial.tuples.push(tuple);
|
|
366
368
|
return partial;
|
|
367
369
|
})(),
|
|
368
|
-
|
|
369
|
-
),
|
|
370
|
+
}),
|
|
370
371
|
value: () =>
|
|
371
372
|
decode_tuple({
|
|
372
373
|
...props,
|
|
@@ -397,7 +398,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
397
398
|
: () =>
|
|
398
399
|
explore_arrays({
|
|
399
400
|
...props,
|
|
400
|
-
|
|
401
|
+
arrays: props.metadata.arrays,
|
|
401
402
|
explore: {
|
|
402
403
|
...props.explore,
|
|
403
404
|
from: "array",
|
|
@@ -747,14 +748,22 @@ export namespace JsonStringifyProgrammer {
|
|
|
747
748
|
config: FeatureProgrammer.IConfig;
|
|
748
749
|
importer: FunctionImporter;
|
|
749
750
|
input: ts.Expression;
|
|
750
|
-
|
|
751
|
+
arrays: MetadataArray[];
|
|
751
752
|
explore: FeatureProgrammer.IExplore;
|
|
752
753
|
}): ts.Expression =>
|
|
753
754
|
explore_array_like_union_types({
|
|
754
755
|
...props,
|
|
756
|
+
elements: props.arrays,
|
|
755
757
|
factory: (next) =>
|
|
756
758
|
UnionExplorer.array({
|
|
757
|
-
checker:
|
|
759
|
+
checker: (input, metadata, explore) =>
|
|
760
|
+
IsProgrammer.decode({
|
|
761
|
+
context: props.context,
|
|
762
|
+
importer: props.importer,
|
|
763
|
+
metadata,
|
|
764
|
+
input,
|
|
765
|
+
explore,
|
|
766
|
+
}),
|
|
758
767
|
decoder: (input, array, explore) =>
|
|
759
768
|
decode_array({
|
|
760
769
|
config: props.config,
|
|
@@ -811,7 +820,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
811
820
|
[],
|
|
812
821
|
);
|
|
813
822
|
|
|
814
|
-
const
|
|
823
|
+
const arrayExplore: FeatureProgrammer.IExplore = {
|
|
815
824
|
...props.explore,
|
|
816
825
|
source: "function",
|
|
817
826
|
from: "array",
|
|
@@ -827,7 +836,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
827
836
|
TypeFactory.keyword("any"),
|
|
828
837
|
)(ts.factory.createIdentifier("input")),
|
|
829
838
|
explore: {
|
|
830
|
-
...
|
|
839
|
+
...arrayExplore,
|
|
831
840
|
postfix: "",
|
|
832
841
|
},
|
|
833
842
|
input: ts.factory.createIdentifier("input"),
|
|
@@ -835,7 +844,7 @@ export namespace JsonStringifyProgrammer {
|
|
|
835
844
|
),
|
|
836
845
|
),
|
|
837
846
|
undefined,
|
|
838
|
-
FeatureProgrammer.argumentsArray(props.config)(
|
|
847
|
+
FeatureProgrammer.argumentsArray(props.config)(arrayExplore)(props.input),
|
|
839
848
|
);
|
|
840
849
|
};
|
|
841
850
|
|
|
@@ -940,15 +949,22 @@ export namespace JsonStringifyProgrammer {
|
|
|
940
949
|
initializer,
|
|
941
950
|
decoder: () => (input, metadata, explore) =>
|
|
942
951
|
decode({
|
|
943
|
-
config,
|
|
944
952
|
context: props.context,
|
|
945
953
|
importer: props.importer,
|
|
954
|
+
config,
|
|
946
955
|
input,
|
|
947
956
|
metadata,
|
|
948
957
|
explore,
|
|
949
958
|
}),
|
|
950
959
|
objector: {
|
|
951
|
-
checker: () =>
|
|
960
|
+
checker: () => (input, metadata, explore) =>
|
|
961
|
+
IsProgrammer.decode({
|
|
962
|
+
context: props.context,
|
|
963
|
+
importer: props.importer,
|
|
964
|
+
metadata,
|
|
965
|
+
input,
|
|
966
|
+
explore,
|
|
967
|
+
}),
|
|
952
968
|
decoder: () => (input, object, explore) =>
|
|
953
969
|
decode_object({
|
|
954
970
|
importer: props.importer,
|
|
@@ -961,8 +977,14 @@ export namespace JsonStringifyProgrammer {
|
|
|
961
977
|
...next,
|
|
962
978
|
importer: props.importer,
|
|
963
979
|
}),
|
|
964
|
-
unionizer: decode_union_object(
|
|
965
|
-
IsProgrammer.decode_object(
|
|
980
|
+
unionizer: decode_union_object((input, object, explore) =>
|
|
981
|
+
IsProgrammer.decode_object({
|
|
982
|
+
context: props.context,
|
|
983
|
+
importer: props.importer,
|
|
984
|
+
input,
|
|
985
|
+
object,
|
|
986
|
+
explore,
|
|
987
|
+
}),
|
|
966
988
|
)((input, object, explore) =>
|
|
967
989
|
decode_object({
|
|
968
990
|
importer: props.importer,
|
|
@@ -104,38 +104,57 @@ export namespace LlmApplicationProgrammer {
|
|
|
104
104
|
function: MetadataFunction;
|
|
105
105
|
description: string | null;
|
|
106
106
|
jsDocTags: IJsDocTagInfo[];
|
|
107
|
-
}): ILlmFunction =>
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
107
|
+
}): ILlmFunction => {
|
|
108
|
+
const deprecated: boolean = props.jsDocTags.some(
|
|
109
|
+
(tag) => tag.name === "deprecated",
|
|
110
|
+
);
|
|
111
|
+
const tags: string[] = props.jsDocTags
|
|
112
|
+
.map((tag) =>
|
|
113
|
+
tag.name === "tag"
|
|
114
|
+
? (tag.text?.filter((elem) => elem.kind === "text") ?? [])
|
|
115
|
+
: [],
|
|
116
|
+
)
|
|
117
|
+
.flat()
|
|
118
|
+
.map((elem) => elem.text)
|
|
119
|
+
.map((str) => str.trim().split(" ")[0] ?? "")
|
|
120
|
+
.filter((str) => !!str.length);
|
|
121
|
+
return {
|
|
122
|
+
name: props.name,
|
|
123
|
+
parameters: props.function.parameters.map((p) => {
|
|
124
|
+
const jsDocTagDescription: string | null = writeDescriptionFromJsDocTag(
|
|
125
|
+
{
|
|
126
|
+
jsDocTags: p.jsDocTags,
|
|
127
|
+
tag: "param",
|
|
128
|
+
parameter: p.name,
|
|
129
|
+
},
|
|
130
|
+
);
|
|
131
|
+
return writeSchema({
|
|
132
|
+
metadata: p.type,
|
|
133
|
+
description: jsDocTagDescription ?? p.description,
|
|
134
|
+
jsDocTags: jsDocTagDescription ? [] : p.jsDocTags,
|
|
135
|
+
});
|
|
136
|
+
}),
|
|
137
|
+
output:
|
|
138
|
+
props.function.output.size() || props.function.output.nullable
|
|
139
|
+
? writeSchema({
|
|
140
|
+
metadata: props.function.output,
|
|
141
|
+
description:
|
|
142
|
+
writeDescriptionFromJsDocTag({
|
|
143
|
+
jsDocTags: props.jsDocTags,
|
|
144
|
+
tag: "return",
|
|
145
|
+
}) ??
|
|
146
|
+
writeDescriptionFromJsDocTag({
|
|
147
|
+
jsDocTags: props.jsDocTags,
|
|
148
|
+
tag: "returns",
|
|
149
|
+
}),
|
|
150
|
+
jsDocTags: [],
|
|
151
|
+
})
|
|
152
|
+
: undefined,
|
|
153
|
+
description: props.description ?? undefined,
|
|
154
|
+
deprecated: deprecated || undefined,
|
|
155
|
+
tags: tags.length ? tags : undefined,
|
|
156
|
+
};
|
|
157
|
+
};
|
|
139
158
|
|
|
140
159
|
const writeSchema = (props: {
|
|
141
160
|
metadata: Metadata;
|