bupkis 0.11.1 → 0.12.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 +68 -91
- package/dist/commonjs/assertion/assertion-async.d.ts.map +1 -1
- package/dist/commonjs/assertion/assertion-async.js +32 -9
- package/dist/commonjs/assertion/assertion-async.js.map +1 -1
- package/dist/commonjs/assertion/assertion-standard-schema-async.d.ts +64 -0
- package/dist/commonjs/assertion/assertion-standard-schema-async.d.ts.map +1 -0
- package/dist/commonjs/assertion/assertion-standard-schema-async.js +155 -0
- package/dist/commonjs/assertion/assertion-standard-schema-async.js.map +1 -0
- package/dist/commonjs/assertion/assertion-standard-schema-sync.d.ts +64 -0
- package/dist/commonjs/assertion/assertion-standard-schema-sync.d.ts.map +1 -0
- package/dist/commonjs/assertion/assertion-standard-schema-sync.js +164 -0
- package/dist/commonjs/assertion/assertion-standard-schema-sync.js.map +1 -0
- package/dist/commonjs/assertion/assertion-sync.d.ts.map +1 -1
- package/dist/commonjs/assertion/assertion-sync.js +38 -5
- package/dist/commonjs/assertion/assertion-sync.js.map +1 -1
- package/dist/commonjs/assertion/assertion-types.d.ts +82 -14
- package/dist/commonjs/assertion/assertion-types.d.ts.map +1 -1
- package/dist/commonjs/assertion/assertion.d.ts +11 -0
- package/dist/commonjs/assertion/assertion.d.ts.map +1 -1
- package/dist/commonjs/assertion/assertion.js +30 -0
- package/dist/commonjs/assertion/assertion.js.map +1 -1
- package/dist/commonjs/assertion/create.d.ts.map +1 -1
- package/dist/commonjs/assertion/create.js +10 -2
- package/dist/commonjs/assertion/create.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-basic.d.ts +37 -37
- package/dist/commonjs/assertion/impl/sync-basic.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-collection.d.ts +3 -3
- package/dist/commonjs/assertion/impl/sync-collection.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-date.d.ts +1 -1
- package/dist/commonjs/assertion/impl/sync-date.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-esoteric.d.ts +3 -3
- package/dist/commonjs/assertion/impl/sync-esoteric.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-parametric.d.ts +1 -1
- package/dist/commonjs/assertion/impl/sync.d.ts +18 -18
- package/dist/commonjs/assertion/impl/sync.d.ts.map +1 -1
- package/dist/commonjs/assertion/slotify.js +25 -7
- package/dist/commonjs/assertion/slotify.js.map +1 -1
- package/dist/commonjs/bootstrap.d.ts +9 -9
- package/dist/commonjs/diff.d.ts.map +1 -1
- package/dist/commonjs/diff.js +14 -21
- package/dist/commonjs/diff.js.map +1 -1
- package/dist/commonjs/guards.d.ts +16 -0
- package/dist/commonjs/guards.d.ts.map +1 -1
- package/dist/commonjs/guards.js +27 -1
- package/dist/commonjs/guards.js.map +1 -1
- package/dist/commonjs/index.d.ts +22 -15
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/internal-schema.d.ts.map +1 -1
- package/dist/commonjs/internal-schema.js +30 -12
- package/dist/commonjs/internal-schema.js.map +1 -1
- package/dist/commonjs/standard-schema.d.ts +192 -0
- package/dist/commonjs/standard-schema.d.ts.map +1 -0
- package/dist/commonjs/standard-schema.js +13 -0
- package/dist/commonjs/standard-schema.js.map +1 -0
- package/dist/commonjs/types.d.ts +165 -13
- package/dist/commonjs/types.d.ts.map +1 -1
- package/dist/esm/assertion/assertion-async.d.ts.map +1 -1
- package/dist/esm/assertion/assertion-async.js +33 -10
- package/dist/esm/assertion/assertion-async.js.map +1 -1
- package/dist/esm/assertion/assertion-standard-schema-async.d.ts +64 -0
- package/dist/esm/assertion/assertion-standard-schema-async.d.ts.map +1 -0
- package/dist/esm/assertion/assertion-standard-schema-async.js +151 -0
- package/dist/esm/assertion/assertion-standard-schema-async.js.map +1 -0
- package/dist/esm/assertion/assertion-standard-schema-sync.d.ts +64 -0
- package/dist/esm/assertion/assertion-standard-schema-sync.d.ts.map +1 -0
- package/dist/esm/assertion/assertion-standard-schema-sync.js +160 -0
- package/dist/esm/assertion/assertion-standard-schema-sync.js.map +1 -0
- package/dist/esm/assertion/assertion-sync.d.ts.map +1 -1
- package/dist/esm/assertion/assertion-sync.js +39 -6
- package/dist/esm/assertion/assertion-sync.js.map +1 -1
- package/dist/esm/assertion/assertion-types.d.ts +82 -14
- package/dist/esm/assertion/assertion-types.d.ts.map +1 -1
- package/dist/esm/assertion/assertion.d.ts +11 -0
- package/dist/esm/assertion/assertion.d.ts.map +1 -1
- package/dist/esm/assertion/assertion.js +30 -0
- package/dist/esm/assertion/assertion.js.map +1 -1
- package/dist/esm/assertion/create.d.ts.map +1 -1
- package/dist/esm/assertion/create.js +11 -3
- package/dist/esm/assertion/create.js.map +1 -1
- package/dist/esm/assertion/impl/sync-basic.d.ts +37 -37
- package/dist/esm/assertion/impl/sync-basic.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-collection.d.ts +3 -3
- package/dist/esm/assertion/impl/sync-collection.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-date.d.ts +1 -1
- package/dist/esm/assertion/impl/sync-date.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-esoteric.d.ts +3 -3
- package/dist/esm/assertion/impl/sync-esoteric.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-parametric.d.ts +1 -1
- package/dist/esm/assertion/impl/sync.d.ts +18 -18
- package/dist/esm/assertion/impl/sync.d.ts.map +1 -1
- package/dist/esm/assertion/slotify.js +26 -8
- package/dist/esm/assertion/slotify.js.map +1 -1
- package/dist/esm/bootstrap.d.ts +9 -9
- package/dist/esm/diff.d.ts.map +1 -1
- package/dist/esm/diff.js +14 -21
- package/dist/esm/diff.js.map +1 -1
- package/dist/esm/guards.d.ts +16 -0
- package/dist/esm/guards.d.ts.map +1 -1
- package/dist/esm/guards.js +25 -0
- package/dist/esm/guards.js.map +1 -1
- package/dist/esm/index.d.ts +22 -15
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal-schema.d.ts.map +1 -1
- package/dist/esm/internal-schema.js +31 -13
- package/dist/esm/internal-schema.js.map +1 -1
- package/dist/esm/standard-schema.d.ts +192 -0
- package/dist/esm/standard-schema.d.ts.map +1 -0
- package/dist/esm/standard-schema.js +12 -0
- package/dist/esm/standard-schema.js.map +1 -0
- package/dist/esm/types.d.ts +165 -13
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +26 -18
- package/src/assertion/assertion-async.ts +54 -14
- package/src/assertion/assertion-standard-schema-async.ts +202 -0
- package/src/assertion/assertion-standard-schema-sync.ts +214 -0
- package/src/assertion/assertion-sync.ts +65 -10
- package/src/assertion/assertion-types.ts +113 -13
- package/src/assertion/assertion.ts +40 -0
- package/src/assertion/create.ts +11 -5
- package/src/assertion/slotify.ts +29 -7
- package/src/diff.ts +14 -29
- package/src/guards.ts +29 -0
- package/src/index.ts +16 -6
- package/src/internal-schema.ts +36 -16
- package/src/standard-schema.ts +214 -0
- package/src/types.ts +176 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,252 +1,229 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## [0.
|
|
3
|
+
## [0.12.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.11.1...bupkis-v0.12.0) (2025-10-24)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add Standard Schema V1 support for validation library interoperability ([d537cf2](https://github.com/boneskull/bupkis/commit/d537cf299e46aa53203bd6890bafbdbdb98cb825))
|
|
4
9
|
|
|
5
10
|
|
|
6
11
|
### Bug Fixes
|
|
7
12
|
|
|
8
|
-
* **
|
|
13
|
+
* **diff:** fix diff output for incomparable types ([7ccc041](https://github.com/boneskull/bupkis/commit/7ccc0412a4e5c30a922fddd4b9a20368c3a8f077))
|
|
14
|
+
* **test:** update snapshots ([b5005c1](https://github.com/boneskull/bupkis/commit/b5005c13358dd5ae91fd0b6d09a99b842dfdbc79))
|
|
9
15
|
|
|
10
|
-
## [0.11.
|
|
16
|
+
## [0.11.1](https://github.com/boneskull/bupkis/compare/bupkis-v0.11.0...bupkis-v0.11.1) (2025-10-10)
|
|
11
17
|
|
|
18
|
+
### Bug Fixes
|
|
12
19
|
|
|
13
|
-
|
|
20
|
+
- **assertions:** remove non-deterministic date assertions ([e1569c3](https://github.com/boneskull/bupkis/commit/e1569c3c85572782e2bfe0bb9ecac89b9f2b4f49)), closes [#146](https://github.com/boneskull/bupkis/issues/146)
|
|
14
21
|
|
|
15
|
-
|
|
16
|
-
|
|
22
|
+
## [0.11.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.10.6...bupkis-v0.11.0) (2025-10-06)
|
|
23
|
+
|
|
24
|
+
### Features
|
|
17
25
|
|
|
26
|
+
- **assertions:** add some more aliases; cleanup ([a751cdb](https://github.com/boneskull/bupkis/commit/a751cdb1462ec77a8e17fc52c4d5434ca3197535))
|
|
27
|
+
- **schema:** add more schemas ([0b0c292](https://github.com/boneskull/bupkis/commit/0b0c2928a29c4615433e537d34637bdb1cd44af9))
|
|
18
28
|
|
|
19
29
|
### Bug Fixes
|
|
20
30
|
|
|
21
|
-
|
|
31
|
+
- **deps:** unpin type-fest ([e621d19](https://github.com/boneskull/bupkis/commit/e621d1982c371581206d49ec979b45eefddec125))
|
|
22
32
|
|
|
23
33
|
## [0.10.6](https://github.com/boneskull/bupkis/compare/bupkis-v0.10.5...bupkis-v0.10.6) (2025-10-06)
|
|
24
34
|
|
|
25
|
-
|
|
26
35
|
### Bug Fixes
|
|
27
36
|
|
|
28
|
-
|
|
37
|
+
- **deps:** move type-fest to dependencies ([7db2b81](https://github.com/boneskull/bupkis/commit/7db2b81fa14d2cefdcc57835706e694fa0794830))
|
|
29
38
|
|
|
30
39
|
## [0.10.5](https://github.com/boneskull/bupkis/compare/bupkis-v0.10.4...bupkis-v0.10.5) (2025-10-05)
|
|
31
40
|
|
|
32
|
-
|
|
33
41
|
### Bug Fixes
|
|
34
42
|
|
|
35
|
-
|
|
43
|
+
- **assertions:** better assertion error messages for regexes ([956c985](https://github.com/boneskull/bupkis/commit/956c9858b4a7c3c004fbe665cff2f1be1492b9c8))
|
|
36
44
|
|
|
37
45
|
## [0.10.4](https://github.com/boneskull/bupkis/compare/bupkis-v0.10.3...bupkis-v0.10.4) (2025-10-05)
|
|
38
46
|
|
|
39
|
-
|
|
40
47
|
### Bug Fixes
|
|
41
48
|
|
|
42
|
-
|
|
49
|
+
- **ci:** re-enable token-based publishing ([f2183ee](https://github.com/boneskull/bupkis/commit/f2183eeb71068929e6794add5a763625d62a8717))
|
|
43
50
|
|
|
44
51
|
## [0.10.3](https://github.com/boneskull/bupkis/compare/bupkis-v0.10.2...bupkis-v0.10.3) (2025-10-05)
|
|
45
52
|
|
|
46
|
-
|
|
47
53
|
### Bug Fixes
|
|
48
54
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
55
|
+
- **assertion:** remove metadata parameter from createAssertion/createAsyncAssertion ([3fb6681](https://github.com/boneskull/bupkis/commit/3fb6681cccc3e9af17e2f6f4071fb0b608ed85a2))
|
|
56
|
+
- **assertions:** error-reporting fixes for date assertions ([a9bcb4d](https://github.com/boneskull/bupkis/commit/a9bcb4d36abafa3a4dec4b5e9a1ba45c64bd7f4c))
|
|
57
|
+
- **assertions:** update weekend/weekday assertions to use UTC ([7e18155](https://github.com/boneskull/bupkis/commit/7e18155b08ffe4319081822ee6f6d9b9dd038443))
|
|
58
|
+
- **schema:** expose datetime-related schemas ([a9bcb4d](https://github.com/boneskull/bupkis/commit/a9bcb4d36abafa3a4dec4b5e9a1ba45c64bd7f4c))
|
|
53
59
|
|
|
54
60
|
## [0.10.2](https://github.com/boneskull/bupkis/compare/bupkis-v0.10.1...bupkis-v0.10.2) (2025-10-04)
|
|
55
61
|
|
|
56
|
-
|
|
57
62
|
### Bug Fixes
|
|
58
63
|
|
|
59
|
-
|
|
64
|
+
- force release ([775efb1](https://github.com/boneskull/bupkis/commit/775efb1e539def520a8a22140f88d0098a426265))
|
|
60
65
|
|
|
61
66
|
## [0.10.1](https://github.com/boneskull/bupkis/compare/bupkis-v0.10.0...bupkis-v0.10.1) (2025-10-04)
|
|
62
67
|
|
|
63
|
-
|
|
64
68
|
### Bug Fixes
|
|
65
69
|
|
|
66
|
-
|
|
70
|
+
- **assertions:** another fix for handling of conjuncted assertions w/ bare "and" phrases ([fb79b8b](https://github.com/boneskull/bupkis/commit/fb79b8bd0969f3ab71d93fe6ddfcc9b3fab93ff0))
|
|
67
71
|
|
|
68
72
|
## [0.10.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.9.0...bupkis-v0.10.0) (2025-10-03)
|
|
69
73
|
|
|
70
|
-
|
|
71
74
|
### Features
|
|
72
75
|
|
|
73
|
-
|
|
74
|
-
|
|
76
|
+
- **assertions:** add more date assertions ([ab8365c](https://github.com/boneskull/bupkis/commit/ab8365cbcf09c9c56fb88d174880c5e72d608f03))
|
|
75
77
|
|
|
76
78
|
### Bug Fixes
|
|
77
79
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
- **assertions:** more accurate string representations of assertions ([b78c36a](https://github.com/boneskull/bupkis/commit/b78c36a103f07bb3a06b327231186ef5f34fed82))
|
|
81
|
+
- **deps:** update dependency jest-diff to v30.2.0 ([#103](https://github.com/boneskull/bupkis/issues/103)) ([dba6f6f](https://github.com/boneskull/bupkis/commit/dba6f6ff3858c5e5d4351bcaaef7c991145a5252))
|
|
82
|
+
- **error:** AssertionErrorOptions fix for @types/node ([7aef073](https://github.com/boneskull/bupkis/commit/7aef0737ac5e2960d63aeacb3e2f7851e23c79ff))
|
|
83
|
+
- **expect:** proper handling of assertions containing bare "and" phrases ([0ad9eee](https://github.com/boneskull/bupkis/commit/0ad9eeeac73173cb3fc5c05173a22b8baed51efe))
|
|
82
84
|
|
|
83
85
|
## [0.9.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.8.0...bupkis-v0.9.0) (2025-09-29)
|
|
84
86
|
|
|
85
|
-
|
|
86
87
|
### Features
|
|
87
88
|
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
- **assertion:** allow chaining assertions with "and" ([e76e772](https://github.com/boneskull/bupkis/commit/e76e772395afeb613b0936b2ac0fb3ed9792aa0e))
|
|
90
|
+
- **assertions:** assertions can return Assertion Parse Request objects ([43fa2d1](https://github.com/boneskull/bupkis/commit/43fa2d14aed32caff7f665845b7471b014a6c266))
|
|
90
91
|
|
|
91
92
|
## [0.8.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.7.2...bupkis-v0.8.0) (2025-09-25)
|
|
92
93
|
|
|
93
|
-
|
|
94
94
|
### Features
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
- proper diffs ([ef29531](https://github.com/boneskull/bupkis/commit/ef295313cf5e8b5b0b0357098f4f7ee22414403d))
|
|
97
97
|
|
|
98
98
|
## [0.7.2](https://github.com/boneskull/bupkis/compare/bupkis-v0.7.1...bupkis-v0.7.2) (2025-09-22)
|
|
99
99
|
|
|
100
|
-
|
|
101
100
|
### Bug Fixes
|
|
102
101
|
|
|
103
|
-
|
|
102
|
+
- **release:** revert change to publish action ([5342626](https://github.com/boneskull/bupkis/commit/5342626daa65b75994bd9681f356f24fef7a25ba))
|
|
104
103
|
|
|
105
104
|
## [0.7.1](https://github.com/boneskull/bupkis/compare/bupkis-v0.7.0...bupkis-v0.7.1) (2025-09-22)
|
|
106
105
|
|
|
107
|
-
|
|
108
106
|
### Bug Fixes
|
|
109
107
|
|
|
110
|
-
|
|
111
|
-
|
|
108
|
+
- **release:** release 0.7.0 ([488f0dc](https://github.com/boneskull/bupkis/commit/488f0dc6f74a8c83fd97ec6ea1bd937bf2df0032))
|
|
109
|
+
- **release:** release 0.7.1 ([7505fb8](https://github.com/boneskull/bupkis/commit/7505fb810a22d0f433af6403c9ff3fa492279884))
|
|
112
110
|
|
|
113
111
|
## [0.7.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.7.0...bupkis-v0.7.0) (2025-09-22)
|
|
114
112
|
|
|
115
|
-
|
|
116
113
|
### Bug Fixes
|
|
117
114
|
|
|
118
|
-
|
|
115
|
+
- **release:** release 0.7.0 ([488f0dc](https://github.com/boneskull/bupkis/commit/488f0dc6f74a8c83fd97ec6ea1bd937bf2df0032))
|
|
119
116
|
|
|
120
117
|
## [0.7.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.6.0...bupkis-v0.7.0) (2025-09-22)
|
|
121
118
|
|
|
122
|
-
|
|
123
119
|
### Features
|
|
124
120
|
|
|
125
|
-
|
|
126
|
-
|
|
121
|
+
- add proper errors, codes ([1f3b149](https://github.com/boneskull/bupkis/commit/1f3b149e1aa42f90469b96244224fe6736175c25))
|
|
127
122
|
|
|
128
123
|
### Bug Fixes
|
|
129
124
|
|
|
130
|
-
|
|
131
|
-
|
|
125
|
+
- **guards:** thenable.then must have at least one parameter ([41a987e](https://github.com/boneskull/bupkis/commit/41a987e5ec131b780124bf6459b900bf15643987))
|
|
126
|
+
- re-export schema namespace ([497bad7](https://github.com/boneskull/bupkis/commit/497bad7104b6ee5195f5c4d566837e8e34a1d744))
|
|
132
127
|
|
|
133
128
|
## [0.6.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.5.1...bupkis-v0.6.0) (2025-09-22)
|
|
134
129
|
|
|
135
|
-
|
|
136
130
|
### Features
|
|
137
131
|
|
|
138
|
-
|
|
139
|
-
|
|
132
|
+
- **assertions:** create expectAsync.it ([fb4db5a](https://github.com/boneskull/bupkis/commit/fb4db5afc4d2ab6e0affc073ab03c670264a3bbd))
|
|
140
133
|
|
|
141
134
|
### Bug Fixes
|
|
142
135
|
|
|
143
|
-
|
|
144
|
-
|
|
136
|
+
- **assertions:** "map/set to have size greater than" now expects nonnegative int size ([2355ba0](https://github.com/boneskull/bupkis/commit/2355ba0494baeb5050024e6fadd8a28a900f5dcc))
|
|
137
|
+
- **assertions:** narrow some schemas ([fc0b708](https://github.com/boneskull/bupkis/commit/fc0b7086ba898a43f3c9558aff6ede30723e38c6))
|
|
145
138
|
|
|
146
139
|
## [0.5.1](https://github.com/boneskull/bupkis/compare/bupkis-v0.5.0...bupkis-v0.5.1) (2025-09-18)
|
|
147
140
|
|
|
148
|
-
|
|
149
141
|
### Bug Fixes
|
|
150
142
|
|
|
151
|
-
|
|
143
|
+
- **errors:** fix AssertionError output ([8fae815](https://github.com/boneskull/bupkis/commit/8fae81585121026b9869489f39ba8c5dfb834834))
|
|
152
144
|
|
|
153
145
|
## [0.5.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.4.0...bupkis-v0.5.0) (2025-09-18)
|
|
154
146
|
|
|
155
|
-
|
|
156
147
|
### Features
|
|
157
148
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
149
|
+
- **assertions:** implement "to have key" and "to have exact key" ([8bb53cc](https://github.com/boneskull/bupkis/commit/8bb53cc6c6457b52f16f9057b1287005bc9a80df))
|
|
150
|
+
- more set/map assertions ([ec9e0f4](https://github.com/boneskull/bupkis/commit/ec9e0f46cd2ec0d0d097b54b3d0d9400fbb79c9d)), closes [#27](https://github.com/boneskull/bupkis/issues/27)
|
|
151
|
+
- **util:** implement `get` and `has` functions (like lodash's) supporting keypaths ([8bb53cc](https://github.com/boneskull/bupkis/commit/8bb53cc6c6457b52f16f9057b1287005bc9a80df))
|
|
162
152
|
|
|
163
153
|
### Bug Fixes
|
|
164
154
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
155
|
+
- "to satisfy" now accepts any value for comparison ([ec9e0f4](https://github.com/boneskull/bupkis/commit/ec9e0f46cd2ec0d0d097b54b3d0d9400fbb79c9d))
|
|
156
|
+
- **assertions:** widen allowed subjects for "to have keys" assertion ([8bb53cc](https://github.com/boneskull/bupkis/commit/8bb53cc6c6457b52f16f9057b1287005bc9a80df))
|
|
157
|
+
- many edge cases ([ec9e0f4](https://github.com/boneskull/bupkis/commit/ec9e0f46cd2ec0d0d097b54b3d0d9400fbb79c9d))
|
|
168
158
|
|
|
169
159
|
## [0.4.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.3.0...bupkis-v0.4.0) (2025-09-15)
|
|
170
160
|
|
|
171
|
-
|
|
172
161
|
### Features
|
|
173
162
|
|
|
174
|
-
|
|
175
|
-
|
|
163
|
+
- implement embeddable assertions ([3050d1c](https://github.com/boneskull/bupkis/commit/3050d1c0d57048a840449935fd0dfead370b0f11)), closes [#46](https://github.com/boneskull/bupkis/issues/46)
|
|
176
164
|
|
|
177
165
|
### Bug Fixes
|
|
178
166
|
|
|
179
|
-
|
|
167
|
+
- **schema:** rename ClassSchema to ConstructibleSchema ([#47](https://github.com/boneskull/bupkis/issues/47)) ([c497a24](https://github.com/boneskull/bupkis/commit/c497a249ad6428a8a2082aadfd7796c1e7f8b82f))
|
|
180
168
|
|
|
181
169
|
## [0.3.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.2.0...bupkis-v0.3.0) (2025-09-14)
|
|
182
170
|
|
|
183
|
-
|
|
184
171
|
### Features
|
|
185
172
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
173
|
+
- **assertions:** add callback assertions ([a879213](https://github.com/boneskull/bupkis/commit/a87921398e63583fe75e8085ea20bb4406d0dbdb))
|
|
174
|
+
- **createAssertion:** allow ZodError return types from assertion implementation functions ([0dbd940](https://github.com/boneskull/bupkis/commit/0dbd94028da4761f6c4842fd6411782b20925b82))
|
|
189
175
|
|
|
190
176
|
### Bug Fixes
|
|
191
177
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
178
|
+
- **assertions:** fix all manner of issues w/r/t "to satisfies" and deep equality ([c0800a3](https://github.com/boneskull/bupkis/commit/c0800a3523876ac6b1b3083325f2bb3dafed8bdc))
|
|
179
|
+
- **assertions:** fix edge-cases in "to satisfy" and "deep equal" assertions ([a879213](https://github.com/boneskull/bupkis/commit/a87921398e63583fe75e8085ea20bb4406d0dbdb))
|
|
180
|
+
- restore caching for async schema assertions ([8b62d74](https://github.com/boneskull/bupkis/commit/8b62d74db596155a1cf10e2da55dfe251b082589))
|
|
195
181
|
|
|
196
182
|
## [0.2.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.1.2...bupkis-v0.2.0) (2025-09-10)
|
|
197
183
|
|
|
198
|
-
|
|
199
184
|
### Features
|
|
200
185
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
186
|
+
- add "assertions" subpath export ([692421b](https://github.com/boneskull/bupkis/commit/692421b5831a440fce0d0e9fe191a4aeba61a808))
|
|
187
|
+
- **assertion:** add alias "to be between" for "to be within" ([6e20646](https://github.com/boneskull/bupkis/commit/6e2064671b0b8e4ca35db55fd8ec90211956f303))
|
|
204
188
|
|
|
205
189
|
### Bug Fixes
|
|
206
190
|
|
|
207
|
-
|
|
191
|
+
- rename "to resolve to value satisfying" async assertions to "resolve with value satisfying" ([3a39a3e](https://github.com/boneskull/bupkis/commit/3a39a3e18ea2899f8c8ec8cbabdff9475dfbe41d))
|
|
208
192
|
|
|
209
193
|
## [0.1.2](https://github.com/boneskull/bupkis/compare/bupkis-v0.1.1...bupkis-v0.1.2) (2025-09-09)
|
|
210
194
|
|
|
211
|
-
|
|
212
195
|
### Bug Fixes
|
|
213
196
|
|
|
214
|
-
|
|
197
|
+
- **util:** isConstructable handles Symbol and BigInt properly ([c13747a](https://github.com/boneskull/bupkis/commit/c13747aa57b5806c38389c1d8347a2966cb17f22))
|
|
215
198
|
|
|
216
199
|
## [0.1.1](https://github.com/boneskull/bupkis/compare/bupkis-v0.1.0...bupkis-v0.1.1) (2025-09-09)
|
|
217
200
|
|
|
218
|
-
|
|
219
201
|
### Bug Fixes
|
|
220
202
|
|
|
221
|
-
|
|
203
|
+
- actually build before publish ([996c28e](https://github.com/boneskull/bupkis/commit/996c28e223ce488d07ea0b7633829ff25d510be3))
|
|
222
204
|
|
|
223
205
|
## [0.1.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.0.2...bupkis-v0.1.0) (2025-09-08)
|
|
224
206
|
|
|
225
|
-
|
|
226
207
|
### Features
|
|
227
208
|
|
|
228
|
-
|
|
229
|
-
|
|
209
|
+
- **use:** use() returns an object with a use() in it ([fb383d6](https://github.com/boneskull/bupkis/commit/fb383d6fb2f541085d2300664fe73b25c6249e42))
|
|
230
210
|
|
|
231
211
|
### Bug Fixes
|
|
232
212
|
|
|
233
|
-
|
|
213
|
+
- **package:** add description and homepage ([2ff82ea](https://github.com/boneskull/bupkis/commit/2ff82ea715280098f59612ba32da808308aced0e))
|
|
234
214
|
|
|
235
215
|
## [0.0.2](https://github.com/boneskull/bupkis/compare/bupkis-v0.0.1...bupkis-v0.0.2) (2025-09-07)
|
|
236
216
|
|
|
237
|
-
|
|
238
217
|
### Bug Fixes
|
|
239
218
|
|
|
240
|
-
|
|
219
|
+
- add repository to package.json ([4d687a5](https://github.com/boneskull/bupkis/commit/4d687a54c4fb34331508011df14fcfd966bf7ad3))
|
|
241
220
|
|
|
242
221
|
## 0.0.1 (2025-09-07)
|
|
243
222
|
|
|
244
|
-
|
|
245
223
|
### Features
|
|
246
224
|
|
|
247
|
-
|
|
248
|
-
|
|
225
|
+
- "initial commit" ([04f234c](https://github.com/boneskull/bupkis/commit/04f234c8f8cea4cef5bae0dc7ccb692eb91d8748))
|
|
249
226
|
|
|
250
227
|
### Bug Fixes
|
|
251
228
|
|
|
252
|
-
|
|
229
|
+
- remove ref to distfile ([5de9a6b](https://github.com/boneskull/bupkis/commit/5de9a6b6f7bebe3f8898eecc3ae2212e183c3a16))
|
|
@@ -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":"AAiBA,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,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,8BAAsB,oBAAoB,CACtC,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,kBAAkB,CAAC,KAAK,CAAC,EACtC,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAErC,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,CACrC,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,oBAAoB,CAAC,KAAK,CAAC,EACxC,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAErC,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;CAiGjB;AAED;;;;;;;;;;;GAWG;AAEH,qBAAa,0BAA0B,CACnC,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,wBAAwB,CAAC,KAAK,CAAC,EAC5C,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAErC,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;IAyE/B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;CAehC"}
|
|
@@ -97,6 +97,15 @@ class BupkisAssertionFunctionAsync extends BupkisAssertionAsync {
|
|
|
97
97
|
throw error;
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
+
else if ((0, guards_js_1.isStandardSchema)(result)) {
|
|
101
|
+
const validationResult = result['~standard'].validate(parsedValues[0]);
|
|
102
|
+
const finalResult = validationResult instanceof Promise
|
|
103
|
+
? await validationResult
|
|
104
|
+
: validationResult;
|
|
105
|
+
if (finalResult.issues) {
|
|
106
|
+
throw this.fromStandardSchemaIssues(finalResult.issues, stackStartFn, parsedValues);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
100
109
|
else if ((0, guards_js_1.isBoolean)(result)) {
|
|
101
110
|
if (!result) {
|
|
102
111
|
throw new error_js_1.AssertionError({
|
|
@@ -110,15 +119,27 @@ class BupkisAssertionFunctionAsync extends BupkisAssertionAsync {
|
|
|
110
119
|
}
|
|
111
120
|
else if ((0, internal_schema_js_1.isAssertionParseRequest)(result)) {
|
|
112
121
|
const { asyncSchema, schema, subject } = result;
|
|
113
|
-
|
|
114
|
-
if (
|
|
115
|
-
zodResult
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
122
|
+
const schemaToUse = schema ?? asyncSchema;
|
|
123
|
+
if ((0, guards_js_1.isZodType)(schemaToUse)) {
|
|
124
|
+
let zodResult;
|
|
125
|
+
if (schema) {
|
|
126
|
+
zodResult = schemaToUse.safeParse(subject);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
zodResult = await schemaToUse.safeParseAsync(subject);
|
|
130
|
+
}
|
|
131
|
+
if (!zodResult.success) {
|
|
132
|
+
throw this.fromZodError(zodResult.error, stackStartFn, subject);
|
|
133
|
+
}
|
|
119
134
|
}
|
|
120
|
-
if (
|
|
121
|
-
|
|
135
|
+
else if ((0, guards_js_1.isStandardSchema)(schemaToUse)) {
|
|
136
|
+
const validationResult = schemaToUse['~standard'].validate(subject);
|
|
137
|
+
const finalResult = validationResult instanceof Promise
|
|
138
|
+
? await validationResult
|
|
139
|
+
: validationResult;
|
|
140
|
+
if (finalResult.issues) {
|
|
141
|
+
throw this.fromStandardSchemaIssues(finalResult.issues, stackStartFn, subject);
|
|
142
|
+
}
|
|
122
143
|
}
|
|
123
144
|
}
|
|
124
145
|
else if ((0, internal_schema_js_1.isAssertionFailure)(result)) {
|
|
@@ -156,7 +177,9 @@ class BupkisAssertionSchemaAsync extends BupkisAssertionAsync {
|
|
|
156
177
|
: undefined;
|
|
157
178
|
if (cachedValidation && !cachedValidation.success) {
|
|
158
179
|
// Subject validation failed during parseValuesAsync, throw the cached error
|
|
159
|
-
|
|
180
|
+
if ('error' in cachedValidation) {
|
|
181
|
+
throw this.fromZodError(cachedValidation.error, stackStartFn, parsedValues);
|
|
182
|
+
}
|
|
160
183
|
}
|
|
161
184
|
// Fall back to standard validation if no cached result
|
|
162
185
|
const [subject] = parsedValues;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion-async.js","sourceRoot":"","sources":["../../../src/assertion/assertion-async.ts"],"names":[],"mappings":";;;;;;AAAA,+BAA+B;AAC/B,gDAAuB;AAEvB,gDAAgD;AAChD,0CAA2E;AAC3E,
|
|
1
|
+
{"version":3,"file":"assertion-async.js","sourceRoot":"","sources":["../../../src/assertion/assertion-async.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asynchronous Standard Schema assertion implementation.
|
|
3
|
+
*
|
|
4
|
+
* This module provides the `BupkisAssertionStandardSchemaAsync` class for
|
|
5
|
+
* assertions implemented using Standard Schema v1 compliant validators that may
|
|
6
|
+
* perform asynchronous validation.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
import type { StandardSchemaV1 } from '../standard-schema.js';
|
|
11
|
+
import type { AssertionParts, AssertionSlots, AssertionStandardSchemaAsync, ParsedResult, ParsedValues } from './assertion-types.js';
|
|
12
|
+
import { BupkisAssertion } from './assertion.js';
|
|
13
|
+
/**
|
|
14
|
+
* An asynchronous assertion implemented using a Standard Schema v1 validator.
|
|
15
|
+
*
|
|
16
|
+
* This class handles async schema-based assertions where the implementation is
|
|
17
|
+
* any Standard Schema compliant validator that may perform asynchronous
|
|
18
|
+
* validation. It optimizes validation by caching the subject validation result
|
|
19
|
+
* during `parseValuesAsync()` to avoid double parsing.
|
|
20
|
+
*
|
|
21
|
+
* @template Parts - The assertion parts tuple defining structure
|
|
22
|
+
* @template Impl - The Standard Schema implementation
|
|
23
|
+
* @template Slots - The derived validation slots
|
|
24
|
+
*/
|
|
25
|
+
export declare class BupkisAssertionStandardSchemaAsync<Parts extends AssertionParts, Impl extends StandardSchemaV1, Slots extends AssertionSlots<Parts>> extends BupkisAssertion<Parts, Impl, Slots> implements AssertionStandardSchemaAsync<Parts, Impl, Slots> {
|
|
26
|
+
/**
|
|
27
|
+
* Executes the assertion asynchronously against validated values.
|
|
28
|
+
*
|
|
29
|
+
* If validation was already performed during `parseValuesAsync()` and cached,
|
|
30
|
+
* reuses that result. Otherwise, performs validation using the Standard
|
|
31
|
+
* Schema's validate() method (which may return a Promise).
|
|
32
|
+
*
|
|
33
|
+
* @param parsedValues - The parsed and validated values
|
|
34
|
+
* @param _args - Original raw arguments (unused)
|
|
35
|
+
* @param stackStartFn - Function to use as stack trace start point
|
|
36
|
+
* @param parseResult - Optional cached parse result from `parseValuesAsync()`
|
|
37
|
+
* @throws {AssertionError} If validation fails
|
|
38
|
+
*/
|
|
39
|
+
executeAsync(parsedValues: ParsedValues<Parts>, _args: unknown[], stackStartFn: (...args: any[]) => any, parseResult?: ParsedResult<Parts>): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Parses raw arguments asynchronously against slots with optimized caching.
|
|
42
|
+
*
|
|
43
|
+
* For simple schema assertions (subject + phrase literals only), this method
|
|
44
|
+
* validates the subject during parsing and caches the result to avoid double
|
|
45
|
+
* validation in `executeAsync()`.
|
|
46
|
+
*
|
|
47
|
+
* @param args - Raw arguments provided to `expectAsync()`
|
|
48
|
+
* @returns Promise resolving to parse result with cached validation
|
|
49
|
+
*/
|
|
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
|
+
}
|
|
64
|
+
//# sourceMappingURL=assertion-standard-schema-async.d.ts.map
|
|
@@ -0,0 +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,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,4BAA4B,EAC5B,YAAY,EAEZ,YAAY,EACb,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,qBAAa,kCAAkC,CAC3C,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,gBAAgB,EAC7B,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAErC,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;IA2E/B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,uBAAuB;CAahC"}
|