is-kit 1.6.4 → 1.7.1

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
@@ -166,7 +166,7 @@ Use `not(...)` when you want the complement of an existing guard or refinement.
166
166
  Use `struct` for plain-object payloads. Keys are required by default.
167
167
 
168
168
  ```ts
169
- import { isNumber, isString, optionalKey, struct } from 'is-kit';
169
+ import { isNumber, isString, optional, optionalKey, struct } from 'is-kit';
170
170
 
171
171
  const isProfile = struct(
172
172
  {
@@ -176,14 +176,6 @@ const isProfile = struct(
176
176
  },
177
177
  { exact: true }
178
178
  );
179
- ```
180
-
181
- `optionalKey(guard)` means the property may be missing.
182
-
183
- If the property must exist but the value may be `undefined`, use `optional(guard)` instead.
184
-
185
- ```ts
186
- import { isString, optional, optionalKey, struct } from 'is-kit';
187
179
 
188
180
  const isConfig = struct({
189
181
  label: isString,
@@ -192,6 +184,12 @@ const isConfig = struct({
192
184
  });
193
185
  ```
194
186
 
187
+ `optionalKey(guard)` means the property may be missing.
188
+
189
+ Use `struct(schema, { exact: true })` when extra keys should be rejected.
190
+
191
+ If the property must exist but the value may be `undefined`, use `optional(guard)` instead.
192
+
195
193
  ### 5. Validate arrays, tuples, maps, sets, and records
196
194
 
197
195
  Collection combinators keep your element guards reusable.
@@ -202,12 +200,14 @@ import {
202
200
  isNumber,
203
201
  isString,
204
202
  mapOf,
203
+ nonEmptyArrayOf,
205
204
  recordOf,
206
205
  setOf,
207
206
  tupleOf
208
207
  } from 'is-kit';
209
208
 
210
209
  const isStringArray = arrayOf(isString);
210
+ const isNonEmptyTagList = nonEmptyArrayOf(isString);
211
211
  const isPoint = tupleOf(isNumber, isNumber);
212
212
  const isTagSet = setOf(isString);
213
213
  const isScoreMap = mapOf(isString, isNumber);
@@ -356,7 +356,7 @@ The library is organized around a few small building blocks:
356
356
  - **Primitives**: `isString`, `isNumber`, `isBoolean`, `isInteger`, ...
357
357
  - **Composition**: `define`, `and`, `andAll`, `or`, `not`, `oneOf`
358
358
  - **Object shapes**: `struct`, `optionalKey`, `hasKey`, `hasKeys`, `narrowKeyTo`
359
- - **Collections**: `arrayOf`, `tupleOf`, `setOf`, `mapOf`, `recordOf`
359
+ - **Collections**: `arrayOf`, `nonEmptyArrayOf`, `tupleOf`, `setOf`, `mapOf`, `recordOf`
360
360
  - **Literals**: `oneOfValues`, `equals`, `equalsBy`, `equalsKey`
361
361
  - **Nullish handling**: `nullable`, `nonNull`, `nullish`, `optional`, `required`
362
362
  - **Result helpers**: `safeParse`, `safeParseWith`, `assert`
package/dist/index.d.mts CHANGED
@@ -50,6 +50,17 @@ type InferSchema<S extends Schema> = Simplify<{
50
50
  readonly [K in OptionalSchemaKeys<S>]?: InferSchemaField<S[K]>;
51
51
  }>;
52
52
 
53
+ /**
54
+ * Asserts that a value satisfies a guard or refinement, otherwise throws.
55
+ *
56
+ * @param guard Guard/refinement to evaluate.
57
+ * @param value Value to assert.
58
+ * @param message Optional error message when assertion fails.
59
+ * @returns Nothing when assertion passes; throws an `Error` on failure.
60
+ */
61
+ declare function assert<T>(guard: Guard<T>, value: unknown, message?: string): asserts value is T;
62
+ declare function assert<A, B extends A>(refine: Refine<A, B>, value: A, message?: string): asserts value is B;
63
+
53
64
  /**
54
65
  * Wraps a user function as a typed predicate.
55
66
  *
@@ -63,23 +74,58 @@ declare function define<T>(fn: (value: unknown) => value is T): Predicate<T>;
63
74
  declare function define<T>(fn: (value: unknown) => boolean): Predicate<T>;
64
75
 
65
76
  /**
66
- * Converts a boolean predicate into a refinement preserving the input type.
77
+ * Creates a guard that matches values equal to the provided target using `Object.is` semantics.
67
78
  *
68
- * @param fn Boolean-returning function over a value of type A.
69
- * @returns Refinement equivalent to the provided predicate.
79
+ * @param target Target value to compare against.
80
+ * @returns Predicate narrowing to the exact literal type of `target`.
70
81
  */
