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
@@ -58,21 +58,33 @@ import {
58
58
  arrayContainsAssertion,
59
59
  arrayItemSatisfiesAssertion,
60
60
  arraySizeAssertion,
61
+ collectionHasValueExhaustivelySatisfyingAssertion,
62
+ collectionHasValueSatisfyingAssertion,
61
63
  collectionSizeBetweenAssertion,
62
64
  collectionSizeGreaterThanAssertion,
63
65
  collectionSizeLessThanAssertion,
66
+ collectionValuesExhaustivelySatisfyAssertion,
67
+ collectionValuesSatisfyAssertion,
64
68
  emptyMapAssertion,
65
69
  emptySetAssertion,
66
70
  mapContainsAssertion,
67
71
  mapEntryAssertion,
68
72
  mapEqualityAssertion,
73
+ mapHasKeyExhaustivelySatisfyingAssertion,
74
+ mapHasKeySatisfyingAssertion,
69
75
  mapKeyAssertion,
76
+ mapKeysExhaustivelySatisfyAssertion,
77
+ mapKeysSatisfyAssertion,
70
78
  mapSizeAssertion,
71
79
  mapValueAssertion,
72
80
  nonEmptyArrayAssertion,
73
81
  objectExactKeyAssertion,
82
+ objectHasKeyMatchingAssertion,
83
+ objectHasKeySatisfyingAssertion,
74
84
  objectKeyAssertion,
75
85
  objectKeysAssertion,
86
+ objectKeysMatchAssertion,
87
+ objectKeysSatisfyAssertion,
76
88
  objectSizeAssertion,
77
89
  setContainsAssertion,
78
90
  setDifferenceEqualityAssertion,
@@ -283,6 +295,21 @@ export const SyncCollectionAssertions = [
283
295
  collectionSizeGreaterThanAssertion,
284
296
  collectionSizeLessThanAssertion,
285
297
  collectionSizeBetweenAssertion,
298
+ // Collection value assertions (Map/Set/Array)
299
+ collectionValuesSatisfyAssertion,
300
+ collectionValuesExhaustivelySatisfyAssertion,
301
+ collectionHasValueSatisfyingAssertion,
302
+ collectionHasValueExhaustivelySatisfyingAssertion,
303
+ // Map key assertions
304
+ mapKeysSatisfyAssertion,
305
+ mapKeysExhaustivelySatisfyAssertion,
306
+ mapHasKeySatisfyingAssertion,
307
+ mapHasKeyExhaustivelySatisfyingAssertion,
308
+ // Object key assertions
309
+ objectKeysSatisfyAssertion,
310
+ objectHasKeySatisfyingAssertion,
311
+ objectKeysMatchAssertion,
312
+ objectHasKeyMatchingAssertion,
286
313
  ] as const;
287
314
 
288
315
  /**
package/src/error.ts CHANGED
@@ -118,11 +118,8 @@ export class AssertionError extends NodeAssertionError {
118
118
  * @param value Some value
119
119
  * @returns `true` if `value` is an instance of `AssertionError`
120
120
  */
121
- static isAssertionError(value: unknown): value is AssertionError {
122
- return (
123
- isA(value, NodeAssertionError) && hasOwn(value, kBupkisAssertionError)
124
- );
125
- }
121
+ static isAssertionError = (value: unknown): value is AssertionError =>
122
+ isA(value, NodeAssertionError) && hasOwn(value, kBupkisAssertionError);
126
123
 
127
124
  toJSON() {
128
125
  return {
@@ -148,9 +145,8 @@ export class BupkisError extends Error {
148
145
 
149
146
  override name = 'BupkisError';
150
147
 
151
- static isBupkisError(err: unknown): err is BupkisError {
152
- return isA(err, Error) && hasOwn(err, kBupkisError);
153
- }
148
+ static isBupkisError = (err: unknown): err is BupkisError =>
149
+ isA(err, Error) && hasOwn(err, kBupkisError);
154
150
  }
155
151
 
156
152
  /**
@@ -175,11 +171,10 @@ export class AssertionImplementationError extends BupkisError {
175
171
  this.result = result;
176
172
  }
177
173
 
178
- static isAssertionImplementationError(
174
+ static isAssertionImplementationError = (
179
175
  err: unknown,
180
- ): err is AssertionImplementationError {
181
- return isA(err, AssertionImplementationError);
182
- }
176
+ ): err is AssertionImplementationError =>
177
+ isA(err, AssertionImplementationError);
183
178
  }
184
179
 
185
180
  /**
@@ -200,11 +195,8 @@ export class FailAssertionError extends AssertionError {
200
195
  super({ ...options, id: FAIL });
201
196
  }
202
197
 
203
- static isFailAssertionError(err: unknown): err is FailAssertionError {
204
- return (
205
- isA(err, FailAssertionError) && hasOwn(err, kBupkisFailAssertionError)
206
- );
207
- }
198
+ static isFailAssertionError = (err: unknown): err is FailAssertionError =>
199
+ isA(err, FailAssertionError) && hasOwn(err, kBupkisFailAssertionError);
208
200
  }
209
201
 
210
202
  /**
@@ -259,11 +251,10 @@ export class NegatedAssertionError extends AssertionError {
259
251
 
260
252
  override name = 'NegatedAssertionError';
261
253
 
262
- static isNegatedAssertionError(err: unknown): err is NegatedAssertionError {
263
- return (
264
- isA(err, AssertionError) && hasOwn(err, kBupkisNegatedAssertionError)
265
- );
266
- }
254
+ static isNegatedAssertionError = (
255
+ err: unknown,
256
+ ): err is NegatedAssertionError =>
257
+ isA(err, AssertionError) && hasOwn(err, kBupkisNegatedAssertionError);
267
258
  }
268
259
 
269
260
  /**
package/src/expect.ts CHANGED
@@ -1,4 +1,4 @@
1
- import createDebug from 'debug';
1
+ import { createDebug } from 'obug';
2
2
  import { inspect } from 'util';
3
3
 
4
4
  import {
package/src/guards.ts CHANGED
@@ -118,9 +118,8 @@ export const isStandardSchema = (value: unknown): value is StandardSchemaV1 => {
118
118
  * @param value Value to test
119
119
  * @returns `true` if the value is a plain object, `false` otherwise
120
120
  */
121
- export const isObject = (value: unknown): value is NonNullable<object> => {
122
- return typeof value === 'object' && value !== null && !isArray(value);
123
- };
121
+ export const isObject = (value: unknown): value is NonNullable<object> =>
122
+ typeof value === 'object' && value !== null && !isArray(value);
124
123
 
125
124
  /**
126
125
  * Checks if a value is "promise-like", meaning it is a "thenable" object.
@@ -157,7 +156,7 @@ export const isConstructible = (fn: unknown): fn is Constructor => {
157
156
  }
158
157
  try {
159
158
  // this will throw if there is no `[[construct]]` slot.. or so I've heard.
160
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call, custom/require-function-tag-in-arrow-functions
159
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @bupkis/require-function-tag-in-arrow-functions
161
160
  new new Proxy(fn as any, { construct: () => ({}) })();
162
161
  return true;
163
162
  } catch {
@@ -287,9 +286,7 @@ export const isPhrase = (
287
286
  export const isA = <T extends Constructor>(
288
287
  value: unknown,
289
288
  ctor: T,
290
- ): value is InstanceType<T> => {
291
- return isNonNullObject(value) && value instanceof ctor;
292
- };
289
+ ): value is InstanceType<T> => isNonNullObject(value) && value instanceof ctor;
293
290
 
294
291
  /**
295
292
  * Type guard for Error instances.
@@ -352,10 +349,7 @@ export const isError =
352
349
  */
353
350
  export const isExpectItExecutor = <Subject extends z.ZodType = z.ZodUnknown>(
354
351
  value: unknown,
355
- ): value is ExpectItExecutor<Subject> => {
356
- return (
357
- isFunction(value) &&
358
- kExpectIt in value &&
359
- (value as unknown as Record<symbol, unknown>)[kExpectIt] === true
360
- );
361
- };
352
+ ): value is ExpectItExecutor<Subject> =>
353
+ isFunction(value) &&
354
+ kExpectIt in value &&
355
+ (value as unknown as Record<symbol, unknown>)[kExpectIt] === true;
@@ -232,11 +232,8 @@ const AssertionPartsSchema = z
232
232
  * @returns `true` if value is an AssertionFailure
233
233
  * @internal
234
234
  */
235
- export const isAssertionFailure = (
236
- value: unknown,
237
- ): value is AssertionFailure => {
238
- return AssertionFailureSchema.safeParse(value).success;
239
- };
235
+ export const isAssertionFailure = (value: unknown): value is AssertionFailure =>
236
+ AssertionFailureSchema.safeParse(value).success;
240
237
 
241
238
  /**
242
239
  * Type guard for an {@link AssertionParseRequest}.
@@ -248,9 +245,8 @@ export const isAssertionFailure = (
248
245
  */
249
246
  export const isAssertionParseRequest = (
250
247
  value: unknown,
251
- ): value is AssertionParseRequest => {
252
- return AssertionParseRequestSchema.safeParse(value).success;
253
- };
248
+ ): value is AssertionParseRequest =>
249
+ AssertionParseRequestSchema.safeParse(value).success;
254
250
 
255
251
  /**
256
252
  * Schema for the input parameters of {@link createAssertion}.
package/src/metadata.ts CHANGED
@@ -47,8 +47,7 @@ const PhraseLiteralMetadataSchema = z.object({
47
47
  /**
48
48
  * Final schema for Bupkis registry
49
49
  */
50
- // TODO: Figure out how to make this rule allow type-only usage. Or just export it and tag it.
51
-
50
+ // eslint-disable-next-line no-useless-assignment
52
51
  const _BupkisRegistrySchema = z.union([
53
52
  z.object({ ...BaseBupkisMetadataSchema.shape }),
54
53
  z.object({
@@ -272,6 +272,5 @@ export type SnapshotSerializer = (value: unknown) => string;
272
272
  */
273
273
  export const isTestContext = (
274
274
  value: unknown,
275
- ): value is Record<string, unknown> => {
276
- return typeof value === 'object' && value !== null;
277
- };
275
+ ): value is Record<string, unknown> =>
276
+ typeof value === 'object' && value !== null;
@@ -360,10 +360,9 @@ export class FallbackAdapter implements SnapshotAdapter {
360
360
  * @param context - Test context or snapshot name
361
361
  * @returns `true` for strings or objects
362
362
  */
363
- canHandle(context: unknown): boolean {
363
+ canHandle = (context: unknown): boolean =>
364
364
  // Fallback handles strings (explicit names) and objects (Mocha)
365
- return typeof context === 'string' || typeof context === 'object';
366
- }
365
+ typeof context === 'string' || typeof context === 'object';
367
366
 
368
367
  /**
369
368
  * Extract snapshot context from Mocha context or string name.
@@ -252,16 +252,13 @@ const getTestFilePathFromStack = (): string => {
252
252
  * @param value - Value to check
253
253
  * @returns `true` if value looks like a node:test context
254
254
  */
255
- const looksLikeNodeTestContext = (value: unknown): boolean => {
256
- return (
257
- isTestContext(value) &&
258
- 'name' in value &&
259
- typeof value.name === 'string' &&
260
- 'assert' in value &&
261
- typeof value.assert === 'object' &&
262
- value.assert !== null
263
- );
264
- };
255
+ const looksLikeNodeTestContext = (value: unknown): boolean =>
256
+ isTestContext(value) &&
257
+ 'name' in value &&
258
+ typeof value.name === 'string' &&
259
+ 'assert' in value &&
260
+ typeof value.assert === 'object' &&
261
+ value.assert !== null;
265
262
 
266
263
  /**
267
264
  * Type guard for node:test context.
@@ -281,16 +278,13 @@ const looksLikeNodeTestContext = (value: unknown): boolean => {
281
278
  * @param value - Value to check
282
279
  * @returns `true` if value is a node:test context
283
280
  */
284
- const isNodeTestContext = (value: unknown): value is NodeTestContext => {
285
- return (
286
- isTestContext(value) &&
287
- 'assert' in value &&
288
- typeof value.assert === 'object' &&
289
- value.assert !== null &&
290
- 'snapshot' in value.assert &&
291
- typeof (value.assert as NodeTestContext['assert']).snapshot === 'function'
292
- );
293
- };
281
+ const isNodeTestContext = (value: unknown): value is NodeTestContext =>
282
+ isTestContext(value) &&
283
+ 'assert' in value &&
284
+ typeof value.assert === 'object' &&
285
+ value.assert !== null &&
286
+ 'snapshot' in value.assert &&
287
+ typeof (value.assert as NodeTestContext['assert']).snapshot === 'function';
294
288
 
295
289
  /**
296
290
  * Check if we're running in node:test update mode.
@@ -63,9 +63,9 @@ const adapters: SnapshotAdapter[] = [
63
63
  * @function
64
64
  * @returns Read-only array of registered adapters
65
65
  */
66
- export const getRegisteredAdapters = (): ReadonlyArray<SnapshotAdapter> => {
67
- return [...adapters];
68
- };
66
+ export const getRegisteredAdapters = (): ReadonlyArray<SnapshotAdapter> => [
67
+ ...adapters,
68
+ ];
69
69
 
70
70
  /**
71
71
  * Register a custom snapshot adapter.
@@ -308,7 +308,6 @@ export const defaultSerializer = (
308
308
  * @param value - Value to serialize
309
309
  * @returns JSON string representation
310
310
  */
311
- export const nodeTestCompatibleSerializer = (value: unknown): string => {
311
+ export const nodeTestCompatibleSerializer = (value: unknown): string =>
312
312
  // Node:test expects the same format as our default serializer
313
- return defaultSerializer(value);
314
- };
313
+ defaultSerializer(value);
package/src/types.ts CHANGED
@@ -48,7 +48,6 @@ import type {
48
48
  PhraseLiteralSlot,
49
49
  } from './assertion/assertion-types.js';
50
50
  import type { StandardSchemaV1 } from './standard-schema.js';
51
- import type { ValueToSchemaOptions } from './value-to-schema.js';
52
51
 
53
52
  import { type kExpectIt } from './constant.js';
54
53
 
@@ -110,63 +109,6 @@ export interface BaseExpect {
110
109
  fail: FailFn;
111
110
  }
112
111
 
113
- /**
114
- * Configuration for valueToSchema benchmark generation.
115
- */
116
- export interface BenchmarkConfig {
117
- /** Optional filter for input categories */
118
- categories?: string[];
119
- /** Complexity levels to test */
120
- complexityLevels: ComplexityLevel[];
121
- /** Number of benchmark iterations (1-10000) */
122
- iterations: number;
123
- /** ValueToSchemaOptions combinations to test */
124
- options?: Partial<ValueToSchemaOptions>[];
125
- /** Number of test data samples to generate (10-10000) */
126
- sampleSize: number;
127
- /** Benchmark timeout in milliseconds (1000-300000) */
128
- timeout: number;
129
- /** Number of warmup iterations (1-100) */
130
- warmupIterations: number;
131
- }
132
-
133
- /**
134
- * Type representing a dot-notation or bracket-notation keypath for accessing
135
- * nested object properties. Uses recursive template literal types to validate
136
- * keypath syntax.
137
- *
138
- * Supports paths like:
139
- *
140
- * - 'foo.bar'
141
- * - 'foo[0]'
142
- * - 'foo["bar-baz"]'
143
- * - 'foo.bar[1].baz'
144
- *
145
- * @public
146
- */
147
-
148
- /**
149
- * Complete benchmark result.
150
- */
151
- export interface BenchmarkResult {
152
- /** Computed insights and bottleneck identification */
153
- analysis: PerformanceAnalysis;
154
- /** Environment details when benchmark was run */
155
- executionContext: ExecutionContext;
156
- /** Total execution time in milliseconds */
157
- executionTime: number;
158
- /** Metadata about the benchmark run */
159
- metadata: {
160
- nodeVersion: string;
161
- timestamp: string;
162
- version: string;
163
- };
164
- /** Individual measurement results */
165
- results: PerformanceMetrics[];
166
- /** Benchmark suite identifier */
167
- suiteId: string;
168
- }
169
-
170
112
  export type * from './assertion/assertion-types.js';
171
113
  export type { StandardSchemaV1 };
172
114
 
@@ -225,11 +167,6 @@ export interface Bupkis<
225
167
  >;
226
168
  }
227
169
 
228
- /**
229
- * Complexity levels for test data generation.
230
- */
231
- export type ComplexityLevel = 'complex' | 'medium' | 'simple';
232
-
233
170
  /**
234
171
  * Helper type to concatenate two tuples
235
172
  *
@@ -258,34 +195,6 @@ export type DefFromZodType<T extends z.core.$ZodType | z.ZodType> =
258
195
  ? T['_zod']['def']
259
196
  : never;
260
197
 
261
- /**
262
- * Execution context for benchmark runs.
263
- */
264
- export interface ExecutionContext {
265
- /** CPU model */
266
- cpuModel: string;
267
- /** Total memory */
268
- memoryTotal: number;
269
- /** Node.js version */
270
- nodeVersion: string;
271
- /** Platform information */
272
- platform: string;
273
- }
274
-
275
- /**
276
- * Execution time statistics.
277
- */
278
- export interface ExecutionTimeStats {
279
- /** Mean execution time */
280
- mean: number;
281
- /** Median execution time */
282
- median: number;
283
- /** 95th percentile execution time */
284
- p95: number;
285
- /** 99th percentile execution time */
286
- p99: number;
287
- }
288
-
289
198
  /**
290
199
  * The main synchronous assertion function.
291
200
  *
@@ -847,9 +756,8 @@ export type MapExpectSlots<Parts extends readonly AssertionPart[]> =
847
756
  : AssertionSlot<First> extends PhraseLiteralChoiceSlot<
848
757
  infer StringLiterals
849
758
  >
850
- ?
851
- | ArrayValues<StringLiterals>
852
- | Negation<ArrayValues<StringLiterals>>
759
+ ? | ArrayValues<StringLiterals>
760
+ | Negation<ArrayValues<StringLiterals>>
853
761
  : AssertionSlot<First> extends z.ZodType
854
762
  ? z.infer<AssertionSlot<First>>
855
763
  : never,
@@ -857,23 +765,6 @@ export type MapExpectSlots<Parts extends readonly AssertionPart[]> =
857
765
  ]
858
766
  : readonly [];
859
767
 
860
- /**
861
- * @groupDescription Benchmark Types
862
- * Types for valueToSchema() benchmark functionality.
863
- */
864
-
865
- /**
866
- * Memory usage statistics.
867
- */
868
- export interface MemoryStats {
869
- /** External memory */
870
- external: number;
871
- /** Total heap memory */
872
- heapTotal: number;
873
- /** Heap memory used */
874
- heapUsed: number;
875
- }
876
-
877
768
  /**
878
769
  * Makes tuple types accept both mutable and readonly variants.
879
770
  *
@@ -937,57 +828,6 @@ export type MutableOrReadonly<Tuple extends readonly unknown[]> =
937
828
  */
938
829
  export type Negation<S extends string> = `not ${S}`;
939
830
 
940
- /**
941
- * Performance analysis results.
942
- */
943
- export interface PerformanceAnalysis {
944
- /** Identified bottlenecks */
945
- bottlenecks: Array<{
946
- category: string;
947
- impact: 'high' | 'low' | 'medium';
948
- opsPerSecond: number;
949
- reason: string;
950
- }>;
951
- /** Statistical outliers */
952
- outliers: Array<{
953
- category: string;
954
- deviation: number;
955
- options: ValueToSchemaOptions;
956
- value: number;
957
- }>;
958
- /** Summary statistics */
959
- summary: {
960
- averageOpsPerSecond: number;
961
- fastestCategory: string;
962
- slowestCategory: string;
963
- totalExecutionTime: number;
964
- };
965
- /** Performance trends */
966
- trends: Array<{
967
- description: string;
968
- factor: string;
969
- impact: number;
970
- }>;
971
- }
972
-
973
- /**
974
- * Performance metrics for a benchmark run.
975
- */
976
- export interface PerformanceMetrics {
977
- /** Timing statistics */
978
- executionTime: ExecutionTimeStats;
979
- /** Category of input being measured */
980
- inputCategory: string;
981
- /** Memory allocation data (if available) */
982
- memoryUsage?: MemoryStats;
983
- /** Throughput measurement (operations per second) */
984
- operationsPerSecond: number;
985
- /** Configuration used for this measurement */
986
- options: ValueToSchemaOptions;
987
- /** When measurement was taken */
988
- timestamp: Date;
989
- }
990
-
991
831
  /**
992
832
  * Converts `AssertionParts` to complete function parameter types for expect
993
833
  * functions.