typia 5.2.2-dev.20231012 → 5.2.2-dev.20231012-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/README.md CHANGED
@@ -87,7 +87,7 @@ Check out the document in the [website](https://typia.io/docs/):
87
87
  - [`decode()` functions](https://typia.io/docs/protobuf/decode/)
88
88
  - [`encode()` functions](https://typia.io/docs/protobuf/encode/)
89
89
  - [Random Generator](https://typia.io/docs/random/)
90
- - [Miscellaneous](https://typia.io/docs/miscellaneous/)
90
+ - [Miscellaneous](https://typia.io/docs/misc/)
91
91
 
92
92
  ### 🔗 Appendix
93
93
  - Utillization Cases
@@ -34,7 +34,7 @@
34
34
  */
35
35
  export type Primitive<T> = Equal<T, PrimitiveMain<T>> extends true ? T : PrimitiveMain<T>;
36
36
  type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
37
- type PrimitiveMain<Instance> = Instance extends [never] ? never : ValueOf<Instance> extends bigint ? never : ValueOf<Instance> extends boolean | number | string ? ValueOf<Instance> : Instance extends Function ? never : ValueOf<Instance> extends object ? Instance extends object ? Instance extends NativeClass ? {} : Instance extends IJsonable<infer Raw> ? ValueOf<Raw> extends object ? Raw extends object ? PrimitiveObject<Raw> : never : ValueOf<Raw> : PrimitiveObject<Instance> : never : ValueOf<Instance>;
37
+ type PrimitiveMain<Instance> = Instance extends [never] ? never : ValueOf<Instance> extends bigint ? never : ValueOf<Instance> extends boolean | number | string ? ValueOf<Instance> : Instance extends Function ? never : ValueOf<Instance> extends object ? Instance extends object ? Instance extends NativeClass ? never : Instance extends IJsonable<infer Raw> ? ValueOf<Raw> extends object ? Raw extends object ? PrimitiveObject<Raw> : never : ValueOf<Raw> : PrimitiveObject<Instance> : never : ValueOf<Instance>;
38
38
  type PrimitiveObject<Instance extends object> = Instance extends Array<infer T> ? IsTuple<Instance> extends true ? PrimitiveTuple<Instance> : PrimitiveMain<T>[] : {
39
39
  [P in keyof Instance]: PrimitiveMain<Instance[P]>;
40
40
  };
@@ -1,6 +1,18 @@
1
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
+ };
2
13
  Object.defineProperty(exports, "__esModule", { value: true });
3
14
  exports.JsonMetadataFactory = void 0;
15
+ var AtomicPredicator_1 = require("../programmers/helpers/AtomicPredicator");
4
16
  var TransformerError_1 = require("../transformers/TransformerError");
5
17
  var MetadataCollection_1 = require("./MetadataCollection");
6
18
  var MetadataFactory_1 = require("./MetadataFactory");
@@ -23,6 +35,7 @@ var JsonMetadataFactory;
23
35
  };
24
36
  };
25
37
  JsonMetadataFactory.validate = function (meta) {
38
+ var e_1, _a;
26
39
  var output = [];
27
40
  if (meta.atomics.some(function (a) { return a.type === "bigint"; }) ||
28
41
  meta.constants.some(function (c) { return c.type === "bigint"; }))
@@ -32,6 +45,24 @@ var JsonMetadataFactory;
32
45
  }) ||
33
46
  meta.arrays.some(function (a) { return a.type.value.isRequired() === false; }))
34
47
  output.push("JSON does not support undefined type in array.");
48
+ if (meta.maps.length)
49
+ output.push("JSON does not support Map type.");
50
+ if (meta.sets.length)
51
+ output.push("JSON does not support Set type.");
52
+ try {
53
+ for (var _b = __values(meta.natives), _c = _b.next(); !_c.done; _c = _b.next()) {
54
+ var native = _c.value;
55
+ if (AtomicPredicator_1.AtomicPredicator.native(native) === false && native !== "Date")
56
+ output.push("JSON does not support ".concat(native, " type."));
57
+ }
58
+ }
59
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
60
+ finally {
61
+ try {
62
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
63
+ }
64
+ finally { if (e_1) throw e_1.error; }
65
+ }
35
66
  return output;
36
67
  };
