typia 4.0.10 → 4.0.11-dev.20230619

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.
@@ -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 | IJsonSchema.IRecursiveReference;
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 options.purpose === "ajv" && alias.recursive
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,UACI,QAAiB;;oBAEjB,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,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC,SAAS;wBAC/C,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE;wBACxB,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;gBACxB,CAAC;YApCD,CAoCC;QArCD,CAqCC;IAtCD,CAsCC;AAvCD,CAuCC,CAAC;AAzCO,QAAA,iBAAiB,qBAyCxB"}
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 out = function () {
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 out();
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, $recursiveAnchor: (options.purpose === "ajv" && obj.recursive) || 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"
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 out();
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":"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"}
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 schema = __assign({ type: "array", items: tuple.elements.map(function (meta, i) {
21
+ var _a, _b, _c;
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
- if (options.purpose === "ajv")
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 });
30
+ if (options.purpose === "ajv" && !((_c = tuple.elements.at(-1)) === null || _c === void 0 ? void 0 : _c.rest))
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;gBAEjC,IAAM,MAAM,cACR,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,CACf,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,GAC1B,CAAC;gBACF,OAAO,OAAO,CAAC;YACnB,CAAC;QA/BD,CA+BC;IAhCD,CAgCC;AAjCD,CAiCC,CAAC;AAnCO,QAAA,iBAAiB,qBAmCxB"}
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,IAAI,CAAC,CAAA,MAAA,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAA;oBACzD,OAAO,MAAM,CAAC;gBAElB,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;QAxCD,CAwCC;IAzCD,CAyCC;AA1CD,CA0CC,CAAC;AA5CO,QAAA,iBAAiB,qBA4CxB"}
@@ -6,7 +6,6 @@ export interface IJsonComponents {
6
6
  export declare namespace IJsonComponents {
7
7
  interface IObject {
8
8
  $id?: string;
9
- $recursiveAnchor?: boolean;
10
9
  type: "object";
11
10
  /**
12
11
  * Only when swagger mode.
@@ -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 | IRecursiveReference | INullOnly;
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.10",
3
+ "version": "4.0.11-dev.20230619",
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 options.purpose === "ajv" && alias.recursive
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 out = () =>
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 out();
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
- (options.purpose === "ajv" && obj.recursive) || undefined,
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 out();
130
+ return output;
136
131
  };
137
132
 
138
133
  const join =
@@ -30,8 +30,15 @@ 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
- if (options.purpose === "ajv") return schema;
40
+ if (options.purpose === "ajv" && !tuple.elements.at(-1)?.rest)
41
+ return schema;
35
42
 
36
43
  const wrapper: IJsonSchema.IArray = {
37
44
  ...schema,
@@ -42,6 +49,8 @@ export const application_tuple =
42
49
  ),
43
50
  )(tuple.recursive ? {} : attribute),
44
51
  "x-typia-tuple": schema,
52
+ minItems: schema.minItems,
53
+ maxItems: schema.maxItems,
45
54
  };
46
55
  return wrapper;
47
56
  };
@@ -8,7 +8,6 @@ export interface IJsonComponents {
8
8
  export namespace IJsonComponents {
9
9
  export interface IObject {
10
10
  $id?: string;
11
- $recursiveAnchor?: boolean;
12
11
  type: "object";
13
12
 
14
13
  /**
@@ -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
  }