bupkis 0.7.2 → 0.9.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 +15 -0
- package/README.md +19 -2
- package/dist/commonjs/assertion/assertion-async.d.ts.map +1 -1
- package/dist/commonjs/assertion/assertion-async.js +37 -7
- package/dist/commonjs/assertion/assertion-async.js.map +1 -1
- package/dist/commonjs/assertion/assertion-sync.d.ts.map +1 -1
- package/dist/commonjs/assertion/assertion-sync.js +32 -8
- package/dist/commonjs/assertion/assertion-sync.js.map +1 -1
- package/dist/commonjs/assertion/assertion-types.d.ts +37 -31
- package/dist/commonjs/assertion/assertion-types.d.ts.map +1 -1
- package/dist/commonjs/assertion/assertion-types.js +0 -32
- package/dist/commonjs/assertion/assertion-types.js.map +1 -1
- package/dist/commonjs/assertion/assertion.d.ts +3 -21
- package/dist/commonjs/assertion/assertion.d.ts.map +1 -1
- package/dist/commonjs/assertion/assertion.js +42 -27
- package/dist/commonjs/assertion/assertion.js.map +1 -1
- package/dist/commonjs/assertion/create.d.ts +2 -0
- package/dist/commonjs/assertion/create.d.ts.map +1 -1
- package/dist/commonjs/assertion/create.js +38 -42
- package/dist/commonjs/assertion/create.js.map +1 -1
- package/dist/commonjs/assertion/impl/assertion-util.d.ts +16 -4
- package/dist/commonjs/assertion/impl/assertion-util.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/assertion-util.js +20 -15
- package/dist/commonjs/assertion/impl/assertion-util.js.map +1 -1
- package/dist/commonjs/assertion/impl/async-parametric.d.ts +63 -11
- package/dist/commonjs/assertion/impl/async-parametric.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/async-parametric.js +89 -52
- package/dist/commonjs/assertion/impl/async-parametric.js.map +1 -1
- package/dist/commonjs/assertion/impl/async.d.ts +116 -12
- package/dist/commonjs/assertion/impl/async.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/async.js +1 -1
- package/dist/commonjs/assertion/impl/sync-basic.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-basic.js +6 -4
- package/dist/commonjs/assertion/impl/sync-basic.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-collection.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-collection.js +24 -14
- package/dist/commonjs/assertion/impl/sync-collection.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-esoteric.d.ts +1 -5
- package/dist/commonjs/assertion/impl/sync-esoteric.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-esoteric.js +11 -13
- package/dist/commonjs/assertion/impl/sync-esoteric.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-parametric.d.ts +27 -7
- package/dist/commonjs/assertion/impl/sync-parametric.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-parametric.js +75 -51
- package/dist/commonjs/assertion/impl/sync-parametric.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync.d.ts +54 -22
- package/dist/commonjs/assertion/impl/sync.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync.js +1 -1
- package/dist/commonjs/assertion/impl/sync.js.map +1 -1
- package/dist/commonjs/assertion/index.d.ts +1 -1
- package/dist/commonjs/assertion/index.d.ts.map +1 -1
- package/dist/commonjs/assertion/index.js +0 -1
- package/dist/commonjs/assertion/index.js.map +1 -1
- package/dist/commonjs/assertion/slotify.d.ts +1 -13
- package/dist/commonjs/assertion/slotify.d.ts.map +1 -1
- package/dist/commonjs/assertion/slotify.js +49 -16
- package/dist/commonjs/assertion/slotify.js.map +1 -1
- package/dist/commonjs/bootstrap.d.ts +85 -17
- package/dist/commonjs/bootstrap.d.ts.map +1 -1
- package/dist/commonjs/bootstrap.js +1 -0
- package/dist/commonjs/bootstrap.js.map +1 -1
- package/dist/commonjs/diff.d.ts +51 -0
- package/dist/commonjs/diff.d.ts.map +1 -0
- package/dist/commonjs/diff.js +279 -0
- package/dist/commonjs/diff.js.map +1 -0
- package/dist/commonjs/error.d.ts +37 -18
- package/dist/commonjs/error.d.ts.map +1 -1
- package/dist/commonjs/error.js +44 -30
- package/dist/commonjs/error.js.map +1 -1
- package/dist/commonjs/expect.d.ts.map +1 -1
- package/dist/commonjs/expect.js +131 -78
- package/dist/commonjs/expect.js.map +1 -1
- package/dist/commonjs/guards.d.ts +24 -10
- package/dist/commonjs/guards.d.ts.map +1 -1
- package/dist/commonjs/guards.js +56 -39
- package/dist/commonjs/guards.js.map +1 -1
- package/dist/commonjs/index.d.ts +85 -17
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/internal-schema.d.ts +25 -0
- package/dist/commonjs/internal-schema.d.ts.map +1 -0
- package/dist/commonjs/internal-schema.js +209 -0
- package/dist/commonjs/internal-schema.js.map +1 -0
- package/dist/commonjs/schema.d.ts.map +1 -1
- package/dist/commonjs/schema.js +3 -2
- package/dist/commonjs/schema.js.map +1 -1
- package/dist/commonjs/use.js +22 -8
- package/dist/commonjs/use.js.map +1 -1
- package/dist/commonjs/util.d.ts +1 -0
- package/dist/commonjs/util.d.ts.map +1 -1
- package/dist/commonjs/util.js +14 -10
- package/dist/commonjs/util.js.map +1 -1
- package/dist/commonjs/value-to-schema.d.ts +1 -0
- package/dist/commonjs/value-to-schema.d.ts.map +1 -1
- package/dist/commonjs/value-to-schema.js +19 -12
- package/dist/commonjs/value-to-schema.js.map +1 -1
- package/dist/esm/assertion/assertion-async.d.ts.map +1 -1
- package/dist/esm/assertion/assertion-async.js +37 -7
- package/dist/esm/assertion/assertion-async.js.map +1 -1
- package/dist/esm/assertion/assertion-sync.d.ts.map +1 -1
- package/dist/esm/assertion/assertion-sync.js +32 -8
- package/dist/esm/assertion/assertion-sync.js.map +1 -1
- package/dist/esm/assertion/assertion-types.d.ts +37 -31
- package/dist/esm/assertion/assertion-types.d.ts.map +1 -1
- package/dist/esm/assertion/assertion-types.js +1 -31
- package/dist/esm/assertion/assertion-types.js.map +1 -1
- package/dist/esm/assertion/assertion.d.ts +3 -21
- package/dist/esm/assertion/assertion.d.ts.map +1 -1
- package/dist/esm/assertion/assertion.js +42 -27
- package/dist/esm/assertion/assertion.js.map +1 -1
- package/dist/esm/assertion/create.d.ts +2 -0
- package/dist/esm/assertion/create.d.ts.map +1 -1
- package/dist/esm/assertion/create.js +37 -41
- package/dist/esm/assertion/create.js.map +1 -1
- package/dist/esm/assertion/impl/assertion-util.d.ts +16 -4
- package/dist/esm/assertion/impl/assertion-util.d.ts.map +1 -1
- package/dist/esm/assertion/impl/assertion-util.js +20 -15
- package/dist/esm/assertion/impl/assertion-util.js.map +1 -1
- package/dist/esm/assertion/impl/async-parametric.d.ts +63 -11
- package/dist/esm/assertion/impl/async-parametric.d.ts.map +1 -1
- package/dist/esm/assertion/impl/async-parametric.js +89 -52
- package/dist/esm/assertion/impl/async-parametric.js.map +1 -1
- package/dist/esm/assertion/impl/async.d.ts +116 -12
- package/dist/esm/assertion/impl/async.d.ts.map +1 -1
- package/dist/esm/assertion/impl/async.js +2 -2
- package/dist/esm/assertion/impl/async.js.map +1 -1
- package/dist/esm/assertion/impl/sync-basic.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-basic.js +6 -4
- package/dist/esm/assertion/impl/sync-basic.js.map +1 -1
- package/dist/esm/assertion/impl/sync-collection.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-collection.js +24 -14
- package/dist/esm/assertion/impl/sync-collection.js.map +1 -1
- package/dist/esm/assertion/impl/sync-esoteric.d.ts +1 -5
- package/dist/esm/assertion/impl/sync-esoteric.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-esoteric.js +11 -13
- package/dist/esm/assertion/impl/sync-esoteric.js.map +1 -1
- package/dist/esm/assertion/impl/sync-parametric.d.ts +27 -7
- package/dist/esm/assertion/impl/sync-parametric.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-parametric.js +75 -51
- package/dist/esm/assertion/impl/sync-parametric.js.map +1 -1
- package/dist/esm/assertion/impl/sync.d.ts +54 -22
- package/dist/esm/assertion/impl/sync.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync.js +2 -2
- package/dist/esm/assertion/impl/sync.js.map +1 -1
- package/dist/esm/assertion/index.d.ts +1 -1
- package/dist/esm/assertion/index.d.ts.map +1 -1
- package/dist/esm/assertion/index.js +0 -1
- package/dist/esm/assertion/index.js.map +1 -1
- package/dist/esm/assertion/slotify.d.ts +1 -13
- package/dist/esm/assertion/slotify.d.ts.map +1 -1
- package/dist/esm/assertion/slotify.js +50 -17
- package/dist/esm/assertion/slotify.js.map +1 -1
- package/dist/esm/bootstrap.d.ts +85 -17
- package/dist/esm/bootstrap.d.ts.map +1 -1
- package/dist/esm/bootstrap.js +1 -0
- package/dist/esm/bootstrap.js.map +1 -1
- package/dist/esm/diff.d.ts +51 -0
- package/dist/esm/diff.d.ts.map +1 -0
- package/dist/esm/diff.js +273 -0
- package/dist/esm/diff.js.map +1 -0
- package/dist/esm/error.d.ts +37 -18
- package/dist/esm/error.d.ts.map +1 -1
- package/dist/esm/error.js +41 -27
- package/dist/esm/error.js.map +1 -1
- package/dist/esm/expect.d.ts.map +1 -1
- package/dist/esm/expect.js +133 -80
- package/dist/esm/expect.js.map +1 -1
- package/dist/esm/guards.d.ts +24 -10
- package/dist/esm/guards.d.ts.map +1 -1
- package/dist/esm/guards.js +52 -36
- package/dist/esm/guards.js.map +1 -1
- package/dist/esm/index.d.ts +85 -17
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/internal-schema.d.ts +25 -0
- package/dist/esm/internal-schema.d.ts.map +1 -0
- package/dist/esm/internal-schema.js +203 -0
- package/dist/esm/internal-schema.js.map +1 -0
- package/dist/esm/schema.d.ts.map +1 -1
- package/dist/esm/schema.js +3 -2
- package/dist/esm/schema.js.map +1 -1
- package/dist/esm/use.js +19 -6
- package/dist/esm/use.js.map +1 -1
- package/dist/esm/util.d.ts +1 -0
- package/dist/esm/util.d.ts.map +1 -1
- package/dist/esm/util.js +14 -10
- package/dist/esm/util.js.map +1 -1
- package/dist/esm/value-to-schema.d.ts +1 -0
- package/dist/esm/value-to-schema.d.ts.map +1 -1
- package/dist/esm/value-to-schema.js +20 -13
- package/dist/esm/value-to-schema.js.map +1 -1
- package/package.json +29 -11
- package/src/assertion/assertion-async.ts +42 -14
- package/src/assertion/assertion-sync.ts +40 -17
- package/src/assertion/assertion-types.ts +55 -45
- package/src/assertion/assertion.ts +49 -32
- package/src/assertion/create.ts +46 -65
- package/src/assertion/impl/assertion-util.ts +31 -18
- package/src/assertion/impl/async-parametric.ts +93 -52
- package/src/assertion/impl/async.ts +2 -2
- package/src/assertion/impl/sync-basic.ts +7 -4
- package/src/assertion/impl/sync-collection.ts +34 -14
- package/src/assertion/impl/sync-esoteric.ts +17 -13
- package/src/assertion/impl/sync-parametric.ts +79 -52
- package/src/assertion/impl/sync.ts +2 -2
- package/src/assertion/index.ts +1 -1
- package/src/assertion/slotify.ts +67 -21
- package/src/bootstrap.ts +1 -0
- package/src/diff.ts +343 -0
- package/src/error.ts +66 -31
- package/src/expect.ts +195 -129
- package/src/guards.ts +74 -48
- package/src/internal-schema.ts +246 -0
- package/src/schema.ts +4 -2
- package/src/use.ts +21 -7
- package/src/util.ts +15 -12
- package/src/value-to-schema.ts +21 -13
package/dist/esm/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAU3B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAU3B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAIpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,eAAO,MAAM,mBAAmB,uCAGK,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,cAAc,wBACP,iBAAiB,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,YAAxC,iBAAiB,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAIjC,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,yBAAyB,wDACjB,GAAG,EAAE,KAAK,GAAG,6CAAb,GAAG,EAAE,KAAK,GAAG,EASc,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,iBAAiB,8DAGuB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAIG,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,wBAAwB,yDAKe,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,eAAO,MAAM,gBAAgB,yEAKsB,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,yEAAmB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,eAAO,MAAM,mBAAmB,wBAjTZ,iBAAiB,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,YAAxC,iBAAiB,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAqTL,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,YAAY,4BAOrB,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,WAAW,yBAKsB,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,eAAe,oHAWsB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,eAAO,MAAM,eAAe;;mBASxB,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,YAAY,6BAGsB,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,wBAAwB,UAIuB,CAAC"}
|
package/dist/esm/schema.js
CHANGED
|
@@ -37,6 +37,7 @@ import { z } from 'zod/v4';
|
|
|
37
37
|
import { KEYPATH_REGEX } from './constant.js';
|
|
38
38
|
import { isConstructible, isFunction, isNonNullObject, isPromiseLike, } from './guards.js';
|
|
39
39
|
import { BupkisRegistry } from './metadata.js';
|
|
40
|
+
const { getPrototypeOf, prototype: objectPrototype } = Object;
|
|
40
41
|
/**
|
|
41
42
|
* A Zod schema that validates JavaScript constructible functions.
|
|
42
43
|
*
|
|
@@ -360,7 +361,7 @@ export const WrappedPromiseLikeSchema = z
|
|
|
360
361
|
* @group Schema
|
|
361
362
|
*/
|
|
362
363
|
export const DictionarySchema = z
|
|
363
|
-
.custom((value) => isNonNullObject(value) &&
|
|
364
|
+
.custom((value) => isNonNullObject(value) && getPrototypeOf(value) === null)
|
|
364
365
|
.describe('Object with null prototype')
|
|
365
366
|
.register(BupkisRegistry, { name: 'dictionary' });
|
|
366
367
|
/**
|
|
@@ -420,7 +421,7 @@ export const NullProtoObjectSchema = DictionarySchema;
|
|
|
420
421
|
*
|
|
421
422
|
* @group Schema
|
|
422
423
|
*/
|
|
423
|
-
export const AsyncFunctionSchema = FunctionSchema.refine((value) =>
|
|
424
|
+
export const AsyncFunctionSchema = FunctionSchema.refine((value) => objectPrototype.toString.call(value) === '[object AsyncFunction]')
|
|
424
425
|
.describe('Function declared with the `async` keyword')
|
|
425
426
|
.register(BupkisRegistry, { name: 'async-function' });
|
|
426
427
|
/**
|
package/dist/esm/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,UAAU,EACV,eAAe,EACf,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAO/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAc,eAAe,CAAC;KACpC,QAAQ,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;KACnD,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,CAAqD,UAAU,CAAC;KACtE,QAAQ,CAAC,cAAc,EAAE;IACxB,IAAI,EAAE,UAAU;CACjB,CAAC;KACD,QAAQ,CAAC,cAAc,CAAC,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC;KACvC,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC;IACnB,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC;IACnB,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC;IACvB,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,CAC1B;KACA,QAAQ,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;KAC3D,QAAQ,CAAC,mCAAmC,CAAC,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;KAC3C,QAAQ,CAAC,gCAAgC,CAAC;KAC1C,QAAQ,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,CAAC,MAAM,aAAa,GAAuB,CAAC;KAC/C,MAAM,EAAE;KACR,KAAK,CAAC,aAAa,CAAC;KACpB,QAAQ,CAAC,+CAA+C,CAAC;KACzD,QAAQ,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACtC,MAAM,CAAuB,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAC7D,QAAQ,CACP,qEAAqE,CACtE;KACA,QAAQ,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/use.js
CHANGED
|
@@ -8,6 +8,7 @@ import { BupkisAssertionAsync } from './assertion/assertion-async.js';
|
|
|
8
8
|
import { BupkisAssertionSync } from './assertion/assertion-sync.js';
|
|
9
9
|
import { kExpectIt } from './constant.js';
|
|
10
10
|
import { createBaseExpect, createExpectAsyncFunction, createExpectSyncFunction, } from './expect.js';
|
|
11
|
+
const { assign } = Object;
|
|
11
12
|
/**
|
|
12
13
|
* Creates an `expect.it()` factory function for generating embeddable assertion
|
|
13
14
|
* executors.
|
|
@@ -41,6 +42,7 @@ import { createBaseExpect, createExpectAsyncFunction, createExpectSyncFunction,
|
|
|
41
42
|
*
|
|
42
43
|
* @template SyncAssertions - Array of synchronous assertion objects that define
|
|
43
44
|
* the available assertion logic for the embeddable functions
|
|
45
|
+
* @function
|
|
44
46
|
* @param expect - The underlying expect function that will execute the
|
|
45
47
|
* assertions when the returned executors are called
|
|
46
48
|
* @returns A factory function that creates {@link ExpectItExecutor} instances
|
|
@@ -51,8 +53,11 @@ import { createBaseExpect, createExpectAsyncFunction, createExpectSyncFunction,
|
|
|
51
53
|
* @see {@link kExpectIt} for the internal marking symbol
|
|
52
54
|
*/
|
|
53
55
|
const createExpectIt = (expect) => {
|
|
56
|
+
/**
|
|
57
|
+
* @function
|
|
58
|
+
*/
|
|
54
59
|
const expectIt = (...args) => {
|
|
55
|
-
const func =
|
|
60
|
+
const func = assign((subject) => {
|
|
56
61
|
const allArgs = [subject, ...args];
|
|
57
62
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
58
63
|
expect(...allArgs);
|
|
@@ -96,6 +101,7 @@ const createExpectIt = (expect) => {
|
|
|
96
101
|
*
|
|
97
102
|
* @template AsyncAssertions - Array of asynchronous assertion objects that
|
|
98
103
|
* define the available assertion logic for the embeddable async functions
|
|
104
|
+
* @function
|
|
99
105
|
* @param expectAsync - The underlying expectAsync function that will execute
|
|
100
106
|
* the assertions when the returned executors are called
|
|
101
107
|
* @returns A factory function that creates {@link ExpectItExecutorAsync}
|
|
@@ -107,8 +113,11 @@ const createExpectIt = (expect) => {
|
|
|
107
113
|
* @see {@link createExpectIt} for the synchronous equivalent
|
|
108
114
|
*/
|
|
109
115
|
const createExpectItAsync = (expectAsync) => {
|
|
116
|
+
/**
|
|
117
|
+
* @function
|
|
118
|
+
*/
|
|
110
119
|
const expectItAsync = (...args) => {
|
|
111
|
-
const func =
|
|
120
|
+
const func = assign(async (subject) => {
|
|
112
121
|
const allArgs = [subject, ...args];
|
|
113
122
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
114
123
|
await expectAsync(...allArgs);
|
|
@@ -179,6 +188,7 @@ const createExpectItAsync = (expectAsync) => {
|
|
|
179
188
|
* available in the composed functions
|
|
180
189
|
* @template AsyncAssertions - Array of base asynchronous assertions that will
|
|
181
190
|
* be available in the composed functions
|
|
191
|
+
* @function
|
|
182
192
|
* @param syncAssertions - Base synchronous assertions to include in all
|
|
183
193
|
* composed expect functions
|
|
184
194
|
* @param asyncAssertions - Base asynchronous assertions to include in all
|
|
@@ -192,9 +202,12 @@ const createExpectItAsync = (expectAsync) => {
|
|
|
192
202
|
* @see {@link FilterAsyncAssertions} for how async assertions are extracted
|
|
193
203
|
* @see {@link Concat} for how assertion arrays are combined
|
|
194
204
|
*/
|
|
195
|
-
export
|
|
205
|
+
export const createUse = (syncAssertions, asyncAssertions) => {
|
|
196
206
|
const syncAssertionsIn = syncAssertions ?? [];
|
|
197
207
|
const asyncAssertionsIn = asyncAssertions ?? [];
|
|
208
|
+
/**
|
|
209
|
+
* @function
|
|
210
|
+
*/
|
|
198
211
|
const use = (assertions) => {
|
|
199
212
|
const newSyncAssertions = assertions.filter((a) => a instanceof BupkisAssertionSync);
|
|
200
213
|
const newAsyncAssertions = assertions.filter((a) => a instanceof BupkisAssertionAsync);
|
|
@@ -208,8 +221,8 @@ export function createUse(syncAssertions, asyncAssertions) {
|
|
|
208
221
|
];
|
|
209
222
|
const expectFunction = createExpectSyncFunction(allSyncAssertions);
|
|
210
223
|
const expectAsyncFunction = createExpectAsyncFunction(allAsyncAssertions);
|
|
211
|
-
const expect =
|
|
212
|
-
const expectAsync =
|
|
224
|
+
const expect = assign(expectFunction, createBaseExpect(allSyncAssertions, allAsyncAssertions, 'sync'), { it: createExpectIt(expectFunction) });
|
|
225
|
+
const expectAsync = assign(expectAsyncFunction, createBaseExpect(allSyncAssertions, allAsyncAssertions, 'async'), { it: createExpectItAsync(expectAsyncFunction) });
|
|
213
226
|
return {
|
|
214
227
|
expect,
|
|
215
228
|
expectAsync,
|
|
@@ -219,5 +232,5 @@ export function createUse(syncAssertions, asyncAssertions) {
|
|
|
219
232
|
};
|
|
220
233
|
};
|
|
221
234
|
return use;
|
|
222
|
-
}
|
|
235
|
+
};
|
|
223
236
|
//# sourceMappingURL=use.js.map
|
package/dist/esm/use.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use.js","sourceRoot":"","sources":["../../src/use.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAMpE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAUrB
|
|
1
|
+
{"version":3,"file":"use.js","sourceRoot":"","sources":["../../src/use.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/util.d.ts
CHANGED
|
@@ -185,6 +185,7 @@ export declare const keyBy: <const T extends readonly Record<PropertyKey, any>[]
|
|
|
185
185
|
* parseKeypath("arr[10]['spam']"); // ['arr', 10, 'spam']
|
|
186
186
|
* ```
|
|
187
187
|
*
|
|
188
|
+
* @function
|
|
188
189
|
* @param keypath The keypath string to parse, using dot and/or bracket
|
|
189
190
|
* notation.
|
|
190
191
|
* @returns An array of keys, where each key is a string or number. Bracketed
|
package/dist/esm/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,cAAc,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,cAAc,sBAAsB,CAAC;AAMrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,GAAG,OAAO,EAC7B,KAAK,OAAO,EACZ,SAAS,OAAO,EAChB,eAAe,CAAC,KACf,CAAC,GAAG,SA4BN,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,GAAG,GAAI,KAAK,OAAO,EAAE,SAAS,OAAO,KAAG,OA2BpD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,UAAU,GACrB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,yBAA+B,KAC9B,OAiCF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,YAAY,GACvB,KAAK,OAAO,EACZ,OAAO,OAAO,EACd,yBAA+B,KAC9B,OAiDF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,GAChB,KAAK,CAAC,CAAC,SAAS,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EACnD,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAEhC,YAAY,CAAC,EACb,KAAK,CAAC,KACL,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAe1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,EACpD,SAAS,OAAO,CAAC,CAAC,CAAC,KAClB,CAAC,MAAM,GAAG,MAAM,CAAC,EAgDnB,CAAC"}
|
package/dist/esm/util.js
CHANGED
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
* @packageDocumentation
|
|
12
12
|
*/
|
|
13
13
|
export * from './value-to-schema.js';
|
|
14
|
+
const { hasOwn, keys, values } = Object;
|
|
15
|
+
const { isInteger, isNaN } = Number;
|
|
16
|
+
const { isArray } = Array;
|
|
14
17
|
/**
|
|
15
18
|
* Retrieves the value at a given keypath from an object using dot or bracket
|
|
16
19
|
* notation.
|
|
@@ -158,10 +161,10 @@ export const hasKeyDeep = (obj, key, visited = new WeakSet()) => {
|
|
|
158
161
|
}
|
|
159
162
|
visited.add(obj);
|
|
160
163
|
try {
|
|
161
|
-
if (
|
|
164
|
+
if (hasOwn(obj, key)) {
|
|
162
165
|
return true;
|
|
163
166
|
}
|
|
164
|
-
if (
|
|
167
|
+
if (isArray(obj)) {
|
|
165
168
|
for (const item of obj) {
|
|
166
169
|
if (hasKeyDeep(item, key, visited)) {
|
|
167
170
|
return true;
|
|
@@ -169,7 +172,7 @@ export const hasKeyDeep = (obj, key, visited = new WeakSet()) => {
|
|
|
169
172
|
}
|
|
170
173
|
}
|
|
171
174
|
else {
|
|
172
|
-
for (const propValue of
|
|
175
|
+
for (const propValue of values(obj)) {
|
|
173
176
|
if (hasKeyDeep(propValue, key, visited)) {
|
|
174
177
|
return true;
|
|
175
178
|
}
|
|
@@ -215,12 +218,12 @@ export const hasValueDeep = (obj, value, visited = new WeakSet()) => {
|
|
|
215
218
|
}
|
|
216
219
|
if (typeof obj === 'object' &&
|
|
217
220
|
obj !== null &&
|
|
218
|
-
!
|
|
221
|
+
!isArray(obj) &&
|
|
219
222
|
typeof value === 'object' &&
|
|
220
223
|
value !== null &&
|
|
221
|
-
!
|
|
222
|
-
const objKeys =
|
|
223
|
-
const valueKeys =
|
|
224
|
+
!isArray(value)) {
|
|
225
|
+
const objKeys = keys(obj);
|
|
226
|
+
const valueKeys = keys(value);
|
|
224
227
|
if (objKeys.length === 0 && valueKeys.length === 0) {
|
|
225
228
|
return true;
|
|
226
229
|
}
|
|
@@ -233,7 +236,7 @@ export const hasValueDeep = (obj, value, visited = new WeakSet()) => {
|
|
|
233
236
|
}
|
|
234
237
|
visited.add(obj);
|
|
235
238
|
try {
|
|
236
|
-
if (
|
|
239
|
+
if (isArray(obj)) {
|
|
237
240
|
for (const item of obj) {
|
|
238
241
|
if (hasValueDeep(item, value, visited)) {
|
|
239
242
|
return true;
|
|
@@ -241,7 +244,7 @@ export const hasValueDeep = (obj, value, visited = new WeakSet()) => {
|
|
|
241
244
|
}
|
|
242
245
|
}
|
|
243
246
|
else {
|
|
244
|
-
for (const propValue of
|
|
247
|
+
for (const propValue of values(obj)) {
|
|
245
248
|
if (hasValueDeep(propValue, value, visited)) {
|
|
246
249
|
return true;
|
|
247
250
|
}
|
|
@@ -308,6 +311,7 @@ export const keyBy = (collection, key) => {
|
|
|
308
311
|
* parseKeypath("arr[10]['spam']"); // ['arr', 10, 'spam']
|
|
309
312
|
* ```
|
|
310
313
|
*
|
|
314
|
+
* @function
|
|
311
315
|
* @param keypath The keypath string to parse, using dot and/or bracket
|
|
312
316
|
* notation.
|
|
313
317
|
* @returns An array of keys, where each key is a string or number. Bracketed
|
|
@@ -339,7 +343,7 @@ export const parseKeypath = (keypath) => {
|
|
|
339
343
|
}
|
|
340
344
|
i++;
|
|
341
345
|
const numKey = Number(key);
|
|
342
|
-
keys.push(
|
|
346
|
+
keys.push(isInteger(numKey) && !isNaN(numKey) ? numKey : key);
|
|
343
347
|
}
|
|
344
348
|
else if (keypath[i] === '.') {
|
|
345
349
|
i++;
|
package/dist/esm/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,cAAc,sBAAsB,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CACjB,GAAY,EACZ,OAAgB,EAChB,YAAgB,EACD,EAAE;IACjB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC3E,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,GAAY,GAAG,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACnD,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,MAAM,UAAU,GAAG,OAAuC,CAAC;QAE3D,IAAI,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC;YACzB,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,OAAY,CAAC;AACtB,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAY,EAAE,OAAgB,EAAW,EAAE;IAC7D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC3E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,GAAY,GAAG,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,UAAU,GAAG,OAAuC,CAAC;QAE3D,IAAI,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,GAAY,EACZ,GAAgB,EAChB,UAAU,IAAI,OAAO,EAAU,EACtB,EAAE;IACX,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEjB,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,7 @@ import { z } from 'zod/v4';
|
|
|
29
29
|
* // z.object({ users: z.array(z.object({ name: z.string() })) })
|
|
30
30
|
* ```
|
|
31
31
|
*
|
|
32
|
+
* @function
|
|
32
33
|
* @param value - The value to convert to a schema
|
|
33
34
|
* @param options - Configuration options for schema generation
|
|
34
35
|
* @param visited - Internal WeakSet for circular reference detection
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-to-schema.d.ts","sourceRoot":"","sources":["../../src/value-to-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"value-to-schema.d.ts","sourceRoot":"","sources":["../../src/value-to-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAiB3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,eAAO,MAAM,aAAa,GACxB,OAAO,OAAO,EACd,UAAS,oBAAyB,EAClC,yBAA+B,KAC9B,CAAC,CAAC,OAAO,CAAC,GAAG,CA8Uf,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IAQnC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC;;;;;;EAMH,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC;;;;;;EAMH,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod/v4';
|
|
2
|
-
import {
|
|
2
|
+
import { SatisfactionError } from './error.js';
|
|
3
3
|
import { isExpectItExecutor, isNonNullObject, isObject, isPromiseLike, isString, isZodType, } from './guards.js';
|
|
4
4
|
import { RegExpSchema, WrappedPromiseLikeSchema } from './schema.js';
|
|
5
|
+
const { isNaN } = Number;
|
|
6
|
+
const { entries, freeze, hasOwn, keys } = Object;
|
|
7
|
+
const { isArray } = Array;
|
|
5
8
|
/**
|
|
6
9
|
* Recursively converts an arbitrary value to a Zod v4 schema that would
|
|
7
10
|
* validate values with the same structure.
|
|
@@ -32,6 +35,7 @@ import { RegExpSchema, WrappedPromiseLikeSchema } from './schema.js';
|
|
|
32
35
|
* // z.object({ users: z.array(z.object({ name: z.string() })) })
|
|
33
36
|
* ```
|
|
34
37
|
*
|
|
38
|
+
* @function
|
|
35
39
|
* @param value - The value to convert to a schema
|
|
36
40
|
* @param options - Configuration options for schema generation
|
|
37
41
|
* @param visited - Internal WeakSet for circular reference detection
|
|
@@ -56,7 +60,7 @@ export const valueToSchema = (value, options = {}, visited = new WeakSet()) => {
|
|
|
56
60
|
})
|
|
57
61
|
: z.undefined();
|
|
58
62
|
}
|
|
59
|
-
if (
|
|
63
|
+
if (isNaN(value)) {
|
|
60
64
|
return z.nan();
|
|
61
65
|
}
|
|
62
66
|
if (value === Infinity || value === -Infinity) {
|
|
@@ -73,7 +77,7 @@ export const valueToSchema = (value, options = {}, visited = new WeakSet()) => {
|
|
|
73
77
|
if (isExpectItExecutor(value)) {
|
|
74
78
|
// Only allow nested assertions when strict is false (e.g., "to satisfy" semantics)
|
|
75
79
|
if (strict) {
|
|
76
|
-
throw new
|
|
80
|
+
throw new SatisfactionError('ExpectItExecutor (expect.it) functions are not allowed in strict mode. ' +
|
|
77
81
|
'Use "to satisfy" assertions for nested expectations.');
|
|
78
82
|
}
|
|
79
83
|
// Return a schema that executes the ExpectItExecutor when validated
|
|
@@ -107,8 +111,8 @@ export const valueToSchema = (value, options = {}, visited = new WeakSet()) => {
|
|
|
107
111
|
visited.add(value);
|
|
108
112
|
try {
|
|
109
113
|
// Check for objects with own __proto__ property - these can cause unexpected behavior
|
|
110
|
-
if (
|
|
111
|
-
throw new
|
|
114
|
+
if (hasOwn(value, '__proto__')) {
|
|
115
|
+
throw new SatisfactionError('Objects with an own "__proto__" property are not supported by valueToSchema');
|
|
112
116
|
}
|
|
113
117
|
// Handle built-in object types
|
|
114
118
|
if (value instanceof Date) {
|
|
@@ -146,7 +150,7 @@ export const valueToSchema = (value, options = {}, visited = new WeakSet()) => {
|
|
|
146
150
|
return WrappedPromiseLikeSchema;
|
|
147
151
|
}
|
|
148
152
|
// Handle arrays
|
|
149
|
-
if (
|
|
153
|
+
if (isArray(value)) {
|
|
150
154
|
// For arrays, we need to preserve undefined values while allowing
|
|
151
155
|
// other elements to use the original literalPrimitives setting
|
|
152
156
|
const filteredValue = value; // Always process all elements
|
|
@@ -173,6 +177,9 @@ export const valueToSchema = (value, options = {}, visited = new WeakSet()) => {
|
|
|
173
177
|
}
|
|
174
178
|
if (!noMixedArrays) {
|
|
175
179
|
// Helper function to generate structural keys for schemas
|
|
180
|
+
/**
|
|
181
|
+
* @function
|
|
182
|
+
*/
|
|
176
183
|
const getSchemaKey = (zodType) => {
|
|
177
184
|
const schema = zodType;
|
|
178
185
|
if (isZodType(schema, 'literal')) {
|
|
@@ -187,7 +194,7 @@ export const valueToSchema = (value, options = {}, visited = new WeakSet()) => {
|
|
|
187
194
|
// For objects, create a key based on the property keys and their types
|
|
188
195
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
189
196
|
const shape = schema.def.shape;
|
|
190
|
-
const shapeKeys =
|
|
197
|
+
const shapeKeys = keys(shape)
|
|
191
198
|
.sort()
|
|
192
199
|
.map((key) => {
|
|
193
200
|
const propSchema = shape[key];
|
|
@@ -230,7 +237,7 @@ export const valueToSchema = (value, options = {}, visited = new WeakSet()) => {
|
|
|
230
237
|
if (isNonNullObject(value)) {
|
|
231
238
|
const schemaShape = {};
|
|
232
239
|
const undefinedKeys = [];
|
|
233
|
-
for (const [key, val] of
|
|
240
|
+
for (const [key, val] of entries(value)) {
|
|
234
241
|
if (isString(key)) {
|
|
235
242
|
// Skip undefined values unless we're in literalPrimitives mode
|
|
236
243
|
// This prevents objects with only undefined values from matching any object
|
|
@@ -266,7 +273,7 @@ export const valueToSchema = (value, options = {}, visited = new WeakSet()) => {
|
|
|
266
273
|
}
|
|
267
274
|
const obj = data;
|
|
268
275
|
for (const key of undefinedKeys) {
|
|
269
|
-
if (!
|
|
276
|
+
if (!hasOwn(obj, key)) {
|
|
270
277
|
ctx.addIssue({
|
|
271
278
|
code: z.ZodIssueCode.custom,
|
|
272
279
|
message: `Expected property "${key}" to exist with value undefined`,
|
|
@@ -277,9 +284,9 @@ export const valueToSchema = (value, options = {}, visited = new WeakSet()) => {
|
|
|
277
284
|
});
|
|
278
285
|
}
|
|
279
286
|
// Check if this is an empty object and literalEmptyObjects is enabled
|
|
280
|
-
if (
|
|
287
|
+
if (keys(schemaShape).length === 0 && literalEmptyObjects) {
|
|
281
288
|
// Create a schema that only matches empty objects
|
|
282
|
-
return z.custom((val) => isObject(val) &&
|
|
289
|
+
return z.custom((val) => isObject(val) && keys(val).length === 0, {
|
|
283
290
|
message: 'Expected an empty object with no own properties',
|
|
284
291
|
});
|
|
285
292
|
}
|
|
@@ -302,7 +309,7 @@ export const valueToSchema = (value, options = {}, visited = new WeakSet()) => {
|
|
|
302
309
|
* Uses literal primitives and tuples for exact matching while allowing extra
|
|
303
310
|
* properties.
|
|
304
311
|
*/
|
|
305
|
-
export const valueToSchemaOptionsForSatisfies =
|
|
312
|
+
export const valueToSchemaOptionsForSatisfies = freeze({
|
|
306
313
|
literalEmptyObjects: true,
|
|
307
314
|
literalPrimitives: true,
|
|
308
315
|
literalRegExp: false,
|
|
@@ -316,7 +323,7 @@ export const valueToSchemaOptionsForSatisfies = Object.freeze({
|
|
|
316
323
|
* Uses literal primitives, regexp, and tuples with strict validation for exact
|
|
317
324
|
* matching.
|
|
318
325
|
*/
|
|
319
|
-
export const valueToSchemaOptionsForDeepEqual =
|
|
326
|
+
export const valueToSchemaOptionsForDeepEqual = freeze({
|
|
320
327
|
literalEmptyObjects: true,
|
|
321
328
|
literalPrimitives: true,
|
|
322
329
|
literalRegExp: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-to-schema.js","sourceRoot":"","sources":["../../src/value-to-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"value-to-schema.js","sourceRoot":"","sources":["../../src/value-to-schema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bupkis",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Uncommonly extensible assertions for the beautiful people",
|
|
6
6
|
"repository": {
|
|
@@ -79,6 +79,16 @@
|
|
|
79
79
|
"types": "./dist/commonjs/index.d.ts",
|
|
80
80
|
"default": "./dist/commonjs/index.js"
|
|
81
81
|
}
|
|
82
|
+
},
|
|
83
|
+
"./diff": {
|
|
84
|
+
"import": {
|
|
85
|
+
"types": "./dist/esm/diff.d.ts",
|
|
86
|
+
"default": "./dist/esm/diff.js"
|
|
87
|
+
},
|
|
88
|
+
"require": {
|
|
89
|
+
"types": "./dist/commonjs/diff.d.ts",
|
|
90
|
+
"default": "./dist/commonjs/diff.js"
|
|
91
|
+
}
|
|
82
92
|
}
|
|
83
93
|
},
|
|
84
94
|
"files": [
|
|
@@ -110,7 +120,7 @@
|
|
|
110
120
|
"build:dev": "tshy --watch",
|
|
111
121
|
"debug:assertion-ids": "tsx scripts/dump-assertion-ids.ts",
|
|
112
122
|
"docs:build": "typedoc --cleanOutputDir --treatWarningsAsErrors",
|
|
113
|
-
"docs:dev": "run-p build
|
|
123
|
+
"docs:dev": "run-p \"docs:build -- --watch\" docs:serve",
|
|
114
124
|
"docs:serve": "serve docs",
|
|
115
125
|
"lint": "run-p lint:eslint lint:types lint:knip lint:markdown lint:spelling",
|
|
116
126
|
"lint:commit": "commitlint",
|
|
@@ -131,6 +141,7 @@
|
|
|
131
141
|
"test:profile": "run-s \"test:base -- --cpu-prof --cpu-prof-dir=.profiles \\\"test/**/*.test.ts\\\"\"",
|
|
132
142
|
"test:property": "run-s \"test:base -- \\\"test/property/*.test.ts\\\"\"",
|
|
133
143
|
"test:property:dev": "run-s \"test:base -- --watch \\\"test/property/*.test.ts\\\"\"",
|
|
144
|
+
"test:snapshots": "run-s \"test:base -- --test-name-pattern=\\\"<snapshot>\\\" \\\"test/**/*.test.ts\\\"\"",
|
|
134
145
|
"test:update-snapshots": "run-s \"test:base -- --test-update-snapshots --test-name-pattern=\\\"<snapshot>\\\" \\\"test/**/*.test.ts\\\"\""
|
|
135
146
|
},
|
|
136
147
|
"peerDependencies": {
|
|
@@ -138,6 +149,7 @@
|
|
|
138
149
|
},
|
|
139
150
|
"dependencies": {
|
|
140
151
|
"debug": "^4.4.1",
|
|
152
|
+
"jest-diff": "30.1.2",
|
|
141
153
|
"set.prototype.difference": "^1.1.7",
|
|
142
154
|
"set.prototype.intersection": "^1.1.7",
|
|
143
155
|
"set.prototype.isdisjointfrom": "^1.1.5",
|
|
@@ -151,13 +163,15 @@
|
|
|
151
163
|
"zod": "^4.1.5"
|
|
152
164
|
},
|
|
153
165
|
"devDependencies": {
|
|
154
|
-
"@commitlint/cli": "
|
|
155
|
-
"@commitlint/config-conventional": "
|
|
166
|
+
"@commitlint/cli": "20.0.0",
|
|
167
|
+
"@commitlint/config-conventional": "20.0.0",
|
|
156
168
|
"@eslint/js": "9.36.0",
|
|
157
169
|
"@stylistic/eslint-plugin": "5.4.0",
|
|
158
170
|
"@types/node": "24.5.2",
|
|
159
171
|
"@types/slug": "5.0.9",
|
|
160
172
|
"@types/wallabyjs": "0.0.15",
|
|
173
|
+
"@typescript-eslint/typescript-estree": "8.44.1",
|
|
174
|
+
"@typescript-eslint/utils": "8.44.1",
|
|
161
175
|
"c8": "10.1.3",
|
|
162
176
|
"cspell": "9.2.1",
|
|
163
177
|
"escape-string-regexp": "5.0.0",
|
|
@@ -168,8 +182,8 @@
|
|
|
168
182
|
"fast-check": "4.3.0",
|
|
169
183
|
"globals": "16.4.0",
|
|
170
184
|
"husky": "9.1.7",
|
|
171
|
-
"knip": "5.
|
|
172
|
-
"lint-staged": "16.1
|
|
185
|
+
"knip": "5.64.1",
|
|
186
|
+
"lint-staged": "16.2.1",
|
|
173
187
|
"markdownlint-cli2": "0.18.1",
|
|
174
188
|
"markdownlint-cli2-formatter-pretty": "0.0.8",
|
|
175
189
|
"npm-run-all2": "8.0.4",
|
|
@@ -179,16 +193,16 @@
|
|
|
179
193
|
"prettier-plugin-sort-json": "4.1.1",
|
|
180
194
|
"serve": "14.2.5",
|
|
181
195
|
"tshy": "3.0.2",
|
|
182
|
-
"tsx": "4.20.
|
|
196
|
+
"tsx": "4.20.6",
|
|
183
197
|
"type-fest": "4.41.0",
|
|
184
198
|
"typedoc": "0.28.13",
|
|
185
|
-
"typedoc-plugin-dt-links": "2.0.
|
|
199
|
+
"typedoc-plugin-dt-links": "2.0.20",
|
|
186
200
|
"typedoc-plugin-extras": "4.0.1",
|
|
187
201
|
"typedoc-plugin-mdn-links": "5.0.9",
|
|
188
202
|
"typedoc-plugin-redirect": "1.2.0",
|
|
189
203
|
"typedoc-plugin-zod": "1.4.2",
|
|
190
204
|
"typescript": "5.9.2",
|
|
191
|
-
"typescript-eslint": "8.44.
|
|
205
|
+
"typescript-eslint": "8.44.1"
|
|
192
206
|
},
|
|
193
207
|
"publishConfig": {
|
|
194
208
|
"access": "public",
|
|
@@ -211,7 +225,9 @@
|
|
|
211
225
|
],
|
|
212
226
|
"node": {
|
|
213
227
|
"entry": [
|
|
228
|
+
".config/typedoc-plugin-bupkis.js",
|
|
214
229
|
"scripts/*.js",
|
|
230
|
+
"scripts/*.ts",
|
|
215
231
|
"test/**/*.test.ts",
|
|
216
232
|
"test/types.types-test.ts",
|
|
217
233
|
"src/assertion/index.ts",
|
|
@@ -219,7 +235,8 @@
|
|
|
219
235
|
"src/types.ts",
|
|
220
236
|
"src/util.ts",
|
|
221
237
|
"src/schema.ts",
|
|
222
|
-
"src/guards.ts"
|
|
238
|
+
"src/guards.ts",
|
|
239
|
+
"src/diff.ts"
|
|
223
240
|
]
|
|
224
241
|
}
|
|
225
242
|
},
|
|
@@ -258,7 +275,8 @@
|
|
|
258
275
|
"./schema": "./src/schema.ts",
|
|
259
276
|
"./guards": "./src/guards.ts",
|
|
260
277
|
"./assertions": "./src/assertion/index.ts",
|
|
261
|
-
".": "./src/index.ts"
|
|
278
|
+
".": "./src/index.ts",
|
|
279
|
+
"./diff": "./src/diff.ts"
|
|
262
280
|
}
|
|
263
281
|
}
|
|
264
282
|
}
|