37
68
  })(JsonMetadataFactory || (exports.JsonMetadataFactory = JsonMetadataFactory = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"JsonMetadataFactory.js","sourceRoot":"","sources":["../../src/factories/JsonMetadataFactory.ts"],"names":[],"mappings":";;;AAIA,qEAAoE;AAEpE,2DAA0D;AAC1D,qDAAoD;AAEpD,IAAiB,mBAAmB,CAiCnC;AAjCD,WAAiB,mBAAmB;IACnB,2BAAO,GAChB,UAAC,MAAc;QACf,OAAA,UAAC,OAAuB;YACxB,OAAA,UAAC,IAAa;gBACV,IAAM,UAAU,GAAG,IAAI,uCAAkB,EAAE,CAAC;gBAC5C,IAAM,MAAM,GAAG,iCAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC5C,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,IAAI;oBACZ,QAAQ,8BAAA;iBACX,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrB,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;oBACxB,MAAM,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACvD,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;QAXD,CAWC;IAZD,CAYC,CAAC;IAEO,4BAAQ,GAAG,UAAC,IAAc;QACnC,IAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IACI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAnB,CAAmB,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAnB,CAAmB,CAAC;YAE/C,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACtD,IACI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC;YACf,OAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,UAAU,EAAE,KAAK,KAAK,EAAxB,CAAwB,CAAC;QAArD,CAAqD,CACxD;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,KAAK,EAAnC,CAAmC,CAAC;YAE5D,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC,EAjCgB,mBAAmB,mCAAnB,mBAAmB,QAiCnC"}
1
+ {"version":3,"file":"JsonMetadataFactory.js","sourceRoot":"","sources":["../../src/factories/JsonMetadataFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAIA,4EAA2E;AAE3E,qEAAoE;AAEpE,2DAA0D;AAC1D,qDAAoD;AAEpD,IAAiB,mBAAmB,CAsCnC;AAtCD,WAAiB,mBAAmB;IACnB,2BAAO,GAChB,UAAC,MAAc;QACf,OAAA,UAAC,OAAuB;YACxB,OAAA,UAAC,IAAa;gBACV,IAAM,UAAU,GAAG,IAAI,uCAAkB,EAAE,CAAC;gBAC5C,IAAM,MAAM,GAAG,iCAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC5C,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,IAAI;oBACZ,QAAQ,8BAAA;iBACX,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrB,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;oBACxB,MAAM,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACvD,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;QAXD,CAWC;IAZD,CAYC,CAAC;IAEO,4BAAQ,GAAG,UAAC,IAAc;;QACnC,IAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IACI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAnB,CAAmB,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAnB,CAAmB,CAAC;YAE/C,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACtD,IACI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC;YACf,OAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,UAAU,EAAE,KAAK,KAAK,EAAxB,CAAwB,CAAC;QAArD,CAAqD,CACxD;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,KAAK,EAAnC,CAAmC,CAAC;YAE5D,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACrE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;;YACrE,KAAqB,IAAA,KAAA,SAAA,IAAI,CAAC,OAAO,CAAA,gBAAA;gBAA5B,IAAM,MAAM,WAAA;gBACb,IAAI,mCAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM;oBAC9D,MAAM,CAAC,IAAI,CAAC,gCAAyB,MAAM,WAAQ,CAAC,CAAC;aAAA;;;;;;;;;QAC7D,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC,EAtCgB,mBAAmB,mCAAnB,mBAAmB,QAsCnC"}
@@ -20,5 +20,5 @@ var AtomicPredicator;
20
20
  return !ArrayUtil_1.ArrayUtil.has(meta.atomics, function (a) { return a.type === "string"; });
21
21
  };
22
22
  })(AtomicPredicator || (exports.AtomicPredicator = AtomicPredicator = {}));
