@nestia/fetcher 3.7.1 → 3.7.2-dev.20240720

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.
@@ -34,13 +34,13 @@
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 ? never : 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 Date ? string & FormatDateTime : Instance extends IJsonable<infer Raw> ? ValueOf<Raw> extends object ? Raw extends object ? PrimitiveObject<Raw> : never : ValueOf<Raw> : Instance extends NativeClass ? never : 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
  };
41
41
  type PrimitiveTuple<T extends readonly any[]> = T extends [] ? [] : T extends [infer F] ? [PrimitiveMain<F>] : T extends [infer F, ...infer Rest extends readonly any[]] ? [PrimitiveMain<F>, ...PrimitiveTuple<Rest>] : T extends [(infer F)?] ? [PrimitiveMain<F>?] : T extends [(infer F)?, ...infer Rest extends readonly any[]] ? [PrimitiveMain<F>?, ...PrimitiveTuple<Rest>] : [];
42
42
  type ValueOf<Instance> = IsValueOf<Instance, Boolean> extends true ? boolean : IsValueOf<Instance, Number> extends true ? number : IsValueOf<Instance, String> extends true ? string : Instance;
43
- type NativeClass = Set<any> | Map<any, any> | WeakSet<any> | WeakMap<any, any> | Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | BigUint64Array | Int8Array | Int16Array | Int32Array | BigInt64Array | Float32Array | Float64Array | ArrayBuffer | SharedArrayBuffer | DataView;
43
+ type NativeClass = Set<any> | Map<any, any> | WeakSet<any> | WeakMap<any, any> | Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | BigUint64Array | Int8Array | Int16Array | Int32Array | BigInt64Array | Float32Array | Float64Array | ArrayBuffer | SharedArrayBuffer | DataView | Blob | File | RegExp;
44
44
  type IsTuple<T extends readonly any[] | {
45
45
  length: number;
46
46
  }> = [T] extends [
@@ -53,4 +53,16 @@ interface IValueOf<T> {
53
53
  interface IJsonable<T> {
54
54
  toJSON(): T;
55
55
  }
56
+ type FormatDateTime = {
57
+ "typia.tag"?: {
58
+ target: "string";
59
+ kind: "format";
60
+ value: "date-time";
61
+ validate: `/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(T|\\s)([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]{1,9})?(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])$/i.test($input)`;
62
+ exclusive: ["format", "pattern"];
63
+ schema: {
64
+ format: "date-time";
65
+ };
66
+ };
67
+ };
56
68
  export {};
package/lib/Resolved.d.ts CHANGED
@@ -29,7 +29,7 @@
29
29
  export type Resolved<T> = Equal<T, ResolvedMain<T>> extends true ? T : ResolvedMain<T>;
30
30
  type Equal<X, Y> = X extends Y ? (Y extends X ? true : false) : false;
31
31
  type ResolvedMain<T> = T extends [never] ? never : ValueOf<T> extends boolean | number | bigint | string ? ValueOf<T> : T extends Function ? never : T extends object ? ResolvedObject<T> : ValueOf<T>;
32
- type ResolvedObject<T extends object> = T extends Array<infer U> ? IsTuple<T> extends true ? ResolvedTuple<T> : ResolvedMain<U>[] : T extends Set<infer U> ? Set<ResolvedMain<U>> : T extends Map<infer K, infer V> ? Map<ResolvedMain<K>, ResolvedMain<V>> : T extends WeakSet<any> | WeakMap<any, any> ? never : T extends Date | Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | BigUint64Array | Int8Array | Int16Array | Int32Array | BigInt64Array | Float32Array | Float64Array | ArrayBuffer | SharedArrayBuffer | DataView | Blob | File ? T : {
32
+ type ResolvedObject<T extends object> = T extends Array<infer U> ? IsTuple<T> extends true ? ResolvedTuple<T> : ResolvedMain<U>[] : T extends Set<infer U> ? Set<ResolvedMain<U>> : T extends Map<infer K, infer V> ? Map<ResolvedMain<K>, ResolvedMain<V>> : T extends WeakSet<any> | WeakMap<any, any> ? never : T extends Date | Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | BigUint64Array | Int8Array | Int16Array | Int32Array | BigInt64Array | Float32Array | Float64Array | ArrayBuffer | SharedArrayBuffer | DataView | Blob | File | RegExp ? T : {
33
33
  [P in keyof T]: ResolvedMain<T[P]>;
34
34
  };
35
35
  type ResolvedTuple<T extends readonly any[]> = T extends [] ? [] : T extends [infer F] ? [ResolvedMain<F>] : T extends [infer F, ...infer Rest extends readonly any[]] ? [ResolvedMain<F>, ...ResolvedTuple<Rest>] : T extends [(infer F)?] ? [ResolvedMain<F>?] : T extends [(infer F)?, ...infer Rest extends readonly any[]] ? [ResolvedMain<F>?, ...ResolvedTuple<Rest>] : [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestia/fetcher",
3
- "version": "3.7.1",
3
+ "version": "3.7.2-dev.20240720",
4
4
  "description": "Fetcher library of Nestia SDK",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -43,6 +43,6 @@
43
43
  "src"
44
44
  ],
45
45
  "dependencies": {
46
- "@samchon/openapi": "^0.4.1"
46
+ "@samchon/openapi": "^0.4.2"
47
47
  }
48
48
  }
package/src/Primitive.ts CHANGED
@@ -47,15 +47,17 @@ type PrimitiveMain<Instance> = Instance extends [never]
47
47
  ? never
48
48
  : ValueOf<Instance> extends object
49
49
  ? Instance extends object
50
- ? Instance extends NativeClass
51
- ? never
50
+ ? Instance extends Date
51
+ ? string & FormatDateTime
52
52
  : Instance extends IJsonable<infer Raw>
53
53
  ? ValueOf<Raw> extends object
54
54
  ? Raw extends object
55
55
  ? PrimitiveObject<Raw> // object would be primitified
56
56
  : never // cannot be
57
57
  : ValueOf<Raw> // atomic value
58
- : PrimitiveObject<Instance> // object would be primitified
58
+ : Instance extends NativeClass
59
+ ? never
60
+ : PrimitiveObject<Instance> // object would be primitified
59
61
  : never // cannot be
60
62
  : ValueOf<Instance>;
61
63
 
@@ -107,7 +109,10 @@ type NativeClass =
107
109
  | Float64Array
108
110
  | ArrayBuffer
109
111
  | SharedArrayBuffer
110
- | DataView;
112
+ | DataView
113
+ | Blob
114
+ | File
115
+ | RegExp;
111
116
 
112
117
  type IsTuple<T extends readonly any[] | { length: number }> = [T] extends [
113
118
  never,
@@ -134,3 +139,16 @@ interface IValueOf<T> {
134
139
  interface IJsonable<T> {
135
140
  toJSON(): T;
136
141
  }
142
+
143
+ type FormatDateTime = {
144
+ "typia.tag"?: {
145
+ target: "string";
146
+ kind: "format";
147
+ value: "date-time";
148
+ validate: `/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(T|\\s)([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]{1,9})?(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])$/i.test($input)`;
149
+ exclusive: ["format", "pattern"];
150
+ schema: {
151
+ format: "date-time";
152
+ };
153
+ };
154
+ };
package/src/Resolved.ts CHANGED
@@ -70,6 +70,7 @@ type ResolvedObject<T extends object> =
70
70
  | DataView
71
71
  | Blob
72
72
  | File
73
+ | RegExp
73
74
  ? T
74
75
  : {
75
76
  [P in keyof T]: ResolvedMain<T[P]>;