bupkis 0.18.3 → 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 (388) hide show
  1. package/CHANGELOG.md +21 -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 +22 -19
  372. package/src/assertion/assertion-types.ts +4 -8
  373. package/src/assertion/assertion.ts +1 -1
  374. package/src/assertion/format-assertion-failure.ts +2 -0
  375. package/src/assertion/impl/assertion-util.ts +1 -2
  376. package/src/assertion/impl/iteration-util.ts +1 -3
  377. package/src/assertion/impl/sync-collection.ts +633 -7
  378. package/src/assertion/impl/sync.ts +27 -0
  379. package/src/error.ts +13 -22
  380. package/src/guards.ts +8 -14
  381. package/src/internal-schema.ts +4 -8
  382. package/src/metadata.ts +1 -2
  383. package/src/snapshot/adapter.ts +2 -3
  384. package/src/snapshot/adapters/fallback.ts +2 -3
  385. package/src/snapshot/adapters/node-test.ts +14 -20
  386. package/src/snapshot/select-adapter.ts +3 -3
  387. package/src/snapshot/serializer.ts +2 -3
  388. package/src/types.ts +2 -162
@@ -0,0 +1,509 @@
1
+ // do not remove; otherwise zshy will not resolve the .d.ts file; it must be referenced directly
2
+ // eslint-disable-next-line @typescript-eslint/triple-slash-reference
3
+ /// <reference path="./shims.d.ts" />
4
+ /**
5
+ * Iterable assertions for synchronous iterables and iterators.
6
+ *
7
+ * These assertions test iterables using the **iteration protocol**
8
+ * (`Symbol.iterator`), as opposed to collection assertions which use native
9
+ * collection APIs. This distinction matters when a subject has custom
10
+ * `Symbol.iterator` behavior that differs from its collection API.
11
+ *
12
+ * @packageDocumentation
13
+ * @groupDescription Sync Iterable Assertions
14
+ * Assertions for synchronous iterables and iterators using the iteration protocol.
15
+ *
16
+ * @showGroup
17
+ */
18
+ import { inspect } from 'node:util';
19
+ import { z } from 'zod';
20
+ import { NonNegativeIntegerSchema, SyncIterableOrIteratorSchema, UnknownSchema, } from "../../schema.js";
21
+ import { valueToSchema, valueToSchemaOptionsForDeepEqual, valueToSchemaOptionsForSatisfies, } from "../../value-to-schema.js";
22
+ import { createAssertion } from "../create.js";
23
+ import { collectSync, countSync, iterateFullySync, toIterator, } from "./iteration-util.js";
24
+ // =============================================================================
25
+ // 'to yield' assertions - check if ANY item matches
26
+ // =============================================================================
27
+ /**
28
+ * Asserts that an iterable yields a value satisfying the expected shape.
29
+ *
30
+ * Uses partial/satisfy semantics (like `'to satisfy'`). The assertion passes if
31
+ * ANY yielded value matches the expected shape.
32
+ *
33
+ * @example
34
+ *
35
+ * ```ts
36
+ * expect([{ a: 1, b: 2 }], 'to yield', { a: 1 }); // passes (partial match)
37
+ * expect([1, 2, 3], 'to emit', 2); // passes
38
+ * expect(myGenerator(), 'to yield value satisfying', { name: 'test' }); // passes
39
+ * ```
40
+ *
41
+ * @group Sync Iterable Assertions
42
+ * @bupkisAnchor iterable-to-yield-any
43
+ * @bupkisAssertionCategory iterable
44
+ */
45
+ export const iterableYieldsAssertion = createAssertion([
46
+ SyncIterableOrIteratorSchema,
47
+ ['to yield', 'to emit', 'to yield value satisfying'],
48
+ UnknownSchema,
49
+ ], (subject, expected) => {
50
+ const iterator = toIterator(subject);
51
+ const schema = valueToSchema(expected, valueToSchemaOptionsForSatisfies);
52
+ let next = iterator.next();
53
+ while (!next.done) {
54
+ if (schema.safeParse(next.value).success) {
55
+ return; // success - found a matching value
56
+ }
57
+ next = iterator.next();
58
+ }
59
+ return {
60
+ message: `Expected iterable to yield a value satisfying ${inspect(expected)}, but none matched`,
61
+ };
62
+ });
63
+ /**
64
+ * Asserts that an iterable yields a value exhaustively matching the expected
65
+ * value.
66
+ *
67
+ * Uses deep equality semantics (like `'to equal'`). Extra properties on yielded
68
+ * values cause failure.
69
+ *
70
+ * @example
71
+ *
72
+ * ```ts
73
+ * expect([{ a: 1 }], 'to yield value exhaustively satisfying', { a: 1 }); // passes
74
+ * expect([{ a: 1, b: 2 }], 'to yield value exhaustively satisfying', {
75
+ * a: 1,
76
+ * }); // fails (extra prop)
77
+ * ```
78
+ *
79
+ * @group Sync Iterable Assertions
80
+ * @bupkisAnchor iterable-to-yield-value-exhaustively-satisfying-any
81
+ * @bupkisAssertionCategory iterable
82
+ */
83
+ export const iterableYieldsExhaustivelyAssertion = createAssertion([
84
+ SyncIterableOrIteratorSchema,
85
+ 'to yield value exhaustively satisfying',
86
+ UnknownSchema,
87
+ ], (subject, expected) => {
88
+ const iterator = toIterator(subject);
89
+ const schema = valueToSchema(expected, valueToSchemaOptionsForDeepEqual);
90
+ let next = iterator.next();
91
+ while (!next.done) {
92
+ if (schema.safeParse(next.value).success) {
93
+ return; // success - found an exact match
94
+ }
95
+ next = iterator.next();
96
+ }
97
+ return {
98
+ message: `Expected iterable to yield a value exhaustively satisfying ${inspect(expected)}, but none matched`,
99
+ };
100
+ });
101
+ // =============================================================================
102
+ // 'to yield items satisfying' - ALL items must match
103
+ // =============================================================================
104
+ /**
105
+ * Asserts that ALL yielded values individually satisfy the expected shape.
106
+ *
107
+ * Uses partial/satisfy semantics. Every item yielded must match.
108
+ *
109
+ * @example
110
+ *
111
+ * ```ts
112
+ * expect([{ a: 1 }, { a: 2, b: 3 }], 'to yield items satisfying', {
113
+ * a: z.number(),
114
+ * }); // passes
115
+ * expect([1, 2, 3], 'to yield items satisfying', z.number()); // passes
116
+ * ```
117
+ *
118
+ * @group Sync Iterable Assertions
119
+ * @bupkisAnchor iterable-to-yield-items-satisfying-any
120
+ * @bupkisAssertionCategory iterable
121
+ */
122
+ export const iterableYieldsItemsSatisfyingAssertion = createAssertion([SyncIterableOrIteratorSchema, 'to yield items satisfying', UnknownSchema], (subject, expected) => {
123
+ const iterator = toIterator(subject);
124
+ const schema = valueToSchema(expected, valueToSchemaOptionsForSatisfies);
125
+ let index = 0;
126
+ let next = iterator.next();
127
+ while (!next.done) {
128
+ const result = schema.safeParse(next.value);
129
+ if (!result.success) {
130
+ return {
131
+ message: `Expected all items to satisfy ${inspect(expected)}, but item at index ${index} did not match: ${inspect(next.value)}`,
132
+ };
133
+ }
134
+ index++;
135
+ next = iterator.next();
136
+ }
137
+ // Empty iterables trivially satisfy (vacuous truth)
138
+ });
139
+ /**
140
+ * Asserts that ALL yielded values individually match with deep equality.
141
+ *
142
+ * Uses strict equality semantics. Every item yielded must exactly match.
143
+ *
144
+ * @example
145
+ *
146
+ * ```ts
147
+ * expect([{ a: 1 }, { a: 1 }], 'to yield items exhaustively satisfying', {
148
+ * a: 1,
149
+ * }); // passes
150
+ * expect([{ a: 1, b: 2 }], 'to yield items exhaustively satisfying', {
151
+ * a: 1,
152
+ * }); // fails
153
+ * ```
154
+ *
155
+ * @group Sync Iterable Assertions
156
+ * @bupkisAnchor iterable-to-yield-items-exhaustively-satisfying-any
157
+ * @bupkisAssertionCategory iterable
158
+ */
159
+ export const iterableYieldsItemsExhaustivelyAssertion = createAssertion([
160
+ SyncIterableOrIteratorSchema,
161
+ 'to yield items exhaustively satisfying',
162
+ UnknownSchema,
163
+ ], (subject, expected) => {
164
+ const iterator = toIterator(subject);
165
+ const schema = valueToSchema(expected, valueToSchemaOptionsForDeepEqual);
166
+ let index = 0;
167
+ let next = iterator.next();
168
+ while (!next.done) {
169
+ const result = schema.safeParse(next.value);
170
+ if (!result.success) {
171
+ return {
172
+ message: `Expected all items to exhaustively satisfy ${inspect(expected)}, but item at index ${index} did not match: ${inspect(next.value)}`,
173
+ };
174
+ }
175
+ index++;
176
+ next = iterator.next();
177
+ }
178
+ });
179
+ // =============================================================================
180
+ // First/Last assertions
181
+ // =============================================================================
182
+ /**
183
+ * Asserts that the first yielded value satisfies the expected shape.
184
+ *
185
+ * Uses partial/satisfy semantics.
186
+ *
187
+ * @example
188
+ *
189
+ * ```ts
190
+ * expect([{ a: 1, b: 2 }, { c: 3 }], 'to yield first', { a: 1 }); // passes
191
+ * expect([1, 2, 3], 'to yield first satisfying', 1); // passes
192
+ * ```
193
+ *
194
+ * @group Sync Iterable Assertions
195
+ * @bupkisAnchor iterable-to-yield-first-any
196
+ * @bupkisAssertionCategory iterable
197
+ */
198
+ export const iterableYieldsFirstAssertion = createAssertion([
199
+ SyncIterableOrIteratorSchema,
200
+ ['to yield first', 'to yield first satisfying'],
201
+ UnknownSchema,
202
+ ], (subject, expected) => {
203
+ // Only call toIterator once to avoid exhausting raw iterators
204
+ const iterator = toIterator(subject);
205
+ const result = iterator.next();
206
+ if (result.done) {
207
+ return {
208
+ message: 'Expected iterable to yield at least one value, but it was empty',
209
+ };
210
+ }
211
+ const schema = valueToSchema(expected, valueToSchemaOptionsForSatisfies);
212
+ if (!schema.safeParse(result.value).success) {
213
+ return {
214
+ message: `Expected first yielded value to satisfy ${inspect(expected)}, but got ${inspect(result.value)}`,
215
+ };
216
+ }
217
+ });
218
+ /**
219
+ * Asserts that the first yielded value exhaustively matches.
220
+ *
221
+ * Uses deep equality semantics.
222
+ *
223
+ * @example
224
+ *
225
+ * ```ts
226
+ * expect([{ a: 1 }], 'to yield first exhaustively satisfying', { a: 1 }); // passes
227
+ * expect([{ a: 1, b: 2 }], 'to yield first exhaustively satisfying', {
228
+ * a: 1,
229
+ * }); // fails
230
+ * ```
231
+ *
232
+ * @group Sync Iterable Assertions
233
+ * @bupkisAnchor iterable-to-yield-first-exhaustively-satisfying-any
234
+ * @bupkisAssertionCategory iterable
235
+ */
236
+ export const iterableYieldsFirstExhaustivelyAssertion = createAssertion([
237
+ SyncIterableOrIteratorSchema,
238
+ 'to yield first exhaustively satisfying',
239
+ UnknownSchema,
240
+ ], (subject, expected) => {
241
+ const iterator = toIterator(subject);
242
+ const result = iterator.next();
243
+ if (result.done) {
244
+ return {
245
+ message: 'Expected iterable to yield at least one value, but it was empty',
246
+ };
247
+ }
248
+ const schema = valueToSchema(expected, valueToSchemaOptionsForDeepEqual);
249
+ if (!schema.safeParse(result.value).success) {
250
+ return {
251
+ message: `Expected first yielded value to exhaustively satisfy ${inspect(expected)}, but got ${inspect(result.value)}`,
252
+ };
253
+ }
254
+ });
255
+ /**
256
+ * Asserts that the last yielded value satisfies the expected shape.
257
+ *
258
+ * Uses partial/satisfy semantics. Note: fully consumes the iterator.
259
+ *
260
+ * @example
261
+ *
262
+ * ```ts
263
+ * expect([{ a: 1 }, { b: 2, c: 3 }], 'to yield last', { b: 2 }); // passes
264
+ * expect([1, 2, 3], 'to yield last satisfying', 3); // passes
265
+ * ```
266
+ *
267
+ * @group Sync Iterable Assertions
268
+ * @bupkisAnchor iterable-to-yield-last-any
269
+ * @bupkisAssertionCategory iterable
270
+ */
271
+ export const iterableYieldsLastAssertion = createAssertion([
272
+ SyncIterableOrIteratorSchema,
273
+ ['to yield last', 'to yield last satisfying'],
274
+ UnknownSchema,
275
+ ], (subject, expected) => {
276
+ const { hasValue, lastValue } = iterateFullySync(subject);
277
+ if (!hasValue) {
278
+ return {
279
+ message: 'Expected iterable to yield at least one value, but it was empty',
280
+ };
281
+ }
282
+ const schema = valueToSchema(expected, valueToSchemaOptionsForSatisfies);
283
+ if (!schema.safeParse(lastValue).success) {
284
+ return {
285
+ message: `Expected last yielded value to satisfy ${inspect(expected)}, but got ${inspect(lastValue)}`,
286
+ };
287
+ }
288
+ });
289
+ /**
290
+ * Asserts that the last yielded value exhaustively matches.
291
+ *
292
+ * Uses deep equality semantics. Note: fully consumes the iterator.
293
+ *
294
+ * @example
295
+ *
296
+ * ```ts
297
+ * expect([{ a: 1 }, { b: 2 }], 'to yield last exhaustively satisfying', {
298
+ * b: 2,
299
+ * }); // passes
300
+ * expect(
301
+ * [{ a: 1, extra: true }],
302
+ * 'to yield last exhaustively satisfying',
303
+ * { a: 1 },
304
+ * ); // fails
305
+ * ```
306
+ *
307
+ * @group Sync Iterable Assertions
308
+ * @bupkisAnchor iterable-to-yield-last-exhaustively-satisfying-any
309
+ * @bupkisAssertionCategory iterable
310
+ */
311
+ export const iterableYieldsLastExhaustivelyAssertion = createAssertion([
312
+ SyncIterableOrIteratorSchema,
313
+ 'to yield last exhaustively satisfying',
314
+ UnknownSchema,
315
+ ], (subject, expected) => {
316
+ const { hasValue, lastValue } = iterateFullySync(subject);
317
+ if (!hasValue) {
318
+ return {
319
+ message: 'Expected iterable to yield at least one value, but it was empty',
320
+ };
321
+ }
322
+ const schema = valueToSchema(expected, valueToSchemaOptionsForDeepEqual);
323
+ if (!schema.safeParse(lastValue).success) {
324
+ return {
325
+ message: `Expected last yielded value to exhaustively satisfy ${inspect(expected)}, but got ${inspect(lastValue)}`,
326
+ };
327
+ }
328
+ });
329
+ // =============================================================================
330
+ // Cardinality assertions
331
+ // =============================================================================
332
+ /**
333
+ * Asserts that an iterable yields exactly the specified count of values.
334
+ *
335
+ * @example
336
+ *
337
+ * ```ts
338
+ * expect([1, 2, 3], 'to yield count', 3); // passes
339
+ * expect(new Set([1, 2]), 'to yield count', 2); // passes
340
+ * ```
341
+ *
342
+ * @group Sync Iterable Assertions
343
+ * @bupkisAnchor iterable-to-yield-count-number
344
+ * @bupkisAssertionCategory iterable
345
+ */
346
+ export const iterableYieldsCountAssertion = createAssertion([SyncIterableOrIteratorSchema, 'to yield count', NonNegativeIntegerSchema], (subject, expectedCount) => {
347
+ const actual = countSync(subject);
348
+ if (actual !== expectedCount) {
349
+ return {
350
+ actual,
351
+ expected: expectedCount,
352
+ message: `Expected iterable to yield ${expectedCount} value(s), but yielded ${actual}`,
353
+ };
354
+ }
355
+ });
356
+ /**
357
+ * Asserts that an iterable yields at least the specified count of values.
358
+ *
359
+ * @example
360
+ *
361
+ * ```ts
362
+ * expect([1, 2, 3], 'to yield at least', 2); // passes
363
+ * expect([1], 'to yield at least', 2); // fails
364
+ * ```
365
+ *
366
+ * @group Sync Iterable Assertions
367
+ * @bupkisAnchor iterable-to-yield-at-least-number
368
+ * @bupkisAssertionCategory iterable
369
+ */
370
+ export const iterableYieldsAtLeastAssertion = createAssertion([SyncIterableOrIteratorSchema, 'to yield at least', NonNegativeIntegerSchema], (subject, minCount) => {
371
+ const actual = countSync(subject);
372
+ if (actual < minCount) {
373
+ return {
374
+ actual,
375
+ expected: `at least ${minCount}`,
376
+ message: `Expected iterable to yield at least ${minCount} value(s), but yielded ${actual}`,
377
+ };
378
+ }
379
+ });
380
+ /**
381
+ * Asserts that an iterable yields at most the specified count of values.
382
+ *
383
+ * @example
384
+ *
385
+ * ```ts
386
+ * expect([1, 2], 'to yield at most', 3); // passes
387
+ * expect([1, 2, 3, 4], 'to yield at most', 3); // fails
388
+ * ```
389
+ *
390
+ * @group Sync Iterable Assertions
391
+ * @bupkisAnchor iterable-to-yield-at-most-number
392
+ * @bupkisAssertionCategory iterable
393
+ */
394
+ export const iterableYieldsAtMostAssertion = createAssertion([SyncIterableOrIteratorSchema, 'to yield at most', NonNegativeIntegerSchema], (subject, maxCount) => {
395
+ const actual = countSync(subject);
396
+ if (actual > maxCount) {
397
+ return {
398
+ actual,
399
+ expected: `at most ${maxCount}`,
400
+ message: `Expected iterable to yield at most ${maxCount} value(s), but yielded ${actual}`,
401
+ };
402
+ }
403
+ });
404
+ /**
405
+ * Asserts that an iterable yields nothing (is empty).
406
+ *
407
+ * @remarks
408
+ * Use `'not to be an empty iterable'` or `'to yield at least', 1` for non-empty
409
+ * assertions.
410
+ * @example
411
+ *
412
+ * ```ts
413
+ * expect([], 'to be an empty iterable'); // passes
414
+ * expect(new Set(), 'to be an empty iterable'); // passes
415
+ * expect([1], 'to be an empty iterable'); // fails
416
+ * ```
417
+ *
418
+ * @group Sync Iterable Assertions
419
+ * @bupkisAnchor iterable-to-be-an-empty-iterable
420
+ * @bupkisAssertionCategory iterable
421
+ */
422
+ export const iterableEmptyAssertion = createAssertion([SyncIterableOrIteratorSchema, 'to be an empty iterable'], (subject) => {
423
+ const iterator = toIterator(subject);
424
+ const result = iterator.next();
425
+ if (!result.done) {
426
+ return {
427
+ message: `Expected iterable to be empty, but it yielded at least one value: ${inspect(result.value)}`,
428
+ };
429
+ }
430
+ });
431
+ // =============================================================================
432
+ // Sequence/Collection assertions
433
+ // =============================================================================
434
+ /**
435
+ * Asserts that an iterable yields exactly the specified values in order.
436
+ *
437
+ * Uses deep equality semantics. The iterable must yield the exact same number
438
+ * of values in the exact same order.
439
+ *
440
+ * @example
441
+ *
442
+ * ```ts
443
+ * expect([1, 2, 3], 'to yield exactly', [1, 2, 3]); // passes
444
+ * expect([{ a: 1, b: 2 }], 'to yield exactly', [{ a: 1 }]); // fails (extra prop)
445
+ * ```
446
+ *
447
+ * @group Sync Iterable Assertions
448
+ * @bupkisAnchor iterable-to-yield-exactly-array
449
+ * @bupkisAssertionCategory iterable
450
+ */
451
+ export const iterableYieldsExactlyAssertion = createAssertion([SyncIterableOrIteratorSchema, 'to yield exactly', z.array(UnknownSchema)], (subject, expected) => {
452
+ const actual = collectSync(subject);
453
+ const schema = valueToSchema(expected, valueToSchemaOptionsForDeepEqual);
454
+ return { schema, subject: actual };
455
+ });
456
+ /**
457
+ * Asserts that an iterable yields values that satisfy the expected sequence.
458
+ *
459
+ * Uses satisfy/partial matching semantics on the collected array.
460
+ *
461
+ * @example
462
+ *
463
+ * ```ts
464
+ * expect([{ a: 1, b: 2 }], 'to yield sequence satisfying', [{ a: 1 }]); // passes
465
+ * expect([1, 2, 3], 'to yield array satisfying', [1, 2, 3]); // passes
466
+ * ```
467
+ *
468
+ * @group Sync Iterable Assertions
469
+ * @bupkisAnchor iterable-to-yield-sequence-satisfying-array
470
+ * @bupkisAssertionCategory iterable
471
+ */
472
+ export const iterableYieldsSequenceSatisfyingAssertion = createAssertion([
473
+ SyncIterableOrIteratorSchema,
474
+ ['to yield sequence satisfying', 'to yield array satisfying'],
475
+ z.array(UnknownSchema),
476
+ ], (subject, expected) => {
477
+ const actual = collectSync(subject);
478
+ const schema = valueToSchema(expected, valueToSchemaOptionsForSatisfies);
479
+ return { schema, subject: actual };
480
+ });
481
+ // =============================================================================
482
+ // Export all sync iterable assertions as a tuple
483
+ // =============================================================================
484
+ /**
485
+ * All synchronous iterable assertions bundled as a tuple for convenient
486
+ * registration.
487
+ */
488
+ export const SyncIterableAssertions = [
489
+ // 'to yield' - any item matches
490
+ iterableYieldsAssertion,
491
+ iterableYieldsExhaustivelyAssertion,
492
+ // 'to yield items' - all items must match
493
+ iterableYieldsItemsSatisfyingAssertion,
494
+ iterableYieldsItemsExhaustivelyAssertion,
495
+ // First/last assertions
496
+ iterableYieldsFirstAssertion,
497
+ iterableYieldsFirstExhaustivelyAssertion,
498
+ iterableYieldsLastAssertion,
499
+ iterableYieldsLastExhaustivelyAssertion,
500
+ // Cardinality
501
+ iterableYieldsCountAssertion,
502
+ iterableYieldsAtLeastAssertion,
503
+ iterableYieldsAtMostAssertion,
504
+ iterableEmptyAssertion,
505
+ // Sequence
506
+ iterableYieldsExactlyAssertion,
507
+ iterableYieldsSequenceSatisfyingAssertion,
508
+ ];
509
+ //# sourceMappingURL=sync-iterable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-iterable.js","sourceRoot":"","sources":["../../../src/assertion/impl/sync-iterable.ts"],"names":[],"mappings":"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"}