@jcoreio/zod-forms 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (521) hide show
  1. package/FieldPath.d.ts +26 -0
  2. package/FieldPath.d.ts.map +1 -0
  3. package/FieldPath.js +155 -0
  4. package/FieldPath.js.map +1 -0
  5. package/FieldPath.mjs +138 -0
  6. package/FieldPath.mjs.map +1 -0
  7. package/FormAction.d.ts +15 -0
  8. package/FormAction.d.ts.map +1 -0
  9. package/FormAction.js +6 -0
  10. package/FormAction.js.map +1 -0
  11. package/FormAction.mjs +2 -0
  12. package/FormAction.mjs.map +1 -0
  13. package/FormContext.d.ts +39 -0
  14. package/FormContext.d.ts.map +1 -0
  15. package/FormContext.js +10 -0
  16. package/FormContext.js.map +1 -0
  17. package/FormContext.mjs +3 -0
  18. package/FormContext.mjs.map +1 -0
  19. package/FormState.d.ts +31 -0
  20. package/FormState.d.ts.map +1 -0
  21. package/FormState.js +6 -0
  22. package/FormState.js.map +1 -0
  23. package/FormState.mjs +2 -0
  24. package/FormState.mjs.map +1 -0
  25. package/FormStateContext.d.ts +8 -0
  26. package/FormStateContext.d.ts.map +1 -0
  27. package/FormStateContext.js +10 -0
  28. package/FormStateContext.js.map +1 -0
  29. package/FormStateContext.mjs +3 -0
  30. package/FormStateContext.mjs.map +1 -0
  31. package/LICENSE.md +21 -0
  32. package/README.md +154 -0
  33. package/actions/addHandlers.d.ts +15 -0
  34. package/actions/addHandlers.d.ts.map +1 -0
  35. package/actions/addHandlers.js +16 -0
  36. package/actions/addHandlers.js.map +1 -0
  37. package/actions/addHandlers.mjs +7 -0
  38. package/actions/addHandlers.mjs.map +1 -0
  39. package/actions/arrayActions.d.ts +113 -0
  40. package/actions/arrayActions.d.ts.map +1 -0
  41. package/actions/arrayActions.js +146 -0
  42. package/actions/arrayActions.js.map +1 -0
  43. package/actions/arrayActions.mjs +120 -0
  44. package/actions/arrayActions.mjs.map +1 -0
  45. package/actions/initialize.d.ts +13 -0
  46. package/actions/initialize.d.ts.map +1 -0
  47. package/actions/initialize.js +16 -0
  48. package/actions/initialize.js.map +1 -0
  49. package/actions/initialize.mjs +7 -0
  50. package/actions/initialize.mjs.map +1 -0
  51. package/actions/removeHandlers.d.ts +10 -0
  52. package/actions/removeHandlers.d.ts.map +1 -0
  53. package/actions/removeHandlers.js +16 -0
  54. package/actions/removeHandlers.js.map +1 -0
  55. package/actions/removeHandlers.mjs +7 -0
  56. package/actions/removeHandlers.mjs.map +1 -0
  57. package/actions/setMeta.d.ts +9 -0
  58. package/actions/setMeta.d.ts.map +1 -0
  59. package/actions/setMeta.js +14 -0
  60. package/actions/setMeta.js.map +1 -0
  61. package/actions/setMeta.mjs +8 -0
  62. package/actions/setMeta.mjs.map +1 -0
  63. package/actions/setMounted.d.ts +6 -0
  64. package/actions/setMounted.d.ts.map +1 -0
  65. package/actions/setMounted.js +13 -0
  66. package/actions/setMounted.js.map +1 -0
  67. package/actions/setMounted.mjs +7 -0
  68. package/actions/setMounted.mjs.map +1 -0
  69. package/actions/setRawValue.d.ts +9 -0
  70. package/actions/setRawValue.d.ts.map +1 -0
  71. package/actions/setRawValue.js +14 -0
  72. package/actions/setRawValue.js.map +1 -0
  73. package/actions/setRawValue.mjs +8 -0
  74. package/actions/setRawValue.mjs.map +1 -0
  75. package/actions/setSubmitStatus.d.ts +14 -0
  76. package/actions/setSubmitStatus.d.ts.map +1 -0
  77. package/actions/setSubmitStatus.js +16 -0
  78. package/actions/setSubmitStatus.js.map +1 -0
  79. package/actions/setSubmitStatus.mjs +7 -0
  80. package/actions/setSubmitStatus.mjs.map +1 -0
  81. package/actions/setValue.d.ts +12 -0
  82. package/actions/setValue.d.ts.map +1 -0
  83. package/actions/setValue.js +18 -0
  84. package/actions/setValue.js.map +1 -0
  85. package/actions/setValue.mjs +9 -0
  86. package/actions/setValue.mjs.map +1 -0
  87. package/actions/submit.d.ts +5 -0
  88. package/actions/submit.d.ts.map +1 -0
  89. package/actions/submit.js +12 -0
  90. package/actions/submit.js.map +1 -0
  91. package/actions/submit.mjs +6 -0
  92. package/actions/submit.mjs.map +1 -0
  93. package/actions/submitSucceeded.d.ts +5 -0
  94. package/actions/submitSucceeded.d.ts.map +1 -0
  95. package/actions/submitSucceeded.js +12 -0
  96. package/actions/submitSucceeded.js.map +1 -0
  97. package/actions/submitSucceeded.mjs +6 -0
  98. package/actions/submitSucceeded.mjs.map +1 -0
  99. package/createFormMiddleware.d.ts +6 -0
  100. package/createFormMiddleware.d.ts.map +1 -0
  101. package/createFormMiddleware.js +186 -0
  102. package/createFormMiddleware.js.map +1 -0
  103. package/createFormMiddleware.mjs +53 -0
  104. package/createFormMiddleware.mjs.map +1 -0
  105. package/createFormProvider.d.ts +7 -0
  106. package/createFormProvider.d.ts.map +1 -0
  107. package/createFormProvider.js +85 -0
  108. package/createFormProvider.js.map +1 -0
  109. package/createFormProvider.mjs +63 -0
  110. package/createFormProvider.mjs.map +1 -0
  111. package/createFormReducer.d.ts +9 -0
  112. package/createFormReducer.d.ts.map +1 -0
  113. package/createFormReducer.js +95 -0
  114. package/createFormReducer.js.map +1 -0
  115. package/createFormReducer.mjs +84 -0
  116. package/createFormReducer.mjs.map +1 -0
  117. package/createSelectFieldErrorMap.d.ts +32 -0
  118. package/createSelectFieldErrorMap.d.ts.map +1 -0
  119. package/createSelectFieldErrorMap.js +43 -0
  120. package/createSelectFieldErrorMap.js.map +1 -0
  121. package/createSelectFieldErrorMap.mjs +24 -0
  122. package/createSelectFieldErrorMap.mjs.map +1 -0
  123. package/createSelectFormStatus.d.ts +89 -0
  124. package/createSelectFormStatus.d.ts.map +1 -0
  125. package/createSelectFormStatus.js +54 -0
  126. package/createSelectFormStatus.js.map +1 -0
  127. package/createSelectFormStatus.mjs +28 -0
  128. package/createSelectFormStatus.mjs.map +1 -0
  129. package/createSelectFormValues.d.ts +45 -0
  130. package/createSelectFormValues.d.ts.map +1 -0
  131. package/createSelectFormValues.js +24 -0
  132. package/createSelectFormValues.js.map +1 -0
  133. package/createSelectFormValues.mjs +10 -0
  134. package/createSelectFormValues.mjs.map +1 -0
  135. package/createZodForm.d.ts +33 -0
  136. package/createZodForm.d.ts.map +1 -0
  137. package/createZodForm.js +51 -0
  138. package/createZodForm.js.map +1 -0
  139. package/createZodForm.mjs +46 -0
  140. package/createZodForm.mjs.map +1 -0
  141. package/index.d.ts +14 -0
  142. package/index.d.ts.map +1 -0
  143. package/index.js +76 -0
  144. package/index.js.map +1 -0
  145. package/index.mjs +11 -0
  146. package/index.mjs.map +1 -0
  147. package/initFormState.d.ts +4 -0
  148. package/initFormState.d.ts.map +1 -0
  149. package/initFormState.js +22 -0
  150. package/initFormState.js.map +1 -0
  151. package/initFormState.mjs +16 -0
  152. package/initFormState.mjs.map +1 -0
  153. package/package.json +49 -0
  154. package/reducers/addHandlers.d.ts +24 -0
  155. package/reducers/addHandlers.d.ts.map +1 -0
  156. package/reducers/addHandlers.js +24 -0
  157. package/reducers/addHandlers.js.map +1 -0
  158. package/reducers/addHandlers.mjs +21 -0
  159. package/reducers/addHandlers.mjs.map +1 -0
  160. package/reducers/arrayInsert.d.ts +7 -0
  161. package/reducers/arrayInsert.d.ts.map +1 -0
  162. package/reducers/arrayInsert.js +16 -0
  163. package/reducers/arrayInsert.js.map +1 -0
  164. package/reducers/arrayInsert.mjs +12 -0
  165. package/reducers/arrayInsert.mjs.map +1 -0
  166. package/reducers/arrayInsertRaw.d.ts +7 -0
  167. package/reducers/arrayInsertRaw.d.ts.map +1 -0
  168. package/reducers/arrayInsertRaw.js +22 -0
  169. package/reducers/arrayInsertRaw.js.map +1 -0
  170. package/reducers/arrayInsertRaw.mjs +14 -0
  171. package/reducers/arrayInsertRaw.mjs.map +1 -0
  172. package/reducers/arrayMove.d.ts +8 -0
  173. package/reducers/arrayMove.d.ts.map +1 -0
  174. package/reducers/arrayMove.js +25 -0
  175. package/reducers/arrayMove.js.map +1 -0
  176. package/reducers/arrayMove.mjs +16 -0
  177. package/reducers/arrayMove.mjs.map +1 -0
  178. package/reducers/arrayPop.d.ts +7 -0
  179. package/reducers/arrayPop.d.ts.map +1 -0
  180. package/reducers/arrayPop.js +13 -0
  181. package/reducers/arrayPop.js.map +1 -0
  182. package/reducers/arrayPop.mjs +5 -0
  183. package/reducers/arrayPop.mjs.map +1 -0
  184. package/reducers/arrayPush.d.ts +7 -0
  185. package/reducers/arrayPush.d.ts.map +1 -0
  186. package/reducers/arrayPush.js +15 -0
  187. package/reducers/arrayPush.js.map +1 -0
  188. package/reducers/arrayPush.mjs +11 -0
  189. package/reducers/arrayPush.mjs.map +1 -0
  190. package/reducers/arrayPushRaw.d.ts +7 -0
  191. package/reducers/arrayPushRaw.d.ts.map +1 -0
  192. package/reducers/arrayPushRaw.js +17 -0
  193. package/reducers/arrayPushRaw.js.map +1 -0
  194. package/reducers/arrayPushRaw.mjs +9 -0
  195. package/reducers/arrayPushRaw.mjs.map +1 -0
  196. package/reducers/arrayRemove.d.ts +7 -0
  197. package/reducers/arrayRemove.d.ts.map +1 -0
  198. package/reducers/arrayRemove.js +21 -0
  199. package/reducers/arrayRemove.js.map +1 -0
  200. package/reducers/arrayRemove.mjs +13 -0
  201. package/reducers/arrayRemove.mjs.map +1 -0
  202. package/reducers/arrayRemoveAll.d.ts +7 -0
  203. package/reducers/arrayRemoveAll.d.ts.map +1 -0
  204. package/reducers/arrayRemoveAll.js +14 -0
  205. package/reducers/arrayRemoveAll.js.map +1 -0
  206. package/reducers/arrayRemoveAll.mjs +8 -0
  207. package/reducers/arrayRemoveAll.mjs.map +1 -0
  208. package/reducers/arrayShift.d.ts +7 -0
  209. package/reducers/arrayShift.d.ts.map +1 -0
  210. package/reducers/arrayShift.js +14 -0
  211. package/reducers/arrayShift.js.map +1 -0
  212. package/reducers/arrayShift.mjs +8 -0
  213. package/reducers/arrayShift.mjs.map +1 -0
  214. package/reducers/arraySplice.d.ts +7 -0
  215. package/reducers/arraySplice.d.ts.map +1 -0
  216. package/reducers/arraySplice.js +20 -0
  217. package/reducers/arraySplice.js.map +1 -0
  218. package/reducers/arraySplice.mjs +14 -0
  219. package/reducers/arraySplice.mjs.map +1 -0
  220. package/reducers/arraySpliceRaw.d.ts +7 -0
  221. package/reducers/arraySpliceRaw.d.ts.map +1 -0
  222. package/reducers/arraySpliceRaw.js +26 -0
  223. package/reducers/arraySpliceRaw.js.map +1 -0
  224. package/reducers/arraySpliceRaw.mjs +18 -0
  225. package/reducers/arraySpliceRaw.mjs.map +1 -0
  226. package/reducers/arraySwap.d.ts +8 -0
  227. package/reducers/arraySwap.d.ts.map +1 -0
  228. package/reducers/arraySwap.js +27 -0
  229. package/reducers/arraySwap.js.map +1 -0
  230. package/reducers/arraySwap.mjs +18 -0
  231. package/reducers/arraySwap.mjs.map +1 -0
  232. package/reducers/arrayUnshift.d.ts +7 -0
  233. package/reducers/arrayUnshift.d.ts.map +1 -0
  234. package/reducers/arrayUnshift.js +15 -0
  235. package/reducers/arrayUnshift.js.map +1 -0
  236. package/reducers/arrayUnshift.mjs +11 -0
  237. package/reducers/arrayUnshift.mjs.map +1 -0
  238. package/reducers/arrayUnshiftRaw.d.ts +7 -0
  239. package/reducers/arrayUnshiftRaw.d.ts.map +1 -0
  240. package/reducers/arrayUnshiftRaw.js +17 -0
  241. package/reducers/arrayUnshiftRaw.js.map +1 -0
  242. package/reducers/arrayUnshiftRaw.mjs +9 -0
  243. package/reducers/arrayUnshiftRaw.mjs.map +1 -0
  244. package/reducers/initialize.d.ts +46 -0
  245. package/reducers/initialize.d.ts.map +1 -0
  246. package/reducers/initialize.js +46 -0
  247. package/reducers/initialize.js.map +1 -0
  248. package/reducers/initialize.mjs +38 -0
  249. package/reducers/initialize.mjs.map +1 -0
  250. package/reducers/removeHandlers.d.ts +24 -0
  251. package/reducers/removeHandlers.d.ts.map +1 -0
  252. package/reducers/removeHandlers.js +24 -0
  253. package/reducers/removeHandlers.js.map +1 -0
  254. package/reducers/removeHandlers.mjs +21 -0
  255. package/reducers/removeHandlers.mjs.map +1 -0
  256. package/reducers/setMeta.d.ts +6 -0
  257. package/reducers/setMeta.d.ts.map +1 -0
  258. package/reducers/setMeta.js +28 -0
  259. package/reducers/setMeta.js.map +1 -0
  260. package/reducers/setMeta.mjs +21 -0
  261. package/reducers/setMeta.mjs.map +1 -0
  262. package/reducers/setRawValue.d.ts +27 -0
  263. package/reducers/setRawValue.d.ts.map +1 -0
  264. package/reducers/setRawValue.js +35 -0
  265. package/reducers/setRawValue.js.map +1 -0
  266. package/reducers/setRawValue.mjs +26 -0
  267. package/reducers/setRawValue.mjs.map +1 -0
  268. package/reducers/setSubmitStatus.d.ts +24 -0
  269. package/reducers/setSubmitStatus.d.ts.map +1 -0
  270. package/reducers/setSubmitStatus.js +18 -0
  271. package/reducers/setSubmitStatus.js.map +1 -0
  272. package/reducers/setSubmitStatus.mjs +12 -0
  273. package/reducers/setSubmitStatus.mjs.map +1 -0
  274. package/reducers/setValue.d.ts +28 -0
  275. package/reducers/setValue.d.ts.map +1 -0
  276. package/reducers/setValue.js +41 -0
  277. package/reducers/setValue.js.map +1 -0
  278. package/reducers/setValue.mjs +32 -0
  279. package/reducers/setValue.mjs.map +1 -0
  280. package/reducers/submitSucceeded.d.ts +23 -0
  281. package/reducers/submitSucceeded.d.ts.map +1 -0
  282. package/reducers/submitSucceeded.js +22 -0
  283. package/reducers/submitSucceeded.js.map +1 -0
  284. package/reducers/submitSucceeded.mjs +13 -0
  285. package/reducers/submitSucceeded.mjs.map +1 -0
  286. package/reducers/util/getInverseArrayElementSchema.d.ts +3 -0
  287. package/reducers/util/getInverseArrayElementSchema.d.ts.map +1 -0
  288. package/reducers/util/getInverseArrayElementSchema.js +14 -0
  289. package/reducers/util/getInverseArrayElementSchema.js.map +1 -0
  290. package/reducers/util/getInverseArrayElementSchema.mjs +8 -0
  291. package/reducers/util/getInverseArrayElementSchema.mjs.map +1 -0
  292. package/reducers/util/updateRawArray.d.ts +7 -0
  293. package/reducers/util/updateRawArray.d.ts.map +1 -0
  294. package/reducers/util/updateRawArray.js +14 -0
  295. package/reducers/util/updateRawArray.js.map +1 -0
  296. package/reducers/util/updateRawArray.mjs +8 -0
  297. package/reducers/util/updateRawArray.mjs.map +1 -0
  298. package/src/FieldPath.ts +215 -0
  299. package/src/FormAction.ts +26 -0
  300. package/src/FormContext.ts +44 -0
  301. package/src/FormState.ts +36 -0
  302. package/src/FormStateContext.ts +13 -0
  303. package/src/actions/addHandlers.ts +23 -0
  304. package/src/actions/arrayActions.ts +183 -0
  305. package/src/actions/initialize.ts +16 -0
  306. package/src/actions/removeHandlers.ts +13 -0
  307. package/src/actions/setMeta.ts +17 -0
  308. package/src/actions/setMounted.ts +8 -0
  309. package/src/actions/setRawValue.ts +17 -0
  310. package/src/actions/setSubmitStatus.ts +26 -0
  311. package/src/actions/setValue.ts +21 -0
  312. package/src/actions/submit.ts +7 -0
  313. package/src/actions/submitSucceeded.ts +7 -0
  314. package/src/createFormMiddleware.ts +74 -0
  315. package/src/createFormProvider.tsx +101 -0
  316. package/src/createFormReducer.ts +91 -0
  317. package/src/createSelectFieldErrorMap.ts +47 -0
  318. package/src/createSelectFormStatus.ts +41 -0
  319. package/src/createSelectFormValues.ts +16 -0
  320. package/src/createZodForm.ts +57 -0
  321. package/src/index.ts +32 -0
  322. package/src/initFormState.ts +18 -0
  323. package/src/reducers/addHandlers.ts +21 -0
  324. package/src/reducers/arrayInsert.ts +19 -0
  325. package/src/reducers/arrayInsertRaw.ts +22 -0
  326. package/src/reducers/arrayMove.ts +36 -0
  327. package/src/reducers/arrayPop.ts +16 -0
  328. package/src/reducers/arrayPush.ts +20 -0
  329. package/src/reducers/arrayPushRaw.ts +18 -0
  330. package/src/reducers/arrayRemove.ts +22 -0
  331. package/src/reducers/arrayRemoveAll.ts +15 -0
  332. package/src/reducers/arrayShift.ts +15 -0
  333. package/src/reducers/arraySplice.ts +17 -0
  334. package/src/reducers/arraySpliceRaw.ts +30 -0
  335. package/src/reducers/arraySwap.ts +29 -0
  336. package/src/reducers/arrayUnshift.ts +16 -0
  337. package/src/reducers/arrayUnshiftRaw.ts +18 -0
  338. package/src/reducers/initialize.ts +47 -0
  339. package/src/reducers/removeHandlers.ts +21 -0
  340. package/src/reducers/setMeta.ts +26 -0
  341. package/src/reducers/setRawValue.ts +40 -0
  342. package/src/reducers/setSubmitStatus.ts +15 -0
  343. package/src/reducers/setValue.ts +49 -0
  344. package/src/reducers/submitSucceeded.ts +17 -0
  345. package/src/reducers/util/getInverseArrayElementSchema.ts +9 -0
  346. package/src/reducers/util/updateRawArray.ts +25 -0
  347. package/src/useArrayField.ts +161 -0
  348. package/src/useField.ts +152 -0
  349. package/src/useFormContext.ts +11 -0
  350. package/src/useFormDispatch.ts +13 -0
  351. package/src/useFormSelector.ts +9 -0
  352. package/src/useFormStatus.ts +14 -0
  353. package/src/useFormValues.ts +8 -0
  354. package/src/useHtmlField.ts +235 -0
  355. package/src/useInitialize.ts +14 -0
  356. package/src/useSubmit.ts +29 -0
  357. package/src/util/PathInSchema.ts +7 -0
  358. package/src/util/PathInType.ts +26 -0
  359. package/src/util/SchemaAt.ts +68 -0
  360. package/src/util/acceptsArray.ts +72 -0
  361. package/src/util/acceptsBigint.ts +71 -0
  362. package/src/util/acceptsNumber.ts +71 -0
  363. package/src/util/bindActionsToField.ts +22 -0
  364. package/src/util/get.ts +10 -0
  365. package/src/util/getArrayElementSchema.ts +74 -0
  366. package/src/util/maybeParse.ts +9 -0
  367. package/src/util/parsePathstring.ts +119 -0
  368. package/src/util/pathstring.ts +32 -0
  369. package/src/util/set.ts +25 -0
  370. package/src/util/setAdd.ts +6 -0
  371. package/src/util/setDelete.ts +6 -0
  372. package/useArrayField.d.ts +34 -0
  373. package/useArrayField.d.ts.map +1 -0
  374. package/useArrayField.js +99 -0
  375. package/useArrayField.js.map +1 -0
  376. package/useArrayField.mjs +75 -0
  377. package/useArrayField.mjs.map +1 -0
  378. package/useField.d.ts +34 -0
  379. package/useField.d.ts.map +1 -0
  380. package/useField.js +98 -0
  381. package/useField.js.map +1 -0
  382. package/useField.mjs +75 -0
  383. package/useField.mjs.map +1 -0
  384. package/useFormContext.d.ts +4 -0
  385. package/useFormContext.d.ts.map +1 -0
  386. package/useFormContext.js +17 -0
  387. package/useFormContext.js.map +1 -0
  388. package/useFormContext.mjs +10 -0
  389. package/useFormContext.mjs.map +1 -0
  390. package/useFormDispatch.d.ts +7 -0
  391. package/useFormDispatch.d.ts.map +1 -0
  392. package/useFormDispatch.js +10 -0
  393. package/useFormDispatch.js.map +1 -0
  394. package/useFormDispatch.mjs +4 -0
  395. package/useFormDispatch.mjs.map +1 -0
  396. package/useFormSelector.d.ts +6 -0
  397. package/useFormSelector.d.ts.map +1 -0
  398. package/useFormSelector.js +10 -0
  399. package/useFormSelector.js.map +1 -0
  400. package/useFormSelector.mjs +4 -0
  401. package/useFormSelector.mjs.map +1 -0
  402. package/useFormStatus.d.ts +13 -0
  403. package/useFormStatus.d.ts.map +1 -0
  404. package/useFormStatus.js +15 -0
  405. package/useFormStatus.js.map +1 -0
  406. package/useFormStatus.mjs +10 -0
  407. package/useFormStatus.mjs.map +1 -0
  408. package/useFormValues.d.ts +8 -0
  409. package/useFormValues.d.ts.map +1 -0
  410. package/useFormValues.js +14 -0
  411. package/useFormValues.js.map +1 -0
  412. package/useFormValues.mjs +9 -0
  413. package/useFormValues.mjs.map +1 -0
  414. package/useHtmlField.d.ts +41 -0
  415. package/useHtmlField.d.ts.map +1 -0
  416. package/useHtmlField.js +161 -0
  417. package/useHtmlField.js.map +1 -0
  418. package/useHtmlField.mjs +148 -0
  419. package/useHtmlField.mjs.map +1 -0
  420. package/useInitialize.d.ts +5 -0
  421. package/useInitialize.d.ts.map +1 -0
  422. package/useInitialize.js +18 -0
  423. package/useInitialize.js.map +1 -0
  424. package/useInitialize.mjs +11 -0
  425. package/useInitialize.mjs.map +1 -0
  426. package/useSubmit.d.ts +5 -0
  427. package/useSubmit.d.ts.map +1 -0
  428. package/useSubmit.js +53 -0
  429. package/useSubmit.js.map +1 -0
  430. package/useSubmit.mjs +39 -0
  431. package/useSubmit.mjs.map +1 -0
  432. package/util/PathInSchema.d.ts +5 -0
  433. package/util/PathInSchema.d.ts.map +1 -0
  434. package/util/PathInSchema.js +6 -0
  435. package/util/PathInSchema.js.map +1 -0
  436. package/util/PathInSchema.mjs +2 -0
  437. package/util/PathInSchema.mjs.map +1 -0
  438. package/util/PathInType.d.ts +11 -0
  439. package/util/PathInType.d.ts.map +1 -0
  440. package/util/PathInType.js +6 -0
  441. package/util/PathInType.js.map +1 -0
  442. package/util/PathInType.mjs +2 -0
  443. package/util/PathInType.mjs.map +1 -0
  444. package/util/SchemaAt.d.ts +5 -0
  445. package/util/SchemaAt.d.ts.map +1 -0
  446. package/util/SchemaAt.js +6 -0
  447. package/util/SchemaAt.js.map +1 -0
  448. package/util/SchemaAt.mjs +2 -0
  449. package/util/SchemaAt.mjs.map +1 -0
  450. package/util/acceptsArray.d.ts +3 -0
  451. package/util/acceptsArray.d.ts.map +1 -0
  452. package/util/acceptsArray.js +89 -0
  453. package/util/acceptsArray.js.map +1 -0
  454. package/util/acceptsArray.mjs +105 -0
  455. package/util/acceptsArray.mjs.map +1 -0
  456. package/util/acceptsBigint.d.ts +3 -0
  457. package/util/acceptsBigint.d.ts.map +1 -0
  458. package/util/acceptsBigint.js +88 -0
  459. package/util/acceptsBigint.js.map +1 -0
  460. package/util/acceptsBigint.mjs +104 -0
  461. package/util/acceptsBigint.mjs.map +1 -0
  462. package/util/acceptsNumber.d.ts +3 -0
  463. package/util/acceptsNumber.d.ts.map +1 -0
  464. package/util/acceptsNumber.js +88 -0
  465. package/util/acceptsNumber.js.map +1 -0
  466. package/util/acceptsNumber.mjs +104 -0
  467. package/util/acceptsNumber.mjs.map +1 -0
  468. package/util/bindActionsToField.d.ts +7 -0
  469. package/util/bindActionsToField.d.ts.map +1 -0
  470. package/util/bindActionsToField.js +22 -0
  471. package/util/bindActionsToField.js.map +1 -0
  472. package/util/bindActionsToField.mjs +4 -0
  473. package/util/bindActionsToField.mjs.map +1 -0
  474. package/util/get.d.ts +2 -0
  475. package/util/get.d.ts.map +1 -0
  476. package/util/get.js +12 -0
  477. package/util/get.js.map +1 -0
  478. package/util/get.mjs +4 -0
  479. package/util/get.mjs.map +1 -0
  480. package/util/getArrayElementSchema.d.ts +3 -0
  481. package/util/getArrayElementSchema.d.ts.map +1 -0
  482. package/util/getArrayElementSchema.js +87 -0
  483. package/util/getArrayElementSchema.js.map +1 -0
  484. package/util/getArrayElementSchema.mjs +102 -0
  485. package/util/getArrayElementSchema.mjs.map +1 -0
  486. package/util/maybeParse.d.ts +3 -0
  487. package/util/maybeParse.d.ts.map +1 -0
  488. package/util/maybeParse.js +11 -0
  489. package/util/maybeParse.js.map +1 -0
  490. package/util/maybeParse.mjs +5 -0
  491. package/util/maybeParse.mjs.map +1 -0
  492. package/util/parsePathstring.d.ts +40 -0
  493. package/util/parsePathstring.d.ts.map +1 -0
  494. package/util/parsePathstring.js +55 -0
  495. package/util/parsePathstring.js.map +1 -0
  496. package/util/parsePathstring.mjs +35 -0
  497. package/util/parsePathstring.mjs.map +1 -0
  498. package/util/pathstring.d.ts +13 -0
  499. package/util/pathstring.d.ts.map +1 -0
  500. package/util/pathstring.js +15 -0
  501. package/util/pathstring.js.map +1 -0
  502. package/util/pathstring.mjs +7 -0
  503. package/util/pathstring.mjs.map +1 -0
  504. package/util/set.d.ts +2 -0
  505. package/util/set.d.ts.map +1 -0
  506. package/util/set.js +33 -0
  507. package/util/set.js.map +1 -0
  508. package/util/set.mjs +23 -0
  509. package/util/set.mjs.map +1 -0
  510. package/util/setAdd.d.ts +2 -0
  511. package/util/setAdd.d.ts.map +1 -0
  512. package/util/setAdd.js +13 -0
  513. package/util/setAdd.js.map +1 -0
  514. package/util/setAdd.mjs +7 -0
  515. package/util/setAdd.mjs.map +1 -0
  516. package/util/setDelete.d.ts +2 -0
  517. package/util/setDelete.d.ts.map +1 -0
  518. package/util/setDelete.js +13 -0
  519. package/util/setDelete.js.map +1 -0
  520. package/util/setDelete.mjs +7 -0
  521. package/util/setDelete.mjs.map +1 -0
