bupkis 0.3.0 → 0.4.0
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/CHANGELOG.md +12 -0
- package/README.md +26 -2
- package/dist/commonjs/assertion/impl/async.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/async.js +6 -2
- package/dist/commonjs/assertion/impl/async.js.map +1 -1
- package/dist/commonjs/assertion/impl/callback.js +2 -2
- package/dist/commonjs/assertion/impl/callback.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-basic.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-basic.js +1 -1
- package/dist/commonjs/assertion/impl/sync-basic.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-collection.d.ts +1 -1
- package/dist/commonjs/assertion/impl/sync-collection.js +3 -3
- package/dist/commonjs/assertion/impl/sync-collection.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-parametric.d.ts +5 -14
- package/dist/commonjs/assertion/impl/sync-parametric.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-parametric.js +5 -5
- package/dist/commonjs/assertion/impl/sync-parametric.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync.d.ts +6 -15
- package/dist/commonjs/assertion/impl/sync.d.ts.map +1 -1
- package/dist/commonjs/bootstrap.d.ts +6 -15
- package/dist/commonjs/bootstrap.d.ts.map +1 -1
- package/dist/commonjs/constant.d.ts +1 -1
- package/dist/commonjs/constant.d.ts.map +1 -1
- package/dist/commonjs/constant.js +2 -1
- package/dist/commonjs/constant.js.map +1 -1
- package/dist/commonjs/guards.d.ts +74 -1
- package/dist/commonjs/guards.d.ts.map +1 -1
- package/dist/commonjs/guards.js +78 -1
- package/dist/commonjs/guards.js.map +1 -1
- package/dist/commonjs/index.d.ts +7 -16
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/schema.d.ts +66 -10
- package/dist/commonjs/schema.d.ts.map +1 -1
- package/dist/commonjs/schema.js +87 -12
- package/dist/commonjs/schema.js.map +1 -1
- package/dist/commonjs/types.d.ts +132 -1
- package/dist/commonjs/types.d.ts.map +1 -1
- package/dist/commonjs/use.d.ts.map +1 -1
- package/dist/commonjs/use.js +15 -1
- package/dist/commonjs/use.js.map +1 -1
- package/dist/commonjs/value-to-schema.d.ts.map +1 -1
- package/dist/commonjs/value-to-schema.js +20 -0
- package/dist/commonjs/value-to-schema.js.map +1 -1
- package/dist/esm/assertion/impl/async.d.ts.map +1 -1
- package/dist/esm/assertion/impl/async.js +7 -3
- package/dist/esm/assertion/impl/async.js.map +1 -1
- package/dist/esm/assertion/impl/callback.js +3 -3
- package/dist/esm/assertion/impl/callback.js.map +1 -1
- package/dist/esm/assertion/impl/sync-basic.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-basic.js +2 -2
- package/dist/esm/assertion/impl/sync-basic.js.map +1 -1
- package/dist/esm/assertion/impl/sync-collection.d.ts +1 -1
- package/dist/esm/assertion/impl/sync-collection.js +3 -3
- package/dist/esm/assertion/impl/sync-collection.js.map +1 -1
- package/dist/esm/assertion/impl/sync-parametric.d.ts +5 -14
- package/dist/esm/assertion/impl/sync-parametric.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-parametric.js +6 -6
- package/dist/esm/assertion/impl/sync-parametric.js.map +1 -1
- package/dist/esm/assertion/impl/sync.d.ts +6 -15
- package/dist/esm/assertion/impl/sync.d.ts.map +1 -1
- package/dist/esm/bootstrap.d.ts +6 -15
- package/dist/esm/bootstrap.d.ts.map +1 -1
- package/dist/esm/constant.d.ts +1 -1
- package/dist/esm/constant.d.ts.map +1 -1
- package/dist/esm/constant.js +1 -0
- package/dist/esm/constant.js.map +1 -1
- package/dist/esm/guards.d.ts +74 -1
- package/dist/esm/guards.d.ts.map +1 -1
- package/dist/esm/guards.js +76 -0
- package/dist/esm/guards.js.map +1 -1
- package/dist/esm/index.d.ts +7 -16
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/schema.d.ts +66 -10
- package/dist/esm/schema.d.ts.map +1 -1
- package/dist/esm/schema.js +87 -12
- package/dist/esm/schema.js.map +1 -1
- package/dist/esm/types.d.ts +132 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/use.d.ts.map +1 -1
- package/dist/esm/use.js +15 -1
- package/dist/esm/use.js.map +1 -1
- package/dist/esm/value-to-schema.d.ts.map +1 -1
- package/dist/esm/value-to-schema.js +21 -1
- package/dist/esm/value-to-schema.js.map +1 -1
- package/package.json +1 -1
- package/src/assertion/impl/async.ts +7 -3
- package/src/assertion/impl/callback.ts +3 -3
- package/src/assertion/impl/sync-basic.ts +5 -2
- package/src/assertion/impl/sync-collection.ts +3 -3
- package/src/assertion/impl/sync-parametric.ts +7 -6
- package/src/constant.ts +2 -0
- package/src/guards.ts +81 -1
- package/src/index.ts +2 -0
- package/src/schema.ts +99 -12
- package/src/types.ts +165 -2
- package/src/use.ts +22 -0
- package/src/value-to-schema.ts +25 -0
|
@@ -14,7 +14,7 @@ declare const
|
|
|
14
14
|
*
|
|
15
15
|
* @function
|
|
16
16
|
*/
|
|
17
|
-
expect: Expect<readonly [import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").
|
|
17
|
+
expect: Expect<readonly [import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodCustom<Map<unknown, unknown>, Map<unknown, unknown>>, readonly ["to contain", "to include"], import("zod/v4").ZodAny], (subject: Map<unknown, unknown>, key: any) => boolean, readonly [import("zod/v4").ZodCustom<Map<unknown, unknown>, Map<unknown, unknown>>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to contain", "to include"]>, import("zod/v4").ZodAny]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodCustom<Map<unknown, unknown>, Map<unknown, unknown>>, "to have size", import("zod/v4").ZodNumber], (subject: Map<unknown, unknown>, expectedSize: number) => boolean, readonly [import("zod/v4").ZodCustom<Map<unknown, unknown>, Map<unknown, unknown>>, import("./types.js").PhraseLiteralSlot<"to have size">, import("zod/v4").ZodNumber]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodCustom<Map<unknown, unknown>, Map<unknown, unknown>>, "to be empty"], (subject: Map<unknown, unknown>) => boolean, readonly [import("zod/v4").ZodCustom<Map<unknown, unknown>, Map<unknown, unknown>>, import("./types.js").PhraseLiteralSlot<"to be empty">]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodCustom<Set<unknown>, Set<unknown>>, readonly ["to contain", "to include"], import("zod/v4").ZodAny], (subject: Set<unknown>, value: any) => boolean, readonly [import("zod/v4").ZodCustom<Set<unknown>, Set<unknown>>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to contain", "to include"]>, import("zod/v4").ZodAny]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodCustom<Set<unknown>, Set<unknown>>, "to have size", import("zod/v4").ZodNumber], (subject: Set<unknown>, expectedSize: number) => boolean, readonly [import("zod/v4").ZodCustom<Set<unknown>, Set<unknown>>, import("./types.js").PhraseLiteralSlot<"to have size">, import("zod/v4").ZodNumber]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodCustom<Set<unknown>, Set<unknown>>, "to be empty"], (subject: Set<unknown>) => boolean, readonly [import("zod/v4").ZodCustom<Set<unknown>, Set<unknown>>, import("./types.js").PhraseLiteralSlot<"to be empty">]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodCustom<WeakMap<WeakKey, unknown>, WeakMap<WeakKey, unknown>>, readonly ["to contain", "to include"], import("zod/v4").ZodAny], (subject: WeakMap<WeakKey, unknown>, key: any) => boolean, readonly [import("zod/v4").ZodCustom<WeakMap<WeakKey, unknown>, WeakMap<WeakKey, unknown>>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to contain", "to include"]>, import("zod/v4").ZodAny]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodCustom<WeakSet<WeakKey>, WeakSet<WeakKey>>, readonly ["to contain", "to include"], import("zod/v4").ZodAny], (subject: WeakSet<WeakKey>, value: any) => boolean, readonly [import("zod/v4").ZodCustom<WeakSet<WeakKey>, WeakSet<WeakKey>>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to contain", "to include"]>, import("zod/v4").ZodAny]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodAny>, readonly ["to contain", "to include"], import("zod/v4").ZodAny], (subject: any[], value: any) => boolean, readonly [import("zod/v4").ZodArray<import("zod/v4").ZodAny>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to contain", "to include"]>, import("zod/v4").ZodAny]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodAny>, "to have size", import("zod/v4").ZodNumber], (subject: any[], expectedSize: number) => boolean, readonly [import("zod/v4").ZodArray<import("zod/v4").ZodAny>, import("./types.js").PhraseLiteralSlot<"to have size">, import("zod/v4").ZodNumber]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodAny>, "to have length", import("zod/v4").ZodNumber], (subject: any[], expectedLength: number) => boolean, readonly [import("zod/v4").ZodArray<import("zod/v4").ZodAny>, import("./types.js").PhraseLiteralSlot<"to have length">, import("zod/v4").ZodNumber]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodAny>, "to be non-empty"], (subject: any[]) => {
|
|
18
18
|
actual: number;
|
|
19
19
|
expected: string;
|
|
20
20
|
message: string;
|
|
@@ -123,25 +123,16 @@ expect: Expect<readonly [import("./types.js").AssertionFunctionSync<readonly [im
|
|
|
123
123
|
actual: string;
|
|
124
124
|
expected: string;
|
|
125
125
|
message: string;
|
|
126
|
-
} | undefined, readonly [import("zod/v4").ZodString, import("./types.js").PhraseLiteralChoiceSlot<readonly ["includes", "contains", "to include", "to contain"]>, import("zod/v4").ZodString]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodString, "to match", import("zod/v4").ZodCustom<RegExp, RegExp>], (subject: string, regex: RegExp) => boolean, readonly [import("zod/v4").ZodString, import("./types.js").PhraseLiteralSlot<"to match">, import("zod/v4").ZodCustom<RegExp, RegExp>]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodNonOptional<import("zod/v4").ZodObject<{}, import("zod/v4/core").$loose>>, readonly ["to satisfy", "to be like"], import("zod/v4").
|
|
126
|
+
} | undefined, readonly [import("zod/v4").ZodString, import("./types.js").PhraseLiteralChoiceSlot<readonly ["includes", "contains", "to include", "to contain"]>, import("zod/v4").ZodString]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodString, "to match", import("zod/v4").ZodCustom<RegExp, RegExp>], (subject: string, regex: RegExp) => boolean, readonly [import("zod/v4").ZodString, import("./types.js").PhraseLiteralSlot<"to match">, import("zod/v4").ZodCustom<RegExp, RegExp>]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodNonOptional<import("zod/v4").ZodObject<{}, import("zod/v4/core").$loose>>, readonly ["to satisfy", "to be like"], import("zod/v4").ZodType<import("./types.js").SatisfyPatternValue, unknown, import("zod/v4/core").$ZodTypeInternals<import("./types.js").SatisfyPatternValue, unknown>>], (_subject: {
|
|
127
127
|
[x: string]: unknown;
|
|
128
|
-
}, shape: {
|
|
129
|
-
[x: string]: unknown;
|
|
130
|
-
}) => import("zod/v4").ZodType<any, unknown, import("zod/v4/core").$ZodTypeInternals<any, unknown>>, readonly [import("zod/v4").ZodNonOptional<import("zod/v4").ZodObject<{}, import("zod/v4/core").$loose>>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to satisfy", "to be like"]>, import("zod/v4").ZodObject<{}, import("zod/v4/core").$loose>]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodUnknown>, import("zod/v4").ZodTuple<[import("zod/v4").ZodUnknown], import("zod/v4").ZodUnknown>, import("zod/v4").ZodObject<{
|
|
131
|
-
length: import("zod/v4").ZodNumber;
|
|
132
|
-
}, import("zod/v4/core").$loose>]>, readonly ["to satisfy", "to be like"], import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodUnknown>, import("zod/v4").ZodTuple<[import("zod/v4").ZodUnknown], import("zod/v4").ZodUnknown>, import("zod/v4").ZodObject<{
|
|
128
|
+
}, shape: import("./types.js").SatisfyPatternValue) => import("zod/v4").ZodType<any, unknown, import("zod/v4/core").$ZodTypeInternals<any, unknown>>, readonly [import("zod/v4").ZodNonOptional<import("zod/v4").ZodObject<{}, import("zod/v4/core").$loose>>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to satisfy", "to be like"]>, import("zod/v4").ZodType<import("./types.js").SatisfyPatternValue, unknown, import("zod/v4/core").$ZodTypeInternals<import("./types.js").SatisfyPatternValue, unknown>>]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodUnknown>, import("zod/v4").ZodTuple<[import("zod/v4").ZodUnknown], import("zod/v4").ZodUnknown>, import("zod/v4").ZodObject<{
|
|
133
129
|
length: import("zod/v4").ZodNumber;
|
|
134
|
-
}, import("zod/v4/core").$loose>]
|
|
135
|
-
[x: string]: unknown;
|
|
136
|
-
length: number;
|
|
137
|
-
}, shape: unknown[] | [unknown, ...unknown[]] | {
|
|
130
|
+
}, import("zod/v4/core").$loose>]>, readonly ["to satisfy", "to be like"], import("zod/v4").ZodType<import("./types.js").SatisfyPatternValue, unknown, import("zod/v4/core").$ZodTypeInternals<import("./types.js").SatisfyPatternValue, unknown>>], (_subject: unknown[] | [unknown, ...unknown[]] | {
|
|
138
131
|
[x: string]: unknown;
|
|
139
132
|
length: number;
|
|
140
|
-
}) => import("zod/v4").ZodType<any, unknown, import("zod/v4/core").$ZodTypeInternals<any, unknown>>, readonly [import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodUnknown>, import("zod/v4").ZodTuple<[import("zod/v4").ZodUnknown], import("zod/v4").ZodUnknown>, import("zod/v4").ZodObject<{
|
|
141
|
-
length: import("zod/v4").ZodNumber;
|
|
142
|
-
}, import("zod/v4/core").$loose>]>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to satisfy", "to be like"]>, import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodUnknown>, import("zod/v4").ZodTuple<[import("zod/v4").ZodUnknown], import("zod/v4").ZodUnknown>, import("zod/v4").ZodObject<{
|
|
133
|
+
}, shape: import("./types.js").SatisfyPatternValue) => import("zod/v4").ZodType<any, unknown, import("zod/v4/core").$ZodTypeInternals<any, unknown>>, readonly [import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodUnknown>, import("zod/v4").ZodTuple<[import("zod/v4").ZodUnknown], import("zod/v4").ZodUnknown>, import("zod/v4").ZodObject<{
|
|
143
134
|
length: import("zod/v4").ZodNumber;
|
|
144
|
-
}, import("zod/v4/core").$loose>]
|
|
135
|
+
}, import("zod/v4/core").$loose>]>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to satisfy", "to be like"]>, import("zod/v4").ZodType<import("./types.js").SatisfyPatternValue, unknown, import("zod/v4/core").$ZodTypeInternals<import("./types.js").SatisfyPatternValue, unknown>>]>, import("./types.js").AssertionFunctionSync<readonly [import("zod/v4").ZodCustom<(...args: import("./types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("./types.js").MutableOrReadonly<unknown[]>) => unknown>, "to have arity", import("zod/v4").ZodNumber], (subject: (...args: import("./types.js").MutableOrReadonly<unknown[]>) => unknown, expectedArity: number) => {
|
|
145
136
|
actual: number;
|
|
146
137
|
expected: number;
|
|
147
138
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAwB3D,QAAA;AACE;;;;;GAKG;AACH,MAAM
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAwB3D,QAAA;AACE;;;;;GAKG;AACH,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACN;;;;;GAKG;AACH,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2hBACN,CAAC;AAER,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../../src/constant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
1
|
+
{"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../../src/constant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAqCH,eAAO,MAAM,SAAS,EAAE,OAAO,MAAmC,CAAC"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* @internal
|
|
11
11
|
*/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.kBupkisNegatedAssertionError = exports.kBupkisFailAssertionError = exports.kBupkisAssertionError = exports.kStringLiteral = void 0;
|
|
13
|
+
exports.kExpectIt = exports.kBupkisNegatedAssertionError = exports.kBupkisFailAssertionError = exports.kBupkisAssertionError = exports.kStringLiteral = void 0;
|
|
14
14
|
/**
|
|
15
15
|
* Symbol flagging the value as a Bupkis-created string literal, which will be
|
|
16
16
|
* omitted from the parameters to an `AssertionImpl`.
|
|
@@ -36,4 +36,5 @@ exports.kBupkisFailAssertionError = Symbol('bupkis-fail-error');
|
|
|
36
36
|
* @internal
|
|
37
37
|
*/
|
|
38
38
|
exports.kBupkisNegatedAssertionError = Symbol('bupkis-negated-error');
|
|
39
|
+
exports.kExpectIt = Symbol('bupkis-expect-it');
|
|
39
40
|
//# sourceMappingURL=constant.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/constant.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH;;;;;GAKG;AAEU,QAAA,cAAc,GAAkB,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAE7E;;;;GAIG;AAEU,QAAA,qBAAqB,GAAkB,MAAM,CAAC,cAAc,CAAC,CAAC;AAE3E;;;;GAIG;AACU,QAAA,yBAAyB,GACpC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAE9B;;;;GAIG;AAEU,QAAA,4BAA4B,GAAkB,MAAM,CAC/D,sBAAsB,CACvB,CAAC"}
|
|
1
|
+
{"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/constant.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH;;;;;GAKG;AAEU,QAAA,cAAc,GAAkB,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAE7E;;;;GAIG;AAEU,QAAA,qBAAqB,GAAkB,MAAM,CAAC,cAAc,CAAC,CAAC;AAE3E;;;;GAIG;AACU,QAAA,yBAAyB,GACpC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAE9B;;;;GAIG;AAEU,QAAA,4BAA4B,GAAkB,MAAM,CAC/D,sBAAsB,CACvB,CAAC;AAEW,QAAA,SAAS,GAAkB,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import { type Primitive } from 'type-fest';
|
|
19
19
|
import { z } from 'zod/v4';
|
|
20
|
-
import type { Constructor, ZodTypeMap } from './types.js';
|
|
20
|
+
import type { Constructor, ExpectItExecutor, ZodTypeMap } from './types.js';
|
|
21
21
|
/**
|
|
22
22
|
* Returns `true` if the given value looks like a Zod v4 schema, determined by
|
|
23
23
|
* the presence of an internal {@link z.core.$ZodTypeDef} field.
|
|
@@ -113,6 +113,79 @@ export declare const isNonNullObject: (value: unknown) => value is object;
|
|
|
113
113
|
* @returns `true` if the value is null or not an object, `false` otherwise
|
|
114
114
|
*/
|
|
115
115
|
export declare const isNullOrNonObject: (value: unknown) => value is null | Primitive;
|
|
116
|
+
/**
|
|
117
|
+
* Generic type guard for instanceof checks.
|
|
118
|
+
*
|
|
119
|
+
* This function provides a type-safe way to check if a value is an instance of
|
|
120
|
+
* a given constructor, with proper type narrowing for TypeScript. It combines
|
|
121
|
+
* the null/object check with instanceof to ensure the value is a valid object
|
|
122
|
+
* before performing the instance check.
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
*
|
|
126
|
+
* ```typescript
|
|
127
|
+
* const obj = new Date();
|
|
128
|
+
* if (isA(obj, Date)) {
|
|
129
|
+
* // obj is now typed as Date
|
|
130
|
+
* console.log(obj.getTime());
|
|
131
|
+
* }
|
|
132
|
+
* ```
|
|
133
|
+
*
|
|
134
|
+
* @template T - The constructor type to check against
|
|
135
|
+
* @param value - Value to test
|
|
136
|
+
* @param ctor - Constructor function to check instanceof
|
|
137
|
+
* @returns `true` if the value is an instance of the constructor, `false`
|
|
138
|
+
* otherwise
|
|
139
|
+
*/
|
|
116
140
|
export declare const isA: <T extends Constructor>(value: unknown, ctor: T) => value is InstanceType<T>;
|
|
141
|
+
/**
|
|
142
|
+
* Type guard for Error instances.
|
|
143
|
+
*
|
|
144
|
+
* This function checks if a value is an instance of the Error class or any of
|
|
145
|
+
* its subclasses. It's useful for error handling and type narrowing when
|
|
146
|
+
* working with unknown values that might be errors.
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
*
|
|
150
|
+
* ```typescript
|
|
151
|
+
* try {
|
|
152
|
+
* throw new TypeError('Something went wrong');
|
|
153
|
+
* } catch (err) {
|
|
154
|
+
* if (isError(err)) {
|
|
155
|
+
* // err is now typed as Error
|
|
156
|
+
* console.log(err.message);
|
|
157
|
+
* }
|
|
158
|
+
* }
|
|
159
|
+
* ```
|
|
160
|
+
*
|
|
161
|
+
* @param value - Value to test
|
|
162
|
+
* @returns `true` if the value is an Error instance, `false` otherwise
|
|
163
|
+
*/
|
|
117
164
|
export declare const isError: (value: unknown) => value is Error;
|
|
165
|
+
/**
|
|
166
|
+
* Type guard for {@link ExpectItExecutor} functions.
|
|
167
|
+
*
|
|
168
|
+
* This function checks if a value is an {@link ExpectItExecutor} function
|
|
169
|
+
* created by {@link bupkis!expect.it | expect.it()}. {@link ExpectItExecutor}
|
|
170
|
+
* functions are special functions that contain assertion logic and are marked
|
|
171
|
+
* with an internal symbol for identification. They are used in nested
|
|
172
|
+
* assertions within "to satisfy" patterns and other complex assertion
|
|
173
|
+
* scenarios.
|
|
174
|
+
*
|
|
175
|
+
* @example
|
|
176
|
+
*
|
|
177
|
+
* ```typescript
|
|
178
|
+
* const executor = expect.it('to be a string');
|
|
179
|
+
* if (isExpectItExecutor(executor)) {
|
|
180
|
+
* // executor is now typed as ExpectItExecutor
|
|
181
|
+
* // Can be used in satisfaction patterns
|
|
182
|
+
* }
|
|
183
|
+
* ```
|
|
184
|
+
*
|
|
185
|
+
* @template Subject - The subject type that the executor function operates on
|
|
186
|
+
* @param value - Value to test
|
|
187
|
+
* @returns `true` if the value is an ExpectItExecutor function, `false`
|
|
188
|
+
* otherwise
|
|
189
|
+
*/
|
|
190
|
+
export declare const isExpectItExecutor: <Subject extends z.ZodType = z.ZodUnknown>(value: unknown) => value is ExpectItExecutor<Subject>;
|
|
118
191
|
//# sourceMappingURL=guards.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/guards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAO3B,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/guards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAO3B,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI5E;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,UAAU,EAClD,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,CAAC,GACN,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1B;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC;AAkB9D;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,WAAW,CAAC,MAAM,CAEpE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,CAAC,CAAC,UAC5B,CAAC;AAE9B;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,WAAW,CAAC,OAAO,CACb,CAAC;AAE/D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,eAAe,GAAI,IAAI,OAAO,KAAG,EAAE,IAAI,WAYnD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,OACxB,CAAC;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAC5C,CAAC;AA6B9B;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MACxB,CAAC;AAE5B;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MACb,CAAC;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,IAAI,GAAG,SACtB,CAAC;AAyB9C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,SAAS,WAAW,EACvC,OAAO,OAAO,EACd,MAAM,CAAC,KACN,KAAK,IAAI,YAAY,CAAC,CAAC,CAEzB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,KAA0B,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,UAAU,EACzE,OAAO,OAAO,KACb,KAAK,IAAI,gBAAgB,CAAC,OAAO,CAEnC,CAAC"}
|
package/dist/commonjs/guards.js
CHANGED
|
@@ -17,9 +17,10 @@
|
|
|
17
17
|
* @packageDocumentation
|
|
18
18
|
*/
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.isError = exports.isA = exports.isPhraseLiteral = exports.isPhraseLiteralChoice = exports.isNullOrNonObject = exports.isNonNullObject = exports.isString = exports.isAssertionFailure = exports.isFunction = exports.isBoolean = exports.isConstructible = exports.isPromiseLike = exports.isZodPromise = exports.isObject = void 0;
|
|
20
|
+
exports.isExpectItExecutor = exports.isError = exports.isA = exports.isPhraseLiteral = exports.isPhraseLiteralChoice = exports.isNullOrNonObject = exports.isNonNullObject = exports.isString = exports.isAssertionFailure = exports.isFunction = exports.isBoolean = exports.isConstructible = exports.isPromiseLike = exports.isZodPromise = exports.isObject = void 0;
|
|
21
21
|
exports.isZodType = isZodType;
|
|
22
22
|
const v4_1 = require("zod/v4");
|
|
23
|
+
const constant_js_1 = require("./constant.js");
|
|
23
24
|
function isZodType(value, type) {
|
|
24
25
|
const isValid = (0, exports.isObject)(value) &&
|
|
25
26
|
'def' in value &&
|
|
@@ -170,10 +171,86 @@ exports.isPhraseLiteralChoice = isPhraseLiteralChoice;
|
|
|
170
171
|
*/
|
|
171
172
|
const isPhraseLiteral = (value) => (0, exports.isString)(value) && !value.startsWith('not ');
|
|
172
173
|
exports.isPhraseLiteral = isPhraseLiteral;
|
|
174
|
+
/**
|
|
175
|
+
* Generic type guard for instanceof checks.
|
|
176
|
+
*
|
|
177
|
+
* This function provides a type-safe way to check if a value is an instance of
|
|
178
|
+
* a given constructor, with proper type narrowing for TypeScript. It combines
|
|
179
|
+
* the null/object check with instanceof to ensure the value is a valid object
|
|
180
|
+
* before performing the instance check.
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
*
|
|
184
|
+
* ```typescript
|
|
185
|
+
* const obj = new Date();
|
|
186
|
+
* if (isA(obj, Date)) {
|
|
187
|
+
* // obj is now typed as Date
|
|
188
|
+
* console.log(obj.getTime());
|
|
189
|
+
* }
|
|
190
|
+
* ```
|
|
191
|
+
*
|
|
192
|
+
* @template T - The constructor type to check against
|
|
193
|
+
* @param value - Value to test
|
|
194
|
+
* @param ctor - Constructor function to check instanceof
|
|
195
|
+
* @returns `true` if the value is an instance of the constructor, `false`
|
|
196
|
+
* otherwise
|
|
197
|
+
*/
|
|
173
198
|
const isA = (value, ctor) => {
|
|
174
199
|
return (0, exports.isNonNullObject)(value) && value instanceof ctor;
|
|
175
200
|
};
|
|
176
201
|
exports.isA = isA;
|
|
202
|
+
/**
|
|
203
|
+
* Type guard for Error instances.
|
|
204
|
+
*
|
|
205
|
+
* This function checks if a value is an instance of the Error class or any of
|
|
206
|
+
* its subclasses. It's useful for error handling and type narrowing when
|
|
207
|
+
* working with unknown values that might be errors.
|
|
208
|
+
*
|
|
209
|
+
* @example
|
|
210
|
+
*
|
|
211
|
+
* ```typescript
|
|
212
|
+
* try {
|
|
213
|
+
* throw new TypeError('Something went wrong');
|
|
214
|
+
* } catch (err) {
|
|
215
|
+
* if (isError(err)) {
|
|
216
|
+
* // err is now typed as Error
|
|
217
|
+
* console.log(err.message);
|
|
218
|
+
* }
|
|
219
|
+
* }
|
|
220
|
+
* ```
|
|
221
|
+
*
|
|
222
|
+
* @param value - Value to test
|
|
223
|
+
* @returns `true` if the value is an Error instance, `false` otherwise
|
|
224
|
+
*/
|
|
177
225
|
const isError = (value) => (0, exports.isA)(value, Error);
|
|
178
226
|
exports.isError = isError;
|
|
227
|
+
/**
|
|
228
|
+
* Type guard for {@link ExpectItExecutor} functions.
|
|
229
|
+
*
|
|
230
|
+
* This function checks if a value is an {@link ExpectItExecutor} function
|
|
231
|
+
* created by {@link bupkis!expect.it | expect.it()}. {@link ExpectItExecutor}
|
|
232
|
+
* functions are special functions that contain assertion logic and are marked
|
|
233
|
+
* with an internal symbol for identification. They are used in nested
|
|
234
|
+
* assertions within "to satisfy" patterns and other complex assertion
|
|
235
|
+
* scenarios.
|
|
236
|
+
*
|
|
237
|
+
* @example
|
|
238
|
+
*
|
|
239
|
+
* ```typescript
|
|
240
|
+
* const executor = expect.it('to be a string');
|
|
241
|
+
* if (isExpectItExecutor(executor)) {
|
|
242
|
+
* // executor is now typed as ExpectItExecutor
|
|
243
|
+
* // Can be used in satisfaction patterns
|
|
244
|
+
* }
|
|
245
|
+
* ```
|
|
246
|
+
*
|
|
247
|
+
* @template Subject - The subject type that the executor function operates on
|
|
248
|
+
* @param value - Value to test
|
|
249
|
+
* @returns `true` if the value is an ExpectItExecutor function, `false`
|
|
250
|
+
* otherwise
|
|
251
|
+
*/
|
|
252
|
+
const isExpectItExecutor = (value) => {
|
|
253
|
+
return (0, exports.isFunction)(value) && constant_js_1.kExpectIt in value && value[constant_js_1.kExpectIt] === true;
|
|
254
|
+
};
|
|
255
|
+
exports.isExpectItExecutor = isExpectItExecutor;
|
|
179
256
|
//# sourceMappingURL=guards.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/guards.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;
|
|
1
|
+
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/guards.ts"],"names":[],"mappings":"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"}
|
package/dist/commonjs/index.d.ts
CHANGED
|
@@ -37,7 +37,7 @@ export { z };
|
|
|
37
37
|
/**
|
|
38
38
|
* @primaryExport
|
|
39
39
|
*/
|
|
40
|
-
export type { Bupkis, CreateAssertionFn, CreateAsyncAssertionFn, Expect, ExpectAsync, FailFn, UseFn, ZodTypeMap, } from './types.js';
|
|
40
|
+
export type { Bupkis, CreateAssertionFn, CreateAsyncAssertionFn, Expect, ExpectAsync, ExpectIt, ExpectItExecutor, FailFn, UseFn, ZodTypeMap, } from './types.js';
|
|
41
41
|
export { createAssertion, createAsyncAssertion, fail, use };
|
|
42
42
|
declare const
|
|
43
43
|
/**
|
|
@@ -69,7 +69,7 @@ fail: import("./types.js").FailFn,
|
|
|
69
69
|
*
|
|
70
70
|
* @function
|
|
71
71
|
*/
|
|
72
|
-
use: import("./types.js").UseFn<readonly [import("./types.js").AssertionFunctionSync<readonly [z.
|
|
72
|
+
use: import("./types.js").UseFn<readonly [import("./types.js").AssertionFunctionSync<readonly [z.ZodCustom<Map<unknown, unknown>, Map<unknown, unknown>>, readonly ["to contain", "to include"], z.ZodAny], (subject: Map<unknown, unknown>, key: any) => boolean, readonly [z.ZodCustom<Map<unknown, unknown>, Map<unknown, unknown>>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to contain", "to include"]>, z.ZodAny]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodCustom<Map<unknown, unknown>, Map<unknown, unknown>>, "to have size", z.ZodNumber], (subject: Map<unknown, unknown>, expectedSize: number) => boolean, readonly [z.ZodCustom<Map<unknown, unknown>, Map<unknown, unknown>>, import("./types.js").PhraseLiteralSlot<"to have size">, z.ZodNumber]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodCustom<Map<unknown, unknown>, Map<unknown, unknown>>, "to be empty"], (subject: Map<unknown, unknown>) => boolean, readonly [z.ZodCustom<Map<unknown, unknown>, Map<unknown, unknown>>, import("./types.js").PhraseLiteralSlot<"to be empty">]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodCustom<Set<unknown>, Set<unknown>>, readonly ["to contain", "to include"], z.ZodAny], (subject: Set<unknown>, value: any) => boolean, readonly [z.ZodCustom<Set<unknown>, Set<unknown>>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to contain", "to include"]>, z.ZodAny]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodCustom<Set<unknown>, Set<unknown>>, "to have size", z.ZodNumber], (subject: Set<unknown>, expectedSize: number) => boolean, readonly [z.ZodCustom<Set<unknown>, Set<unknown>>, import("./types.js").PhraseLiteralSlot<"to have size">, z.ZodNumber]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodCustom<Set<unknown>, Set<unknown>>, "to be empty"], (subject: Set<unknown>) => boolean, readonly [z.ZodCustom<Set<unknown>, Set<unknown>>, import("./types.js").PhraseLiteralSlot<"to be empty">]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodCustom<WeakMap<WeakKey, unknown>, WeakMap<WeakKey, unknown>>, readonly ["to contain", "to include"], z.ZodAny], (subject: WeakMap<WeakKey, unknown>, key: any) => boolean, readonly [z.ZodCustom<WeakMap<WeakKey, unknown>, WeakMap<WeakKey, unknown>>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to contain", "to include"]>, z.ZodAny]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodCustom<WeakSet<WeakKey>, WeakSet<WeakKey>>, readonly ["to contain", "to include"], z.ZodAny], (subject: WeakSet<WeakKey>, value: any) => boolean, readonly [z.ZodCustom<WeakSet<WeakKey>, WeakSet<WeakKey>>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to contain", "to include"]>, z.ZodAny]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodArray<z.ZodAny>, readonly ["to contain", "to include"], z.ZodAny], (subject: any[], value: any) => boolean, readonly [z.ZodArray<z.ZodAny>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to contain", "to include"]>, z.ZodAny]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodArray<z.ZodAny>, "to have size", z.ZodNumber], (subject: any[], expectedSize: number) => boolean, readonly [z.ZodArray<z.ZodAny>, import("./types.js").PhraseLiteralSlot<"to have size">, z.ZodNumber]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodArray<z.ZodAny>, "to have length", z.ZodNumber], (subject: any[], expectedLength: number) => boolean, readonly [z.ZodArray<z.ZodAny>, import("./types.js").PhraseLiteralSlot<"to have length">, z.ZodNumber]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodArray<z.ZodAny>, "to be non-empty"], (subject: any[]) => {
|
|
73
73
|
actual: number;
|
|
74
74
|
expected: string;
|
|
75
75
|
message: string;
|
|
@@ -178,25 +178,16 @@ use: import("./types.js").UseFn<readonly [import("./types.js").AssertionFunction
|
|
|
178
178
|
actual: string;
|
|
179
179
|
expected: string;
|
|
180
180
|
message: string;
|
|
181
|
-
} | undefined, readonly [z.ZodString, import("./types.js").PhraseLiteralChoiceSlot<readonly ["includes", "contains", "to include", "to contain"]>, z.ZodString]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodString, "to match", z.ZodCustom<RegExp, RegExp>], (subject: string, regex: RegExp) => boolean, readonly [z.ZodString, import("./types.js").PhraseLiteralSlot<"to match">, z.ZodCustom<RegExp, RegExp>]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodNonOptional<z.ZodObject<{}, z.core.$loose>>, readonly ["to satisfy", "to be like"], z.
|
|
181
|
+
} | undefined, readonly [z.ZodString, import("./types.js").PhraseLiteralChoiceSlot<readonly ["includes", "contains", "to include", "to contain"]>, z.ZodString]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodString, "to match", z.ZodCustom<RegExp, RegExp>], (subject: string, regex: RegExp) => boolean, readonly [z.ZodString, import("./types.js").PhraseLiteralSlot<"to match">, z.ZodCustom<RegExp, RegExp>]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodNonOptional<z.ZodObject<{}, z.core.$loose>>, readonly ["to satisfy", "to be like"], z.ZodType<import("./types.js").SatisfyPatternValue, unknown, z.core.$ZodTypeInternals<import("./types.js").SatisfyPatternValue, unknown>>], (_subject: {
|
|
182
182
|
[x: string]: unknown;
|
|
183
|
-
}, shape: {
|
|
184
|
-
[x: string]: unknown;
|
|
185
|
-
}) => z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>, readonly [z.ZodNonOptional<z.ZodObject<{}, z.core.$loose>>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to satisfy", "to be like"]>, z.ZodObject<{}, z.core.$loose>]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodUnion<readonly [z.ZodArray<z.ZodUnknown>, z.ZodTuple<[z.ZodUnknown], z.ZodUnknown>, z.ZodObject<{
|
|
186
|
-
length: z.ZodNumber;
|
|
187
|
-
}, z.core.$loose>]>, readonly ["to satisfy", "to be like"], z.ZodUnion<readonly [z.ZodArray<z.ZodUnknown>, z.ZodTuple<[z.ZodUnknown], z.ZodUnknown>, z.ZodObject<{
|
|
183
|
+
}, shape: import("./types.js").SatisfyPatternValue) => z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>, readonly [z.ZodNonOptional<z.ZodObject<{}, z.core.$loose>>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to satisfy", "to be like"]>, z.ZodType<import("./types.js").SatisfyPatternValue, unknown, z.core.$ZodTypeInternals<import("./types.js").SatisfyPatternValue, unknown>>]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodUnion<readonly [z.ZodArray<z.ZodUnknown>, z.ZodTuple<[z.ZodUnknown], z.ZodUnknown>, z.ZodObject<{
|
|
188
184
|
length: z.ZodNumber;
|
|
189
|
-
}, z.core.$loose>]
|
|
190
|
-
[x: string]: unknown;
|
|
191
|
-
length: number;
|
|
192
|
-
}, shape: unknown[] | [unknown, ...unknown[]] | {
|
|
185
|
+
}, z.core.$loose>]>, readonly ["to satisfy", "to be like"], z.ZodType<import("./types.js").SatisfyPatternValue, unknown, z.core.$ZodTypeInternals<import("./types.js").SatisfyPatternValue, unknown>>], (_subject: unknown[] | [unknown, ...unknown[]] | {
|
|
193
186
|
[x: string]: unknown;
|
|
194
187
|
length: number;
|
|
195
|
-
}) => z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>, readonly [z.ZodUnion<readonly [z.ZodArray<z.ZodUnknown>, z.ZodTuple<[z.ZodUnknown], z.ZodUnknown>, z.ZodObject<{
|
|
196
|
-
length: z.ZodNumber;
|
|
197
|
-
}, z.core.$loose>]>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to satisfy", "to be like"]>, z.ZodUnion<readonly [z.ZodArray<z.ZodUnknown>, z.ZodTuple<[z.ZodUnknown], z.ZodUnknown>, z.ZodObject<{
|
|
188
|
+
}, shape: import("./types.js").SatisfyPatternValue) => z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>, readonly [z.ZodUnion<readonly [z.ZodArray<z.ZodUnknown>, z.ZodTuple<[z.ZodUnknown], z.ZodUnknown>, z.ZodObject<{
|
|
198
189
|
length: z.ZodNumber;
|
|
199
|
-
}, z.core.$loose>]
|
|
190
|
+
}, z.core.$loose>]>, import("./types.js").PhraseLiteralChoiceSlot<readonly ["to satisfy", "to be like"]>, z.ZodType<import("./types.js").SatisfyPatternValue, unknown, z.core.$ZodTypeInternals<import("./types.js").SatisfyPatternValue, unknown>>]>, import("./types.js").AssertionFunctionSync<readonly [z.ZodCustom<(...args: import("./types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("./types.js").MutableOrReadonly<unknown[]>) => unknown>, "to have arity", z.ZodNumber], (subject: (...args: import("./types.js").MutableOrReadonly<unknown[]>) => unknown, expectedArity: number) => {
|
|
200
191
|
actual: number;
|
|
201
192
|
expected: number;
|
|
202
193
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;;;GASG;AACH,YAAY,KAAK,KAAK,MAAM,YAAY,CAAC;AAEzC;;;GAGG;AACH,OAAO,EAAE,CAAC,EAAE,CAAC;AAEb;;GAEG;AACH,YAAY,EACV,MAAM,EACN,iBAAiB,EACjB,sBAAsB,EACtB,MAAM,EACN,WAAW,EACX,MAAM,EACN,KAAK,EACL,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAC5D,QAAA;AACE;;;;;;;GAOG;AACH,eAAe;AACf;;;;;;;GAOG;AACH,oBAAoB;AACpB;;;;GAIG;AACH,IAAI;AACJ;;;;GAIG;AACH,GAAG
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;;;GASG;AACH,YAAY,KAAK,KAAK,MAAM,YAAY,CAAC;AAEzC;;;GAGG;AACH,OAAO,EAAE,CAAC,EAAE,CAAC;AAEb;;GAEG;AACH,YAAY,EACV,MAAM,EACN,iBAAiB,EACjB,sBAAsB,EACtB,MAAM,EACN,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,MAAM,EACN,KAAK,EACL,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAC5D,QAAA;AACE;;;;;;;GAOG;AACH,eAAe;AACf;;;;;;;GAOG;AACH,oBAAoB;AACpB;;;;GAIG;AACH,IAAI;AACJ;;;;GAIG;AACH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;icAEgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAEH,+BAA2B;AAuBlB,kFAvBA,MAAC,OAuBA;AArBV,iDAA6D;AAC7D,+CAAqD;AAA5C,sGAAA,MAAM,OAAA;AAAE,2GAAA,WAAW,OAAA;AAE5B,uCAA4C;AAAnC,0GAAA,cAAc,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAEH,+BAA2B;AAuBlB,kFAvBA,MAAC,OAuBA;AArBV,iDAA6D;AAC7D,+CAAqD;AAA5C,sGAAA,MAAM,OAAA;AAAE,2GAAA,WAAW,OAAA;AAE5B,uCAA4C;AAAnC,0GAAA,cAAc,OAAA;AAoCvB,MAAM;AACJ;;;;;;;GAOG;AACH,eAAe;AACf;;;;;;;GAOG;AACH,oBAAoB;AACpB;;;;GAIG;AACH,IAAI;AACJ;;;;GAIG;AACH,GAAG,EACH,GAAG,KAAK,EACT,GAAG,qBAAiB,CAAC;AAjCb,0CAAe;AAAE,oDAAoB;AAAE,oBAAI;AAAE,kBAAG"}
|
|
@@ -32,9 +32,9 @@
|
|
|
32
32
|
* @packageDocumentation
|
|
33
33
|
*/
|
|
34
34
|
import { z } from 'zod/v4';
|
|
35
|
-
import { type Constructor, type MutableOrReadonly } from './types.js';
|
|
35
|
+
import { type Constructor, type MutableOrReadonly, type SatisfyPatternValue } from './types.js';
|
|
36
36
|
/**
|
|
37
|
-
* A Zod schema that validates JavaScript
|
|
37
|
+
* A Zod schema that validates JavaScript constructible functions.
|
|
38
38
|
*
|
|
39
39
|
* This schema validates values that can be used as constructors, including ES6
|
|
40
40
|
* classes, traditional constructor functions, and built-in constructors. It
|
|
@@ -43,24 +43,24 @@ import { type Constructor, type MutableOrReadonly } from './types.js';
|
|
|
43
43
|
*
|
|
44
44
|
* @privateRemarks
|
|
45
45
|
* The schema is registered in the {@link BupkisRegistry} with the name
|
|
46
|
-
* `
|
|
46
|
+
* `ConstructibleSchema` for later reference and type checking purposes.
|
|
47
47
|
* @example
|
|
48
48
|
*
|
|
49
49
|
* ```typescript
|
|
50
50
|
* class MyClass {}
|
|
51
51
|
* function MyConstructor() {}
|
|
52
52
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
53
|
+
* ConstructibleSchema.parse(MyClass); // ✓ Valid
|
|
54
|
+
* ConstructibleSchema.parse(MyConstructor); // ✓ Valid
|
|
55
|
+
* ConstructibleSchema.parse(Array); // ✓ Valid
|
|
56
|
+
* ConstructibleSchema.parse(Date); // ✓ Valid
|
|
57
|
+
* ConstructibleSchema.parse(() => {}); // ✗ Throws validation error
|
|
58
|
+
* ConstructibleSchema.parse({}); // ✗ Throws validation error
|
|
59
59
|
* ```
|
|
60
60
|
*
|
|
61
61
|
* @group Schema
|
|
62
62
|
*/
|
|
63
|
-
export declare const
|
|
63
|
+
export declare const ConstructibleSchema: z.ZodCustom<Constructor, Constructor>;
|
|
64
64
|
/**
|
|
65
65
|
* A Zod schema that validates any JavaScript function.
|
|
66
66
|
*
|
|
@@ -413,4 +413,60 @@ export declare const ArrayLikeSchema: z.ZodUnion<readonly [z.ZodArray<z.ZodUnkno
|
|
|
413
413
|
* @group Schema
|
|
414
414
|
*/
|
|
415
415
|
export declare const RegExpSchema: z.ZodCustom<RegExp, RegExp>;
|
|
416
|
+
/**
|
|
417
|
+
* A recursive Zod schema that validates values allowed in "to satisfy"
|
|
418
|
+
* assertion patterns.
|
|
419
|
+
*
|
|
420
|
+
* This schema defines the allowed structure for patterns used with "to satisfy"
|
|
421
|
+
* and "to be like" assertions. It supports a recursive structure that can
|
|
422
|
+
* contain:
|
|
423
|
+
*
|
|
424
|
+
* - **Primitive values**: strings, numbers, booleans, null, undefined, bigint,
|
|
425
|
+
* symbols
|
|
426
|
+
* - **Regular expressions**: for pattern matching against string values
|
|
427
|
+
* - **ExpectItExecutor functions**: nested assertions created via `expect.it()`
|
|
428
|
+
* - **Objects**: with properties that recursively follow this same pattern
|
|
429
|
+
* - **Arrays**: with elements that recursively follow this same pattern
|
|
430
|
+
*
|
|
431
|
+
* The schema handles the special semantics required for "to satisfy"
|
|
432
|
+
* assertions:
|
|
433
|
+
*
|
|
434
|
+
* - RegExp values are used for pattern testing rather than exact matching
|
|
435
|
+
* - ExpectItExecutor functions are executed as nested assertions
|
|
436
|
+
* - Objects and arrays can contain any combination of the above recursively
|
|
437
|
+
*
|
|
438
|
+
* @privateRemarks
|
|
439
|
+
* Uses `z.lazy()` to handle recursive object and array structures without
|
|
440
|
+
* causing infinite recursion during schema definition. The schema is registered
|
|
441
|
+
* in the `BupkisRegistry` for reference and type checking.
|
|
442
|
+
* @example
|
|
443
|
+
*
|
|
444
|
+
* ```typescript
|
|
445
|
+
* // Primitive values
|
|
446
|
+
* SatisfyPatternSchema.parse('hello'); // ✓ Valid
|
|
447
|
+
* SatisfyPatternSchema.parse(42); // ✓ Valid
|
|
448
|
+
* SatisfyPatternSchema.parse(true); // ✓ Valid
|
|
449
|
+
*
|
|
450
|
+
* // Regular expressions for pattern matching
|
|
451
|
+
* SatisfyPatternSchema.parse(/test/); // ✓ Valid
|
|
452
|
+
*
|
|
453
|
+
* // ExpectItExecutor functions
|
|
454
|
+
* SatisfyPatternSchema.parse(expect.it('to be a string')); // ✓ Valid
|
|
455
|
+
*
|
|
456
|
+
* // Complex nested structures
|
|
457
|
+
* SatisfyPatternSchema.parse({
|
|
458
|
+
* name: expect.it('to be a string'),
|
|
459
|
+
* email: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
|
|
460
|
+
* age: expect.it('to be greater than', 0),
|
|
461
|
+
* tags: [expect.it('to be a string')],
|
|
462
|
+
* }); // ✓ Valid
|
|
463
|
+
*
|
|
464
|
+
* // Invalid values
|
|
465
|
+
* SatisfyPatternSchema.parse(new Date()); // ✗ Invalid (not supported type)
|
|
466
|
+
* SatisfyPatternSchema.parse(() => {}); // ✗ Invalid (regular function, not ExpectItExecutor)
|
|
467
|
+
* ```
|
|
468
|
+
*
|
|
469
|
+
* @group Schema
|
|
470
|
+
*/
|
|
471
|
+
export declare const SatisfyPatternSchema: z.ZodType<SatisfyPatternValue>;
|
|
416
472
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAW3B,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,eAAO,MAAM,mBAAmB,uCAGK,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,cAAc,wBACP,iBAAiB,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,YAAxC,iBAAiB,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAMzD,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,iBAAiB,8DAG4B,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,wBAAwB,yDAK4B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,eAAe,2DAI4B,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,eAAe,yCAI4B,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,gBAAgB,yEAKmC,CAAC;AAEjE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,yEAAmB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,mBAAmB,wBAnNZ,iBAAiB,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,YAAxC,iBAAiB,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAuNA,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,YAAY,4BAOrB,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,WAAW,yBAKsB,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,eAAe,oHAWsB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,eAAe;;mBASxB,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,YAAY,6BAGsB,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,eAAO,MAAM,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAwBH,CAAC"}
|