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,412 @@
1
+ "use strict";
2
+ /**
3
+ * Asynchronous assertion implementations.
4
+ *
5
+ * This module contains all built-in asynchronous assertion implementations for
6
+ * working with Promises and async operations. It provides assertions for
7
+ * Promise resolution, rejection, and async function behavior validation with
8
+ * comprehensive error handling.
9
+ *
10
+ * @module
11
+ * @groupDescription Parametric Assertions (Async)
12
+ * Asynchronous assertions for Promise resolution, rejection, and async function behavior.
13
+ *
14
+ * @showGroups
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.functionFulfillWithValueSatisfyingAssertion = exports.promiseResolveWithValueSatisfyingAssertion = exports.promiseRejectWithErrorSatisfyingAssertion = exports.functionRejectWithErrorSatisfyingAssertion = exports.promiseRejectWithTypeAssertion = exports.functionRejectWithTypeAssertion = exports.promiseRejectAssertion = exports.functionRejectAssertion = exports.promiseResolveAssertion = exports.functionResolveAssertion = void 0;
18
+ const node_util_1 = require("node:util");
19
+ const guards_js_1 = require("../../guards.cjs");
20
+ const schema_js_1 = require("../../schema.cjs");
21
+ const value_to_schema_js_1 = require("../../value-to-schema.cjs");
22
+ const create_js_1 = require("../create.cjs");
23
+ const assertion_util_js_1 = require("./assertion-util.cjs");
24
+ /**
25
+ * Assertion for testing if a function returns a fulfilled Promise.
26
+ *
27
+ * @example
28
+ *
29
+ * ```typescript
30
+ * await expectAsync(() => Promise.resolve('success'), 'to resolve'); // passes
31
+ * await expectAsync(() => Promise.reject('error'), 'to fulfill'); // fails
32
+ * ```
33
+ *
34
+ * @group Parametric Assertions (Async)
35
+ * @bupkisAnchor function-to-resolve
36
+ * @bupkisAssertionCategory promise
37
+ */
38
+ exports.functionResolveAssertion = (0, create_js_1.createAsyncAssertion)([schema_js_1.FunctionSchema, ['to resolve', 'to fulfill']], async (subject) => {
39
+ try {
40
+ await subject();
41
+ }
42
+ catch {
43
+ return {
44
+ message: 'Expected function to fulfill, but it rejected instead',
45
+ };
46
+ }
47
+ });
48
+ /**
49
+ * Assertion for testing if a Promise is fulfilled.
50
+ *
51
+ * @example
52
+ *
53
+ * ```typescript
54
+ * await expectAsync(Promise.resolve('success'), 'to resolve'); // passes
55
+ * await expectAsync(Promise.reject('error'), 'to fulfill'); // fails
56
+ * ```
57
+ *
58
+ * @bupkisAssertionCategory promise
59
+ * @bupkisAnchor promise-to-resolve
60
+ * @group Parametric Assertions (Async)
61
+ */
62
+ exports.promiseResolveAssertion = (0, create_js_1.createAsyncAssertion)([schema_js_1.WrappedPromiseLikeSchema, ['to resolve', 'to fulfill']], async (subject) => {
63
+ try {
64
+ await subject;
65
+ }
66
+ catch {
67
+ return {
68
+ message: 'Expected promise to fulfill, but it rejected instead',
69
+ };
70
+ }
71
+ });
72
+ /**
73
+ * Assertion for testing if a function returns a rejected Promise.
74
+ *
75
+ * @example
76
+ *
77
+ * ```typescript
78
+ * await expectAsync(() => Promise.reject('error'), 'to reject'); // passes
79
+ * await expectAsync(() => Promise.resolve('success'), 'to reject'); // fails
80
+ * ```
81
+ *
82
+ * @group Parametric Assertions (Async)
83
+ */
84
+ exports.functionRejectAssertion = (0, create_js_1.createAsyncAssertion)([schema_js_1.FunctionSchema, ['to reject', 'to be rejected']], async (subject) => {
85
+ const { error, result } = await (0, assertion_util_js_1.trapAsyncFnError)(subject);
86
+ if (error === undefined) {
87
+ return {
88
+ message: `Expected function to reject, but it fulfilled with ${(0, node_util_1.inspect)(result)}`,
89
+ };
90
+ }
91
+ });
92
+ /**
93
+ * Assertion for testing if a Promise is rejected.
94
+ *
95
+ * @example
96
+ *
97
+ * ```typescript
98
+ * await expectAsync(Promise.reject('error'), 'to reject'); // passes
99
+ * await expectAsync(Promise.resolve('success'), 'to reject'); // fails
100
+ * ```
101
+ *
102
+ * @group Parametric Assertions (Async)
103
+ */
104
+ exports.promiseRejectAssertion = (0, create_js_1.createAsyncAssertion)([schema_js_1.WrappedPromiseLikeSchema, ['to reject', 'to be rejected']], async (subject) => {
105
+ const { error, result } = await (0, assertion_util_js_1.trapPromiseError)(subject);
106
+ if (error === undefined) {
107
+ return {
108
+ message: `Expected Promise to reject, but it fulfilled with ${(0, node_util_1.inspect)(result)}`,
109
+ };
110
+ }
111
+ });
112
+ /**
113
+ * Assertion for testing if a function rejects with a specific error type.
114
+ *
115
+ * @example
116
+ *
117
+ * ```typescript
118
+ * await expectAsync(
119
+ * () => Promise.reject(new TypeError('wrong')),
120
+ * 'to reject with a',
121
+ * TypeError,
122
+ * ); // passes
123
+ * await expectAsync(
124
+ * () => Promise.reject(new Error('wrong')),
125
+ * 'to reject with an',
126
+ * TypeError,
127
+ * ); // fails
128
+ * ```
129
+ *
130
+ * @group Parametric Assertions (Async)
131
+ */
132
+ exports.functionRejectWithTypeAssertion = (0, create_js_1.createAsyncAssertion)([
133
+ schema_js_1.FunctionSchema,
134
+ [
135
+ 'to reject with a',
136
+ 'to reject with an',
137
+ 'to be rejected with a',
138
+ 'to be rejected with an',
139
+ ],
140
+ schema_js_1.ConstructibleSchema,
141
+ ], async (subject, ctor) => {
142
+ const { error, result } = await (0, assertion_util_js_1.trapAsyncFnError)(subject);
143
+ if (error === undefined) {
144
+ return {
145
+ message: `Expected function to reject, but it fulfilled with ${(0, node_util_1.inspect)(result)}`,
146
+ };
147
+ }
148
+ if (!(0, guards_js_1.isA)(error, ctor)) {
149
+ if ((0, guards_js_1.isNonNullObject)(error)) {
150
+ const err = error;
151
+ return {
152
+ actual: err.constructor.name,
153
+ expected: ctor.name,
154
+ message: `Expected function to reject with an instance of ${ctor.name}, but it rejected with a ${err.constructor.name}`,
155
+ };
156
+ }
157
+ return {
158
+ actual: typeof error,
159
+ expected: ctor.name,
160
+ message: `Expected function to reject with an instance of ${ctor.name}, but it rejected with a value of type ${typeof error}: ${(0, node_util_1.inspect)(error)}`,
161
+ };
162
+ }
163
+ });
164
+ /**
165
+ * Assertion for testing if a Promise rejects with a specific error type.
166
+ *
167
+ * @example
168
+ *
169
+ * ```typescript
170
+ * await expectAsync(
171
+ * Promise.reject(new TypeError('wrong')),
172
+ * 'to reject with a',
173
+ * TypeError,
174
+ * ); // passes
175
+ * await expectAsync(
176
+ * Promise.reject(new Error('wrong')),
177
+ * 'to reject with an',
178
+ * TypeError,
179
+ * ); // fails
180
+ * ```
181
+ *
182
+ * @group Parametric Assertions (Async)
183
+ */
184
+ exports.promiseRejectWithTypeAssertion = (0, create_js_1.createAsyncAssertion)([
185
+ schema_js_1.WrappedPromiseLikeSchema,
186
+ [
187
+ 'to reject with a',
188
+ 'to reject with an',
189
+ 'to be rejected with a',
190
+ 'to be rejected with an',
191
+ ],
192
+ schema_js_1.ConstructibleSchema,
193
+ ], async (subject, ctor) => {
194
+ const { error, result } = await (0, assertion_util_js_1.trapPromiseError)(subject);
195
+ if (error === undefined) {
196
+ return {
197
+ message: `Expected Promise to reject, but it fulfilled with ${(0, node_util_1.inspect)(result)}`,
198
+ };
199
+ }
200
+ if (!(0, guards_js_1.isA)(error, ctor)) {
201
+ if ((0, guards_js_1.isNonNullObject)(error)) {
202
+ const err = error;
203
+ return {
204
+ actual: err.constructor.name,
205
+ expected: ctor.name,
206
+ message: `Expected Promise to reject with an instance of ${ctor.name}, but it rejected with a ${err.constructor.name}`,
207
+ };
208
+ }
209
+ return {
210
+ actual: typeof error,
211
+ expected: ctor.name,
212
+ message: `Expected Promise to reject with an instance of ${ctor.name}, but it rejected with a value of type ${typeof error}: ${(0, node_util_1.inspect)(error)}`,
213
+ };
214
+ }
215
+ });
216
+ /**
217
+ * Assertion for testing if a function rejects with an error satisfying specific
218
+ * criteria.
219
+ *
220
+ * @example
221
+ *
222
+ * ```typescript
223
+ * await expectAsync(
224
+ * () => Promise.reject(new Error('oops')),
225
+ * 'to reject with error satisfying',
226
+ * 'oops',
227
+ * ); // passes
228
+ * await expectAsync(
229
+ * () => Promise.reject(new Error('fail')),
230
+ * 'to reject with error satisfying',
231
+ * /error/i,
232
+ * ); // passes
233
+ * await expectAsync(
234
+ * () => Promise.reject(new Error('oops')),
235
+ * 'to reject with error satisfying',
236
+ * { message: 'oops' },
237
+ * ); // passes
238
+ * ```
239
+ *
240
+ * @group Parametric Assertions (Async)
241
+ */
242
+ exports.functionRejectWithErrorSatisfyingAssertion = (0, create_js_1.createAsyncAssertion)([
243
+ schema_js_1.FunctionSchema,
244
+ ['to reject with error satisfying', 'to be rejected with error satisfying'],
245
+ schema_js_1.UnknownSchema,
246
+ ], async (subject, param) => {
247
+ const { error, result } = await (0, assertion_util_js_1.trapAsyncFnError)(subject);
248
+ if (error === undefined) {
249
+ return {
250
+ message: `Expected function to reject, but it fulfilled with ${(0, node_util_1.inspect)(result)}`,
251
+ };
252
+ }
253
+ let schema;
254
+ if ((0, guards_js_1.isString)(param)) {
255
+ schema = (0, schema_js_1.createErrorMessageSchema)(param);
256
+ }
257
+ else if ((0, guards_js_1.isA)(param, RegExp)) {
258
+ schema = (0, schema_js_1.createErrorMessageRegexSchema)(param);
259
+ }
260
+ else {
261
+ schema = (0, value_to_schema_js_1.valueToSchema)(param, value_to_schema_js_1.valueToSchemaOptionsForSatisfies);
262
+ }
263
+ return {
264
+ schema,
265
+ subject: error,
266
+ };
267
+ });
268
+ /**
269
+ * Assertion for testing if a Promise rejects with an error satisfying specific
270
+ * criteria.
271
+ *
272
+ * @example
273
+ *
274
+ * ```typescript
275
+ * await expectAsync(
276
+ * Promise.reject(new Error('oops')),
277
+ * 'to reject with error satisfying',
278
+ * 'oops',
279
+ * ); // passes
280
+ * await expectAsync(
281
+ * Promise.reject(new Error('fail')),
282
+ * 'to reject with error satisfying',
283
+ * /error/i,
284
+ * ); // passes
285
+ * await expectAsync(
286
+ * Promise.reject(new Error('oops')),
287
+ * 'to reject with error satisfying',
288
+ * { message: 'oops' },
289
+ * ); // passes
290
+ * ```
291
+ *
292
+ * @group Parametric Assertions (Async)
293
+ */
294
+ exports.promiseRejectWithErrorSatisfyingAssertion = (0, create_js_1.createAsyncAssertion)([
295
+ schema_js_1.WrappedPromiseLikeSchema,
296
+ ['to reject with error satisfying', 'to be rejected with error satisfying'],
297
+ schema_js_1.UnknownSchema,
298
+ ], async (subject, param) => {
299
+ const { error, result } = await (0, assertion_util_js_1.trapPromiseError)(subject);
300
+ if (error === undefined) {
301
+ return {
302
+ message: `Expected Promise to reject, but it fulfilled with ${(0, node_util_1.inspect)(result)}`,
303
+ };
304
+ }
305
+ let schema;
306
+ if ((0, guards_js_1.isString)(param)) {
307
+ schema = (0, schema_js_1.createErrorMessageSchema)(param);
308
+ }
309
+ else if ((0, guards_js_1.isA)(param, RegExp)) {
310
+ schema = (0, schema_js_1.createErrorMessageRegexSchema)(param);
311
+ }
312
+ else {
313
+ schema = (0, value_to_schema_js_1.valueToSchema)(param, value_to_schema_js_1.valueToSchemaOptionsForSatisfies);
314
+ }
315
+ return {
316
+ schema,
317
+ subject: error,
318
+ };
319
+ });
320
+ /**
321
+ * Assertion for testing if a Promise fulfills with a value satisfying specific
322
+ * criteria.
323
+ *
324
+ * @example
325
+ *
326
+ * ```typescript
327
+ * await expectAsync(
328
+ * Promise.resolve('hello'),
329
+ * 'to fulfill with value satisfying',
330
+ * 'hello',
331
+ * ); // passes
332
+ * await expectAsync(
333
+ * Promise.resolve('world'),
334
+ * 'to resolve with value satisfying',
335
+ * /wor/,
336
+ * ); // passes
337
+ * await expectAsync(
338
+ * Promise.resolve({ name: 'John' }),
339
+ * 'to fulfill with value satisfying',
340
+ * { name: 'John' },
341
+ * ); // passes
342
+ * ```
343
+ *
344
+ * @group Parametric Assertions (Async)
345
+ */
346
+ exports.promiseResolveWithValueSatisfyingAssertion = (0, create_js_1.createAsyncAssertion)([
347
+ schema_js_1.WrappedPromiseLikeSchema,
348
+ ['to fulfill with value satisfying', 'to resolve with value satisfying'],
349
+ schema_js_1.UnknownSchema,
350
+ ], async (promise, param) => {
351
+ let value;
352
+ try {
353
+ value = await promise;
354
+ }
355
+ catch (err) {
356
+ return {
357
+ message: `Expected Promise to fulfill, but it rejected with ${(0, node_util_1.inspect)(err)}`,
358
+ };
359
+ }
360
+ const schema = (0, value_to_schema_js_1.valueToSchema)(param, value_to_schema_js_1.valueToSchemaOptionsForSatisfies);
361
+ return {
362
+ schema,
363
+ subject: value,
364
+ };
365
+ });
366
+ /**
367
+ * Assertion for testing if a function returns a Promise that fulfills with a
368
+ * value satisfying specific criteria.
369
+ *
370
+ * @example
371
+ *
372
+ * ```typescript
373
+ * await expectAsync(
374
+ * () => Promise.resolve('hello'),
375
+ * 'to fulfill with value satisfying',
376
+ * 'hello',
377
+ * ); // passes
378
+ * await expectAsync(
379
+ * () => Promise.resolve('world'),
380
+ * 'to resolve with value satisfying',
381
+ * /wor/,
382
+ * ); // passes
383
+ * await expectAsync(
384
+ * () => Promise.resolve({ name: 'John' }),
385
+ * 'to fulfill with value satisfying',
386
+ * { name: 'John' },
387
+ * ); // passes
388
+ * ```
389
+ *
390
+ * @group Parametric Assertions (Async)
391
+ */
392
+ exports.functionFulfillWithValueSatisfyingAssertion = (0, create_js_1.createAsyncAssertion)([
393
+ schema_js_1.FunctionSchema,
394
+ ['to fulfill with value satisfying', 'to resolve with value satisfying'],
395
+ schema_js_1.UnknownSchema,
396
+ ], async (subject, param) => {
397
+ let value;
398
+ try {
399
+ value = await subject();
400
+ }
401
+ catch (err) {
402
+ return {
403
+ message: `Expected function to fulfill, but it rejected with ${(0, node_util_1.inspect)(err)}`,
404
+ };
405
+ }
406
+ const schema = (0, value_to_schema_js_1.valueToSchema)(param, value_to_schema_js_1.valueToSchemaOptionsForSatisfies);
407
+ return {
408
+ schema,
409
+ subject: value,
410
+ };
411
+ });
412
+ //# sourceMappingURL=async-parametric.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-parametric.js","sourceRoot":"","sources":["../../../src/assertion/impl/async-parametric.ts"],"names":[],"mappings":"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"}