typia 11.0.0 → 11.0.2
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 +2 -2
- package/lib/programmers/internal/json_schema_alias.js +4 -1
- package/lib/programmers/internal/json_schema_alias.js.map +1 -1
- package/lib/programmers/internal/json_schema_alias.mjs +4 -1
- package/lib/programmers/internal/json_schema_jsDocTags.d.mts +3 -0
- package/lib/programmers/internal/json_schema_jsDocTags.d.ts +3 -0
- package/lib/programmers/internal/json_schema_jsDocTags.js +28 -0
- package/lib/programmers/internal/json_schema_jsDocTags.js.map +1 -0
- package/lib/programmers/internal/json_schema_jsDocTags.mjs +27 -0
- package/lib/programmers/internal/json_schema_jsDocTags.mjs.map +1 -0
- package/lib/programmers/internal/json_schema_object.js +11 -8
- package/lib/programmers/internal/json_schema_object.js.map +1 -1
- package/lib/programmers/internal/json_schema_object.mjs +11 -8
- package/package.json +1 -1
- package/src/programmers/internal/json_schema_alias.ts +4 -1
- package/src/programmers/internal/json_schema_jsDocTags.ts +27 -0
- package/src/programmers/internal/json_schema_object.ts +26 -22
package/lib/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as module from './module.mjs';
|
|
1
|
+
import * as module$1 from './module.mjs';
|
|
2
2
|
export { assert, assertEquals, assertGuard, assertGuardEquals, createAssert, createAssertEquals, createAssertGuard, createAssertGuardEquals, createEquals, createIs, createRandom, createValidate, createValidateEquals, equals, is, random, validate, validateEquals } from './module.mjs';
|
|
3
3
|
import * as functional from './functional.mjs';
|
|
4
4
|
export { functional };
|
|
@@ -22,5 +22,5 @@ export { TypeGuardError } from './TypeGuardError.mjs';
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
export { module as default };
|
|
25
|
+
export { module$1 as default };
|
|
26
26
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.json_schema_alias = void 0;
|
|
4
4
|
const json_schema_description_1 = require("./json_schema_description");
|
|
5
|
+
const json_schema_jsDocTags_1 = require("./json_schema_jsDocTags");
|
|
5
6
|
const json_schema_object_1 = require("./json_schema_object");
|
|
6
7
|
const json_schema_station_1 = require("./json_schema_station");
|
|
7
8
|
const json_schema_title_1 = require("./json_schema_title");
|
|
@@ -31,8 +32,10 @@ const json_schema_alias = (props) => {
|
|
|
31
32
|
},
|
|
32
33
|
metadata: props.alias.type.value,
|
|
33
34
|
});
|
|
34
|
-
if (schema !== null)
|
|
35
|
+
if (schema !== null) {
|
|
36
|
+
(0, json_schema_jsDocTags_1.json_schema_jsDocTags)(schema, props.alias.type.jsDocTags);
|
|
35
37
|
Object.assign(props.components.schemas[props.alias.type.name], schema);
|
|
38
|
+
}
|
|
36
39
|
}
|
|
37
40
|
return [{ $ref }];
|
|
38
41
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json_schema_alias.js","sourceRoot":"","sources":["../../../src/programmers/internal/json_schema_alias.ts"],"names":[],"mappings":";;;AAIA,uEAAoE;AACpE,6DAA0D;AAC1D,+DAA4D;AAC5D,2DAAwD;AAEjD,MAAM,iBAAiB,GAAG,CAA6B,KAI7D,EAAoC,EAAE;;;IACrC,IACE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;QACnC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAE3C,OAAO,IAAA,uCAAkB,EAAC;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE;SAC3C,CAAqC,CAAC;IAEzC,MAAM,IAAI,GAAW,wBAAwB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrE,IAAI,CAAA,MAAA,KAAK,CAAC,UAAU,CAAC,OAAO,0CAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAK,SAAS,EAAE,CAAC;QACpE,uBAAuB;QACvB,YAAA,KAAK,CAAC,UAAU,EAAC,OAAO,uCAAP,OAAO,GAAK,EAAE,EAAC;QAChC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAErD,kBAAkB;QAClB,MAAM,MAAM,GAA+B,IAAA,yCAAmB,EAAC;YAC7D,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE;gBACT,UAAU,EACR,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC;oBACnE,SAAS;gBACX,KAAK,EAAE,IAAA,qCAAiB,EAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC1C,WAAW,EAAE,IAAA,iDAAuB,EAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;aACvD;YACD,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;SACjC,CAAC,CAAC;QACH,IAAI,MAAM,KAAK,IAAI;
|
|
1
|
+
{"version":3,"file":"json_schema_alias.js","sourceRoot":"","sources":["../../../src/programmers/internal/json_schema_alias.ts"],"names":[],"mappings":";;;AAIA,uEAAoE;AACpE,mEAAgE;AAChE,6DAA0D;AAC1D,+DAA4D;AAC5D,2DAAwD;AAEjD,MAAM,iBAAiB,GAAG,CAA6B,KAI7D,EAAoC,EAAE;;;IACrC,IACE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;QACnC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAE3C,OAAO,IAAA,uCAAkB,EAAC;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE;SAC3C,CAAqC,CAAC;IAEzC,MAAM,IAAI,GAAW,wBAAwB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrE,IAAI,CAAA,MAAA,KAAK,CAAC,UAAU,CAAC,OAAO,0CAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAK,SAAS,EAAE,CAAC;QACpE,uBAAuB;QACvB,YAAA,KAAK,CAAC,UAAU,EAAC,OAAO,uCAAP,OAAO,GAAK,EAAE,EAAC;QAChC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAErD,kBAAkB;QAClB,MAAM,MAAM,GAA+B,IAAA,yCAAmB,EAAC;YAC7D,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE;gBACT,UAAU,EACR,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC;oBACnE,SAAS;gBACX,KAAK,EAAE,IAAA,qCAAiB,EAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC1C,WAAW,EAAE,IAAA,iDAAuB,EAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;aACvD;YACD,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;SACjC,CAAC,CAAC;QACH,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,IAAA,6CAAqB,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAE,EAAE,MAAM,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IACD,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACpB,CAAC,CAAC;AAvCW,QAAA,iBAAiB,qBAuC5B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { json_schema_description } from './json_schema_description.mjs';
|
|
2
|
+
import { json_schema_jsDocTags } from './json_schema_jsDocTags.mjs';
|
|
2
3
|
import { json_schema_object } from './json_schema_object.mjs';
|
|
3
4
|
import { json_schema_station } from './json_schema_station.mjs';
|
|
4
5
|
import { json_schema_title } from './json_schema_title.mjs';
|
|
@@ -27,8 +28,10 @@ const json_schema_alias = (props) => {
|
|
|
27
28
|
},
|
|
28
29
|
metadata: props.alias.type.value,
|
|
29
30
|
});
|
|
30
|
-
if (schema !== null)
|
|
31
|
+
if (schema !== null) {
|
|
32
|
+
json_schema_jsDocTags(schema, props.alias.type.jsDocTags);
|
|
31
33
|
Object.assign(props.components.schemas[props.alias.type.name], schema);
|
|
34
|
+
}
|
|
32
35
|
}
|
|
33
36
|
return [{ $ref }];
|
|
34
37
|
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.json_schema_jsDocTags = void 0;
|
|
4
|
+
const json_schema_jsDocTags = (schema, jsDocTags) => {
|
|
5
|
+
var _a;
|
|
6
|
+
for (const tag of jsDocTags) {
|
|
7
|
+
if (tag.name.startsWith("x-") === false)
|
|
8
|
+
continue;
|
|
9
|
+
const value = (_a = tag.text) === null || _a === void 0 ? void 0 : _a.filter((s) => s.kind === "text").map((s) => s.text.trim().split("\r\n").join("\n"))[0];
|
|
10
|
+
if (value === undefined)
|
|
11
|
+
continue;
|
|
12
|
+
else
|
|
13
|
+
schema[tag.name] = cast(value);
|
|
14
|
+
}
|
|
15
|
+
return schema;
|
|
16
|
+
};
|
|
17
|
+
exports.json_schema_jsDocTags = json_schema_jsDocTags;
|
|
18
|
+
const cast = (value) => {
|
|
19
|
+
if (value === "true")
|
|
20
|
+
return true;
|
|
21
|
+
if (value === "false")
|
|
22
|
+
return false;
|
|
23
|
+
const num = Number(value);
|
|
24
|
+
if (Number.isNaN(num) === false)
|
|
25
|
+
return num;
|
|
26
|
+
return value === "null" ? null : value;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=json_schema_jsDocTags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json_schema_jsDocTags.js","sourceRoot":"","sources":["../../../src/programmers/internal/json_schema_jsDocTags.ts"],"names":[],"mappings":";;;AAIO,MAAM,qBAAqB,GAAG,CACnC,MAAc,EACd,SAA0B,EAClB,EAAE;;IACV,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,KAAK;YAAE,SAAS;QAElD,MAAM,KAAK,GAAuB,MAAA,GAAG,CAAC,IAAI,0CACtC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;;YAC5B,MAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAdW,QAAA,qBAAqB,yBAchC;AAEF,MAAM,IAAI,GAAG,CAAC,KAAa,EAAoC,EAAE;IAC/D,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,GAAG,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC;IAC5C,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACzC,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const json_schema_jsDocTags = (schema, jsDocTags) => {
|
|
2
|
+
for (const tag of jsDocTags) {
|
|
3
|
+
if (tag.name.startsWith("x-") === false)
|
|
4
|
+
continue;
|
|
5
|
+
const value = tag.text
|
|
6
|
+
?.filter((s) => s.kind === "text")
|
|
7
|
+
.map((s) => s.text.trim().split("\r\n").join("\n"))[0];
|
|
8
|
+
if (value === undefined)
|
|
9
|
+
continue;
|
|
10
|
+
else
|
|
11
|
+
schema[tag.name] = cast(value);
|
|
12
|
+
}
|
|
13
|
+
return schema;
|
|
14
|
+
};
|
|
15
|
+
const cast = (value) => {
|
|
16
|
+
if (value === "true")
|
|
17
|
+
return true;
|
|
18
|
+
if (value === "false")
|
|
19
|
+
return false;
|
|
20
|
+
const num = Number(value);
|
|
21
|
+
if (Number.isNaN(num) === false)
|
|
22
|
+
return num;
|
|
23
|
+
return value === "null" ? null : value;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export { json_schema_jsDocTags };
|
|
27
|
+
//# sourceMappingURL=json_schema_jsDocTags.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json_schema_jsDocTags.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -5,6 +5,7 @@ const CommentFactory_1 = require("../../factories/CommentFactory");
|
|
|
5
5
|
const Metadata_1 = require("../../schemas/metadata/Metadata");
|
|
6
6
|
const PatternUtil_1 = require("../../utils/PatternUtil");
|
|
7
7
|
const json_schema_description_1 = require("./json_schema_description");
|
|
8
|
+
const json_schema_jsDocTags_1 = require("./json_schema_jsDocTags");
|
|
8
9
|
const json_schema_plugin_1 = require("./json_schema_plugin");
|
|
9
10
|
const json_schema_station_1 = require("./json_schema_station");
|
|
10
11
|
const json_schema_title_1 = require("./json_schema_title");
|
|
@@ -49,8 +50,7 @@ const create_object_schema = (props) => {
|
|
|
49
50
|
continue;
|
|
50
51
|
else if (property.jsDocTags.find((tag) => tag.name === "hidden"))
|
|
51
52
|
continue; // THE HIDDEN TAG
|
|
52
|
-
const
|
|
53
|
-
const schema = (0, json_schema_station_1.json_schema_station)({
|
|
53
|
+
const value = (0, json_schema_station_1.json_schema_station)({
|
|
54
54
|
blockNever: true,
|
|
55
55
|
components: props.components,
|
|
56
56
|
attribute: {
|
|
@@ -62,10 +62,13 @@ const create_object_schema = (props) => {
|
|
|
62
62
|
},
|
|
63
63
|
metadata: property.value,
|
|
64
64
|
});
|
|
65
|
-
if (
|
|
65
|
+
if (value === null)
|
|
66
66
|
continue;
|
|
67
|
+
else
|
|
68
|
+
(0, json_schema_jsDocTags_1.json_schema_jsDocTags)(value, property.jsDocTags);
|
|
69
|
+
const key = property.key.getSoleLiteral();
|
|
67
70
|
if (key !== null) {
|
|
68
|
-
properties[key] =
|
|
71
|
+
properties[key] = value;
|
|
69
72
|
if (property.value.isRequired() === true)
|
|
70
73
|
required.push(key);
|
|
71
74
|
}
|
|
@@ -75,12 +78,12 @@ const create_object_schema = (props) => {
|
|
|
75
78
|
metadata: property.key,
|
|
76
79
|
});
|
|
77
80
|
if (pattern === PatternUtil_1.PatternUtil.STRING)
|
|
78
|
-
extraMeta.additionalProperties = [property.value,
|
|
81
|
+
extraMeta.additionalProperties = [property.value, value];
|
|
79
82
|
else
|
|
80
|
-
extraMeta.patternProperties[pattern] = [property.value,
|
|
83
|
+
extraMeta.patternProperties[pattern] = [property.value, value];
|
|
81
84
|
}
|
|
82
85
|
}
|
|
83
|
-
return {
|
|
86
|
+
return (0, json_schema_jsDocTags_1.json_schema_jsDocTags)({
|
|
84
87
|
type: "object",
|
|
85
88
|
properties,
|
|
86
89
|
required,
|
|
@@ -94,7 +97,7 @@ const create_object_schema = (props) => {
|
|
|
94
97
|
components: props.components,
|
|
95
98
|
extra: extraMeta,
|
|
96
99
|
}),
|
|
97
|
-
};
|
|
100
|
+
}, props.object.type.jsDocTags);
|
|
98
101
|
};
|
|
99
102
|
/** @internal */
|
|
100
103
|
const join = (props) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json_schema_object.js","sourceRoot":"","sources":["../../../src/programmers/internal/json_schema_object.ts"],"names":[],"mappings":";;;AAEA,mEAAgE;AAGhE,8DAA2D;AAG3D,yDAAsD;AAEtD,uEAAoE;AACpE,6DAA0D;AAC1D,+DAA4D;AAC5D,2DAAwD;AACxD,+DAA4D;AAE5D,gBAAgB;AACT,MAAM,kBAAkB,GAAG,CAAC,KAGlC,EAAuE,EAAE,CACxE,IAAA,uCAAkB,EAAC;IACjB,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC;IAC7B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;CACxB,CAAC,CAAC;AAPQ,QAAA,kBAAkB,sBAO1B;AAEL,MAAM,cAAc,GAAG,CAAC,KAGvB,EAAgE,EAAE;;;IACjE,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI;QACxC,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAErC,MAAM,GAAG,GAAW,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3C,MAAM,IAAI,GAAW,wBAAwB,GAAG,EAAE,CAAC;IACnD,IAAI,CAAA,MAAA,KAAK,CAAC,UAAU,CAAC,OAAO,0CAAG,GAAG,CAAC,MAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEnE,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,YAAA,KAAK,CAAC,UAAU,EAAC,OAAO,uCAAP,OAAO,GAAK,EAAE,EAAC;IAChC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACrC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC,CAAC;AAEF,gBAAgB;AAChB,MAAM,oBAAoB,GAAG,CAAC,KAG7B,EAA+B,EAAE;IAChC,qBAAqB;IACrB,MAAM,UAAU,GAAwB,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAiB;QAC9B,iBAAiB,EAAE,EAAE;QACrB,oBAAoB,EAAE,SAAS;KAChC,CAAC;IACF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACpD;QACE,kBAAkB;QAClB,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;YAC/B,QAAQ,CAAC,KAAK,CAAC,QAAQ,KAAK,KAAK;YACjC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,IAAI;YACpC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;YAE3B,SAAS;aACN,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC;YAAE,SAAS,CAAC,iBAAiB;QAE7F,MAAM,
|
|
1
|
+
{"version":3,"file":"json_schema_object.js","sourceRoot":"","sources":["../../../src/programmers/internal/json_schema_object.ts"],"names":[],"mappings":";;;AAEA,mEAAgE;AAGhE,8DAA2D;AAG3D,yDAAsD;AAEtD,uEAAoE;AACpE,mEAAgE;AAChE,6DAA0D;AAC1D,+DAA4D;AAC5D,2DAAwD;AACxD,+DAA4D;AAE5D,gBAAgB;AACT,MAAM,kBAAkB,GAAG,CAAC,KAGlC,EAAuE,EAAE,CACxE,IAAA,uCAAkB,EAAC;IACjB,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC;IAC7B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;CACxB,CAAC,CAAC;AAPQ,QAAA,kBAAkB,sBAO1B;AAEL,MAAM,cAAc,GAAG,CAAC,KAGvB,EAAgE,EAAE;;;IACjE,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI;QACxC,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAErC,MAAM,GAAG,GAAW,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3C,MAAM,IAAI,GAAW,wBAAwB,GAAG,EAAE,CAAC;IACnD,IAAI,CAAA,MAAA,KAAK,CAAC,UAAU,CAAC,OAAO,0CAAG,GAAG,CAAC,MAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEnE,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,YAAA,KAAK,CAAC,UAAU,EAAC,OAAO,uCAAP,OAAO,GAAK,EAAE,EAAC;IAChC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACrC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC,CAAC;AAEF,gBAAgB;AAChB,MAAM,oBAAoB,GAAG,CAAC,KAG7B,EAA+B,EAAE;IAChC,qBAAqB;IACrB,MAAM,UAAU,GAAwB,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAiB;QAC9B,iBAAiB,EAAE,EAAE;QACrB,oBAAoB,EAAE,SAAS;KAChC,CAAC;IACF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACpD;QACE,kBAAkB;QAClB,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;YAC/B,QAAQ,CAAC,KAAK,CAAC,QAAQ,KAAK,KAAK;YACjC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,IAAI;YACpC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;YAE3B,SAAS;aACN,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC;YAAE,SAAS,CAAC,iBAAiB;QAE7F,MAAM,KAAK,GAA+B,IAAA,yCAAmB,EAAC;YAC5D,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE;gBACT,UAAU,EACR,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC;oBAC3D,SAAS;gBACX,KAAK,EAAE,IAAA,qCAAiB,EAAC,QAAQ,CAAC;gBAClC,WAAW,EAAE,IAAA,iDAAuB,EAAC,QAAQ,CAAC;gBAC9C,QAAQ,EAAE,QAAQ,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;aAChE;YACD,QAAQ,EAAE,QAAQ,CAAC,KAAK;SACzB,CAAC,CAAC;QACH,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;;YACxB,IAAA,6CAAqB,EAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEtD,MAAM,GAAG,GAAkB,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QACzD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACxB,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,IAAI;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAW,IAAA,yCAAmB,EAAC;gBAC1C,GAAG,EAAE,IAAI;gBACT,QAAQ,EAAE,QAAQ,CAAC,GAAG;aACvB,CAAC,CAAC;YACH,IAAI,OAAO,KAAK,yBAAW,CAAC,MAAM;gBAChC,SAAS,CAAC,oBAAoB,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;;gBACtD,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,OAAO,IAAA,6CAAqB,EAC1B;QACE,IAAI,EAAE,QAAQ;QACd,UAAU;QACV,QAAQ;QACR,KAAK,EAAE,CAAC,GAAG,EAAE;;YACX,MAAM,IAAI,GACR,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;YAClE,OAAO,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,MAAM,EAAC,CAAC,CAAC,+BAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,CAAC,CAAC,EAAE;QACJ,WAAW,EAAE,IAAA,iDAAuB,EAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;QACvD,oBAAoB,EAAE,IAAI,CAAC;YACzB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,KAAK,EAAE,SAAS;SACjB,CAAC;KACH,EACD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAC5B,CAAC;AACJ,CAAC,CAAC;AAEF,gBAAgB;AAChB,MAAM,IAAI,GAAG,CAAC,KAGb,EAAmC,EAAE;;IACpC,mBAAmB;IACnB,MAAM,QAAQ,GAAsC,MAAM,CAAC,MAAM,CAC/D,KAAK,CAAC,KAAK,CAAC,iBAAiB,IAAI,EAAE,CACpC,CAAC;IACF,IAAI,KAAK,CAAC,KAAK,CAAC,oBAAoB;QAClC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAElD,eAAe;IACf,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;SACvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,CAAC;IAExD,gDAAgD;IAChD,MAAM,QAAQ,GAAa,QAAQ;SAChC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACxB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,mBAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1C,OAAO,CACL,MAAA,IAAA,yCAAmB,EAAC;QAClB,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,SAAS,EAAE,EAAE;QACb,QAAQ;KACT,CAAC,mCAAI,SAAS,CAChB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { CommentFactory } from '../../factories/CommentFactory.mjs';
|
|
|
2
2
|
import { Metadata } from '../../schemas/metadata/Metadata.mjs';
|
|
3
3
|
import { PatternUtil } from '../../utils/PatternUtil.mjs';
|
|
4
4
|
import { json_schema_description } from './json_schema_description.mjs';
|
|
5
|
+
import { json_schema_jsDocTags } from './json_schema_jsDocTags.mjs';
|
|
5
6
|
import { json_schema_plugin } from './json_schema_plugin.mjs';
|
|
6
7
|
import { json_schema_station } from './json_schema_station.mjs';
|
|
7
8
|
import { json_schema_title } from './json_schema_title.mjs';
|
|
@@ -44,8 +45,7 @@ const create_object_schema = (props) => {
|
|
|
44
45
|
continue;
|
|
45
46
|
else if (property.jsDocTags.find((tag) => tag.name === "hidden"))
|
|
46
47
|
continue; // THE HIDDEN TAG
|
|
47
|
-
const
|
|
48
|
-
const schema = json_schema_station({
|
|
48
|
+
const value = json_schema_station({
|
|
49
49
|
blockNever: true,
|
|
50
50
|
components: props.components,
|
|
51
51
|
attribute: {
|
|
@@ -57,10 +57,13 @@ const create_object_schema = (props) => {
|
|
|
57
57
|
},
|
|
58
58
|
metadata: property.value,
|
|
59
59
|
});
|
|
60
|
-
if (
|
|
60
|
+
if (value === null)
|
|
61
61
|
continue;
|
|
62
|
+
else
|
|
63
|
+
json_schema_jsDocTags(value, property.jsDocTags);
|
|
64
|
+
const key = property.key.getSoleLiteral();
|
|
62
65
|
if (key !== null) {
|
|
63
|
-
properties[key] =
|
|
66
|
+
properties[key] = value;
|
|
64
67
|
if (property.value.isRequired() === true)
|
|
65
68
|
required.push(key);
|
|
66
69
|
}
|
|
@@ -70,12 +73,12 @@ const create_object_schema = (props) => {
|
|
|
70
73
|
metadata: property.key,
|
|
71
74
|
});
|
|
72
75
|
if (pattern === PatternUtil.STRING)
|
|
73
|
-
extraMeta.additionalProperties = [property.value,
|
|
76
|
+
extraMeta.additionalProperties = [property.value, value];
|
|
74
77
|
else
|
|
75
|
-
extraMeta.patternProperties[pattern] = [property.value,
|
|
78
|
+
extraMeta.patternProperties[pattern] = [property.value, value];
|
|
76
79
|
}
|
|
77
80
|
}
|
|
78
|
-
return {
|
|
81
|
+
return json_schema_jsDocTags({
|
|
79
82
|
type: "object",
|
|
80
83
|
properties,
|
|
81
84
|
required,
|
|
@@ -88,7 +91,7 @@ const create_object_schema = (props) => {
|
|
|
88
91
|
components: props.components,
|
|
89
92
|
extra: extraMeta,
|
|
90
93
|
}),
|
|
91
|
-
};
|
|
94
|
+
}, props.object.type.jsDocTags);
|
|
92
95
|
};
|
|
93
96
|
/** @internal */
|
|
94
97
|
const join = (props) => {
|
package/package.json
CHANGED
|
@@ -3,6 +3,7 @@ import { OpenApi } from "@samchon/openapi";
|
|
|
3
3
|
import { MetadataAlias } from "../../schemas/metadata/MetadataAlias";
|
|
4
4
|
|
|
5
5
|
import { json_schema_description } from "./json_schema_description";
|
|
6
|
+
import { json_schema_jsDocTags } from "./json_schema_jsDocTags";
|
|
6
7
|
import { json_schema_object } from "./json_schema_object";
|
|
7
8
|
import { json_schema_station } from "./json_schema_station";
|
|
8
9
|
import { json_schema_title } from "./json_schema_title";
|
|
@@ -40,8 +41,10 @@ export const json_schema_alias = <BlockNever extends boolean>(props: {
|
|
|
40
41
|
},
|
|
41
42
|
metadata: props.alias.type.value,
|
|
42
43
|
});
|
|
43
|
-
if (schema !== null)
|
|
44
|
+
if (schema !== null) {
|
|
45
|
+
json_schema_jsDocTags(schema, props.alias.type.jsDocTags);
|
|
44
46
|
Object.assign(props.components.schemas[props.alias.type.name]!, schema);
|
|
47
|
+
}
|
|
45
48
|
}
|
|
46
49
|
return [{ $ref }];
|
|
47
50
|
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { OpenApi } from "@samchon/openapi";
|
|
2
|
+
|
|
3
|
+
import { IJsDocTagInfo } from "../../schemas/metadata/IJsDocTagInfo";
|
|
4
|
+
|
|
5
|
+
export const json_schema_jsDocTags = <Schema extends OpenApi.IJsonSchema>(
|
|
6
|
+
schema: Schema,
|
|
7
|
+
jsDocTags: IJsDocTagInfo[],
|
|
8
|
+
): Schema => {
|
|
9
|
+
for (const tag of jsDocTags) {
|
|
10
|
+
if (tag.name.startsWith("x-") === false) continue;
|
|
11
|
+
|
|
12
|
+
const value: string | undefined = tag.text
|
|
13
|
+
?.filter((s) => s.kind === "text")
|
|
14
|
+
.map((s) => s.text.trim().split("\r\n").join("\n"))[0];
|
|
15
|
+
if (value === undefined) continue;
|
|
16
|
+
else (schema as any)[tag.name] = cast(value);
|
|
17
|
+
}
|
|
18
|
+
return schema;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const cast = (value: string): string | number | boolean | null => {
|
|
22
|
+
if (value === "true") return true;
|
|
23
|
+
if (value === "false") return false;
|
|
24
|
+
const num: number = Number(value);
|
|
25
|
+
if (Number.isNaN(num) === false) return num;
|
|
26
|
+
return value === "null" ? null : value;
|
|
27
|
+
};
|
|
@@ -9,6 +9,7 @@ import { MetadataObject } from "../../schemas/metadata/MetadataObject";
|
|
|
9
9
|
import { PatternUtil } from "../../utils/PatternUtil";
|
|
10
10
|
|
|
11
11
|
import { json_schema_description } from "./json_schema_description";
|
|
12
|
+
import { json_schema_jsDocTags } from "./json_schema_jsDocTags";
|
|
12
13
|
import { json_schema_plugin } from "./json_schema_plugin";
|
|
13
14
|
import { json_schema_station } from "./json_schema_station";
|
|
14
15
|
import { json_schema_title } from "./json_schema_title";
|
|
@@ -66,8 +67,7 @@ const create_object_schema = (props: {
|
|
|
66
67
|
continue;
|
|
67
68
|
else if (property.jsDocTags.find((tag) => tag.name === "hidden")) continue; // THE HIDDEN TAG
|
|
68
69
|
|
|
69
|
-
const
|
|
70
|
-
const schema: OpenApi.IJsonSchema | null = json_schema_station({
|
|
70
|
+
const value: OpenApi.IJsonSchema | null = json_schema_station({
|
|
71
71
|
blockNever: true,
|
|
72
72
|
components: props.components,
|
|
73
73
|
attribute: {
|
|
@@ -80,10 +80,12 @@ const create_object_schema = (props: {
|
|
|
80
80
|
},
|
|
81
81
|
metadata: property.value,
|
|
82
82
|
});
|
|
83
|
+
if (value === null) continue;
|
|
84
|
+
else json_schema_jsDocTags(value, property.jsDocTags);
|
|
83
85
|
|
|
84
|
-
|
|
86
|
+
const key: string | null = property.key.getSoleLiteral();
|
|
85
87
|
if (key !== null) {
|
|
86
|
-
properties[key] =
|
|
88
|
+
properties[key] = value;
|
|
87
89
|
if (property.value.isRequired() === true) required.push(key);
|
|
88
90
|
} else {
|
|
89
91
|
const pattern: string = metadata_to_pattern({
|
|
@@ -91,27 +93,29 @@ const create_object_schema = (props: {
|
|
|
91
93
|
metadata: property.key,
|
|
92
94
|
});
|
|
93
95
|
if (pattern === PatternUtil.STRING)
|
|
94
|
-
extraMeta.additionalProperties = [property.value,
|
|
95
|
-
else extraMeta.patternProperties[pattern] = [property.value,
|
|
96
|
+
extraMeta.additionalProperties = [property.value, value];
|
|
97
|
+
else extraMeta.patternProperties[pattern] = [property.value, value];
|
|
96
98
|
}
|
|
97
99
|
}
|
|
98
100
|
|
|
99
|
-
return
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
101
|
+
return json_schema_jsDocTags(
|
|
102
|
+
{
|
|
103
|
+
type: "object",
|
|
104
|
+
properties,
|
|
105
|
+
required,
|
|
106
|
+
title: (() => {
|
|
107
|
+
const info: IJsDocTagInfo | undefined =
|
|
108
|
+
props.object.type.jsDocTags.find((tag) => tag.name === "title");
|
|
109
|
+
return info?.text?.length ? CommentFactory.merge(info.text) : undefined;
|
|
110
|
+
})(),
|
|
111
|
+
description: json_schema_description(props.object.type),
|
|
112
|
+
additionalProperties: join({
|
|
113
|
+
components: props.components,
|
|
114
|
+
extra: extraMeta,
|
|
115
|
+
}),
|
|
116
|
+
},
|
|
117
|
+
props.object.type.jsDocTags,
|
|
118
|
+
);
|
|
115
119
|
};
|
|
116
120
|
|
|
117
121
|
/** @internal */
|