typia 4.0.10 → 4.0.11-dev.20230618
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/programmers/internal/application_alias.d.ts +1 -1
- package/lib/programmers/internal/application_alias.js +1 -3
- package/lib/programmers/internal/application_alias.js.map +1 -1
- package/lib/programmers/internal/application_object.js +4 -8
- package/lib/programmers/internal/application_object.js.map +1 -1
- package/lib/programmers/internal/application_tuple.js +8 -3
- package/lib/programmers/internal/application_tuple.js.map +1 -1
- package/lib/schemas/IJsonComponents.d.ts +0 -1
- package/lib/schemas/IJsonSchema.d.ts +9 -4
- package/package.json +2 -1
- package/src/programmers/internal/application_alias.ts +2 -6
- package/src/programmers/internal/application_object.ts +6 -11
- package/src/programmers/internal/application_tuple.ts +8 -0
- package/src/schemas/IJsonComponents.ts +0 -1
- package/src/schemas/IJsonSchema.ts +8 -4
|
@@ -2,4 +2,4 @@ import { MetadataAlias } from "../../metadata/MetadataAlias";
|
|
|
2
2
|
import { IJsonComponents } from "../../schemas/IJsonComponents";
|
|
3
3
|
import { IJsonSchema } from "../../module";
|
|
4
4
|
import { ApplicationProgrammer } from "../ApplicationProgrammer";
|
|
5
|
-
export declare const application_alias: (options: ApplicationProgrammer.IOptions) => <BlockNever extends boolean>(blockNever: BlockNever) => (components: IJsonComponents) => (alias: MetadataAlias) => (nullable: boolean) => IJsonSchema.IReference
|
|
5
|
+
export declare const application_alias: (options: ApplicationProgrammer.IOptions) => <BlockNever extends boolean>(blockNever: BlockNever) => (components: IJsonComponents) => (alias: MetadataAlias) => (nullable: boolean) => IJsonSchema.IReference;
|
|
@@ -36,9 +36,7 @@ var application_alias = function (options) {
|
|
|
36
36
|
(_c = components.schemas) !== null && _c !== void 0 ? _c : (components.schemas = {});
|
|
37
37
|
components.schemas[key] = __assign({ $id: options.purpose === "ajv" ? $id : undefined, $recursiveAnchor: (options.purpose === "ajv" && alias.recursive) || undefined }, schema);
|
|
38
38
|
}
|
|
39
|
-
return
|
|
40
|
-
? { $recursiveRef: $id }
|
|
41
|
-
: { $ref: $id };
|
|
39
|
+
return { $ref: $id };
|
|
42
40
|
};
|
|
43
41
|
};
|
|
44
42
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application_alias.js","sourceRoot":"","sources":["../../../src/programmers/internal/application_alias.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAKA,2DAA8D;AAC9D,2DAA0D;AAC1D,2DAA0D;AAEnD,IAAM,iBAAiB,GAC1B,UAAC,OAAuC;IACxC,OAAA,UAA6B,UAAsB;QACnD,OAAA,UAAC,UAA2B;YAC5B,OAAA,UAAC,KAAoB;gBACrB,OAAA,
|
|
1
|
+
{"version":3,"file":"application_alias.js","sourceRoot":"","sources":["../../../src/programmers/internal/application_alias.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAKA,2DAA8D;AAC9D,2DAA0D;AAC1D,2DAA0D;AAEnD,IAAM,iBAAiB,GAC1B,UAAC,OAAuC;IACxC,OAAA,UAA6B,UAAsB;QACnD,OAAA,UAAC,UAA2B;YAC5B,OAAA,UAAC,KAAoB;gBACrB,OAAA,UAAC,QAAiB;;oBACd,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;wBAC5D,OAAO,IAAA,uCAAkB,EAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAC1C,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,CAC1B,CAAC,QAAQ,CAAC,CAAC;oBAEhB,IAAM,GAAG,GACL,OAAO,CAAC,OAAO,KAAK,KAAK;wBACrB,CAAC,CAAC,KAAK,CAAC,IAAI;wBACZ,CAAC,CAAC,UAAG,KAAK,CAAC,IAAI,SAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;oBACxD,IAAM,GAAG,GAAW,UAAG,2CAAsB,sBAAY,GAAG,CAAE,CAAC;oBAG/D,IAAI,CAAA,MAAA,UAAU,CAAC,OAAO,0CAAG,GAAG,CAAC,MAAK,SAAS,EAAE;wBACzC,MAAA,UAAU,CAAC,OAAO,oCAAlB,UAAU,CAAC,OAAO,GAAK,EAAE,EAAC;wBAC1B,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG;4BACtB,GAAG,EAAE,GAAG;yBACJ,CAAC;wBAGT,IAAM,MAAM,GAAgB,IAAA,uCAAkB,EAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAC/D,UAAU,CACb,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAE,CAAC;wBACpB,MAAA,UAAU,CAAC,OAAO,oCAAlB,UAAU,CAAC,OAAO,GAAK,EAAE,EAAC;wBAC1B,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,cACnB,GAAG,EAAE,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAChD,gBAAgB,EACZ,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,IAC5D,MAAM,CACZ,CAAC;qBACL;oBACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;gBACzB,CAAC;YAhCD,CAgCC;QAjCD,CAiCC;IAlCD,CAkCC;AAnCD,CAmCC,CAAC;AArCO,QAAA,iBAAiB,qBAqCxB"}
|
|
@@ -55,13 +55,9 @@ var application_object = function (options) {
|
|
|
55
55
|
? obj.name
|
|
56
56
|
: "".concat(obj.name).concat(nullable ? ".Nullable" : "");
|
|
57
57
|
var $id = "".concat(JSON_SCHEMA_PREFIX_1.JSON_COMPONENTS_PREFIX, "/schemas/").concat(key);
|
|
58
|
-
var
|
|
59
|
-
return options.purpose === "ajv" && obj.recursive
|
|
60
|
-
? { $recursiveRef: $id }
|
|
61
|
-
: { $ref: $id };
|
|
62
|
-
};
|
|
58
|
+
var output = { $ref: $id };
|
|
63
59
|
if (((_b = components.schemas) === null || _b === void 0 ? void 0 : _b[key]) !== undefined)
|
|
64
|
-
return
|
|
60
|
+
return output;
|
|
65
61
|
(_c = components.schemas) !== null && _c !== void 0 ? _c : (components.schemas = {});
|
|
66
62
|
components.schemas[key] = {};
|
|
67
63
|
var properties = {};
|
|
@@ -150,7 +146,7 @@ var application_object = function (options) {
|
|
|
150
146
|
return output;
|
|
151
147
|
})(),
|
|
152
148
|
};
|
|
153
|
-
var schema = __assign({ $id: options.purpose === "ajv" ? $id : undefined,
|
|
149
|
+
var schema = __assign({ $id: options.purpose === "ajv" ? $id : undefined, type: "object", properties: properties, nullable: options.purpose === "swagger" ? nullable : undefined, required: required.length ? required : undefined, description: obj.description, "x-typia-jsDocTags": obj.jsDocTags }, (options.purpose === "ajv"
|
|
154
150
|
? extraProps
|
|
155
151
|
: {
|
|
156
152
|
"x-typia-additionalProperties": extraProps.additionalProperties,
|
|
@@ -158,7 +154,7 @@ var application_object = function (options) {
|
|
|
158
154
|
additionalProperties: join(options)(components)(extraMeta),
|
|
159
155
|
}));
|
|
160
156
|
components.schemas[key] = schema;
|
|
161
|
-
return
|
|
157
|
+
return output;
|
|
162
158
|
};
|
|
163
159
|
};
|
|
164
160
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application_object.js","sourceRoot":"","sources":["../../../src/programmers/internal/application_object.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAgE;AAGhE,oDAAmD;AAInD,uDAAsD;AAItD,2DAA8D;AAC9D,2DAA0D;AAC1D,6DAA4D;AAKrD,IAAM,kBAAkB,GAC3B,UAAC,OAAuC;IACxC,OAAA,UAAC,UAA2B;QAC5B,OAAA,UAAC,GAAmB;YACpB,OAAA,
|
|
1
|
+
{"version":3,"file":"application_object.js","sourceRoot":"","sources":["../../../src/programmers/internal/application_object.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,13 +18,18 @@ var application_tuple = function (options) {
|
|
|
18
18
|
return function (components) {
|
|
19
19
|
return function (tuple) {
|
|
20
20
|
return function (attribute) {
|
|
21
|
-
var
|
|
21
|
+
var _a, _b;
|
|
22
|
+
var schema = __assign(__assign({ type: "array", items: tuple.elements.map(function (meta, i) {
|
|
22
23
|
var _a;
|
|
23
24
|
return (0, application_schema_1.application_schema)(options)(false)(components)((_a = meta.rest) !== null && _a !== void 0 ? _a : meta)(__assign(__assign({}, attribute), { "x-typia-rest": i === tuple.elements.length - 1 && meta.rest !== null, "x-typia-required": meta.required, "x-typia-optional": meta.optional }));
|
|
24
|
-
}) }, attribute)
|
|
25
|
+
}) }, attribute), { minItems: !!((_a = tuple.elements.at(-1)) === null || _a === void 0 ? void 0 : _a.rest)
|
|
26
|
+
? tuple.elements.length - 1
|
|
27
|
+
: tuple.elements.length, maxItems: !!((_b = tuple.elements.at(-1)) === null || _b === void 0 ? void 0 : _b.rest)
|
|
28
|
+
? undefined
|
|
29
|
+
: tuple.elements.length });
|
|
25
30
|
if (options.purpose === "ajv")
|
|
26
31
|
return schema;
|
|
27
|
-
var wrapper = __assign(__assign({}, schema), { items: (0, application_schema_1.application_schema)(options)(false)(components)(tuple.elements.reduce(function (x, y) { var _a, _b; return Metadata_1.Metadata.merge((_a = x.rest) !== null && _a !== void 0 ? _a : x, (_b = y.rest) !== null && _b !== void 0 ? _b : y); }, Metadata_1.Metadata.initialize()))(tuple.recursive ? {} : attribute), "x-typia-tuple": schema });
|
|
32
|
+
var wrapper = __assign(__assign({}, schema), { items: (0, application_schema_1.application_schema)(options)(false)(components)(tuple.elements.reduce(function (x, y) { var _a, _b; return Metadata_1.Metadata.merge((_a = x.rest) !== null && _a !== void 0 ? _a : x, (_b = y.rest) !== null && _b !== void 0 ? _b : y); }, Metadata_1.Metadata.initialize()))(tuple.recursive ? {} : attribute), "x-typia-tuple": schema, minItems: schema.minItems, maxItems: schema.maxItems });
|
|
28
33
|
return wrapper;
|
|
29
34
|
};
|
|
30
35
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application_tuple.js","sourceRoot":"","sources":["../../../src/programmers/internal/application_tuple.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,oDAAmD;AAMnD,2DAA0D;AAKnD,IAAM,iBAAiB,GAC1B,UAAC,OAAuC;IACxC,OAAA,UAAC,UAA2B;QAC5B,OAAA,UAAC,KAAoB;YACrB,OAAA,UACI,SAAiC
|
|
1
|
+
{"version":3,"file":"application_tuple.js","sourceRoot":"","sources":["../../../src/programmers/internal/application_tuple.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,oDAAmD;AAMnD,2DAA0D;AAKnD,IAAM,iBAAiB,GAC1B,UAAC,OAAuC;IACxC,OAAA,UAAC,UAA2B;QAC5B,OAAA,UAAC,KAAoB;YACrB,OAAA,UACI,SAAiC;;gBAEjC,IAAM,MAAM,uBACR,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,CAAC;;wBAC9B,OAAA,IAAA,uCAAkB,EAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAC1C,MAAA,IAAI,CAAC,IAAI,mCAAI,IAAI,CACpB,uBACM,SAAS,KACZ,cAAc,EACV,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EACzD,kBAAkB,EAAE,IAAI,CAAC,QAAQ,EACjC,kBAAkB,EAAE,IAAI,CAAC,QAAQ,IACnC,CAAA;qBAAA,CACL,IACE,SAAS,KACZ,QAAQ,EAAE,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAA;wBACnC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;wBAC3B,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAC3B,QAAQ,EAAE,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAA;wBACnC,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAC9B,CAAC;gBACF,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK;oBAAE,OAAO,MAAM,CAAC;gBAE7C,IAAM,OAAO,yBACN,MAAM,KACT,KAAK,EAAE,IAAA,uCAAkB,EAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CACjD,KAAK,CAAC,QAAQ,CAAC,MAAM,CACjB,UAAC,CAAC,EAAE,CAAC,gBAAK,OAAA,mBAAQ,CAAC,KAAK,CAAC,MAAA,CAAC,CAAC,IAAI,mCAAI,CAAC,EAAE,MAAA,CAAC,CAAC,IAAI,mCAAI,CAAC,CAAC,CAAA,EAAA,EAClD,mBAAQ,CAAC,UAAU,EAAE,CACxB,CACJ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EACnC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAC5B,CAAC;gBACF,OAAO,OAAO,CAAC;YACnB,CAAC;QAvCD,CAuCC;IAxCD,CAwCC;AAzCD,CAyCC,CAAC;AA3CO,QAAA,iBAAiB,qBA2CxB"}
|
|
@@ -3,7 +3,7 @@ import { IMetadataTag } from "../metadata/IMetadataTag";
|
|
|
3
3
|
import { Atomic } from "../typings/Atomic";
|
|
4
4
|
export type IJsonSchema = IJsonSchema.Known | IJsonSchema.IUnknown;
|
|
5
5
|
export declare namespace IJsonSchema {
|
|
6
|
-
type Known = IEnumeration<"boolean"> | IEnumeration<"number"> | IEnumeration<"string"> | IBoolean | IInteger | INumber | IString | IArray | ITuple | IOneOf | IReference |
|
|
6
|
+
type Known = IEnumeration<"boolean"> | IEnumeration<"number"> | IEnumeration<"string"> | IBoolean | IInteger | INumber | IString | IArray | ITuple | IOneOf | IReference | INullOnly;
|
|
7
7
|
interface IUnknown extends IAttribute {
|
|
8
8
|
type?: undefined;
|
|
9
9
|
}
|
|
@@ -68,13 +68,18 @@ export declare namespace IJsonSchema {
|
|
|
68
68
|
}
|
|
69
69
|
interface ITuple extends ISignificant<"array"> {
|
|
70
70
|
items: IJsonSchema[];
|
|
71
|
+
/**
|
|
72
|
+
* @type uint
|
|
73
|
+
*/
|
|
74
|
+
minItems: number;
|
|
75
|
+
/**
|
|
76
|
+
* @type uint
|
|
77
|
+
*/
|
|
78
|
+
maxItems?: number;
|
|
71
79
|
}
|
|
72
80
|
interface IReference extends IAttribute {
|
|
73
81
|
$ref: string;
|
|
74
82
|
}
|
|
75
|
-
interface IRecursiveReference extends IAttribute {
|
|
76
|
-
$recursiveRef: string;
|
|
77
|
-
}
|
|
78
83
|
interface INullOnly extends IAttribute {
|
|
79
84
|
type: "null";
|
|
80
85
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typia",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.11-dev.20230618",
|
|
4
4
|
"description": "Superfast runtime validators with only one line",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -96,6 +96,7 @@
|
|
|
96
96
|
"@types/uuid": "^8.3.4",
|
|
97
97
|
"@typescript-eslint/eslint-plugin": "^5.59.11",
|
|
98
98
|
"@typescript-eslint/parser": "^5.59.11",
|
|
99
|
+
"ajv": "^8.12.0",
|
|
99
100
|
"autocannon": "^7.10.0",
|
|
100
101
|
"benchmark": "^2.1.4",
|
|
101
102
|
"chalk": "^4.1.0",
|
|
@@ -12,9 +12,7 @@ export const application_alias =
|
|
|
12
12
|
<BlockNever extends boolean>(blockNever: BlockNever) =>
|
|
13
13
|
(components: IJsonComponents) =>
|
|
14
14
|
(alias: MetadataAlias) =>
|
|
15
|
-
(
|
|
16
|
-
nullable: boolean,
|
|
17
|
-
): IJsonSchema.IReference | IJsonSchema.IRecursiveReference => {
|
|
15
|
+
(nullable: boolean): IJsonSchema.IReference => {
|
|
18
16
|
if (alias.value.size() === 1 && alias.value.objects.length === 1)
|
|
19
17
|
return application_object(options)(components)(
|
|
20
18
|
alias.value.objects[0]!,
|
|
@@ -45,7 +43,5 @@ export const application_alias =
|
|
|
45
43
|
...schema,
|
|
46
44
|
};
|
|
47
45
|
}
|
|
48
|
-
return
|
|
49
|
-
? { $recursiveRef: $id }
|
|
50
|
-
: { $ref: $id };
|
|
46
|
+
return { $ref: $id };
|
|
51
47
|
};
|
|
@@ -20,21 +20,16 @@ export const application_object =
|
|
|
20
20
|
(options: ApplicationProgrammer.IOptions) =>
|
|
21
21
|
(components: IJsonComponents) =>
|
|
22
22
|
(obj: MetadataObject) =>
|
|
23
|
-
(
|
|
24
|
-
nullable: boolean,
|
|
25
|
-
): IJsonSchema.IReference | IJsonSchema.IRecursiveReference => {
|
|
23
|
+
(nullable: boolean): IJsonSchema.IReference => {
|
|
26
24
|
const key: string =
|
|
27
25
|
options.purpose === "ajv"
|
|
28
26
|
? obj.name
|
|
29
27
|
: `${obj.name}${nullable ? ".Nullable" : ""}`;
|
|
30
28
|
const $id: string = `${JSON_COMPONENTS_PREFIX}/schemas/${key}`;
|
|
31
|
-
const
|
|
32
|
-
options.purpose === "ajv" && obj.recursive
|
|
33
|
-
? { $recursiveRef: $id }
|
|
34
|
-
: { $ref: $id };
|
|
29
|
+
const output = { $ref: $id };
|
|
35
30
|
|
|
36
31
|
// TEMPORARY ASSIGNMENT
|
|
37
|
-
if (components.schemas?.[key] !== undefined) return
|
|
32
|
+
if (components.schemas?.[key] !== undefined) return output;
|
|
38
33
|
components.schemas ??= {};
|
|
39
34
|
components.schemas[key] = {} as any;
|
|
40
35
|
|
|
@@ -112,8 +107,8 @@ export const application_object =
|
|
|
112
107
|
};
|
|
113
108
|
const schema: IJsonComponents.IObject = {
|
|
114
109
|
$id: options.purpose === "ajv" ? $id : undefined,
|
|
115
|
-
$recursiveAnchor:
|
|
116
|
-
|
|
110
|
+
// $recursiveAnchor:
|
|
111
|
+
// (options.purpose === "ajv" && obj.recursive) || undefined,
|
|
117
112
|
type: "object",
|
|
118
113
|
properties,
|
|
119
114
|
nullable: options.purpose === "swagger" ? nullable : undefined,
|
|
@@ -132,7 +127,7 @@ export const application_object =
|
|
|
132
127
|
}),
|
|
133
128
|
};
|
|
134
129
|
components.schemas[key] = schema;
|
|
135
|
-
return
|
|
130
|
+
return output;
|
|
136
131
|
};
|
|
137
132
|
|
|
138
133
|
const join =
|
|
@@ -30,6 +30,12 @@ export const application_tuple =
|
|
|
30
30
|
}),
|
|
31
31
|
),
|
|
32
32
|
...attribute,
|
|
33
|
+
minItems: !!tuple.elements.at(-1)?.rest
|
|
34
|
+
? tuple.elements.length - 1
|
|
35
|
+
: tuple.elements.length,
|
|
36
|
+
maxItems: !!tuple.elements.at(-1)?.rest
|
|
37
|
+
? undefined
|
|
38
|
+
: tuple.elements.length,
|
|
33
39
|
};
|
|
34
40
|
if (options.purpose === "ajv") return schema;
|
|
35
41
|
|
|
@@ -42,6 +48,8 @@ export const application_tuple =
|
|
|
42
48
|
),
|
|
43
49
|
)(tuple.recursive ? {} : attribute),
|
|
44
50
|
"x-typia-tuple": schema,
|
|
51
|
+
minItems: schema.minItems,
|
|
52
|
+
maxItems: schema.maxItems,
|
|
45
53
|
};
|
|
46
54
|
return wrapper;
|
|
47
55
|
};
|
|
@@ -17,7 +17,6 @@ export namespace IJsonSchema {
|
|
|
17
17
|
| ITuple
|
|
18
18
|
| IOneOf
|
|
19
19
|
| IReference
|
|
20
|
-
| IRecursiveReference
|
|
21
20
|
| INullOnly;
|
|
22
21
|
|
|
23
22
|
export interface IUnknown extends IAttribute {
|
|
@@ -95,13 +94,18 @@ export namespace IJsonSchema {
|
|
|
95
94
|
}
|
|
96
95
|
export interface ITuple extends ISignificant<"array"> {
|
|
97
96
|
items: IJsonSchema[];
|
|
97
|
+
/**
|
|
98
|
+
* @type uint
|
|
99
|
+
*/
|
|
100
|
+
minItems: number;
|
|
101
|
+
/**
|
|
102
|
+
* @type uint
|
|
103
|
+
*/
|
|
104
|
+
maxItems?: number;
|
|
98
105
|
}
|
|
99
106
|
export interface IReference extends IAttribute {
|
|
100
107
|
$ref: string;
|
|
101
108
|
}
|
|
102
|
-
export interface IRecursiveReference extends IAttribute {
|
|
103
|
-
$recursiveRef: string;
|
|
104
|
-
}
|
|
105
109
|
export interface INullOnly extends IAttribute {
|
|
106
110
|
type: "null";
|
|
107
111
|
}
|