bupkis 0.18.1 → 0.18.2

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 (376) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/package.json +1 -4
  3. package/src/assertion/assertion-types.ts +4 -4
  4. package/src/assertion/impl/sync-parametric.ts +1 -1
  5. package/src/expect.ts +0 -4
  6. package/src/guards.ts +24 -24
  7. package/src/internal-schema.ts +16 -32
  8. package/src/value-to-schema.ts +1 -1
  9. package/dist/assertion/assertion-async.cjs +0 -268
  10. package/dist/assertion/assertion-async.cjs.map +0 -1
  11. package/dist/assertion/assertion-async.d.cts +0 -40
  12. package/dist/assertion/assertion-async.d.cts.map +0 -1
  13. package/dist/assertion/assertion-async.d.ts +0 -40
  14. package/dist/assertion/assertion-async.d.ts.map +0 -1
  15. package/dist/assertion/assertion-async.js +0 -259
  16. package/dist/assertion/assertion-async.js.map +0 -1
  17. package/dist/assertion/assertion-standard-schema-async.cjs +0 -132
  18. package/dist/assertion/assertion-standard-schema-async.cjs.map +0 -1
  19. package/dist/assertion/assertion-standard-schema-async.d.cts +0 -52
  20. package/dist/assertion/assertion-standard-schema-async.d.cts.map +0 -1
  21. package/dist/assertion/assertion-standard-schema-async.d.ts +0 -52
  22. package/dist/assertion/assertion-standard-schema-async.d.ts.map +0 -1
  23. package/dist/assertion/assertion-standard-schema-async.js +0 -128
  24. package/dist/assertion/assertion-standard-schema-async.js.map +0 -1
  25. package/dist/assertion/assertion-standard-schema-sync.cjs +0 -141
  26. package/dist/assertion/assertion-standard-schema-sync.cjs.map +0 -1
  27. package/dist/assertion/assertion-standard-schema-sync.d.cts +0 -52
  28. package/dist/assertion/assertion-standard-schema-sync.d.cts.map +0 -1
  29. package/dist/assertion/assertion-standard-schema-sync.d.ts +0 -52
  30. package/dist/assertion/assertion-standard-schema-sync.d.ts.map +0 -1
  31. package/dist/assertion/assertion-standard-schema-sync.js +0 -137
  32. package/dist/assertion/assertion-standard-schema-sync.js.map +0 -1
  33. package/dist/assertion/assertion-sync.cjs +0 -284
  34. package/dist/assertion/assertion-sync.cjs.map +0 -1
  35. package/dist/assertion/assertion-sync.d.cts +0 -60
  36. package/dist/assertion/assertion-sync.d.cts.map +0 -1
  37. package/dist/assertion/assertion-sync.d.ts +0 -60
  38. package/dist/assertion/assertion-sync.d.ts.map +0 -1
  39. package/dist/assertion/assertion-sync.js +0 -275
  40. package/dist/assertion/assertion-sync.js.map +0 -1
  41. package/dist/assertion/assertion-types.cjs +0 -20
  42. package/dist/assertion/assertion-types.cjs.map +0 -1
  43. package/dist/assertion/assertion-types.d.cts +0 -1086
  44. package/dist/assertion/assertion-types.d.cts.map +0 -1
  45. package/dist/assertion/assertion-types.d.ts +0 -1086
  46. package/dist/assertion/assertion-types.d.ts.map +0 -1
  47. package/dist/assertion/assertion-types.js +0 -19
  48. package/dist/assertion/assertion-types.js.map +0 -1
  49. package/dist/assertion/assertion.cjs +0 -382
  50. package/dist/assertion/assertion.cjs.map +0 -1
  51. package/dist/assertion/assertion.d.cts +0 -109
  52. package/dist/assertion/assertion.d.cts.map +0 -1
  53. package/dist/assertion/assertion.d.ts +0 -109
  54. package/dist/assertion/assertion.d.ts.map +0 -1
  55. package/dist/assertion/assertion.js +0 -375
  56. package/dist/assertion/assertion.js.map +0 -1
  57. package/dist/assertion/create.cjs +0 -148
  58. package/dist/assertion/create.cjs.map +0 -1
  59. package/dist/assertion/create.d.cts +0 -85
  60. package/dist/assertion/create.d.cts.map +0 -1
  61. package/dist/assertion/create.d.ts +0 -85
  62. package/dist/assertion/create.d.ts.map +0 -1
  63. package/dist/assertion/create.js +0 -143
  64. package/dist/assertion/create.js.map +0 -1
  65. package/dist/assertion/format-assertion-failure.cjs +0 -63
  66. package/dist/assertion/format-assertion-failure.cjs.map +0 -1
  67. package/dist/assertion/format-assertion-failure.d.cts +0 -21
  68. package/dist/assertion/format-assertion-failure.d.cts.map +0 -1
  69. package/dist/assertion/format-assertion-failure.d.ts +0 -21
  70. package/dist/assertion/format-assertion-failure.d.ts.map +0 -1
  71. package/dist/assertion/format-assertion-failure.js +0 -59
  72. package/dist/assertion/format-assertion-failure.js.map +0 -1
  73. package/dist/assertion/impl/assertion-util.cjs +0 -68
  74. package/dist/assertion/impl/assertion-util.cjs.map +0 -1
  75. package/dist/assertion/impl/assertion-util.d.cts +0 -36
  76. package/dist/assertion/impl/assertion-util.d.cts.map +0 -1
  77. package/dist/assertion/impl/assertion-util.d.ts +0 -36
  78. package/dist/assertion/impl/assertion-util.d.ts.map +0 -1
  79. package/dist/assertion/impl/assertion-util.js +0 -62
  80. package/dist/assertion/impl/assertion-util.js.map +0 -1
  81. package/dist/assertion/impl/async-iterable.cjs +0 -627
  82. package/dist/assertion/impl/async-iterable.cjs.map +0 -1
  83. package/dist/assertion/impl/async-iterable.d.cts +0 -406
  84. package/dist/assertion/impl/async-iterable.d.cts.map +0 -1
  85. package/dist/assertion/impl/async-iterable.d.ts +0 -406
  86. package/dist/assertion/impl/async-iterable.d.ts.map +0 -1
  87. package/dist/assertion/impl/async-iterable.js +0 -624
  88. package/dist/assertion/impl/async-iterable.js.map +0 -1
  89. package/dist/assertion/impl/async-parametric.cjs +0 -412
  90. package/dist/assertion/impl/async-parametric.cjs.map +0 -1
  91. package/dist/assertion/impl/async-parametric.d.cts +0 -278
  92. package/dist/assertion/impl/async-parametric.d.cts.map +0 -1
  93. package/dist/assertion/impl/async-parametric.d.ts +0 -278
  94. package/dist/assertion/impl/async-parametric.d.ts.map +0 -1
  95. package/dist/assertion/impl/async-parametric.js +0 -409
  96. package/dist/assertion/impl/async-parametric.js.map +0 -1
  97. package/dist/assertion/impl/async.cjs +0 -56
  98. package/dist/assertion/impl/async.cjs.map +0 -1
  99. package/dist/assertion/impl/async.d.cts +0 -179
  100. package/dist/assertion/impl/async.d.cts.map +0 -1
  101. package/dist/assertion/impl/async.d.ts +0 -179
  102. package/dist/assertion/impl/async.d.ts.map +0 -1
  103. package/dist/assertion/impl/async.js +0 -39
  104. package/dist/assertion/impl/async.js.map +0 -1
  105. package/dist/assertion/impl/index.cjs +0 -37
  106. package/dist/assertion/impl/index.cjs.map +0 -1
  107. package/dist/assertion/impl/index.d.cts +0 -21
  108. package/dist/assertion/impl/index.d.cts.map +0 -1
  109. package/dist/assertion/impl/index.d.ts +0 -21
  110. package/dist/assertion/impl/index.d.ts.map +0 -1
  111. package/dist/assertion/impl/index.js +0 -21
  112. package/dist/assertion/impl/index.js.map +0 -1
  113. package/dist/assertion/impl/iteration-util.cjs +0 -297
  114. package/dist/assertion/impl/iteration-util.cjs.map +0 -1
  115. package/dist/assertion/impl/iteration-util.d.cts +0 -12
  116. package/dist/assertion/impl/iteration-util.d.cts.map +0 -1
  117. package/dist/assertion/impl/iteration-util.d.ts +0 -12
  118. package/dist/assertion/impl/iteration-util.d.ts.map +0 -1
  119. package/dist/assertion/impl/iteration-util.js +0 -282
  120. package/dist/assertion/impl/iteration-util.js.map +0 -1
  121. package/dist/assertion/impl/snapshot.cjs +0 -276
  122. package/dist/assertion/impl/snapshot.cjs.map +0 -1
  123. package/dist/assertion/impl/snapshot.d.cts +0 -278
  124. package/dist/assertion/impl/snapshot.d.cts.map +0 -1
  125. package/dist/assertion/impl/snapshot.d.ts +0 -278
  126. package/dist/assertion/impl/snapshot.d.ts.map +0 -1
  127. package/dist/assertion/impl/snapshot.js +0 -273
  128. package/dist/assertion/impl/snapshot.js.map +0 -1
  129. package/dist/assertion/impl/sync-basic.cjs +0 -553
  130. package/dist/assertion/impl/sync-basic.cjs.map +0 -1
  131. package/dist/assertion/impl/sync-basic.d.cts +0 -528
  132. package/dist/assertion/impl/sync-basic.d.cts.map +0 -1
  133. package/dist/assertion/impl/sync-basic.d.ts +0 -528
  134. package/dist/assertion/impl/sync-basic.d.ts.map +0 -1
  135. package/dist/assertion/impl/sync-basic.js +0 -550
  136. package/dist/assertion/impl/sync-basic.js.map +0 -1
  137. package/dist/assertion/impl/sync-collection.cjs +0 -856
  138. package/dist/assertion/impl/sync-collection.cjs.map +0 -1
  139. package/dist/assertion/impl/sync-collection.d.cts +0 -607
  140. package/dist/assertion/impl/sync-collection.d.cts.map +0 -1
  141. package/dist/assertion/impl/sync-collection.d.ts +0 -607
  142. package/dist/assertion/impl/sync-collection.d.ts.map +0 -1
  143. package/dist/assertion/impl/sync-collection.js +0 -850
  144. package/dist/assertion/impl/sync-collection.js.map +0 -1
  145. package/dist/assertion/impl/sync-date.cjs +0 -341
  146. package/dist/assertion/impl/sync-date.cjs.map +0 -1
  147. package/dist/assertion/impl/sync-date.d.cts +0 -209
  148. package/dist/assertion/impl/sync-date.d.cts.map +0 -1
  149. package/dist/assertion/impl/sync-date.d.ts +0 -209
  150. package/dist/assertion/impl/sync-date.d.ts.map +0 -1
  151. package/dist/assertion/impl/sync-date.js +0 -338
  152. package/dist/assertion/impl/sync-date.js.map +0 -1
  153. package/dist/assertion/impl/sync-esoteric.cjs +0 -214
  154. package/dist/assertion/impl/sync-esoteric.cjs.map +0 -1
  155. package/dist/assertion/impl/sync-esoteric.d.cts +0 -191
  156. package/dist/assertion/impl/sync-esoteric.d.cts.map +0 -1
  157. package/dist/assertion/impl/sync-esoteric.d.ts +0 -191
  158. package/dist/assertion/impl/sync-esoteric.d.ts.map +0 -1
  159. package/dist/assertion/impl/sync-esoteric.js +0 -211
  160. package/dist/assertion/impl/sync-esoteric.js.map +0 -1
  161. package/dist/assertion/impl/sync-iterable.cjs +0 -512
  162. package/dist/assertion/impl/sync-iterable.cjs.map +0 -1
  163. package/dist/assertion/impl/sync-iterable.d.cts +0 -334
  164. package/dist/assertion/impl/sync-iterable.d.cts.map +0 -1
  165. package/dist/assertion/impl/sync-iterable.d.ts +0 -334
  166. package/dist/assertion/impl/sync-iterable.d.ts.map +0 -1
  167. package/dist/assertion/impl/sync-iterable.js +0 -509
  168. package/dist/assertion/impl/sync-iterable.js.map +0 -1
  169. package/dist/assertion/impl/sync-parametric.cjs +0 -805
  170. package/dist/assertion/impl/sync-parametric.cjs.map +0 -1
  171. package/dist/assertion/impl/sync-parametric.d.cts +0 -560
  172. package/dist/assertion/impl/sync-parametric.d.cts.map +0 -1
  173. package/dist/assertion/impl/sync-parametric.d.ts +0 -560
  174. package/dist/assertion/impl/sync-parametric.d.ts.map +0 -1
  175. package/dist/assertion/impl/sync-parametric.js +0 -802
  176. package/dist/assertion/impl/sync-parametric.js.map +0 -1
  177. package/dist/assertion/impl/sync.cjs +0 -214
  178. package/dist/assertion/impl/sync.cjs.map +0 -1
  179. package/dist/assertion/impl/sync.d.cts +0 -512
  180. package/dist/assertion/impl/sync.d.cts.map +0 -1
  181. package/dist/assertion/impl/sync.d.ts +0 -512
  182. package/dist/assertion/impl/sync.d.ts.map +0 -1
  183. package/dist/assertion/impl/sync.js +0 -197
  184. package/dist/assertion/impl/sync.js.map +0 -1
  185. package/dist/assertion/index.cjs +0 -38
  186. package/dist/assertion/index.cjs.map +0 -1
  187. package/dist/assertion/index.d.cts +0 -18
  188. package/dist/assertion/index.d.cts.map +0 -1
  189. package/dist/assertion/index.d.ts +0 -18
  190. package/dist/assertion/index.d.ts.map +0 -1
  191. package/dist/assertion/index.js +0 -17
  192. package/dist/assertion/index.js.map +0 -1
  193. package/dist/assertion/slotify.cjs +0 -165
  194. package/dist/assertion/slotify.cjs.map +0 -1
  195. package/dist/assertion/slotify.d.cts +0 -11
  196. package/dist/assertion/slotify.d.cts.map +0 -1
  197. package/dist/assertion/slotify.d.ts +0 -11
  198. package/dist/assertion/slotify.d.ts.map +0 -1
  199. package/dist/assertion/slotify.js +0 -161
  200. package/dist/assertion/slotify.js.map +0 -1
  201. package/dist/bootstrap.cjs +0 -43
  202. package/dist/bootstrap.cjs.map +0 -1
  203. package/dist/bootstrap.d.cts +0 -27
  204. package/dist/bootstrap.d.cts.map +0 -1
  205. package/dist/bootstrap.d.ts +0 -27
  206. package/dist/bootstrap.d.ts.map +0 -1
  207. package/dist/bootstrap.js +0 -40
  208. package/dist/bootstrap.js.map +0 -1
  209. package/dist/constant.cjs +0 -82
  210. package/dist/constant.cjs.map +0 -1
  211. package/dist/constant.d.cts +0 -69
  212. package/dist/constant.d.cts.map +0 -1
  213. package/dist/constant.d.ts +0 -69
  214. package/dist/constant.d.ts.map +0 -1
  215. package/dist/constant.js +0 -79
  216. package/dist/constant.js.map +0 -1
  217. package/dist/diff.cjs +0 -340
  218. package/dist/diff.cjs.map +0 -1
  219. package/dist/diff.d.cts +0 -51
  220. package/dist/diff.d.cts.map +0 -1
  221. package/dist/diff.d.ts +0 -51
  222. package/dist/diff.d.ts.map +0 -1
  223. package/dist/diff.js +0 -334
  224. package/dist/diff.js.map +0 -1
  225. package/dist/error.cjs +0 -204
  226. package/dist/error.cjs.map +0 -1
  227. package/dist/error.d.cts +0 -212
  228. package/dist/error.d.cts.map +0 -1
  229. package/dist/error.d.ts +0 -212
  230. package/dist/error.d.ts.map +0 -1
  231. package/dist/error.js +0 -191
  232. package/dist/error.js.map +0 -1
  233. package/dist/expect.cjs +0 -590
  234. package/dist/expect.cjs.map +0 -1
  235. package/dist/expect.d.cts +0 -138
  236. package/dist/expect.d.cts.map +0 -1
  237. package/dist/expect.d.ts +0 -138
  238. package/dist/expect.d.ts.map +0 -1
  239. package/dist/expect.js +0 -582
  240. package/dist/expect.js.map +0 -1
  241. package/dist/guards.cjs +0 -297
  242. package/dist/guards.cjs.map +0 -1
  243. package/dist/guards.d.cts +0 -231
  244. package/dist/guards.d.cts.map +0 -1
  245. package/dist/guards.d.ts +0 -231
  246. package/dist/guards.d.ts.map +0 -1
  247. package/dist/guards.js +0 -277
  248. package/dist/guards.js.map +0 -1
  249. package/dist/index.cjs +0 -111
  250. package/dist/index.cjs.map +0 -1
  251. package/dist/index.d.cts +0 -448
  252. package/dist/index.d.cts.map +0 -1
  253. package/dist/index.d.ts +0 -448
  254. package/dist/index.d.ts.map +0 -1
  255. package/dist/index.js +0 -71
  256. package/dist/index.js.map +0 -1
  257. package/dist/internal-schema.cjs +0 -253
  258. package/dist/internal-schema.cjs.map +0 -1
  259. package/dist/internal-schema.d.cts +0 -8
  260. package/dist/internal-schema.d.cts.map +0 -1
  261. package/dist/internal-schema.d.ts +0 -8
  262. package/dist/internal-schema.d.ts.map +0 -1
  263. package/dist/internal-schema.js +0 -248
  264. package/dist/internal-schema.js.map +0 -1
  265. package/dist/metadata.cjs +0 -57
  266. package/dist/metadata.cjs.map +0 -1
  267. package/dist/metadata.d.cts +0 -27
  268. package/dist/metadata.d.cts.map +0 -1
  269. package/dist/metadata.d.ts +0 -27
  270. package/dist/metadata.d.ts.map +0 -1
  271. package/dist/metadata.js +0 -54
  272. package/dist/metadata.js.map +0 -1
  273. package/dist/schema.cjs +0 -1522
  274. package/dist/schema.cjs.map +0 -1
  275. package/dist/schema.d.cts +0 -1196
  276. package/dist/schema.d.cts.map +0 -1
  277. package/dist/schema.d.ts +0 -1196
  278. package/dist/schema.d.ts.map +0 -1
  279. package/dist/schema.js +0 -1516
  280. package/dist/schema.js.map +0 -1
  281. package/dist/snapshot/adapter.cjs +0 -31
  282. package/dist/snapshot/adapter.cjs.map +0 -1
  283. package/dist/snapshot/adapter.d.cts +0 -258
  284. package/dist/snapshot/adapter.d.cts.map +0 -1
  285. package/dist/snapshot/adapter.d.ts +0 -258
  286. package/dist/snapshot/adapter.d.ts.map +0 -1
  287. package/dist/snapshot/adapter.js +0 -27
  288. package/dist/snapshot/adapter.js.map +0 -1
  289. package/dist/snapshot/adapters/fallback.cjs +0 -453
  290. package/dist/snapshot/adapters/fallback.cjs.map +0 -1
  291. package/dist/snapshot/adapters/fallback.d.cts +0 -185
  292. package/dist/snapshot/adapters/fallback.d.cts.map +0 -1
  293. package/dist/snapshot/adapters/fallback.d.ts +0 -185
  294. package/dist/snapshot/adapters/fallback.d.ts.map +0 -1
  295. package/dist/snapshot/adapters/fallback.js +0 -446
  296. package/dist/snapshot/adapters/fallback.js.map +0 -1
  297. package/dist/snapshot/adapters/node-test.cjs +0 -301
  298. package/dist/snapshot/adapters/node-test.cjs.map +0 -1
  299. package/dist/snapshot/adapters/node-test.d.cts +0 -131
  300. package/dist/snapshot/adapters/node-test.d.cts.map +0 -1
  301. package/dist/snapshot/adapters/node-test.d.ts +0 -131
  302. package/dist/snapshot/adapters/node-test.d.ts.map +0 -1
  303. package/dist/snapshot/adapters/node-test.js +0 -297
  304. package/dist/snapshot/adapters/node-test.js.map +0 -1
  305. package/dist/snapshot/index.cjs +0 -61
  306. package/dist/snapshot/index.cjs.map +0 -1
  307. package/dist/snapshot/index.d.cts +0 -40
  308. package/dist/snapshot/index.d.cts.map +0 -1
  309. package/dist/snapshot/index.d.ts +0 -40
  310. package/dist/snapshot/index.d.ts.map +0 -1
  311. package/dist/snapshot/index.js +0 -44
  312. package/dist/snapshot/index.js.map +0 -1
  313. package/dist/snapshot/node-version.cjs +0 -49
  314. package/dist/snapshot/node-version.cjs.map +0 -1
  315. package/dist/snapshot/node-version.d.cts +0 -34
  316. package/dist/snapshot/node-version.d.cts.map +0 -1
  317. package/dist/snapshot/node-version.d.ts +0 -34
  318. package/dist/snapshot/node-version.d.ts.map +0 -1
  319. package/dist/snapshot/node-version.js +0 -44
  320. package/dist/snapshot/node-version.js.map +0 -1
  321. package/dist/snapshot/select-adapter.cjs +0 -170
  322. package/dist/snapshot/select-adapter.cjs.map +0 -1
  323. package/dist/snapshot/select-adapter.d.cts +0 -128
  324. package/dist/snapshot/select-adapter.d.cts.map +0 -1
  325. package/dist/snapshot/select-adapter.d.ts +0 -128
  326. package/dist/snapshot/select-adapter.d.ts.map +0 -1
  327. package/dist/snapshot/select-adapter.js +0 -164
  328. package/dist/snapshot/select-adapter.js.map +0 -1
  329. package/dist/snapshot/serializer.cjs +0 -246
  330. package/dist/snapshot/serializer.cjs.map +0 -1
  331. package/dist/snapshot/serializer.d.cts +0 -126
  332. package/dist/snapshot/serializer.d.cts.map +0 -1
  333. package/dist/snapshot/serializer.d.ts +0 -126
  334. package/dist/snapshot/serializer.d.ts.map +0 -1
  335. package/dist/snapshot/serializer.js +0 -238
  336. package/dist/snapshot/serializer.js.map +0 -1
  337. package/dist/standard-schema.cjs +0 -13
  338. package/dist/standard-schema.cjs.map +0 -1
  339. package/dist/standard-schema.d.cts +0 -192
  340. package/dist/standard-schema.d.cts.map +0 -1
  341. package/dist/standard-schema.d.ts +0 -192
  342. package/dist/standard-schema.d.ts.map +0 -1
  343. package/dist/standard-schema.js +0 -12
  344. package/dist/standard-schema.js.map +0 -1
  345. package/dist/types.cjs +0 -22
  346. package/dist/types.cjs.map +0 -1
  347. package/dist/types.d.cts +0 -905
  348. package/dist/types.d.cts.map +0 -1
  349. package/dist/types.d.ts +0 -905
  350. package/dist/types.d.ts.map +0 -1
  351. package/dist/types.js +0 -21
  352. package/dist/types.js.map +0 -1
  353. package/dist/use.cjs +0 -240
  354. package/dist/use.cjs.map +0 -1
  355. package/dist/use.d.cts +0 -8
  356. package/dist/use.d.cts.map +0 -1
  357. package/dist/use.d.ts +0 -8
  358. package/dist/use.d.ts.map +0 -1
  359. package/dist/use.js +0 -236
  360. package/dist/use.js.map +0 -1
  361. package/dist/util.cjs +0 -255
  362. package/dist/util.cjs.map +0 -1
  363. package/dist/util.d.cts +0 -141
  364. package/dist/util.d.cts.map +0 -1
  365. package/dist/util.d.ts +0 -141
  366. package/dist/util.d.ts.map +0 -1
  367. package/dist/util.js +0 -234
  368. package/dist/util.js.map +0 -1
  369. package/dist/value-to-schema.cjs +0 -537
  370. package/dist/value-to-schema.cjs.map +0 -1
  371. package/dist/value-to-schema.d.cts +0 -144
  372. package/dist/value-to-schema.d.cts.map +0 -1
  373. package/dist/value-to-schema.d.ts +0 -144
  374. package/dist/value-to-schema.d.ts.map +0 -1
  375. package/dist/value-to-schema.js +0 -533
  376. package/dist/value-to-schema.js.map +0 -1