71
- declare const predicateToRefine: <A>(fn: (value: A) => boolean) => Refine<A, A>;
82
+ declare function equals<const T>(target: T): Predicate<T>;
83
+ /**
84
+ * Creates a comparator builder based on a guard and selector.
85
+ * Useful for checking whether a selected key or projection equals a target value.
86
+ *
87
+ * @param guard Guard for the base type before selecting a field.
88
+ * @param selector Optional selector to project the comparable key; if omitted, returns a function to supply it later.
89
+ * @returns Function that accepts a target and returns a predicate over the original value.
90
+ */
91
+ declare function equalsBy<F extends Predicate<unknown>>(guard: F): <K>(selector: (value: GuardedOf<F>) => K) => <const T extends K>(target: T) => Predicate<GuardedOf<F>>;
92
+ declare function equalsBy<F extends Predicate<unknown>, K>(guard: F, selector: (value: GuardedOf<F>) => K): <const T extends K>(target: T) => Predicate<GuardedOf<F>>;
93
+ /**
94
+ * Creates a guard that matches objects having a key equal to the target value.
95
+ *
96
+ * @param key Property key to compare.
97
+ * @param target Value to compare using `Object.is`.
98
+ * @returns Predicate narrowing to objects where `key` exists and equals `target`.
99
+ */
100
+ declare function equalsKey<K extends PropertyKey, const T>(key: K, target: T): <A extends Record<K, unknown>>(input: unknown) => input is A & Record<K, T>;
72
101
 
73
102
  /**
74
- * Asserts that a value satisfies a guard or refinement, otherwise throws.
103
+ * Checks whether a value has the specified own key.
75
104
  *
76
- * @param guard Guard/refinement to evaluate.
77
- * @param value Value to assert.
78
- * @param message Optional error message when assertion fails.
79
- * @returns Nothing when assertion passes; throws an `Error` on failure.
105
+ * @param key Property key to check.
106
+ * @returns Predicate narrowing to an object with the key present.
80
107
  */
81
- declare function assert<T>(guard: Guard<T>, value: unknown, message?: string): asserts value is T;
82
- declare function assert<A, B extends A>(refine: Refine<A, B>, value: A, message?: string): asserts value is B;
108
+ declare const hasKey: <K extends PropertyKey>(key: K) => Predicate<Record<K, unknown>>;
109
+ /**
110
+ * Checks whether a value has all specified own keys.
111
+ *
112
+ * @param keys Property keys to check.
113
+ * @returns Predicate narrowing to an object with all keys present.
114
+ */
115
+ declare const hasKeys: <const KS extends readonly [PropertyKey, ...PropertyKey[]]>(...keys: KS) => Predicate<Record<KS[number], unknown>>;
116
+ /**
117
+ * Builds a guard that narrows a specific key to the provided literal value.
118
+ *
119
+ * Given a base guard and a property key, returns a function that accepts a
120
+ * target value and produces a guard of the base type intersected with
121
+ * `{ [key]: target }`.
122
+ *
123
+ * @param guard Base guard for objects that include `key`.
124
+ * @param key Property key to narrow.
125
+ * @returns Builder that takes a literal `target` and returns a guard that
126
+ * narrows `key` to that literal.
127
+ */
128
+ declare function narrowKeyTo<A, K extends keyof A>(guard: Guard<A>, key: K): <const T extends A[K]>(target: T) => Predicate<A & Record<K, T>>;
83
129
 
