bupkis 0.14.0 → 0.17.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 +43 -0
- package/README.md +7 -3
- package/dist/assertion/assertion-async.cjs +14 -27
- package/dist/assertion/assertion-async.cjs.map +1 -1
- package/dist/assertion/assertion-async.d.cts +0 -6
- package/dist/assertion/assertion-async.d.cts.map +1 -1
- package/dist/assertion/assertion-async.d.ts +0 -6
- package/dist/assertion/assertion-async.d.ts.map +1 -1
- package/dist/assertion/assertion-async.js +9 -22
- package/dist/assertion/assertion-async.js.map +1 -1
- package/dist/assertion/assertion-standard-schema-async.cjs +0 -23
- package/dist/assertion/assertion-standard-schema-async.cjs.map +1 -1
- package/dist/assertion/assertion-standard-schema-async.d.cts +0 -12
- package/dist/assertion/assertion-standard-schema-async.d.cts.map +1 -1
- package/dist/assertion/assertion-standard-schema-async.d.ts +0 -12
- package/dist/assertion/assertion-standard-schema-async.d.ts.map +1 -1
- package/dist/assertion/assertion-standard-schema-async.js +0 -23
- package/dist/assertion/assertion-standard-schema-async.js.map +1 -1
- package/dist/assertion/assertion-standard-schema-sync.cjs +0 -23
- package/dist/assertion/assertion-standard-schema-sync.cjs.map +1 -1
- package/dist/assertion/assertion-standard-schema-sync.d.cts +0 -12
- package/dist/assertion/assertion-standard-schema-sync.d.cts.map +1 -1
- package/dist/assertion/assertion-standard-schema-sync.d.ts +0 -12
- package/dist/assertion/assertion-standard-schema-sync.d.ts.map +1 -1
- package/dist/assertion/assertion-standard-schema-sync.js +0 -23
- package/dist/assertion/assertion-standard-schema-sync.js.map +1 -1
- package/dist/assertion/assertion-sync.cjs +11 -24
- package/dist/assertion/assertion-sync.cjs.map +1 -1
- package/dist/assertion/assertion-sync.d.cts +0 -6
- package/dist/assertion/assertion-sync.d.cts.map +1 -1
- package/dist/assertion/assertion-sync.d.ts +0 -6
- package/dist/assertion/assertion-sync.d.ts.map +1 -1
- package/dist/assertion/assertion-sync.js +9 -22
- package/dist/assertion/assertion-sync.js.map +1 -1
- package/dist/assertion/assertion-types.d.cts +52 -1
- package/dist/assertion/assertion-types.d.cts.map +1 -1
- package/dist/assertion/assertion-types.d.ts +52 -1
- package/dist/assertion/assertion-types.d.ts.map +1 -1
- package/dist/assertion/assertion.cjs +24 -2
- package/dist/assertion/assertion.cjs.map +1 -1
- package/dist/assertion/assertion.d.cts +14 -1
- package/dist/assertion/assertion.d.cts.map +1 -1
- package/dist/assertion/assertion.d.ts +14 -1
- package/dist/assertion/assertion.d.ts.map +1 -1
- package/dist/assertion/assertion.js +23 -1
- package/dist/assertion/assertion.js.map +1 -1
- package/dist/assertion/create.cjs +7 -7
- package/dist/assertion/create.cjs.map +1 -1
- package/dist/assertion/create.d.cts +2 -2
- package/dist/assertion/create.d.ts +2 -2
- package/dist/assertion/create.js +3 -3
- package/dist/assertion/create.js.map +1 -1
- package/dist/assertion/format-assertion-failure.cjs +63 -0
- package/dist/assertion/format-assertion-failure.cjs.map +1 -0
- package/dist/assertion/format-assertion-failure.d.cts +21 -0
- package/dist/assertion/format-assertion-failure.d.cts.map +1 -0
- package/dist/assertion/format-assertion-failure.d.ts +21 -0
- package/dist/assertion/format-assertion-failure.d.ts.map +1 -0
- package/dist/assertion/format-assertion-failure.js +59 -0
- package/dist/assertion/format-assertion-failure.js.map +1 -0
- package/dist/assertion/impl/async-iterable.cjs +627 -0
- package/dist/assertion/impl/async-iterable.cjs.map +1 -0
- package/dist/assertion/impl/async-iterable.d.cts +406 -0
- package/dist/assertion/impl/async-iterable.d.cts.map +1 -0
- package/dist/assertion/impl/async-iterable.d.ts +406 -0
- package/dist/assertion/impl/async-iterable.d.ts.map +1 -0
- package/dist/assertion/impl/async-iterable.js +624 -0
- package/dist/assertion/impl/async-iterable.js.map +1 -0
- package/dist/assertion/impl/async-parametric.d.cts +1 -1
- package/dist/assertion/impl/async-parametric.d.cts.map +1 -1
- package/dist/assertion/impl/async-parametric.d.ts +1 -1
- package/dist/assertion/impl/async-parametric.d.ts.map +1 -1
- package/dist/assertion/impl/async.cjs +7 -2
- package/dist/assertion/impl/async.cjs.map +1 -1
- package/dist/assertion/impl/async.d.cts +76 -31
- package/dist/assertion/impl/async.d.cts.map +1 -1
- package/dist/assertion/impl/async.d.ts +76 -31
- package/dist/assertion/impl/async.d.ts.map +1 -1
- package/dist/assertion/impl/async.js +7 -2
- package/dist/assertion/impl/async.js.map +1 -1
- package/dist/assertion/impl/iteration-util.cjs +297 -0
- package/dist/assertion/impl/iteration-util.cjs.map +1 -0
- package/dist/assertion/impl/iteration-util.d.cts +12 -0
- package/dist/assertion/impl/iteration-util.d.cts.map +1 -0
- package/dist/assertion/impl/iteration-util.d.ts +12 -0
- package/dist/assertion/impl/iteration-util.d.ts.map +1 -0
- package/dist/assertion/impl/iteration-util.js +282 -0
- package/dist/assertion/impl/iteration-util.js.map +1 -0
- package/dist/assertion/impl/snapshot.cjs +5 -5
- package/dist/assertion/impl/snapshot.cjs.map +1 -1
- package/dist/assertion/impl/snapshot.d.cts +1 -1
- package/dist/assertion/impl/snapshot.d.cts.map +1 -1
- package/dist/assertion/impl/snapshot.d.ts +1 -1
- package/dist/assertion/impl/snapshot.d.ts.map +1 -1
- package/dist/assertion/impl/snapshot.js +1 -1
- package/dist/assertion/impl/snapshot.js.map +1 -1
- package/dist/assertion/impl/sync-basic.cjs +8 -8
- package/dist/assertion/impl/sync-basic.cjs.map +1 -1
- package/dist/assertion/impl/sync-basic.d.cts +2 -2
- package/dist/assertion/impl/sync-basic.d.cts.map +1 -1
- package/dist/assertion/impl/sync-basic.d.ts +2 -2
- package/dist/assertion/impl/sync-basic.d.ts.map +1 -1
- package/dist/assertion/impl/sync-basic.js +1 -1
- package/dist/assertion/impl/sync-basic.js.map +1 -1
- package/dist/assertion/impl/sync-collection.cjs +49 -11
- package/dist/assertion/impl/sync-collection.cjs.map +1 -1
- package/dist/assertion/impl/sync-collection.d.cts +21 -1
- package/dist/assertion/impl/sync-collection.d.cts.map +1 -1
- package/dist/assertion/impl/sync-collection.d.ts +21 -1
- package/dist/assertion/impl/sync-collection.d.ts.map +1 -1
- package/dist/assertion/impl/sync-collection.js +39 -1
- package/dist/assertion/impl/sync-collection.js.map +1 -1
- package/dist/assertion/impl/sync-date.d.cts +14 -14
- package/dist/assertion/impl/sync-date.d.cts.map +1 -1
- package/dist/assertion/impl/sync-date.d.ts +14 -14
- package/dist/assertion/impl/sync-date.d.ts.map +1 -1
- package/dist/assertion/impl/sync-esoteric.cjs +3 -3
- package/dist/assertion/impl/sync-esoteric.cjs.map +1 -1
- package/dist/assertion/impl/sync-esoteric.d.cts +1 -1
- package/dist/assertion/impl/sync-esoteric.d.cts.map +1 -1
- package/dist/assertion/impl/sync-esoteric.d.ts +1 -1
- package/dist/assertion/impl/sync-esoteric.d.ts.map +1 -1
- package/dist/assertion/impl/sync-esoteric.js +1 -1
- package/dist/assertion/impl/sync-esoteric.js.map +1 -1
- package/dist/assertion/impl/sync-iterable.cjs +512 -0
- package/dist/assertion/impl/sync-iterable.cjs.map +1 -0
- package/dist/assertion/impl/sync-iterable.d.cts +334 -0
- package/dist/assertion/impl/sync-iterable.d.cts.map +1 -0
- package/dist/assertion/impl/sync-iterable.d.ts +334 -0
- package/dist/assertion/impl/sync-iterable.d.ts.map +1 -0
- package/dist/assertion/impl/sync-iterable.js +509 -0
- package/dist/assertion/impl/sync-iterable.js.map +1 -0
- package/dist/assertion/impl/sync-parametric.cjs +30 -4
- package/dist/assertion/impl/sync-parametric.cjs.map +1 -1
- package/dist/assertion/impl/sync-parametric.d.cts +21 -2
- package/dist/assertion/impl/sync-parametric.d.cts.map +1 -1
- package/dist/assertion/impl/sync-parametric.d.ts +21 -2
- package/dist/assertion/impl/sync-parametric.d.ts.map +1 -1
- package/dist/assertion/impl/sync-parametric.js +27 -1
- package/dist/assertion/impl/sync-parametric.js.map +1 -1
- package/dist/assertion/impl/sync.cjs +5 -0
- package/dist/assertion/impl/sync.cjs.map +1 -1
- package/dist/assertion/impl/sync.d.cts +186 -137
- package/dist/assertion/impl/sync.d.cts.map +1 -1
- package/dist/assertion/impl/sync.d.ts +186 -137
- package/dist/assertion/impl/sync.d.ts.map +1 -1
- package/dist/assertion/impl/sync.js +7 -2
- package/dist/assertion/impl/sync.js.map +1 -1
- package/dist/assertion/slotify.cjs +5 -5
- package/dist/assertion/slotify.cjs.map +1 -1
- package/dist/assertion/slotify.js +1 -1
- package/dist/assertion/slotify.js.map +1 -1
- package/dist/constant.cjs +10 -11
- package/dist/constant.cjs.map +1 -1
- package/dist/constant.d.cts +19 -3
- package/dist/constant.d.cts.map +1 -1
- package/dist/constant.d.ts +19 -3
- package/dist/constant.d.ts.map +1 -1
- package/dist/constant.js +10 -11
- package/dist/constant.js.map +1 -1
- package/dist/diff.cjs +20 -31
- package/dist/diff.cjs.map +1 -1
- package/dist/diff.d.cts +1 -1
- package/dist/diff.d.cts.map +1 -1
- package/dist/diff.d.ts +1 -1
- package/dist/diff.d.ts.map +1 -1
- package/dist/diff.js +20 -31
- package/dist/diff.js.map +1 -1
- package/dist/error.cjs +2 -4
- package/dist/error.cjs.map +1 -1
- package/dist/error.d.cts +21 -4
- package/dist/error.d.cts.map +1 -1
- package/dist/error.d.ts +21 -4
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +2 -4
- package/dist/error.js.map +1 -1
- package/dist/expect.cjs +109 -146
- package/dist/expect.cjs.map +1 -1
- package/dist/expect.d.cts.map +1 -1
- package/dist/expect.d.ts.map +1 -1
- package/dist/expect.js +109 -146
- package/dist/expect.js.map +1 -1
- package/dist/guards.cjs +4 -3
- package/dist/guards.cjs.map +1 -1
- package/dist/guards.d.cts +2 -3
- package/dist/guards.d.cts.map +1 -1
- package/dist/guards.d.ts +2 -3
- package/dist/guards.d.ts.map +1 -1
- package/dist/guards.js +4 -3
- package/dist/guards.js.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +105 -12
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +105 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal-schema.cjs +55 -36
- package/dist/internal-schema.cjs.map +1 -1
- package/dist/internal-schema.d.cts.map +1 -1
- package/dist/internal-schema.d.ts.map +1 -1
- package/dist/internal-schema.js +20 -1
- package/dist/internal-schema.js.map +1 -1
- package/dist/metadata.cjs +16 -16
- package/dist/metadata.cjs.map +1 -1
- package/dist/metadata.d.cts +1 -4
- package/dist/metadata.d.cts.map +1 -1
- package/dist/metadata.d.ts +1 -4
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +1 -1
- package/dist/metadata.js.map +1 -1
- package/dist/schema.cjs +344 -101
- package/dist/schema.cjs.map +1 -1
- package/dist/schema.d.cts +221 -43
- package/dist/schema.d.cts.map +1 -1
- package/dist/schema.d.ts +221 -43
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +278 -36
- package/dist/schema.js.map +1 -1
- package/dist/snapshot/adapters/node-test.cjs +25 -1
- package/dist/snapshot/adapters/node-test.cjs.map +1 -1
- package/dist/snapshot/adapters/node-test.d.cts +2 -1
- package/dist/snapshot/adapters/node-test.d.cts.map +1 -1
- package/dist/snapshot/adapters/node-test.d.ts +2 -1
- package/dist/snapshot/adapters/node-test.d.ts.map +1 -1
- package/dist/snapshot/adapters/node-test.js +25 -1
- package/dist/snapshot/adapters/node-test.js.map +1 -1
- package/dist/snapshot/index.cjs +7 -1
- package/dist/snapshot/index.cjs.map +1 -1
- package/dist/snapshot/index.d.cts +3 -2
- package/dist/snapshot/index.d.cts.map +1 -1
- package/dist/snapshot/index.d.ts +3 -2
- package/dist/snapshot/index.d.ts.map +1 -1
- package/dist/snapshot/index.js +2 -0
- package/dist/snapshot/index.js.map +1 -1
- package/dist/snapshot/node-version.cjs +49 -0
- package/dist/snapshot/node-version.cjs.map +1 -0
- package/dist/snapshot/node-version.d.cts +34 -0
- package/dist/snapshot/node-version.d.cts.map +1 -0
- package/dist/snapshot/node-version.d.ts +34 -0
- package/dist/snapshot/node-version.d.ts.map +1 -0
- package/dist/snapshot/node-version.js +44 -0
- package/dist/snapshot/node-version.js.map +1 -0
- package/dist/types.d.cts +1 -3
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.ts +1 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/util.cjs +2 -134
- package/dist/util.cjs.map +1 -1
- package/dist/util.d.cts +1 -55
- package/dist/util.d.cts.map +1 -1
- package/dist/util.d.ts +1 -55
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +1 -131
- package/dist/util.js.map +1 -1
- package/dist/value-to-schema.cjs +89 -45
- package/dist/value-to-schema.cjs.map +1 -1
- package/dist/value-to-schema.d.cts +1 -1
- package/dist/value-to-schema.d.cts.map +1 -1
- package/dist/value-to-schema.d.ts +1 -1
- package/dist/value-to-schema.d.ts.map +1 -1
- package/dist/value-to-schema.js +53 -9
- package/dist/value-to-schema.js.map +1 -1
- package/package.json +44 -146
- package/src/assertion/assertion-async.ts +23 -39
- package/src/assertion/assertion-standard-schema-async.ts +4 -31
- package/src/assertion/assertion-standard-schema-sync.ts +4 -31
- package/src/assertion/assertion-sync.ts +23 -39
- package/src/assertion/assertion-types.ts +61 -3
- package/src/assertion/assertion.ts +28 -3
- package/src/assertion/create.ts +3 -3
- package/src/assertion/format-assertion-failure.ts +72 -0
- package/src/assertion/impl/async-iterable.ts +749 -0
- package/src/assertion/impl/async-parametric.ts +1 -1
- package/src/assertion/impl/async.ts +7 -2
- package/src/assertion/impl/iteration-util.ts +379 -0
- package/src/assertion/impl/snapshot.ts +1 -1
- package/src/assertion/impl/sync-basic.ts +1 -1
- package/src/assertion/impl/sync-collection.ts +46 -1
- package/src/assertion/impl/sync-esoteric.ts +1 -1
- package/src/assertion/impl/sync-iterable.ts +593 -0
- package/src/assertion/impl/sync-parametric.ts +30 -1
- package/src/assertion/impl/sync.ts +7 -0
- package/src/assertion/slotify.ts +1 -1
- package/src/constant.ts +15 -13
- package/src/diff.ts +27 -36
- package/src/error.ts +5 -6
- package/src/expect.ts +133 -178
- package/src/guards.ts +7 -4
- package/src/index.ts +15 -7
- package/src/internal-schema.ts +21 -2
- package/src/metadata.ts +1 -1
- package/src/schema.ts +302 -36
- package/src/snapshot/adapters/node-test.ts +28 -1
- package/src/snapshot/index.ts +10 -2
- package/src/snapshot/node-version.ts +50 -0
- package/src/types.ts +1 -1
- package/src/util.ts +1 -149
- package/src/value-to-schema.ts +71 -12
- package/LICENSE.md +0 -55
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,48 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.17.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.16.0...bupkis-v0.17.0) (2026-01-14)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **bupkis:** support objects with own __proto__ property in valueToSchema ([6e3bb1d](https://github.com/boneskull/bupkis/commit/6e3bb1d1a6ebc2534044e8d1222e2a6e0045dfc3))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **deps:** fix deps, RP, versioning, etc. ([970529b](https://github.com/boneskull/bupkis/commit/970529b498f2bd61055181ac9e4c0ddaac9511fb))
|
|
14
|
+
|
|
15
|
+
## [0.16.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.15.0...bupkis-v0.16.0) (2026-01-14)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* **bupkis:** add iterable and async iterable assertions ([#326](https://github.com/boneskull/bupkis/issues/326)) ([cb33787](https://github.com/boneskull/bupkis/commit/cb337872d5b57ff9c5dc6ef779fb9e6910efef92))
|
|
21
|
+
* **bupkis:** add target filtering to fuzzer ([3cc8c2c](https://github.com/boneskull/bupkis/commit/3cc8c2cda209011054c14af0a67e0a213b9d41ff))
|
|
22
|
+
* **property-testing:** create @bupkis/property-testing ([#319](https://github.com/boneskull/bupkis/issues/319)) ([fbb378f](https://github.com/boneskull/bupkis/commit/fbb378f709e806c6d455bf77cafe55219302e2bb))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* **bupkis:** expose NegatedAssertionError ([eb0754e](https://github.com/boneskull/bupkis/commit/eb0754e9932b9ae6d73506f893a781e84445985f))
|
|
28
|
+
* **bupkis:** recycle fuzzer workers to prevent OOM ([2e0ab31](https://github.com/boneskull/bupkis/commit/2e0ab317ef2f80621505786a85886e324fd35638))
|
|
29
|
+
* **bupkis:** use Symbol.for() for cross-module symbol identity ([daf94f4](https://github.com/boneskull/bupkis/commit/daf94f4f6ef44065caf88075719f7a0e80092cdf))
|
|
30
|
+
* **snapshot:** require Node.js v22+ for node:test snapshot testing ([25f92c3](https://github.com/boneskull/bupkis/commit/25f92c3fdbbaa3f9f823aa8cc61876577734388a))
|
|
31
|
+
|
|
32
|
+
## [0.15.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.14.0...bupkis-v0.15.0) (2026-01-11)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### Features
|
|
36
|
+
|
|
37
|
+
* **assertions:** add arrayItemSatisfiesAssertion ([220497b](https://github.com/boneskull/bupkis/commit/220497bbf65608d56fd6d12a3f321e5de5c71b6d))
|
|
38
|
+
* **assertions:** add stringLengthAssertion ([68e481f](https://github.com/boneskull/bupkis/commit/68e481fe5e70ac41116b781cf75c725813a4eace))
|
|
39
|
+
* custom diff support ([#308](https://github.com/boneskull/bupkis/issues/308)) ([5f07964](https://github.com/boneskull/bupkis/commit/5f079647503804129a49a4f1525bdd146d45b653))
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
### Bug Fixes
|
|
43
|
+
|
|
44
|
+
* **test:** filter Set generator to ensure minimum size after deduping ([93298e5](https://github.com/boneskull/bupkis/commit/93298e5e96474e73ac99fbd04713d9d379d128f1))
|
|
45
|
+
|
|
3
46
|
## [0.14.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.13.0...bupkis-v0.14.0) (2025-12-10)
|
|
4
47
|
|
|
5
48
|
|
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<a href="/"><img src="
|
|
2
|
+
<a href="/"><img src="../../site/media/bupkis-logo-512.png" width="512px" align="center" alt="BUPKIS: The Glory of Certainty"/></a>
|
|
3
3
|
<h1 align="center"><span class="bupkis">⁓ BUPKIS ⁓<span></h1>
|
|
4
4
|
<p align="center">
|
|
5
5
|
<em>“Uncommonly Extensible Assertions for The Beautiful People”</em>
|
|
@@ -91,7 +91,7 @@ This isn't black magic. It ain't no _cauldron_. We're not just _throwing rat tai
|
|
|
91
91
|
|
|
92
92
|
You may wonder how this could this be anything _but_ loosey-goosey _senselessness_. On the contrary—we have _conventions_!
|
|
93
93
|
|
|
94
|
-
#### Conventions of
|
|
94
|
+
#### Conventions of expect()
|
|
95
95
|
|
|
96
96
|
To formalize the conventions at a high level:
|
|
97
97
|
|
|
@@ -205,6 +205,8 @@ expect('skiball lavatory', 'to be a string');
|
|
|
205
205
|
|
|
206
206
|
**Any [Standard Schema V1][standard schema] library makes it extremely easy to create most custom assertions**. Whether you prefer [Zod][], [Valibot][], [ArkType][], or another compliant library, they all work seamlessly. But despite their power, validation libraries can't do _everything_ we need an assertion to do; for those situations, there's also a [function-based API][custom-assertion-function] for use with [parametric][] and [behavioral][] (e.g., involving function execution) assertions.
|
|
207
207
|
|
|
208
|
+
Function-based assertions can provide **rich diff output** through customizable formatting options—supply pre-computed diffs, custom value formatters, or [jest-diff][] configuration to make assertion failures crystal clear.
|
|
209
|
+
|
|
208
210
|
👉 For an assiduous guide on creating assertions, read [Guide: How to Create a Custom Assertion][create-a-custom-assertion].
|
|
209
211
|
|
|
210
212
|
### Excruciating Type Safety
|
|
@@ -255,8 +257,9 @@ TODO: think of good reason and fill in later
|
|
|
255
257
|
|
|
256
258
|
## License
|
|
257
259
|
|
|
258
|
-
Copyright © 2025 Christopher Hiller. Licensed under [BlueOak-1.0.0](https://blueoakcouncil.org/license/1.0.0).
|
|
260
|
+
Copyright © 2025 [Christopher "boneskull" Hiller][boneskull]. Licensed under [BlueOak-1.0.0](https://blueoakcouncil.org/license/1.0.0).
|
|
259
261
|
|
|
262
|
+
[boneskull]: https://github.com/boneskull
|
|
260
263
|
[standard schema]: https://standardschema.dev
|
|
261
264
|
[zod]: https://zod.dev
|
|
262
265
|
[valibot]: https://valibot.dev
|
|
@@ -275,3 +278,4 @@ Copyright © 2025 Christopher Hiller. Licensed under [BlueOak-1.0.0](https://blu
|
|
|
275
278
|
[embeddable assertions]: https://bupkis.zip/documents/Basic_Usage#embeddable-assertions
|
|
276
279
|
[unexpected-to-satisfy]: https://unexpected.js.org/assertions/any/to-satisfy/
|
|
277
280
|
[behavioral]: https://bupkis.zip/glossary#behavioral-assertion
|
|
281
|
+
[jest-diff]: https://npm.im/jest-diff
|
|
@@ -5,13 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.BupkisAssertionSchemaAsync = exports.BupkisAssertionFunctionAsync = exports.BupkisAssertionAsync = void 0;
|
|
7
7
|
const util_1 = require("util");
|
|
8
|
-
const
|
|
9
|
-
const constant_js_1 = require("../constant.cjs");
|
|
8
|
+
const zod_1 = __importDefault(require("zod"));
|
|
10
9
|
const error_js_1 = require("../error.cjs");
|
|
11
10
|
const guards_js_1 = require("../guards.cjs");
|
|
12
11
|
const internal_schema_js_1 = require("../internal-schema.cjs");
|
|
13
|
-
const metadata_js_1 = require("../metadata.cjs");
|
|
14
12
|
const assertion_js_1 = require("./assertion.cjs");
|
|
13
|
+
const format_assertion_failure_js_1 = require("./format-assertion-failure.cjs");
|
|
15
14
|
class BupkisAssertionAsync extends assertion_js_1.BupkisAssertion {
|
|
16
15
|
async parseValuesAsync(args) {
|
|
17
16
|
const { slots } = this;
|
|
@@ -81,7 +80,7 @@ class BupkisAssertionFunctionAsync extends BupkisAssertionAsync {
|
|
|
81
80
|
if (error_js_1.AssertionError.isAssertionError(err)) {
|
|
82
81
|
throw err;
|
|
83
82
|
}
|
|
84
|
-
if ((0, guards_js_1.isError)(err) && err instanceof
|
|
83
|
+
if ((0, guards_js_1.isError)(err) && err instanceof zod_1.default.ZodError) {
|
|
85
84
|
throw this.fromZodError(err, stackStartFn, parsedValues);
|
|
86
85
|
}
|
|
87
86
|
throw new error_js_1.AssertionImplementationError(`Unexpected error thrown from assertion ${this}: ${err}`, { cause: err });
|
|
@@ -91,7 +90,7 @@ class BupkisAssertionFunctionAsync extends BupkisAssertionAsync {
|
|
|
91
90
|
await result.parseAsync(parsedValues[0]);
|
|
92
91
|
}
|
|
93
92
|
catch (error) {
|
|
94
|
-
if ((0, guards_js_1.isA)(error,
|
|
93
|
+
if ((0, guards_js_1.isA)(error, zod_1.default.ZodError)) {
|
|
95
94
|
throw this.fromZodError(error, stackStartFn, parsedValues);
|
|
96
95
|
}
|
|
97
96
|
throw error;
|
|
@@ -114,7 +113,7 @@ class BupkisAssertionFunctionAsync extends BupkisAssertionAsync {
|
|
|
114
113
|
});
|
|
115
114
|
}
|
|
116
115
|
}
|
|
117
|
-
else if ((0, guards_js_1.isError)(result) && result instanceof
|
|
116
|
+
else if ((0, guards_js_1.isError)(result) && result instanceof zod_1.default.ZodError) {
|
|
118
117
|
throw this.fromZodError(result, stackStartFn, parsedValues);
|
|
119
118
|
}
|
|
120
119
|
else if ((0, internal_schema_js_1.isAssertionParseRequest)(result)) {
|
|
@@ -143,12 +142,17 @@ class BupkisAssertionFunctionAsync extends BupkisAssertionAsync {
|
|
|
143
142
|
}
|
|
144
143
|
}
|
|
145
144
|
else if ((0, internal_schema_js_1.isAssertionFailure)(result)) {
|
|
145
|
+
const diffOutput = (0, format_assertion_failure_js_1.formatAssertionFailure)(result);
|
|
146
|
+
const baseMessage = result.message ??
|
|
147
|
+
`Assertion ${this} failed for arguments: ${(0, util_1.inspect)(args)}`;
|
|
148
|
+
const message = diffOutput
|
|
149
|
+
? `${baseMessage}\n${diffOutput}`
|
|
150
|
+
: baseMessage;
|
|
146
151
|
throw new error_js_1.AssertionError({
|
|
147
152
|
actual: result.actual,
|
|
148
153
|
expected: result.expected,
|
|
149
154
|
id: this.id,
|
|
150
|
-
message
|
|
151
|
-
`Assertion ${this} failed for arguments: ${(0, util_1.inspect)(args)}`,
|
|
155
|
+
message,
|
|
152
156
|
});
|
|
153
157
|
}
|
|
154
158
|
else if (result) {
|
|
@@ -187,7 +191,7 @@ class BupkisAssertionSchemaAsync extends BupkisAssertionAsync {
|
|
|
187
191
|
await this.impl.parseAsync(subject);
|
|
188
192
|
}
|
|
189
193
|
catch (error) {
|
|
190
|
-
if ((0, guards_js_1.isA)(error,
|
|
194
|
+
if ((0, guards_js_1.isA)(error, zod_1.default.ZodError)) {
|
|
191
195
|
throw this.fromZodError(error, stackStartFn, parsedValues);
|
|
192
196
|
}
|
|
193
197
|
/* c8 ignore next */
|
|
@@ -223,7 +227,7 @@ class BupkisAssertionSchemaAsync extends BupkisAssertionAsync {
|
|
|
223
227
|
parsedValues.push(result); // Use validated data
|
|
224
228
|
}
|
|
225
229
|
catch (error) {
|
|
226
|
-
if ((0, guards_js_1.isA)(error,
|
|
230
|
+
if ((0, guards_js_1.isA)(error, zod_1.default.ZodError)) {
|
|
227
231
|
subjectValidationResult = { error, success: false };
|
|
228
232
|
parsedValues.push(arg); // Keep original for error reporting
|
|
229
233
|
}
|
|
@@ -259,23 +263,6 @@ class BupkisAssertionSchemaAsync extends BupkisAssertionAsync {
|
|
|
259
263
|
}
|
|
260
264
|
return result;
|
|
261
265
|
}
|
|
262
|
-
/**
|
|
263
|
-
* Determines if this assertion can be optimized (simple single-subject
|
|
264
|
-
* schema). Only simple assertions like ['to be a string'] with z.string()
|
|
265
|
-
* qualify.
|
|
266
|
-
*/
|
|
267
|
-
isSimpleSchemaAssertion() {
|
|
268
|
-
// Only optimize if we have exactly one subject slot + string literal slots
|
|
269
|
-
// and no complex argument processing
|
|
270
|
-
const hasSubjectSlot = this.slots.length > 0 &&
|
|
271
|
-
(this.slots[0]?.def.type === 'unknown' ||
|
|
272
|
-
this.slots[0]?.def.type === 'any');
|
|
273
|
-
const allOtherSlotsAreLiterals = this.slots.slice(1).every((slot) => {
|
|
274
|
-
const meta = metadata_js_1.BupkisRegistry.get(slot) ?? {};
|
|
275
|
-
return constant_js_1.kStringLiteral in meta;
|
|
276
|
-
});
|
|
277
|
-
return hasSubjectSlot && allOtherSlotsAreLiterals;
|
|
278
|
-
}
|
|
279
266
|
}
|
|
280
267
|
exports.BupkisAssertionSchemaAsync = BupkisAssertionSchemaAsync;
|
|
281
268
|
//# sourceMappingURL=assertion-async.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion-async.js","sourceRoot":"","sources":["../../src/assertion/assertion-async.ts"],"names":[],"mappings":";;;;;;AAAA,+BAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"assertion-async.js","sourceRoot":"","sources":["../../src/assertion/assertion-async.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,11 +36,5 @@ export declare class BupkisAssertionFunctionAsync<Parts extends AssertionParts,
|
|
|
36
36
|
export declare class BupkisAssertionSchemaAsync<Parts extends AssertionParts, Impl extends AssertionImplSchemaAsync<Parts>, Slots extends AssertionSlots<Parts>> extends BupkisAssertionAsync<Parts, Impl, Slots> implements AssertionSchemaAsync<Parts, Impl, Slots> {
|
|
37
37
|
executeAsync(parsedValues: ParsedValues<Parts>, _args: unknown[], stackStartFn: (...args: any[]) => any, parseResult?: ParsedResult<Parts>): Promise<void>;
|
|
38
38
|
parseValuesAsync<Args extends readonly unknown[]>(args: Args): Promise<ParsedResult<Parts>>;
|
|
39
|
-
/**
|
|
40
|
-
* Determines if this assertion can be optimized (simple single-subject
|
|
41
|
-
* schema). Only simple assertions like ['to be a string'] with z.string()
|
|
42
|
-
* qualify.
|
|
43
|
-
*/
|
|
44
|
-
private isSimpleSchemaAssertion;
|
|
45
39
|
}
|
|
46
40
|
//# sourceMappingURL=assertion-async.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion-async.d.ts","sourceRoot":"","sources":["../../src/assertion/assertion-async.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assertion-async.d.ts","sourceRoot":"","sources":["../../src/assertion/assertion-async.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAEzB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,YAAY,EAEjB,KAAK,YAAY,EAClB,8BAA6B;AAC9B,OAAO,EAAE,eAAe,EAAE,wBAAuB;AAGjD,8BAAsB,oBAAoB,CACxC,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,kBAAkB,CAAC,KAAK,CAAC,EACtC,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAEnC,SAAQ,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAC1C,YAAW,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IAE7C,QAAQ,CAAC,YAAY,CACnB,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,EACjC,IAAI,EAAE,OAAO,EAAE,EACf,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACrC,WAAW,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;IAEV,gBAAgB,CAAC,IAAI,SAAS,SAAS,OAAO,EAAE,EACpD,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;CAyChC;AACD;;;;GAIG;AACH;;;;;;;;GAQG;AAEH,qBAAa,4BAA4B,CACvC,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,oBAAoB,CAAC,KAAK,CAAC,EACxC,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAEnC,SAAQ,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAC/C,YAAW,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IAEtC,YAAY,CACzB,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,EACjC,IAAI,EAAE,OAAO,EAAE,EACf,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACrC,YAAY,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC;CAuGjB;AAED;;;;;;;;;;;GAWG;AAEH,qBAAa,0BAA0B,CACrC,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,wBAAwB,CAAC,KAAK,CAAC,EAC5C,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAEnC,SAAQ,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAC/C,YAAW,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IAEpC,YAAY,CACzB,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,EACjC,KAAK,EAAE,OAAO,EAAE,EAChB,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACrC,WAAW,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;IA8BD,gBAAgB,CAAC,IAAI,SAAS,SAAS,OAAO,EAAE,EAC7D,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;CAwEhC"}
|
|
@@ -36,11 +36,5 @@ export declare class BupkisAssertionFunctionAsync<Parts extends AssertionParts,
|
|
|
36
36
|
export declare class BupkisAssertionSchemaAsync<Parts extends AssertionParts, Impl extends AssertionImplSchemaAsync<Parts>, Slots extends AssertionSlots<Parts>> extends BupkisAssertionAsync<Parts, Impl, Slots> implements AssertionSchemaAsync<Parts, Impl, Slots> {
|
|
37
37
|
executeAsync(parsedValues: ParsedValues<Parts>, _args: unknown[], stackStartFn: (...args: any[]) => any, parseResult?: ParsedResult<Parts>): Promise<void>;
|
|
38
38
|
parseValuesAsync<Args extends readonly unknown[]>(args: Args): Promise<ParsedResult<Parts>>;
|
|
39
|
-
/**
|
|
40
|
-
* Determines if this assertion can be optimized (simple single-subject
|
|
41
|
-
* schema). Only simple assertions like ['to be a string'] with z.string()
|
|
42
|
-
* qualify.
|
|
43
|
-
*/
|
|
44
|
-
private isSimpleSchemaAssertion;
|
|
45
39
|
}
|
|
46
40
|
//# sourceMappingURL=assertion-async.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion-async.d.ts","sourceRoot":"","sources":["../../src/assertion/assertion-async.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assertion-async.d.ts","sourceRoot":"","sources":["../../src/assertion/assertion-async.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAEzB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,YAAY,EAEjB,KAAK,YAAY,EAClB,6BAA6B;AAC9B,OAAO,EAAE,eAAe,EAAE,uBAAuB;AAGjD,8BAAsB,oBAAoB,CACxC,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,kBAAkB,CAAC,KAAK,CAAC,EACtC,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAEnC,SAAQ,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAC1C,YAAW,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IAE7C,QAAQ,CAAC,YAAY,CACnB,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,EACjC,IAAI,EAAE,OAAO,EAAE,EACf,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACrC,WAAW,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;IAEV,gBAAgB,CAAC,IAAI,SAAS,SAAS,OAAO,EAAE,EACpD,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;CAyChC;AACD;;;;GAIG;AACH;;;;;;;;GAQG;AAEH,qBAAa,4BAA4B,CACvC,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,oBAAoB,CAAC,KAAK,CAAC,EACxC,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAEnC,SAAQ,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAC/C,YAAW,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IAEtC,YAAY,CACzB,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,EACjC,IAAI,EAAE,OAAO,EAAE,EACf,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACrC,YAAY,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC;CAuGjB;AAED;;;;;;;;;;;GAWG;AAEH,qBAAa,0BAA0B,CACrC,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,wBAAwB,CAAC,KAAK,CAAC,EAC5C,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAEnC,SAAQ,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAC/C,YAAW,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IAEpC,YAAY,CACzB,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,EACjC,KAAK,EAAE,OAAO,EAAE,EAChB,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACrC,WAAW,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;IA8BD,gBAAgB,CAAC,IAAI,SAAS,SAAS,OAAO,EAAE,EAC7D,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;CAwEhC"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { inspect } from 'util';
|
|
2
|
-
import z from 'zod
|
|
3
|
-
import { kStringLiteral } from "../constant.js";
|
|
2
|
+
import z from 'zod';
|
|
4
3
|
import { AssertionError, AssertionImplementationError } from "../error.js";
|
|
5
4
|
import { isA, isBoolean, isError, isStandardSchema, isZodType, } from "../guards.js";
|
|
6
5
|
import { isAssertionFailure, isAssertionParseRequest, } from "../internal-schema.js";
|
|
7
|
-
import { BupkisRegistry } from "../metadata.js";
|
|
8
6
|
import { BupkisAssertion } from "./assertion.js";
|
|
7
|
+
import { formatAssertionFailure } from "./format-assertion-failure.js";
|
|
9
8
|
export class BupkisAssertionAsync extends BupkisAssertion {
|
|
10
9
|
async parseValuesAsync(args) {
|
|
11
10
|
const { slots } = this;
|
|
@@ -136,12 +135,17 @@ export class BupkisAssertionFunctionAsync extends BupkisAssertionAsync {
|
|
|
136
135
|
}
|
|
137
136
|
}
|
|
138
137
|
else if (isAssertionFailure(result)) {
|
|
138
|
+
const diffOutput = formatAssertionFailure(result);
|
|
139
|
+
const baseMessage = result.message ??
|
|
140
|
+
`Assertion ${this} failed for arguments: ${inspect(args)}`;
|
|
141
|
+
const message = diffOutput
|
|
142
|
+
? `${baseMessage}\n${diffOutput}`
|
|
143
|
+
: baseMessage;
|
|
139
144
|
throw new AssertionError({
|
|
140
145
|
actual: result.actual,
|
|
141
146
|
expected: result.expected,
|
|
142
147
|
id: this.id,
|
|
143
|
-
message
|
|
144
|
-
`Assertion ${this} failed for arguments: ${inspect(args)}`,
|
|
148
|
+
message,
|
|
145
149
|
});
|
|
146
150
|
}
|
|
147
151
|
else if (result) {
|
|
@@ -251,22 +255,5 @@ export class BupkisAssertionSchemaAsync extends BupkisAssertionAsync {
|
|
|
251
255
|
}
|
|
252
256
|
return result;
|
|
253
257
|
}
|
|
254
|
-
/**
|
|
255
|
-
* Determines if this assertion can be optimized (simple single-subject
|
|
256
|
-
* schema). Only simple assertions like ['to be a string'] with z.string()
|
|
257
|
-
* qualify.
|
|
258
|
-
*/
|
|
259
|
-
isSimpleSchemaAssertion() {
|
|
260
|
-
// Only optimize if we have exactly one subject slot + string literal slots
|
|
261
|
-
// and no complex argument processing
|
|
262
|
-
const hasSubjectSlot = this.slots.length > 0 &&
|
|
263
|
-
(this.slots[0]?.def.type === 'unknown' ||
|
|
264
|
-
this.slots[0]?.def.type === 'any');
|
|
265
|
-
const allOtherSlotsAreLiterals = this.slots.slice(1).every((slot) => {
|
|
266
|
-
const meta = BupkisRegistry.get(slot) ?? {};
|
|
267
|
-
return kStringLiteral in meta;
|
|
268
|
-
});
|
|
269
|
-
return hasSubjectSlot && allOtherSlotsAreLiterals;
|
|
270
|
-
}
|
|
271
258
|
}
|
|
272
259
|
//# sourceMappingURL=assertion-async.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion-async.js","sourceRoot":"","sources":["../../src/assertion/assertion-async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"assertion-async.js","sourceRoot":"","sources":["../../src/assertion/assertion-async.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,6 @@
|
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.BupkisAssertionStandardSchemaAsync = void 0;
|
|
13
|
-
const constant_js_1 = require("../constant.cjs");
|
|
14
|
-
const metadata_js_1 = require("../metadata.cjs");
|
|
15
13
|
const assertion_js_1 = require("./assertion.cjs");
|
|
16
14
|
/**
|
|
17
15
|
* An asynchronous assertion implemented using a Standard Schema v1 validator.
|
|
@@ -129,27 +127,6 @@ class BupkisAssertionStandardSchemaAsync extends assertion_js_1.BupkisAssertion
|
|
|
129
127
|
}
|
|
130
128
|
return result;
|
|
131
129
|
}
|
|
132
|
-
/**
|
|
133
|
-
* Determines if this is a simple schema assertion eligible for optimization.
|
|
134
|
-
*
|
|
135
|
-
* Returns true when the assertion has:
|
|
136
|
-
*
|
|
137
|
-
* - Exactly one subject slot (unknown/any type)
|
|
138
|
-
* - Only phrase literal slots after the subject
|
|
139
|
-
* - No complex argument processing
|
|
140
|
-
*
|
|
141
|
-
* @returns True if optimization can be applied
|
|
142
|
-
*/
|
|
143
|
-
isSimpleSchemaAssertion() {
|
|
144
|
-
const hasSubjectSlot = this.slots.length > 0 &&
|
|
145
|
-
(this.slots[0]?.def.type === 'unknown' ||
|
|
146
|
-
this.slots[0]?.def.type === 'any');
|
|
147
|
-
const allOtherSlotsAreLiterals = this.slots.slice(1).every((slot) => {
|
|
148
|
-
const meta = metadata_js_1.BupkisRegistry.get(slot) ?? {};
|
|
149
|
-
return constant_js_1.kStringLiteral in meta;
|
|
150
|
-
});
|
|
151
|
-
return hasSubjectSlot && allOtherSlotsAreLiterals;
|
|
152
|
-
}
|
|
153
130
|
}
|
|
154
131
|
exports.BupkisAssertionStandardSchemaAsync = BupkisAssertionStandardSchemaAsync;
|
|
155
132
|
//# sourceMappingURL=assertion-standard-schema-async.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion-standard-schema-async.js","sourceRoot":"","sources":["../../src/assertion/assertion-standard-schema-async.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAYH,
|
|
1
|
+
{"version":3,"file":"assertion-standard-schema-async.js","sourceRoot":"","sources":["../../src/assertion/assertion-standard-schema-async.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,17 +48,5 @@ export declare class BupkisAssertionStandardSchemaAsync<Parts extends AssertionP
|
|
|
48
48
|
* @returns Promise resolving to parse result with cached validation
|
|
49
49
|
*/
|
|
50
50
|
parseValuesAsync<Args extends readonly unknown[]>(args: Args): Promise<ParsedResult<Parts>>;
|
|
51
|
-
/**
|
|
52
|
-
* Determines if this is a simple schema assertion eligible for optimization.
|
|
53
|
-
*
|
|
54
|
-
* Returns true when the assertion has:
|
|
55
|
-
*
|
|
56
|
-
* - Exactly one subject slot (unknown/any type)
|
|
57
|
-
* - Only phrase literal slots after the subject
|
|
58
|
-
* - No complex argument processing
|
|
59
|
-
*
|
|
60
|
-
* @returns True if optimization can be applied
|
|
61
|
-
*/
|
|
62
|
-
private isSimpleSchemaAssertion;
|
|
63
51
|
}
|
|
64
52
|
//# sourceMappingURL=assertion-standard-schema-async.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion-standard-schema-async.d.ts","sourceRoot":"","sources":["../../src/assertion/assertion-standard-schema-async.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,+BAA8B;AAC9D,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,4BAA4B,EAC5B,YAAY,EAEZ,YAAY,EACb,8BAA6B;
|
|
1
|
+
{"version":3,"file":"assertion-standard-schema-async.d.ts","sourceRoot":"","sources":["../../src/assertion/assertion-standard-schema-async.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,+BAA8B;AAC9D,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,4BAA4B,EAC5B,YAAY,EAEZ,YAAY,EACb,8BAA6B;AAE9B,OAAO,EAAE,eAAe,EAAE,wBAAuB;AAEjD;;;;;;;;;;;GAWG;AACH,qBAAa,kCAAkC,CAC7C,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,gBAAgB,EAC7B,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAEnC,SAAQ,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAC1C,YAAW,4BAA4B,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IAE3D;;;;;;;;;;;;OAYG;IACG,YAAY,CAChB,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,EACjC,KAAK,EAAE,OAAO,EAAE,EAChB,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACrC,WAAW,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;IA4BhB;;;;;;;;;OASG;IACG,gBAAgB,CAAC,IAAI,SAAS,SAAS,OAAO,EAAE,EACpD,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;CA0EhC"}
|
|
@@ -48,17 +48,5 @@ export declare class BupkisAssertionStandardSchemaAsync<Parts extends AssertionP
|
|
|
48
48
|
* @returns Promise resolving to parse result with cached validation
|
|
49
49
|
*/
|
|
50
50
|
parseValuesAsync<Args extends readonly unknown[]>(args: Args): Promise<ParsedResult<Parts>>;
|
|
51
|
-
/**
|
|
52
|
-
* Determines if this is a simple schema assertion eligible for optimization.
|
|
53
|
-
*
|
|
54
|
-
* Returns true when the assertion has:
|
|
55
|
-
*
|
|
56
|
-
* - Exactly one subject slot (unknown/any type)
|
|
57
|
-
* - Only phrase literal slots after the subject
|
|
58
|
-
* - No complex argument processing
|
|
59
|
-
*
|
|
60
|
-
* @returns True if optimization can be applied
|
|
61
|
-
*/
|
|
62
|
-
private isSimpleSchemaAssertion;
|
|
63
51
|
}
|
|
64
52
|
//# sourceMappingURL=assertion-standard-schema-async.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion-standard-schema-async.d.ts","sourceRoot":"","sources":["../../src/assertion/assertion-standard-schema-async.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,8BAA8B;AAC9D,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,4BAA4B,EAC5B,YAAY,EAEZ,YAAY,EACb,6BAA6B;
|
|
1
|
+
{"version":3,"file":"assertion-standard-schema-async.d.ts","sourceRoot":"","sources":["../../src/assertion/assertion-standard-schema-async.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,8BAA8B;AAC9D,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,4BAA4B,EAC5B,YAAY,EAEZ,YAAY,EACb,6BAA6B;AAE9B,OAAO,EAAE,eAAe,EAAE,uBAAuB;AAEjD;;;;;;;;;;;GAWG;AACH,qBAAa,kCAAkC,CAC7C,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,gBAAgB,EAC7B,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAEnC,SAAQ,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAC1C,YAAW,4BAA4B,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IAE3D;;;;;;;;;;;;OAYG;IACG,YAAY,CAChB,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,EACjC,KAAK,EAAE,OAAO,EAAE,EAChB,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACrC,WAAW,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;IA4BhB;;;;;;;;;OASG;IACG,gBAAgB,CAAC,IAAI,SAAS,SAAS,OAAO,EAAE,EACpD,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;CA0EhC"}
|
|
@@ -7,8 +7,6 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @packageDocumentation
|
|
9
9
|
*/
|
|
10
|
-
import { kStringLiteral } from "../constant.js";
|
|
11
|
-
import { BupkisRegistry } from "../metadata.js";
|
|
12
10
|
import { BupkisAssertion } from "./assertion.js";
|
|
13
11
|
/**
|
|
14
12
|
* An asynchronous assertion implemented using a Standard Schema v1 validator.
|
|
@@ -126,26 +124,5 @@ export class BupkisAssertionStandardSchemaAsync extends BupkisAssertion {
|
|
|
126
124
|
}
|
|
127
125
|
return result;
|
|
128
126
|
}
|
|
129
|
-
/**
|
|
130
|
-
* Determines if this is a simple schema assertion eligible for optimization.
|
|
131
|
-
*
|
|
132
|
-
* Returns true when the assertion has:
|
|
133
|
-
*
|
|
134
|
-
* - Exactly one subject slot (unknown/any type)
|
|
135
|
-
* - Only phrase literal slots after the subject
|
|
136
|
-
* - No complex argument processing
|
|
137
|
-
*
|
|
138
|
-
* @returns True if optimization can be applied
|
|
139
|
-
*/
|
|
140
|
-
isSimpleSchemaAssertion() {
|
|
141
|
-
const hasSubjectSlot = this.slots.length > 0 &&
|
|
142
|
-
(this.slots[0]?.def.type === 'unknown' ||
|
|
143
|
-
this.slots[0]?.def.type === 'any');
|
|
144
|
-
const allOtherSlotsAreLiterals = this.slots.slice(1).every((slot) => {
|
|
145
|
-
const meta = BupkisRegistry.get(slot) ?? {};
|
|
146
|
-
return kStringLiteral in meta;
|
|
147
|
-
});
|
|
148
|
-
return hasSubjectSlot && allOtherSlotsAreLiterals;
|
|
149
|
-
}
|
|
150
127
|
}
|
|
151
128
|
//# sourceMappingURL=assertion-standard-schema-async.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion-standard-schema-async.js","sourceRoot":"","sources":["../../src/assertion/assertion-standard-schema-async.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"assertion-standard-schema-async.js","sourceRoot":"","sources":["../../src/assertion/assertion-standard-schema-async.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,6 @@
|
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.BupkisAssertionStandardSchemaSync = void 0;
|
|
13
|
-
const constant_js_1 = require("../constant.cjs");
|
|
14
|
-
const metadata_js_1 = require("../metadata.cjs");
|
|
15
13
|
const assertion_js_1 = require("./assertion.cjs");
|
|
16
14
|
/**
|
|
17
15
|
* A synchronous assertion implemented using a Standard Schema v1 validator.
|
|
@@ -138,27 +136,6 @@ class BupkisAssertionStandardSchemaSync extends assertion_js_1.BupkisAssertion {
|
|
|
138
136
|
}
|
|
139
137
|
return result;
|
|
140
138
|
}
|
|
141
|
-
/**
|
|
142
|
-
* Determines if this is a simple schema assertion eligible for optimization.
|
|
143
|
-
*
|
|
144
|
-
* Returns true when the assertion has:
|
|
145
|
-
*
|
|
146
|
-
* - Exactly one subject slot (unknown/any type)
|
|
147
|
-
* - Only phrase literal slots after the subject
|
|
148
|
-
* - No complex argument processing
|
|
149
|
-
*
|
|
150
|
-
* @returns True if optimization can be applied
|
|
151
|
-
*/
|
|
152
|
-
isSimpleSchemaAssertion() {
|
|
153
|
-
const hasSubjectSlot = this.slots.length > 0 &&
|
|
154
|
-
(this.slots[0]?.def.type === 'unknown' ||
|
|
155
|
-
this.slots[0]?.def.type === 'any');
|
|
156
|
-
const allOtherSlotsAreLiterals = this.slots.slice(1).every((slot) => {
|
|
157
|
-
const meta = metadata_js_1.BupkisRegistry.get(slot) ?? {};
|
|
158
|
-
return constant_js_1.kStringLiteral in meta;
|
|
159
|
-
});
|
|
160
|
-
return hasSubjectSlot && allOtherSlotsAreLiterals;
|
|
161
|
-
}
|
|
162
139
|
}
|
|
163
140
|
exports.BupkisAssertionStandardSchemaSync = BupkisAssertionStandardSchemaSync;
|
|
164
141
|
//# sourceMappingURL=assertion-standard-schema-sync.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion-standard-schema-sync.js","sourceRoot":"","sources":["../../src/assertion/assertion-standard-schema-sync.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAYH,
|
|
1
|
+
{"version":3,"file":"assertion-standard-schema-sync.js","sourceRoot":"","sources":["../../src/assertion/assertion-standard-schema-sync.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAYH,kDAAiD;AAEjD;;;;;;;;;;;GAWG;AACH,MAAa,iCAKX,SAAQ,8BAAmC;IAG3C;;;;;;;;;;;;OAYG;IACH,OAAO,CACL,YAAiC,EACjC,KAAgB,EAChB,YAAqC,EACrC,WAAiC;QAEjC,MAAM,gBAAgB,GAAG,WAAW,EAAE,OAAO;YAC3C,CAAC,CAAC,WAAW,CAAC,uBAAuB;YACrC,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC9B,IAAI,QAAQ,IAAI,gBAAgB,EAAE,CAAC;oBACjC,MAAM,IAAI,CAAC,wBAAwB,CACjC,gBAAgB,CAAC,MAAM,EACvB,YAAY,EACZ,YAAY,CACb,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAExD,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBAChB,iCAAiC;YACnC,CAAC,CAAC,CAAC;YACH,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,wBAAwB,CACjC,MAAM,CAAC,MAAM,EACb,YAAY,EACZ,YAAY,CACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,WAAW,CACT,IAAU;QAEV,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACvB,MAAM,YAAY,GAAU,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,uBAA8E,CAAC;QAEnF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YACnE,IAAI,mBAAmB,KAAK,IAAI,EAAE,CAAC;gBACjC,SAAS;YACX,CAAC;iBAAM,IAAI,mBAAmB,KAAK,KAAK,EAAE,CAAC;gBACzC,OAAO,mBAAmB,CAAC;YAC7B,CAAC;YAED,IACE,CAAC,KAAK,CAAC;gBACP,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC;gBACxD,IAAI,CAAC,uBAAuB,EAAE,EAC9B,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAEpD,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;oBAC9B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;wBAChB,iCAAiC;oBACnC,CAAC,CAAC,CAAC;oBACH,OAAO;wBACL,OAAO,EAAE,KAAK;qBACf,CAAC;gBACJ,CAAC;gBAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClB,uBAAuB,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;oBACpE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACN,uBAAuB,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oBAChE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC;gBACD,UAAU,GAAG,KAAK,CAAC;gBACnB,SAAS;YACX,CAAC;YAED,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC3D,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,UAAU,GAAG,KAAK,CAAC;gBACnB,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO;oBACL,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,MAAM,GAA+B;YACzC,UAAU;YACV,YAAY,EAAE,YAA8C;YAC5D,OAAO,EAAE,IAAI;SACd,CAAC;QAEF,IAAI,uBAAuB,EAAE,CAAC;YAC5B,MAAM,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QAC3D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAxJD,8EAwJC"}
|
|
@@ -48,17 +48,5 @@ export declare class BupkisAssertionStandardSchemaSync<Parts extends AssertionPa
|
|
|
48
48
|
* @returns Parse result indicating success/failure and cached validation
|
|
49
49
|
*/
|
|
50
50
|
parseValues<Args extends readonly unknown[]>(args: Args): ParsedResult<Parts>;
|
|
51
|
-
/**
|
|
52
|
-
* Determines if this is a simple schema assertion eligible for optimization.
|
|
53
|
-
*
|
|
54
|
-
* Returns true when the assertion has:
|
|
55
|
-
*
|
|
56
|
-
* - Exactly one subject slot (unknown/any type)
|
|
57
|
-
* - Only phrase literal slots after the subject
|
|
58
|
-
* - No complex argument processing
|
|
59
|
-
*
|
|
60
|
-
* @returns True if optimization can be applied
|
|
61
|
-
*/
|
|
62
|
-
private isSimpleSchemaAssertion;
|
|
63
51
|
}
|
|
64
52
|
//# sourceMappingURL=assertion-standard-schema-sync.d.ts.map
|