23
- var LIKE = new Set(["boolean", "number", "string"]);
23
+ var LIKE = new Set(["boolean", "bigint", "number", "string"]);
24
24
  //# sourceMappingURL=AtomicPredicator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AtomicPredicator.js","sourceRoot":"","sources":["../../../src/programmers/helpers/AtomicPredicator.ts"],"names":[],"mappings":";;;AAIA,mDAAkD;AAElD,IAAiB,gBAAgB,CAsBhC;AAtBD,WAAiB,gBAAgB;IAChB,yBAAQ,GACjB,UAAC,IAAc;QACf,OAAA,UAAC,IAAoB;YACjB,OAAA,CAAC,qBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,IAAI,EAAf,CAAe,CAAC;gBACpD,CAAC,qBAAS,CAAC,GAAG,CACV,IAAI,CAAC,OAAO,EACZ,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,EAA7B,CAA6B,CAC5C;QAJD,CAIC;IALL,CAKK,CAAC;IAEG,uBAAM,GACf,UAAC,IAAc;QACf,OAAA,UAAC,IAAoB;YACjB,OAAA,CAAC,qBAAS,CAAC,GAAG,CACV,IAAI,CAAC,OAAO,EACZ,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,EAA7B,CAA6B,CAC5C;QAHD,CAGC;IAJL,CAIK,CAAC;IAEG,uBAAM,GAAG,UAAC,IAAY,IAAK,OAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAA5B,CAA4B,CAAC;IAExD,yBAAQ,GAAG,UAAC,IAAc;QACnC,OAAA,CAAC,qBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAnB,CAAmB,CAAC;IAAxD,CAAwD,CAAC;AACjE,CAAC,EAtBgB,gBAAgB,gCAAhB,gBAAgB,QAsBhC;AAED,IAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"AtomicPredicator.js","sourceRoot":"","sources":["../../../src/programmers/helpers/AtomicPredicator.ts"],"names":[],"mappings":";;;AAIA,mDAAkD;AAElD,IAAiB,gBAAgB,CAsBhC;AAtBD,WAAiB,gBAAgB;IAChB,yBAAQ,GACjB,UAAC,IAAc;QACf,OAAA,UAAC,IAAoB;YACjB,OAAA,CAAC,qBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,IAAI,EAAf,CAAe,CAAC;gBACpD,CAAC,qBAAS,CAAC,GAAG,CACV,IAAI,CAAC,OAAO,EACZ,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,EAA7B,CAA6B,CAC5C;QAJD,CAIC;IALL,CAKK,CAAC;IAEG,uBAAM,GACf,UAAC,IAAc;QACf,OAAA,UAAC,IAAoB;YACjB,OAAA,CAAC,qBAAS,CAAC,GAAG,CACV,IAAI,CAAC,OAAO,EACZ,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,EAA7B,CAA6B,CAC5C;QAHD,CAGC;IAJL,CAIK,CAAC;IAEG,uBAAM,GAAG,UAAC,IAAY,IAAK,OAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAA5B,CAA4B,CAAC;IAExD,yBAAQ,GAAG,UAAC,IAAc;QACnC,OAAA,CAAC,qBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAnB,CAAmB,CAAC;IAAxD,CAAwD,CAAC;AACjE,CAAC,EAtBgB,gBAAgB,gCAAhB,gBAAgB,QAsBhC;AAED,IAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typia",
3
- "version": "5.2.2-dev.20231012",
3
+ "version": "5.2.2-dev.20231012-2",
4
4
  "description": "Superfast runtime validators with only one line",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
package/src/Primitive.ts CHANGED
@@ -49,7 +49,7 @@ type PrimitiveMain<Instance> = Instance extends [never]
49
49
  : ValueOf<Instance> extends object
50
50
  ? Instance extends object
51
51
  ? Instance extends NativeClass
52
- ? {}
52
+ ? never
53
53
  : Instance extends IJsonable<infer Raw>
54
54
  ? ValueOf<Raw> extends object
55
55
  ? Raw extends object
@@ -2,6 +2,8 @@ import ts from "typescript";
2
2
 
3
3
  import { Metadata } from "../schemas/metadata/Metadata";
4
4
 
5
+ import { AtomicPredicator } from "../programmers/helpers/AtomicPredicator";
6
+
5
7
  import { TransformerError } from "../transformers/TransformerError";
6
8
 
7
9
  import { MetadataCollection } from "./MetadataCollection";
@@ -38,6 +40,11 @@ export namespace JsonMetadataFactory {
38
40
  meta.arrays.some((a) => a.type.value.isRequired() === false)
39
41
  )
40
42
  output.push("JSON does not support undefined type in array.");
43
+ if (meta.maps.length) output.push("JSON does not support Map type.");
44
+ if (meta.sets.length) output.push("JSON does not support Set type.");
45
+ for (const native of meta.natives)
46
+ if (AtomicPredicator.native(native) === false && native !== "Date")
47
+ output.push(`JSON does not support ${native} type.`);
41
48
  return output;
42
49
  };
43
50
  }
@@ -28,4 +28,4 @@ export namespace AtomicPredicator {
28
28
  !ArrayUtil.has(meta.atomics, (a) => a.type === "string");
29
29
  }
30
30
 
31
- const LIKE = new Set(["boolean", "number", "string"]);
31
+ const LIKE = new Set(["boolean", "bigint", "number", "string"]);