bupkis 0.18.1 → 0.18.3

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 (379) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/package.json +3 -6
  3. package/src/assertion/assertion-sync.ts +1 -1
  4. package/src/assertion/assertion-types.ts +4 -4
  5. package/src/assertion/assertion.ts +11 -6
  6. package/src/assertion/impl/iteration-util.ts +2 -2
  7. package/src/assertion/impl/sync-parametric.ts +1 -1
  8. package/src/expect.ts +1 -5
  9. package/src/guards.ts +24 -24
  10. package/src/internal-schema.ts +16 -32
  11. package/src/value-to-schema.ts +1 -1
  12. package/dist/assertion/assertion-async.cjs +0 -268
  13. package/dist/assertion/assertion-async.cjs.map +0 -1
  14. package/dist/assertion/assertion-async.d.cts +0 -40
  15. package/dist/assertion/assertion-async.d.cts.map +0 -1
  16. package/dist/assertion/assertion-async.d.ts +0 -40
  17. package/dist/assertion/assertion-async.d.ts.map +0 -1
  18. package/dist/assertion/assertion-async.js +0 -259
  19. package/dist/assertion/assertion-async.js.map +0 -1
  20. package/dist/assertion/assertion-standard-schema-async.cjs +0 -132
  21. package/dist/assertion/assertion-standard-schema-async.cjs.map +0 -1
  22. package/dist/assertion/assertion-standard-schema-async.d.cts +0 -52
  23. package/dist/assertion/assertion-standard-schema-async.d.cts.map +0 -1
  24. package/dist/assertion/assertion-standard-schema-async.d.ts +0 -52
  25. package/dist/assertion/assertion-standard-schema-async.d.ts.map +0 -1
  26. package/dist/assertion/assertion-standard-schema-async.js +0 -128
  27. package/dist/assertion/assertion-standard-schema-async.js.map +0 -1
  28. package/dist/assertion/assertion-standard-schema-sync.cjs +0 -141
  29. package/dist/assertion/assertion-standard-schema-sync.cjs.map +0 -1
  30. package/dist/assertion/assertion-standard-schema-sync.d.cts +0 -52
  31. package/dist/assertion/assertion-standard-schema-sync.d.cts.map +0 -1
  32. package/dist/assertion/assertion-standard-schema-sync.d.ts +0 -52
  33. package/dist/assertion/assertion-standard-schema-sync.d.ts.map +0 -1
  34. package/dist/assertion/assertion-standard-schema-sync.js +0 -137
  35. package/dist/assertion/assertion-standard-schema-sync.js.map +0 -1
  36. package/dist/assertion/assertion-sync.cjs +0 -284
  37. package/dist/assertion/assertion-sync.cjs.map +0 -1
  38. package/dist/assertion/assertion-sync.d.cts +0 -60
  39. package/dist/assertion/assertion-sync.d.cts.map +0 -1
  40. package/dist/assertion/assertion-sync.d.ts +0 -60
  41. package/dist/assertion/assertion-sync.d.ts.map +0 -1
  42. package/dist/assertion/assertion-sync.js +0 -275
  43. package/dist/assertion/assertion-sync.js.map +0 -1
  44. package/dist/assertion/assertion-types.cjs +0 -20
  45. package/dist/assertion/assertion-types.cjs.map +0 -1
  46. package/dist/assertion/assertion-types.d.cts +0 -1086
  47. package/dist/assertion/assertion-types.d.cts.map +0 -1
  48. package/dist/assertion/assertion-types.d.ts +0 -1086
  49. package/dist/assertion/assertion-types.d.ts.map +0 -1
  50. package/dist/assertion/assertion-types.js +0 -19
  51. package/dist/assertion/assertion-types.js.map +0 -1
  52. package/dist/assertion/assertion.cjs +0 -382
  53. package/dist/assertion/assertion.cjs.map +0 -1
  54. package/dist/assertion/assertion.d.cts +0 -109
  55. package/dist/assertion/assertion.d.cts.map +0 -1
  56. package/dist/assertion/assertion.d.ts +0 -109
  57. package/dist/assertion/assertion.d.ts.map +0 -1
  58. package/dist/assertion/assertion.js +0 -375
  59. package/dist/assertion/assertion.js.map +0 -1
  60. package/dist/assertion/create.cjs +0 -148
  61. package/dist/assertion/create.cjs.map +0 -1
  62. package/dist/assertion/create.d.cts +0 -85
  63. package/dist/assertion/create.d.cts.map +0 -1
  64. package/dist/assertion/create.d.ts +0 -85
  65. package/dist/assertion/create.d.ts.map +0 -1
  66. package/dist/assertion/create.js +0 -143
  67. package/dist/assertion/create.js.map +0 -1
  68. package/dist/assertion/format-assertion-failure.cjs +0 -63
  69. package/dist/assertion/format-assertion-failure.cjs.map +0 -1
  70. package/dist/assertion/format-assertion-failure.d.cts +0 -21
  71. package/dist/assertion/format-assertion-failure.d.cts.map +0 -1
  72. package/dist/assertion/format-assertion-failure.d.ts +0 -21
  73. package/dist/assertion/format-assertion-failure.d.ts.map +0 -1
  74. package/dist/assertion/format-assertion-failure.js +0 -59
  75. package/dist/assertion/format-assertion-failure.js.map +0 -1
  76. package/dist/assertion/impl/assertion-util.cjs +0 -68
  77. package/dist/assertion/impl/assertion-util.cjs.map +0 -1
  78. package/dist/assertion/impl/assertion-util.d.cts +0 -36
  79. package/dist/assertion/impl/assertion-util.d.cts.map +0 -1
  80. package/dist/assertion/impl/assertion-util.d.ts +0 -36
  81. package/dist/assertion/impl/assertion-util.d.ts.map +0 -1
  82. package/dist/assertion/impl/assertion-util.js +0 -62
  83. package/dist/assertion/impl/assertion-util.js.map +0 -1
  84. package/dist/assertion/impl/async-iterable.cjs +0 -627
  85. package/dist/assertion/impl/async-iterable.cjs.map +0 -1
  86. package/dist/assertion/impl/async-iterable.d.cts +0 -406
  87. package/dist/assertion/impl/async-iterable.d.cts.map +0 -1
  88. package/dist/assertion/impl/async-iterable.d.ts +0 -406
  89. package/dist/assertion/impl/async-iterable.d.ts.map +0 -1
  90. package/dist/assertion/impl/async-iterable.js +0 -624
  91. package/dist/assertion/impl/async-iterable.js.map +0 -1
  92. package/dist/assertion/impl/async-parametric.cjs +0 -412
  93. package/dist/assertion/impl/async-parametric.cjs.map +0 -1
  94. package/dist/assertion/impl/async-parametric.d.cts +0 -278
  95. package/dist/assertion/impl/async-parametric.d.cts.map +0 -1
  96. package/dist/assertion/impl/async-parametric.d.ts +0 -278
  97. package/dist/assertion/impl/async-parametric.d.ts.map +0 -1
  98. package/dist/assertion/impl/async-parametric.js +0 -409
  99. package/dist/assertion/impl/async-parametric.js.map +0 -1
  100. package/dist/assertion/impl/async.cjs +0 -56
  101. package/dist/assertion/impl/async.cjs.map +0 -1
  102. package/dist/assertion/impl/async.d.cts +0 -179
  103. package/dist/assertion/impl/async.d.cts.map +0 -1
  104. package/dist/assertion/impl/async.d.ts +0 -179
  105. package/dist/assertion/impl/async.d.ts.map +0 -1
  106. package/dist/assertion/impl/async.js +0 -39
  107. package/dist/assertion/impl/async.js.map +0 -1
  108. package/dist/assertion/impl/index.cjs +0 -37
  109. package/dist/assertion/impl/index.cjs.map +0 -1
  110. package/dist/assertion/impl/index.d.cts +0 -21
  111. package/dist/assertion/impl/index.d.cts.map +0 -1
  112. package/dist/assertion/impl/index.d.ts +0 -21
  113. package/dist/assertion/impl/index.d.ts.map +0 -1
  114. package/dist/assertion/impl/index.js +0 -21
  115. package/dist/assertion/impl/index.js.map +0 -1
  116. package/dist/assertion/impl/iteration-util.cjs +0 -297
  117. package/dist/assertion/impl/iteration-util.cjs.map +0 -1
  118. package/dist/assertion/impl/iteration-util.d.cts +0 -12
  119. package/dist/assertion/impl/iteration-util.d.cts.map +0 -1
  120. package/dist/assertion/impl/iteration-util.d.ts +0 -12
  121. package/dist/assertion/impl/iteration-util.d.ts.map +0 -1
  122. package/dist/assertion/impl/iteration-util.js +0 -282
  123. package/dist/assertion/impl/iteration-util.js.map +0 -1
  124. package/dist/assertion/impl/snapshot.cjs +0 -276
  125. package/dist/assertion/impl/snapshot.cjs.map +0 -1
  126. package/dist/assertion/impl/snapshot.d.cts +0 -278
  127. package/dist/assertion/impl/snapshot.d.cts.map +0 -1
  128. package/dist/assertion/impl/snapshot.d.ts +0 -278
  129. package/dist/assertion/impl/snapshot.d.ts.map +0 -1
  130. package/dist/assertion/impl/snapshot.js +0 -273
  131. package/dist/assertion/impl/snapshot.js.map +0 -1
  132. package/dist/assertion/impl/sync-basic.cjs +0 -553
  133. package/dist/assertion/impl/sync-basic.cjs.map +0 -1
  134. package/dist/assertion/impl/sync-basic.d.cts +0 -528
  135. package/dist/assertion/impl/sync-basic.d.cts.map +0 -1
  136. package/dist/assertion/impl/sync-basic.d.ts +0 -528
  137. package/dist/assertion/impl/sync-basic.d.ts.map +0 -1
  138. package/dist/assertion/impl/sync-basic.js +0 -550
  139. package/dist/assertion/impl/sync-basic.js.map +0 -1
  140. package/dist/assertion/impl/sync-collection.cjs +0 -856
  141. package/dist/assertion/impl/sync-collection.cjs.map +0 -1
  142. package/dist/assertion/impl/sync-collection.d.cts +0 -607
  143. package/dist/assertion/impl/sync-collection.d.cts.map +0 -1
  144. package/dist/assertion/impl/sync-collection.d.ts +0 -607
  145. package/dist/assertion/impl/sync-collection.d.ts.map +0 -1
  146. package/dist/assertion/impl/sync-collection.js +0 -850
  147. package/dist/assertion/impl/sync-collection.js.map +0 -1
  148. package/dist/assertion/impl/sync-date.cjs +0 -341
  149. package/dist/assertion/impl/sync-date.cjs.map +0 -1
  150. package/dist/assertion/impl/sync-date.d.cts +0 -209
  151. package/dist/assertion/impl/sync-date.d.cts.map +0 -1
  152. package/dist/assertion/impl/sync-date.d.ts +0 -209
  153. package/dist/assertion/impl/sync-date.d.ts.map +0 -1
  154. package/dist/assertion/impl/sync-date.js +0 -338
  155. package/dist/assertion/impl/sync-date.js.map +0 -1
  156. package/dist/assertion/impl/sync-esoteric.cjs +0 -214
  157. package/dist/assertion/impl/sync-esoteric.cjs.map +0 -1
  158. package/dist/assertion/impl/sync-esoteric.d.cts +0 -191
  159. package/dist/assertion/impl/sync-esoteric.d.cts.map +0 -1
  160. package/dist/assertion/impl/sync-esoteric.d.ts +0 -191
  161. package/dist/assertion/impl/sync-esoteric.d.ts.map +0 -1
  162. package/dist/assertion/impl/sync-esoteric.js +0 -211
  163. package/dist/assertion/impl/sync-esoteric.js.map +0 -1
  164. package/dist/assertion/impl/sync-iterable.cjs +0 -512
  165. package/dist/assertion/impl/sync-iterable.cjs.map +0 -1
  166. package/dist/assertion/impl/sync-iterable.d.cts +0 -334
  167. package/dist/assertion/impl/sync-iterable.d.cts.map +0 -1
  168. package/dist/assertion/impl/sync-iterable.d.ts +0 -334
  169. package/dist/assertion/impl/sync-iterable.d.ts.map +0 -1
  170. package/dist/assertion/impl/sync-iterable.js +0 -509
  171. package/dist/assertion/impl/sync-iterable.js.map +0 -1
  172. package/dist/assertion/impl/sync-parametric.cjs +0 -805
  173. package/dist/assertion/impl/sync-parametric.cjs.map +0 -1
  174. package/dist/assertion/impl/sync-parametric.d.cts +0 -560
  175. package/dist/assertion/impl/sync-parametric.d.cts.map +0 -1
  176. package/dist/assertion/impl/sync-parametric.d.ts +0 -560
  177. package/dist/assertion/impl/sync-parametric.d.ts.map +0 -1
  178. package/dist/assertion/impl/sync-parametric.js +0 -802
  179. package/dist/assertion/impl/sync-parametric.js.map +0 -1
  180. package/dist/assertion/impl/sync.cjs +0 -214
  181. package/dist/assertion/impl/sync.cjs.map +0 -1
  182. package/dist/assertion/impl/sync.d.cts +0 -512
  183. package/dist/assertion/impl/sync.d.cts.map +0 -1
  184. package/dist/assertion/impl/sync.d.ts +0 -512
  185. package/dist/assertion/impl/sync.d.ts.map +0 -1
  186. package/dist/assertion/impl/sync.js +0 -197
  187. package/dist/assertion/impl/sync.js.map +0 -1
  188. package/dist/assertion/index.cjs +0 -38
  189. package/dist/assertion/index.cjs.map +0 -1
  190. package/dist/assertion/index.d.cts +0 -18
  191. package/dist/assertion/index.d.cts.map +0 -1
  192. package/dist/assertion/index.d.ts +0 -18
  193. package/dist/assertion/index.d.ts.map +0 -1
  194. package/dist/assertion/index.js +0 -17
  195. package/dist/assertion/index.js.map +0 -1
  196. package/dist/assertion/slotify.cjs +0 -165
  197. package/dist/assertion/slotify.cjs.map +0 -1
  198. package/dist/assertion/slotify.d.cts +0 -11
  199. package/dist/assertion/slotify.d.cts.map +0 -1
  200. package/dist/assertion/slotify.d.ts +0 -11
  201. package/dist/assertion/slotify.d.ts.map +0 -1
  202. package/dist/assertion/slotify.js +0 -161
  203. package/dist/assertion/slotify.js.map +0 -1
  204. package/dist/bootstrap.cjs +0 -43
  205. package/dist/bootstrap.cjs.map +0 -1
  206. package/dist/bootstrap.d.cts +0 -27
  207. package/dist/bootstrap.d.cts.map +0 -1
  208. package/dist/bootstrap.d.ts +0 -27
  209. package/dist/bootstrap.d.ts.map +0 -1
  210. package/dist/bootstrap.js +0 -40
  211. package/dist/bootstrap.js.map +0 -1
  212. package/dist/constant.cjs +0 -82
  213. package/dist/constant.cjs.map +0 -1
  214. package/dist/constant.d.cts +0 -69
  215. package/dist/constant.d.cts.map +0 -1
  216. package/dist/constant.d.ts +0 -69
  217. package/dist/constant.d.ts.map +0 -1
  218. package/dist/constant.js +0 -79
  219. package/dist/constant.js.map +0 -1
  220. package/dist/diff.cjs +0 -340
  221. package/dist/diff.cjs.map +0 -1
  222. package/dist/diff.d.cts +0 -51
  223. package/dist/diff.d.cts.map +0 -1
  224. package/dist/diff.d.ts +0 -51
  225. package/dist/diff.d.ts.map +0 -1
  226. package/dist/diff.js +0 -334
  227. package/dist/diff.js.map +0 -1
  228. package/dist/error.cjs +0 -204
  229. package/dist/error.cjs.map +0 -1
  230. package/dist/error.d.cts +0 -212
  231. package/dist/error.d.cts.map +0 -1
  232. package/dist/error.d.ts +0 -212
  233. package/dist/error.d.ts.map +0 -1
  234. package/dist/error.js +0 -191
  235. package/dist/error.js.map +0 -1
  236. package/dist/expect.cjs +0 -590
  237. package/dist/expect.cjs.map +0 -1
  238. package/dist/expect.d.cts +0 -138
  239. package/dist/expect.d.cts.map +0 -1
  240. package/dist/expect.d.ts +0 -138
  241. package/dist/expect.d.ts.map +0 -1
  242. package/dist/expect.js +0 -582
  243. package/dist/expect.js.map +0 -1
  244. package/dist/guards.cjs +0 -297
  245. package/dist/guards.cjs.map +0 -1
  246. package/dist/guards.d.cts +0 -231
  247. package/dist/guards.d.cts.map +0 -1
  248. package/dist/guards.d.ts +0 -231
  249. package/dist/guards.d.ts.map +0 -1
  250. package/dist/guards.js +0 -277
  251. package/dist/guards.js.map +0 -1
  252. package/dist/index.cjs +0 -111
  253. package/dist/index.cjs.map +0 -1
  254. package/dist/index.d.cts +0 -448
  255. package/dist/index.d.cts.map +0 -1
  256. package/dist/index.d.ts +0 -448
  257. package/dist/index.d.ts.map +0 -1
  258. package/dist/index.js +0 -71
  259. package/dist/index.js.map +0 -1
  260. package/dist/internal-schema.cjs +0 -253
  261. package/dist/internal-schema.cjs.map +0 -1
  262. package/dist/internal-schema.d.cts +0 -8
  263. package/dist/internal-schema.d.cts.map +0 -1
  264. package/dist/internal-schema.d.ts +0 -8
  265. package/dist/internal-schema.d.ts.map +0 -1
  266. package/dist/internal-schema.js +0 -248
  267. package/dist/internal-schema.js.map +0 -1
  268. package/dist/metadata.cjs +0 -57
  269. package/dist/metadata.cjs.map +0 -1
  270. package/dist/metadata.d.cts +0 -27
  271. package/dist/metadata.d.cts.map +0 -1
  272. package/dist/metadata.d.ts +0 -27
  273. package/dist/metadata.d.ts.map +0 -1
  274. package/dist/metadata.js +0 -54
  275. package/dist/metadata.js.map +0 -1
  276. package/dist/schema.cjs +0 -1522
  277. package/dist/schema.cjs.map +0 -1
  278. package/dist/schema.d.cts +0 -1196
  279. package/dist/schema.d.cts.map +0 -1
  280. package/dist/schema.d.ts +0 -1196
  281. package/dist/schema.d.ts.map +0 -1
  282. package/dist/schema.js +0 -1516
  283. package/dist/schema.js.map +0 -1
  284. package/dist/snapshot/adapter.cjs +0 -31
  285. package/dist/snapshot/adapter.cjs.map +0 -1
  286. package/dist/snapshot/adapter.d.cts +0 -258
  287. package/dist/snapshot/adapter.d.cts.map +0 -1
  288. package/dist/snapshot/adapter.d.ts +0 -258
  289. package/dist/snapshot/adapter.d.ts.map +0 -1
  290. package/dist/snapshot/adapter.js +0 -27
  291. package/dist/snapshot/adapter.js.map +0 -1
  292. package/dist/snapshot/adapters/fallback.cjs +0 -453
  293. package/dist/snapshot/adapters/fallback.cjs.map +0 -1
  294. package/dist/snapshot/adapters/fallback.d.cts +0 -185
  295. package/dist/snapshot/adapters/fallback.d.cts.map +0 -1
  296. package/dist/snapshot/adapters/fallback.d.ts +0 -185
  297. package/dist/snapshot/adapters/fallback.d.ts.map +0 -1
  298. package/dist/snapshot/adapters/fallback.js +0 -446
  299. package/dist/snapshot/adapters/fallback.js.map +0 -1
  300. package/dist/snapshot/adapters/node-test.cjs +0 -301
  301. package/dist/snapshot/adapters/node-test.cjs.map +0 -1
  302. package/dist/snapshot/adapters/node-test.d.cts +0 -131
  303. package/dist/snapshot/adapters/node-test.d.cts.map +0 -1
  304. package/dist/snapshot/adapters/node-test.d.ts +0 -131
  305. package/dist/snapshot/adapters/node-test.d.ts.map +0 -1
  306. package/dist/snapshot/adapters/node-test.js +0 -297
  307. package/dist/snapshot/adapters/node-test.js.map +0 -1
  308. package/dist/snapshot/index.cjs +0 -61
  309. package/dist/snapshot/index.cjs.map +0 -1
  310. package/dist/snapshot/index.d.cts +0 -40
  311. package/dist/snapshot/index.d.cts.map +0 -1
  312. package/dist/snapshot/index.d.ts +0 -40
  313. package/dist/snapshot/index.d.ts.map +0 -1
  314. package/dist/snapshot/index.js +0 -44
  315. package/dist/snapshot/index.js.map +0 -1
  316. package/dist/snapshot/node-version.cjs +0 -49
  317. package/dist/snapshot/node-version.cjs.map +0 -1
  318. package/dist/snapshot/node-version.d.cts +0 -34
  319. package/dist/snapshot/node-version.d.cts.map +0 -1
  320. package/dist/snapshot/node-version.d.ts +0 -34
  321. package/dist/snapshot/node-version.d.ts.map +0 -1
  322. package/dist/snapshot/node-version.js +0 -44
  323. package/dist/snapshot/node-version.js.map +0 -1
  324. package/dist/snapshot/select-adapter.cjs +0 -170
  325. package/dist/snapshot/select-adapter.cjs.map +0 -1
  326. package/dist/snapshot/select-adapter.d.cts +0 -128
  327. package/dist/snapshot/select-adapter.d.cts.map +0 -1
  328. package/dist/snapshot/select-adapter.d.ts +0 -128
  329. package/dist/snapshot/select-adapter.d.ts.map +0 -1
  330. package/dist/snapshot/select-adapter.js +0 -164
  331. package/dist/snapshot/select-adapter.js.map +0 -1
  332. package/dist/snapshot/serializer.cjs +0 -246
  333. package/dist/snapshot/serializer.cjs.map +0 -1
  334. package/dist/snapshot/serializer.d.cts +0 -126
  335. package/dist/snapshot/serializer.d.cts.map +0 -1
  336. package/dist/snapshot/serializer.d.ts +0 -126
  337. package/dist/snapshot/serializer.d.ts.map +0 -1
  338. package/dist/snapshot/serializer.js +0 -238
  339. package/dist/snapshot/serializer.js.map +0 -1
  340. package/dist/standard-schema.cjs +0 -13
  341. package/dist/standard-schema.cjs.map +0 -1
  342. package/dist/standard-schema.d.cts +0 -192
  343. package/dist/standard-schema.d.cts.map +0 -1
  344. package/dist/standard-schema.d.ts +0 -192
  345. package/dist/standard-schema.d.ts.map +0 -1
  346. package/dist/standard-schema.js +0 -12
  347. package/dist/standard-schema.js.map +0 -1
  348. package/dist/types.cjs +0 -22
  349. package/dist/types.cjs.map +0 -1
  350. package/dist/types.d.cts +0 -905
  351. package/dist/types.d.cts.map +0 -1
  352. package/dist/types.d.ts +0 -905
  353. package/dist/types.d.ts.map +0 -1
  354. package/dist/types.js +0 -21
  355. package/dist/types.js.map +0 -1
  356. package/dist/use.cjs +0 -240
  357. package/dist/use.cjs.map +0 -1
  358. package/dist/use.d.cts +0 -8
  359. package/dist/use.d.cts.map +0 -1
  360. package/dist/use.d.ts +0 -8
  361. package/dist/use.d.ts.map +0 -1
  362. package/dist/use.js +0 -236
  363. package/dist/use.js.map +0 -1
  364. package/dist/util.cjs +0 -255
  365. package/dist/util.cjs.map +0 -1
  366. package/dist/util.d.cts +0 -141
  367. package/dist/util.d.cts.map +0 -1
  368. package/dist/util.d.ts +0 -141
  369. package/dist/util.d.ts.map +0 -1
  370. package/dist/util.js +0 -234
  371. package/dist/util.js.map +0 -1
  372. package/dist/value-to-schema.cjs +0 -537
  373. package/dist/value-to-schema.cjs.map +0 -1
  374. package/dist/value-to-schema.d.cts +0 -144
  375. package/dist/value-to-schema.d.cts.map +0 -1
  376. package/dist/value-to-schema.d.ts +0 -144
  377. package/dist/value-to-schema.d.ts.map +0 -1
  378. package/dist/value-to-schema.js +0 -533
  379. package/dist/value-to-schema.js.map +0 -1