84
130
  /**
85
131
  * Combines a precondition guard with an additional refinement to narrow the type.
@@ -162,32 +208,6 @@ declare function optional<A, B extends A>(refine: Refine<A, B>): Refine<A | unde
162
208
  declare function required<T>(guard: Guard<T | undefined>): Guard<T>;
163
209
  declare function required<A, B extends A>(refine: Refine<A | undefined, B | undefined>): Refine<A, B>;
164
210
 
165
- /**
166
- * Creates a guard that matches values equal to the provided target using `Object.is` semantics.
167
- *
168
- * @param target Target value to compare against.
169
- * @returns Predicate narrowing to the exact literal type of `target`.
170
- */
171
- declare function equals<const T>(target: T): Predicate<T>;
172
- /**
173
- * Creates a comparator builder based on a guard and selector.
174
- * Useful for checking whether a selected key or projection equals a target value.
175
- *
176
- * @param guard Guard for the base type before selecting a field.
177
- * @param selector Optional selector to project the comparable key; if omitted, returns a function to supply it later.
178
- * @returns Function that accepts a target and returns a predicate over the original value.
179
- */
180
- declare function equalsBy<F extends Predicate<unknown>>(guard: F): <K>(selector: (value: GuardedOf<F>) => K) => <const T extends K>(target: T) => Predicate<GuardedOf<F>>;
181
- declare function equalsBy<F extends Predicate<unknown>, K>(guard: F, selector: (value: GuardedOf<F>) => K): <const T extends K>(target: T) => Predicate<GuardedOf<F>>;
182
- /**
183
- * Creates a guard that matches objects having a key equal to the target value.
184
- *
185
- * @param key Property key to compare.
186
- * @param target Value to compare using `Object.is`.
187
- * @returns Predicate narrowing to objects where `key` exists and equals `target`.
188
- */
189
- declare function equalsKey<K extends PropertyKey, const T>(key: K, target: T): <A extends Record<K, unknown>>(input: unknown) => input is A & Record<K, T>;
190
-
191
211
  /**
192
212
  * Executes a guard or refinement and returns a tagged result with the value when valid.
193
213
  *
@@ -207,6 +227,14 @@ declare function safeParse(fn: (value: unknown) => boolean, value: unknown): Par
207
227
  declare function safeParseWith<T>(guard: Guard<T>): (value: unknown) => ParseResult<T>;
208
228
  declare function safeParseWith<A, B extends A>(refine: Refine<A, B>): (value: A) => ParseResult<B>;
209
229
 
230
+ /**
231
+ * Converts a boolean predicate into a refinement preserving the input type.
232
+ *
233
+ * @param fn Boolean-returning function over a value of type A.
234
+ * @returns Refinement equivalent to the provided predicate.
235
+ */
236
+ declare const predicateToRefine: <A>(fn: (value: A) => boolean) => Refine<A, A>;
237
+
210
238
  /**
211
239
  * Checks whether a value is a string.
212
240
  *
@@ -317,94 +345,6 @@ declare const isNull: Predicate<null>;
317
345
  */
318
346
  declare const isPrimitive: Guard<string | number | bigint | boolean | symbol | null | undefined>;
319
347
 
