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
package/dist/util.js DELETED
@@ -1,234 +0,0 @@
1
- /**
2
- * Utility functions.
3
- *
4
- * @module util
5
- * @category API
6
- * @example
7
- *
8
- * ```ts
9
- * import * as util from 'bupkis/util';
10
- * ```
11
- */
12
- export * from "./value-to-schema.js";
13
- const { isInteger, isNaN } = Number;
14
- /**
15
- * Retrieves the value at a given keypath from an object using dot or bracket
16
- * notation.
17
- *
18
- * Supports keypaths like:
19
- *
20
- * - `'foo.bar'` - dot notation
21
- * - `'foo[1].spam'` - bracket notation with array indices
22
- * - `'foo["bar-baz"].quux'` - bracket notation with quoted strings
23
- * - `"foo['bar-baz'].quux"` - bracket notation with single quotes
24
- *
25
- * This function cannot retrieve values associated with symbol keys.
26
- *
27
- * @example
28
- *
29
- * ```ts
30
- * const obj = {
31
- * foo: {
32
- * bar: 'hello',
33
- * 'bar-baz': { quux: 'world' },
34
- * },
35
- * arr: [{ spam: 'eggs' }],
36
- * };
37
- *
38
- * get(obj, 'foo.bar');
39
- * get(obj, 'arr[0].spam');
40
- * get(obj, 'foo["bar-baz"].quux');
41
- * get(obj, 'foo.nonexistent');
42
- * get(obj, 'foo.nonexistent', 'default');
43
- * ```
44
- *
45
- * @function
46
- * @param obj The object to retrieve the value from
47
- * @param keypath The keypath using dot or bracket notation
48
- * @param defaultValue Optional default value to return if the keypath is not
49
- * found
50
- * @returns The value at the keypath, or defaultValue if not found
51
- */
52
- export const get = (obj, keypath, defaultValue) => {
53
- if (typeof obj !== 'object' || obj === null || typeof keypath !== 'string') {
54
- return defaultValue;
55
- }
56
- const keys = parseKeypath(keypath);
57
- if (keys.length === 0) {
58
- return defaultValue;
59
- }
60
- let current = obj;
61
- for (const key of keys) {
62
- if (current == null || typeof current !== 'object') {
63
- return defaultValue;
64
- }
65
- const currentObj = current;
66
- if (!(key in currentObj)) {
67
- return defaultValue;
68
- }
69
- current = currentObj[key];
70
- }
71
- return current;
72
- };
73
- /**
74
- * Returns whether a value exists at a given keypath within an object using dot
75
- * or bracket notation.
76
- *
77
- * Supports keypaths like:
78
- *
79
- * - `'foo.bar'` - dot notation
80
- * - `'foo[1].spam'` - bracket notation with array indices
81
- * - `'foo["bar-baz"].quux'` - bracket notation with quoted strings
82
- * - `"foo['bar-baz'].quux"` - bracket notation with single quotes
83
- *
84
- * This function cannot consider values associated with symbol keys.
85
- *
86
- * @example
87
- *
88
- * ```ts
89
- * const obj = {
90
- * foo: {
91
- * bar: 'hello',
92
- * 'bar-baz': { quux: 'world' },
93
- * },
94
- * arr: [{ spam: 'eggs' }],
95
- * };
96
- *
97
- * has(obj, 'foo.bar');
98
- * has(obj, 'arr[0].spam');
99
- * has(obj, 'foo["bar-baz"].quux');
100
- * has(obj, 'foo.nonexistent');
101
- * ```
102
- *
103
- * @function
104
- * @param obj The object to examine the value from
105
- * @param keypath The keypath using dot or bracket notation
106
- * @returns `true` if the keypath exists, `false` otherwise
107
- */
108
- export const has = (obj, keypath) => {
109
- if (typeof obj !== 'object' || obj === null || typeof keypath !== 'string') {
110
- return false;
111
- }
112
- const keys = parseKeypath(keypath);
113
- if (keys.length === 0) {
114
- return false;
115
- }
116
- let current = obj;
117
- for (const key of keys) {
118
- if (current == null || typeof current !== 'object') {
119
- return false;
120
- }
121
- const currentObj = current;
122
- if (!(key in currentObj)) {
123
- return false;
124
- }
125
- current = currentObj[key];
126
- }
127
- return true;
128
- };
129
- /**
130
- * Maps an array of objects to an object keyed by the specified key.
131
- *
132
- * @function
133
- * @param collection Array of objects
134
- * @param key Name of key
135
- * @returns Object mapping key values to objects
136
- */
137
- export const keyBy = (collection, key) => {
138
- const result = {};
139
- for (const item of collection) {
140
- const keyValue = item[key];
141
- if (typeof keyValue === 'string' ||
142
- typeof keyValue === 'number' ||
143
- typeof keyValue === 'symbol') {
144
- result[String(keyValue)] = item;
145
- }
146
- }
147
- return result;
148
- };
149
- /**
150
- * Parses a keypath string into an array of individual keys, supporting dot and
151
- * bracket notation.
152
- *
153
- * Parsing rules:
154
- *
155
- * - Dot notation: Splits keys by `.` (e.g., `'foo.bar'` → `['foo', 'bar']`).
156
- * - Bracket notation: Extracts keys inside `[]`. If the key is a quoted string
157
- * (single or double quotes), the quotes are removed (e.g., `'foo["bar-baz"]'`
158
- * → `['foo', 'bar-baz']`). If the key is an integer (e.g., `'foo[0]'`), it is
159
- * parsed as a number.
160
- * - Mixed notation: Supports combinations (e.g., `'foo.bar[0].baz'` → `['foo',
161
- * 'bar', 0, 'baz']`).
162
- * - Quoted keys: Keys inside brackets can be quoted with single or double quotes.
163
- * Quotes are stripped, and the content is used as the key.
164
- * - Numeric keys: If a bracketed key is an integer, it is returned as a number;
165
- * otherwise, as a string.
166
- * - Whitespace inside brackets is preserved as part of the key.
167
- * - Does not support escape sequences inside quotes.
168
- *
169
- * Limitations:
170
- *
171
- * - Does not support symbol keys.
172
- * - Does not handle escape characters inside quoted keys.
173
- *
174
- * @example
175
- *
176
- * ```ts
177
- * parseKeypath('foo.bar'); // ['foo', 'bar']
178
- * parseKeypath('foo[0].baz'); // ['foo', 0, 'baz']
179
- * parseKeypath('foo["bar-baz"].quux'); // ['foo', 'bar-baz', 'quux']
180
- * parseKeypath("foo['bar-baz'].quux"); // ['foo', 'bar-baz', 'quux']
181
- * parseKeypath("arr[10]['spam']"); // ['arr', 10, 'spam']
182
- * ```
183
- *
184
- * @function
185
- * @param keypath The keypath string to parse, using dot and/or bracket
186
- * notation.
187
- * @returns An array of keys, where each key is a string or number. Bracketed
188
- * integer keys are returned as numbers; all others as strings.
189
- */
190
- export const parseKeypath = (keypath) => {
191
- const keys = [];
192
- let i = 0;
193
- while (i < keypath.length) {
194
- if (keypath[i] === '[') {
195
- i++;
196
- let key = '';
197
- let inQuotes = false;
198
- let quoteChar = '';
199
- while (i < keypath.length && (keypath[i] !== ']' || inQuotes)) {
200
- const char = keypath[i];
201
- if (!inQuotes && (char === '"' || char === "'")) {
202
- inQuotes = true;
203
- quoteChar = char;
204
- }
205
- else if (inQuotes && char === quoteChar) {
206
- inQuotes = false;
207
- quoteChar = '';
208
- }
209
- else {
210
- key += char;
211
- }
212
- i++;
213
- }
214
- i++;
215
- const numKey = Number(key);
216
- keys.push(isInteger(numKey) && !isNaN(numKey) ? numKey : key);
217
- }
218
- else if (keypath[i] === '.') {
219
- i++;
220
- }
221
- else {
222
- let key = '';
223
- while (i < keypath.length && keypath[i] !== '.' && keypath[i] !== '[') {
224
- key += keypath[i];
225
- i++;
226
- }
227
- if (key) {
228
- keys.push(key);
229
- }
230
- }
231
- }
232
- return keys;
233
- };
234
- //# sourceMappingURL=util.js.map
package/dist/util.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}