@@ -1,537 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.valueToSchemaOptionsForDeepEqual = exports.valueToSchemaOptionsForSatisfies = exports.valueToSchema = void 0;
4
- const zod_1 = require("zod");
5
- const error_js_1 = require("./error.cjs");
6
- const guards_js_1 = require("./guards.cjs");
7
- const schema_js_1 = require("./schema.cjs");
8
- const { isNaN } = Number;
9
- const { entries, freeze, hasOwn, keys } = Object;
10
- const { isArray } = Array;
11
- /**
12
- * Recursively converts an arbitrary value to a Zod v4 schema that would
13
- * validate values with the same structure.
14
- *
15
- * This function analyzes the runtime value and generates a corresponding Zod
16
- * schema that captures the value's structure and type information. It handles
17
- * primitives, objects, arrays, functions, and various built-in types, with
18
- * support for circular reference detection.
19
- *
20
- * @example
21
- *
22
- * ```typescript
23
- * // Primitive types
24
- * valueToSchema('hello'); // z.string()
25
- * valueToSchema(42); // z.number()
26
- * valueToSchema(true); // z.boolean()
27
- *
28
- * // Objects
29
- * valueToSchema({ name: 'John', age: 30 });
30
- * // z.object({ name: z.string(), age: z.number() })
31
- *
32
- * // Arrays
33
- * valueToSchema(['a', 'b', 'c']); // z.array(z.string())
34
- * valueToSchema([1, 'mixed']); // z.array(z.union([z.number(), z.string()]))
35
- *
36
- * // Nested structures
37
- * valueToSchema({ users: [{ name: 'John' }] });
38
- * // z.object({ users: z.array(z.object({ name: z.string() })) })
39
- * ```
40
- *
41
- * @function
42
- * @param value - The value to convert to a schema
43
- * @param options - Configuration options for schema generation
44
- * @param visited - Internal WeakSet for circular reference detection
45
- * @returns A Zod schema that validates values matching the input's structure.
46
- * This value is unfortunately untyped due to the complexity involved. But the
47
- * schema works!
48
- */
49
- const valueToSchema = (value, options = {}, visited = new WeakSet()) => {
50
- const { _currentDepth = 0, literalEmptyArrays = false, literalEmptyObjects = false, literalPrimitives = false, literalRegExp = false, literalTuples = false, maxDepth = 10, noMixedArrays = false, permissivePropertyCheck = false, strict = false, } = options;
51
- // Prevent infinite recursion
52
- if (_currentDepth >= maxDepth) {
53
- return zod_1.z.unknown();
54
- }
55
- // Handle primitives
56
- if (value === null) {
57
- return zod_1.z.null();
58
- }
59
- if (value === undefined) {
60
- return literalPrimitives
61
- ? zod_1.z.custom((val) => val === undefined, {
62
- message: 'Expected undefined',
63
- })
64
- : zod_1.z.undefined();
65
- }
66
- if (isNaN(value)) {
67
- return zod_1.z.nan();
68
- }
69
- if (value === Infinity || value === -Infinity) {
70
- return zod_1.z.literal(value);
71
- }
72
- const valueType = typeof value;
73
- switch (valueType) {
74
- case 'bigint':
75
- return literalPrimitives ? zod_1.z.literal(value) : zod_1.z.bigint();
76
- case 'boolean':
77
- return literalPrimitives ? zod_1.z.literal(value) : zod_1.z.boolean();
78
- case 'function':
79
- // Check if this is an ExpectItExecutor
80
- if ((0, guards_js_1.isExpectItExecutor)(value)) {
81
- // Only allow nested assertions when strict is false (e.g., "to satisfy" semantics)
82
- if (strict) {
83
- throw new error_js_1.SatisfactionError('ExpectItExecutor (expect.it) functions are not allowed in strict mode. ' +
84
- 'Use "to satisfy" assertions for nested expectations.');
85
- }
86
- // Return a schema that executes the ExpectItExecutor when validated
87
- return zod_1.z.custom((subject) => {
88
- try {
89
- value(subject);
90
- return true;
91
- }
92
- catch {
93
- return false;
94
- }
95
- }, {
96
- message: 'Failed expect.it assertion',
97
- });
98
- }
99
- return zod_1.z.function();
100
- case 'number':
101
- return literalPrimitives ? zod_1.z.literal(value) : zod_1.z.number();
102
- case 'string':
103
- return literalPrimitives ? zod_1.z.literal(value) : zod_1.z.string();
104
- case 'symbol':
105
- return zod_1.z.symbol();
106
- }
107
- // Handle objects
108
- if (typeof value === 'object' && value !== null) {
109
- // Check for circular references
110
- if (visited.has(value)) {
111
- // Return a recursive schema reference or unknown for circular refs
112
- return zod_1.z.unknown();
113
- }
114
- visited.add(value);
115
- try {
116
- // Handle built-in object types
117
- if (value instanceof Date) {
118
- // Check if it's a valid date
119
- if (isNaN(value.getTime())) {
120
- // For invalid dates, use a literal or custom validator
121
- return zod_1.z.custom((val) => val instanceof Date && isNaN(val.getTime()), {
122
- message: 'Expected an invalid Date',
123
- });
124
- }
125
- return zod_1.z.date();
126
- }
127
- if (value instanceof RegExp) {
128
- if (literalRegExp) {
129
- return schema_js_1.RegExpSchema;
130
- }
131
- return zod_1.z.coerce.string().regex(value);
132
- }
133
- if (value instanceof Map) {
134
- if (literalPrimitives) {
135
- const expectedMap = value;
136
- const expectedEntries = [...expectedMap.entries()];
137
- const entrySchemas = expectedEntries.map(([k, v]) => ({
138
- key: (0, exports.valueToSchema)(k, { ...options, _currentDepth: _currentDepth + 1 }, visited),
139
- value: (0, exports.valueToSchema)(v, { ...options, _currentDepth: _currentDepth + 1 }, visited),
140
- }));
141
- return zod_1.z.custom((val) => {
142
- if (!(val instanceof Map)) {
143
- return false;
144
- }
145
- if (val.size !== expectedMap.size) {
146
- return false;
147
- }
148
- const actualEntries = [...val.entries()];
149
- for (let i = 0; i < expectedEntries.length; i++) {
150
- const [_expectedKey, _expectedValue] = expectedEntries[i];
151
- const actualEntry = actualEntries.find(([ak]) => {
152
- const keySchema = entrySchemas[i].key;
153
- return keySchema.safeParse(ak).success;
154
- });
155
- if (!actualEntry) {
156
- return false;
157
- }
158
- const valueSchema = entrySchemas[i].value;
159
- if (!valueSchema.safeParse(actualEntry[1]).success) {
160
- return false;
161
- }
162
- }
163
- return true;
164
- }, {
165
- message: `Expected Map with ${expectedMap.size} entries matching the expected structure`,
166
- });
167
- }
168
- return zod_1.z.instanceof(Map);
169
- }
170
- if (value instanceof Set) {
171
- if (literalPrimitives) {
172
- const expectedSet = value;
173
- const expectedValues = [...expectedSet.values()];
174
- const valueSchemas = expectedValues.map((v) => (0, exports.valueToSchema)(v, { ...options, _currentDepth: _currentDepth + 1 }, visited));
175
- return zod_1.z.custom((val) => {
176
- if (!(val instanceof Set)) {
177
- return false;
178
- }
179
- if (val.size !== expectedSet.size) {
180
- return false;
181
- }
182
- const actualValues = [...val.values()];
183
- for (let i = 0; i < expectedValues.length; i++) {
184
- const schema = valueSchemas[i];
185
- const found = actualValues.some((av) => schema.safeParse(av).success);
186
- if (!found) {
187
- return false;
188
- }
189
- }
190
- return true;
191
- }, {
192
- message: `Expected Set with ${expectedSet.size} values matching the expected structure`,
193
- });
194
- }
195
- return zod_1.z.instanceof(Set);
196
- }
197
- if (value instanceof WeakMap) {
198
- return zod_1.z.instanceof(WeakMap);
199
- }
200
- if (value instanceof WeakSet) {
201
- return zod_1.z.instanceof(WeakSet);
202
- }
203
- if (value instanceof Error) {
204
- return zod_1.z.instanceof(Error);
205
- }
206
- if ((0, guards_js_1.isPromiseLike)(value)) {
207
- return schema_js_1.WrappedPromiseLikeSchema;
208
- }
209
- // Handle arrays
210
- if (isArray(value)) {
211
- // For arrays, we need to preserve undefined values while allowing
212
- // other elements to use the original literalPrimitives setting
213
- const filteredValue = value; // Always process all elements
214
- if (filteredValue.length === 0) {
215
- // When literalEmptyArrays is false, empty arrays match any array
216
- if (!literalEmptyArrays) {
217
- return zod_1.z.array(zod_1.z.unknown());
218
- }
219
- // For literal empty arrays, use z.tuple() if literalTuples is enabled
220
- if (literalTuples) {
221
- return zod_1.z.tuple([]);
222
- }
223
- return zod_1.z.array(zod_1.z.never());
224
- }
225
- const elementSchemas = filteredValue.map((item) => {
226
- // Use literal mode for undefined values to preserve them exactly,
227
- // but use the original setting for other values
228
- const itemLiteralPrimitives = item === undefined ? true : literalPrimitives;
229
- return (0, exports.valueToSchema)(item, {
230
- ...options,
231
- _currentDepth: _currentDepth + 1,
232
- literalPrimitives: itemLiteralPrimitives,
233
- // Disable permissive property check for array elements to avoid
234
- // conflicts in union schemas (permissive z.any() would accept
235
- // array elements meant for other branches)
236
- permissivePropertyCheck: false,
237
- }, visited);
238
- });
239
- // Use z.tuple() if literalTuples is enabled
240
- if (literalTuples) {
241
- return zod_1.z.tuple(elementSchemas);
242
- }
243
- if (!noMixedArrays) {
244
- // Helper function to generate structural keys for schemas
245
- /**
246
- * @function
247
- */
248
- const getSchemaKey = (zodType) => {
249
- const schema = zodType;
250
- if ((0, guards_js_1.isZodType)(schema, 'literal')) {
251
- return `${schema.constructor.name}:${String(schema.def.values)}`;
252
- }
253
- if ((0, guards_js_1.isZodType)(schema, 'array')) {
254
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
255
- const elementKey = getSchemaKey(schema.def.element);
256
- return `ZodArray<${elementKey}>`;
257
- }
258
- if ((0, guards_js_1.isZodType)(schema, 'object')) {
259
- // For objects, create a key based on the property keys and their types
260
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
261
- const shape = schema.def.shape;
262
- const shapeKeys = keys(shape)
263
- .sort()
264
- .map((key) => {
265
- const propSchema = shape[key];
266
- return `${key}:${getSchemaKey(propSchema)}`;
267
- });
268
- return `ZodObject<{${shapeKeys.join(',')}}>`;
269
- }
270
- if ((0, guards_js_1.isZodType)(schema, 'union')) {
271
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
272
- const optionKeys = schema.def.options
273
- .map((option) => getSchemaKey(option))
274
- .sort();
275
- return `ZodUnion<[${optionKeys.join(',')}]>`;
276
- }
277
- // For other types, use the constructor name
278
- return schema.constructor.name;
279
- };
280
- const seenSchemaKeys = new Set();
281
- const uniqueSchemas = [];
282
- for (const schema of elementSchemas) {
283
- const schemaKey = getSchemaKey(schema);
284
- if (!seenSchemaKeys.has(schemaKey)) {
285
- seenSchemaKeys.add(schemaKey);
286
- uniqueSchemas.push(schema);
287
- }
288
- }
289
- if (uniqueSchemas.length === 1) {
290
- return zod_1.z.array(uniqueSchemas[0]);
291
- }
292
- else {
293
- return zod_1.z.array(zod_1.z.union(uniqueSchemas));
294
- }
295
- }
296
- else {
297
- // Use the first element's schema for all elements
298
- return zod_1.z.array(elementSchemas[0]);
299
- }
300
- }
301
- // Handle plain objects
302
- if ((0, guards_js_1.isNonNullObject)(value)) {
303
- const schemaShape = {};
304
- const undefinedKeys = [];
305
- // Handle __proto__ specially - Zod ignores it in z.object() shapes,
306
- // so we validate it separately via superRefine
307
- let protoSchema = null;
308
- if (hasOwn(value, '__proto__')) {
309
- const protoValue = value['__proto__'];
310
- protoSchema = (0, exports.valueToSchema)(protoValue, { ...options, _currentDepth: _currentDepth + 1 }, visited);
311
- }
312
- for (const [key, val] of entries(value)) {
313
- if ((0, guards_js_1.isString)(key)) {
314
- // Skip __proto__ - handled separately since Zod ignores it in object shapes
315
- if (key === '__proto__') {
316
- continue;
317
- }
318
- // Skip undefined values unless we're in literalPrimitives mode
319
- // This prevents objects with only undefined values from matching any object
320
- if (val === undefined && !literalPrimitives) {
321
- continue;
322
- }
323
- if (val === undefined && literalPrimitives) {
324
- // Track keys that should have undefined values
325
- undefinedKeys.push(key);
326
- schemaShape[key] = zod_1.z.undefined();
327
- }
328
- else {
329
- schemaShape[key] = (0, exports.valueToSchema)(val, {
330
- ...options,
331
- _currentDepth: _currentDepth + 1,
332
- }, visited);
333
- }
334
- }
335
- }
336
- // When permissivePropertyCheck is enabled, use a custom validator that
337
- // checks properties via `in` operator. This allows validating properties
338
- // on any value type (functions, arrays, etc.) not just plain objects.
339
- if (permissivePropertyCheck && !strict) {
340
- const capturedSchemaShape = schemaShape;
341
- const capturedProtoSchema = protoSchema;
342
- const capturedUndefinedKeys = undefinedKeys;
343
- return zod_1.z.any().superRefine((val, ctx) => {
344
- // Can't use `in` operator on primitives
345
- if (val == null ||
346
- (typeof val !== 'object' && typeof val !== 'function')) {
347
- ctx.addIssue({
348
- code: 'custom',
349
- message: `Expected a value with properties, but received ${val === null ? 'null' : typeof val}`,
350
- });
351
- return;
352
- }
353
- // Check __proto__ if expected
354
- // Cast is safe - we've verified val is object or function above
355
- const valAsObject = val;
356
- if (capturedProtoSchema) {
357
- if (!hasOwn(valAsObject, '__proto__')) {
358
- ctx.addIssue({
359
- code: 'custom',
360
- message: 'Expected property "__proto__" to exist',
361
- path: ['__proto__'],
362
- });
363
- }
364
- else {
365
- const actualProto = val['__proto__'];
366
- const protoResult = capturedProtoSchema.safeParse(actualProto);
367
- if (!protoResult.success) {
368
- for (const issue of protoResult.error.issues) {
369
- ctx.addIssue({
370
- ...issue,
371
- path: ['__proto__', ...issue.path],
372
- });
373
- }
374
- }
375
- }
376
- }
377
- // Check each expected property
378
- for (const [key, schema] of entries(capturedSchemaShape)) {
379
- if (!(key in val)) {
380
- ctx.addIssue({
381
- code: 'custom',
382
- message: `Expected property "${key}" to exist`,
383
- path: [key],
384
- });
385
- continue;
386
- }
387
- // Property access can throw for reserved properties on strict mode
388
- // functions (e.g., 'arguments', 'caller', 'callee')
389
- let propValue;
390
- try {
391
- propValue = val[key];
392
- }
393
- catch {
394
- ctx.addIssue({
395
- code: 'custom',
396
- message: `Property "${key}" exists but cannot be accessed`,
397
- path: [key],
398
- });
399
- continue;
400
- }
401
- const result = schema.safeParse(propValue);
402
- if (!result.success) {
403
- for (const issue of result.error.issues) {
404
- ctx.addIssue({
405
- ...issue,
406
- path: [key, ...issue.path],
407
- });
408
- }
409
- }
410
- }
411
- // Check undefined keys exist with undefined value
412
- for (const key of capturedUndefinedKeys) {
413
- if (!hasOwn(valAsObject, key)) {
414
- ctx.addIssue({
415
- code: 'custom',
416
- message: `Expected property "${key}" to exist with value undefined`,
417
- path: [key],
418
- });
419
- }
420
- }
421
- });
422
- }
423
- // Create the base object schema (standard Zod object validation)
424
- const baseSchema = strict
425
- ? zod_1.z.strictObject(schemaShape)
426
- : zod_1.z.looseObject(schemaShape);
427
- // When __proto__ is present, we MUST use z.custom() because Zod strips
428
- // __proto__ before it reaches superRefine. z.custom() receives the raw input.
429
- if (protoSchema) {
430
- const capturedProtoSchema = protoSchema;
431
- const capturedUndefinedKeys = undefinedKeys;
432
- const needsUndefinedValidation = capturedUndefinedKeys.length > 0 && literalPrimitives;
433
- return zod_1.z.custom((val) => {
434
- if (typeof val !== 'object' || val === null) {
435
- return false;
436
- }
437
- // Validate __proto__ BEFORE Zod can strip it
438
- if (!hasOwn(val, '__proto__')) {
439
- return false;
440
- }
441
- const actualProto = val['__proto__'];
442
- if (!capturedProtoSchema.safeParse(actualProto).success) {
443
- return false;
444
- }
445
- // Validate the rest of the object via the base schema
446
- if (!baseSchema.safeParse(val).success) {
447
- return false;
448
- }
449
- // Validate undefined keys if needed
450
- if (needsUndefinedValidation) {
451
- for (const key of capturedUndefinedKeys) {
452
- if (!hasOwn(val, key)) {
453
- return false;
454
- }
455
- }
456
- }
457
- return true;
458
- }, {
459
- message: 'Expected object to have own "__proto__" property',
460
- });
461
- }
462
- // Apply refinements for undefined keys (no __proto__ case)
463
- const needsUndefinedKeyValidation = undefinedKeys.length > 0 && literalPrimitives;
464
- if (needsUndefinedKeyValidation) {
465
- return baseSchema.superRefine((data, ctx) => {
466
- if (typeof data !== 'object' || data === null) {
467
- ctx.addIssue({
468
- code: 'custom',
469
- message: 'Expected an object',
470
- });
471
- return;
472
- }
473
- const obj = data;
474
- // Validate undefined keys exist
475
- for (const key of undefinedKeys) {
476
- if (!hasOwn(obj, key)) {
477
- ctx.addIssue({
478
- code: 'custom',
479
- message: `Expected property "${key}" to exist with value undefined`,
480
- path: [key],
481
- });
482
- }
483
- }
484
- });
485
- }
486
- // Check if this is an empty object and literalEmptyObjects is enabled
487
- if (keys(schemaShape).length === 0 && literalEmptyObjects) {
488
- // Create a schema that only matches empty objects
489
- return zod_1.z.custom((val) => (0, guards_js_1.isObject)(val) && keys(val).length === 0, {
490
- message: 'Expected an empty object with no own properties',
491
- });
492
- }
493
- return baseSchema;
494
- }
495
- // Handle other object types (ArrayBuffer, etc.)
496
- return zod_1.z.custom((val) => typeof val === 'object' && val !== null, { message: 'Expected an object' });
497
- }
498
- finally {
499
- visited.delete(value);
500
- }
501
- }
502
- // Fallback for unknown types
503
- return zod_1.z.unknown();
504
- };
505
- exports.valueToSchema = valueToSchema;
506
- /**
507
- * Predefined options for {@link valueToSchema} optimized for object satisfaction
508
- * checks.
509
- *
510
- * Uses literal primitives and tuples for exact matching while allowing extra
511
- * properties.
512
- */
513
- exports.valueToSchemaOptionsForSatisfies = freeze({
514
- literalEmptyArrays: false,
515
- literalEmptyObjects: true,
516
- literalPrimitives: true,
517
- literalRegExp: false,
518
- literalTuples: true,
519
- permissivePropertyCheck: true,
520
- strict: false,
521
- });
522
- /**
523
- * Predefined options for {@link valueToSchema} optimized for deep equality
524
- * checks.
525
- *
526
- * Uses literal primitives, regexp, and tuples with strict validation for exact
527
- * matching.
528
- */
529
- exports.valueToSchemaOptionsForDeepEqual = freeze({
530
- literalEmptyArrays: true,
531
- literalEmptyObjects: true,
532
- literalPrimitives: true,
533
- literalRegExp: true,
534
- literalTuples: true,
535
- strict: true,
536
- });
537
- //# sourceMappingURL=value-to-schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"value-to-schema.js","sourceRoot":"","sources":["../src/value-to-schema.ts"],"names":[],"mappings":"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"}