320
- /**
321
- * Validates an array where every element satisfies the provided guard.
322
- *
323
- * @param elementGuard Guard applied to each array element.
324
- * @returns Predicate narrowing to a readonly array of the guarded element type.
325
- */
326
- declare function arrayOf<F extends Predicate<unknown>>(elementGuard: F): Predicate<readonly GuardedOf<F>[]>;
327
-
328
- /**
329
- * Validates a set where every value satisfies the provided guard.
330
- *
331
- * @param valueGuard Guard applied to each set value.
332
- * @returns Predicate narrowing to a readonly set of the guarded value type.
333
- */
334
- declare function setOf<VF extends Predicate<unknown>>(valueGuard: VF): Predicate<ReadonlySet<GuardedOf<VF>>>;
335
-
336
- /**
337
- * Validates a map where every key and value satisfies the provided guards.
338
- *
339
- * @param keyGuard Guard applied to each map key.
340
- * @param valueGuard Guard applied to each map value.
341
- * @returns Predicate narrowing to a readonly map with guarded key/value types.
342
- */
343
- declare function mapOf<KF extends Predicate<unknown>, VF extends Predicate<unknown>>(keyGuard: KF, valueGuard: VF): Predicate<ReadonlyMap<GuardedOf<KF>, GuardedOf<VF>>>;
344
-
345
- /**
346
- * Validates a fixed-length tuple by applying element-wise guards.
347
- *
348
- * @param guards Guards corresponding to each tuple position.
349
- * @returns Predicate that narrows to a readonly tuple of guarded element types.
350
- */
351
- declare function tupleOf<const Fs extends readonly Predicate<unknown>[]>(...guards: Fs): Predicate<{
352
- readonly [K in keyof Fs]: GuardedOf<Fs[K]>;
353
- }>;
354
-
355
- /**
356
- * Combines multiple guards; passes when any one guard matches.
357
- *
358
- * @param guards One or more type guards/refinements to try.
359
- * @returns Predicate that narrows to the union of guarded types.
360
- */
361
- declare function oneOf<Fs extends readonly Predicate<unknown>[]>(...guards: Fs): Predicate<GuardedOf<Fs[number]>>;
362
- declare function oneOf<A, Fs extends readonly Predicate<A>[]>(...guards: Fs): (input: A) => input is GuardedWithin<Fs, A>;
363
-
364
- /**
365
- * Validates a record-like object by guarding both keys and values.
366
- *
367
- * @param keyFunction Guard for string keys (e.g., specific literal keys pattern).
368
- * @param valueFunction Guard applied to each value in the record.
369
- * @returns Predicate narrowing to a readonly record with guarded key/value types.
370
- */
371
- declare function recordOf<KF extends Predicate<string>, VF extends Predicate<unknown>>(keyFunction: KF, valueFunction: VF): Predicate<Readonly<Record<GuardedOf<KF>, GuardedOf<VF>>>>;
372
-
373
- /**
374
- * Marks a struct schema field as optional at the key level.
375
- *
376
- * When used inside `struct`, the property may be absent. If the property exists,
377
- * its value must satisfy the wrapped guard.
378
- *
379
- * @param guard Guard used to validate the property value when the key exists.
380
- * @returns Schema field marker understood by `struct`.
381
- */
382
- declare function optionalKey<G extends Predicate<unknown>>(guard: G): OptionalSchemaField<G>;
383
- /**
384
- * Validates an object against a field-to-guard schema.
385
- * Keys in the schema are required unless wrapped with `optionalKey`; optionally
386
- * rejects extra keys when `exact: true`.
387
- *
388
- * @param schema Record of property guards.
389
- * @param options When `{ exact: true }`, disallows properties not in `schema`.
390
- * @returns Predicate that narrows to the inferred struct type.
391
- */
392
- declare function struct<S extends Schema>(schema: S, options?: {
393
- exact?: boolean;
394
- }): Predicate<InferSchema<S>>;
395
-
396
- /**
397
- * Creates a guard that matches when the input is one of the provided literal values.
398
- * Uses `Object.is` for exact value semantics. For large sets, keeps O(1) lookups while
399
- * preserving `+0` vs `-0` by tracking zero variants explicitly in addition to a `Set`.
400
- *
401
- * @param values Literal primitives to compare against (varargs or single readonly tuple array).
402
- * @returns Predicate narrowing to the union of the provided literal values.
403
- */
404
- declare function oneOfValues<const T extends ReadonlyArray<Primitive>>(...values: T): Predicate<T[number]>;
405
- declare function oneOfValues<const T extends ReadonlyArray<Primitive>>(values: T): Predicate<T[number]>;
406
- declare function oneOfValues<const T extends ReadonlyArray<Primitive>>(...valuesOrArray: T | [T]): Predicate<T[number]>;
407
-
408
348
  /**
409
349
  * Checks whether a value is a function.
410
350
  *
@@ -528,32 +468,99 @@ declare const isBlob: Predicate<Blob>;
528
468
  declare const isInstanceOf: <C extends abstract new (...args: unknown[]) => unknown>(constructor: C) => Guard<InstanceType<C>>;
529
469
 
530
470
  /**
531
- * Checks whether a value has the specified own key.
471
+ * Validates an array where every element satisfies the provided guard.
532
472
  *
533
- * @param key Property key to check.
534
- * @returns Predicate narrowing to an object with the key present.
473
+ * @param elementGuard Guard applied to each array element.
474
+ * @returns Predicate narrowing to a readonly array of the guarded element type.
535
475
  */
536
- declare const hasKey: <K extends PropertyKey>(key: K) => Predicate<Record<K, unknown>>;
476
+ declare function arrayOf<F extends Predicate<unknown>>(elementGuard: F): Predicate<readonly GuardedOf<F>[]>;
537
477
  /**
538
- * Checks whether a value has all specified own keys.
478
+ * Validates a non-empty array where every element satisfies the provided guard.
539
479
  *
540
- * @param keys Property keys to check.
541
- * @returns Predicate narrowing to an object with all keys present.
480
+ * @param elementGuard Guard applied to each array element.
481
+ * @returns Predicate narrowing to a readonly non-empty array of the guarded element type.
542
482
  */