@@ -0,0 +1,3 @@
1
+ import z from 'zod';
2
+ export declare function maybeParse<T extends z.ZodTypeAny>(schema: T, rawValue: unknown): z.output<T> | undefined;
3
+ //# sourceMappingURL=maybeParse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maybeParse.d.ts","sourceRoot":"","sources":["../../src/util/maybeParse.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,wBAAgB,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAC/C,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,OAAO,GAChB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAGzB"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.maybeParse = maybeParse;
7
+ function maybeParse(schema, rawValue) {
8
+ var parsed = schema.safeParse(rawValue);
9
+ return parsed.success ? parsed.data : undefined;
10
+ }
11
+ //# sourceMappingURL=maybeParse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maybeParse.js","names":["maybeParse","schema","rawValue","parsed","safeParse","success","data","undefined"],"sources":["../../src/util/maybeParse.ts"],"sourcesContent":["import z from 'zod'\n\nexport function maybeParse<T extends z.ZodTypeAny>(\n schema: T,\n rawValue: unknown\n): z.output<T> | undefined {\n const parsed = schema.safeParse(rawValue)\n return parsed.success ? parsed.data : undefined\n}\n"],"mappings":";;;;;;AAEO,SAASA,UAAUA,CACxBC,MAAS,EACTC,QAAiB,EACQ;EACzB,IAAMC,MAAM,GAAGF,MAAM,CAACG,SAAS,CAACF,QAAQ,CAAC;EACzC,OAAOC,MAAM,CAACE,OAAO,GAAGF,MAAM,CAACG,IAAI,GAAGC,SAAS;AACjD","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ export function maybeParse(schema, rawValue) {
2
+ const parsed = schema.safeParse(rawValue);
3
+ return parsed.success ? parsed.data : undefined;
4
+ }
5
+ //# sourceMappingURL=maybeParse.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maybeParse.mjs","names":["maybeParse","schema","rawValue","parsed","safeParse","success","data","undefined"],"sources":["../../src/util/maybeParse.ts"],"sourcesContent":["import z from 'zod'\n\nexport function maybeParse<T extends z.ZodTypeAny>(\n schema: T,\n rawValue: unknown\n): z.output<T> | undefined {\n const parsed = schema.safeParse(rawValue)\n return parsed.success ? parsed.data : undefined\n}\n"],"mappings":"AAEA,OAAO,SAASA,UAAUA,CACxBC,MAAS,EACTC,QAAiB,EACQ;EACzB,MAAMC,MAAM,GAAGF,MAAM,CAACG,SAAS,CAACF,QAAQ,CAAC;EACzC,OAAOC,MAAM,CAACE,OAAO,GAAGF,MAAM,CAACG,IAAI,GAAGC,SAAS;AACjD","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ import { BasePath } from '../FieldPath';
2
+ export type parsePathstring<Path extends string, IsTail = false> = [
3
+ Path
4
+ ] extends [''] ? [] : [Path] extends [`[${infer Rest}`] ? Rest extends `${infer N extends number}]${infer Tail}` ? [N, ...parsePathstring<Tail, true>] : ExtractInitialStringLiteral<Rest> extends infer StringLiteral extends string ? [
5
+ ProcessStringLiteral<StringLiteral>,
6
+ ...(Rest extends `${StringLiteral}]${infer Tail}` ? parsePathstring<Tail, true> : never)
7
+ ] : never : [IsTail] extends [true] ? [Path] extends [`.${infer Rest}`] ? parsePathstring<Rest> : never : [Path] extends [`${infer Head}[${infer Tail}`] ? [Path] extends [`${infer Head2}.${infer Tail2}`] ? Head2 extends `${Head}[${string}` ? [Head, ...parsePathstring<`[${Tail}`, true>] : [Head2, ...parsePathstring<`.${Tail2}`, true>] : [Head, ...parsePathstring<`[${Tail}`, true>] : [Path] extends [`${infer Head}.${infer Tail}`] ? [Head, ...parsePathstring<`.${Tail}`, true>] : [Path];
8
+ /**
9
+ * If T starts with a quoted string literal, returns that string literal.
10
+ * Otherwise returns never
11
+ */
12
+ type ExtractInitialStringLiteral<T extends string> = [T] extends [
13
+ `"${infer Rest}`
14
+ ] ? `"${RestOfStringLiteral<Rest, '"'>}` : [T] extends [`'${infer Rest}`] ? `'${RestOfStringLiteral<Rest, "'">}` : never;
15
+ type RestOfStringLiteral<
16
+ /**
17
+ * A substring right after an opening quote
18
+ */
19
+ T extends string,
20
+ /**
21
+ * The opening quote type
22
+ */
23
+ Q extends '"' | "'"> = [T] extends [`${infer A}${Q}${infer B}`] ? A extends `${infer C}\\${infer D}` ? D extends '' ? `${A}${Q}${RestOfStringLiteral<B, Q>}` : D extends `${infer E extends keyof EscapeChars}${infer F}` ? `${C}\\${E}${RestOfStringLiteral<`${F}${Q}${B}`, Q>}` : never : `${A}${Q}` : never;
24
+ type EscapeChars = typeof EscapeChars;
25
+ declare const EscapeChars: {
26
+ readonly "'": "'";
27
+ readonly '"': "\"";
28
+ readonly '\\': "\\";
29
+ readonly b: "\b";
30
+ readonly f: "\f";
31
+ readonly n: "\n";
32
+ readonly r: "\r";
33
+ readonly t: "\t";
34
+ readonly v: "\v";
35
+ };
36
+ type ProcessEscapes<T extends string> = T extends `${infer A}\\${infer B}` ? B extends `${infer C extends keyof EscapeChars}${infer D}` ? `${A}${EscapeChars[C]}${ProcessEscapes<D>}` : never : T;
37
+ type ProcessStringLiteral<T extends string> = T extends `"${infer Content}"` ? ProcessEscapes<Content> : T extends `'${infer Content}'` ? ProcessEscapes<Content> : never;
38
+ export declare function parsePathstring(pathstring: string): BasePath;
39
+ export {};
40
+ //# sourceMappingURL=parsePathstring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsePathstring.d.ts","sourceRoot":"","sources":["../../src/util/parsePathstring.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.parsePathstring = parsePathstring;
7
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
8
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
9
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
10
+ /**
11
+ * If T starts with a quoted string literal, returns that string literal.
12
+ * Otherwise returns never
13
+ */
14
+
15
+ var EscapeChars = {
16
+ "'": "'",
17
+ '"': '"',
18
+ '\\': '\\',
19
+ b: '\b',
20
+ f: '\f',
21
+ n: '\n',
22
+ r: '\r',
23
+ t: '\t',
24
+ v: '\v'
25
+ };
26
+ var pathstringRx = /((?:^|\.)([^.[\]]+))|\[((\d+)|("(?:[^\\"]|\\['"\\bfnrtv])+"|'(?:[^\\']|\\['"\\bfnrtv])+'))\]/g;
27
+ function parsePathstring(pathstring) {
28
+ var path = [];
29
+ var lastIndex = 0;
30
+ var _iterator = _createForOfIteratorHelper(pathstring.matchAll(pathstringRx)),
31
+ _step;
32
+ try {
33
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
34
+ var match = _step.value;
35
+ if (match.index !== lastIndex || match.index === 0 && match[0][0] === '.') {
36
+ throw new Error("invalid pathstring: ".concat(pathstring, " (at ").concat(match.index, ")"));
37
+ }
38
+ lastIndex = match.index + match[0].length;
39
+ if (match[2]) path.push(match[2]);else if (match[4]) path.push(parseInt(match[4]));else if (match[5]) {
40
+ path.push(match[5].substring(1, match[5].length - 1).replace(/\\['"\\bfnrtv]/g, function (m) {
41
+ return EscapeChars[m[1]];
42
+ }));
43
+ }
44
+ }
45
+ } catch (err) {
46
+ _iterator.e(err);
47
+ } finally {
48
+ _iterator.f();
49
+ }
50
+ if (lastIndex !== pathstring.length) {
51
+ throw new Error("invalid pathstring: ".concat(pathstring, " (at ").concat(lastIndex, ")"));
52
+ }
53
+ return path;
54
+ }
55
+ //# sourceMappingURL=parsePathstring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsePathstring.js","names":["EscapeChars","b","f","n","r","t","v","pathstringRx","parsePathstring","pathstring","path","lastIndex","_iterator","_createForOfIteratorHelper","matchAll","_step","s","done","match","value","index","Error","concat","length","push","parseInt","substring","replace","m","err","e"],"sources":["../../src/util/parsePathstring.ts"],"sourcesContent":["import { BasePath } from '../FieldPath'\n\nexport type parsePathstring<Path extends string, IsTail = false> = [\n Path\n] extends ['']\n ? []\n : [Path] extends [`[${infer Rest}`]\n ? Rest extends `${infer N extends number}]${infer Tail}`\n ? [N, ...parsePathstring<Tail, true>]\n : ExtractInitialStringLiteral<Rest> extends infer StringLiteral extends string\n ? [\n ProcessStringLiteral<StringLiteral>,\n ...(Rest extends `${StringLiteral}]${infer Tail}`\n ? parsePathstring<Tail, true>\n : never)\n ]\n : never\n : [IsTail] extends [true]\n ? [Path] extends [`.${infer Rest}`]\n ? parsePathstring<Rest>\n : never\n : [Path] extends [`${infer Head}[${infer Tail}`]\n ? [Path] extends [`${infer Head2}.${infer Tail2}`]\n ? Head2 extends `${Head}[${string}` // make sure we pick up to . or [, whichever comes first\n ? [Head, ...parsePathstring<`[${Tail}`, true>]\n : [Head2, ...parsePathstring<`.${Tail2}`, true>]\n : [Head, ...parsePathstring<`[${Tail}`, true>]\n : [Path] extends [`${infer Head}.${infer Tail}`]\n ? [Head, ...parsePathstring<`.${Tail}`, true>]\n : [Path]\n\n/**\n * If T starts with a quoted string literal, returns that string literal.\n * Otherwise returns never\n */\ntype ExtractInitialStringLiteral<T extends string> = [T] extends [\n `\"${infer Rest}`\n]\n ? `\"${RestOfStringLiteral<Rest, '\"'>}`\n : [T] extends [`'${infer Rest}`]\n ? `'${RestOfStringLiteral<Rest, \"'\">}`\n : never\n\ntype RestOfStringLiteral<\n /**\n * A substring right after an opening quote\n */\n T extends string,\n /**\n * The opening quote type\n */\n Q extends '\"' | \"'\"\n> = [T] extends [`${infer A}${Q}${infer B}`] // find the next quote\n ? A extends `${infer C}\\\\${infer D}` // the quote may be escaped, so find the first backslash\n ? D extends '' // nothing after the backslash, so it escapes the quote Q\n ? `${A}${Q}${RestOfStringLiteral<B, Q>}` // keep scanning until the closing quote\n : D extends `${infer E extends keyof EscapeChars}${infer F}`\n ? `${C}\\\\${E}${RestOfStringLiteral<`${F}${Q}${B}`, Q>}` // keep scanning until the closing quote\n : never\n : `${A}${Q}` // no backslash, Q is a closing quote and we're done!\n : never\n\ntype EscapeChars = typeof EscapeChars\nconst EscapeChars = {\n \"'\": \"'\",\n '\"': '\"',\n '\\\\': '\\\\',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t',\n v: '\\v',\n} as const\n\ntype ProcessEscapes<T extends string> = T extends `${infer A}\\\\${infer B}`\n ? B extends `${infer C extends keyof EscapeChars}${infer D}`\n ? `${A}${EscapeChars[C]}${ProcessEscapes<D>}`\n : never\n : T\n\ntype ProcessStringLiteral<T extends string> = T extends `\"${infer Content}\"`\n ? ProcessEscapes<Content>\n : T extends `'${infer Content}'`\n ? ProcessEscapes<Content>\n : never\n\nconst pathstringRx =\n /((?:^|\\.)([^.[\\]]+))|\\[((\\d+)|(\"(?:[^\\\\\"]|\\\\['\"\\\\bfnrtv])+\"|'(?:[^\\\\']|\\\\['\"\\\\bfnrtv])+'))\\]/g\n\nexport function parsePathstring(pathstring: string): BasePath {\n const path: BasePath = []\n let lastIndex = 0\n for (const match of pathstring.matchAll(pathstringRx)) {\n if (\n match.index !== lastIndex ||\n (match.index === 0 && match[0][0] === '.')\n ) {\n throw new Error(`invalid pathstring: ${pathstring} (at ${match.index})`)\n }\n lastIndex = match.index + match[0].length\n if (match[2]) path.push(match[2])\n else if (match[4]) path.push(parseInt(match[4]))\n else if (match[5]) {\n path.push(\n match[5]\n .substring(1, match[5].length - 1)\n .replace(\n /\\\\['\"\\\\bfnrtv]/g,\n (m) => EscapeChars[m[1] as keyof EscapeChars]\n )\n )\n }\n }\n if (lastIndex !== pathstring.length) {\n throw new Error(`invalid pathstring: ${pathstring} (at ${lastIndex})`)\n }\n return path\n}\n"],"mappings":";;;;;;;;;AA+BA;AACA;AACA;AACA;;AA6BA,IAAMA,WAAW,GAAG;EAClB,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,IAAI,EAAE,IAAI;EACVC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE;AACL,CAAU;AAcV,IAAMC,YAAY,GAChB,+FAA+F;AAE1F,SAASC,eAAeA,CAACC,UAAkB,EAAY;EAC5D,IAAMC,IAAc,GAAG,EAAE;EACzB,IAAIC,SAAS,GAAG,CAAC;EAAA,IAAAC,SAAA,GAAAC,0BAAA,CACGJ,UAAU,CAACK,QAAQ,CAACP,YAAY,CAAC;IAAAQ,KAAA;EAAA;IAArD,KAAAH,SAAA,CAAAI,CAAA,MAAAD,KAAA,GAAAH,SAAA,CAAAT,CAAA,IAAAc,IAAA,GAAuD;MAAA,IAA5CC,KAAK,GAAAH,KAAA,CAAAI,KAAA;MACd,IACED,KAAK,CAACE,KAAK,KAAKT,SAAS,IACxBO,KAAK,CAACE,KAAK,KAAK,CAAC,IAAIF,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAI,EAC1C;QACA,MAAM,IAAIG,KAAK,wBAAAC,MAAA,CAAwBb,UAAU,WAAAa,MAAA,CAAQJ,KAAK,CAACE,KAAK,MAAG,CAAC;MAC1E;MACAT,SAAS,GAAGO,KAAK,CAACE,KAAK,GAAGF,KAAK,CAAC,CAAC,CAAC,CAACK,MAAM;MACzC,IAAIL,KAAK,CAAC,CAAC,CAAC,EAAER,IAAI,CAACc,IAAI,CAACN,KAAK,CAAC,CAAC,CAAC,CAAC,MAC5B,IAAIA,KAAK,CAAC,CAAC,CAAC,EAAER,IAAI,CAACc,IAAI,CAACC,QAAQ,CAACP,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAC3C,IAAIA,KAAK,CAAC,CAAC,CAAC,EAAE;QACjBR,IAAI,CAACc,IAAI,CACPN,KAAK,CAAC,CAAC,CAAC,CACLQ,SAAS,CAAC,CAAC,EAAER,KAAK,CAAC,CAAC,CAAC,CAACK,MAAM,GAAG,CAAC,CAAC,CACjCI,OAAO,CACN,iBAAiB,EACjB,UAACC,CAAC;UAAA,OAAK5B,WAAW,CAAC4B,CAAC,CAAC,CAAC,CAAC,CAAsB;QAAA,CAC/C,CACJ,CAAC;MACH;IACF;EAAC,SAAAC,GAAA;IAAAjB,SAAA,CAAAkB,CAAA,CAAAD,GAAA;EAAA;IAAAjB,SAAA,CAAAV,CAAA;EAAA;EACD,IAAIS,SAAS,KAAKF,UAAU,CAACc,MAAM,EAAE;IACnC,MAAM,IAAIF,KAAK,wBAAAC,MAAA,CAAwBb,UAAU,WAAAa,MAAA,CAAQX,SAAS,MAAG,CAAC;EACxE;EACA,OAAOD,IAAI;AACb","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * If T starts with a quoted string literal, returns that string literal.
3
+ * Otherwise returns never
4
+ */
5
+
6
+ const EscapeChars = {
7
+ "'": "'",
8
+ '"': '"',
9
+ '\\': '\\',
10
+ b: '\b',
11
+ f: '\f',
12
+ n: '\n',
13
+ r: '\r',
14
+ t: '\t',
15
+ v: '\v'
16
+ };
17
+ const pathstringRx = /((?:^|\.)([^.[\]]+))|\[((\d+)|("(?:[^\\"]|\\['"\\bfnrtv])+"|'(?:[^\\']|\\['"\\bfnrtv])+'))\]/g;
18
+ export function parsePathstring(pathstring) {
19
+ const path = [];
20
+ let lastIndex = 0;
21
+ for (const match of pathstring.matchAll(pathstringRx)) {
22
+ if (match.index !== lastIndex || match.index === 0 && match[0][0] === '.') {
23
+ throw new Error(`invalid pathstring: ${pathstring} (at ${match.index})`);
24
+ }
25
+ lastIndex = match.index + match[0].length;
26
+ if (match[2]) path.push(match[2]);else if (match[4]) path.push(parseInt(match[4]));else if (match[5]) {
27
+ path.push(match[5].substring(1, match[5].length - 1).replace(/\\['"\\bfnrtv]/g, m => EscapeChars[m[1]]));
28
+ }
29
+ }
30
+ if (lastIndex !== pathstring.length) {
31
+ throw new Error(`invalid pathstring: ${pathstring} (at ${lastIndex})`);
32
+ }
33
+ return path;
34
+ }
35
+ //# sourceMappingURL=parsePathstring.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsePathstring.mjs","names":["EscapeChars","b","f","n","r","t","v","pathstringRx","parsePathstring","pathstring","path","lastIndex","match","matchAll","index","Error","length","push","parseInt","substring","replace","m"],"sources":["../../src/util/parsePathstring.ts"],"sourcesContent":["import { BasePath } from '../FieldPath'\n\nexport type parsePathstring<Path extends string, IsTail = false> = [\n Path\n] extends ['']\n ? []\n : [Path] extends [`[${infer Rest}`]\n ? Rest extends `${infer N extends number}]${infer Tail}`\n ? [N, ...parsePathstring<Tail, true>]\n : ExtractInitialStringLiteral<Rest> extends infer StringLiteral extends string\n ? [\n ProcessStringLiteral<StringLiteral>,\n ...(Rest extends `${StringLiteral}]${infer Tail}`\n ? parsePathstring<Tail, true>\n : never)\n ]\n : never\n : [IsTail] extends [true]\n ? [Path] extends [`.${infer Rest}`]\n ? parsePathstring<Rest>\n : never\n : [Path] extends [`${infer Head}[${infer Tail}`]\n ? [Path] extends [`${infer Head2}.${infer Tail2}`]\n ? Head2 extends `${Head}[${string}` // make sure we pick up to . or [, whichever comes first\n ? [Head, ...parsePathstring<`[${Tail}`, true>]\n : [Head2, ...parsePathstring<`.${Tail2}`, true>]\n : [Head, ...parsePathstring<`[${Tail}`, true>]\n : [Path] extends [`${infer Head}.${infer Tail}`]\n ? [Head, ...parsePathstring<`.${Tail}`, true>]\n : [Path]\n\n/**\n * If T starts with a quoted string literal, returns that string literal.\n * Otherwise returns never\n */\ntype ExtractInitialStringLiteral<T extends string> = [T] extends [\n `\"${infer Rest}`\n]\n ? `\"${RestOfStringLiteral<Rest, '\"'>}`\n : [T] extends [`'${infer Rest}`]\n ? `'${RestOfStringLiteral<Rest, \"'\">}`\n : never\n\ntype RestOfStringLiteral<\n /**\n * A substring right after an opening quote\n */\n T extends string,\n /**\n * The opening quote type\n */\n Q extends '\"' | \"'\"\n> = [T] extends [`${infer A}${Q}${infer B}`] // find the next quote\n ? A extends `${infer C}\\\\${infer D}` // the quote may be escaped, so find the first backslash\n ? D extends '' // nothing after the backslash, so it escapes the quote Q\n ? `${A}${Q}${RestOfStringLiteral<B, Q>}` // keep scanning until the closing quote\n : D extends `${infer E extends keyof EscapeChars}${infer F}`\n ? `${C}\\\\${E}${RestOfStringLiteral<`${F}${Q}${B}`, Q>}` // keep scanning until the closing quote\n : never\n : `${A}${Q}` // no backslash, Q is a closing quote and we're done!\n : never\n\ntype EscapeChars = typeof EscapeChars\nconst EscapeChars = {\n \"'\": \"'\",\n '\"': '\"',\n '\\\\': '\\\\',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t',\n v: '\\v',\n} as const\n\ntype ProcessEscapes<T extends string> = T extends `${infer A}\\\\${infer B}`\n ? B extends `${infer C extends keyof EscapeChars}${infer D}`\n ? `${A}${EscapeChars[C]}${ProcessEscapes<D>}`\n : never\n : T\n\ntype ProcessStringLiteral<T extends string> = T extends `\"${infer Content}\"`\n ? ProcessEscapes<Content>\n : T extends `'${infer Content}'`\n ? ProcessEscapes<Content>\n : never\n\nconst pathstringRx =\n /((?:^|\\.)([^.[\\]]+))|\\[((\\d+)|(\"(?:[^\\\\\"]|\\\\['\"\\\\bfnrtv])+\"|'(?:[^\\\\']|\\\\['\"\\\\bfnrtv])+'))\\]/g\n\nexport function parsePathstring(pathstring: string): BasePath {\n const path: BasePath = []\n let lastIndex = 0\n for (const match of pathstring.matchAll(pathstringRx)) {\n if (\n match.index !== lastIndex ||\n (match.index === 0 && match[0][0] === '.')\n ) {\n throw new Error(`invalid pathstring: ${pathstring} (at ${match.index})`)\n }\n lastIndex = match.index + match[0].length\n if (match[2]) path.push(match[2])\n else if (match[4]) path.push(parseInt(match[4]))\n else if (match[5]) {\n path.push(\n match[5]\n .substring(1, match[5].length - 1)\n .replace(\n /\\\\['\"\\\\bfnrtv]/g,\n (m) => EscapeChars[m[1] as keyof EscapeChars]\n )\n )\n }\n }\n if (lastIndex !== pathstring.length) {\n throw new Error(`invalid pathstring: ${pathstring} (at ${lastIndex})`)\n }\n return path\n}\n"],"mappings":"AA+BA;AACA;AACA;AACA;;AA6BA,MAAMA,WAAW,GAAG;EAClB,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,IAAI,EAAE,IAAI;EACVC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE;AACL,CAAU;AAcV,MAAMC,YAAY,GAChB,+FAA+F;AAEjG,OAAO,SAASC,eAAeA,CAACC,UAAkB,EAAY;EAC5D,MAAMC,IAAc,GAAG,EAAE;EACzB,IAAIC,SAAS,GAAG,CAAC;EACjB,KAAK,MAAMC,KAAK,IAAIH,UAAU,CAACI,QAAQ,CAACN,YAAY,CAAC,EAAE;IACrD,IACEK,KAAK,CAACE,KAAK,KAAKH,SAAS,IACxBC,KAAK,CAACE,KAAK,KAAK,CAAC,IAAIF,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAI,EAC1C;MACA,MAAM,IAAIG,KAAK,CAAC,uBAAuBN,UAAU,QAAQG,KAAK,CAACE,KAAK,GAAG,CAAC;IAC1E;IACAH,SAAS,GAAGC,KAAK,CAACE,KAAK,GAAGF,KAAK,CAAC,CAAC,CAAC,CAACI,MAAM;IACzC,IAAIJ,KAAK,CAAC,CAAC,CAAC,EAAEF,IAAI,CAACO,IAAI,CAACL,KAAK,CAAC,CAAC,CAAC,CAAC,MAC5B,IAAIA,KAAK,CAAC,CAAC,CAAC,EAAEF,IAAI,CAACO,IAAI,CAACC,QAAQ,CAACN,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAC3C,IAAIA,KAAK,CAAC,CAAC,CAAC,EAAE;MACjBF,IAAI,CAACO,IAAI,CACPL,KAAK,CAAC,CAAC,CAAC,CACLO,SAAS,CAAC,CAAC,EAAEP,KAAK,CAAC,CAAC,CAAC,CAACI,MAAM,GAAG,CAAC,CAAC,CACjCI,OAAO,CACN,iBAAiB,EAChBC,CAAC,IAAKrB,WAAW,CAACqB,CAAC,CAAC,CAAC,CAAC,CACzB,CACJ,CAAC;IACH;EACF;EACA,IAAIV,SAAS,KAAKF,UAAU,CAACO,MAAM,EAAE;IACnC,MAAM,IAAID,KAAK,CAAC,uBAAuBN,UAAU,QAAQE,SAAS,GAAG,CAAC;EACxE;EACA,OAAOD,IAAI;AACb","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ type PathElem = string | number;
2
+ type BasePath = PathElem[];
3
+ export type pathstring<Path> = Path extends [
4
+ infer Head extends PathElem,
5
+ ...infer Tail extends PathElem[]
6
+ ] ? `${Head extends number ? `[${Head}]` : Head}${pathstringTail<Tail>}` : '';
7
+ type pathstringTail<Path extends BasePath> = Path extends [
8
+ infer Head extends PathElem,
9
+ ...infer Tail extends PathElem[]
10
+ ] ? `${Head extends number ? `[${Head}]` : `.${Head}`}${pathstringTail<Tail>}` : '';
11
+ export declare function pathstring<Path extends BasePath>(path: Path): pathstring<Path>;
12
+ export {};
13
+ //# sourceMappingURL=pathstring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathstring.d.ts","sourceRoot":"","sources":["../../src/util/pathstring.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;AAC/B,KAAK,QAAQ,GAAG,QAAQ,EAAE,CAAA;AAE1B,MAAM,MAAM,UAAU,CAAC,IAAI,IAAI,IAAI,SAAS;IAC1C,MAAM,IAAI,SAAS,QAAQ;IAC3B,GAAG,MAAM,IAAI,SAAS,QAAQ,EAAE;CACjC,GACG,GAAG,IAAI,SAAS,MAAM,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,GACpE,EAAE,CAAA;AAEN,KAAK,cAAc,CAAC,IAAI,SAAS,QAAQ,IAAI,IAAI,SAAS;IACxD,MAAM,IAAI,SAAS,QAAQ;IAC3B,GAAG,MAAM,IAAI,SAAS,QAAQ,EAAE;CACjC,GACG,GAAG,IAAI,SAAS,MAAM,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,GAC1E,EAAE,CAAA;AAEN,wBAAgB,UAAU,CAAC,IAAI,SAAS,QAAQ,EAC9C,IAAI,EAAE,IAAI,GACT,UAAU,CAAC,IAAI,CAAC,CAQlB"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.pathstring = pathstring;
7
+ function pathstring(path) {
8
+ return path.map(function (elem, index) {
9
+ return typeof elem === 'string' && isValidIdentifier(elem) ? "".concat(index > 0 ? '.' : '').concat(elem) : "[".concat(JSON.stringify(elem), "]");
10
+ }).join('');
11
+ }
12
+ function isValidIdentifier(s) {
13
+ return /^[_$a-z][_$a-z0-9]*$/i.test(s);
14
+ }
15
+ //# sourceMappingURL=pathstring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathstring.js","names":["pathstring","path","map","elem","index","isValidIdentifier","concat","JSON","stringify","join","s","test"],"sources":["../../src/util/pathstring.ts"],"sourcesContent":["type PathElem = string | number\ntype BasePath = PathElem[]\n\nexport type pathstring<Path> = Path extends [\n infer Head extends PathElem,\n ...infer Tail extends PathElem[]\n]\n ? `${Head extends number ? `[${Head}]` : Head}${pathstringTail<Tail>}`\n : ''\n\ntype pathstringTail<Path extends BasePath> = Path extends [\n infer Head extends PathElem,\n ...infer Tail extends PathElem[]\n]\n ? `${Head extends number ? `[${Head}]` : `.${Head}`}${pathstringTail<Tail>}`\n : ''\n\nexport function pathstring<Path extends BasePath>(\n path: Path\n): pathstring<Path> {\n return path\n .map((elem, index) =>\n typeof elem === 'string' && isValidIdentifier(elem)\n ? `${index > 0 ? '.' : ''}${elem}`\n : `[${JSON.stringify(elem)}]`\n )\n .join('') as any\n}\n\nfunction isValidIdentifier(s: string): boolean {\n return /^[_$a-z][_$a-z0-9]*$/i.test(s)\n}\n"],"mappings":";;;;;;AAiBO,SAASA,UAAUA,CACxBC,IAAU,EACQ;EAClB,OAAOA,IAAI,CACRC,GAAG,CAAC,UAACC,IAAI,EAAEC,KAAK;IAAA,OACf,OAAOD,IAAI,KAAK,QAAQ,IAAIE,iBAAiB,CAACF,IAAI,CAAC,MAAAG,MAAA,CAC5CF,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,EAAAE,MAAA,CAAGH,IAAI,QAAAG,MAAA,CAC1BC,IAAI,CAACC,SAAS,CAACL,IAAI,CAAC,MAAG;EAAA,CACjC,CAAC,CACAM,IAAI,CAAC,EAAE,CAAC;AACb;AAEA,SAASJ,iBAAiBA,CAACK,CAAS,EAAW;EAC7C,OAAO,uBAAuB,CAACC,IAAI,CAACD,CAAC,CAAC;AACxC","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ export function pathstring(path) {
2
+ return path.map((elem, index) => typeof elem === 'string' && isValidIdentifier(elem) ? `${index > 0 ? '.' : ''}${elem}` : `[${JSON.stringify(elem)}]`).join('');
3
+ }
4
+ function isValidIdentifier(s) {
5
+ return /^[_$a-z][_$a-z0-9]*$/i.test(s);
6
+ }
7
+ //# sourceMappingURL=pathstring.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathstring.mjs","names":["pathstring","path","map","elem","index","isValidIdentifier","JSON","stringify","join","s","test"],"sources":["../../src/util/pathstring.ts"],"sourcesContent":["type PathElem = string | number\ntype BasePath = PathElem[]\n\nexport type pathstring<Path> = Path extends [\n infer Head extends PathElem,\n ...infer Tail extends PathElem[]\n]\n ? `${Head extends number ? `[${Head}]` : Head}${pathstringTail<Tail>}`\n : ''\n\ntype pathstringTail<Path extends BasePath> = Path extends [\n infer Head extends PathElem,\n ...infer Tail extends PathElem[]\n]\n ? `${Head extends number ? `[${Head}]` : `.${Head}`}${pathstringTail<Tail>}`\n : ''\n\nexport function pathstring<Path extends BasePath>(\n path: Path\n): pathstring<Path> {\n return path\n .map((elem, index) =>\n typeof elem === 'string' && isValidIdentifier(elem)\n ? `${index > 0 ? '.' : ''}${elem}`\n : `[${JSON.stringify(elem)}]`\n )\n .join('') as any\n}\n\nfunction isValidIdentifier(s: string): boolean {\n return /^[_$a-z][_$a-z0-9]*$/i.test(s)\n}\n"],"mappings":"AAiBA,OAAO,SAASA,UAAUA,CACxBC,IAAU,EACQ;EAClB,OAAOA,IAAI,CACRC,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KACf,OAAOD,IAAI,KAAK,QAAQ,IAAIE,iBAAiB,CAACF,IAAI,CAAC,GAC/C,GAAGC,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,GAAGD,IAAI,EAAE,GAChC,IAAIG,IAAI,CAACC,SAAS,CAACJ,IAAI,CAAC,GAC9B,CAAC,CACAK,IAAI,CAAC,EAAE,CAAC;AACb;AAEA,SAASH,iBAAiBA,CAACI,CAAS,EAAW;EAC7C,OAAO,uBAAuB,CAACC,IAAI,CAACD,CAAC,CAAC;AACxC","ignoreList":[]}
package/util/set.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare function set(from: unknown, path: (string | number | symbol)[], value: unknown, index?: number): unknown;
2
+ //# sourceMappingURL=set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/util/set.ts"],"names":[],"mappings":"AAAA,wBAAgB,GAAG,CACjB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,EAClC,KAAK,EAAE,OAAO,EACd,KAAK,SAAI,GACR,OAAO,CAmBT"}
package/util/set.js ADDED
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.set = set;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
+ function set(from, path, value) {
13
+ var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
14
+ if (index === path.length) return value;
15
+ if (from instanceof Map) {
16
+ var oldValue = from.get(path[index]);
17
+ var newValue = set(oldValue, path, value, index + 1);
18
+ if (Object.is(oldValue, newValue)) return from;
19
+ var result = new Map(from);
20
+ result.set(path[index], newValue);
21
+ return result;
22
+ }
23
+ if (from instanceof Object) {
24
+ var _oldValue = from[path[index]];
25
+ var _newValue = set(_oldValue, path, value, index + 1);
26
+ if (Object.is(_oldValue, _newValue)) return from;
27
+ var _result = Array.isArray(from) ? (0, _toConsumableArray2["default"])(from) : _objectSpread({}, from);
28
+ _result[path[index]] = _newValue;
29
+ return _result;
30
+ }
31
+ return set(typeof path[index] === 'number' ? [] : {}, path, value, index);
32
+ }
33
+ //# sourceMappingURL=set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.js","names":["set","from","path","value","index","arguments","length","undefined","Map","oldValue","get","newValue","Object","is","result","Array","isArray","_toConsumableArray2","_objectSpread"],"sources":["../../src/util/set.ts"],"sourcesContent":["export function set(\n from: unknown,\n path: (string | number | symbol)[],\n value: unknown,\n index = 0\n): unknown {\n if (index === path.length) return value\n if (from instanceof Map) {\n const oldValue = from.get(path[index])\n const newValue = set(oldValue, path, value, index + 1)\n if (Object.is(oldValue, newValue)) return from\n const result = new Map(from)\n result.set(path[index], newValue)\n return result\n }\n if (from instanceof Object) {\n const oldValue = (from as any)[path[index]]\n const newValue = set(oldValue, path, value, index + 1)\n if (Object.is(oldValue, newValue)) return from\n const result: any = Array.isArray(from) ? [...from] : { ...from }\n result[path[index]] = newValue\n return result\n }\n return set(typeof path[index] === 'number' ? [] : {}, path, value, index)\n}\n"],"mappings":";;;;;;;;;;;AAAO,SAASA,GAAGA,CACjBC,IAAa,EACbC,IAAkC,EAClCC,KAAc,EAEL;EAAA,IADTC,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAET,IAAID,KAAK,KAAKF,IAAI,CAACI,MAAM,EAAE,OAAOH,KAAK;EACvC,IAAIF,IAAI,YAAYO,GAAG,EAAE;IACvB,IAAMC,QAAQ,GAAGR,IAAI,CAACS,GAAG,CAACR,IAAI,CAACE,KAAK,CAAC,CAAC;IACtC,IAAMO,QAAQ,GAAGX,GAAG,CAACS,QAAQ,EAAEP,IAAI,EAAEC,KAAK,EAAEC,KAAK,GAAG,CAAC,CAAC;IACtD,IAAIQ,MAAM,CAACC,EAAE,CAACJ,QAAQ,EAAEE,QAAQ,CAAC,EAAE,OAAOV,IAAI;IAC9C,IAAMa,MAAM,GAAG,IAAIN,GAAG,CAACP,IAAI,CAAC;IAC5Ba,MAAM,CAACd,GAAG,CAACE,IAAI,CAACE,KAAK,CAAC,EAAEO,QAAQ,CAAC;IACjC,OAAOG,MAAM;EACf;EACA,IAAIb,IAAI,YAAYW,MAAM,EAAE;IAC1B,IAAMH,SAAQ,GAAIR,IAAI,CAASC,IAAI,CAACE,KAAK,CAAC,CAAC;IAC3C,IAAMO,SAAQ,GAAGX,GAAG,CAACS,SAAQ,EAAEP,IAAI,EAAEC,KAAK,EAAEC,KAAK,GAAG,CAAC,CAAC;IACtD,IAAIQ,MAAM,CAACC,EAAE,CAACJ,SAAQ,EAAEE,SAAQ,CAAC,EAAE,OAAOV,IAAI;IAC9C,IAAMa,OAAW,GAAGC,KAAK,CAACC,OAAO,CAACf,IAAI,CAAC,OAAAgB,mBAAA,aAAOhB,IAAI,IAAAiB,aAAA,KAASjB,IAAI,CAAE;IACjEa,OAAM,CAACZ,IAAI,CAACE,KAAK,CAAC,CAAC,GAAGO,SAAQ;IAC9B,OAAOG,OAAM;EACf;EACA,OAAOd,GAAG,CAAC,OAAOE,IAAI,CAACE,KAAK,CAAC,KAAK,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC,EAAEF,IAAI,EAAEC,KAAK,EAAEC,KAAK,CAAC;AAC3E","ignoreList":[]}
package/util/set.mjs ADDED
@@ -0,0 +1,23 @@
1
+ export function set(from, path, value, index = 0) {
2
+ if (index === path.length) return value;
3
+ if (from instanceof Map) {
4
+ const oldValue = from.get(path[index]);
5
+ const newValue = set(oldValue, path, value, index + 1);
6
+ if (Object.is(oldValue, newValue)) return from;
7
+ const result = new Map(from);
8
+ result.set(path[index], newValue);
9
+ return result;
10
+ }
11
+ if (from instanceof Object) {
12
+ const oldValue = from[path[index]];
13
+ const newValue = set(oldValue, path, value, index + 1);
14
+ if (Object.is(oldValue, newValue)) return from;
15
+ const result = Array.isArray(from) ? [...from] : {
16
+ ...from
17
+ };
18
+ result[path[index]] = newValue;
19
+ return result;
20
+ }
21
+ return set(typeof path[index] === 'number' ? [] : {}, path, value, index);
22
+ }
23
+ //# sourceMappingURL=set.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.mjs","names":["set","from","path","value","index","length","Map","oldValue","get","newValue","Object","is","result","Array","isArray"],"sources":["../../src/util/set.ts"],"sourcesContent":["export function set(\n from: unknown,\n path: (string | number | symbol)[],\n value: unknown,\n index = 0\n): unknown {\n if (index === path.length) return value\n if (from instanceof Map) {\n const oldValue = from.get(path[index])\n const newValue = set(oldValue, path, value, index + 1)\n if (Object.is(oldValue, newValue)) return from\n const result = new Map(from)\n result.set(path[index], newValue)\n return result\n }\n if (from instanceof Object) {\n const oldValue = (from as any)[path[index]]\n const newValue = set(oldValue, path, value, index + 1)\n if (Object.is(oldValue, newValue)) return from\n const result: any = Array.isArray(from) ? [...from] : { ...from }\n result[path[index]] = newValue\n return result\n }\n return set(typeof path[index] === 'number' ? [] : {}, path, value, index)\n}\n"],"mappings":"AAAA,OAAO,SAASA,GAAGA,CACjBC,IAAa,EACbC,IAAkC,EAClCC,KAAc,EACdC,KAAK,GAAG,CAAC,EACA;EACT,IAAIA,KAAK,KAAKF,IAAI,CAACG,MAAM,EAAE,OAAOF,KAAK;EACvC,IAAIF,IAAI,YAAYK,GAAG,EAAE;IACvB,MAAMC,QAAQ,GAAGN,IAAI,CAACO,GAAG,CAACN,IAAI,CAACE,KAAK,CAAC,CAAC;IACtC,MAAMK,QAAQ,GAAGT,GAAG,CAACO,QAAQ,EAAEL,IAAI,EAAEC,KAAK,EAAEC,KAAK,GAAG,CAAC,CAAC;IACtD,IAAIM,MAAM,CAACC,EAAE,CAACJ,QAAQ,EAAEE,QAAQ,CAAC,EAAE,OAAOR,IAAI;IAC9C,MAAMW,MAAM,GAAG,IAAIN,GAAG,CAACL,IAAI,CAAC;IAC5BW,MAAM,CAACZ,GAAG,CAACE,IAAI,CAACE,KAAK,CAAC,EAAEK,QAAQ,CAAC;IACjC,OAAOG,MAAM;EACf;EACA,IAAIX,IAAI,YAAYS,MAAM,EAAE;IAC1B,MAAMH,QAAQ,GAAIN,IAAI,CAASC,IAAI,CAACE,KAAK,CAAC,CAAC;IAC3C,MAAMK,QAAQ,GAAGT,GAAG,CAACO,QAAQ,EAAEL,IAAI,EAAEC,KAAK,EAAEC,KAAK,GAAG,CAAC,CAAC;IACtD,IAAIM,MAAM,CAACC,EAAE,CAACJ,QAAQ,EAAEE,QAAQ,CAAC,EAAE,OAAOR,IAAI;IAC9C,MAAMW,MAAW,GAAGC,KAAK,CAACC,OAAO,CAACb,IAAI,CAAC,GAAG,CAAC,GAAGA,IAAI,CAAC,GAAG;MAAE,GAAGA;IAAK,CAAC;IACjEW,MAAM,CAACV,IAAI,CAACE,KAAK,CAAC,CAAC,GAAGK,QAAQ;IAC9B,OAAOG,MAAM;EACf;EACA,OAAOZ,GAAG,CAAC,OAAOE,IAAI,CAACE,KAAK,CAAC,KAAK,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC,EAAEF,IAAI,EAAEC,KAAK,EAAEC,KAAK,CAAC;AAC3E","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export declare function setAdd<T>(set: Set<T>, elem: T): Set<T>;
2
+ //# sourceMappingURL=setAdd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setAdd.d.ts","sourceRoot":"","sources":["../../src/util/setAdd.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,UAK7C"}
package/util/setAdd.js ADDED
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.setAdd = setAdd;
7
+ function setAdd(set, elem) {
8
+ if (set.has(elem)) return set;
9
+ set = new Set(set);
10
+ set.add(elem);
11
+ return set;
12
+ }
13
+ //# sourceMappingURL=setAdd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setAdd.js","names":["setAdd","set","elem","has","Set","add"],"sources":["../../src/util/setAdd.ts"],"sourcesContent":["export function setAdd<T>(set: Set<T>, elem: T) {\n if (set.has(elem)) return set\n set = new Set(set)\n set.add(elem)\n return set\n}\n"],"mappings":";;;;;;AAAO,SAASA,MAAMA,CAAIC,GAAW,EAAEC,IAAO,EAAE;EAC9C,IAAID,GAAG,CAACE,GAAG,CAACD,IAAI,CAAC,EAAE,OAAOD,GAAG;EAC7BA,GAAG,GAAG,IAAIG,GAAG,CAACH,GAAG,CAAC;EAClBA,GAAG,CAACI,GAAG,CAACH,IAAI,CAAC;EACb,OAAOD,GAAG;AACZ","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ export function setAdd(set, elem) {
2
+ if (set.has(elem)) return set;
3
+ set = new Set(set);
4
+ set.add(elem);
5
+ return set;
6
+ }
7
+ //# sourceMappingURL=setAdd.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setAdd.mjs","names":["setAdd","set","elem","has","Set","add"],"sources":["../../src/util/setAdd.ts"],"sourcesContent":["export function setAdd<T>(set: Set<T>, elem: T) {\n if (set.has(elem)) return set\n set = new Set(set)\n set.add(elem)\n return set\n}\n"],"mappings":"AAAA,OAAO,SAASA,MAAMA,CAAIC,GAAW,EAAEC,IAAO,EAAE;EAC9C,IAAID,GAAG,CAACE,GAAG,CAACD,IAAI,CAAC,EAAE,OAAOD,GAAG;EAC7BA,GAAG,GAAG,IAAIG,GAAG,CAACH,GAAG,CAAC;EAClBA,GAAG,CAACI,GAAG,CAACH,IAAI,CAAC;EACb,OAAOD,GAAG;AACZ","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export declare function setDelete<T>(set: Set<T>, elem: T): Set<T>;
2
+ //# sourceMappingURL=setDelete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setDelete.d.ts","sourceRoot":"","sources":["../../src/util/setDelete.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,UAKhD"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.setDelete = setDelete;
7
+ function setDelete(set, elem) {
8
+ if (!set.has(elem)) return set;
9
+ set = new Set(set);
10
+ set["delete"](elem);
11
+ return set;
12
+ }
13
+ //# sourceMappingURL=setDelete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setDelete.js","names":["setDelete","set","elem","has","Set"],"sources":["../../src/util/setDelete.ts"],"sourcesContent":["export function setDelete<T>(set: Set<T>, elem: T) {\n if (!set.has(elem)) return set\n set = new Set(set)\n set.delete(elem)\n return set\n}\n"],"mappings":";;;;;;AAAO,SAASA,SAASA,CAAIC,GAAW,EAAEC,IAAO,EAAE;EACjD,IAAI,CAACD,GAAG,CAACE,GAAG,CAACD,IAAI,CAAC,EAAE,OAAOD,GAAG;EAC9BA,GAAG,GAAG,IAAIG,GAAG,CAACH,GAAG,CAAC;EAClBA,GAAG,UAAO,CAACC,IAAI,CAAC;EAChB,OAAOD,GAAG;AACZ","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ export function setDelete(set, elem) {
2
+ if (!set.has(elem)) return set;
3
+ set = new Set(set);
4
+ set.delete(elem);
5
+ return set;
6
+ }
7
+ //# sourceMappingURL=setDelete.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setDelete.mjs","names":["setDelete","set","elem","has","Set","delete"],"sources":["../../src/util/setDelete.ts"],"sourcesContent":["export function setDelete<T>(set: Set<T>, elem: T) {\n if (!set.has(elem)) return set\n set = new Set(set)\n set.delete(elem)\n return set\n}\n"],"mappings":"AAAA,OAAO,SAASA,SAASA,CAAIC,GAAW,EAAEC,IAAO,EAAE;EACjD,IAAI,CAACD,GAAG,CAACE,GAAG,CAACD,IAAI,CAAC,EAAE,OAAOD,GAAG;EAC9BA,GAAG,GAAG,IAAIG,GAAG,CAACH,GAAG,CAAC;EAClBA,GAAG,CAACI,MAAM,CAACH,IAAI,CAAC;EAChB,OAAOD,GAAG;AACZ","ignoreList":[]}