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,212 @@
1
+ /**
2
+ * Error types thrown by _BUPKIS_, including {@link AssertionError}.
3
+ *
4
+ * @privateRemarks
5
+ * Other custom errors should go here.
6
+ * @packageDocumentation
7
+ */
8
+ import { AssertionError as NodeAssertionError } from 'node:assert';
9
+ import { type LiteralStringUnion } from 'type-fest/source/literal-union.js';
10
+ import { FAIL, kBupkisAssertionError, kBupkisError, kBupkisFailAssertionError, kBupkisNegatedAssertionError } from "./constant.cjs";
11
+ /**
12
+ * Options for {@link AssertionError}'s constructor
13
+ *
14
+ * @remarks
15
+ * Based on Node.js' {@link NodeAssertionError}'s constructor options, sans
16
+ * `operator`.
17
+ * @group Error Options
18
+ */
19
+ export type AssertionErrorOptions = Partial<Omit<NonNullable<ConstructorParameters<typeof NodeAssertionError>[0]>, 'operator'>> & {
20
+ id: string;
21
+ };
22
+ /**
23
+ * Options for {@link AssertionImplementationError}
24
+ *
25
+ * @group Error Options
26
+ */
27
+ export interface AssertionImplementationErrorOptions extends ErrorOptions {
28
+ /**
29
+ * The result returned by an assertion implementation that caused this error.
30
+ */
31
+ result?: unknown;
32
+ }
33
+ export type FailAssertionErrorOptions = Omit<AssertionErrorOptions, 'id'>;
34
+ /**
35
+ * Options for {@link InvalidMetadataError}
36
+ *
37
+ * @group Error Options
38
+ */
39
+ export interface InvalidMetadataErrorOptions extends ErrorOptions {
40
+ /**
41
+ * The invalid metadata.
42
+ */
43
+ metadata?: unknown;
44
+ }
45
+ /**
46
+ * Options for {@link InvalidObjectSchemaError}
47
+ *
48
+ * @group Error Options
49
+ */
50
+ export interface InvalidSchemaErrorOptions extends ErrorOptions {
51
+ /**
52
+ * The invalid schema
53
+ */
54
+ schema?: unknown;
55
+ }
56
+ /**
57
+ * Options for {@link UnknownAssertionError}
58
+ *
59
+ * @group Error Options
60
+ */
61
+ export interface UnknownAssertionErrorOptions<T extends readonly unknown[]> extends ErrorOptions {
62
+ /**
63
+ * The arguments passed to {@link bupkis!expect | expect} or
64
+ * {@link bupkis!expectAsync | expectAsync} which caused this error.
65
+ */
66
+ args: T;
67
+ }
68
+ /**
69
+ * _BUPKIS_' s custom `AssertionError` class, which is just a thin wrapper
70
+ * around Node.js' {@link NodeAssertionError AssertionError}.
71
+ *
72
+ * @group Core API
73
+ * @group Errors
74
+ */
75
+ export declare class AssertionError extends NodeAssertionError {
76
+ /**
77
+ * @internal
78
+ */
79
+ [kBupkisAssertionError]: boolean;
80
+ /**
81
+ * Assertion ID of the assertion that caused this error.
82
+ */
83
+ readonly assertionId: LiteralStringUnion<typeof FAIL>;
84
+ name: string;
85
+ constructor(options: AssertionErrorOptions);
86
+ /**
87
+ * Type guard for an instance of this error.
88
+ *
89
+ * @param value Some value
90
+ * @returns `true` if `value` is an instance of `AssertionError`
91
+ */
92
+ static isAssertionError: (value: unknown) => value is AssertionError;
93
+ toJSON(): {
94
+ actual: unknown;
95
+ expected: unknown;
96
+ message: string;
97
+ name: string;
98
+ stack: string | undefined;
99
+ };
100
+ }
101
+ /**
102
+ * Base class for all custom errors thrown by <span
103
+ * class="bupkis">BUPKIS</span>.
104
+ *
105
+ * Typically only thrown when it should be impossible to throw.
106
+ *
107
+ * @group Errors
108
+ */
109
+ export declare class BupkisError extends Error {
110
+ [kBupkisError]: boolean;
111
+ name: string;
112
+ static isBupkisError: (err: unknown) => err is BupkisError;
113
+ }
114
+ /**
115
+ * Error type used when an assertion implementation throws an error (this likely
116
+ * means there's a bug in the assertion implementation).
117
+ *
118
+ * @group Errors
119
+ */
120
+ export declare class AssertionImplementationError extends BupkisError {
121
+ readonly code = "ERR_BUPKIS_ASSERTION_IMPL";
122
+ name: string;
123
+ readonly result: unknown;
124
+ constructor(message: string, options?: AssertionImplementationErrorOptions);
125
+ static isAssertionImplementationError: (err: unknown) => err is AssertionImplementationError;
126
+ }
127
+ /**
128
+ * Variant of an {@link AssertionError} that is thrown when
129
+ * {@link bupkis!expect.fail} is called.
130
+ *
131
+ * @group Errors
132
+ */
133
+ export declare class FailAssertionError extends AssertionError {
134
+ /**
135
+ * @internal
136
+ */
137
+ [kBupkisFailAssertionError]: boolean;
138
+ name: string;
139
+ constructor(options?: FailAssertionErrorOptions);
140
+ static isFailAssertionError: (err: unknown) => err is FailAssertionError;
141
+ }
142
+ /**
143
+ * Error type used when assertion metadata is invalid.
144
+ *
145
+ * @remarks
146
+ * This should never be thrown unless someone monkeyed with the metadata
147
+ * registry.
148
+ * @group Errors
149
+ */
150
+ export declare class InvalidMetadataError extends BupkisError {
151
+ readonly code = "ERR_BUPKIS_INVALID_METADATA";
152
+ readonly metadata?: unknown;
153
+ name: string;
154
+ constructor(message: string, options?: InvalidMetadataErrorOptions);
155
+ }
156
+ /**
157
+ * Thrown from certain assertions when a parameter cannot be used as an "object
158
+ * schema"
159
+ *
160
+ * @group Errors
161
+ */
162
+ export declare class InvalidObjectSchemaError extends BupkisError {
163
+ readonly code = "ERR_BUPKIS_INVALID_OBJECT_SCHEMA";
164
+ name: string;
165
+ readonly schema?: unknown;
166
+ constructor(message: string, options?: InvalidSchemaErrorOptions);
167
+ }
168
+ /**
169
+ * Error type used internally to catch failed negated assertions.
170
+ *
171
+ * @group Errors
172
+ */
173
+ export declare class NegatedAssertionError extends AssertionError {
174
+ [kBupkisNegatedAssertionError]: boolean;
175
+ name: string;
176
+ static isNegatedAssertionError: (err: unknown) => err is NegatedAssertionError;
177
+ }
178
+ /**
179
+ * Thrown when a value cannot be converted to a schema using `valueToSchema()`.
180
+ *
181
+ * @remarks
182
+ * Currently, this is thrown when encountering an empty object as a value
183
+ * (because this will match anything; though maybe we should change that).
184
+ * @group Errors
185
+ */
186
+ export declare class SatisfactionError extends BupkisError {
187
+ readonly code = "ERR_BUPKIS_SATISFACTION";
188
+ name: string;
189
+ constructor(message: string, options?: ErrorOptions);
190
+ }
191
+ /**
192
+ * Thrown when `expect()` is called with something async.
193
+ *
194
+ * @group Errors
195
+ */
196
+ export declare class UnexpectedAsyncError extends BupkisError {
197
+ readonly code = "ERR_BUPKIS_UNEXPECTED_ASYNC";
198
+ name: string;
199
+ }
200
+ /**
201
+ * Thrown when we cannot match the parameters to {@link bupkis!expect | expect}
202
+ * or {@link bupkis!expectAsync | expectAsync} to any known assertion.
203
+ *
204
+ * @group Errors
205
+ */
206
+ export declare class UnknownAssertionError<T extends readonly unknown[]> extends BupkisError {
207
+ readonly args: T;
208
+ readonly code = "ERR_BUPKIS_UNKNOWN_ASSERTION";
209
+ name: string;
210
+ constructor(message: string, options: UnknownAssertionErrorOptions<T>);
211
+ }
212
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,212 @@
1
+ /**
2
+ * Error types thrown by _BUPKIS_, including {@link AssertionError}.
3
+ *
4
+ * @privateRemarks
5
+ * Other custom errors should go here.
6
+ * @packageDocumentation
7
+ */
8
+ import { AssertionError as NodeAssertionError } from 'node:assert';
9
+ import { type LiteralStringUnion } from 'type-fest/source/literal-union.js';
10
+ import { FAIL, kBupkisAssertionError, kBupkisError, kBupkisFailAssertionError, kBupkisNegatedAssertionError } from "./constant.js";
11
+ /**
12
+ * Options for {@link AssertionError}'s constructor
13
+ *
14
+ * @remarks
15
+ * Based on Node.js' {@link NodeAssertionError}'s constructor options, sans
16
+ * `operator`.
17
+ * @group Error Options
18
+ */
19
+ export type AssertionErrorOptions = Partial<Omit<NonNullable<ConstructorParameters<typeof NodeAssertionError>[0]>, 'operator'>> & {
20
+ id: string;
21
+ };
22
+ /**
23
+ * Options for {@link AssertionImplementationError}
24
+ *
25
+ * @group Error Options
26
+ */
27
+ export interface AssertionImplementationErrorOptions extends ErrorOptions {
28
+ /**
29
+ * The result returned by an assertion implementation that caused this error.
30
+ */
31
+ result?: unknown;
32
+ }
33
+ export type FailAssertionErrorOptions = Omit<AssertionErrorOptions, 'id'>;
34
+ /**
35
+ * Options for {@link InvalidMetadataError}
36
+ *
37
+ * @group Error Options
38
+ */
39
+ export interface InvalidMetadataErrorOptions extends ErrorOptions {
40
+ /**
41
+ * The invalid metadata.
42
+ */
43
+ metadata?: unknown;
44
+ }
45
+ /**
46
+ * Options for {@link InvalidObjectSchemaError}
47
+ *
48
+ * @group Error Options
49
+ */
50
+ export interface InvalidSchemaErrorOptions extends ErrorOptions {
51
+ /**
52
+ * The invalid schema
53
+ */
54
+ schema?: unknown;
55
+ }
56
+ /**
57
+ * Options for {@link UnknownAssertionError}
58
+ *
59
+ * @group Error Options
60
+ */
61
+ export interface UnknownAssertionErrorOptions<T extends readonly unknown[]> extends ErrorOptions {
62
+ /**
63
+ * The arguments passed to {@link bupkis!expect | expect} or
64
+ * {@link bupkis!expectAsync | expectAsync} which caused this error.
65
+ */
66
+ args: T;
67
+ }
68
+ /**
69
+ * _BUPKIS_' s custom `AssertionError` class, which is just a thin wrapper
70
+ * around Node.js' {@link NodeAssertionError AssertionError}.
71
+ *
72
+ * @group Core API
73
+ * @group Errors
74
+ */
75
+ export declare class AssertionError extends NodeAssertionError {
76
+ /**
77
+ * @internal
78
+ */
79
+ [kBupkisAssertionError]: boolean;
80
+ /**
81
+ * Assertion ID of the assertion that caused this error.
82
+ */
83
+ readonly assertionId: LiteralStringUnion<typeof FAIL>;
84
+ name: string;
85
+ constructor(options: AssertionErrorOptions);
86
+ /**
87
+ * Type guard for an instance of this error.
88
+ *
89
+ * @param value Some value
90
+ * @returns `true` if `value` is an instance of `AssertionError`
91
+ */
92
+ static isAssertionError: (value: unknown) => value is AssertionError;
93
+ toJSON(): {
94
+ actual: unknown;
95
+ expected: unknown;
96
+ message: string;
97
+ name: string;
98
+ stack: string | undefined;
99
+ };
100
+ }
101
+ /**
102
+ * Base class for all custom errors thrown by <span
103
+ * class="bupkis">BUPKIS</span>.
104
+ *
105
+ * Typically only thrown when it should be impossible to throw.
106
+ *
107
+ * @group Errors
108
+ */
109
+ export declare class BupkisError extends Error {
110
+ [kBupkisError]: boolean;
111
+ name: string;
112
+ static isBupkisError: (err: unknown) => err is BupkisError;
113
+ }
114
+ /**
115
+ * Error type used when an assertion implementation throws an error (this likely
116
+ * means there's a bug in the assertion implementation).
117
+ *
118
+ * @group Errors
119
+ */
120
+ export declare class AssertionImplementationError extends BupkisError {
121
+ readonly code = "ERR_BUPKIS_ASSERTION_IMPL";
122
+ name: string;
123
+ readonly result: unknown;
124
+ constructor(message: string, options?: AssertionImplementationErrorOptions);
125
+ static isAssertionImplementationError: (err: unknown) => err is AssertionImplementationError;
126
+ }
127
+ /**
128
+ * Variant of an {@link AssertionError} that is thrown when
129
+ * {@link bupkis!expect.fail} is called.
130
+ *
131
+ * @group Errors
132
+ */
133
+ export declare class FailAssertionError extends AssertionError {
134
+ /**
135
+ * @internal
136
+ */
137
+ [kBupkisFailAssertionError]: boolean;
138
+ name: string;
139
+ constructor(options?: FailAssertionErrorOptions);
140
+ static isFailAssertionError: (err: unknown) => err is FailAssertionError;
141
+ }
142
+ /**
143
+ * Error type used when assertion metadata is invalid.
144
+ *
145
+ * @remarks
146
+ * This should never be thrown unless someone monkeyed with the metadata
147
+ * registry.
148
+ * @group Errors
149
+ */
150
+ export declare class InvalidMetadataError extends BupkisError {
151
+ readonly code = "ERR_BUPKIS_INVALID_METADATA";
152
+ readonly metadata?: unknown;
153
+ name: string;
154
+ constructor(message: string, options?: InvalidMetadataErrorOptions);
155
+ }
156
+ /**
157
+ * Thrown from certain assertions when a parameter cannot be used as an "object
158
+ * schema"
159
+ *
160
+ * @group Errors
161
+ */
162
+ export declare class InvalidObjectSchemaError extends BupkisError {
163
+ readonly code = "ERR_BUPKIS_INVALID_OBJECT_SCHEMA";
164
+ name: string;
165
+ readonly schema?: unknown;
166
+ constructor(message: string, options?: InvalidSchemaErrorOptions);
167
+ }
168
+ /**
169
+ * Error type used internally to catch failed negated assertions.
170
+ *
171
+ * @group Errors
172
+ */
173
+ export declare class NegatedAssertionError extends AssertionError {
174
+ [kBupkisNegatedAssertionError]: boolean;
175
+ name: string;
176
+ static isNegatedAssertionError: (err: unknown) => err is NegatedAssertionError;
177
+ }
178
+ /**
179
+ * Thrown when a value cannot be converted to a schema using `valueToSchema()`.
180
+ *
181
+ * @remarks
182
+ * Currently, this is thrown when encountering an empty object as a value
183
+ * (because this will match anything; though maybe we should change that).
184
+ * @group Errors
185
+ */
186
+ export declare class SatisfactionError extends BupkisError {
187
+ readonly code = "ERR_BUPKIS_SATISFACTION";
188
+ name: string;
189
+ constructor(message: string, options?: ErrorOptions);
190
+ }
191
+ /**
192
+ * Thrown when `expect()` is called with something async.
193
+ *
194
+ * @group Errors
195
+ */
196
+ export declare class UnexpectedAsyncError extends BupkisError {
197
+ readonly code = "ERR_BUPKIS_UNEXPECTED_ASYNC";
198
+ name: string;
199
+ }
200
+ /**
201
+ * Thrown when we cannot match the parameters to {@link bupkis!expect | expect}
202
+ * or {@link bupkis!expectAsync | expectAsync} to any known assertion.
203
+ *
204
+ * @group Errors
205
+ */
206
+ export declare class UnknownAssertionError<T extends readonly unknown[]> extends BupkisError {
207
+ readonly args: T;
208
+ readonly code = "ERR_BUPKIS_UNKNOWN_ASSERTION";
209
+ name: string;
210
+ constructor(message: string, options: UnknownAssertionErrorOptions<T>);
211
+ }
212
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE5E,OAAO,EACL,IAAI,EACJ,qBAAqB,EACrB,YAAY,EACZ,yBAAyB,EACzB,4BAA4B,EAC7B,sBAAsB;AAKvB;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,CACzC,IAAI,CACF,WAAW,CAAC,qBAAqB,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,EAChE,UAAU,CACX,CACF,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnB;;;;GAIG;AACH,MAAM,WAAW,mCAAoC,SAAQ,YAAY;IACvE;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AACD,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;AAE1E;;;;GAIG;AACH,MAAM,WAAW,2BAA4B,SAAQ,YAAY;IAC/D;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAA0B,SAAQ,YAAY;IAC7D;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B,CAC3C,CAAC,SAAS,SAAS,OAAO,EAAE,CAC5B,SAAQ,YAAY;IACpB;;;OAGG;IACH,IAAI,EAAE,CAAC,CAAC;CACT;AAED;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,kBAAkB;IAMpD;;OAEG;IACH,CAAC,qBAAqB,CAAC;IARvB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC,OAAO,IAAI,CAAC,CAAC;IAO7C,IAAI,SAAoB;gBAErB,OAAO,EAAE,qBAAqB;IAK1C;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,cAAc,CACM;IAEzE,MAAM;;;;;;;CASP;AAED;;;;;;;GAOG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,CAAC,YAAY,CAAC;IAEL,IAAI,SAAiB;IAE9B,MAAM,CAAC,aAAa,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,WAAW,CACV;CAChD;AAED;;;;;GAKG;AACH,qBAAa,4BAA6B,SAAQ,WAAW;IAC3D,QAAQ,CAAC,IAAI,+BAA+B;IAEnC,IAAI,SAAkC;IAE/C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;gBAGvB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mCAAwC;IAOnD,MAAM,CAAC,8BAA8B,GACnC,KAAK,OAAO,KACX,GAAG,IAAI,4BAA4B,CACG;CAC1C;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;IACpD;;OAEG;IACH,CAAC,yBAAyB,CAAC;IAElB,IAAI,SAAwB;gBAEzB,OAAO,CAAC,EAAE,yBAAyB;IAI/C,MAAM,CAAC,oBAAoB,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,kBAAkB,CACE;CAC1E;AAED;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,QAAQ,CAAC,IAAI,iCAAiC;IAE9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,IAAI,SAA0B;gBAE3B,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,2BAAgC;CAKvE;AAED;;;;;GAKG;AACH,qBAAa,wBAAyB,SAAQ,WAAW;IACvD,QAAQ,CAAC,IAAI,sCAAsC;IAE1C,IAAI,SAA8B;IAE3C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;gBAEd,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,yBAA8B;CAKrE;AAED;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,cAAc;IACvD,CAAC,4BAA4B,CAAC;IAErB,IAAI,SAA2B;IAExC,MAAM,CAAC,uBAAuB,GAC5B,KAAK,OAAO,KACX,GAAG,IAAI,qBAAqB,CACyC;CACzE;AAED;;;;;;;GAOG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,QAAQ,CAAC,IAAI,6BAA6B;IAEjC,IAAI,SAAuB;gBAExB,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB;CAGxD;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,QAAQ,CAAC,IAAI,iCAAiC;IAErC,IAAI,SAA0B;CACxC;AAED;;;;;GAKG;AACH,qBAAa,qBAAqB,CAChC,CAAC,SAAS,SAAS,OAAO,EAAE,CAC5B,SAAQ,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAEjB,QAAQ,CAAC,IAAI,kCAAkC;IAEtC,IAAI,SAA2B;gBAE5B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,CAAC,CAAC,CAAC;CAKtE"}
package/dist/error.js ADDED
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Error types thrown by _BUPKIS_, including {@link AssertionError}.
3
+ *
4
+ * @privateRemarks
5
+ * Other custom errors should go here.
6
+ * @packageDocumentation
7
+ */
8
+ import { AssertionError as NodeAssertionError } from 'node:assert';
9
+ import { FAIL, kBupkisAssertionError, kBupkisError, kBupkisFailAssertionError, kBupkisNegatedAssertionError, } from "./constant.js";
10
+ import { isA } from "./guards.js";
11
+ const { hasOwn } = Object;
12
+ /**
13
+ * _BUPKIS_' s custom `AssertionError` class, which is just a thin wrapper
14
+ * around Node.js' {@link NodeAssertionError AssertionError}.
15
+ *
16
+ * @group Core API
17
+ * @group Errors
18
+ */
19
+ export class AssertionError extends NodeAssertionError {
20
+ /**
21
+ * Assertion ID of the assertion that caused this error.
22
+ */
23
+ assertionId;
24
+ /**
25
+ * @internal
26
+ */
27
+ [kBupkisAssertionError] = true;
28
+ name = 'AssertionError';
29
+ constructor(options) {
30
+ super(options);
31
+ this.assertionId = options.id;
32
+ }
33
+ /**
34
+ * Type guard for an instance of this error.
35
+ *
36
+ * @param value Some value
37
+ * @returns `true` if `value` is an instance of `AssertionError`
38
+ */
39
+ static isAssertionError = (value) => isA(value, NodeAssertionError) && hasOwn(value, kBupkisAssertionError);
40
+ toJSON() {
41
+ return {
42
+ actual: this.actual,
43
+ expected: this.expected,
44
+ message: this.message,
45
+ name: this.name,
46
+ stack: this.stack,
47
+ };
48
+ }
49
+ }
50
+ /**
51
+ * Base class for all custom errors thrown by <span
52
+ * class="bupkis">BUPKIS</span>.
53
+ *
54
+ * Typically only thrown when it should be impossible to throw.
55
+ *
56
+ * @group Errors
57
+ */
58
+ export class BupkisError extends Error {
59
+ [kBupkisError] = true;
60
+ name = 'BupkisError';
61
+ static isBupkisError = (err) => isA(err, Error) && hasOwn(err, kBupkisError);
62
+ }
63
+ /**
64
+ * Error type used when an assertion implementation throws an error (this likely
65
+ * means there's a bug in the assertion implementation).
66
+ *
67
+ * @group Errors
68
+ */
69
+ export class AssertionImplementationError extends BupkisError {
70
+ code = 'ERR_BUPKIS_ASSERTION_IMPL';
71
+ name = 'AssertionImplementationError';
72
+ result;
73
+ constructor(message, options = {}) {
74
+ const { result, ...rest } = options;
75
+ super(message, rest);
76
+ this.result = result;
77
+ }
78
+ static isAssertionImplementationError = (err) => isA(err, AssertionImplementationError);
79
+ }
80
+ /**
81
+ * Variant of an {@link AssertionError} that is thrown when
82
+ * {@link bupkis!expect.fail} is called.
83
+ *
84
+ * @group Errors
85
+ */
86
+ export class FailAssertionError extends AssertionError {
87
+ /**
88
+ * @internal
89
+ */
90
+ [kBupkisFailAssertionError] = true;
91
+ name = 'FailAssertionError';
92
+ constructor(options) {
93
+ super({ ...options, id: FAIL });
94
+ }
95
+ static isFailAssertionError = (err) => isA(err, FailAssertionError) && hasOwn(err, kBupkisFailAssertionError);
96
+ }
97
+ /**
98
+ * Error type used when assertion metadata is invalid.
99
+ *
100
+ * @remarks
101
+ * This should never be thrown unless someone monkeyed with the metadata
102
+ * registry.
103
+ * @group Errors
104
+ */
105
+ export class InvalidMetadataError extends BupkisError {
106
+ code = 'ERR_BUPKIS_INVALID_METADATA';
107
+ metadata;
108
+ name = 'InvalidMetadataError';
109
+ constructor(message, options = {}) {
110
+ const { metadata, ...rest } = options;
111
+ super(message, rest);
112
+ this.metadata = metadata;
113
+ }
114
+ }
115
+ /**
116
+ * Thrown from certain assertions when a parameter cannot be used as an "object
117
+ * schema"
118
+ *
119
+ * @group Errors
120
+ */
121
+ export class InvalidObjectSchemaError extends BupkisError {
122
+ code = 'ERR_BUPKIS_INVALID_OBJECT_SCHEMA';
123
+ name = 'InvalidObjectSchemaError';
124
+ schema;
125
+ constructor(message, options = {}) {
126
+ const { schema, ...rest } = options;
127
+ super(message, rest);
128
+ this.schema = schema;
129
+ }
130
+ }
131
+ /**
132
+ * Error type used internally to catch failed negated assertions.
133
+ *
134
+ * @group Errors
135
+ */
136
+ export class NegatedAssertionError extends AssertionError {
137
+ [kBupkisNegatedAssertionError] = true;
138
+ name = 'NegatedAssertionError';
139
+ static isNegatedAssertionError = (err) => isA(err, AssertionError) && hasOwn(err, kBupkisNegatedAssertionError);
140
+ }
141
+ /**
142
+ * Thrown when a value cannot be converted to a schema using `valueToSchema()`.
143
+ *
144
+ * @remarks
145
+ * Currently, this is thrown when encountering an empty object as a value
146
+ * (because this will match anything; though maybe we should change that).
147
+ * @group Errors
148
+ */
149
+ export class SatisfactionError extends BupkisError {
150
+ code = 'ERR_BUPKIS_SATISFACTION';
151
+ name = 'SatisfactionError';
152
+ constructor(message, options = {}) {
153
+ super(message, options);
154
+ }
155
+ }
156
+ /**
157
+ * Thrown when `expect()` is called with something async.
158
+ *
159
+ * @group Errors
160
+ */
161
+ export class UnexpectedAsyncError extends BupkisError {
162
+ code = 'ERR_BUPKIS_UNEXPECTED_ASYNC';
163
+ name = 'UnexpectedAsyncError';
164
+ }
165
+ /**
166
+ * Thrown when we cannot match the parameters to {@link bupkis!expect | expect}
167
+ * or {@link bupkis!expectAsync | expectAsync} to any known assertion.
168
+ *
169
+ * @group Errors
170
+ */
171
+ export class UnknownAssertionError extends BupkisError {
172
+ args;
173
+ code = 'ERR_BUPKIS_UNKNOWN_ASSERTION';
174
+ name = 'UnknownAssertionError';
175
+ constructor(message, options) {
176
+ const { args, ...rest } = options;
177
+ super(message, rest);
178
+ this.args = args;
179
+ }
180
+ }
181
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"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"}