543
- declare const hasKeys: <const KS extends readonly [PropertyKey, ...PropertyKey[]]>(...keys: KS) => Predicate<Record<KS[number], unknown>>;
483
+ declare function nonEmptyArrayOf<F extends Predicate<unknown>>(elementGuard: F): Predicate<readonly [GuardedOf<F>, ...GuardedOf<F>[]]>;
484
+
544
485
  /**
545
- * Builds a guard that narrows a specific key to the provided literal value.
486
+ * Validates a map where every key and value satisfies the provided guards.
546
487
  *
547
- * Given a base guard and a property key, returns a function that accepts a
548
- * target value and produces a guard of the base type intersected with
549
- * `{ [key]: target }`.
488
+ * @param keyGuard Guard applied to each map key.
489
+ * @param valueGuard Guard applied to each map value.
490
+ * @returns Predicate narrowing to a readonly map with guarded key/value types.
491
+ */
492
+ declare function mapOf<KF extends Predicate<unknown>, VF extends Predicate<unknown>>(keyGuard: KF, valueGuard: VF): Predicate<ReadonlyMap<GuardedOf<KF>, GuardedOf<VF>>>;
493
+
494
+ /**
495
+ * Combines multiple guards; passes when any one guard matches.
550
496
  *
551
- * @param guard Base guard for objects that include `key`.
552
- * @param key Property key to narrow.
553
- * @returns Builder that takes a literal `target` and returns a guard that
554
- * narrows `key` to that literal.
497
+ * @param guards One or more type guards/refinements to try.
498
+ * @returns Predicate that narrows to the union of guarded types.
555
499
  */
556
- declare function narrowKeyTo<A, K extends keyof A>(guard: Guard<A>, key: K): <const T extends A[K]>(target: T) => Predicate<A & Record<K, T>>;
500
+ declare function oneOf<Fs extends readonly Predicate<unknown>[]>(...guards: Fs): Predicate<GuardedOf<Fs[number]>>;
501
+ declare function oneOf<A, Fs extends readonly Predicate<A>[]>(...guards: Fs): (input: A) => input is GuardedWithin<Fs, A>;
502
+
503
+ /**
504
+ * Creates a guard that matches when the input is one of the provided literal values.
505
+ * Uses `Object.is` for exact value semantics. For large sets, keeps O(1) lookups while
506
+ * preserving `+0` vs `-0` by tracking zero variants explicitly in addition to a `Set`.
507
+ *
508
+ * @param values Literal primitives to compare against (varargs or single readonly tuple array).
509
+ * @returns Predicate narrowing to the union of the provided literal values.
510
+ */
511
+ declare function oneOfValues<const T extends ReadonlyArray<Primitive>>(...values: T): Predicate<T[number]>;
512
+ declare function oneOfValues<const T extends ReadonlyArray<Primitive>>(values: T): Predicate<T[number]>;
513
+ declare function oneOfValues<const T extends ReadonlyArray<Primitive>>(...valuesOrArray: T | [T]): Predicate<T[number]>;
514
+
515
+ /**
516
+ * Validates a record-like object by guarding both keys and values.
517
+ *
518
+ * @param keyFunction Guard for string keys (e.g., specific literal keys pattern).
519
+ * @param valueFunction Guard applied to each value in the record.
520
+ * @returns Predicate narrowing to a readonly record with guarded key/value types.
521
+ */
522
+ declare function recordOf<KF extends Predicate<string>, VF extends Predicate<unknown>>(keyFunction: KF, valueFunction: VF): Predicate<Readonly<Record<GuardedOf<KF>, GuardedOf<VF>>>>;
523
+
524
+ /**
525
+ * Validates a set where every value satisfies the provided guard.
526
+ *
527
+ * @param valueGuard Guard applied to each set value.
528
+ * @returns Predicate narrowing to a readonly set of the guarded value type.
529
+ */
530
+ declare function setOf<VF extends Predicate<unknown>>(valueGuard: VF): Predicate<ReadonlySet<GuardedOf<VF>>>;
531
+
532
+ /**
533
+ * Marks a struct schema field as optional at the key level.
534
+ *
535
+ * When used inside `struct`, the property may be absent. If the property exists,
536
+ * its value must satisfy the wrapped guard.
537
+ *
538
+ * @param guard Guard used to validate the property value when the key exists.
539
+ * @returns Schema field marker understood by `struct`.
540
+ */
541
+ declare function optionalKey<G extends Predicate<unknown>>(guard: G): OptionalSchemaField<G>;
542
+ /**
543
+ * Validates an object against a field-to-guard schema.
544
+ * Keys in the schema are required unless wrapped with `optionalKey`; optionally
545
+ * rejects extra keys when `exact: true`.
546
+ *
547
+ * @param schema Record of property guards.
548
+ * @param options When `{ exact: true }`, disallows properties not in `schema`.
549
+ * @returns Predicate that narrows to the inferred struct type.
550
+ */
551
+ declare function struct<S extends Schema>(schema: S, options?: {
552
+ exact?: boolean;
553
+ }): Predicate<InferSchema<S>>;
554
+
555
+ /**
556
+ * Validates a fixed-length tuple by applying element-wise guards.
557
+ *
558
+ * @param guards Guards corresponding to each tuple position.
559
+ * @returns Predicate that narrows to a readonly tuple of guarded element types.
560
+ */
561
+ declare function tupleOf<const Fs extends readonly Predicate<unknown>[]>(...guards: Fs): Predicate<{
562
+ readonly [K in keyof Fs]: GuardedOf<Fs[K]>;
563
+ }>;
557
564
 
