yavascript 0.0.7 → 0.0.8

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/yavascript.d.ts CHANGED
@@ -3,6 +3,71 @@
3
3
  // YavaScript APIs
4
4
  // ---------------
5
5
  // ===============
6
+ /** Info about the currently-running yavascript binary */
7
+ declare const yavascript: {
8
+ /**
9
+ * The version of the currently-running yavascript binary.
10
+ *
11
+ * Will be something formatted like one of these:
12
+ * - "v0.0.7"
13
+ * - "v0.1.3-alpha"
14
+ * - "git-286a3a336849"
15
+ * - "git-286a3a336849-dirty"
16
+ *
17
+ * Or, more formally: either a "V" version string or a "GIT" version string:
18
+ * - "V" version strings start with the character 'v', followed by a semver
19
+ * version string, optionally followed by the character '-' and any
20
+ * arbitrary content afterwards.
21
+ * - "GIT" version strings start with the prefix "git-", followed by the
22
+ * first 12 digits of a git commit SHA, optionally followed by the
23
+ * character '-' and any arbitrary content afterwards.
24
+ */
25
+ version: string;
26
+
27
+ /** The processor architecture we're running on. */
28
+ arch: "x86_64" | "arm64";
29
+
30
+ /**
31
+ * The version of the ecma262 standard supported by the currently-running yavascript binary.
32
+ *
33
+ * Will always be in the format "ES" + a year. Is never lower than ES2020.
34
+ */
35
+ ecmaVersion: string;
36
+
37
+ /** The compilers yavascript uses internally to load files. */
38
+ compilers: {
39
+ js(
40
+ code: string,
41
+ options?: { filename?: string; expression?: boolean }
42
+ ): string;
43
+
44
+ tsx(
45
+ code: string,
46
+ options?: { filename?: string; expression?: boolean }
47
+ ): string;
48
+
49
+ ts(
50
+ code: string,
51
+ options?: { filename?: string; expression?: boolean }
52
+ ): string;
53
+
54
+ jsx(
55
+ code: string,
56
+ options?: { filename?: string; expression?: boolean }
57
+ ): string;
58
+
59
+ coffee(
60
+ code: string,
61
+ options?: { filename?: string; expression?: boolean }
62
+ ): string;
63
+
64
+ autodetect(
65
+ code: string,
66
+ options?: { filename?: string; expression?: boolean }
67
+ ): string;
68
+ };
69
+ };
70
+
6
71
  /**
7
72
  * An object representing the process's environment variables. You can read
8
73
  * from it to read environment variables, write into it to set environment
@@ -94,9 +159,29 @@ declare const parseScriptArgs: {
94
159
  };
95
160
 
96
161
  /**
97
- * Read the contents of a file from disk, as a UTF-8 string.
162
+ * Read the contents of a file from disk.
98
163
  */
99
- declare function readFile(path: string): string;
164
+ declare const readFile: {
165
+ /**
166
+ * Read the contents of a file from disk, as a UTF-8 string.
167
+ */
168
+ (path: string): string;
169
+
170
+ /**
171
+ * Read the contents of a file from disk, as a UTF-8 string.
172
+ */
173
+ (path: string, options: {}): string;
174
+
175
+ /**
176
+ * Read the contents of a file from disk, as a UTF-8 string.
177
+ */
178
+ (path: string, options: { binary: false }): string;
179
+
180
+ /**
181
+ * Read the contents of a file from disk, as an ArrayBuffer.
182
+ */
183
+ (path: string, options: { binary: true }): ArrayBuffer;
184
+ };
100
185
 
101
186
  /**
102
187
  * Write the contents of a string or ArrayBuffer to a file.
@@ -243,6 +328,18 @@ declare class Path {
243
328
  */
244
329
  static isAbsolute(path: string): boolean;
245
330
 
331
+ /** A tagged template literal function that creates a `Path` object. */
332
+ static tag(
333
+ strings: TemplateStringsArray,
334
+ ...values: ReadonlyArray<string | Path | Array<string | Path>>
335
+ ): Path;
336
+
337
+ /**
338
+ * Returns a tagged template literal that creates a `Path` object. `dir` is
339
+ * used as a prefix for every `Path` object created.
340
+ */
341
+ static tagUsingBase(dir: string | Path): typeof Path.tag;
342
+
246
343
  /**
247
344
  * An array of the path segments that make up this path.
248
345
  *
@@ -318,13 +415,13 @@ declare const __dirname: string;
318
415
  *
319
416
  * Provides the same functionality as the unix binary of the same name.
320
417
  */
321
- declare function basename(path: string): string;
418
+ declare function basename(path: string | Path): string;
322
419
 
323
420
  /**
324
421
  * Read the contents of one of more files from disk as one UTF-8 string,
325
422
  * print that string to stdout, then return it.
326
423
  */
327
- declare function cat(...paths: Array<string>): string;
424
+ declare function cat(...paths: Array<string | Path>): string;
328
425
 
329
426
  /**
330
427
  * Change the process's current working directory to the specified path. If no
@@ -332,7 +429,7 @@ declare function cat(...paths: Array<string>): string;
332
429
  *
333
430
  * Provides the same functionality as the shell builtin of the same name.
334
431
  */
335
- declare function cd(path?: string): void;
432
+ declare function cd(path?: string | Path): void;
336
433
 
337
434
  /** A string representing who a permission applies to. */
338
435
  declare type ChmodPermissionsWho =
@@ -375,7 +472,7 @@ declare function chmod(
375
472
  | number
376
473
  | string
377
474
  | Record<ChmodPermissionsWho, ChmodPermissionsWhat>,
378
- path: string
475
+ path: string | Path
379
476
  ): void;
380
477
 
381
478
  /**
@@ -383,7 +480,7 @@ declare function chmod(
383
480
  *
384
481
  * Provides the same functionality as the unix binary of the same name.
385
482
  */
386
- declare function dirname(path: string): string;
483
+ declare function dirname(path: string | Path): string;
387
484
 
388
485
  /**
389
486
  * Print one or more values to stdout.
@@ -398,7 +495,7 @@ declare const echo: typeof console.log;
398
495
  * Pass `{ full: true }` to get compound extensions, eg `.d.ts` or `.test.js` instead of just `.ts`/`.js`.
399
496
  */
400
497
  declare function extname(
401
- pathOrFilename: string,
498
+ pathOrFilename: string | Path,
402
499
  options?: { full?: boolean }
403
500
  ): string;
404
501
 
@@ -410,7 +507,7 @@ declare function extname(
410
507
  * the parent directory).
411
508
  */
412
509
  declare function ls(
413
- dir?: string,
510
+ dir?: string | Path,
414
511
  options?: { relativePaths?: boolean }
415
512
  ): Array<string>;
416
513
 
@@ -433,7 +530,7 @@ declare function pwd(): string;
433
530
  *
434
531
  * Provides the same functionality as the unix binary of the same name.
435
532
  */
436
- declare function readlink(path: string): string;
533
+ declare function readlink(path: string | Path): string;
437
534
 
438
535
  /**
439
536
  * Get the absolute path given a relative path. Symlinks are also resolved.
@@ -442,7 +539,7 @@ declare function readlink(path: string): string;
442
539
  *
443
540
  * Provides the same functionality as the unix binary of the same name.
444
541
  */
445
- declare function realpath(path: string): string;
542
+ declare function realpath(path: string | Path): string;
446
543
 
447
544
  /**
448
545
  * If the file at `path` exists, update its creation/modification timestamps.
@@ -451,7 +548,7 @@ declare function realpath(path: string): string;
451
548
  *
452
549
  * @param path The target path for the file.
453
550
  */
454
- declare function touch(path: string): void;
551
+ declare function touch(path: string | Path): void;
455
552
 
456
553
  declare type BaseExecOptions = {
457
554
  /** Sets the current working directory for the child process. */
@@ -882,17 +979,100 @@ interface String {
882
979
  };
883
980
  }
884
981
 