@@ -1,44 +0,0 @@
1
- /**
2
- * Node.js version utilities for snapshot testing.
3
- *
4
- * @packageDocumentation
5
- */
6
- /**
7
- * Minimum Node.js major version required for snapshot testing with node:test.
8
- *
9
- * Node.js v22 is the first version with stable `assert.snapshot()` support in
10
- * the native test runner.
11
- */
12
- export const MIN_NODE_MAJOR_VERSION = 22;
13
- /**
14
- * Get the current Node.js major version.
15
- *
16
- * @function
17
- * @returns Major version number (e.g., 20, 22, 24)
18
- */
19
- export const getNodeMajorVersion = () => {
20
- const parts = process.versions.node.split('.');
21
- return Number(parts[0]) || 0;
22
- };
23
- /**
24
- * Check if the current Node.js version supports snapshot testing with
25
- * node:test.
26
- *
27
- * @returns `true` if Node.js version >= {@link MIN_NODE_MAJOR_VERSION}
28
- */
29
- export const supportsNodeTestSnapshots = getNodeMajorVersion() >= MIN_NODE_MAJOR_VERSION;
30
- /**
31
- * Assert that the Node.js version supports snapshot testing.
32
- *
33
- * @function
34
- * @throws {Error} If Node.js version is less than {@link MIN_NODE_MAJOR_VERSION}
35
- */
36
- export const assertNodeVersion = () => {
37
- const major = getNodeMajorVersion();
38
- if (major < MIN_NODE_MAJOR_VERSION) {
39
- throw new Error(`Snapshot testing with node:test requires Node.js v${MIN_NODE_MAJOR_VERSION} or later. ` +
40
- `Current version: v${process.versions.node}. ` +
41
- `Please upgrade Node.js or use a different snapshot adapter (e.g., pass an explicit snapshot name string instead of a test context).`);
42
- }
43
- };
44
- //# sourceMappingURL=node-version.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-version.js","sourceRoot":"","sources":["../../src/snapshot/node-version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAW,EAAE;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GACpC,mBAAmB,EAAE,IAAI,sBAAsB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAS,EAAE;IAC1C,MAAM,KAAK,GAAG,mBAAmB,EAAE,CAAC;IACpC,IAAI,KAAK,GAAG,sBAAsB,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,qDAAqD,sBAAsB,aAAa;YACtF,qBAAqB,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI;YAC9C,qIAAqI,CACxI,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
@@ -1,170 +0,0 @@
1
- "use strict";
2
- /**
3
- * Adapter selection logic for choosing the appropriate snapshot adapter.
4
- *
5
- * This module manages the registry of snapshot adapters and provides logic for
6
- * selecting the correct adapter based on the test context.
7
- *
8
- * @packageDocumentation
9
- */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.selectAdapter = exports.registerAdapter = exports.getRegisteredAdapters = void 0;
12
- const fallback_js_1 = require("./adapters/fallback.cjs");
13
- const node_test_js_1 = require("./adapters/node-test.cjs");
14
- /**
15
- * Registered adapters in priority order.
16
- *
17
- * Adapters are checked in order, and the first adapter that can handle the
18
- * context is selected. The fallback adapter should always be last as it accepts
19
- * most inputs.
20
- *
21
- * **Default order:**
22
- *
23
- * 1. Node:test adapter (most specific)
24
- * 2. Fallback adapter (always matches)
25
- */
26
- const adapters = [
27
- node_test_js_1.nodeTestAdapter,
28
- // jestVitestAdapter will be added in Phase 2
29
- fallback_js_1.fallbackAdapter, // Always last
30
- ];
31
- /**
32
- * Get all registered adapters (for debugging).
33
- *
34
- * Returns a read-only copy of the adapter list in priority order. This is
35
- * useful for debugging adapter selection or verifying that custom adapters have
36
- * been registered correctly.
37
- *
38
- * @example
39
- *
40
- * ```typescript
41
- * import { getRegisteredAdapters } from 'bupkis/snapshot';
42
- *
43
- * const adapters = getRegisteredAdapters();
44
- * console.log(
45
- * 'Registered adapters:',
46
- * adapters.map((a) => a.name),
47
- * );
48
- * // Output: ['node:test', 'fallback']
49
- * ```
50
- *
51
- * @example
52
- *
53
- * ```typescript
54
- * // After registering custom adapter
55
- * registerAdapter(customAdapter, 0);
56
- * const adapters = getRegisteredAdapters();
57
- * console.log(adapters.map((a) => a.name));
58
- * // Output: ['my-custom', 'node:test', 'fallback']
59
- * ```
60
- *
61
- * @function
62
- * @returns Read-only array of registered adapters
63
- */
64
- const getRegisteredAdapters = () => {
65
- return [...adapters];
66
- };
67
- exports.getRegisteredAdapters = getRegisteredAdapters;
68
- /**
69
- * Register a custom snapshot adapter.
70
- *
71
- * This allows plugins or custom code to add new snapshot adapters for
72
- * frameworks not supported out of the box.
73
- *
74
- * **Important:** If an adapter with the same name is already registered, it
75
- * will be removed before the new adapter is inserted.
76
- *
77
- * @example
78
- *
79
- * ```typescript
80
- * import { registerAdapter } from 'bupkis/snapshot';
81
- *
82
- * const customAdapter = {
83
- * name: 'my-framework',
84
- * canHandle: (context) => {
85
- * return (
86
- * context &&
87
- * typeof context === 'object' &&
88
- * 'myFrameworkMarker' in context
89
- * );
90
- * },
91
- * getContext: (context) => {
92
- * // Extract context from custom framework
93
- * },
94
- * assertSnapshot: (value, context, options) => {
95
- * // Perform snapshot assertion
96
- * },
97
- * };
98
- *
99
- * // Register with high priority (before node:test)
100
- * registerAdapter(customAdapter, 0);
101
- * ```
102
- *
103
- * @example
104
- *
105
- * ```typescript
106
- * // Register Jest adapter (Phase 2)
107
- * import { jestAdapter } from './adapters/jest.js';
108
- * registerAdapter(jestAdapter, 1); // After node:test, before fallback
109
- * ```
110
- *
111
- * @function
112
- * @param adapter - Custom adapter to register
113
- * @param priority - Priority index (lower = higher priority). Defaults to
114
- * inserting before fallback.
115
- */
116
- const registerAdapter = (adapter, priority = adapters.length - 1) => {
117
- // Remove if already registered
118
- const index = adapters.findIndex((a) => a.name === adapter.name);
119
- if (index !== -1) {
120
- adapters.splice(index, 1);
121
- }
122
- // Insert at specified priority
123
- adapters.splice(priority, 0, adapter);
124
- };
125
- exports.registerAdapter = registerAdapter;
126
- /**
127
- * Select the appropriate snapshot adapter for the given context.
128
- *
129
- * Iterates through registered adapters in priority order and returns the first
130
- * adapter whose `canHandle()` method returns `true` for the context.
131
- *
132
- * Since the fallback adapter is always last and accepts most inputs, this
133
- * function is guaranteed to return a valid adapter.
134
- *
135
- * @example
136
- *
137
- * ```typescript
138
- * import test from 'node:test';
139
- * import { selectAdapter } from 'bupkis/snapshot';
140
- *
141
- * test('my test', (t) => {
142
- * const adapter = selectAdapter(t);
143
- * console.log(adapter.name); // 'node:test'
144
- * adapter.assertSnapshot({ foo: 'bar' }, t);
145
- * });
146
- * ```
147
- *
148
- * @example
149
- *
150
- * ```typescript
151
- * // With explicit name (selects fallback)
152
- * const adapter = selectAdapter('my-snapshot-name');
153
- * console.log(adapter.name); // 'fallback'
154
- * ```
155
- *
156
- * @function
157
- * @param context - Test context object or explicit snapshot name
158
- * @returns Adapter that can handle the context
159
- */
160
- const selectAdapter = (context) => {
161
- for (const adapter of adapters) {
162
- if (adapter.canHandle(context)) {
163
- return adapter;
164
- }
165
- }
166
- // This should never happen since fallback always handles
167
- return fallback_js_1.fallbackAdapter;
168
- };
169
- exports.selectAdapter = selectAdapter;
170
- //# sourceMappingURL=select-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select-adapter.js","sourceRoot":"","sources":["../../src/snapshot/select-adapter.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAIH,yDAAyD;AACzD,2DAA0D;AAE1D;;;;;;;;;;;GAWG;AACH,MAAM,QAAQ,GAAsB;IAClC,8BAAe;IACf,6CAA6C;IAC7C,6BAAe,EAAE,cAAc;CAChC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACI,MAAM,qBAAqB,GAAG,GAAmC,EAAE;IACxE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AACvB,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACI,MAAM,eAAe,GAAG,CAC7B,OAAwB,EACxB,WAAmB,QAAQ,CAAC,MAAM,GAAG,CAAC,EAChC,EAAE;IACR,+BAA+B;IAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC;AAZW,QAAA,eAAe,mBAY1B;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACI,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAmB,EAAE;IACjE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,OAAO,6BAAe,CAAC;AACzB,CAAC,CAAC;AATW,QAAA,aAAa,iBASxB"}
@@ -1,128 +0,0 @@
1
- /**
2
- * Adapter selection logic for choosing the appropriate snapshot adapter.
3
- *
4
- * This module manages the registry of snapshot adapters and provides logic for
5
- * selecting the correct adapter based on the test context.
6
- *
7
- * @packageDocumentation
8
- */
9
- import type { SnapshotAdapter } from "./adapter.cjs";
10
- /**
11
- * Get all registered adapters (for debugging).
12
- *
13
- * Returns a read-only copy of the adapter list in priority order. This is
14
- * useful for debugging adapter selection or verifying that custom adapters have
15
- * been registered correctly.
16
- *
17
- * @example
18
- *
19
- * ```typescript
20
- * import { getRegisteredAdapters } from 'bupkis/snapshot';
21
- *
22
- * const adapters = getRegisteredAdapters();
23
- * console.log(
24
- * 'Registered adapters:',
25
- * adapters.map((a) => a.name),
26
- * );
27
- * // Output: ['node:test', 'fallback']
28
- * ```
29
- *
30
- * @example
31
- *
32
- * ```typescript
33
- * // After registering custom adapter
34
- * registerAdapter(customAdapter, 0);
35
- * const adapters = getRegisteredAdapters();
36
- * console.log(adapters.map((a) => a.name));
37
- * // Output: ['my-custom', 'node:test', 'fallback']
38
- * ```
39
- *
40
- * @function
41
- * @returns Read-only array of registered adapters
42
- */
43
- export declare const getRegisteredAdapters: () => ReadonlyArray<SnapshotAdapter>;
44
- /**
45
- * Register a custom snapshot adapter.
46
- *
47
- * This allows plugins or custom code to add new snapshot adapters for
48
- * frameworks not supported out of the box.
49
- *
50
- * **Important:** If an adapter with the same name is already registered, it
51
- * will be removed before the new adapter is inserted.
52
- *
53
- * @example
54
- *
55
- * ```typescript
56
- * import { registerAdapter } from 'bupkis/snapshot';
57
- *
58
- * const customAdapter = {
59
- * name: 'my-framework',
60
- * canHandle: (context) => {
61
- * return (
62
- * context &&
63
- * typeof context === 'object' &&
64
- * 'myFrameworkMarker' in context
65
- * );
66
- * },
67
- * getContext: (context) => {
68
- * // Extract context from custom framework
69
- * },
70
- * assertSnapshot: (value, context, options) => {
71
- * // Perform snapshot assertion
72
- * },
73
- * };
74
- *
75
- * // Register with high priority (before node:test)
76
- * registerAdapter(customAdapter, 0);
77
- * ```
78
- *
79
- * @example
80
- *
81
- * ```typescript
82
- * // Register Jest adapter (Phase 2)
83
- * import { jestAdapter } from './adapters/jest.js';
84
- * registerAdapter(jestAdapter, 1); // After node:test, before fallback
85
- * ```
86
- *
87
- * @function
88
- * @param adapter - Custom adapter to register
89
- * @param priority - Priority index (lower = higher priority). Defaults to
90
- * inserting before fallback.
91
- */
92
- export declare const registerAdapter: (adapter: SnapshotAdapter, priority?: number) => void;
93
- /**
94
- * Select the appropriate snapshot adapter for the given context.
95
- *
96
- * Iterates through registered adapters in priority order and returns the first
97
- * adapter whose `canHandle()` method returns `true` for the context.
98
- *
99
- * Since the fallback adapter is always last and accepts most inputs, this
100
- * function is guaranteed to return a valid adapter.
101
- *
102
- * @example
103
- *
104
- * ```typescript
105
- * import test from 'node:test';
106
- * import { selectAdapter } from 'bupkis/snapshot';
107
- *
108
- * test('my test', (t) => {
109
- * const adapter = selectAdapter(t);
110
- * console.log(adapter.name); // 'node:test'
111
- * adapter.assertSnapshot({ foo: 'bar' }, t);
112
- * });
113
- * ```
114
- *
115
- * @example
116
- *
117
- * ```typescript
118
- * // With explicit name (selects fallback)
119
- * const adapter = selectAdapter('my-snapshot-name');
120
- * console.log(adapter.name); // 'fallback'
121
- * ```
122
- *
123
- * @function
124
- * @param context - Test context object or explicit snapshot name
125
- * @returns Adapter that can handle the context
126
- */
127
- export declare const selectAdapter: (context: unknown) => SnapshotAdapter;
128
- //# sourceMappingURL=select-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select-adapter.d.ts","sourceRoot":"","sources":["../../src/snapshot/select-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAqB;AAuBpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,qBAAqB,QAAO,aAAa,CAAC,eAAe,CAErE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,eAAe,EACxB,WAAU,MAA4B,KACrC,IASF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,OAAO,KAAG,eAShD,CAAC"}
@@ -1,128 +0,0 @@
1
- /**
2
- * Adapter selection logic for choosing the appropriate snapshot adapter.
3
- *
4
- * This module manages the registry of snapshot adapters and provides logic for
5
- * selecting the correct adapter based on the test context.
6
- *
7
- * @packageDocumentation
8
- */
9
- import type { SnapshotAdapter } from "./adapter.js";
10
- /**
11
- * Get all registered adapters (for debugging).
12
- *
13
- * Returns a read-only copy of the adapter list in priority order. This is
14
- * useful for debugging adapter selection or verifying that custom adapters have
15
- * been registered correctly.
16
- *
17
- * @example
18
- *
19
- * ```typescript
20
- * import { getRegisteredAdapters } from 'bupkis/snapshot';
21
- *
22
- * const adapters = getRegisteredAdapters();
23
- * console.log(
24
- * 'Registered adapters:',
25
- * adapters.map((a) => a.name),
26
- * );
27
- * // Output: ['node:test', 'fallback']
28
- * ```
29
- *
30
- * @example
31
- *
32
- * ```typescript
33
- * // After registering custom adapter
34
- * registerAdapter(customAdapter, 0);
35
- * const adapters = getRegisteredAdapters();
36
- * console.log(adapters.map((a) => a.name));
37
- * // Output: ['my-custom', 'node:test', 'fallback']
38
- * ```
39
- *
40
- * @function
41
- * @returns Read-only array of registered adapters
42
- */
43
- export declare const getRegisteredAdapters: () => ReadonlyArray<SnapshotAdapter>;
44
- /**
45
- * Register a custom snapshot adapter.
46
- *
47
- * This allows plugins or custom code to add new snapshot adapters for
48
- * frameworks not supported out of the box.
49
- *
50
- * **Important:** If an adapter with the same name is already registered, it
51
- * will be removed before the new adapter is inserted.
52
- *
53
- * @example
54
- *
55
- * ```typescript
56
- * import { registerAdapter } from 'bupkis/snapshot';
57
- *
58
- * const customAdapter = {
59
- * name: 'my-framework',
60
- * canHandle: (context) => {
61
- * return (
62
- * context &&
63
- * typeof context === 'object' &&
64
- * 'myFrameworkMarker' in context
65
- * );
66
- * },
67
- * getContext: (context) => {
68
- * // Extract context from custom framework
69
- * },
70
- * assertSnapshot: (value, context, options) => {
71
- * // Perform snapshot assertion
72
- * },
73
- * };
74
- *
75
- * // Register with high priority (before node:test)
76
- * registerAdapter(customAdapter, 0);
77
- * ```
78
- *
79
- * @example
80
- *
81
- * ```typescript
82
- * // Register Jest adapter (Phase 2)
83
- * import { jestAdapter } from './adapters/jest.js';
84
- * registerAdapter(jestAdapter, 1); // After node:test, before fallback
85
- * ```
86
- *
87
- * @function
88
- * @param adapter - Custom adapter to register
89
- * @param priority - Priority index (lower = higher priority). Defaults to
90
- * inserting before fallback.
91
- */
92
- export declare const registerAdapter: (adapter: SnapshotAdapter, priority?: number) => void;
93
- /**
94
- * Select the appropriate snapshot adapter for the given context.
95
- *
96
- * Iterates through registered adapters in priority order and returns the first
97
- * adapter whose `canHandle()` method returns `true` for the context.
98
- *
99
- * Since the fallback adapter is always last and accepts most inputs, this
100
- * function is guaranteed to return a valid adapter.
101
- *
102
- * @example
103
- *
104
- * ```typescript
105
- * import test from 'node:test';
106
- * import { selectAdapter } from 'bupkis/snapshot';
107
- *
108
- * test('my test', (t) => {
109
- * const adapter = selectAdapter(t);
110
- * console.log(adapter.name); // 'node:test'
111
- * adapter.assertSnapshot({ foo: 'bar' }, t);
112
- * });
113
- * ```
114
- *
115
- * @example
116
- *
117
- * ```typescript
118
- * // With explicit name (selects fallback)
119
- * const adapter = selectAdapter('my-snapshot-name');
120
- * console.log(adapter.name); // 'fallback'
121
- * ```
122
- *
123
- * @function
124
- * @param context - Test context object or explicit snapshot name
125
- * @returns Adapter that can handle the context
126
- */
127
- export declare const selectAdapter: (context: unknown) => SnapshotAdapter;
128
- //# sourceMappingURL=select-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select-adapter.d.ts","sourceRoot":"","sources":["../../src/snapshot/select-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB;AAuBpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,qBAAqB,QAAO,aAAa,CAAC,eAAe,CAErE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,eAAe,EACxB,WAAU,MAA4B,KACrC,IASF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,OAAO,KAAG,eAShD,CAAC"}
@@ -1,164 +0,0 @@
1
- /**
2
- * Adapter selection logic for choosing the appropriate snapshot adapter.
3
- *
4
- * This module manages the registry of snapshot adapters and provides logic for
5
- * selecting the correct adapter based on the test context.
6
- *
7
- * @packageDocumentation
8
- */
9
- import { fallbackAdapter } from "./adapters/fallback.js";
10
- import { nodeTestAdapter } from "./adapters/node-test.js";
11
- /**
12
- * Registered adapters in priority order.
13
- *
14
- * Adapters are checked in order, and the first adapter that can handle the
15
- * context is selected. The fallback adapter should always be last as it accepts
16
- * most inputs.
17
- *
18
- * **Default order:**
19
- *
20
- * 1. Node:test adapter (most specific)
21
- * 2. Fallback adapter (always matches)
22
- */
23
- const adapters = [
24
- nodeTestAdapter,
25
- // jestVitestAdapter will be added in Phase 2
26
- fallbackAdapter, // Always last
27
- ];
28
- /**
29
- * Get all registered adapters (for debugging).
30
- *
31
- * Returns a read-only copy of the adapter list in priority order. This is
32
- * useful for debugging adapter selection or verifying that custom adapters have
33
- * been registered correctly.
34
- *
35
- * @example
36
- *
37
- * ```typescript
38
- * import { getRegisteredAdapters } from 'bupkis/snapshot';
39
- *
40
- * const adapters = getRegisteredAdapters();
41
- * console.log(
42
- * 'Registered adapters:',
43
- * adapters.map((a) => a.name),
44
- * );
45
- * // Output: ['node:test', 'fallback']
46
- * ```
47
- *
48
- * @example
49
- *
50
- * ```typescript
51
- * // After registering custom adapter
52
- * registerAdapter(customAdapter, 0);
53
- * const adapters = getRegisteredAdapters();
54
- * console.log(adapters.map((a) => a.name));
55
- * // Output: ['my-custom', 'node:test', 'fallback']
56
- * ```
57
- *
58
- * @function
59
- * @returns Read-only array of registered adapters
60
- */
61
- export const getRegisteredAdapters = () => {
62
- return [...adapters];
63
- };
64
- /**
65
- * Register a custom snapshot adapter.
66
- *
67
- * This allows plugins or custom code to add new snapshot adapters for
68
- * frameworks not supported out of the box.
69
- *
70
- * **Important:** If an adapter with the same name is already registered, it
71
- * will be removed before the new adapter is inserted.
72
- *
73
- * @example
74
- *
75
- * ```typescript
76
- * import { registerAdapter } from 'bupkis/snapshot';
77
- *
78
- * const customAdapter = {
79
- * name: 'my-framework',
80
- * canHandle: (context) => {
81
- * return (
82
- * context &&
83
- * typeof context === 'object' &&
84
- * 'myFrameworkMarker' in context
85
- * );
86
- * },
87
- * getContext: (context) => {
88
- * // Extract context from custom framework
89
- * },
90
- * assertSnapshot: (value, context, options) => {
91
- * // Perform snapshot assertion
92
- * },
93
- * };
94
- *
95
- * // Register with high priority (before node:test)
96
- * registerAdapter(customAdapter, 0);
97
- * ```
98
- *
99
- * @example
100
- *
101
- * ```typescript
102
- * // Register Jest adapter (Phase 2)
103
- * import { jestAdapter } from './adapters/jest.js';
104
- * registerAdapter(jestAdapter, 1); // After node:test, before fallback
105
- * ```
106
- *
107
- * @function
108
- * @param adapter - Custom adapter to register
109
- * @param priority - Priority index (lower = higher priority). Defaults to
110
- * inserting before fallback.
111
- */
112
- export const registerAdapter = (adapter, priority = adapters.length - 1) => {
113
- // Remove if already registered
114
- const index = adapters.findIndex((a) => a.name === adapter.name);
115
- if (index !== -1) {
116
- adapters.splice(index, 1);
117
- }
118
- // Insert at specified priority
119
- adapters.splice(priority, 0, adapter);
120
- };
121
- /**
122
- * Select the appropriate snapshot adapter for the given context.
123
- *
124
- * Iterates through registered adapters in priority order and returns the first
125
- * adapter whose `canHandle()` method returns `true` for the context.
126
- *
127
- * Since the fallback adapter is always last and accepts most inputs, this
128
- * function is guaranteed to return a valid adapter.
129
- *
130
- * @example
131
- *
132
- * ```typescript
133
- * import test from 'node:test';
134
- * import { selectAdapter } from 'bupkis/snapshot';
135
- *
136
- * test('my test', (t) => {
137
- * const adapter = selectAdapter(t);
138
- * console.log(adapter.name); // 'node:test'
139
- * adapter.assertSnapshot({ foo: 'bar' }, t);
140
- * });
141
- * ```
142
- *
143
- * @example
144
- *
145
- * ```typescript
146
- * // With explicit name (selects fallback)
147
- * const adapter = selectAdapter('my-snapshot-name');
148
- * console.log(adapter.name); // 'fallback'
149
- * ```
150
- *
151
- * @function
152
- * @param context - Test context object or explicit snapshot name
153
- * @returns Adapter that can handle the context
154
- */
155
- export const selectAdapter = (context) => {
156
- for (const adapter of adapters) {
157
- if (adapter.canHandle(context)) {
158
- return adapter;
159
- }
160
- }
161
- // This should never happen since fallback always handles
162
- return fallbackAdapter;
163
- };
164
- //# sourceMappingURL=select-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select-adapter.js","sourceRoot":"","sources":["../../src/snapshot/select-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,eAAe,EAAE,+BAA+B;AACzD,OAAO,EAAE,eAAe,EAAE,gCAAgC;AAE1D;;;;;;;;;;;GAWG;AACH,MAAM,QAAQ,GAAsB;IAClC,eAAe;IACf,6CAA6C;IAC7C,eAAe,EAAE,cAAc;CAChC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAmC,EAAE;IACxE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAwB,EACxB,WAAmB,QAAQ,CAAC,MAAM,GAAG,CAAC,EAChC,EAAE;IACR,+BAA+B;IAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAmB,EAAE;IACjE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC"}