bupkis 0.18.1 → 0.18.2
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 +7 -0
- package/package.json +1 -4
- package/src/assertion/assertion-types.ts +4 -4
- package/src/assertion/impl/sync-parametric.ts +1 -1
- package/src/expect.ts +0 -4
- package/src/guards.ts +24 -24
- package/src/internal-schema.ts +16 -32
- package/src/value-to-schema.ts +1 -1
- package/dist/assertion/assertion-async.cjs +0 -268
- package/dist/assertion/assertion-async.cjs.map +0 -1
- package/dist/assertion/assertion-async.d.cts +0 -40
- package/dist/assertion/assertion-async.d.cts.map +0 -1
- package/dist/assertion/assertion-async.d.ts +0 -40
- package/dist/assertion/assertion-async.d.ts.map +0 -1
- package/dist/assertion/assertion-async.js +0 -259
- package/dist/assertion/assertion-async.js.map +0 -1
- package/dist/assertion/assertion-standard-schema-async.cjs +0 -132
- package/dist/assertion/assertion-standard-schema-async.cjs.map +0 -1
- package/dist/assertion/assertion-standard-schema-async.d.cts +0 -52
- package/dist/assertion/assertion-standard-schema-async.d.cts.map +0 -1
- package/dist/assertion/assertion-standard-schema-async.d.ts +0 -52
- package/dist/assertion/assertion-standard-schema-async.d.ts.map +0 -1
- package/dist/assertion/assertion-standard-schema-async.js +0 -128
- package/dist/assertion/assertion-standard-schema-async.js.map +0 -1
- package/dist/assertion/assertion-standard-schema-sync.cjs +0 -141
- package/dist/assertion/assertion-standard-schema-sync.cjs.map +0 -1
- package/dist/assertion/assertion-standard-schema-sync.d.cts +0 -52
- package/dist/assertion/assertion-standard-schema-sync.d.cts.map +0 -1
- package/dist/assertion/assertion-standard-schema-sync.d.ts +0 -52
- package/dist/assertion/assertion-standard-schema-sync.d.ts.map +0 -1
- package/dist/assertion/assertion-standard-schema-sync.js +0 -137
- package/dist/assertion/assertion-standard-schema-sync.js.map +0 -1
- package/dist/assertion/assertion-sync.cjs +0 -284
- package/dist/assertion/assertion-sync.cjs.map +0 -1
- package/dist/assertion/assertion-sync.d.cts +0 -60
- package/dist/assertion/assertion-sync.d.cts.map +0 -1
- package/dist/assertion/assertion-sync.d.ts +0 -60
- package/dist/assertion/assertion-sync.d.ts.map +0 -1
- package/dist/assertion/assertion-sync.js +0 -275
- package/dist/assertion/assertion-sync.js.map +0 -1
- package/dist/assertion/assertion-types.cjs +0 -20
- package/dist/assertion/assertion-types.cjs.map +0 -1
- package/dist/assertion/assertion-types.d.cts +0 -1086
- package/dist/assertion/assertion-types.d.cts.map +0 -1
- package/dist/assertion/assertion-types.d.ts +0 -1086
- package/dist/assertion/assertion-types.d.ts.map +0 -1
- package/dist/assertion/assertion-types.js +0 -19
- package/dist/assertion/assertion-types.js.map +0 -1
- package/dist/assertion/assertion.cjs +0 -382
- package/dist/assertion/assertion.cjs.map +0 -1
- package/dist/assertion/assertion.d.cts +0 -109
- package/dist/assertion/assertion.d.cts.map +0 -1
- package/dist/assertion/assertion.d.ts +0 -109
- package/dist/assertion/assertion.d.ts.map +0 -1
- package/dist/assertion/assertion.js +0 -375
- package/dist/assertion/assertion.js.map +0 -1
- package/dist/assertion/create.cjs +0 -148
- package/dist/assertion/create.cjs.map +0 -1
- package/dist/assertion/create.d.cts +0 -85
- package/dist/assertion/create.d.cts.map +0 -1
- package/dist/assertion/create.d.ts +0 -85
- package/dist/assertion/create.d.ts.map +0 -1
- package/dist/assertion/create.js +0 -143
- package/dist/assertion/create.js.map +0 -1
- package/dist/assertion/format-assertion-failure.cjs +0 -63
- package/dist/assertion/format-assertion-failure.cjs.map +0 -1
- package/dist/assertion/format-assertion-failure.d.cts +0 -21
- package/dist/assertion/format-assertion-failure.d.cts.map +0 -1
- package/dist/assertion/format-assertion-failure.d.ts +0 -21
- package/dist/assertion/format-assertion-failure.d.ts.map +0 -1
- package/dist/assertion/format-assertion-failure.js +0 -59
- package/dist/assertion/format-assertion-failure.js.map +0 -1
- package/dist/assertion/impl/assertion-util.cjs +0 -68
- package/dist/assertion/impl/assertion-util.cjs.map +0 -1
- package/dist/assertion/impl/assertion-util.d.cts +0 -36
- package/dist/assertion/impl/assertion-util.d.cts.map +0 -1
- package/dist/assertion/impl/assertion-util.d.ts +0 -36
- package/dist/assertion/impl/assertion-util.d.ts.map +0 -1
- package/dist/assertion/impl/assertion-util.js +0 -62
- package/dist/assertion/impl/assertion-util.js.map +0 -1
- package/dist/assertion/impl/async-iterable.cjs +0 -627
- package/dist/assertion/impl/async-iterable.cjs.map +0 -1
- package/dist/assertion/impl/async-iterable.d.cts +0 -406
- package/dist/assertion/impl/async-iterable.d.cts.map +0 -1
- package/dist/assertion/impl/async-iterable.d.ts +0 -406
- package/dist/assertion/impl/async-iterable.d.ts.map +0 -1
- package/dist/assertion/impl/async-iterable.js +0 -624
- package/dist/assertion/impl/async-iterable.js.map +0 -1
- package/dist/assertion/impl/async-parametric.cjs +0 -412
- package/dist/assertion/impl/async-parametric.cjs.map +0 -1
- package/dist/assertion/impl/async-parametric.d.cts +0 -278
- package/dist/assertion/impl/async-parametric.d.cts.map +0 -1
- package/dist/assertion/impl/async-parametric.d.ts +0 -278
- package/dist/assertion/impl/async-parametric.d.ts.map +0 -1
- package/dist/assertion/impl/async-parametric.js +0 -409
- package/dist/assertion/impl/async-parametric.js.map +0 -1
- package/dist/assertion/impl/async.cjs +0 -56
- package/dist/assertion/impl/async.cjs.map +0 -1
- package/dist/assertion/impl/async.d.cts +0 -179
- package/dist/assertion/impl/async.d.cts.map +0 -1
- package/dist/assertion/impl/async.d.ts +0 -179
- package/dist/assertion/impl/async.d.ts.map +0 -1
- package/dist/assertion/impl/async.js +0 -39
- package/dist/assertion/impl/async.js.map +0 -1
- package/dist/assertion/impl/index.cjs +0 -37
- package/dist/assertion/impl/index.cjs.map +0 -1
- package/dist/assertion/impl/index.d.cts +0 -21
- package/dist/assertion/impl/index.d.cts.map +0 -1
- package/dist/assertion/impl/index.d.ts +0 -21
- package/dist/assertion/impl/index.d.ts.map +0 -1
- package/dist/assertion/impl/index.js +0 -21
- package/dist/assertion/impl/index.js.map +0 -1
- package/dist/assertion/impl/iteration-util.cjs +0 -297
- package/dist/assertion/impl/iteration-util.cjs.map +0 -1
- package/dist/assertion/impl/iteration-util.d.cts +0 -12
- package/dist/assertion/impl/iteration-util.d.cts.map +0 -1
- package/dist/assertion/impl/iteration-util.d.ts +0 -12
- package/dist/assertion/impl/iteration-util.d.ts.map +0 -1
- package/dist/assertion/impl/iteration-util.js +0 -282
- package/dist/assertion/impl/iteration-util.js.map +0 -1
- package/dist/assertion/impl/snapshot.cjs +0 -276
- package/dist/assertion/impl/snapshot.cjs.map +0 -1
- package/dist/assertion/impl/snapshot.d.cts +0 -278
- package/dist/assertion/impl/snapshot.d.cts.map +0 -1
- package/dist/assertion/impl/snapshot.d.ts +0 -278
- package/dist/assertion/impl/snapshot.d.ts.map +0 -1
- package/dist/assertion/impl/snapshot.js +0 -273
- package/dist/assertion/impl/snapshot.js.map +0 -1
- package/dist/assertion/impl/sync-basic.cjs +0 -553
- package/dist/assertion/impl/sync-basic.cjs.map +0 -1
- package/dist/assertion/impl/sync-basic.d.cts +0 -528
- package/dist/assertion/impl/sync-basic.d.cts.map +0 -1
- package/dist/assertion/impl/sync-basic.d.ts +0 -528
- package/dist/assertion/impl/sync-basic.d.ts.map +0 -1
- package/dist/assertion/impl/sync-basic.js +0 -550
- package/dist/assertion/impl/sync-basic.js.map +0 -1
- package/dist/assertion/impl/sync-collection.cjs +0 -856
- package/dist/assertion/impl/sync-collection.cjs.map +0 -1
- package/dist/assertion/impl/sync-collection.d.cts +0 -607
- package/dist/assertion/impl/sync-collection.d.cts.map +0 -1
- package/dist/assertion/impl/sync-collection.d.ts +0 -607
- package/dist/assertion/impl/sync-collection.d.ts.map +0 -1
- package/dist/assertion/impl/sync-collection.js +0 -850
- package/dist/assertion/impl/sync-collection.js.map +0 -1
- package/dist/assertion/impl/sync-date.cjs +0 -341
- package/dist/assertion/impl/sync-date.cjs.map +0 -1
- package/dist/assertion/impl/sync-date.d.cts +0 -209
- package/dist/assertion/impl/sync-date.d.cts.map +0 -1
- package/dist/assertion/impl/sync-date.d.ts +0 -209
- package/dist/assertion/impl/sync-date.d.ts.map +0 -1
- package/dist/assertion/impl/sync-date.js +0 -338
- package/dist/assertion/impl/sync-date.js.map +0 -1
- package/dist/assertion/impl/sync-esoteric.cjs +0 -214
- package/dist/assertion/impl/sync-esoteric.cjs.map +0 -1
- package/dist/assertion/impl/sync-esoteric.d.cts +0 -191
- package/dist/assertion/impl/sync-esoteric.d.cts.map +0 -1
- package/dist/assertion/impl/sync-esoteric.d.ts +0 -191
- package/dist/assertion/impl/sync-esoteric.d.ts.map +0 -1
- package/dist/assertion/impl/sync-esoteric.js +0 -211
- package/dist/assertion/impl/sync-esoteric.js.map +0 -1
- package/dist/assertion/impl/sync-iterable.cjs +0 -512
- package/dist/assertion/impl/sync-iterable.cjs.map +0 -1
- package/dist/assertion/impl/sync-iterable.d.cts +0 -334
- package/dist/assertion/impl/sync-iterable.d.cts.map +0 -1
- package/dist/assertion/impl/sync-iterable.d.ts +0 -334
- package/dist/assertion/impl/sync-iterable.d.ts.map +0 -1
- package/dist/assertion/impl/sync-iterable.js +0 -509
- package/dist/assertion/impl/sync-iterable.js.map +0 -1
- package/dist/assertion/impl/sync-parametric.cjs +0 -805
- package/dist/assertion/impl/sync-parametric.cjs.map +0 -1
- package/dist/assertion/impl/sync-parametric.d.cts +0 -560
- package/dist/assertion/impl/sync-parametric.d.cts.map +0 -1
- package/dist/assertion/impl/sync-parametric.d.ts +0 -560
- package/dist/assertion/impl/sync-parametric.d.ts.map +0 -1
- package/dist/assertion/impl/sync-parametric.js +0 -802
- package/dist/assertion/impl/sync-parametric.js.map +0 -1
- package/dist/assertion/impl/sync.cjs +0 -214
- package/dist/assertion/impl/sync.cjs.map +0 -1
- package/dist/assertion/impl/sync.d.cts +0 -512
- package/dist/assertion/impl/sync.d.cts.map +0 -1
- package/dist/assertion/impl/sync.d.ts +0 -512
- package/dist/assertion/impl/sync.d.ts.map +0 -1
- package/dist/assertion/impl/sync.js +0 -197
- package/dist/assertion/impl/sync.js.map +0 -1
- package/dist/assertion/index.cjs +0 -38
- package/dist/assertion/index.cjs.map +0 -1
- package/dist/assertion/index.d.cts +0 -18
- package/dist/assertion/index.d.cts.map +0 -1
- package/dist/assertion/index.d.ts +0 -18
- package/dist/assertion/index.d.ts.map +0 -1
- package/dist/assertion/index.js +0 -17
- package/dist/assertion/index.js.map +0 -1
- package/dist/assertion/slotify.cjs +0 -165
- package/dist/assertion/slotify.cjs.map +0 -1
- package/dist/assertion/slotify.d.cts +0 -11
- package/dist/assertion/slotify.d.cts.map +0 -1
- package/dist/assertion/slotify.d.ts +0 -11
- package/dist/assertion/slotify.d.ts.map +0 -1
- package/dist/assertion/slotify.js +0 -161
- package/dist/assertion/slotify.js.map +0 -1
- package/dist/bootstrap.cjs +0 -43
- package/dist/bootstrap.cjs.map +0 -1
- package/dist/bootstrap.d.cts +0 -27
- package/dist/bootstrap.d.cts.map +0 -1
- package/dist/bootstrap.d.ts +0 -27
- package/dist/bootstrap.d.ts.map +0 -1
- package/dist/bootstrap.js +0 -40
- package/dist/bootstrap.js.map +0 -1
- package/dist/constant.cjs +0 -82
- package/dist/constant.cjs.map +0 -1
- package/dist/constant.d.cts +0 -69
- package/dist/constant.d.cts.map +0 -1
- package/dist/constant.d.ts +0 -69
- package/dist/constant.d.ts.map +0 -1
- package/dist/constant.js +0 -79
- package/dist/constant.js.map +0 -1
- package/dist/diff.cjs +0 -340
- package/dist/diff.cjs.map +0 -1
- package/dist/diff.d.cts +0 -51
- package/dist/diff.d.cts.map +0 -1
- package/dist/diff.d.ts +0 -51
- package/dist/diff.d.ts.map +0 -1
- package/dist/diff.js +0 -334
- package/dist/diff.js.map +0 -1
- package/dist/error.cjs +0 -204
- package/dist/error.cjs.map +0 -1
- package/dist/error.d.cts +0 -212
- package/dist/error.d.cts.map +0 -1
- package/dist/error.d.ts +0 -212
- package/dist/error.d.ts.map +0 -1
- package/dist/error.js +0 -191
- package/dist/error.js.map +0 -1
- package/dist/expect.cjs +0 -590
- package/dist/expect.cjs.map +0 -1
- package/dist/expect.d.cts +0 -138
- package/dist/expect.d.cts.map +0 -1
- package/dist/expect.d.ts +0 -138
- package/dist/expect.d.ts.map +0 -1
- package/dist/expect.js +0 -582
- package/dist/expect.js.map +0 -1
- package/dist/guards.cjs +0 -297
- package/dist/guards.cjs.map +0 -1
- package/dist/guards.d.cts +0 -231
- package/dist/guards.d.cts.map +0 -1
- package/dist/guards.d.ts +0 -231
- package/dist/guards.d.ts.map +0 -1
- package/dist/guards.js +0 -277
- package/dist/guards.js.map +0 -1
- package/dist/index.cjs +0 -111
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -448
- package/dist/index.d.cts.map +0 -1
- package/dist/index.d.ts +0 -448
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -71
- package/dist/index.js.map +0 -1
- package/dist/internal-schema.cjs +0 -253
- package/dist/internal-schema.cjs.map +0 -1
- package/dist/internal-schema.d.cts +0 -8
- package/dist/internal-schema.d.cts.map +0 -1
- package/dist/internal-schema.d.ts +0 -8
- package/dist/internal-schema.d.ts.map +0 -1
- package/dist/internal-schema.js +0 -248
- package/dist/internal-schema.js.map +0 -1
- package/dist/metadata.cjs +0 -57
- package/dist/metadata.cjs.map +0 -1
- package/dist/metadata.d.cts +0 -27
- package/dist/metadata.d.cts.map +0 -1
- package/dist/metadata.d.ts +0 -27
- package/dist/metadata.d.ts.map +0 -1
- package/dist/metadata.js +0 -54
- package/dist/metadata.js.map +0 -1
- package/dist/schema.cjs +0 -1522
- package/dist/schema.cjs.map +0 -1
- package/dist/schema.d.cts +0 -1196
- package/dist/schema.d.cts.map +0 -1
- package/dist/schema.d.ts +0 -1196
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.js +0 -1516
- package/dist/schema.js.map +0 -1
- package/dist/snapshot/adapter.cjs +0 -31
- package/dist/snapshot/adapter.cjs.map +0 -1
- package/dist/snapshot/adapter.d.cts +0 -258
- package/dist/snapshot/adapter.d.cts.map +0 -1
- package/dist/snapshot/adapter.d.ts +0 -258
- package/dist/snapshot/adapter.d.ts.map +0 -1
- package/dist/snapshot/adapter.js +0 -27
- package/dist/snapshot/adapter.js.map +0 -1
- package/dist/snapshot/adapters/fallback.cjs +0 -453
- package/dist/snapshot/adapters/fallback.cjs.map +0 -1
- package/dist/snapshot/adapters/fallback.d.cts +0 -185
- package/dist/snapshot/adapters/fallback.d.cts.map +0 -1
- package/dist/snapshot/adapters/fallback.d.ts +0 -185
- package/dist/snapshot/adapters/fallback.d.ts.map +0 -1
- package/dist/snapshot/adapters/fallback.js +0 -446
- package/dist/snapshot/adapters/fallback.js.map +0 -1
- package/dist/snapshot/adapters/node-test.cjs +0 -301
- package/dist/snapshot/adapters/node-test.cjs.map +0 -1
- package/dist/snapshot/adapters/node-test.d.cts +0 -131
- package/dist/snapshot/adapters/node-test.d.cts.map +0 -1
- package/dist/snapshot/adapters/node-test.d.ts +0 -131
- package/dist/snapshot/adapters/node-test.d.ts.map +0 -1
- package/dist/snapshot/adapters/node-test.js +0 -297
- package/dist/snapshot/adapters/node-test.js.map +0 -1
- package/dist/snapshot/index.cjs +0 -61
- package/dist/snapshot/index.cjs.map +0 -1
- package/dist/snapshot/index.d.cts +0 -40
- package/dist/snapshot/index.d.cts.map +0 -1
- package/dist/snapshot/index.d.ts +0 -40
- package/dist/snapshot/index.d.ts.map +0 -1
- package/dist/snapshot/index.js +0 -44
- package/dist/snapshot/index.js.map +0 -1
- package/dist/snapshot/node-version.cjs +0 -49
- package/dist/snapshot/node-version.cjs.map +0 -1
- package/dist/snapshot/node-version.d.cts +0 -34
- package/dist/snapshot/node-version.d.cts.map +0 -1
- package/dist/snapshot/node-version.d.ts +0 -34
- package/dist/snapshot/node-version.d.ts.map +0 -1
- package/dist/snapshot/node-version.js +0 -44
- package/dist/snapshot/node-version.js.map +0 -1
- package/dist/snapshot/select-adapter.cjs +0 -170
- package/dist/snapshot/select-adapter.cjs.map +0 -1
- package/dist/snapshot/select-adapter.d.cts +0 -128
- package/dist/snapshot/select-adapter.d.cts.map +0 -1
- package/dist/snapshot/select-adapter.d.ts +0 -128
- package/dist/snapshot/select-adapter.d.ts.map +0 -1
- package/dist/snapshot/select-adapter.js +0 -164
- package/dist/snapshot/select-adapter.js.map +0 -1
- package/dist/snapshot/serializer.cjs +0 -246
- package/dist/snapshot/serializer.cjs.map +0 -1
- package/dist/snapshot/serializer.d.cts +0 -126
- package/dist/snapshot/serializer.d.cts.map +0 -1
- package/dist/snapshot/serializer.d.ts +0 -126
- package/dist/snapshot/serializer.d.ts.map +0 -1
- package/dist/snapshot/serializer.js +0 -238
- package/dist/snapshot/serializer.js.map +0 -1
- package/dist/standard-schema.cjs +0 -13
- package/dist/standard-schema.cjs.map +0 -1
- package/dist/standard-schema.d.cts +0 -192
- package/dist/standard-schema.d.cts.map +0 -1
- package/dist/standard-schema.d.ts +0 -192
- package/dist/standard-schema.d.ts.map +0 -1
- package/dist/standard-schema.js +0 -12
- package/dist/standard-schema.js.map +0 -1
- package/dist/types.cjs +0 -22
- package/dist/types.cjs.map +0 -1
- package/dist/types.d.cts +0 -905
- package/dist/types.d.cts.map +0 -1
- package/dist/types.d.ts +0 -905
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -21
- package/dist/types.js.map +0 -1
- package/dist/use.cjs +0 -240
- package/dist/use.cjs.map +0 -1
- package/dist/use.d.cts +0 -8
- package/dist/use.d.cts.map +0 -1
- package/dist/use.d.ts +0 -8
- package/dist/use.d.ts.map +0 -1
- package/dist/use.js +0 -236
- package/dist/use.js.map +0 -1
- package/dist/util.cjs +0 -255
- package/dist/util.cjs.map +0 -1
- package/dist/util.d.cts +0 -141
- package/dist/util.d.cts.map +0 -1
- package/dist/util.d.ts +0 -141
- package/dist/util.d.ts.map +0 -1
- package/dist/util.js +0 -234
- package/dist/util.js.map +0 -1
- package/dist/value-to-schema.cjs +0 -537
- package/dist/value-to-schema.cjs.map +0 -1
- package/dist/value-to-schema.d.cts +0 -144
- package/dist/value-to-schema.d.cts.map +0 -1
- package/dist/value-to-schema.d.ts +0 -144
- package/dist/value-to-schema.d.ts.map +0 -1
- package/dist/value-to-schema.js +0 -533
- package/dist/value-to-schema.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.18.2](https://github.com/boneskull/bupkis/compare/bupkis-v0.18.1...bupkis-v0.18.2) (2026-06-19)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **bupkis:** fix ArkType support ([79d3f00](https://github.com/boneskull/bupkis/commit/79d3f0058cc96eaff2e649b0b4220db5de830d98))
|
|
9
|
+
|
|
3
10
|
## [0.18.1](https://github.com/boneskull/bupkis/compare/bupkis-v0.18.0...bupkis-v0.18.1) (2026-01-18)
|
|
4
11
|
|
|
5
12
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bupkis",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Uncommonly extensible assertions for the beautiful people",
|
|
6
6
|
"repository": {
|
|
@@ -97,9 +97,6 @@
|
|
|
97
97
|
"bench:value": "modestbench \"bench/value-to-schema.bench.js\"",
|
|
98
98
|
"build": "zshy",
|
|
99
99
|
"debug:assertion-ids": "tsx scripts/dump-assertion-ids.ts",
|
|
100
|
-
"docs:build": "typedoc --options ../../.config/typedoc.js --cleanOutputDir --treatWarningsAsErrors",
|
|
101
|
-
"docs:dev": "run-p \"docs:build -- --watch\" docs:serve",
|
|
102
|
-
"docs:serve": "serve ../../docs",
|
|
103
100
|
"prepare": "zshy",
|
|
104
101
|
"profile:analyze": "tsx scripts/analyze-profiles.ts",
|
|
105
102
|
"profile:benchmarks": "tsx scripts/profile-benchmarks.ts",
|
|
@@ -472,9 +472,7 @@ export type AssertionImplSync<Parts extends AssertionParts> =
|
|
|
472
472
|
*
|
|
473
473
|
* @group Assertion Creation
|
|
474
474
|
*/
|
|
475
|
-
export type AssertionParseRequest =
|
|
476
|
-
subject: unknown;
|
|
477
|
-
} & (
|
|
475
|
+
export type AssertionParseRequest = (
|
|
478
476
|
| {
|
|
479
477
|
asyncSchema: StandardSchemaV1 | z.ZodType;
|
|
480
478
|
schema?: never;
|
|
@@ -483,7 +481,9 @@ export type AssertionParseRequest = {
|
|
|
483
481
|
asyncSchema?: never;
|
|
484
482
|
schema: StandardSchemaV1 | z.ZodType;
|
|
485
483
|
}
|
|
486
|
-
)
|
|
484
|
+
) & {
|
|
485
|
+
subject: unknown;
|
|
486
|
+
};
|
|
487
487
|
|
|
488
488
|
/**
|
|
489
489
|
* Union type representing the fundamental building blocks of an assertion.
|
|
@@ -125,7 +125,7 @@ export const typeOfAssertion = createAssertion(
|
|
|
125
125
|
),
|
|
126
126
|
],
|
|
127
127
|
(_, type) => {
|
|
128
|
-
type = type.toLowerCase()
|
|
128
|
+
type = type.toLowerCase();
|
|
129
129
|
// these first three are names that are _not_ results of the `typeof` operator; i.e. `typeof x` will never return these strings
|
|
130
130
|
switch (type) {
|
|
131
131
|
case 'array':
|
package/src/expect.ts
CHANGED
|
@@ -78,7 +78,6 @@ export function createExpectAsyncFunction<
|
|
|
78
78
|
T extends AnyAsyncAssertions,
|
|
79
79
|
U extends ExpectAsync<AnyAsyncAssertions>,
|
|
80
80
|
>(assertions: T, expect: U): ExpectAsyncFunction<T & U['assertions']>;
|
|
81
|
-
|
|
82
81
|
/**
|
|
83
82
|
* Creates a new asynchronous expect function with the provided assertions.
|
|
84
83
|
*
|
|
@@ -109,7 +108,6 @@ export function createExpectAsyncFunction<
|
|
|
109
108
|
export function createExpectAsyncFunction<T extends AnyAsyncAssertions>(
|
|
110
109
|
assertions: T,
|
|
111
110
|
): ExpectAsyncFunction<T>;
|
|
112
|
-
|
|
113
111
|
/**
|
|
114
112
|
* Implementation function that creates an asynchronous expect function with
|
|
115
113
|
* optional parent inheritance.
|
|
@@ -356,7 +354,6 @@ export function createExpectSyncFunction<
|
|
|
356
354
|
assertions: Assertions,
|
|
357
355
|
expect: ParentExpect,
|
|
358
356
|
): ExpectFunction<Assertions & ParentExpect['assertions']>;
|
|
359
|
-
|
|
360
357
|
/**
|
|
361
358
|
* Creates a new synchronous expect function with the provided assertions.
|
|
362
359
|
*
|
|
@@ -387,7 +384,6 @@ export function createExpectSyncFunction<
|
|
|
387
384
|
export function createExpectSyncFunction<Assertions extends AnySyncAssertions>(
|
|
388
385
|
assertions: Assertions,
|
|
389
386
|
): ExpectFunction<Assertions>;
|
|
390
|
-
|
|
391
387
|
/**
|
|
392
388
|
* Implementation function that creates a synchronous expect function with
|
|
393
389
|
* optional parent inheritance.
|
package/src/guards.ts
CHANGED
|
@@ -45,7 +45,6 @@ export function isZodType<T extends keyof ZodTypeMap>(
|
|
|
45
45
|
value: unknown,
|
|
46
46
|
type: T,
|
|
47
47
|
): value is ZodTypeMap[T];
|
|
48
|
-
|
|
49
48
|
/**
|
|
50
49
|
* Returns `true` if the given value looks like a Zod v4 schema, determined by
|
|
51
50
|
* the presence of an internal {@link z.core.$ZodTypeDef} field.
|
|
@@ -93,16 +92,22 @@ export function isZodType<T extends keyof ZodTypeMap>(
|
|
|
93
92
|
* @see {@link https://standardschema.dev | Standard Schema Specification}
|
|
94
93
|
*/
|
|
95
94
|
export const isStandardSchema = (value: unknown): value is StandardSchemaV1 => {
|
|
95
|
+
// Some Standard Schema compliant libraries (e.g. ArkType) implement schemas
|
|
96
|
+
// as callable objects (functions with properties), so we must accept both
|
|
97
|
+
// plain objects and functions here.
|
|
98
|
+
if (!isObject(value) && !isFunction(value)) {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
const v = value as Record<string | symbol, unknown>;
|
|
102
|
+
const std = v['~standard'];
|
|
96
103
|
return (
|
|
97
|
-
isObject(
|
|
98
|
-
'
|
|
99
|
-
|
|
100
|
-
'
|
|
101
|
-
|
|
102
|
-
'
|
|
103
|
-
typeof
|
|
104
|
-
'validate' in value['~standard'] &&
|
|
105
|
-
typeof value['~standard'].validate === 'function'
|
|
104
|
+
isObject(std) &&
|
|
105
|
+
'version' in std &&
|
|
106
|
+
std.version === 1 &&
|
|
107
|
+
'vendor' in std &&
|
|
108
|
+
typeof std.vendor === 'string' &&
|
|
109
|
+
'validate' in std &&
|
|
110
|
+
typeof std.validate === 'function'
|
|
106
111
|
);
|
|
107
112
|
};
|
|
108
113
|
|
|
@@ -117,16 +122,6 @@ export const isObject = (value: unknown): value is NonNullable<object> => {
|
|
|
117
122
|
return typeof value === 'object' && value !== null && !isArray(value);
|
|
118
123
|
};
|
|
119
124
|
|
|
120
|
-
/**
|
|
121
|
-
* Returns `true` if the given value is a {@link z.ZodPromise} schema.
|
|
122
|
-
*
|
|
123
|
-
* @function
|
|
124
|
-
* @param value - Value to test
|
|
125
|
-
* @returns `true` if the value is a `ZodPromise` schema; `false` otherwise
|
|
126
|
-
*/
|
|
127
|
-
export const isZodPromise = (value: unknown): value is z.ZodPromise =>
|
|
128
|
-
isZodType(value, 'promise');
|
|
129
|
-
|
|
130
125
|
/**
|
|
131
126
|
* Checks if a value is "promise-like", meaning it is a "thenable" object.
|
|
132
127
|
*
|
|
@@ -222,9 +217,7 @@ export const isNonNullObject = (value: unknown): value is object =>
|
|
|
222
217
|
* symbol), `false` otherwise
|
|
223
218
|
*/
|
|
224
219
|
export const isWeakKey = (value: unknown): value is WeakKey =>
|
|
225
|
-
(typeof value === '
|
|
226
|
-
typeof value === 'function' ||
|
|
227
|
-
typeof value === 'symbol';
|
|
220
|
+
isNonNullObject(value) || isFunction(value) || typeof value === 'symbol';
|
|
228
221
|
|
|
229
222
|
/**
|
|
230
223
|
* Type guard for a {@link PhraseLiteral}, which is just a string that does not
|
|
@@ -305,6 +298,8 @@ export const isA = <T extends Constructor>(
|
|
|
305
298
|
* its subclasses. It's useful for error handling and type narrowing when
|
|
306
299
|
* working with unknown values that might be errors.
|
|
307
300
|
*
|
|
301
|
+
* Uses `Error.isError` if available.
|
|
302
|
+
*
|
|
308
303
|
* @example
|
|
309
304
|
*
|
|
310
305
|
* ```typescript
|
|
@@ -322,7 +317,12 @@ export const isA = <T extends Constructor>(
|
|
|
322
317
|
* @param value - Value to test
|
|
323
318
|
* @returns `true` if the value is an Error instance, `false` otherwise
|
|
324
319
|
*/
|
|
325
|
-
export const isError =
|
|
320
|
+
export const isError =
|
|
321
|
+
'isError' in Error && isFunction(Error.isError)
|
|
322
|
+
? // @ts-expect-error - Error.isError is new
|
|
323
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call
|
|
324
|
+
(value: unknown): value is Error => Error.isError(value)
|
|
325
|
+
: (value: unknown): value is Error => isA(value, Error);
|
|
326
326
|
|
|
327
327
|
/**
|
|
328
328
|
* Type guard for {@link ExpectItExecutor} functions.
|
package/src/internal-schema.ts
CHANGED
|
@@ -22,42 +22,26 @@ import { isPhrase, isStandardSchema, isZodType } from './guards.js';
|
|
|
22
22
|
// This schema is only used for validation (safeParse), not for type inference.
|
|
23
23
|
const AssertionFailureSchema = z
|
|
24
24
|
.object({
|
|
25
|
-
actual: z
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}),
|
|
32
|
-
diff: z
|
|
33
|
-
.string()
|
|
34
|
-
.optional()
|
|
35
|
-
.meta({
|
|
36
|
-
description: 'Pre-computed diff string that bypasses jest-diff',
|
|
37
|
-
}),
|
|
25
|
+
actual: z.unknown().optional().meta({
|
|
26
|
+
description: 'The actual value or description of what actually occurred',
|
|
27
|
+
}),
|
|
28
|
+
diff: z.string().optional().meta({
|
|
29
|
+
description: 'Pre-computed diff string that bypasses jest-diff',
|
|
30
|
+
}),
|
|
38
31
|
diffOptions: z
|
|
39
32
|
.record(z.string(), z.unknown())
|
|
40
33
|
.optional()
|
|
41
34
|
.meta({ description: 'Override options for jest-diff' }),
|
|
42
|
-
expected: z
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
.meta({
|
|
53
|
-
description: 'Custom formatter for actual value in diff output',
|
|
54
|
-
}),
|
|
55
|
-
formatExpected: z
|
|
56
|
-
.function()
|
|
57
|
-
.optional()
|
|
58
|
-
.meta({
|
|
59
|
-
description: 'Custom formatter for expected value in diff output',
|
|
60
|
-
}),
|
|
35
|
+
expected: z.unknown().optional().meta({
|
|
36
|
+
description:
|
|
37
|
+
'The expected value or description of what was expected to occur',
|
|
38
|
+
}),
|
|
39
|
+
formatActual: z.function().optional().meta({
|
|
40
|
+
description: 'Custom formatter for actual value in diff output',
|
|
41
|
+
}),
|
|
42
|
+
formatExpected: z.function().optional().meta({
|
|
43
|
+
description: 'Custom formatter for expected value in diff output',
|
|
44
|
+
}),
|
|
61
45
|
message: z
|
|
62
46
|
.string()
|
|
63
47
|
.optional()
|
package/src/value-to-schema.ts
CHANGED
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.BupkisAssertionSchemaAsync = exports.BupkisAssertionFunctionAsync = exports.BupkisAssertionAsync = void 0;
|
|
7
|
-
const util_1 = require("util");
|
|
8
|
-
const zod_1 = __importDefault(require("zod"));
|
|
9
|
-
const error_js_1 = require("../error.cjs");
|
|
10
|
-
const guards_js_1 = require("../guards.cjs");
|
|
11
|
-
const internal_schema_js_1 = require("../internal-schema.cjs");
|
|
12
|
-
const assertion_js_1 = require("./assertion.cjs");
|
|
13
|
-
const format_assertion_failure_js_1 = require("./format-assertion-failure.cjs");
|
|
14
|
-
class BupkisAssertionAsync extends assertion_js_1.BupkisAssertion {
|
|
15
|
-
async parseValuesAsync(args) {
|
|
16
|
-
const { slots } = this;
|
|
17
|
-
const parsedValues = [];
|
|
18
|
-
if (slots.length !== args.length) {
|
|
19
|
-
return {
|
|
20
|
-
success: false,
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
let exactMatch = true;
|
|
24
|
-
for (let i = 0; i < slots.length; i++) {
|
|
25
|
-
const slot = slots[i];
|
|
26
|
-
const arg = args[i];
|
|
27
|
-
const parsedLiteralResult = this.parseSlotForLiteral(slot, i, arg);
|
|
28
|
-
if (parsedLiteralResult === true) {
|
|
29
|
-
continue;
|
|
30
|
-
}
|
|
31
|
-
else if (parsedLiteralResult !== false) {
|
|
32
|
-
return parsedLiteralResult;
|
|
33
|
-
}
|
|
34
|
-
// unknown/any accept anything
|
|
35
|
-
// IMPORTANT: do not use a type guard here; it will break inference
|
|
36
|
-
if (slot.def.type === 'unknown' || slot.def.type === 'any') {
|
|
37
|
-
parsedValues.push(arg);
|
|
38
|
-
exactMatch = false;
|
|
39
|
-
continue;
|
|
40
|
-
}
|
|
41
|
-
const result = await slot.safeParseAsync(arg);
|
|
42
|
-
if (!result.success) {
|
|
43
|
-
return {
|
|
44
|
-
success: false,
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
parsedValues.push(result.data);
|
|
48
|
-
}
|
|
49
|
-
return {
|
|
50
|
-
exactMatch,
|
|
51
|
-
parsedValues: parsedValues,
|
|
52
|
-
success: true,
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
exports.BupkisAssertionAsync = BupkisAssertionAsync;
|
|
57
|
-
/**
|
|
58
|
-
* An assertion implemented as a Zod schema.
|
|
59
|
-
*
|
|
60
|
-
* Async schemas are supported via {@link expectAsync}.
|
|
61
|
-
*/
|
|
62
|
-
/**
|
|
63
|
-
* Optimized schema assertion that performs subject validation during
|
|
64
|
-
* parseValues() to eliminate double parsing for simple schema-based
|
|
65
|
-
* assertions.
|
|
66
|
-
*
|
|
67
|
-
* This class implements Option 2 from the z.function() analysis - it caches the
|
|
68
|
-
* subject validation result during argument parsing and reuses it during
|
|
69
|
-
* execution, eliminating the double parsing overhead.
|
|
70
|
-
*/
|
|
71
|
-
class BupkisAssertionFunctionAsync extends BupkisAssertionAsync {
|
|
72
|
-
async executeAsync(parsedValues, args, stackStartFn, _parseResult) {
|
|
73
|
-
let result;
|
|
74
|
-
try {
|
|
75
|
-
result = await this.impl.call(null,
|
|
76
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
77
|
-
...parsedValues);
|
|
78
|
-
}
|
|
79
|
-
catch (err) {
|
|
80
|
-
if (error_js_1.AssertionError.isAssertionError(err)) {
|
|
81
|
-
throw err;
|
|
82
|
-
}
|
|
83
|
-
if ((0, guards_js_1.isError)(err) && err instanceof zod_1.default.ZodError) {
|
|
84
|
-
throw this.fromZodError(err, stackStartFn, parsedValues);
|
|
85
|
-
}
|
|
86
|
-
throw new error_js_1.AssertionImplementationError(`Unexpected error thrown from assertion ${this}: ${err}`, { cause: err });
|
|
87
|
-
}
|
|
88
|
-
if ((0, guards_js_1.isZodType)(result)) {
|
|
89
|
-
try {
|
|
90
|
-
await result.parseAsync(parsedValues[0]);
|
|
91
|
-
}
|
|
92
|
-
catch (error) {
|
|
93
|
-
if ((0, guards_js_1.isA)(error, zod_1.default.ZodError)) {
|
|
94
|
-
throw this.fromZodError(error, stackStartFn, parsedValues);
|
|
95
|
-
}
|
|
96
|
-
throw error;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
else if ((0, guards_js_1.isStandardSchema)(result)) {
|
|
100
|
-
const validationResult = result['~standard'].validate(parsedValues[0]);
|
|
101
|
-
const finalResult = validationResult instanceof Promise
|
|
102
|
-
? await validationResult
|
|
103
|
-
: validationResult;
|
|
104
|
-
if (finalResult.issues) {
|
|
105
|
-
throw this.fromStandardSchemaIssues(finalResult.issues, stackStartFn, parsedValues);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
else if ((0, guards_js_1.isBoolean)(result)) {
|
|
109
|
-
if (!result) {
|
|
110
|
-
throw new error_js_1.AssertionError({
|
|
111
|
-
id: this.id,
|
|
112
|
-
message: `Assertion ${this} failed for arguments: ${(0, util_1.inspect)(args)}`,
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
else if ((0, guards_js_1.isError)(result) && result instanceof zod_1.default.ZodError) {
|
|
117
|
-
throw this.fromZodError(result, stackStartFn, parsedValues);
|
|
118
|
-
}
|
|
119
|
-
else if ((0, internal_schema_js_1.isAssertionParseRequest)(result)) {
|
|
120
|
-
const { asyncSchema, schema, subject } = result;
|
|
121
|
-
const schemaToUse = schema ?? asyncSchema;
|
|
122
|
-
if ((0, guards_js_1.isZodType)(schemaToUse)) {
|
|
123
|
-
let zodResult;
|
|
124
|
-
if (schema) {
|
|
125
|
-
zodResult = schemaToUse.safeParse(subject);
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
zodResult = await schemaToUse.safeParseAsync(subject);
|
|
129
|
-
}
|
|
130
|
-
if (!zodResult.success) {
|
|
131
|
-
throw this.fromZodError(zodResult.error, stackStartFn, subject);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
else if ((0, guards_js_1.isStandardSchema)(schemaToUse)) {
|
|
135
|
-
const validationResult = schemaToUse['~standard'].validate(subject);
|
|
136
|
-
const finalResult = validationResult instanceof Promise
|
|
137
|
-
? await validationResult
|
|
138
|
-
: validationResult;
|
|
139
|
-
if (finalResult.issues) {
|
|
140
|
-
throw this.fromStandardSchemaIssues(finalResult.issues, stackStartFn, subject);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
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;
|
|
151
|
-
throw new error_js_1.AssertionError({
|
|
152
|
-
actual: result.actual,
|
|
153
|
-
expected: result.expected,
|
|
154
|
-
id: this.id,
|
|
155
|
-
message,
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
else if (result) {
|
|
159
|
-
throw new error_js_1.AssertionImplementationError(`Invalid return type from assertion ${this}; expected boolean, ZodType, or AssertionFailure`, { result });
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
exports.BupkisAssertionFunctionAsync = BupkisAssertionFunctionAsync;
|
|
164
|
-
/**
|
|
165
|
-
* A class representing an assertion implemented as a function.
|
|
166
|
-
*
|
|
167
|
-
* This function may:
|
|
168
|
-
*
|
|
169
|
-
* 1. Return a `boolean` indicating pass/fail.
|
|
170
|
-
* 2. Return a `ZodType` which will be used to validate the subject.
|
|
171
|
-
* 3. Return a `Promise` resolving to either of the above (when called via
|
|
172
|
-
* {@link expectAsync})
|
|
173
|
-
* 4. Throw a {@link AssertionError}; when called via {@link expectAsync}, reject
|
|
174
|
-
* with an {@link AssertionError}
|
|
175
|
-
*/
|
|
176
|
-
class BupkisAssertionSchemaAsync extends BupkisAssertionAsync {
|
|
177
|
-
async executeAsync(parsedValues, _args, stackStartFn, parseResult) {
|
|
178
|
-
// Check if we have cached validation result from parseValuesAsync
|
|
179
|
-
const cachedValidation = parseResult?.success
|
|
180
|
-
? parseResult.subjectValidationResult
|
|
181
|
-
: undefined;
|
|
182
|
-
if (cachedValidation && !cachedValidation.success) {
|
|
183
|
-
// Subject validation failed during parseValuesAsync, throw the cached error
|
|
184
|
-
if ('error' in cachedValidation) {
|
|
185
|
-
throw this.fromZodError(cachedValidation.error, stackStartFn, parsedValues);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
// Fall back to standard validation if no cached result
|
|
189
|
-
const [subject] = parsedValues;
|
|
190
|
-
try {
|
|
191
|
-
await this.impl.parseAsync(subject);
|
|
192
|
-
}
|
|
193
|
-
catch (error) {
|
|
194
|
-
if ((0, guards_js_1.isA)(error, zod_1.default.ZodError)) {
|
|
195
|
-
throw this.fromZodError(error, stackStartFn, parsedValues);
|
|
196
|
-
}
|
|
197
|
-
/* c8 ignore next */
|
|
198
|
-
throw error;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
async parseValuesAsync(args) {
|
|
202
|
-
const { slots } = this;
|
|
203
|
-
const parsedValues = [];
|
|
204
|
-
const mismatch = this.maybeParseValuesArgMismatch(args);
|
|
205
|
-
if (mismatch) {
|
|
206
|
-
return mismatch;
|
|
207
|
-
}
|
|
208
|
-
let exactMatch = true;
|
|
209
|
-
let subjectValidationResult;
|
|
210
|
-
for (let i = 0; i < slots.length; i++) {
|
|
211
|
-
const slot = slots[i];
|
|
212
|
-
const arg = args[i];
|
|
213
|
-
const parsedLiteralResult = this.parseSlotForLiteral(slot, i, arg);
|
|
214
|
-
if (parsedLiteralResult === true) {
|
|
215
|
-
continue;
|
|
216
|
-
}
|
|
217
|
-
else if (parsedLiteralResult !== false) {
|
|
218
|
-
return parsedLiteralResult;
|
|
219
|
-
}
|
|
220
|
-
// For the subject slot (first slot if it's unknown/any), try optimized validation
|
|
221
|
-
if (i === 0 &&
|
|
222
|
-
(slot.def.type === 'unknown' || slot.def.type === 'any') &&
|
|
223
|
-
this.isSimpleSchemaAssertion()) {
|
|
224
|
-
try {
|
|
225
|
-
const result = await this.impl.parseAsync(arg);
|
|
226
|
-
subjectValidationResult = { data: result, success: true };
|
|
227
|
-
parsedValues.push(result); // Use validated data
|
|
228
|
-
}
|
|
229
|
-
catch (error) {
|
|
230
|
-
if ((0, guards_js_1.isA)(error, zod_1.default.ZodError)) {
|
|
231
|
-
subjectValidationResult = { error, success: false };
|
|
232
|
-
parsedValues.push(arg); // Keep original for error reporting
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
throw error; // Re-throw non-Zod errors
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
exactMatch = false; // Subject was validated, so we know the exact type
|
|
239
|
-
continue;
|
|
240
|
-
}
|
|
241
|
-
// Standard slot processing for non-optimized cases
|
|
242
|
-
if (slot.def.type === 'unknown' || slot.def.type === 'any') {
|
|
243
|
-
parsedValues.push(arg);
|
|
244
|
-
exactMatch = false;
|
|
245
|
-
continue;
|
|
246
|
-
}
|
|
247
|
-
const result = await slot.safeParseAsync(arg);
|
|
248
|
-
if (!result.success) {
|
|
249
|
-
return {
|
|
250
|
-
success: false,
|
|
251
|
-
};
|
|
252
|
-
}
|
|
253
|
-
parsedValues.push(result.data);
|
|
254
|
-
}
|
|
255
|
-
const result = {
|
|
256
|
-
exactMatch,
|
|
257
|
-
parsedValues: parsedValues,
|
|
258
|
-
success: true,
|
|
259
|
-
};
|
|
260
|
-
// Add cached validation result if we performed optimization
|
|
261
|
-
if (subjectValidationResult) {
|
|
262
|
-
result.subjectValidationResult = subjectValidationResult;
|
|
263
|
-
}
|
|
264
|
-
return result;
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
exports.BupkisAssertionSchemaAsync = BupkisAssertionSchemaAsync;
|
|
268
|
-
//# sourceMappingURL=assertion-async.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assertion-async.js","sourceRoot":"","sources":["../../src/assertion/assertion-async.ts"],"names":[],"mappings":";;;;;;AAAA,+BAA+B;AAC/B,8CAAoB;AAEpB,2CAA2E;AAC3E,6CAMsB;AACtB,+DAG+B;AAe/B,kDAAiD;AACjD,gFAAuE;AAEvE,MAAsB,oBAKpB,SAAQ,8BAAmC;IAU3C,KAAK,CAAC,gBAAgB,CACpB,IAAU;QAEV,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACvB,MAAM,YAAY,GAAU,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO;gBACL,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC;QACD,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,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;YAEpB,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,8BAA8B;YAC9B,mEAAmE;YACnE,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;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO;oBACL,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,OAAO;YACL,UAAU;YACV,YAAY,EAAE,YAA8C;YAC5D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;CACF;AA1DD,oDA0DC;AACD;;;;GAIG;AACH;;;;;;;;GAQG;AAEH,MAAa,4BAKX,SAAQ,oBAAwC;IAGvC,KAAK,CAAC,YAAY,CACzB,YAAiC,EACjC,IAAe,EACf,YAAqC,EACrC,YAAkC;QAElC,IAAI,MAAwC,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,GAAG,MAAO,IAAI,CAAC,IAAoC,CAAC,IAAI,CAC5D,IAAI;YACJ,iEAAiE;YACjE,GAAI,YAAoB,CACzB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,yBAAc,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,IAAI,IAAA,mBAAO,EAAC,GAAG,CAAC,IAAI,GAAG,YAAY,aAAC,CAAC,QAAQ,EAAE,CAAC;gBAC9C,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,IAAI,uCAA4B,CACpC,0CAA0C,IAAI,KAAK,GAAG,EAAE,EACxD,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;QACJ,CAAC;QACD,IAAI,IAAA,qBAAS,EAAC,MAAM,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,IAAA,eAAG,EAAC,KAAK,EAAE,aAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3B,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;gBAC7D,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;aAAM,IAAI,IAAA,4BAAgB,EAAC,MAAM,CAAC,EAAE,CAAC;YACpC,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,WAAW,GACf,gBAAgB,YAAY,OAAO;gBACjC,CAAC,CAAC,MAAM,gBAAgB;gBACxB,CAAC,CAAC,gBAAgB,CAAC;YAEvB,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,wBAAwB,CACjC,WAAW,CAAC,MAAM,EAClB,YAAY,EACZ,YAAY,CACb,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,IAAA,qBAAS,EAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,yBAAc,CAAC;oBACvB,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,OAAO,EAAE,aAAa,IAAI,0BAA0B,IAAA,cAAO,EAAC,IAAI,CAAC,EAAE;iBACpE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,IAAA,mBAAO,EAAC,MAAM,CAAC,IAAI,MAAM,YAAY,aAAC,CAAC,QAAQ,EAAE,CAAC;YAC3D,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,IAAA,4CAAuB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;YAChD,MAAM,WAAW,GAAG,MAAM,IAAI,WAAW,CAAC;YAE1C,IAAI,IAAA,qBAAS,EAAC,WAAW,CAAC,EAAE,CAAC;gBAC3B,IAAI,SAAwC,CAAC;gBAC7C,IAAI,MAAM,EAAE,CAAC;oBACX,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;gBACxD,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;oBACvB,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;iBAAM,IAAI,IAAA,4BAAgB,EAAC,WAAW,CAAC,EAAE,CAAC;gBACzC,MAAM,gBAAgB,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpE,MAAM,WAAW,GACf,gBAAgB,YAAY,OAAO;oBACjC,CAAC,CAAC,MAAM,gBAAgB;oBACxB,CAAC,CAAC,gBAAgB,CAAC;gBAEvB,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;oBACvB,MAAM,IAAI,CAAC,wBAAwB,CACjC,WAAW,CAAC,MAAM,EAClB,YAAY,EACZ,OAAO,CACR,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,IAAA,uCAAkB,EAAC,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,UAAU,GAAG,IAAA,oDAAsB,EAAC,MAAM,CAAC,CAAC;YAClD,MAAM,WAAW,GACf,MAAM,CAAC,OAAO;gBACd,aAAa,IAAI,0BAA0B,IAAA,cAAO,EAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,MAAM,OAAO,GAAG,UAAU;gBACxB,CAAC,CAAC,GAAG,WAAW,KAAK,UAAU,EAAE;gBACjC,CAAC,CAAC,WAAW,CAAC;YAEhB,MAAM,IAAI,yBAAc,CAAC;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,OAAO;aACR,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,MAAiB,EAAE,CAAC;YAC7B,MAAM,IAAI,uCAA4B,CACpC,sCAAsC,IAAI,kDAAkD,EAC5F,EAAE,MAAM,EAAE,CACX,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AApHD,oEAoHC;AAED;;;;;;;;;;;GAWG;AAEH,MAAa,0BAKX,SAAQ,oBAAwC;IAGvC,KAAK,CAAC,YAAY,CACzB,YAAiC,EACjC,KAAgB,EAChB,YAAqC,EACrC,WAAiC;QAEjC,kEAAkE;QAClE,MAAM,gBAAgB,GAAG,WAAW,EAAE,OAAO;YAC3C,CAAC,CAAC,WAAW,CAAC,uBAAuB;YACrC,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAClD,4EAA4E;YAC5E,IAAI,OAAO,IAAI,gBAAgB,EAAE,CAAC;gBAChC,MAAM,IAAI,CAAC,YAAY,CACrB,gBAAgB,CAAC,KAAK,EACtB,YAAY,EACZ,YAAY,CACb,CAAC;YACJ,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,MAAM,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAA,eAAG,EAAC,KAAK,EAAE,aAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;YAC7D,CAAC;YACD,oBAAoB;YACpB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEQ,KAAK,CAAC,gBAAgB,CAC7B,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,kFAAkF;YAClF,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,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBAC/C,uBAAuB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oBAC1D,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB;gBAClD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,IAAA,eAAG,EAAC,KAAK,EAAE,aAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC3B,uBAAuB,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;wBACpD,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,oCAAoC;oBAC9D,CAAC;yBAAM,CAAC;wBACN,MAAM,KAAK,CAAC,CAAC,0BAA0B;oBACzC,CAAC;gBACH,CAAC;gBACD,UAAU,GAAG,KAAK,CAAC,CAAC,mDAAmD;gBACvE,SAAS;YACX,CAAC;YAED,mDAAmD;YACnD,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,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO;oBACL,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,MAAM,GAA+B;YACzC,UAAU;YACV,YAAY,EAAE,YAA8C;YAC5D,OAAO,EAAE,IAAI;SACd,CAAC;QAEF,4DAA4D;QAC5D,IAAI,uBAAuB,EAAE,CAAC;YAC5B,MAAM,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QAC3D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AArHD,gEAqHC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { type AssertionAsync, type AssertionFunctionAsync, type AssertionImplAsync, type AssertionImplFnAsync, type AssertionImplSchemaAsync, type AssertionParts, type AssertionSchemaAsync, type AssertionSlots, type ParsedResult, type ParsedValues } from "./assertion-types.cjs";
|
|
2
|
-
import { BupkisAssertion } from "./assertion.cjs";
|
|
3
|
-
export declare abstract class BupkisAssertionAsync<Parts extends AssertionParts, Impl extends AssertionImplAsync<Parts>, Slots extends AssertionSlots<Parts>> extends BupkisAssertion<Parts, Impl, Slots> implements AssertionAsync<Parts, Impl, Slots> {
|
|
4
|
-
abstract executeAsync(parsedValues: ParsedValues<Parts>, args: unknown[], stackStartFn: (...args: any[]) => any, parseResult?: ParsedResult<Parts>): Promise<void>;
|
|
5
|
-
parseValuesAsync<Args extends readonly unknown[]>(args: Args): Promise<ParsedResult<Parts>>;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* An assertion implemented as a Zod schema.
|
|
9
|
-
*
|
|
10
|
-
* Async schemas are supported via {@link expectAsync}.
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* Optimized schema assertion that performs subject validation during
|
|
14
|
-
* parseValues() to eliminate double parsing for simple schema-based
|
|
15
|
-
* assertions.
|
|
16
|
-
*
|
|
17
|
-
* This class implements Option 2 from the z.function() analysis - it caches the
|
|
18
|
-
* subject validation result during argument parsing and reuses it during
|
|
19
|
-
* execution, eliminating the double parsing overhead.
|
|
20
|
-
*/
|
|
21
|
-
export declare class BupkisAssertionFunctionAsync<Parts extends AssertionParts, Impl extends AssertionImplFnAsync<Parts>, Slots extends AssertionSlots<Parts>> extends BupkisAssertionAsync<Parts, Impl, Slots> implements AssertionFunctionAsync<Parts, Impl, Slots> {
|
|
22
|
-
executeAsync(parsedValues: ParsedValues<Parts>, args: unknown[], stackStartFn: (...args: any[]) => any, _parseResult?: ParsedResult<Parts>): Promise<void>;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* A class representing an assertion implemented as a function.
|
|
26
|
-
*
|
|
27
|
-
* This function may:
|
|
28
|
-
*
|
|
29
|
-
* 1. Return a `boolean` indicating pass/fail.
|
|
30
|
-
* 2. Return a `ZodType` which will be used to validate the subject.
|
|
31
|
-
* 3. Return a `Promise` resolving to either of the above (when called via
|
|
32
|
-
* {@link expectAsync})
|
|
33
|
-
* 4. Throw a {@link AssertionError}; when called via {@link expectAsync}, reject
|
|
34
|
-
* with an {@link AssertionError}
|
|
35
|
-
*/
|
|
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
|
-
executeAsync(parsedValues: ParsedValues<Parts>, _args: unknown[], stackStartFn: (...args: any[]) => any, parseResult?: ParsedResult<Parts>): Promise<void>;
|
|
38
|
-
parseValuesAsync<Args extends readonly unknown[]>(args: Args): Promise<ParsedResult<Parts>>;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=assertion-async.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { type AssertionAsync, type AssertionFunctionAsync, type AssertionImplAsync, type AssertionImplFnAsync, type AssertionImplSchemaAsync, type AssertionParts, type AssertionSchemaAsync, type AssertionSlots, type ParsedResult, type ParsedValues } from "./assertion-types.js";
|
|
2
|
-
import { BupkisAssertion } from "./assertion.js";
|
|
3
|
-
export declare abstract class BupkisAssertionAsync<Parts extends AssertionParts, Impl extends AssertionImplAsync<Parts>, Slots extends AssertionSlots<Parts>> extends BupkisAssertion<Parts, Impl, Slots> implements AssertionAsync<Parts, Impl, Slots> {
|
|
4
|
-
abstract executeAsync(parsedValues: ParsedValues<Parts>, args: unknown[], stackStartFn: (...args: any[]) => any, parseResult?: ParsedResult<Parts>): Promise<void>;
|
|
5
|
-
parseValuesAsync<Args extends readonly unknown[]>(args: Args): Promise<ParsedResult<Parts>>;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* An assertion implemented as a Zod schema.
|
|
9
|
-
*
|
|
10
|
-
* Async schemas are supported via {@link expectAsync}.
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* Optimized schema assertion that performs subject validation during
|
|
14
|
-
* parseValues() to eliminate double parsing for simple schema-based
|
|
15
|
-
* assertions.
|
|
16
|
-
*
|
|
17
|
-
* This class implements Option 2 from the z.function() analysis - it caches the
|
|
18
|
-
* subject validation result during argument parsing and reuses it during
|
|
19
|
-
* execution, eliminating the double parsing overhead.
|
|
20
|
-
*/
|
|
21
|
-
export declare class BupkisAssertionFunctionAsync<Parts extends AssertionParts, Impl extends AssertionImplFnAsync<Parts>, Slots extends AssertionSlots<Parts>> extends BupkisAssertionAsync<Parts, Impl, Slots> implements AssertionFunctionAsync<Parts, Impl, Slots> {
|
|
22
|
-
executeAsync(parsedValues: ParsedValues<Parts>, args: unknown[], stackStartFn: (...args: any[]) => any, _parseResult?: ParsedResult<Parts>): Promise<void>;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* A class representing an assertion implemented as a function.
|
|
26
|
-
*
|
|
27
|
-
* This function may:
|
|
28
|
-
*
|
|
29
|
-
* 1. Return a `boolean` indicating pass/fail.
|
|
30
|
-
* 2. Return a `ZodType` which will be used to validate the subject.
|
|
31
|
-
* 3. Return a `Promise` resolving to either of the above (when called via
|
|
32
|
-
* {@link expectAsync})
|
|
33
|
-
* 4. Throw a {@link AssertionError}; when called via {@link expectAsync}, reject
|
|
34
|
-
* with an {@link AssertionError}
|
|
35
|
-
*/
|
|
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
|
-
executeAsync(parsedValues: ParsedValues<Parts>, _args: unknown[], stackStartFn: (...args: any[]) => any, parseResult?: ParsedResult<Parts>): Promise<void>;
|
|
38
|
-
parseValuesAsync<Args extends readonly unknown[]>(args: Args): Promise<ParsedResult<Parts>>;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=assertion-async.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|