885
- declare type TypedArray =
886
- | Int8Array
887
- | Uint8Array
888
- | Uint8ClampedArray
889
- | Int16Array
890
- | Uint16Array
891
- | Int32Array
892
- | Uint32Array
893
- | Float32Array
894
- | Float64Array;
895
- declare type TypedArrayConstructor =
982
+ declare type TypeValidator<T> = (value: any) => value is T;
983
+
984
+ declare type CoerceToTypeValidator<V extends CoerceableToTypeValidator> =
985
+ V extends StringConstructor
986
+ ? TypeValidator<string>
987
+ : V extends NumberConstructor
988
+ ? TypeValidator<number>
989
+ : V extends BooleanConstructor
990
+ ? TypeValidator<boolean>
991
+ : V extends BigIntConstructor
992
+ ? TypeValidator<BigInt>
993
+ : V extends SymbolConstructor
994
+ ? TypeValidator<Symbol>
995
+ : V extends RegExpConstructor
996
+ ? TypeValidator<RegExp>
997
+ : V extends ArrayConstructor
998
+ ? TypeValidator<Array<unknown>>
999
+ : V extends SetConstructor
1000
+ ? TypeValidator<Set<unknown>>
1001
+ : V extends MapConstructor
1002
+ ? TypeValidator<Map<unknown, unknown>>
1003
+ : V extends ObjectConstructor
1004
+ ? TypeValidator<{
1005
+ [key: string | number | symbol]: unknown;
1006
+ }>
1007
+ : V extends DateConstructor
1008
+ ? TypeValidator<Date>
1009
+ : V extends FunctionConstructor
1010
+ ? TypeValidator<Function>
1011
+ : V extends ArrayBufferConstructor
1012
+ ? TypeValidator<ArrayBuffer>
1013
+ : V extends SharedArrayBufferConstructor
1014
+ ? TypeValidator<SharedArrayBuffer>
1015
+ : V extends DataViewConstructor
1016
+ ? TypeValidator<DataView>
1017
+ : V extends Int8ArrayConstructor
1018
+ ? TypeValidator<Int8Array>
1019
+ : V extends Uint8ArrayConstructor
1020
+ ? TypeValidator<Uint8Array>
1021
+ : V extends Uint8ClampedArrayConstructor
1022
+ ? TypeValidator<Uint8ClampedArray>
1023
+ : V extends Int16ArrayConstructor
1024
+ ? TypeValidator<Int16Array>
1025
+ : V extends Uint16ArrayConstructor
1026
+ ? TypeValidator<Uint16Array>
1027
+ : V extends Int32ArrayConstructor
1028
+ ? TypeValidator<Int32Array>
1029
+ : V extends Uint32ArrayConstructor
1030
+ ? TypeValidator<Uint32Array>
1031
+ : V extends Float32ArrayConstructor
1032
+ ? TypeValidator<Float32Array>
1033
+ : V extends Float64ArrayConstructor
1034
+ ? TypeValidator<Float64Array>
1035
+ : V extends RegExp
1036
+ ? TypeValidator<string>
1037
+ : V extends {}
1038
+ ? TypeValidator<{
1039
+ [key in keyof V]: CoerceToTypeValidator<V[key]>;
1040
+ }>
1041
+ : V extends []
1042
+ ? TypeValidator<[]>
1043
+ : V extends [any]
1044
+ ? TypeValidator<Array<CoerceToTypeValidator<V[0]>>>
1045
+ : V extends Array<any>
1046
+ ? TypeValidator<Array<unknown>>
1047
+ : V extends {
1048
+ new (...args: any): any;
1049
+ }
1050
+ ? TypeValidator<InstanceType<V>>
1051
+ : TypeValidator<V>;
1052
+
1053
+ declare type CoerceableToTypeValidator =
1054
+ | boolean
1055
+ | number
1056
+ | string
1057
+ | bigint
1058
+ | undefined
1059
+ | null
1060
+ | RegExp
1061
+ | StringConstructor
1062
+ | NumberConstructor
1063
+ | BooleanConstructor
1064
+ | BigIntConstructor
1065
+ | SymbolConstructor
1066
+ | RegExpConstructor
1067
+ | ArrayConstructor
1068
+ | SetConstructor
1069
+ | MapConstructor
1070
+ | ObjectConstructor
1071
+ | DateConstructor
1072
+ | FunctionConstructor
1073
+ | ArrayBufferConstructor
1074
+ | SharedArrayBufferConstructor
1075
+ | DataViewConstructor
896
1076
  | Int8ArrayConstructor
897
1077
  | Uint8ArrayConstructor
898
1078
  | Uint8ClampedArrayConstructor
@@ -901,89 +1081,1257 @@ declare type TypedArrayConstructor =
901
1081
  | Int32ArrayConstructor
902
1082
  | Uint32ArrayConstructor
903
1083
  | Float32ArrayConstructor
904
- | Float64ArrayConstructor;
1084
+ | Float64ArrayConstructor
1085
+ | {}
1086
+ | []
1087
+ | [any]
1088
+ | Array<any>
1089
+ | {
1090
+ new (...args: any): any;
1091
+ };
905
1092
 
