bupkis 0.18.2 → 1.0.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.
Files changed (390) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +1 -1
  3. package/dist/assertion/assertion-async.cjs +268 -0
  4. package/dist/assertion/assertion-async.cjs.map +1 -0
  5. package/dist/assertion/assertion-async.d.cts +40 -0
  6. package/dist/assertion/assertion-async.d.cts.map +1 -0
  7. package/dist/assertion/assertion-async.d.ts +40 -0
  8. package/dist/assertion/assertion-async.d.ts.map +1 -0
  9. package/dist/assertion/assertion-async.js +259 -0
  10. package/dist/assertion/assertion-async.js.map +1 -0
  11. package/dist/assertion/assertion-standard-schema-async.cjs +132 -0
  12. package/dist/assertion/assertion-standard-schema-async.cjs.map +1 -0
  13. package/dist/assertion/assertion-standard-schema-async.d.cts +52 -0
  14. package/dist/assertion/assertion-standard-schema-async.d.cts.map +1 -0
  15. package/dist/assertion/assertion-standard-schema-async.d.ts +52 -0
  16. package/dist/assertion/assertion-standard-schema-async.d.ts.map +1 -0
  17. package/dist/assertion/assertion-standard-schema-async.js +128 -0
  18. package/dist/assertion/assertion-standard-schema-async.js.map +1 -0
  19. package/dist/assertion/assertion-standard-schema-sync.cjs +141 -0
  20. package/dist/assertion/assertion-standard-schema-sync.cjs.map +1 -0
  21. package/dist/assertion/assertion-standard-schema-sync.d.cts +52 -0
  22. package/dist/assertion/assertion-standard-schema-sync.d.cts.map +1 -0
  23. package/dist/assertion/assertion-standard-schema-sync.d.ts +52 -0
  24. package/dist/assertion/assertion-standard-schema-sync.d.ts.map +1 -0
  25. package/dist/assertion/assertion-standard-schema-sync.js +137 -0
  26. package/dist/assertion/assertion-standard-schema-sync.js.map +1 -0
  27. package/dist/assertion/assertion-sync.cjs +281 -0
  28. package/dist/assertion/assertion-sync.cjs.map +1 -0
  29. package/dist/assertion/assertion-sync.d.cts +60 -0
  30. package/dist/assertion/assertion-sync.d.cts.map +1 -0
  31. package/dist/assertion/assertion-sync.d.ts +60 -0
  32. package/dist/assertion/assertion-sync.d.ts.map +1 -0
  33. package/dist/assertion/assertion-sync.js +275 -0
  34. package/dist/assertion/assertion-sync.js.map +1 -0
  35. package/dist/assertion/assertion-types.cjs +20 -0
  36. package/dist/assertion/assertion-types.cjs.map +1 -0
  37. package/dist/assertion/assertion-types.d.cts +1086 -0
  38. package/dist/assertion/assertion-types.d.cts.map +1 -0
  39. package/dist/assertion/assertion-types.d.ts +1086 -0
  40. package/dist/assertion/assertion-types.d.ts.map +1 -0
  41. package/dist/assertion/assertion-types.js +19 -0
  42. package/dist/assertion/assertion-types.js.map +1 -0
  43. package/dist/assertion/assertion.cjs +382 -0
  44. package/dist/assertion/assertion.cjs.map +1 -0
  45. package/dist/assertion/assertion.d.cts +109 -0
  46. package/dist/assertion/assertion.d.cts.map +1 -0
  47. package/dist/assertion/assertion.d.ts +109 -0
  48. package/dist/assertion/assertion.d.ts.map +1 -0
  49. package/dist/assertion/assertion.js +375 -0
  50. package/dist/assertion/assertion.js.map +1 -0
  51. package/dist/assertion/create.cjs +148 -0
  52. package/dist/assertion/create.cjs.map +1 -0
  53. package/dist/assertion/create.d.cts +85 -0
  54. package/dist/assertion/create.d.cts.map +1 -0
  55. package/dist/assertion/create.d.ts +85 -0
  56. package/dist/assertion/create.d.ts.map +1 -0
  57. package/dist/assertion/create.js +143 -0
  58. package/dist/assertion/create.js.map +1 -0
  59. package/dist/assertion/format-assertion-failure.cjs +63 -0
  60. package/dist/assertion/format-assertion-failure.cjs.map +1 -0
  61. package/dist/assertion/format-assertion-failure.d.cts +21 -0
  62. package/dist/assertion/format-assertion-failure.d.cts.map +1 -0
  63. package/dist/assertion/format-assertion-failure.d.ts +21 -0
  64. package/dist/assertion/format-assertion-failure.d.ts.map +1 -0
  65. package/dist/assertion/format-assertion-failure.js +59 -0
  66. package/dist/assertion/format-assertion-failure.js.map +1 -0
  67. package/dist/assertion/impl/assertion-util.cjs +68 -0
  68. package/dist/assertion/impl/assertion-util.cjs.map +1 -0
  69. package/dist/assertion/impl/assertion-util.d.cts +36 -0
  70. package/dist/assertion/impl/assertion-util.d.cts.map +1 -0
  71. package/dist/assertion/impl/assertion-util.d.ts +36 -0
  72. package/dist/assertion/impl/assertion-util.d.ts.map +1 -0
  73. package/dist/assertion/impl/assertion-util.js +62 -0
  74. package/dist/assertion/impl/assertion-util.js.map +1 -0
  75. package/dist/assertion/impl/async-iterable.cjs +627 -0
  76. package/dist/assertion/impl/async-iterable.cjs.map +1 -0
  77. package/dist/assertion/impl/async-iterable.d.cts +406 -0
  78. package/dist/assertion/impl/async-iterable.d.cts.map +1 -0
  79. package/dist/assertion/impl/async-iterable.d.ts +406 -0
  80. package/dist/assertion/impl/async-iterable.d.ts.map +1 -0
  81. package/dist/assertion/impl/async-iterable.js +624 -0
  82. package/dist/assertion/impl/async-iterable.js.map +1 -0
  83. package/dist/assertion/impl/async-parametric.cjs +412 -0
  84. package/dist/assertion/impl/async-parametric.cjs.map +1 -0
  85. package/dist/assertion/impl/async-parametric.d.cts +278 -0
  86. package/dist/assertion/impl/async-parametric.d.cts.map +1 -0
  87. package/dist/assertion/impl/async-parametric.d.ts +278 -0
  88. package/dist/assertion/impl/async-parametric.d.ts.map +1 -0
  89. package/dist/assertion/impl/async-parametric.js +409 -0
  90. package/dist/assertion/impl/async-parametric.js.map +1 -0
  91. package/dist/assertion/impl/async.cjs +56 -0
  92. package/dist/assertion/impl/async.cjs.map +1 -0
  93. package/dist/assertion/impl/async.d.cts +179 -0
  94. package/dist/assertion/impl/async.d.cts.map +1 -0
  95. package/dist/assertion/impl/async.d.ts +179 -0
  96. package/dist/assertion/impl/async.d.ts.map +1 -0
  97. package/dist/assertion/impl/async.js +39 -0
  98. package/dist/assertion/impl/async.js.map +1 -0
  99. package/dist/assertion/impl/index.cjs +37 -0
  100. package/dist/assertion/impl/index.cjs.map +1 -0
  101. package/dist/assertion/impl/index.d.cts +21 -0
  102. package/dist/assertion/impl/index.d.cts.map +1 -0
  103. package/dist/assertion/impl/index.d.ts +21 -0
  104. package/dist/assertion/impl/index.d.ts.map +1 -0
  105. package/dist/assertion/impl/index.js +21 -0
  106. package/dist/assertion/impl/index.js.map +1 -0
  107. package/dist/assertion/impl/iteration-util.cjs +297 -0
  108. package/dist/assertion/impl/iteration-util.cjs.map +1 -0
  109. package/dist/assertion/impl/iteration-util.d.cts +12 -0
  110. package/dist/assertion/impl/iteration-util.d.cts.map +1 -0
  111. package/dist/assertion/impl/iteration-util.d.ts +12 -0
  112. package/dist/assertion/impl/iteration-util.d.ts.map +1 -0
  113. package/dist/assertion/impl/iteration-util.js +282 -0
  114. package/dist/assertion/impl/iteration-util.js.map +1 -0
  115. package/dist/assertion/impl/snapshot.cjs +276 -0
  116. package/dist/assertion/impl/snapshot.cjs.map +1 -0
  117. package/dist/assertion/impl/snapshot.d.cts +278 -0
  118. package/dist/assertion/impl/snapshot.d.cts.map +1 -0
  119. package/dist/assertion/impl/snapshot.d.ts +278 -0
  120. package/dist/assertion/impl/snapshot.d.ts.map +1 -0
  121. package/dist/assertion/impl/snapshot.js +273 -0
  122. package/dist/assertion/impl/snapshot.js.map +1 -0
  123. package/dist/assertion/impl/sync-basic.cjs +553 -0
  124. package/dist/assertion/impl/sync-basic.cjs.map +1 -0
  125. package/dist/assertion/impl/sync-basic.d.cts +528 -0
  126. package/dist/assertion/impl/sync-basic.d.cts.map +1 -0
  127. package/dist/assertion/impl/sync-basic.d.ts +528 -0
  128. package/dist/assertion/impl/sync-basic.d.ts.map +1 -0
  129. package/dist/assertion/impl/sync-basic.js +550 -0
  130. package/dist/assertion/impl/sync-basic.js.map +1 -0
  131. package/dist/assertion/impl/sync-collection.cjs +1424 -0
  132. package/dist/assertion/impl/sync-collection.cjs.map +1 -0
  133. package/dist/assertion/impl/sync-collection.d.cts +922 -0
  134. package/dist/assertion/impl/sync-collection.d.cts.map +1 -0
  135. package/dist/assertion/impl/sync-collection.d.ts +922 -0
  136. package/dist/assertion/impl/sync-collection.d.ts.map +1 -0
  137. package/dist/assertion/impl/sync-collection.js +1418 -0
  138. package/dist/assertion/impl/sync-collection.js.map +1 -0
  139. package/dist/assertion/impl/sync-date.cjs +341 -0
  140. package/dist/assertion/impl/sync-date.cjs.map +1 -0
  141. package/dist/assertion/impl/sync-date.d.cts +209 -0
  142. package/dist/assertion/impl/sync-date.d.cts.map +1 -0
  143. package/dist/assertion/impl/sync-date.d.ts +209 -0
  144. package/dist/assertion/impl/sync-date.d.ts.map +1 -0
  145. package/dist/assertion/impl/sync-date.js +338 -0
  146. package/dist/assertion/impl/sync-date.js.map +1 -0
  147. package/dist/assertion/impl/sync-esoteric.cjs +214 -0
  148. package/dist/assertion/impl/sync-esoteric.cjs.map +1 -0
  149. package/dist/assertion/impl/sync-esoteric.d.cts +191 -0
  150. package/dist/assertion/impl/sync-esoteric.d.cts.map +1 -0
  151. package/dist/assertion/impl/sync-esoteric.d.ts +191 -0
  152. package/dist/assertion/impl/sync-esoteric.d.ts.map +1 -0
  153. package/dist/assertion/impl/sync-esoteric.js +211 -0
  154. package/dist/assertion/impl/sync-esoteric.js.map +1 -0
  155. package/dist/assertion/impl/sync-iterable.cjs +512 -0
  156. package/dist/assertion/impl/sync-iterable.cjs.map +1 -0
  157. package/dist/assertion/impl/sync-iterable.d.cts +334 -0
  158. package/dist/assertion/impl/sync-iterable.d.cts.map +1 -0
  159. package/dist/assertion/impl/sync-iterable.d.ts +334 -0
  160. package/dist/assertion/impl/sync-iterable.d.ts.map +1 -0
  161. package/dist/assertion/impl/sync-iterable.js +509 -0
  162. package/dist/assertion/impl/sync-iterable.js.map +1 -0
  163. package/dist/assertion/impl/sync-parametric.cjs +805 -0
  164. package/dist/assertion/impl/sync-parametric.cjs.map +1 -0
  165. package/dist/assertion/impl/sync-parametric.d.cts +560 -0
  166. package/dist/assertion/impl/sync-parametric.d.cts.map +1 -0
  167. package/dist/assertion/impl/sync-parametric.d.ts +560 -0
  168. package/dist/assertion/impl/sync-parametric.d.ts.map +1 -0
  169. package/dist/assertion/impl/sync-parametric.js +802 -0
  170. package/dist/assertion/impl/sync-parametric.js.map +1 -0
  171. package/dist/assertion/impl/sync.cjs +229 -0
  172. package/dist/assertion/impl/sync.cjs.map +1 -0
  173. package/dist/assertion/impl/sync.d.cts +536 -0
  174. package/dist/assertion/impl/sync.d.cts.map +1 -0
  175. package/dist/assertion/impl/sync.d.ts +536 -0
  176. package/dist/assertion/impl/sync.d.ts.map +1 -0
  177. package/dist/assertion/impl/sync.js +212 -0
  178. package/dist/assertion/impl/sync.js.map +1 -0
  179. package/dist/assertion/index.cjs +38 -0
  180. package/dist/assertion/index.cjs.map +1 -0
  181. package/dist/assertion/index.d.cts +18 -0
  182. package/dist/assertion/index.d.cts.map +1 -0
  183. package/dist/assertion/index.d.ts +18 -0
  184. package/dist/assertion/index.d.ts.map +1 -0
  185. package/dist/assertion/index.js +17 -0
  186. package/dist/assertion/index.js.map +1 -0
  187. package/dist/assertion/slotify.cjs +165 -0
  188. package/dist/assertion/slotify.cjs.map +1 -0
  189. package/dist/assertion/slotify.d.cts +11 -0
  190. package/dist/assertion/slotify.d.cts.map +1 -0
  191. package/dist/assertion/slotify.d.ts +11 -0
  192. package/dist/assertion/slotify.d.ts.map +1 -0
  193. package/dist/assertion/slotify.js +161 -0
  194. package/dist/assertion/slotify.js.map +1 -0
  195. package/dist/bootstrap.cjs +43 -0
  196. package/dist/bootstrap.cjs.map +1 -0
  197. package/dist/bootstrap.d.cts +27 -0
  198. package/dist/bootstrap.d.cts.map +1 -0
  199. package/dist/bootstrap.d.ts +27 -0
  200. package/dist/bootstrap.d.ts.map +1 -0
  201. package/dist/bootstrap.js +40 -0
  202. package/dist/bootstrap.js.map +1 -0
  203. package/dist/constant.cjs +82 -0
  204. package/dist/constant.cjs.map +1 -0
  205. package/dist/constant.d.cts +69 -0
  206. package/dist/constant.d.cts.map +1 -0
  207. package/dist/constant.d.ts +69 -0
  208. package/dist/constant.d.ts.map +1 -0
  209. package/dist/constant.js +79 -0
  210. package/dist/constant.js.map +1 -0
  211. package/dist/diff.cjs +340 -0
  212. package/dist/diff.cjs.map +1 -0
  213. package/dist/diff.d.cts +51 -0
  214. package/dist/diff.d.cts.map +1 -0
  215. package/dist/diff.d.ts +51 -0
  216. package/dist/diff.d.ts.map +1 -0
  217. package/dist/diff.js +334 -0
  218. package/dist/diff.js.map +1 -0
  219. package/dist/error.cjs +194 -0
  220. package/dist/error.cjs.map +1 -0
  221. package/dist/error.d.cts +212 -0
  222. package/dist/error.d.cts.map +1 -0
  223. package/dist/error.d.ts +212 -0
  224. package/dist/error.d.ts.map +1 -0
  225. package/dist/error.js +181 -0
  226. package/dist/error.js.map +1 -0
  227. package/dist/expect.cjs +587 -0
  228. package/dist/expect.cjs.map +1 -0
  229. package/dist/expect.d.cts +138 -0
  230. package/dist/expect.d.cts.map +1 -0
  231. package/dist/expect.d.ts +138 -0
  232. package/dist/expect.d.ts.map +1 -0
  233. package/dist/expect.js +582 -0
  234. package/dist/expect.js.map +1 -0
  235. package/dist/guards.cjs +291 -0
  236. package/dist/guards.cjs.map +1 -0
  237. package/dist/guards.d.cts +225 -0
  238. package/dist/guards.d.cts.map +1 -0
  239. package/dist/guards.d.ts +225 -0
  240. package/dist/guards.d.ts.map +1 -0
  241. package/dist/guards.js +273 -0
  242. package/dist/guards.js.map +1 -0
  243. package/dist/index.cjs +111 -0
  244. package/dist/index.cjs.map +1 -0
  245. package/dist/index.d.cts +460 -0
  246. package/dist/index.d.cts.map +1 -0
  247. package/dist/index.d.ts +460 -0
  248. package/dist/index.d.ts.map +1 -0
  249. package/dist/index.js +71 -0
  250. package/dist/index.js.map +1 -0
  251. package/dist/internal-schema.cjs +234 -0
  252. package/dist/internal-schema.cjs.map +1 -0
  253. package/dist/internal-schema.d.cts +8 -0
  254. package/dist/internal-schema.d.cts.map +1 -0
  255. package/dist/internal-schema.d.ts +8 -0
  256. package/dist/internal-schema.d.ts.map +1 -0
  257. package/dist/internal-schema.js +229 -0
  258. package/dist/internal-schema.js.map +1 -0
  259. package/dist/metadata.cjs +57 -0
  260. package/dist/metadata.cjs.map +1 -0
  261. package/dist/metadata.d.cts +27 -0
  262. package/dist/metadata.d.cts.map +1 -0
  263. package/dist/metadata.d.ts +27 -0
  264. package/dist/metadata.d.ts.map +1 -0
  265. package/dist/metadata.js +54 -0
  266. package/dist/metadata.js.map +1 -0
  267. package/dist/schema.cjs +1522 -0
  268. package/dist/schema.cjs.map +1 -0
  269. package/dist/schema.d.cts +1196 -0
  270. package/dist/schema.d.cts.map +1 -0
  271. package/dist/schema.d.ts +1196 -0
  272. package/dist/schema.d.ts.map +1 -0
  273. package/dist/schema.js +1516 -0
  274. package/dist/schema.js.map +1 -0
  275. package/dist/snapshot/adapter.cjs +29 -0
  276. package/dist/snapshot/adapter.cjs.map +1 -0
  277. package/dist/snapshot/adapter.d.cts +258 -0
  278. package/dist/snapshot/adapter.d.cts.map +1 -0
  279. package/dist/snapshot/adapter.d.ts +258 -0
  280. package/dist/snapshot/adapter.d.ts.map +1 -0
  281. package/dist/snapshot/adapter.js +25 -0
  282. package/dist/snapshot/adapter.js.map +1 -0
  283. package/dist/snapshot/adapters/fallback.cjs +452 -0
  284. package/dist/snapshot/adapters/fallback.cjs.map +1 -0
  285. package/dist/snapshot/adapters/fallback.d.cts +185 -0
  286. package/dist/snapshot/adapters/fallback.d.cts.map +1 -0
  287. package/dist/snapshot/adapters/fallback.d.ts +185 -0
  288. package/dist/snapshot/adapters/fallback.d.ts.map +1 -0
  289. package/dist/snapshot/adapters/fallback.js +445 -0
  290. package/dist/snapshot/adapters/fallback.js.map +1 -0
  291. package/dist/snapshot/adapters/node-test.cjs +297 -0
  292. package/dist/snapshot/adapters/node-test.cjs.map +1 -0
  293. package/dist/snapshot/adapters/node-test.d.cts +131 -0
  294. package/dist/snapshot/adapters/node-test.d.cts.map +1 -0
  295. package/dist/snapshot/adapters/node-test.d.ts +131 -0
  296. package/dist/snapshot/adapters/node-test.d.ts.map +1 -0
  297. package/dist/snapshot/adapters/node-test.js +293 -0
  298. package/dist/snapshot/adapters/node-test.js.map +1 -0
  299. package/dist/snapshot/index.cjs +61 -0
  300. package/dist/snapshot/index.cjs.map +1 -0
  301. package/dist/snapshot/index.d.cts +40 -0
  302. package/dist/snapshot/index.d.cts.map +1 -0
  303. package/dist/snapshot/index.d.ts +40 -0
  304. package/dist/snapshot/index.d.ts.map +1 -0
  305. package/dist/snapshot/index.js +44 -0
  306. package/dist/snapshot/index.js.map +1 -0
  307. package/dist/snapshot/node-version.cjs +49 -0
  308. package/dist/snapshot/node-version.cjs.map +1 -0
  309. package/dist/snapshot/node-version.d.cts +34 -0
  310. package/dist/snapshot/node-version.d.cts.map +1 -0
  311. package/dist/snapshot/node-version.d.ts +34 -0
  312. package/dist/snapshot/node-version.d.ts.map +1 -0
  313. package/dist/snapshot/node-version.js +44 -0
  314. package/dist/snapshot/node-version.js.map +1 -0
  315. package/dist/snapshot/select-adapter.cjs +170 -0
  316. package/dist/snapshot/select-adapter.cjs.map +1 -0
  317. package/dist/snapshot/select-adapter.d.cts +128 -0
  318. package/dist/snapshot/select-adapter.d.cts.map +1 -0
  319. package/dist/snapshot/select-adapter.d.ts +128 -0
  320. package/dist/snapshot/select-adapter.d.ts.map +1 -0
  321. package/dist/snapshot/select-adapter.js +164 -0
  322. package/dist/snapshot/select-adapter.js.map +1 -0
  323. package/dist/snapshot/serializer.cjs +245 -0
  324. package/dist/snapshot/serializer.cjs.map +1 -0
  325. package/dist/snapshot/serializer.d.cts +126 -0
  326. package/dist/snapshot/serializer.d.cts.map +1 -0
  327. package/dist/snapshot/serializer.d.ts +126 -0
  328. package/dist/snapshot/serializer.d.ts.map +1 -0
  329. package/dist/snapshot/serializer.js +237 -0
  330. package/dist/snapshot/serializer.js.map +1 -0
  331. package/dist/standard-schema.cjs +13 -0
  332. package/dist/standard-schema.cjs.map +1 -0
  333. package/dist/standard-schema.d.cts +192 -0
  334. package/dist/standard-schema.d.cts.map +1 -0
  335. package/dist/standard-schema.d.ts +192 -0
  336. package/dist/standard-schema.d.ts.map +1 -0
  337. package/dist/standard-schema.js +12 -0
  338. package/dist/standard-schema.js.map +1 -0
  339. package/dist/types.cjs +22 -0
  340. package/dist/types.cjs.map +1 -0
  341. package/dist/types.d.cts +756 -0
  342. package/dist/types.d.cts.map +1 -0
  343. package/dist/types.d.ts +756 -0
  344. package/dist/types.d.ts.map +1 -0
  345. package/dist/types.js +21 -0
  346. package/dist/types.js.map +1 -0
  347. package/dist/use.cjs +240 -0
  348. package/dist/use.cjs.map +1 -0
  349. package/dist/use.d.cts +8 -0
  350. package/dist/use.d.cts.map +1 -0
  351. package/dist/use.d.ts +8 -0
  352. package/dist/use.d.ts.map +1 -0
  353. package/dist/use.js +236 -0
  354. package/dist/use.js.map +1 -0
  355. package/dist/util.cjs +255 -0
  356. package/dist/util.cjs.map +1 -0
  357. package/dist/util.d.cts +141 -0
  358. package/dist/util.d.cts.map +1 -0
  359. package/dist/util.d.ts +141 -0
  360. package/dist/util.d.ts.map +1 -0
  361. package/dist/util.js +234 -0
  362. package/dist/util.js.map +1 -0
  363. package/dist/value-to-schema.cjs +537 -0
  364. package/dist/value-to-schema.cjs.map +1 -0
  365. package/dist/value-to-schema.d.cts +144 -0
  366. package/dist/value-to-schema.d.cts.map +1 -0
  367. package/dist/value-to-schema.d.ts +144 -0
  368. package/dist/value-to-schema.d.ts.map +1 -0
  369. package/dist/value-to-schema.js +533 -0
  370. package/dist/value-to-schema.js.map +1 -0
  371. package/package.json +24 -21
  372. package/src/assertion/assertion-sync.ts +1 -1
  373. package/src/assertion/assertion-types.ts +4 -8
  374. package/src/assertion/assertion.ts +12 -7
  375. package/src/assertion/format-assertion-failure.ts +2 -0
  376. package/src/assertion/impl/assertion-util.ts +1 -2
  377. package/src/assertion/impl/iteration-util.ts +3 -5
  378. package/src/assertion/impl/sync-collection.ts +633 -7
  379. package/src/assertion/impl/sync.ts +27 -0
  380. package/src/error.ts +13 -22
  381. package/src/expect.ts +1 -1
  382. package/src/guards.ts +8 -14
  383. package/src/internal-schema.ts +4 -8
  384. package/src/metadata.ts +1 -2
  385. package/src/snapshot/adapter.ts +2 -3
  386. package/src/snapshot/adapters/fallback.ts +2 -3
  387. package/src/snapshot/adapters/node-test.ts +14 -20
  388. package/src/snapshot/select-adapter.ts +3 -3
  389. package/src/snapshot/serializer.ts +2 -3
  390. package/src/types.ts +2 -162
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,UAAU,kCAAkC;AACxD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,uBAAuB;AACrD;;;;;GAKG;AACH,YAAY,EAAE,WAAW,EAAE,kBAAkB;AAC7C,2BAA2B;AAE3B,OAAO,KAAK,MAAM,oBAAoB;AAEtC;;;;GAIG;AACH,YAAY,EACV,eAAe,EACf,eAAe,EACf,eAAe,EACf,kBAAkB,GACnB,8BAA8B;AAE/B;;;GAGG;AACH,OAAO,EAAE,CAAC,EAAE,CAAC;AAEb;;;;;GAKG;AACH,YAAY,EAAE,gBAAgB,EAAE,6BAA6B;AAE7D;;;;;;;;;GASG;AACH,YAAY,KAAK,KAAK,mBAAmB;AAEzC;;GAEG;AACH,YAAY,EACV,gBAAgB,EAChB,4BAA4B,EAC5B,2BAA2B,EAC3B,MAAM,EACN,iBAAiB,EACjB,sBAAsB,EACtB,MAAM,EACN,WAAW,EACX,QAAQ,EACR,aAAa,EACb,MAAM,EACN,OAAO,EACP,KAAK,GACN,mBAAmB;AACpB,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAC5D,QAAA;AACE;;;;;;;;;GASG;AACH,eAAe;AACf;;;;;;;;;GASG;AACH,oBAAoB;AACpB;;;;;;GAMG;AACH,IAAI;AACJ;;;;;;GAMG;AACH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sYAEgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Main entry point for the Bupkis assertion library.
3
+ *
4
+ * This module exports all public APIs including the main `expect` function,
5
+ * asynchronous `expectAsync` function, assertion creation utilities, type
6
+ * guards, schema definitions, utility functions, and error types.
7
+ *
8
+ * @module bupkis
9
+ * @category API
10
+ * @example
11
+ *
12
+ * ```ts
13
+ * import { expect, expectAsync, z, createAssertion } from 'bupkis';
14
+ * ```
15
+ *
16
+ * {@link https://zod.dev | Zod v4} is exported as `z` if you aren't already
17
+ * using a {@link https://standardschema.dev | Standard Schema V1}-compatible
18
+ * validation library.
19
+ */
20
+ import { z } from 'zod';
21
+ import { expect as sacrificialExpect } from "./bootstrap.js";
22
+ export * as assertions from "./assertion/impl/index.js";
23
+ export { expect, expectAsync } from "./bootstrap.js";
24
+ export * from "./error.js";
25
+ export * as schema from "./schema.js";
26
+ /**
27
+ * Re-export of {@link https://zod.dev Zod v4} for use in custom assertion
28
+ * implementations.
29
+ */
30
+ export { z };
31
+ export { createAssertion, createAsyncAssertion, fail, use };
32
+ const {
33
+ /**
34
+ * The main factory function for creating asynchronous assertions.
35
+ *
36
+ * Exported from the entry point; is also a property of {@link Expect} and
37
+ * {@link ExpectAsync}.
38
+ *
39
+ * @function
40
+ * @primaryExport
41
+ * @group Core API
42
+ */
43
+ createAssertion,
44
+ /**
45
+ * The main factory function for creating asynchronous assertions.
46
+ *
47
+ * Exported from the entry point; is also a property of {@link Expect} and
48
+ * {@link ExpectAsync}.
49
+ *
50
+ * @function
51
+ * @primaryExport
52
+ * @group Core API
53
+ */
54
+ createAsyncAssertion,
55
+ /**
56
+ * {@inheritDoc FailFn}
57
+ *
58
+ * @function
59
+ * @primaryExport
60
+ * @group Core API
61
+ */
62
+ fail,
63
+ /**
64
+ * {@inheritDoc UseFn}
65
+ *
66
+ * @function
67
+ * @primaryExport
68
+ * @group Core API
69
+ */
70
+ use, ..._rest } = sacrificialExpect;
71
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,IAAI,iBAAiB,EAAE,uBAAuB;AAC7D,OAAO,KAAK,UAAU,kCAAkC;AACxD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,uBAAuB;AAQrD,2BAA2B;AAE3B,OAAO,KAAK,MAAM,oBAAoB;AActC;;;GAGG;AACH,OAAO,EAAE,CAAC,EAAE,CAAC;AAwCb,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAC5D,MAAM;AACJ;;;;;;;;;GASG;AACH,eAAe;AACf;;;;;;;;;GASG;AACH,oBAAoB;AACpB;;;;;;GAMG;AACH,IAAI;AACJ;;;;;;GAMG;AACH,GAAG,EACH,GAAG,KAAK,EACT,GAAG,iBAAiB,CAAC"}
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ /**
3
+ * Internal schemas
4
+ *
5
+ * @internal
6
+ * @packageDocumentation
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CreateAssertionInputSchemaAsync = exports.CreateAssertionInputSchema = exports.isAssertionParseRequest = exports.isAssertionFailure = void 0;
10
+ const zod_1 = require("zod");
11
+ const guards_js_1 = require("./guards.cjs");
12
+ /**
13
+ * Schema for {@link AssertionFailure}.
14
+ *
15
+ * @internal
16
+ */
17
+ // Note: We use a loose type here because z.function() has complex
18
+ // inference that doesn't exactly match our AssertionFailure interface.
19
+ // This schema is only used for validation (safeParse), not for type inference.
20
+ const AssertionFailureSchema = zod_1.z
21
+ .object({
22
+ actual: zod_1.z.unknown().optional().meta({
23
+ description: 'The actual value or description of what actually occurred',
24
+ }),
25
+ diff: zod_1.z.string().optional().meta({
26
+ description: 'Pre-computed diff string that bypasses jest-diff',
27
+ }),
28
+ diffOptions: zod_1.z
29
+ .record(zod_1.z.string(), zod_1.z.unknown())
30
+ .optional()
31
+ .meta({ description: 'Override options for jest-diff' }),
32
+ expected: zod_1.z.unknown().optional().meta({
33
+ description: 'The expected value or description of what was expected to occur',
34
+ }),
35
+ formatActual: zod_1.z.function().optional().meta({
36
+ description: 'Custom formatter for actual value in diff output',
37
+ }),
38
+ formatExpected: zod_1.z.function().optional().meta({
39
+ description: 'Custom formatter for expected value in diff output',
40
+ }),
41
+ message: zod_1.z
42
+ .string()
43
+ .optional()
44
+ .meta({ description: 'A human-readable message describing the failure' }),
45
+ })
46
+ .meta({
47
+ description: 'Potential return type of an assertion implementation function',
48
+ });
49
+ /**
50
+ * @internal
51
+ */
52
+ const ZodTypeSchema = zod_1.z
53
+ .custom(guards_js_1.isZodType, {
54
+ error: 'Must be a Zod schema',
55
+ })
56
+ .meta({ description: 'A Zod schema within AssertionParts' });
57
+ /**
58
+ * @internal
59
+ */
60
+ const StandardSchemaSchema = zod_1.z
61
+ .custom(guards_js_1.isStandardSchema, {
62
+ error: 'Must be a Standard Schema v1',
63
+ })
64
+ .meta({ description: 'A Standard Schema v1 within AssertionParts' });
65
+ /**
66
+ * Schema that accepts either Zod or Standard Schema validators.
67
+ *
68
+ * @internal
69
+ */
70
+ const SchemaSchema = zod_1.z
71
+ .union([ZodTypeSchema, StandardSchemaSchema])
72
+ .meta({ description: 'A Zod schema or Standard Schema v1' });
73
+ /** @internal */
74
+ const BaseAssertionParseRequestSchema = zod_1.z.object({
75
+ subject: zod_1.z
76
+ .unknown()
77
+ .meta({ description: 'The subject value to be validated' }),
78
+ });
79
+ /**
80
+ * @internal
81
+ */
82
+ const AssertionParseRequestSchema = zod_1.z.union([
83
+ zod_1.z.object({
84
+ ...BaseAssertionParseRequestSchema.shape,
85
+ schema: SchemaSchema.describe('The sync schema to validate against'),
86
+ }),
87
+ zod_1.z.object({
88
+ ...BaseAssertionParseRequestSchema.shape,
89
+ asyncSchema: SchemaSchema.describe('The async schema to validate against'),
90
+ }),
91
+ ]);
92
+ /**
93
+ * @internal
94
+ */
95
+ const PhraseLiteralSchema = zod_1.z
96
+ .stringFormat('PhraseLiteral', (value) => !value.startsWith('not '), {
97
+ error: 'Phrase literals may not begin with "not "',
98
+ })
99
+ .min(1, { error: 'Phrase literals must be at least 1 character long' })
100
+ .meta({ description: 'A phrase literal within AssertionParts' });
101
+ /**
102
+ * @internal
103
+ */
104
+ const PhraseLiteralChoiceSchema = zod_1.z
105
+ .array(PhraseLiteralSchema)
106
+ .min(1, { error: 'Phrase literal choices must have at least one option' })
107
+ .meta({
108
+ description: 'A choice of phrase literals, represented as an array of strings, within AssertionParts',
109
+ });
110
+ /**
111
+ * @internal
112
+ */
113
+ const AssertionImplSchemaSync = zod_1.z
114
+ .union([
115
+ SchemaSchema,
116
+ zod_1.z.function({
117
+ input: zod_1.z.tuple([zod_1.z.unknown()], zod_1.z.unknown()),
118
+ output: zod_1.z.union([
119
+ zod_1.z.void(),
120
+ zod_1.z.boolean(),
121
+ SchemaSchema,
122
+ AssertionFailureSchema,
123
+ AssertionParseRequestSchema,
124
+ ]),
125
+ }),
126
+ ])
127
+ .meta({ description: 'A synchronous assertion implementation function' });
128
+ const AssertionImplSchemaAsync = zod_1.z
129
+ .union([
130
+ SchemaSchema,
131
+ zod_1.z.function({
132
+ input: zod_1.z.tuple([zod_1.z.unknown()], zod_1.z.unknown()),
133
+ output: zod_1.z.union([
134
+ zod_1.z.void(),
135
+ zod_1.z.boolean(),
136
+ SchemaSchema,
137
+ AssertionFailureSchema,
138
+ AssertionParseRequestSchema,
139
+ zod_1.z.promise(zod_1.z.void()),
140
+ zod_1.z.promise(zod_1.z.boolean()),
141
+ zod_1.z.promise(SchemaSchema),
142
+ zod_1.z.promise(AssertionFailureSchema),
143
+ zod_1.z.promise(AssertionParseRequestSchema),
144
+ ]),
145
+ }),
146
+ ])
147
+ .meta({ description: 'An async assertion implementation function' });
148
+ /**
149
+ * Checks if a value is a schema (Zod or StandardSchema)
150
+ *
151
+ * @function
152
+ * @param value - Value to check
153
+ * @returns True if the value is a schema
154
+ */
155
+ const isSchema = (value) => (0, guards_js_1.isZodType)(value) || (0, guards_js_1.isStandardSchema)(value);
156
+ /**
157
+ * @internal
158
+ */
159
+ const AssertionPartsSchema = zod_1.z
160
+ .array(zod_1.z.union([PhraseLiteralSchema, PhraseLiteralChoiceSchema, SchemaSchema]))
161
+ .min(1, { error: 'At least one part is required for an assertion' })
162
+ .refine((parts) => {
163
+ // Special validation for 'and': it can only appear if followed by a schema
164
+ for (let i = 0; i < parts.length; i++) {
165
+ if (parts[i] === 'and') {
166
+ // 'and' must be followed by another part, and that part must be a schema
167
+ const nextPart = parts[i + 1];
168
+ if (i === parts.length - 1 ||
169
+ !((0, guards_js_1.isZodType)(nextPart) || (0, guards_js_1.isStandardSchema)(nextPart))) {
170
+ return false;
171
+ }
172
+ }
173
+ }
174
+ return true;
175
+ }, { error: '"and" can only appear when followed by a schema' })
176
+ .refine((parts) => {
177
+ const first = parts[0];
178
+ // Position 0 must be a schema or phrase
179
+ if ((0, guards_js_1.isPhrase)(first)) {
180
+ // Shorthand: phrase-first means subject is implicitly z.unknown()
181
+ return true;
182
+ }
183
+ if (isSchema(first)) {
184
+ // Subject-first: position 1 must be a phrase
185
+ const second = parts[1];
186
+ return second !== undefined && (0, guards_js_1.isPhrase)(second);
187
+ }
188
+ // Position 0 is neither schema nor phrase (shouldn't happen after array validation)
189
+ return false;
190
+ }, {
191
+ error: 'Assertions must have a phrase at position 0 (phrase-first shorthand) or position 1 (after subject schema)',
192
+ })
193
+ .meta({
194
+ description: 'Assertion "parts" which define the input of an assertion',
195
+ });
196
+ /**
197
+ * Type guard for a {@link AssertionFailure}.
198
+ *
199
+ * This cannot live in `guards.ts` because it would create a cycle.
200
+ *
201
+ * @function
202
+ * @param value Value to check
203
+ * @returns `true` if value is an AssertionFailure
204
+ * @internal
205
+ */
206
+ const isAssertionFailure = (value) => AssertionFailureSchema.safeParse(value).success;
207
+ exports.isAssertionFailure = isAssertionFailure;
208
+ /**
209
+ * Type guard for an {@link AssertionParseRequest}.
210
+ *
211
+ * @function
212
+ * @param value Value to check
213
+ * @returns `true` if value is an AssertionParseRequest
214
+ * @internal
215
+ */
216
+ const isAssertionParseRequest = (value) => AssertionParseRequestSchema.safeParse(value).success;
217
+ exports.isAssertionParseRequest = isAssertionParseRequest;
218
+ /**
219
+ * Schema for the input parameters of {@link createAssertion}.
220
+ *
221
+ * @internal
222
+ */
223
+ exports.CreateAssertionInputSchema = zod_1.z
224
+ .tuple([AssertionPartsSchema, AssertionImplSchemaSync])
225
+ .meta({ description: 'Parameters for createAssertion()' });
226
+ /**
227
+ * Schema for the input parameters of {@link createAsyncAssertion}.
228
+ *
229
+ * @internal
230
+ */
231
+ exports.CreateAssertionInputSchemaAsync = zod_1.z
232
+ .tuple([AssertionPartsSchema, AssertionImplSchemaAsync])
233
+ .meta({ description: 'Parameters for createAsyncAssertion()' });
234
+ //# sourceMappingURL=internal-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-schema.js","sourceRoot":"","sources":["../src/internal-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Internal schemas
3
+ *
4
+ * @internal
5
+ * @packageDocumentation
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=internal-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-schema.d.ts","sourceRoot":"","sources":["../src/internal-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Internal schemas
3
+ *
4
+ * @internal
5
+ * @packageDocumentation
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=internal-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-schema.d.ts","sourceRoot":"","sources":["../src/internal-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,229 @@
1
+ /**
2
+ * Internal schemas
3
+ *
4
+ * @internal
5
+ * @packageDocumentation
6
+ */
7
+ import { z } from 'zod';
8
+ import { isPhrase, isStandardSchema, isZodType } from "./guards.js";
9
+ /**
10
+ * Schema for {@link AssertionFailure}.
11
+ *
12
+ * @internal
13
+ */
14
+ // Note: We use a loose type here because z.function() has complex
15
+ // inference that doesn't exactly match our AssertionFailure interface.
16
+ // This schema is only used for validation (safeParse), not for type inference.
17
+ const AssertionFailureSchema = z
18
+ .object({
19
+ actual: z.unknown().optional().meta({
20
+ description: 'The actual value or description of what actually occurred',
21
+ }),
22
+ diff: z.string().optional().meta({
23
+ description: 'Pre-computed diff string that bypasses jest-diff',
24
+ }),
25
+ diffOptions: z
26
+ .record(z.string(), z.unknown())
27
+ .optional()
28
+ .meta({ description: 'Override options for jest-diff' }),
29
+ expected: z.unknown().optional().meta({
30
+ description: 'The expected value or description of what was expected to occur',
31
+ }),
32
+ formatActual: z.function().optional().meta({
33
+ description: 'Custom formatter for actual value in diff output',
34
+ }),
35
+ formatExpected: z.function().optional().meta({
36
+ description: 'Custom formatter for expected value in diff output',
37
+ }),
38
+ message: z
39
+ .string()
40
+ .optional()
41
+ .meta({ description: 'A human-readable message describing the failure' }),
42
+ })
43
+ .meta({
44
+ description: 'Potential return type of an assertion implementation function',
45
+ });
46
+ /**
47
+ * @internal
48
+ */
49
+ const ZodTypeSchema = z
50
+ .custom(isZodType, {
51
+ error: 'Must be a Zod schema',
52
+ })
53
+ .meta({ description: 'A Zod schema within AssertionParts' });
54
+ /**
55
+ * @internal
56
+ */
57
+ const StandardSchemaSchema = z
58
+ .custom(isStandardSchema, {
59
+ error: 'Must be a Standard Schema v1',
60
+ })
61
+ .meta({ description: 'A Standard Schema v1 within AssertionParts' });
62
+ /**
63
+ * Schema that accepts either Zod or Standard Schema validators.
64
+ *
65
+ * @internal
66
+ */
67
+ const SchemaSchema = z
68
+ .union([ZodTypeSchema, StandardSchemaSchema])
69
+ .meta({ description: 'A Zod schema or Standard Schema v1' });
70
+ /** @internal */
71
+ const BaseAssertionParseRequestSchema = z.object({
72
+ subject: z
73
+ .unknown()
74
+ .meta({ description: 'The subject value to be validated' }),
75
+ });
76
+ /**
77
+ * @internal
78
+ */
79
+ const AssertionParseRequestSchema = z.union([
80
+ z.object({
81
+ ...BaseAssertionParseRequestSchema.shape,
82
+ schema: SchemaSchema.describe('The sync schema to validate against'),
83
+ }),
84
+ z.object({
85
+ ...BaseAssertionParseRequestSchema.shape,
86
+ asyncSchema: SchemaSchema.describe('The async schema to validate against'),
87
+ }),
88
+ ]);
89
+ /**
90
+ * @internal
91
+ */
92
+ const PhraseLiteralSchema = z
93
+ .stringFormat('PhraseLiteral', (value) => !value.startsWith('not '), {
94
+ error: 'Phrase literals may not begin with "not "',
95
+ })
96
+ .min(1, { error: 'Phrase literals must be at least 1 character long' })
97
+ .meta({ description: 'A phrase literal within AssertionParts' });
98
+ /**
99
+ * @internal
100
+ */
101
+ const PhraseLiteralChoiceSchema = z
102
+ .array(PhraseLiteralSchema)
103
+ .min(1, { error: 'Phrase literal choices must have at least one option' })
104
+ .meta({
105
+ description: 'A choice of phrase literals, represented as an array of strings, within AssertionParts',
106
+ });
107
+ /**
108
+ * @internal
109
+ */
110
+ const AssertionImplSchemaSync = z
111
+ .union([
112
+ SchemaSchema,
113
+ z.function({
114
+ input: z.tuple([z.unknown()], z.unknown()),
115
+ output: z.union([
116
+ z.void(),
117
+ z.boolean(),
118
+ SchemaSchema,
119
+ AssertionFailureSchema,
120
+ AssertionParseRequestSchema,
121
+ ]),
122
+ }),
123
+ ])
124
+ .meta({ description: 'A synchronous assertion implementation function' });
125
+ const AssertionImplSchemaAsync = z
126
+ .union([
127
+ SchemaSchema,
128
+ z.function({
129
+ input: z.tuple([z.unknown()], z.unknown()),
130
+ output: z.union([
131
+ z.void(),
132
+ z.boolean(),
133
+ SchemaSchema,
134
+ AssertionFailureSchema,
135
+ AssertionParseRequestSchema,
136
+ z.promise(z.void()),
137
+ z.promise(z.boolean()),
138
+ z.promise(SchemaSchema),
139
+ z.promise(AssertionFailureSchema),
140
+ z.promise(AssertionParseRequestSchema),
141
+ ]),
142
+ }),
143
+ ])
144
+ .meta({ description: 'An async assertion implementation function' });
145
+ /**
146
+ * Checks if a value is a schema (Zod or StandardSchema)
147
+ *
148
+ * @function
149
+ * @param value - Value to check
150
+ * @returns True if the value is a schema
151
+ */
152
+ const isSchema = (value) => isZodType(value) || isStandardSchema(value);
153
+ /**
154
+ * @internal
155
+ */
156
+ const AssertionPartsSchema = z
157
+ .array(z.union([PhraseLiteralSchema, PhraseLiteralChoiceSchema, SchemaSchema]))
158
+ .min(1, { error: 'At least one part is required for an assertion' })
159
+ .refine((parts) => {
160
+ // Special validation for 'and': it can only appear if followed by a schema
161
+ for (let i = 0; i < parts.length; i++) {
162
+ if (parts[i] === 'and') {
163
+ // 'and' must be followed by another part, and that part must be a schema
164
+ const nextPart = parts[i + 1];
165
+ if (i === parts.length - 1 ||
166
+ !(isZodType(nextPart) || isStandardSchema(nextPart))) {
167
+ return false;
168
+ }
169
+ }
170
+ }
171
+ return true;
172
+ }, { error: '"and" can only appear when followed by a schema' })
173
+ .refine((parts) => {
174
+ const first = parts[0];
175
+ // Position 0 must be a schema or phrase
176
+ if (isPhrase(first)) {
177
+ // Shorthand: phrase-first means subject is implicitly z.unknown()
178
+ return true;
179
+ }
180
+ if (isSchema(first)) {
181
+ // Subject-first: position 1 must be a phrase
182
+ const second = parts[1];
183
+ return second !== undefined && isPhrase(second);
184
+ }
185
+ // Position 0 is neither schema nor phrase (shouldn't happen after array validation)
186
+ return false;
187
+ }, {
188
+ error: 'Assertions must have a phrase at position 0 (phrase-first shorthand) or position 1 (after subject schema)',
189
+ })
190
+ .meta({
191
+ description: 'Assertion "parts" which define the input of an assertion',
192
+ });
193
+ /**
194
+ * Type guard for a {@link AssertionFailure}.
195
+ *
196
+ * This cannot live in `guards.ts` because it would create a cycle.
197
+ *
198
+ * @function
199
+ * @param value Value to check
200
+ * @returns `true` if value is an AssertionFailure
201
+ * @internal
202
+ */
203
+ export const isAssertionFailure = (value) => AssertionFailureSchema.safeParse(value).success;
204
+ /**
205
+ * Type guard for an {@link AssertionParseRequest}.
206
+ *
207
+ * @function
208
+ * @param value Value to check
209
+ * @returns `true` if value is an AssertionParseRequest
210
+ * @internal
211
+ */
212
+ export const isAssertionParseRequest = (value) => AssertionParseRequestSchema.safeParse(value).success;
213
+ /**
214
+ * Schema for the input parameters of {@link createAssertion}.
215
+ *
216
+ * @internal
217
+ */
218
+ export const CreateAssertionInputSchema = z
219
+ .tuple([AssertionPartsSchema, AssertionImplSchemaSync])
220
+ .meta({ description: 'Parameters for createAssertion()' });
221
+ /**
222
+ * Schema for the input parameters of {@link createAsyncAssertion}.
223
+ *
224
+ * @internal
225
+ */
226
+ export const CreateAssertionInputSchemaAsync = z
227
+ .tuple([AssertionPartsSchema, AssertionImplSchemaAsync])
228
+ .meta({ description: 'Parameters for createAsyncAssertion()' });
229
+ //# sourceMappingURL=internal-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-schema.js","sourceRoot":"","sources":["../src/internal-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,oBAAoB;AAEpE;;;;GAIG;AAEH,kEAAkE;AAClE,uEAAuE;AACvE,+EAA+E;AAC/E,MAAM,sBAAsB,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC;QAClC,WAAW,EAAE,2DAA2D;KACzE,CAAC;IACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC;QAC/B,WAAW,EAAE,kDAAkD;KAChE,CAAC;IACF,WAAW,EAAE,CAAC;SACX,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SAC/B,QAAQ,EAAE;SACV,IAAI,CAAC,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;IAC1D,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC;QACpC,WAAW,EACT,iEAAiE;KACpE,CAAC;IACF,YAAY,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC;QACzC,WAAW,EAAE,kDAAkD;KAChE,CAAC;IACF,cAAc,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC;QAC3C,WAAW,EAAE,oDAAoD;KAClE,CAAC;IACF,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,IAAI,CAAC,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC;CAC5E,CAAC;KACD,IAAI,CAAC;IACJ,WAAW,EACT,+DAA+D;CAClE,CAAC,CAAC;AAEL;;GAEG;AACH,MAAM,aAAa,GAAG,CAAC;KACpB,MAAM,CAAY,SAAS,EAAE;IAC5B,KAAK,EAAE,sBAAsB;CAC9B,CAAC;KACD,IAAI,CAAC,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC,CAAC;AAE/D;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC;KAC3B,MAAM,CAAC,gBAAgB,EAAE;IACxB,KAAK,EAAE,8BAA8B;CACtC,CAAC;KACD,IAAI,CAAC,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,YAAY,GAAG,CAAC;KACnB,KAAK,CAAC,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;KAC5C,IAAI,CAAC,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC,CAAC;AAE/D,gBAAgB;AAChB,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,IAAI,CAAC,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC;CAC9D,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,2BAA2B,GAAqC,CAAC,CAAC,KAAK,CAAC;IAC5E,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,+BAA+B,CAAC,KAAK;QACxC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KACrE,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,+BAA+B,CAAC,KAAK;QACxC,WAAW,EAAE,YAAY,CAAC,QAAQ,CAAC,sCAAsC,CAAC;KAC3E,CAAC;CACH,CAAqC,CAAC;AAEvC;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAAC;KAC1B,YAAY,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;IACnE,KAAK,EAAE,2CAA2C;CACnD,CAAC;KACD,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,mDAAmD,EAAE,CAAC;KACtE,IAAI,CAAC,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,yBAAyB,GAAG,CAAC;KAChC,KAAK,CAAC,mBAAmB,CAAC;KAC1B,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,sDAAsD,EAAE,CAAC;KACzE,IAAI,CAAC;IACJ,WAAW,EACT,wFAAwF;CAC3F,CAAC,CAAC;AACL;;GAEG;AACH,MAAM,uBAAuB,GAAG,CAAC;KAC9B,KAAK,CAAC;IACL,YAAY;IACZ,CAAC,CAAC,QAAQ,CAAC;QACT,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;YACd,CAAC,CAAC,IAAI,EAAE;YACR,CAAC,CAAC,OAAO,EAAE;YACX,YAAY;YACZ,sBAAsB;YACtB,2BAA2B;SAC5B,CAAC;KACH,CAAC;CACH,CAAC;KACD,IAAI,CAAC,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC,CAAC;AAE5E,MAAM,wBAAwB,GAAG,CAAC;KAC/B,KAAK,CAAC;IACL,YAAY;IACZ,CAAC,CAAC,QAAQ,CAAC;QACT,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC;YACd,CAAC,CAAC,IAAI,EAAE;YACR,CAAC,CAAC,OAAO,EAAE;YACX,YAAY;YACZ,sBAAsB;YACtB,2BAA2B;YAC3B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACnB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACtB,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;YACvB,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;YACjC,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC;SACvC,CAAC;KACH,CAAC;CACH,CAAC;KACD,IAAI,CAAC,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC,CAAC;AAEvE;;;;;;GAMG;AACH,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAW,EAAE,CAC3C,SAAS,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAE9C;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC;KAC3B,KAAK,CACJ,CAAC,CAAC,KAAK,CAAC,CAAC,mBAAmB,EAAE,yBAAyB,EAAE,YAAY,CAAC,CAAC,CACxE;KACA,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,gDAAgD,EAAE,CAAC;KACnE,MAAM,CACL,CAAC,KAAK,EAAE,EAAE;IACR,2EAA2E;IAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YACvB,yEAAyE;YACzE,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9B,IACE,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;gBACtB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EACpD,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,EACD,EAAE,KAAK,EAAE,iDAAiD,EAAE,CAC7D;KACA,MAAM,CACL,CAAC,KAAK,EAAE,EAAE;IACR,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,wCAAwC;IACxC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,kEAAkE;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,6CAA6C;QAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IACD,oFAAoF;IACpF,OAAO,KAAK,CAAC;AACf,CAAC,EACD;IACE,KAAK,EACH,2GAA2G;CAC9G,CACF;KACA,IAAI,CAAC;IACJ,WAAW,EAAE,0DAA0D;CACxE,CAAC,CAAC;AAEL;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAA6B,EAAE,CAC9E,sBAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,KAAc,EACkB,EAAE,CAClC,2BAA2B,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AAEvD;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,KAAK,CAAC,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,CAAC;KACtD,IAAI,CAAC,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC;KAC7C,KAAK,CAAC,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAAC;KACvD,IAAI,CAAC,EAAE,WAAW,EAAE,uCAAuC,EAAE,CAAC,CAAC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ /**
3
+ * Defines Bupkis' Zod metadata registry
4
+ *
5
+ * @packageDocumentation
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.BupkisRegistry = void 0;
9
+ const zod_1 = require("zod");
10
+ const constant_js_1 = require("./constant.cjs");
11
+ /**
12
+ * Zod metadata registry for Bupkis
13
+ */
14
+ exports.BupkisRegistry = zod_1.z.registry();
15
+ /**
16
+ * Base schema for all metadata
17
+ */
18
+ const BaseBupkisMetadataSchema = zod_1.z.object({
19
+ description: zod_1.z
20
+ .string()
21
+ .optional()
22
+ .meta({ description: 'Human-friendly description' }),
23
+ name: zod_1.z
24
+ .string()
25
+ .optional()
26
+ .meta({ description: 'Name used when rendering Assertion as a string' }),
27
+ parameter: zod_1.z
28
+ .string()
29
+ .optional()
30
+ .meta({ description: 'Parameter "type" to use in documentation' }),
31
+ });
32
+ /**
33
+ * Base schema for metadata referring to string literal flag
34
+ */
35
+ const PhraseLiteralMetadataSchema = zod_1.z.object({
36
+ ...BaseBupkisMetadataSchema.shape,
37
+ [constant_js_1.kStringLiteral]: zod_1.z.literal(true),
38
+ });
39
+ /**
40
+ * Final schema for Bupkis registry
41
+ */
42
+ // eslint-disable-next-line no-useless-assignment
43
+ const _BupkisRegistrySchema = zod_1.z.union([
44
+ zod_1.z.object({ ...BaseBupkisMetadataSchema.shape }),
45
+ zod_1.z.object({
46
+ ...PhraseLiteralMetadataSchema.shape,
47
+ value: zod_1.z.string(),
48
+ values: zod_1.z.never().optional(),
49
+ }),
50
+ zod_1.z.object({
51
+ ...PhraseLiteralMetadataSchema.shape,
52
+ value: zod_1.z.never().optional(),
53
+ // eslint-disable-next-line no-restricted-syntax
54
+ values: zod_1.z.tuple([zod_1.z.string()]).rest(zod_1.z.string()).readonly(),
55
+ }),
56
+ ]);
57
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,6BAAwB;AAExB,gDAA+C;AAO/C;;GAEG;AACU,QAAA,cAAc,GAAG,OAAC,CAAC,QAAQ,EAAc,CAAC;AAEvD;;GAEG;AACH,MAAM,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,WAAW,EAAE,OAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,IAAI,CAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;IACtD,IAAI,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,IAAI,CAAC,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC;IAC1E,SAAS,EAAE,OAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,IAAI,CAAC,EAAE,WAAW,EAAE,0CAA0C,EAAE,CAAC;CACrE,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,2BAA2B,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,GAAG,wBAAwB,CAAC,KAAK;IACjC,CAAC,4BAAc,CAAC,EAAE,OAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CAClC,CAAC,CAAC;AAEH;;GAEG;AACH,iDAAiD;AACjD,MAAM,qBAAqB,GAAG,OAAC,CAAC,KAAK,CAAC;IACpC,OAAC,CAAC,MAAM,CAAC,EAAE,GAAG,wBAAwB,CAAC,KAAK,EAAE,CAAC;IAC/C,OAAC,CAAC,MAAM,CAAC;QACP,GAAG,2BAA2B,CAAC,KAAK;QACpC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,OAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC;IACF,OAAC,CAAC,MAAM,CAAC;QACP,GAAG,2BAA2B,CAAC,KAAK;QACpC,KAAK,EAAE,OAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;QAC3B,gDAAgD;QAChD,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KAC1D,CAAC;CACH,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Defines Bupkis' Zod metadata registry
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import { z } from 'zod';
7
+ /**
8
+ * Zod metadata registry for Bupkis
9
+ */
10
+ export declare const BupkisRegistry: z.core.$ZodRegistry<{
11
+ description?: string | undefined;
12
+ name?: string | undefined;
13
+ parameter?: string | undefined;
14
+ } | {
15
+ value: string;
16
+ values?: undefined;
17
+ description?: string | undefined;
18
+ name?: string | undefined;
19
+ parameter?: string | undefined;
20
+ } | {
21
+ values: readonly [string, ...string[]];
22
+ value?: undefined;
23
+ description?: string | undefined;
24
+ name?: string | undefined;
25
+ parameter?: string | undefined;
26
+ }, z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
27
+ //# sourceMappingURL=metadata.d.ts.map