558
565
  /**
559
566
  * Checks whether every array element satisfies the provided predicate.
@@ -606,4 +613,4 @@ declare const everyOwnEnumerableEntry: (values: Record<string, unknown>, keyPred
606
613
  */
607
614
  declare const toBooleanPredicates: <A>(predicates: readonly ((value: A) => boolean)[]) => ReadonlyArray<(value: A) => boolean>;
608
615
 
609
- export { type ChainResult, type Guard, type GuardedOf, type GuardedWithin, type InferSchema, type OptionalSchemaField, type OutOfGuards, type ParseResult, type Predicate, type Primitive, type Refine, type RefineChain, type Refinement, type Schema, type SchemaField, and, andAll, arrayOf, assert, define, equals, equalsBy, equalsKey, everyArrayValue, everyMapEntry, everyOwnEnumerableEntry, everySetValue, everyTupleValue, guardIn, hasKey, hasKeys, isArray, isArrayBuffer, isAsyncIterable, isBigInt, isBlob, isBoolean, isDataView, isDate, isError, isFiniteNumber, isFunction, isInfiniteNumber, isInstanceOf, isInteger, isIterable, isMap, isNaN, isNegative, isNull, isNumber, isNumberPrimitive, isObject, isPlainObject, isPositive, isPrimitive, isPromiseLike, isRegExp, isSafeInteger, isSet, isString, isSymbol, isTypedArray, isURL, isUndefined, isWeakMap, isWeakSet, isZero, mapOf, narrowKeyTo, nonNull, not, nullable, nullish, oneOf, oneOfValues, optional, optionalKey, or, predicateToRefine, recordOf, required, safeParse, safeParseWith, setOf, struct, toBooleanPredicates, tupleOf };
616
+ export { type ChainResult, type Guard, type GuardedOf, type GuardedWithin, type InferSchema, type OptionalSchemaField, type OutOfGuards, type ParseResult, type Predicate, type Primitive, type Refine, type RefineChain, type Refinement, type Schema, type SchemaField, and, andAll, arrayOf, assert, define, equals, equalsBy, equalsKey, everyArrayValue, everyMapEntry, everyOwnEnumerableEntry, everySetValue, everyTupleValue, guardIn, hasKey, hasKeys, isArray, isArrayBuffer, isAsyncIterable, isBigInt, isBlob, isBoolean, isDataView, isDate, isError, isFiniteNumber, isFunction, isInfiniteNumber, isInstanceOf, isInteger, isIterable, isMap, isNaN, isNegative, isNull, isNumber, isNumberPrimitive, isObject, isPlainObject, isPositive, isPrimitive, isPromiseLike, isRegExp, isSafeInteger, isSet, isString, isSymbol, isTypedArray, isURL, isUndefined, isWeakMap, isWeakSet, isZero, mapOf, narrowKeyTo, nonEmptyArrayOf, nonNull, not, nullable, nullish, oneOf, oneOfValues, optional, optionalKey, or, predicateToRefine, recordOf, required, safeParse, safeParseWith, setOf, struct, toBooleanPredicates, tupleOf };