906
- declare const is: {
907
- string(value: any): value is string;
908
- String(value: any): value is string;
909
- number(value: any): value is number;
910
- Number(value: any): value is number;
911
- boolean(value: any): value is boolean;
912
- Boolean(value: any): value is boolean;
913
- bigint(value: any): value is bigint;
914
- BigInt(value: any): value is bigint;
915
- symbol(value: any): value is symbol;
916
- Symbol(value: any): value is symbol;
917
- null(value: any): value is null;
918
- undefined(value: any): value is undefined;
919
- void(value: any): value is null | undefined;
920
- object(value: any): value is {
921
- [key: string]: unknown;
922
- [key: number]: unknown;
923
- [key: symbol]: unknown;
1093
+ declare type UnwrapTypeFromCoerceableOrValidator<
1094
+ V extends CoerceableToTypeValidator | TypeValidator<any> | unknown
1095
+ > = V extends TypeValidator<infer T>
1096
+ ? T
1097
+ : V extends CoerceableToTypeValidator
1098
+ ? CoerceToTypeValidator<V> extends TypeValidator<infer T>
1099
+ ? T
1100
+ : never
1101
+ : unknown;
1102
+
1103
+ declare const types: {
1104
+ // basic types
1105
+ any: TypeValidator<any>;
1106
+ unknown: TypeValidator<unknown>;
1107
+ anyObject: TypeValidator<{
1108
+ [key: string | number | symbol]: any;
1109
+ }>;
1110
+ unknownObject: TypeValidator<{}>;
1111
+ object: TypeValidator<{}>;
1112
+ Object: TypeValidator<{}>;
1113
+ arrayOfAny: TypeValidator<Array<any>>;
1114
+ arrayOfUnknown: TypeValidator<Array<unknown>>;
1115
+ array: TypeValidator<Array<unknown>>;
1116
+ Array: TypeValidator<unknown[]>;
1117
+ anyArray: TypeValidator<Array<any>>;
1118
+ boolean: TypeValidator<boolean>;
1119
+ Boolean: TypeValidator<boolean>;
1120
+ string: TypeValidator<string>;
1121
+ String: TypeValidator<string>;
1122
+ null: TypeValidator<null>;
1123
+ undefined: TypeValidator<undefined>;
1124
+ nullish: TypeValidator<null | undefined>;
1125
+ void: TypeValidator<null | undefined>;
1126
+ numberIncludingNanAndInfinities: TypeValidator<number>;
1127
+ number: TypeValidator<number>;
1128
+ Number: TypeValidator<number>;
1129
+ NaN: TypeValidator<number>;
1130
+ Infinity: TypeValidator<number>;
1131
+ NegativeInfinity: TypeValidator<number>;
1132
+ integer: TypeValidator<number>;
1133
+ bigint: TypeValidator<bigint>;
1134
+ BigInt: TypeValidator<bigint>;
1135
+ never: TypeValidator<never>;
1136
+ anyFunction: TypeValidator<(...args: any) => any>;
1137
+ unknownFunction: TypeValidator<(...args: Array<unknown>) => unknown>;
1138
+ Function: TypeValidator<(...args: Array<unknown>) => unknown>;
1139
+ false: TypeValidator<false>;
1140
+ true: TypeValidator<true>;
1141
+ falsy: TypeValidator<false | null | undefined | "" | 0>;
1142
+ truthy: <T>(target: false | "" | 0 | T | null | undefined) => target is T;
1143
+ nonNullOrUndefined: <T>(target: T | null | undefined) => target is T;
1144
+ Error: TypeValidator<Error>;
1145
+ Symbol: TypeValidator<symbol>;
1146
+ symbol: TypeValidator<symbol>;
1147
+ RegExp: TypeValidator<RegExp>;
1148
+ Date: TypeValidator<Date>;
1149
+ anyMap: TypeValidator<Map<any, any>>;
1150
+ unknownMap: TypeValidator<Map<unknown, unknown>>;
1151
+ map: TypeValidator<Map<unknown, unknown>>;
1152
+ Map: TypeValidator<Map<unknown, unknown>>;
1153
+ anySet: TypeValidator<Set<any>>;
1154
+ unknownSet: TypeValidator<Set<unknown>>;
1155
+ set: TypeValidator<Set<unknown>>;
1156
+ Set: TypeValidator<Set<unknown>>;
1157
+ ArrayBuffer: TypeValidator<ArrayBuffer>;
1158
+ SharedArrayBuffer: TypeValidator<SharedArrayBuffer>;
1159
+ DataView: TypeValidator<DataView>;
1160
+ TypedArray: TypeValidator<
1161
+ | Int8Array
1162
+ | Uint8Array
1163
+ | Uint8ClampedArray
1164
+ | Int16Array
1165
+ | Uint16Array
1166
+ | Int32Array
1167
+ | Uint32Array
1168
+ | Float32Array
1169
+ | Float64Array
1170
+ >;
1171
+ Int8Array: TypeValidator<Int8Array>;
1172
+ Uint8Array: TypeValidator<Uint8Array>;
1173
+ Uint8ClampedArray: TypeValidator<Uint8ClampedArray>;
1174
+ Int16Array: TypeValidator<Int16Array>;
1175
+ Uint16Array: TypeValidator<Uint16Array>;
1176
+ Int32Array: TypeValidator<Int32Array>;
1177
+ Uint32Array: TypeValidator<Uint32Array>;
1178
+ Float32Array: TypeValidator<Float32Array>;
1179
+ Float64Array: TypeValidator<Float64Array>;
1180
+
1181
+ // type constructors
1182
+ exactString<T extends string>(str: T): TypeValidator<T>;
1183
+ exactNumber<T extends number>(num: T): TypeValidator<T>;
1184
+ exactBigInt<T extends bigint>(num: T): TypeValidator<T>;
1185
+ exactSymbol<T extends symbol>(sym: T): TypeValidator<T>;
1186
+ hasClassName<Name extends string>(
1187
+ name: Name
1188
+ ): TypeValidator<{
1189
+ constructor: Function & {
1190
+ name: Name;
1191
+ };
1192
+ }>;
1193
+ hasToStringTag(name: string): TypeValidator<any>;
1194
+ instanceOf<
1195
+ Klass extends Function & {
1196
+ prototype: any;
1197
+ }
1198
+ >(
1199
+ klass: Klass
1200
+ ): TypeValidator<Klass["prototype"]>;
1201
+ stringMatching(regexp: RegExp): TypeValidator<string>;
1202
+ symbolFor(key: string): TypeValidator<symbol>;
1203
+ arrayOf<T extends TypeValidator<any> | CoerceableToTypeValidator | unknown>(
1204
+ typeValidator: T
1205
+ ): TypeValidator<Array<UnwrapTypeFromCoerceableOrValidator<T>>>;
1206
+ intersection: {
1207
+ <
1208
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1209
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1210
+ >(
1211
+ first: First,
1212
+ second: Second
1213
+ ): TypeValidator<
1214
+ UnwrapTypeFromCoerceableOrValidator<First> &
1215
+ UnwrapTypeFromCoerceableOrValidator<Second>
1216
+ >;
1217
+ <
1218
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1219
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1220
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1221
+ >(
1222
+ first: First,
1223
+ second: Second,
1224
+ third: Third
1225
+ ): TypeValidator<
1226
+ UnwrapTypeFromCoerceableOrValidator<First> &
1227
+ UnwrapTypeFromCoerceableOrValidator<Second> &
1228
+ UnwrapTypeFromCoerceableOrValidator<Third>
1229
+ >;
1230
+ <
1231
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1232
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1233
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1234
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1235
+ >(
1236
+ first: First,
1237
+ second: Second,
1238
+ third: Third,
1239
+ fourth: Fourth
1240
+ ): TypeValidator<
1241
+ UnwrapTypeFromCoerceableOrValidator<First> &
1242
+ UnwrapTypeFromCoerceableOrValidator<Second> &
1243
+ UnwrapTypeFromCoerceableOrValidator<Third> &
1244
+ UnwrapTypeFromCoerceableOrValidator<Fourth>
1245
+ >;
1246
+ <
1247
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1248
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1249
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1250
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1251
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1252
+ >(
1253
+ first: First,
1254
+ second: Second,
1255
+ third: Third,
1256
+ fourth: Fourth,
1257
+ fifth: Fifth
1258
+ ): TypeValidator<
1259
+ UnwrapTypeFromCoerceableOrValidator<First> &
1260
+ UnwrapTypeFromCoerceableOrValidator<Second> &
1261
+ UnwrapTypeFromCoerceableOrValidator<Third> &
1262
+ UnwrapTypeFromCoerceableOrValidator<Fourth> &
1263
+ UnwrapTypeFromCoerceableOrValidator<Fifth>
1264
+ >;
1265
+ <
1266
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1267
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1268
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1269
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1270
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1271
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1272
+ >(
1273
+ first: First,
1274
+ second: Second,
1275
+ third: Third,
1276
+ fourth: Fourth,
1277
+ fifth: Fifth,
1278
+ sixth: Sixth
1279
+ ): TypeValidator<
1280
+ UnwrapTypeFromCoerceableOrValidator<First> &
1281
+ UnwrapTypeFromCoerceableOrValidator<Second> &
1282
+ UnwrapTypeFromCoerceableOrValidator<Third> &
1283
+ UnwrapTypeFromCoerceableOrValidator<Fourth> &
1284
+ UnwrapTypeFromCoerceableOrValidator<Fifth> &
1285
+ UnwrapTypeFromCoerceableOrValidator<Sixth>
1286
+ >;
1287
+ <
1288
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1289
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1290
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1291
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1292
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1293
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1294
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1295
+ >(
1296
+ first: First,
1297
+ second: Second,
1298
+ third: Third,
1299
+ fourth: Fourth,
1300
+ fifth: Fifth,
1301
+ sixth: Sixth,
1302
+ seventh: Seventh
1303
+ ): TypeValidator<
1304
+ UnwrapTypeFromCoerceableOrValidator<First> &
1305
+ UnwrapTypeFromCoerceableOrValidator<Second> &
1306
+ UnwrapTypeFromCoerceableOrValidator<Third> &
1307
+ UnwrapTypeFromCoerceableOrValidator<Fourth> &
1308
+ UnwrapTypeFromCoerceableOrValidator<Fifth> &
1309
+ UnwrapTypeFromCoerceableOrValidator<Sixth> &
1310
+ UnwrapTypeFromCoerceableOrValidator<Seventh>
1311
+ >;
1312
+ <
1313
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1314
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1315
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1316
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1317
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1318
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1319
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1320
+ Eighth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1321
+ >(
1322
+ first: First,
1323
+ second: Second,
1324
+ third: Third,
1325
+ fourth: Fourth,
1326
+ fifth: Fifth,
1327
+ sixth: Sixth,
1328
+ seventh: Seventh,
1329
+ eighth: Eighth
1330
+ ): TypeValidator<
1331
+ UnwrapTypeFromCoerceableOrValidator<First> &
1332
+ UnwrapTypeFromCoerceableOrValidator<Second> &
1333
+ UnwrapTypeFromCoerceableOrValidator<Third> &
1334
+ UnwrapTypeFromCoerceableOrValidator<Fourth> &
1335
+ UnwrapTypeFromCoerceableOrValidator<Fifth> &
1336
+ UnwrapTypeFromCoerceableOrValidator<Sixth> &
1337
+ UnwrapTypeFromCoerceableOrValidator<Seventh> &
1338
+ UnwrapTypeFromCoerceableOrValidator<Eighth>
1339
+ >;
1340
+ <
1341
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1342
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1343
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1344
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1345
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1346
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1347
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1348
+ Eighth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1349
+ Ninth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1350
+ >(
1351
+ first: First,
1352
+ second: Second,
1353
+ third: Third,
1354
+ fourth: Fourth,
1355
+ fifth: Fifth,
1356
+ sixth: Sixth,
1357
+ seventh: Seventh,
1358
+ eighth: Eighth,
1359
+ ninth: Ninth
1360
+ ): TypeValidator<
1361
+ UnwrapTypeFromCoerceableOrValidator<First> &
1362
+ UnwrapTypeFromCoerceableOrValidator<Second> &
1363
+ UnwrapTypeFromCoerceableOrValidator<Third> &
1364
+ UnwrapTypeFromCoerceableOrValidator<Fourth> &
1365
+ UnwrapTypeFromCoerceableOrValidator<Fifth> &
1366
+ UnwrapTypeFromCoerceableOrValidator<Sixth> &
1367
+ UnwrapTypeFromCoerceableOrValidator<Seventh> &
1368
+ UnwrapTypeFromCoerceableOrValidator<Eighth> &
1369
+ UnwrapTypeFromCoerceableOrValidator<Ninth>
1370
+ >;
1371
+ <
1372
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1373
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1374
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1375
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1376
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1377
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1378
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1379
+ Eighth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1380
+ Ninth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1381
+ Tenth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1382
+ >(
1383
+ first: First,
1384
+ second: Second,
1385
+ third: Third,
1386
+ fourth: Fourth,
1387
+ fifth: Fifth,
1388
+ sixth: Sixth,
1389
+ seventh: Seventh,
1390
+ eighth: Eighth,
1391
+ ninth: Ninth,
1392
+ tenth: Tenth
1393
+ ): TypeValidator<
1394
+ UnwrapTypeFromCoerceableOrValidator<First> &
1395
+ UnwrapTypeFromCoerceableOrValidator<Second> &
1396
+ UnwrapTypeFromCoerceableOrValidator<Third> &
1397
+ UnwrapTypeFromCoerceableOrValidator<Fourth> &
1398
+ UnwrapTypeFromCoerceableOrValidator<Fifth> &
1399
+ UnwrapTypeFromCoerceableOrValidator<Sixth> &
1400
+ UnwrapTypeFromCoerceableOrValidator<Seventh> &
1401
+ UnwrapTypeFromCoerceableOrValidator<Eighth> &
1402
+ UnwrapTypeFromCoerceableOrValidator<Ninth> &
1403
+ UnwrapTypeFromCoerceableOrValidator<Tenth>
1404
+ >;
924
1405
  };
925
- Object(value: any): value is {
926
- [key: string]: unknown;
927
- [key: number]: unknown;
928
- [key: symbol]: unknown;
1406
+ and: {
1407
+ <
1408
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1409
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1410
+ >(
1411
+ first: First,
1412
+ second: Second
1413
+ ): TypeValidator<
1414
+ UnwrapTypeFromCoerceableOrValidator<First> &
1415
+ UnwrapTypeFromCoerceableOrValidator<Second>
1416
+ >;
1417
+ <
1418
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1419
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1420
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1421
+ >(
1422
+ first: First,
1423
+ second: Second,
1424
+ third: Third
1425
+ ): TypeValidator<
1426
+ UnwrapTypeFromCoerceableOrValidator<First> &
1427
+ UnwrapTypeFromCoerceableOrValidator<Second> &
1428
+ UnwrapTypeFromCoerceableOrValidator<Third>
1429
+ >;
1430
+ <
1431
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1432
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1433
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1434
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1435
+ >(
1436
+ first: First,
1437
+ second: Second,
1438
+ third: Third,
1439
+ fourth: Fourth
1440
+ ): TypeValidator<
1441
+ UnwrapTypeFromCoerceableOrValidator<First> &
1442
+ UnwrapTypeFromCoerceableOrValidator<Second> &
1443
+ UnwrapTypeFromCoerceableOrValidator<Third> &
1444
+ UnwrapTypeFromCoerceableOrValidator<Fourth>
1445
+ >;
1446
+ <
1447
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1448
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1449
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1450
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1451
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1452
+ >(
1453
+ first: First,
1454
+ second: Second,
1455
+ third: Third,
1456
+ fourth: Fourth,
1457
+ fifth: Fifth
1458
+ ): TypeValidator<
1459
+ UnwrapTypeFromCoerceableOrValidator<First> &
1460
+ UnwrapTypeFromCoerceableOrValidator<Second> &
1461
+ UnwrapTypeFromCoerceableOrValidator<Third> &
1462
+ UnwrapTypeFromCoerceableOrValidator<Fourth> &
1463
+ UnwrapTypeFromCoerceableOrValidator<Fifth>
1464
+ >;
1465
+ <
1466
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1467
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1468
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1469
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1470
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1471
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1472
+ >(
1473
+ first: First,
1474
+ second: Second,
1475
+ third: Third,
1476
+ fourth: Fourth,
1477
+ fifth: Fifth,
1478
+ sixth: Sixth
1479
+ ): TypeValidator<
1480
+ UnwrapTypeFromCoerceableOrValidator<First> &
1481
+ UnwrapTypeFromCoerceableOrValidator<Second> &
1482
+ UnwrapTypeFromCoerceableOrValidator<Third> &
1483
+ UnwrapTypeFromCoerceableOrValidator<Fourth> &
1484
+ UnwrapTypeFromCoerceableOrValidator<Fifth> &
1485
+ UnwrapTypeFromCoerceableOrValidator<Sixth>
1486
+ >;
1487
+ <
1488
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1489
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1490
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1491
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1492
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1493
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1494
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1495
+ >(
1496
+ first: First,
1497
+ second: Second,
1498
+ third: Third,
1499
+ fourth: Fourth,
1500
+ fifth: Fifth,
1501
+ sixth: Sixth,
1502
+ seventh: Seventh
1503
+ ): TypeValidator<
1504
+ UnwrapTypeFromCoerceableOrValidator<First> &
1505
+ UnwrapTypeFromCoerceableOrValidator<Second> &
1506
+ UnwrapTypeFromCoerceableOrValidator<Third> &
1507
+ UnwrapTypeFromCoerceableOrValidator<Fourth> &
1508
+ UnwrapTypeFromCoerceableOrValidator<Fifth> &
1509
+ UnwrapTypeFromCoerceableOrValidator<Sixth> &
1510
+ UnwrapTypeFromCoerceableOrValidator<Seventh>
1511
+ >;
1512
+ <
1513
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1514
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1515
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1516
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1517
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1518
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1519
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1520
+ Eighth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1521
+ >(
1522
+ first: First,
1523
+ second: Second,
1524
+ third: Third,
1525
+ fourth: Fourth,
1526
+ fifth: Fifth,
1527
+ sixth: Sixth,
1528
+ seventh: Seventh,
1529
+ eighth: Eighth
1530
+ ): TypeValidator<
1531
+ UnwrapTypeFromCoerceableOrValidator<First> &
1532
+ UnwrapTypeFromCoerceableOrValidator<Second> &
1533
+ UnwrapTypeFromCoerceableOrValidator<Third> &
1534
+ UnwrapTypeFromCoerceableOrValidator<Fourth> &
1535
+ UnwrapTypeFromCoerceableOrValidator<Fifth> &
1536
+ UnwrapTypeFromCoerceableOrValidator<Sixth> &
1537
+ UnwrapTypeFromCoerceableOrValidator<Seventh> &
1538
+ UnwrapTypeFromCoerceableOrValidator<Eighth>
1539
+ >;
1540
+ <
1541
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1542
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1543
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1544
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1545
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1546
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1547
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1548
+ Eighth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1549
+ Ninth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1550
+ >(
1551
+ first: First,
1552
+ second: Second,
1553
+ third: Third,
1554
+ fourth: Fourth,
1555
+ fifth: Fifth,
1556
+ sixth: Sixth,
1557
+ seventh: Seventh,
1558
+ eighth: Eighth,
1559
+ ninth: Ninth
1560
+ ): TypeValidator<
1561
+ UnwrapTypeFromCoerceableOrValidator<First> &
1562
+ UnwrapTypeFromCoerceableOrValidator<Second> &
1563
+ UnwrapTypeFromCoerceableOrValidator<Third> &
1564
+ UnwrapTypeFromCoerceableOrValidator<Fourth> &
1565
+ UnwrapTypeFromCoerceableOrValidator<Fifth> &
1566
+ UnwrapTypeFromCoerceableOrValidator<Sixth> &
1567
+ UnwrapTypeFromCoerceableOrValidator<Seventh> &
1568
+ UnwrapTypeFromCoerceableOrValidator<Eighth> &
1569
+ UnwrapTypeFromCoerceableOrValidator<Ninth>
1570
+ >;
1571
+ <
1572
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1573
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1574
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1575
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1576
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1577
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1578
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1579
+ Eighth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1580
+ Ninth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1581
+ Tenth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1582
+ >(
1583
+ first: First,
1584
+ second: Second,
1585
+ third: Third,
1586
+ fourth: Fourth,
1587
+ fifth: Fifth,
1588
+ sixth: Sixth,
1589
+ seventh: Seventh,
1590
+ eighth: Eighth,
1591
+ ninth: Ninth,
1592
+ tenth: Tenth
1593
+ ): TypeValidator<
1594
+ UnwrapTypeFromCoerceableOrValidator<First> &
1595
+ UnwrapTypeFromCoerceableOrValidator<Second> &
1596
+ UnwrapTypeFromCoerceableOrValidator<Third> &
1597
+ UnwrapTypeFromCoerceableOrValidator<Fourth> &
1598
+ UnwrapTypeFromCoerceableOrValidator<Fifth> &
1599
+ UnwrapTypeFromCoerceableOrValidator<Sixth> &
1600
+ UnwrapTypeFromCoerceableOrValidator<Seventh> &
1601
+ UnwrapTypeFromCoerceableOrValidator<Eighth> &
1602
+ UnwrapTypeFromCoerceableOrValidator<Ninth> &
1603
+ UnwrapTypeFromCoerceableOrValidator<Tenth>
1604
+ >;
929
1605
  };
930
- Array(value: any): value is unknown[];
931
- function(value: any): value is Function & {
932
- [key: string]: unknown;
933
- [key: number]: unknown;
934
- [key: symbol]: unknown;
1606
+ union: {
1607
+ <
1608
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1609
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1610
+ >(
1611
+ first: First,
1612
+ second: Second
1613
+ ): TypeValidator<
1614
+ | UnwrapTypeFromCoerceableOrValidator<First>
1615
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1616
+ >;
1617
+ <
1618
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1619
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1620
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1621
+ >(
1622
+ first: First,
1623
+ second: Second,
1624
+ third: Third
1625
+ ): TypeValidator<
1626
+ | UnwrapTypeFromCoerceableOrValidator<First>
1627
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1628
+ | UnwrapTypeFromCoerceableOrValidator<Third>
1629
+ >;
1630
+ <
1631
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1632
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1633
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1634
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1635
+ >(
1636
+ first: First,
1637
+ second: Second,
1638
+ third: Third,
1639
+ fourth: Fourth
1640
+ ): TypeValidator<
1641
+ | UnwrapTypeFromCoerceableOrValidator<First>
1642
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1643
+ | UnwrapTypeFromCoerceableOrValidator<Third>
1644
+ | UnwrapTypeFromCoerceableOrValidator<Fourth>
1645
+ >;
1646
+ <
1647
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1648
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1649
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1650
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1651
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1652
+ >(
1653
+ first: First,
1654
+ second: Second,
1655
+ third: Third,
1656
+ fourth: Fourth,
1657
+ fifth: Fifth
1658
+ ): TypeValidator<
1659
+ | UnwrapTypeFromCoerceableOrValidator<First>
1660
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1661
+ | UnwrapTypeFromCoerceableOrValidator<Third>
1662
+ | UnwrapTypeFromCoerceableOrValidator<Fourth>
1663
+ | UnwrapTypeFromCoerceableOrValidator<Fifth>
1664
+ >;
1665
+ <
1666
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1667
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1668
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1669
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1670
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1671
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1672
+ >(
1673
+ first: First,
1674
+ second: Second,
1675
+ third: Third,
1676
+ fourth: Fourth,
1677
+ fifth: Fifth,
1678
+ sixth: Sixth
1679
+ ): TypeValidator<
1680
+ | UnwrapTypeFromCoerceableOrValidator<First>
1681
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1682
+ | UnwrapTypeFromCoerceableOrValidator<Third>
1683
+ | UnwrapTypeFromCoerceableOrValidator<Fourth>
1684
+ | UnwrapTypeFromCoerceableOrValidator<Fifth>
1685
+ | UnwrapTypeFromCoerceableOrValidator<Sixth>
1686
+ >;
1687
+ <
1688
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1689
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1690
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1691
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1692
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1693
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1694
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1695
+ >(
1696
+ first: First,
1697
+ second: Second,
1698
+ third: Third,
1699
+ fourth: Fourth,
1700
+ fifth: Fifth,
1701
+ sixth: Sixth,
1702
+ seventh: Seventh
1703
+ ): TypeValidator<
1704
+ | UnwrapTypeFromCoerceableOrValidator<First>
1705
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1706
+ | UnwrapTypeFromCoerceableOrValidator<Third>
1707
+ | UnwrapTypeFromCoerceableOrValidator<Fourth>
1708
+ | UnwrapTypeFromCoerceableOrValidator<Fifth>
1709
+ | UnwrapTypeFromCoerceableOrValidator<Sixth>
1710
+ | UnwrapTypeFromCoerceableOrValidator<Seventh>
1711
+ >;
1712
+ <
1713
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1714
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1715
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1716
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1717
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1718
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1719
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1720
+ Eighth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1721
+ >(
1722
+ first: First,
1723
+ second: Second,
1724
+ third: Third,
1725
+ fourth: Fourth,
1726
+ fifth: Fifth,
1727
+ sixth: Sixth,
1728
+ seventh: Seventh,
1729
+ eighth: Eighth
1730
+ ): TypeValidator<
1731
+ | UnwrapTypeFromCoerceableOrValidator<First>
1732
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1733
+ | UnwrapTypeFromCoerceableOrValidator<Third>
1734
+ | UnwrapTypeFromCoerceableOrValidator<Fourth>
1735
+ | UnwrapTypeFromCoerceableOrValidator<Fifth>
1736
+ | UnwrapTypeFromCoerceableOrValidator<Sixth>
1737
+ | UnwrapTypeFromCoerceableOrValidator<Seventh>
1738
+ | UnwrapTypeFromCoerceableOrValidator<Eighth>
1739
+ >;
1740
+ <
1741
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1742
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1743
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1744
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1745
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1746
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1747
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1748
+ Eighth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1749
+ Ninth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1750
+ >(
1751
+ first: First,
1752
+ second: Second,
1753
+ third: Third,
1754
+ fourth: Fourth,
1755
+ fifth: Fifth,
1756
+ sixth: Sixth,
1757
+ seventh: Seventh,
1758
+ eighth: Eighth,
1759
+ ninth: Ninth
1760
+ ): TypeValidator<
1761
+ | UnwrapTypeFromCoerceableOrValidator<First>
1762
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1763
+ | UnwrapTypeFromCoerceableOrValidator<Third>
1764
+ | UnwrapTypeFromCoerceableOrValidator<Fourth>
1765
+ | UnwrapTypeFromCoerceableOrValidator<Fifth>
1766
+ | UnwrapTypeFromCoerceableOrValidator<Sixth>
1767
+ | UnwrapTypeFromCoerceableOrValidator<Seventh>
1768
+ | UnwrapTypeFromCoerceableOrValidator<Eighth>
1769
+ | UnwrapTypeFromCoerceableOrValidator<Ninth>
1770
+ >;
1771
+ <
1772
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1773
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1774
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1775
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1776
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1777
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1778
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1779
+ Eighth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1780
+ Ninth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1781
+ Tenth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1782
+ >(
1783
+ first: First,
1784
+ second: Second,
1785
+ third: Third,
1786
+ fourth: Fourth,
1787
+ fifth: Fifth,
1788
+ sixth: Sixth,
1789
+ seventh: Seventh,
1790
+ eighth: Eighth,
1791
+ ninth: Ninth,
1792
+ tenth: Tenth
1793
+ ): TypeValidator<
1794
+ | UnwrapTypeFromCoerceableOrValidator<First>
1795
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1796
+ | UnwrapTypeFromCoerceableOrValidator<Third>
1797
+ | UnwrapTypeFromCoerceableOrValidator<Fourth>
1798
+ | UnwrapTypeFromCoerceableOrValidator<Fifth>
1799
+ | UnwrapTypeFromCoerceableOrValidator<Sixth>
1800
+ | UnwrapTypeFromCoerceableOrValidator<Seventh>
1801
+ | UnwrapTypeFromCoerceableOrValidator<Eighth>
1802
+ | UnwrapTypeFromCoerceableOrValidator<Ninth>
1803
+ | UnwrapTypeFromCoerceableOrValidator<Tenth>
1804
+ >;
935
1805
  };
936
- Function(value: any): value is Function & {
937
- [key: string]: unknown;
938
- [key: number]: unknown;
939
- [key: symbol]: unknown;
1806
+ or: {
1807
+ <
1808
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1809
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1810
+ >(
1811
+ first: First,
1812
+ second: Second
1813
+ ): TypeValidator<
1814
+ | UnwrapTypeFromCoerceableOrValidator<First>
1815
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1816
+ >;
1817
+ <
1818
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1819
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1820
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1821
+ >(
1822
+ first: First,
1823
+ second: Second,
1824
+ third: Third
1825
+ ): TypeValidator<
1826
+ | UnwrapTypeFromCoerceableOrValidator<First>
1827
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1828
+ | UnwrapTypeFromCoerceableOrValidator<Third>
1829
+ >;
1830
+ <
1831
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1832
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1833
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1834
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1835
+ >(
1836
+ first: First,
1837
+ second: Second,
1838
+ third: Third,
1839
+ fourth: Fourth
1840
+ ): TypeValidator<
1841
+ | UnwrapTypeFromCoerceableOrValidator<First>
1842
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1843
+ | UnwrapTypeFromCoerceableOrValidator<Third>
1844
+ | UnwrapTypeFromCoerceableOrValidator<Fourth>
1845
+ >;
1846
+ <
1847
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1848
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1849
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1850
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1851
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1852
+ >(
1853
+ first: First,
1854
+ second: Second,
1855
+ third: Third,
1856
+ fourth: Fourth,
1857
+ fifth: Fifth
1858
+ ): TypeValidator<
1859
+ | UnwrapTypeFromCoerceableOrValidator<First>
1860
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1861
+ | UnwrapTypeFromCoerceableOrValidator<Third>
1862
+ | UnwrapTypeFromCoerceableOrValidator<Fourth>
1863
+ | UnwrapTypeFromCoerceableOrValidator<Fifth>
1864
+ >;
1865
+ <
1866
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1867
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1868
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1869
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1870
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1871
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1872
+ >(
1873
+ first: First,
1874
+ second: Second,
1875
+ third: Third,
1876
+ fourth: Fourth,
1877
+ fifth: Fifth,
1878
+ sixth: Sixth
1879
+ ): TypeValidator<
1880
+ | UnwrapTypeFromCoerceableOrValidator<First>
1881
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1882
+ | UnwrapTypeFromCoerceableOrValidator<Third>
1883
+ | UnwrapTypeFromCoerceableOrValidator<Fourth>
1884
+ | UnwrapTypeFromCoerceableOrValidator<Fifth>
1885
+ | UnwrapTypeFromCoerceableOrValidator<Sixth>
1886
+ >;
1887
+ <
1888
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1889
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1890
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1891
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1892
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1893
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1894
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1895
+ >(
1896
+ first: First,
1897
+ second: Second,
1898
+ third: Third,
1899
+ fourth: Fourth,
1900
+ fifth: Fifth,
1901
+ sixth: Sixth,
1902
+ seventh: Seventh
1903
+ ): TypeValidator<
1904
+ | UnwrapTypeFromCoerceableOrValidator<First>
1905
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1906
+ | UnwrapTypeFromCoerceableOrValidator<Third>
1907
+ | UnwrapTypeFromCoerceableOrValidator<Fourth>
1908
+ | UnwrapTypeFromCoerceableOrValidator<Fifth>
1909
+ | UnwrapTypeFromCoerceableOrValidator<Sixth>
1910
+ | UnwrapTypeFromCoerceableOrValidator<Seventh>
1911
+ >;
1912
+ <
1913
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1914
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1915
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1916
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1917
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1918
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1919
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1920
+ Eighth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1921
+ >(
1922
+ first: First,
1923
+ second: Second,
1924
+ third: Third,
1925
+ fourth: Fourth,
1926
+ fifth: Fifth,
1927
+ sixth: Sixth,
1928
+ seventh: Seventh,
1929
+ eighth: Eighth
1930
+ ): TypeValidator<
1931
+ | UnwrapTypeFromCoerceableOrValidator<First>
1932
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1933
+ | UnwrapTypeFromCoerceableOrValidator<Third>
1934
+ | UnwrapTypeFromCoerceableOrValidator<Fourth>
1935
+ | UnwrapTypeFromCoerceableOrValidator<Fifth>
1936
+ | UnwrapTypeFromCoerceableOrValidator<Sixth>
1937
+ | UnwrapTypeFromCoerceableOrValidator<Seventh>
1938
+ | UnwrapTypeFromCoerceableOrValidator<Eighth>
1939
+ >;
1940
+ <
1941
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1942
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1943
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1944
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1945
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1946
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1947
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1948
+ Eighth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1949
+ Ninth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1950
+ >(
1951
+ first: First,
1952
+ second: Second,
1953
+ third: Third,
1954
+ fourth: Fourth,
1955
+ fifth: Fifth,
1956
+ sixth: Sixth,
1957
+ seventh: Seventh,
1958
+ eighth: Eighth,
1959
+ ninth: Ninth
1960
+ ): TypeValidator<
1961
+ | UnwrapTypeFromCoerceableOrValidator<First>
1962
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1963
+ | UnwrapTypeFromCoerceableOrValidator<Third>
1964
+ | UnwrapTypeFromCoerceableOrValidator<Fourth>
1965
+ | UnwrapTypeFromCoerceableOrValidator<Fifth>
1966
+ | UnwrapTypeFromCoerceableOrValidator<Sixth>
1967
+ | UnwrapTypeFromCoerceableOrValidator<Seventh>
1968
+ | UnwrapTypeFromCoerceableOrValidator<Eighth>
1969
+ | UnwrapTypeFromCoerceableOrValidator<Ninth>
1970
+ >;
1971
+ <
1972
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1973
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1974
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1975
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1976
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1977
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1978
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1979
+ Eighth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1980
+ Ninth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
1981
+ Tenth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
1982
+ >(
1983
+ first: First,
1984
+ second: Second,
1985
+ third: Third,
1986
+ fourth: Fourth,
1987
+ fifth: Fifth,
1988
+ sixth: Sixth,
1989
+ seventh: Seventh,
1990
+ eighth: Eighth,
1991
+ ninth: Ninth,
1992
+ tenth: Tenth
1993
+ ): TypeValidator<
1994
+ | UnwrapTypeFromCoerceableOrValidator<First>
1995
+ | UnwrapTypeFromCoerceableOrValidator<Second>
1996
+ | UnwrapTypeFromCoerceableOrValidator<Third>
1997
+ | UnwrapTypeFromCoerceableOrValidator<Fourth>
1998
+ | UnwrapTypeFromCoerceableOrValidator<Fifth>
1999
+ | UnwrapTypeFromCoerceableOrValidator<Sixth>
2000
+ | UnwrapTypeFromCoerceableOrValidator<Seventh>
2001
+ | UnwrapTypeFromCoerceableOrValidator<Eighth>
2002
+ | UnwrapTypeFromCoerceableOrValidator<Ninth>
2003
+ | UnwrapTypeFromCoerceableOrValidator<Tenth>
2004
+ >;
940
2005
  };
941
- tagged(value: any, tag: string): boolean;
942
- instanceOf<T>(value: any, klass: new (...args: any) => T): value is T;
943
- Error(value: any): value is Error;
944
- Infinity(value: any): value is number;
945
- NegativeInfinity(value: any): value is number;
946
- NaN(value: any): value is number;
947
- Date(value: any): value is Date;
948
- RegExp(value: any): value is RegExp;
949
- Map(value: any): value is Map<unknown, unknown>;
950
- Set(value: any): value is Set<unknown>;
951
- WeakMap(value: any): value is Map<unknown, unknown>;
952
- WeakSet(value: any): value is Set<unknown>;
953
- ArrayBuffer(value: any): value is ArrayBuffer;
954
- SharedArrayBuffer(value: any): value is SharedArrayBuffer;
955
- DataView(value: any): value is DataView;
956
- TypedArray(value: any): value is TypedArray;
957
- Int8Array(value: any): value is Int8Array;
958
- Uint8Array(value: any): value is Uint8Array;
959
- Uint8ClampedArray(value: any): value is Uint8ClampedArray;
960
- Int16Array(value: any): value is Int16Array;
961
- Uint16Array(value: any): value is Uint16Array;
962
- Int32Array(value: any): value is Int32Array;
963
- Uint32Array(value: any): value is Uint32Array;
964
- Float32Array(value: any): value is Float32Array;
965
- Float64Array(value: any): value is Float64Array;
966
- Promise(value: any): value is Promise<unknown>;
967
- Generator(value: any): value is Generator<unknown, any, unknown>;
968
- GeneratorFunction(value: any): value is GeneratorFunction;
969
- AsyncFunction(value: any): value is ((...args: any) => Promise<unknown>) & {
970
- [key: string]: unknown;
971
- [key: number]: unknown;
972
- [key: symbol]: unknown;
2006
+ mapOf<
2007
+ K extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2008
+ V extends TypeValidator<any> | CoerceableToTypeValidator | unknown
2009
+ >(
2010
+ keyType: K,
2011
+ valueType: V
2012
+ ): TypeValidator<
2013
+ Map<
2014
+ UnwrapTypeFromCoerceableOrValidator<K>,
2015
+ UnwrapTypeFromCoerceableOrValidator<V>
2016
+ >
2017
+ >;
2018
+ setOf<T extends TypeValidator<any> | CoerceableToTypeValidator | unknown>(
2019
+ itemType: T
2020
+ ): TypeValidator<Set<UnwrapTypeFromCoerceableOrValidator<T>>>;
2021
+ maybe<T extends TypeValidator<any> | CoerceableToTypeValidator | unknown>(
2022
+ itemType: T
2023
+ ): TypeValidator<UnwrapTypeFromCoerceableOrValidator<T> | undefined | null>;
2024
+ objectWithProperties<
2025
+ T extends {
2026
+ [key: string | number | symbol]:
2027
+ | TypeValidator<any>
2028
+ | CoerceableToTypeValidator
2029
+ | unknown;
2030
+ }
2031
+ >(
2032
+ properties: T
2033
+ ): TypeValidator<{
2034
+ [key in keyof T]: UnwrapTypeFromCoerceableOrValidator<T[key]>;
2035
+ }>;
2036
+ objectWithOnlyTheseProperties<
2037
+ T extends {
2038
+ [key: string | number | symbol]:
2039
+ | TypeValidator<any>
2040
+ | CoerceableToTypeValidator
2041
+ | unknown;
2042
+ }
2043
+ >(
2044
+ properties: T
2045
+ ): TypeValidator<{
2046
+ [key in keyof T]: UnwrapTypeFromCoerceableOrValidator<T[key]>;
2047
+ }>;
2048
+
2049
+ mappingObjectOf<
2050
+ Values extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2051
+ Keys extends TypeValidator<any> | CoerceableToTypeValidator | unknown
2052
+ >(
2053
+ keyType: Keys,
2054
+ valueType: Values
2055
+ ): TypeValidator<
2056
+ Record<
2057
+ UnwrapTypeFromCoerceableOrValidator<Keys> extends string | number | symbol
2058
+ ? UnwrapTypeFromCoerceableOrValidator<Keys>
2059
+ : never,
2060
+ UnwrapTypeFromCoerceableOrValidator<Values>
2061
+ >
2062
+ >;
2063
+ record<
2064
+ Values extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2065
+ Keys extends TypeValidator<any> | CoerceableToTypeValidator | unknown
2066
+ >(
2067
+ keyType: Keys,
2068
+ valueType: Values
2069
+ ): TypeValidator<
2070
+ Record<
2071
+ UnwrapTypeFromCoerceableOrValidator<Keys> extends string | number | symbol
2072
+ ? UnwrapTypeFromCoerceableOrValidator<Keys>
2073
+ : never,
2074
+ UnwrapTypeFromCoerceableOrValidator<Values>
2075
+ >
2076
+ >;
2077
+ partialObjectWithProperties<
2078
+ T extends {
2079
+ [key: string | number | symbol]:
2080
+ | TypeValidator<any>
2081
+ | CoerceableToTypeValidator
2082
+ | unknown;
2083
+ }
2084
+ >(
2085
+ properties: T
2086
+ ): TypeValidator<{
2087
+ [key in keyof T]:
2088
+ | UnwrapTypeFromCoerceableOrValidator<T[key]>
2089
+ | null
2090
+ | undefined;
2091
+ }>;
2092
+ tuple: {
2093
+ <
2094
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2095
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown
2096
+ >(
2097
+ first: First,
2098
+ second: Second
2099
+ ): TypeValidator<
2100
+ [
2101
+ UnwrapTypeFromCoerceableOrValidator<First>,
2102
+ UnwrapTypeFromCoerceableOrValidator<Second>
2103
+ ]
2104
+ >;
2105
+ <
2106
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2107
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2108
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown
2109
+ >(
2110
+ first: First,
2111
+ second: Second,
2112
+ third: Third
2113
+ ): TypeValidator<
2114
+ [
2115
+ UnwrapTypeFromCoerceableOrValidator<First>,
2116
+ UnwrapTypeFromCoerceableOrValidator<Second>,
2117
+ UnwrapTypeFromCoerceableOrValidator<Third>
2118
+ ]
2119
+ >;
2120
+ <
2121
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2122
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2123
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2124
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
2125
+ >(
2126
+ first: First,
2127
+ second: Second,
2128
+ third: Third,
2129
+ fourth: Fourth
2130
+ ): TypeValidator<
2131
+ [
2132
+ UnwrapTypeFromCoerceableOrValidator<First>,
2133
+ UnwrapTypeFromCoerceableOrValidator<Second>,
2134
+ UnwrapTypeFromCoerceableOrValidator<Third>,
2135
+ UnwrapTypeFromCoerceableOrValidator<Fourth>
2136
+ ]
2137
+ >;
2138
+ <
2139
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2140
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2141
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2142
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2143
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
2144
+ >(
2145
+ first: First,
2146
+ second: Second,
2147
+ third: Third,
2148
+ fourth: Fourth,
2149
+ fifth: Fifth
2150
+ ): TypeValidator<
2151
+ [
2152
+ UnwrapTypeFromCoerceableOrValidator<First>,
2153
+ UnwrapTypeFromCoerceableOrValidator<Second>,
2154
+ UnwrapTypeFromCoerceableOrValidator<Third>,
2155
+ UnwrapTypeFromCoerceableOrValidator<Fourth>,
2156
+ UnwrapTypeFromCoerceableOrValidator<Fifth>
2157
+ ]
2158
+ >;
2159
+ <
2160
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2161
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2162
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2163
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2164
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2165
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
2166
+ >(
2167
+ first: First,
2168
+ second: Second,
2169
+ third: Third,
2170
+ fourth: Fourth,
2171
+ fifth: Fifth,
2172
+ sixth: Sixth
2173
+ ): TypeValidator<
2174
+ [
2175
+ UnwrapTypeFromCoerceableOrValidator<First>,
2176
+ UnwrapTypeFromCoerceableOrValidator<Second>,
2177
+ UnwrapTypeFromCoerceableOrValidator<Third>,
2178
+ UnwrapTypeFromCoerceableOrValidator<Fourth>,
2179
+ UnwrapTypeFromCoerceableOrValidator<Fifth>,
2180
+ UnwrapTypeFromCoerceableOrValidator<Sixth>
2181
+ ]
2182
+ >;
2183
+ <
2184
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2185
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2186
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2187
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2188
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2189
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2190
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown
2191
+ >(
2192
+ first: First,
2193
+ second: Second,
2194
+ third: Third,
2195
+ fourth: Fourth,
2196
+ fifth: Fifth,
2197
+ sixth: Sixth,
2198
+ seventh: Seventh
2199
+ ): TypeValidator<
2200
+ [
2201
+ UnwrapTypeFromCoerceableOrValidator<First>,
2202
+ UnwrapTypeFromCoerceableOrValidator<Second>,
2203
+ UnwrapTypeFromCoerceableOrValidator<Third>,
2204
+ UnwrapTypeFromCoerceableOrValidator<Fourth>,
2205
+ UnwrapTypeFromCoerceableOrValidator<Fifth>,
2206
+ UnwrapTypeFromCoerceableOrValidator<Sixth>,
2207
+ UnwrapTypeFromCoerceableOrValidator<Seventh>
2208
+ ]
2209
+ >;
2210
+ <
2211
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2212
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2213
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2214
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2215
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2216
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2217
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2218
+ Eighth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
2219
+ >(
2220
+ first: First,
2221
+ second: Second,
2222
+ third: Third,
2223
+ fourth: Fourth,
2224
+ fifth: Fifth,
2225
+ sixth: Sixth,
2226
+ seventh: Seventh,
2227
+ eighth: Eighth
2228
+ ): TypeValidator<
2229
+ [
2230
+ UnwrapTypeFromCoerceableOrValidator<First>,
2231
+ UnwrapTypeFromCoerceableOrValidator<Second>,
2232
+ UnwrapTypeFromCoerceableOrValidator<Third>,
2233
+ UnwrapTypeFromCoerceableOrValidator<Fourth>,
2234
+ UnwrapTypeFromCoerceableOrValidator<Fifth>,
2235
+ UnwrapTypeFromCoerceableOrValidator<Sixth>,
2236
+ UnwrapTypeFromCoerceableOrValidator<Seventh>,
2237
+ UnwrapTypeFromCoerceableOrValidator<Eighth>
2238
+ ]
2239
+ >;
2240
+ <
2241
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2242
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2243
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2244
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2245
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2246
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2247
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2248
+ Eighth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2249
+ Ninth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
2250
+ >(
2251
+ first: First,
2252
+ second: Second,
2253
+ third: Third,
2254
+ fourth: Fourth,
2255
+ fifth: Fifth,
2256
+ sixth: Sixth,
2257
+ seventh: Seventh,
2258
+ eighth: Eighth,
2259
+ ninth: Ninth
2260
+ ): TypeValidator<
2261
+ [
2262
+ UnwrapTypeFromCoerceableOrValidator<First>,
2263
+ UnwrapTypeFromCoerceableOrValidator<Second>,
2264
+ UnwrapTypeFromCoerceableOrValidator<Third>,
2265
+ UnwrapTypeFromCoerceableOrValidator<Fourth>,
2266
+ UnwrapTypeFromCoerceableOrValidator<Fifth>,
2267
+ UnwrapTypeFromCoerceableOrValidator<Sixth>,
2268
+ UnwrapTypeFromCoerceableOrValidator<Seventh>,
2269
+ UnwrapTypeFromCoerceableOrValidator<Eighth>,
2270
+ UnwrapTypeFromCoerceableOrValidator<Ninth>
2271
+ ]
2272
+ >;
2273
+ <
2274
+ First extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2275
+ Second extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2276
+ Third extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2277
+ Fourth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2278
+ Fifth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2279
+ Sixth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2280
+ Seventh extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2281
+ Eighth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2282
+ Ninth extends TypeValidator<any> | CoerceableToTypeValidator | unknown,
2283
+ Tenth extends TypeValidator<any> | CoerceableToTypeValidator | unknown
2284
+ >(
2285
+ first: First,
2286
+ second: Second,
2287
+ third: Third,
2288
+ fourth: Fourth,
2289
+ fifth: Fifth,
2290
+ sixth: Sixth,
2291
+ seventh: Seventh,
2292
+ eighth: Eighth,
2293
+ ninth: Ninth,
2294
+ tenth: Tenth
2295
+ ): TypeValidator<
2296
+ [
2297
+ UnwrapTypeFromCoerceableOrValidator<First>,
2298
+ UnwrapTypeFromCoerceableOrValidator<Second>,
2299
+ UnwrapTypeFromCoerceableOrValidator<Third>,
2300
+ UnwrapTypeFromCoerceableOrValidator<Fourth>,
2301
+ UnwrapTypeFromCoerceableOrValidator<Fifth>,
2302
+ UnwrapTypeFromCoerceableOrValidator<Sixth>,
2303
+ UnwrapTypeFromCoerceableOrValidator<Seventh>,
2304
+ UnwrapTypeFromCoerceableOrValidator<Eighth>,
2305
+ UnwrapTypeFromCoerceableOrValidator<Ninth>,
2306
+ UnwrapTypeFromCoerceableOrValidator<Tenth>
2307
+ ]
2308
+ >;
973
2309
  };
974
- AsyncGenerator(value: any): value is AsyncGenerator<unknown, any, unknown>;
975
- AsyncGeneratorFunction(value: any): value is AsyncGeneratorFunction;
976
2310
 
977
- FILE(value: any): value is FILE;
2311
+ coerce: <V extends CoerceableToTypeValidator | TypeValidator<any> | unknown>(
2312
+ value: V
2313
+ ) => TypeValidator<UnwrapTypeFromCoerceableOrValidator<V>>;
978
2314
 
2315
+ FILE: TypeValidator<FILE>;
2316
+ Module: TypeValidator<{ [key: string]: unknown }>;
2317
+ Path: TypeValidator<Path>;
979
2318
  JSX: {
980
- /** Returns whether `value` is a JSX Element object as created via JSX syntax. */
981
- Element(value: any): value is JSX.Element;
982
- /** Returns whether `value` is a JSX fragment element as created via JSX syntax. */
983
- Fragment(value: any): value is JSX.Fragment;
2319
+ unknownElement: TypeValidator<
2320
+ JSX.Element<{ [key: string | symbol | number]: unknown }, unknown>
2321
+ >;
2322
+ anyElement: TypeValidator<JSX.Element<any, any>>;
2323
+ Element: TypeValidator<
2324
+ JSX.Element<{ [key: string | symbol | number]: unknown }, unknown>
2325
+ >;
2326
+ Fragment: TypeValidator<JSX.Fragment>;
984
2327
  };
985
2328
  };
986
2329
 
2330
+ declare const is: <T extends TypeValidator<any> | CoerceableToTypeValidator>(
2331
+ value: any,
2332
+ type: T
2333
+ ) => value is UnwrapTypeFromCoerceableOrValidator<T>;
2334
+
987
2335
  declare const assert: {
988
2336
  /**
989
2337
  * Throws an error if `value` is not truthy.
@@ -998,116 +2346,16 @@ declare const assert: {
998
2346
  ? never
999
2347
  : ValueType;
1000
2348
 
1001
- string(value: any, message?: string): asserts value is string;
1002
- String(value: any, message?: string): asserts value is string;
1003
- number(value: any, message?: string): asserts value is number;
1004
- Number(value: any, message?: string): asserts value is number;
1005
- boolean(value: any, message?: string): asserts value is boolean;
1006
- Boolean(value: any, message?: string): asserts value is boolean;
1007
- bigint(value: any, message?: string): asserts value is bigint;
1008
- BigInt(value: any, message?: string): asserts value is bigint;
1009
- symbol(value: any, message?: string): asserts value is symbol;
1010
- Symbol(value: any, message?: string): asserts value is symbol;
1011
- null(value: any, message?: string): asserts value is null;
1012
- undefined(value: any, message?: string): asserts value is undefined;
1013
- void(value: any, message?: string): asserts value is null | undefined;
1014
- object(
1015
- value: any,
1016
- message?: string
1017
- ): asserts value is {
1018
- [key: string]: unknown;
1019
- [key: number]: unknown;
1020
- [key: symbol]: unknown;
1021
- };
1022
- Object(
1023
- value: any,
1024
- message?: string
1025
- ): asserts value is {
1026
- [key: string]: unknown;
1027
- [key: number]: unknown;
1028
- [key: symbol]: unknown;
1029
- };
1030
- Array(value: any, message?: string): asserts value is unknown[];
1031
- function(
1032
- value: any,
1033
- message?: string
1034
- ): asserts value is Function & {
1035
- [key: string]: unknown;
1036
- [key: number]: unknown;
1037
- [key: symbol]: unknown;
1038
- };
1039
- Function(
1040
- value: any,
1041
- message?: string
1042
- ): asserts value is Function & {
1043
- [key: string]: unknown;
1044
- [key: number]: unknown;
1045
- [key: symbol]: unknown;
1046
- };
1047
- tagged(value: any, tag: string, message?: string): void;
1048
- instanceOf<T>(value: any, klass: new (...args: any) => T): asserts value is T;
1049
- Error(value: any, message?: string): asserts value is Error;
1050
- Infinity(value: any, message?: string): asserts value is number;
1051
- NegativeInfinity(value: any, message?: string): asserts value is number;
1052
- NaN(value: any, message?: string): asserts value is number;
1053
- Date(value: any, message?: string): asserts value is Date;
1054
- RegExp(value: any, message?: string): asserts value is RegExp;
1055
- Map(value: any, message?: string): asserts value is Map<unknown, unknown>;
1056
- Set(value: any, message?: string): asserts value is Set<unknown>;
1057
- WeakMap(value: any, message?: string): asserts value is Map<unknown, unknown>;
1058
- WeakSet(value: any, message?: string): asserts value is Set<unknown>;
1059
- ArrayBuffer(value: any, message?: string): asserts value is ArrayBuffer;
1060
- SharedArrayBuffer(
1061
- value: any,
1062
- message?: string
1063
- ): asserts value is SharedArrayBuffer;
1064
- DataView(value: any, message?: string): asserts value is DataView;
1065
- TypedArray(value: any, message?: string): asserts value is TypedArray;
1066
- Int8Array(value: any, message?: string): asserts value is Int8Array;
1067
- Uint8Array(value: any, message?: string): asserts value is Uint8Array;
1068
- Uint8ClampedArray(
1069
- value: any,
1070
- message?: string
1071
- ): asserts value is Uint8ClampedArray;
1072
- Int16Array(value: any, message?: string): asserts value is Int16Array;
1073
- Uint16Array(value: any, message?: string): asserts value is Uint16Array;
1074
- Int32Array(value: any, message?: string): asserts value is Int32Array;
1075
- Uint32Array(value: any, message?: string): asserts value is Uint32Array;
1076
- Float32Array(value: any, message?: string): asserts value is Float32Array;
1077
- Float64Array(value: any, message?: string): asserts value is Float64Array;
1078
- Promise(value: any, message?: string): asserts value is Promise<unknown>;
1079
- Generator(
1080
- value: any,
1081
- message?: string
1082
- ): asserts value is Generator<unknown, any, unknown>;
1083
- GeneratorFunction(
1084
- value: any,
1085
- message?: string
1086
- ): asserts value is GeneratorFunction;
1087
- AsyncFunction(
1088
- value: any,
1089
- message?: string
1090
- ): asserts value is ((...args: any) => Promise<unknown>) & {
1091
- [key: string]: unknown;
1092
- [key: number]: unknown;
1093
- [key: symbol]: unknown;
1094
- };
1095
- AsyncGenerator(
1096
- value: any
1097
- ): asserts value is AsyncGenerator<unknown, any, unknown>;
1098
- AsyncGeneratorFunction(
2349
+ /**
2350
+ * Throws an error if `value` is not of the type `type`.
2351
+ *
2352
+ * `type` should be either a {@link TypeValidator}, or a value which can be coerced into one via {@link types.coerce}.
2353
+ */
2354
+ type: <T extends TypeValidator<any> | CoerceableToTypeValidator>(
1099
2355
  value: any,
1100
- message?: string
1101
- ): asserts value is AsyncGeneratorFunction;
1102
-
1103
- FILE(value: any, message?: string): asserts value is FILE;
1104
-
1105
- JSX: {
1106
- /** Returns whether `value` is a JSX Element object as created via JSX syntax. */
1107
- Element(value: any, message?: string): asserts value is JSX.Element;
1108
- /** Returns whether `value` is a JSX fragment element as created via JSX syntax. */
1109
- Fragment(value: any, message?: string): asserts value is JSX.Fragment;
1110
- };
2356
+ type: T,
2357
+ optionalMessage?: string
2358
+ ) => asserts value is UnwrapTypeFromCoerceableOrValidator<T>;
1111
2359
  };
1112
2360
 
1113
2361
  /**
@@ -1256,10 +2504,10 @@ declare namespace JSX {
1256
2504
  * expression.
1257
2505
  *
1258
2506
  * Note that if you change this, you need to verify that the following
1259
- * expression always evaluates to `true` (by changing {@link is.JSX.Element}
1260
- * and {@link is.JSX.Fragment}):
2507
+ * expression always evaluates to `true` (by changing {@link types.JSX.Element}
2508
+ * and {@link types.JSX.Fragment}):
1261
2509
  * ```jsx
1262
- * is.JSX.Element(<a />) && is.JSX.Fragment(<></>)
2510
+ * types.JSX.Element(<a />) && types.JSX.Fragment(<></>)
1263
2511
  * ```
1264
2512
  *
1265
2513
  * Failure to uphold this guarantee indicates a bug.
@@ -1276,10 +2524,10 @@ declare namespace JSX {
1276
2524
  * expression.
1277
2525
  *
1278
2526
  * Note that if you change this, you need to verify that the following
1279
- * expression always evaluates to `true` (by changing {@link is.JSX.Element}
1280
- * and {@link is.JSX.Fragment}):
2527
+ * expression always evaluates to `true` (by changing {@link types.JSX.Element}
2528
+ * and {@link types.JSX.Fragment}):
1281
2529
  * ```jsx
1282
- * is.JSX.Element(<a />) && is.JSX.Fragment(<></>)
2530
+ * types.JSX.Element(<a />) && types.JSX.Fragment(<></>)
1283
2531
  * ```
1284
2532
  *
1285
2533
  * Failure to uphold this guarantee indicates a bug.
@@ -1415,6 +2663,27 @@ declare var boolean: BooleanConstructor;
1415
2663
  declare var bigint: BigIntConstructor;
1416
2664
  declare var symbol: SymbolConstructor;
1417
2665
 
2666
+ declare type TypedArray =
2667
+ | Int8Array
2668
+ | Uint8Array
2669
+ | Uint8ClampedArray
2670
+ | Int16Array
2671
+ | Uint16Array
2672
+ | Int32Array
2673
+ | Uint32Array
2674
+ | Float32Array
2675
+ | Float64Array;
2676
+ declare type TypedArrayConstructor =
2677
+ | Int8ArrayConstructor
2678
+ | Uint8ArrayConstructor
2679
+ | Uint8ClampedArrayConstructor
2680
+ | Int16ArrayConstructor
2681
+ | Uint16ArrayConstructor
2682
+ | Int32ArrayConstructor
2683
+ | Uint32ArrayConstructor
2684
+ | Float32ArrayConstructor
2685
+ | Float64ArrayConstructor;
2686
+
1418
2687
  // ==========================================
1419
2688
  // ------------------------------------------
1420
2689
  // QuickJS APIs, which YavaScript builds upon
@@ -1537,7 +2806,7 @@ declare interface FILE {
1537
2806
  putByte(value: number): void;
1538
2807
  }
1539
2808
 
1540
- declare module "std" {
2809
+ declare module "quickjs:std" {
1541
2810
  /**
1542
2811
  * Exit the process with the provided status code.
1543
2812
  *
@@ -1812,7 +3081,7 @@ declare module "std" {
1812
3081
  export function parseExtJSON(str: string): any;
1813
3082
  }
1814
3083
 
1815
- declare module "os" {
3084
+ declare module "quickjs:os" {
1816
3085
  /**
1817
3086
  * Open a file handle. Returns a number; the file descriptor.
1818
3087
  *
@@ -2406,6 +3675,22 @@ declare class Module {
2406
3675
  * enumerable properties of `obj`.
2407
3676
  */
2408
3677
  static define(name: string, obj: { [key: string]: any }): void;
3678
+
3679
+ /**
3680
+ * Resolves a require/import request from `fromFile` into a canonicalized path.
3681
+ *
3682
+ * To change native module resolution behavior, replace this function with
3683
+ * your own implementation.
3684
+ */
3685
+ static resolve(name: string, fromFile: string): string;
3686
+
3687
+ /**
3688
+ * Reads the contents of the given resolved module name into a string.
3689
+ *
3690
+ * To change native module loading behavior, replace this function with your
3691
+ * own implementation.
3692
+ */
3693
+ static read(modulePath: string): string;
2409
3694
  }
2410
3695
 
2411
3696
  /**
@@ -2440,15 +3725,15 @@ declare class Module {
2440
3725
  * will use those, too. It will search in the same order as the strings appear
2441
3726
  * in the `Module.searchExtensions` array.
2442
3727
  */
2443
- declare var require: ((source: string) => { [key: string]: any }) & {
3728
+ declare var require: ((source: string) => any) & {
2444
3729
  /**
2445
3730
  * Resolves the normalized path to a modules, relative to the calling file.
2446
3731
  */
2447
3732
  resolve: (source: string) => string;
2448
3733
  };
2449
3734
 
2450
- declare var setTimeout: typeof import("os").setTimeout;
2451
- declare var clearTimeout: typeof import("os").clearTimeout;
3735
+ declare var setTimeout: typeof import("quickjs:os").setTimeout;
3736
+ declare var clearTimeout: typeof import("quickjs:os").clearTimeout;
2452
3737
 
2453
3738
  declare type Interval = { [Symbol.toStringTag]: "Interval" };
2454
3739
 
@@ -2508,3 +3793,42 @@ interface StringConstructor {
2508
3793
  ): Func;
2509
3794
  };
2510
3795
  }
3796
+
3797
+ interface ObjectConstructor {
3798
+ /**
3799
+ * Convert the specified value to a primitive value.
3800
+ *
3801
+ * The provided hint indicates a preferred return type, which may or may not
3802
+ * be respected by the engine.
3803
+ *
3804
+ * See the abstract operation "ToPrimitive" in the ECMAScript standard for
3805
+ * more info.
3806
+ */
3807
+ toPrimitive(
3808
+ input: any,
3809
+ hint: "string" | "number" | "default"
3810
+ ): string | number | bigint | boolean | undefined | symbol | null;
3811
+ }
3812
+
3813
+ interface SymbolConstructor {
3814
+ /**
3815
+ * A method that changes the result of using the `typeof` operator on the
3816
+ * object. Called by the semantics of the typeof operator.
3817
+ *
3818
+ * Note that the following semantics will come into play when use of the
3819
+ * `typeof` operator causes the engine to call a `Symbol.typeofValue` method
3820
+ * on an object:
3821
+ *
3822
+ * - If the method returns any value other than one of the string values
3823
+ * which are normally the result of using the `typeof` operator, the engine
3824
+ * behaves as if no `Symbol.typeofValue` method was present on the object.
3825
+ * - If an error is thrown from this method, or an error is thrown while
3826
+ * accessing this property, the error will be silently ignored, and the
3827
+ * engine will behave as if no `Symbol.typeofValue` method was present on
3828
+ * the object.
3829
+ * - If this property is present on an object, but the value of that property
3830
+ * is not a function, the engine will not consider that value when
3831
+ * determining the result of the `typeof` operation (it'll ignore it).
3832
+ */
3833
+ readonly typeofValue: unique symbol;
3834
+ }