@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.
- package/FieldPath.d.ts +26 -0
- package/FieldPath.d.ts.map +1 -0
- package/FieldPath.js +155 -0
- package/FieldPath.js.map +1 -0
- package/FieldPath.mjs +138 -0
- package/FieldPath.mjs.map +1 -0
- package/FormAction.d.ts +15 -0
- package/FormAction.d.ts.map +1 -0
- package/FormAction.js +6 -0
- package/FormAction.js.map +1 -0
- package/FormAction.mjs +2 -0
- package/FormAction.mjs.map +1 -0
- package/FormContext.d.ts +39 -0
- package/FormContext.d.ts.map +1 -0
- package/FormContext.js +10 -0
- package/FormContext.js.map +1 -0
- package/FormContext.mjs +3 -0
- package/FormContext.mjs.map +1 -0
- package/FormState.d.ts +31 -0
- package/FormState.d.ts.map +1 -0
- package/FormState.js +6 -0
- package/FormState.js.map +1 -0
- package/FormState.mjs +2 -0
- package/FormState.mjs.map +1 -0
- package/FormStateContext.d.ts +8 -0
- package/FormStateContext.d.ts.map +1 -0
- package/FormStateContext.js +10 -0
- package/FormStateContext.js.map +1 -0
- package/FormStateContext.mjs +3 -0
- package/FormStateContext.mjs.map +1 -0
- package/LICENSE.md +21 -0
- package/README.md +154 -0
- package/actions/addHandlers.d.ts +15 -0
- package/actions/addHandlers.d.ts.map +1 -0
- package/actions/addHandlers.js +16 -0
- package/actions/addHandlers.js.map +1 -0
- package/actions/addHandlers.mjs +7 -0
- package/actions/addHandlers.mjs.map +1 -0
- package/actions/arrayActions.d.ts +113 -0
- package/actions/arrayActions.d.ts.map +1 -0
- package/actions/arrayActions.js +146 -0
- package/actions/arrayActions.js.map +1 -0
- package/actions/arrayActions.mjs +120 -0
- package/actions/arrayActions.mjs.map +1 -0
- package/actions/initialize.d.ts +13 -0
- package/actions/initialize.d.ts.map +1 -0
- package/actions/initialize.js +16 -0
- package/actions/initialize.js.map +1 -0
- package/actions/initialize.mjs +7 -0
- package/actions/initialize.mjs.map +1 -0
- package/actions/removeHandlers.d.ts +10 -0
- package/actions/removeHandlers.d.ts.map +1 -0
- package/actions/removeHandlers.js +16 -0
- package/actions/removeHandlers.js.map +1 -0
- package/actions/removeHandlers.mjs +7 -0
- package/actions/removeHandlers.mjs.map +1 -0
- package/actions/setMeta.d.ts +9 -0
- package/actions/setMeta.d.ts.map +1 -0
- package/actions/setMeta.js +14 -0
- package/actions/setMeta.js.map +1 -0
- package/actions/setMeta.mjs +8 -0
- package/actions/setMeta.mjs.map +1 -0
- package/actions/setMounted.d.ts +6 -0
- package/actions/setMounted.d.ts.map +1 -0
- package/actions/setMounted.js +13 -0
- package/actions/setMounted.js.map +1 -0
- package/actions/setMounted.mjs +7 -0
- package/actions/setMounted.mjs.map +1 -0
- package/actions/setRawValue.d.ts +9 -0
- package/actions/setRawValue.d.ts.map +1 -0
- package/actions/setRawValue.js +14 -0
- package/actions/setRawValue.js.map +1 -0
- package/actions/setRawValue.mjs +8 -0
- package/actions/setRawValue.mjs.map +1 -0
- package/actions/setSubmitStatus.d.ts +14 -0
- package/actions/setSubmitStatus.d.ts.map +1 -0
- package/actions/setSubmitStatus.js +16 -0
- package/actions/setSubmitStatus.js.map +1 -0
- package/actions/setSubmitStatus.mjs +7 -0
- package/actions/setSubmitStatus.mjs.map +1 -0
- package/actions/setValue.d.ts +12 -0
- package/actions/setValue.d.ts.map +1 -0
- package/actions/setValue.js +18 -0
- package/actions/setValue.js.map +1 -0
- package/actions/setValue.mjs +9 -0
- package/actions/setValue.mjs.map +1 -0
- package/actions/submit.d.ts +5 -0
- package/actions/submit.d.ts.map +1 -0
- package/actions/submit.js +12 -0
- package/actions/submit.js.map +1 -0
- package/actions/submit.mjs +6 -0
- package/actions/submit.mjs.map +1 -0
- package/actions/submitSucceeded.d.ts +5 -0
- package/actions/submitSucceeded.d.ts.map +1 -0
- package/actions/submitSucceeded.js +12 -0
- package/actions/submitSucceeded.js.map +1 -0
- package/actions/submitSucceeded.mjs +6 -0
- package/actions/submitSucceeded.mjs.map +1 -0
- package/createFormMiddleware.d.ts +6 -0
- package/createFormMiddleware.d.ts.map +1 -0
- package/createFormMiddleware.js +186 -0
- package/createFormMiddleware.js.map +1 -0
- package/createFormMiddleware.mjs +53 -0
- package/createFormMiddleware.mjs.map +1 -0
- package/createFormProvider.d.ts +7 -0
- package/createFormProvider.d.ts.map +1 -0
- package/createFormProvider.js +85 -0
- package/createFormProvider.js.map +1 -0
- package/createFormProvider.mjs +63 -0
- package/createFormProvider.mjs.map +1 -0
- package/createFormReducer.d.ts +9 -0
- package/createFormReducer.d.ts.map +1 -0
- package/createFormReducer.js +95 -0
- package/createFormReducer.js.map +1 -0
- package/createFormReducer.mjs +84 -0
- package/createFormReducer.mjs.map +1 -0
- package/createSelectFieldErrorMap.d.ts +32 -0
- package/createSelectFieldErrorMap.d.ts.map +1 -0
- package/createSelectFieldErrorMap.js +43 -0
- package/createSelectFieldErrorMap.js.map +1 -0
- package/createSelectFieldErrorMap.mjs +24 -0
- package/createSelectFieldErrorMap.mjs.map +1 -0
- package/createSelectFormStatus.d.ts +89 -0
- package/createSelectFormStatus.d.ts.map +1 -0
- package/createSelectFormStatus.js +54 -0
- package/createSelectFormStatus.js.map +1 -0
- package/createSelectFormStatus.mjs +28 -0
- package/createSelectFormStatus.mjs.map +1 -0
- package/createSelectFormValues.d.ts +45 -0
- package/createSelectFormValues.d.ts.map +1 -0
- package/createSelectFormValues.js +24 -0
- package/createSelectFormValues.js.map +1 -0
- package/createSelectFormValues.mjs +10 -0
- package/createSelectFormValues.mjs.map +1 -0
- package/createZodForm.d.ts +33 -0
- package/createZodForm.d.ts.map +1 -0
- package/createZodForm.js +51 -0
- package/createZodForm.js.map +1 -0
- package/createZodForm.mjs +46 -0
- package/createZodForm.mjs.map +1 -0
- package/index.d.ts +14 -0
- package/index.d.ts.map +1 -0
- package/index.js +76 -0
- package/index.js.map +1 -0
- package/index.mjs +11 -0
- package/index.mjs.map +1 -0
- package/initFormState.d.ts +4 -0
- package/initFormState.d.ts.map +1 -0
- package/initFormState.js +22 -0
- package/initFormState.js.map +1 -0
- package/initFormState.mjs +16 -0
- package/initFormState.mjs.map +1 -0
- package/package.json +49 -0
- package/reducers/addHandlers.d.ts +24 -0
- package/reducers/addHandlers.d.ts.map +1 -0
- package/reducers/addHandlers.js +24 -0
- package/reducers/addHandlers.js.map +1 -0
- package/reducers/addHandlers.mjs +21 -0
- package/reducers/addHandlers.mjs.map +1 -0
- package/reducers/arrayInsert.d.ts +7 -0
- package/reducers/arrayInsert.d.ts.map +1 -0
- package/reducers/arrayInsert.js +16 -0
- package/reducers/arrayInsert.js.map +1 -0
- package/reducers/arrayInsert.mjs +12 -0
- package/reducers/arrayInsert.mjs.map +1 -0
- package/reducers/arrayInsertRaw.d.ts +7 -0
- package/reducers/arrayInsertRaw.d.ts.map +1 -0
- package/reducers/arrayInsertRaw.js +22 -0
- package/reducers/arrayInsertRaw.js.map +1 -0
- package/reducers/arrayInsertRaw.mjs +14 -0
- package/reducers/arrayInsertRaw.mjs.map +1 -0
- package/reducers/arrayMove.d.ts +8 -0
- package/reducers/arrayMove.d.ts.map +1 -0
- package/reducers/arrayMove.js +25 -0
- package/reducers/arrayMove.js.map +1 -0
- package/reducers/arrayMove.mjs +16 -0
- package/reducers/arrayMove.mjs.map +1 -0
- package/reducers/arrayPop.d.ts +7 -0
- package/reducers/arrayPop.d.ts.map +1 -0
- package/reducers/arrayPop.js +13 -0
- package/reducers/arrayPop.js.map +1 -0
- package/reducers/arrayPop.mjs +5 -0
- package/reducers/arrayPop.mjs.map +1 -0
- package/reducers/arrayPush.d.ts +7 -0
- package/reducers/arrayPush.d.ts.map +1 -0
- package/reducers/arrayPush.js +15 -0
- package/reducers/arrayPush.js.map +1 -0
- package/reducers/arrayPush.mjs +11 -0
- package/reducers/arrayPush.mjs.map +1 -0
- package/reducers/arrayPushRaw.d.ts +7 -0
- package/reducers/arrayPushRaw.d.ts.map +1 -0
- package/reducers/arrayPushRaw.js +17 -0
- package/reducers/arrayPushRaw.js.map +1 -0
- package/reducers/arrayPushRaw.mjs +9 -0
- package/reducers/arrayPushRaw.mjs.map +1 -0
- package/reducers/arrayRemove.d.ts +7 -0
- package/reducers/arrayRemove.d.ts.map +1 -0
- package/reducers/arrayRemove.js +21 -0
- package/reducers/arrayRemove.js.map +1 -0
- package/reducers/arrayRemove.mjs +13 -0
- package/reducers/arrayRemove.mjs.map +1 -0
- package/reducers/arrayRemoveAll.d.ts +7 -0
- package/reducers/arrayRemoveAll.d.ts.map +1 -0
- package/reducers/arrayRemoveAll.js +14 -0
- package/reducers/arrayRemoveAll.js.map +1 -0
- package/reducers/arrayRemoveAll.mjs +8 -0
- package/reducers/arrayRemoveAll.mjs.map +1 -0
- package/reducers/arrayShift.d.ts +7 -0
- package/reducers/arrayShift.d.ts.map +1 -0
- package/reducers/arrayShift.js +14 -0
- package/reducers/arrayShift.js.map +1 -0
- package/reducers/arrayShift.mjs +8 -0
- package/reducers/arrayShift.mjs.map +1 -0
- package/reducers/arraySplice.d.ts +7 -0
- package/reducers/arraySplice.d.ts.map +1 -0
- package/reducers/arraySplice.js +20 -0
- package/reducers/arraySplice.js.map +1 -0
- package/reducers/arraySplice.mjs +14 -0
- package/reducers/arraySplice.mjs.map +1 -0
- package/reducers/arraySpliceRaw.d.ts +7 -0
- package/reducers/arraySpliceRaw.d.ts.map +1 -0
- package/reducers/arraySpliceRaw.js +26 -0
- package/reducers/arraySpliceRaw.js.map +1 -0
- package/reducers/arraySpliceRaw.mjs +18 -0
- package/reducers/arraySpliceRaw.mjs.map +1 -0
- package/reducers/arraySwap.d.ts +8 -0
- package/reducers/arraySwap.d.ts.map +1 -0
- package/reducers/arraySwap.js +27 -0
- package/reducers/arraySwap.js.map +1 -0
- package/reducers/arraySwap.mjs +18 -0
- package/reducers/arraySwap.mjs.map +1 -0
- package/reducers/arrayUnshift.d.ts +7 -0
- package/reducers/arrayUnshift.d.ts.map +1 -0
- package/reducers/arrayUnshift.js +15 -0
- package/reducers/arrayUnshift.js.map +1 -0
- package/reducers/arrayUnshift.mjs +11 -0
- package/reducers/arrayUnshift.mjs.map +1 -0
- package/reducers/arrayUnshiftRaw.d.ts +7 -0
- package/reducers/arrayUnshiftRaw.d.ts.map +1 -0
- package/reducers/arrayUnshiftRaw.js +17 -0
- package/reducers/arrayUnshiftRaw.js.map +1 -0
- package/reducers/arrayUnshiftRaw.mjs +9 -0
- package/reducers/arrayUnshiftRaw.mjs.map +1 -0
- package/reducers/initialize.d.ts +46 -0
- package/reducers/initialize.d.ts.map +1 -0
- package/reducers/initialize.js +46 -0
- package/reducers/initialize.js.map +1 -0
- package/reducers/initialize.mjs +38 -0
- package/reducers/initialize.mjs.map +1 -0
- package/reducers/removeHandlers.d.ts +24 -0
- package/reducers/removeHandlers.d.ts.map +1 -0
- package/reducers/removeHandlers.js +24 -0
- package/reducers/removeHandlers.js.map +1 -0
- package/reducers/removeHandlers.mjs +21 -0
- package/reducers/removeHandlers.mjs.map +1 -0
- package/reducers/setMeta.d.ts +6 -0
- package/reducers/setMeta.d.ts.map +1 -0
- package/reducers/setMeta.js +28 -0
- package/reducers/setMeta.js.map +1 -0
- package/reducers/setMeta.mjs +21 -0
- package/reducers/setMeta.mjs.map +1 -0
- package/reducers/setRawValue.d.ts +27 -0
- package/reducers/setRawValue.d.ts.map +1 -0
- package/reducers/setRawValue.js +35 -0
- package/reducers/setRawValue.js.map +1 -0
- package/reducers/setRawValue.mjs +26 -0
- package/reducers/setRawValue.mjs.map +1 -0
- package/reducers/setSubmitStatus.d.ts +24 -0
- package/reducers/setSubmitStatus.d.ts.map +1 -0
- package/reducers/setSubmitStatus.js +18 -0
- package/reducers/setSubmitStatus.js.map +1 -0
- package/reducers/setSubmitStatus.mjs +12 -0
- package/reducers/setSubmitStatus.mjs.map +1 -0
- package/reducers/setValue.d.ts +28 -0
- package/reducers/setValue.d.ts.map +1 -0
- package/reducers/setValue.js +41 -0
- package/reducers/setValue.js.map +1 -0
- package/reducers/setValue.mjs +32 -0
- package/reducers/setValue.mjs.map +1 -0
- package/reducers/submitSucceeded.d.ts +23 -0
- package/reducers/submitSucceeded.d.ts.map +1 -0
- package/reducers/submitSucceeded.js +22 -0
- package/reducers/submitSucceeded.js.map +1 -0
- package/reducers/submitSucceeded.mjs +13 -0
- package/reducers/submitSucceeded.mjs.map +1 -0
- package/reducers/util/getInverseArrayElementSchema.d.ts +3 -0
- package/reducers/util/getInverseArrayElementSchema.d.ts.map +1 -0
- package/reducers/util/getInverseArrayElementSchema.js +14 -0
- package/reducers/util/getInverseArrayElementSchema.js.map +1 -0
- package/reducers/util/getInverseArrayElementSchema.mjs +8 -0
- package/reducers/util/getInverseArrayElementSchema.mjs.map +1 -0
- package/reducers/util/updateRawArray.d.ts +7 -0
- package/reducers/util/updateRawArray.d.ts.map +1 -0
- package/reducers/util/updateRawArray.js +14 -0
- package/reducers/util/updateRawArray.js.map +1 -0
- package/reducers/util/updateRawArray.mjs +8 -0
- package/reducers/util/updateRawArray.mjs.map +1 -0
- package/src/FieldPath.ts +215 -0
- package/src/FormAction.ts +26 -0
- package/src/FormContext.ts +44 -0
- package/src/FormState.ts +36 -0
- package/src/FormStateContext.ts +13 -0
- package/src/actions/addHandlers.ts +23 -0
- package/src/actions/arrayActions.ts +183 -0
- package/src/actions/initialize.ts +16 -0
- package/src/actions/removeHandlers.ts +13 -0
- package/src/actions/setMeta.ts +17 -0
- package/src/actions/setMounted.ts +8 -0
- package/src/actions/setRawValue.ts +17 -0
- package/src/actions/setSubmitStatus.ts +26 -0
- package/src/actions/setValue.ts +21 -0
- package/src/actions/submit.ts +7 -0
- package/src/actions/submitSucceeded.ts +7 -0
- package/src/createFormMiddleware.ts +74 -0
- package/src/createFormProvider.tsx +101 -0
- package/src/createFormReducer.ts +91 -0
- package/src/createSelectFieldErrorMap.ts +47 -0
- package/src/createSelectFormStatus.ts +41 -0
- package/src/createSelectFormValues.ts +16 -0
- package/src/createZodForm.ts +57 -0
- package/src/index.ts +32 -0
- package/src/initFormState.ts +18 -0
- package/src/reducers/addHandlers.ts +21 -0
- package/src/reducers/arrayInsert.ts +19 -0
- package/src/reducers/arrayInsertRaw.ts +22 -0
- package/src/reducers/arrayMove.ts +36 -0
- package/src/reducers/arrayPop.ts +16 -0
- package/src/reducers/arrayPush.ts +20 -0
- package/src/reducers/arrayPushRaw.ts +18 -0
- package/src/reducers/arrayRemove.ts +22 -0
- package/src/reducers/arrayRemoveAll.ts +15 -0
- package/src/reducers/arrayShift.ts +15 -0
- package/src/reducers/arraySplice.ts +17 -0
- package/src/reducers/arraySpliceRaw.ts +30 -0
- package/src/reducers/arraySwap.ts +29 -0
- package/src/reducers/arrayUnshift.ts +16 -0
- package/src/reducers/arrayUnshiftRaw.ts +18 -0
- package/src/reducers/initialize.ts +47 -0
- package/src/reducers/removeHandlers.ts +21 -0
- package/src/reducers/setMeta.ts +26 -0
- package/src/reducers/setRawValue.ts +40 -0
- package/src/reducers/setSubmitStatus.ts +15 -0
- package/src/reducers/setValue.ts +49 -0
- package/src/reducers/submitSucceeded.ts +17 -0
- package/src/reducers/util/getInverseArrayElementSchema.ts +9 -0
- package/src/reducers/util/updateRawArray.ts +25 -0
- package/src/useArrayField.ts +161 -0
- package/src/useField.ts +152 -0
- package/src/useFormContext.ts +11 -0
- package/src/useFormDispatch.ts +13 -0
- package/src/useFormSelector.ts +9 -0
- package/src/useFormStatus.ts +14 -0
- package/src/useFormValues.ts +8 -0
- package/src/useHtmlField.ts +235 -0
- package/src/useInitialize.ts +14 -0
- package/src/useSubmit.ts +29 -0
- package/src/util/PathInSchema.ts +7 -0
- package/src/util/PathInType.ts +26 -0
- package/src/util/SchemaAt.ts +68 -0
- package/src/util/acceptsArray.ts +72 -0
- package/src/util/acceptsBigint.ts +71 -0
- package/src/util/acceptsNumber.ts +71 -0
- package/src/util/bindActionsToField.ts +22 -0
- package/src/util/get.ts +10 -0
- package/src/util/getArrayElementSchema.ts +74 -0
- package/src/util/maybeParse.ts +9 -0
- package/src/util/parsePathstring.ts +119 -0
- package/src/util/pathstring.ts +32 -0
- package/src/util/set.ts +25 -0
- package/src/util/setAdd.ts +6 -0
- package/src/util/setDelete.ts +6 -0
- package/useArrayField.d.ts +34 -0
- package/useArrayField.d.ts.map +1 -0
- package/useArrayField.js +99 -0
- package/useArrayField.js.map +1 -0
- package/useArrayField.mjs +75 -0
- package/useArrayField.mjs.map +1 -0
- package/useField.d.ts +34 -0
- package/useField.d.ts.map +1 -0
- package/useField.js +98 -0
- package/useField.js.map +1 -0
- package/useField.mjs +75 -0
- package/useField.mjs.map +1 -0
- package/useFormContext.d.ts +4 -0
- package/useFormContext.d.ts.map +1 -0
- package/useFormContext.js +17 -0
- package/useFormContext.js.map +1 -0
- package/useFormContext.mjs +10 -0
- package/useFormContext.mjs.map +1 -0
- package/useFormDispatch.d.ts +7 -0
- package/useFormDispatch.d.ts.map +1 -0
- package/useFormDispatch.js +10 -0
- package/useFormDispatch.js.map +1 -0
- package/useFormDispatch.mjs +4 -0
- package/useFormDispatch.mjs.map +1 -0
- package/useFormSelector.d.ts +6 -0
- package/useFormSelector.d.ts.map +1 -0
- package/useFormSelector.js +10 -0
- package/useFormSelector.js.map +1 -0
- package/useFormSelector.mjs +4 -0
- package/useFormSelector.mjs.map +1 -0
- package/useFormStatus.d.ts +13 -0
- package/useFormStatus.d.ts.map +1 -0
- package/useFormStatus.js +15 -0
- package/useFormStatus.js.map +1 -0
- package/useFormStatus.mjs +10 -0
- package/useFormStatus.mjs.map +1 -0
- package/useFormValues.d.ts +8 -0
- package/useFormValues.d.ts.map +1 -0
- package/useFormValues.js +14 -0
- package/useFormValues.js.map +1 -0
- package/useFormValues.mjs +9 -0
- package/useFormValues.mjs.map +1 -0
- package/useHtmlField.d.ts +41 -0
- package/useHtmlField.d.ts.map +1 -0
- package/useHtmlField.js +161 -0
- package/useHtmlField.js.map +1 -0
- package/useHtmlField.mjs +148 -0
- package/useHtmlField.mjs.map +1 -0
- package/useInitialize.d.ts +5 -0
- package/useInitialize.d.ts.map +1 -0
- package/useInitialize.js +18 -0
- package/useInitialize.js.map +1 -0
- package/useInitialize.mjs +11 -0
- package/useInitialize.mjs.map +1 -0
- package/useSubmit.d.ts +5 -0
- package/useSubmit.d.ts.map +1 -0
- package/useSubmit.js +53 -0
- package/useSubmit.js.map +1 -0
- package/useSubmit.mjs +39 -0
- package/useSubmit.mjs.map +1 -0
- package/util/PathInSchema.d.ts +5 -0
- package/util/PathInSchema.d.ts.map +1 -0
- package/util/PathInSchema.js +6 -0
- package/util/PathInSchema.js.map +1 -0
- package/util/PathInSchema.mjs +2 -0
- package/util/PathInSchema.mjs.map +1 -0
- package/util/PathInType.d.ts +11 -0
- package/util/PathInType.d.ts.map +1 -0
- package/util/PathInType.js +6 -0
- package/util/PathInType.js.map +1 -0
- package/util/PathInType.mjs +2 -0
- package/util/PathInType.mjs.map +1 -0
- package/util/SchemaAt.d.ts +5 -0
- package/util/SchemaAt.d.ts.map +1 -0
- package/util/SchemaAt.js +6 -0
- package/util/SchemaAt.js.map +1 -0
- package/util/SchemaAt.mjs +2 -0
- package/util/SchemaAt.mjs.map +1 -0
- package/util/acceptsArray.d.ts +3 -0
- package/util/acceptsArray.d.ts.map +1 -0
- package/util/acceptsArray.js +89 -0
- package/util/acceptsArray.js.map +1 -0
- package/util/acceptsArray.mjs +105 -0
- package/util/acceptsArray.mjs.map +1 -0
- package/util/acceptsBigint.d.ts +3 -0
- package/util/acceptsBigint.d.ts.map +1 -0
- package/util/acceptsBigint.js +88 -0
- package/util/acceptsBigint.js.map +1 -0
- package/util/acceptsBigint.mjs +104 -0
- package/util/acceptsBigint.mjs.map +1 -0
- package/util/acceptsNumber.d.ts +3 -0
- package/util/acceptsNumber.d.ts.map +1 -0
- package/util/acceptsNumber.js +88 -0
- package/util/acceptsNumber.js.map +1 -0
- package/util/acceptsNumber.mjs +104 -0
- package/util/acceptsNumber.mjs.map +1 -0
- package/util/bindActionsToField.d.ts +7 -0
- package/util/bindActionsToField.d.ts.map +1 -0
- package/util/bindActionsToField.js +22 -0
- package/util/bindActionsToField.js.map +1 -0
- package/util/bindActionsToField.mjs +4 -0
- package/util/bindActionsToField.mjs.map +1 -0
- package/util/get.d.ts +2 -0
- package/util/get.d.ts.map +1 -0
- package/util/get.js +12 -0
- package/util/get.js.map +1 -0
- package/util/get.mjs +4 -0
- package/util/get.mjs.map +1 -0
- package/util/getArrayElementSchema.d.ts +3 -0
- package/util/getArrayElementSchema.d.ts.map +1 -0
- package/util/getArrayElementSchema.js +87 -0
- package/util/getArrayElementSchema.js.map +1 -0
- package/util/getArrayElementSchema.mjs +102 -0
- package/util/getArrayElementSchema.mjs.map +1 -0
- package/util/maybeParse.d.ts +3 -0
- package/util/maybeParse.d.ts.map +1 -0
- package/util/maybeParse.js +11 -0
- package/util/maybeParse.js.map +1 -0
- package/util/maybeParse.mjs +5 -0
- package/util/maybeParse.mjs.map +1 -0
- package/util/parsePathstring.d.ts +40 -0
- package/util/parsePathstring.d.ts.map +1 -0
- package/util/parsePathstring.js +55 -0
- package/util/parsePathstring.js.map +1 -0
- package/util/parsePathstring.mjs +35 -0
- package/util/parsePathstring.mjs.map +1 -0
- package/util/pathstring.d.ts +13 -0
- package/util/pathstring.d.ts.map +1 -0
- package/util/pathstring.js +15 -0
- package/util/pathstring.js.map +1 -0
- package/util/pathstring.mjs +7 -0
- package/util/pathstring.mjs.map +1 -0
- package/util/set.d.ts +2 -0
- package/util/set.d.ts.map +1 -0
- package/util/set.js +33 -0
- package/util/set.js.map +1 -0
- package/util/set.mjs +23 -0
- package/util/set.mjs.map +1 -0
- package/util/setAdd.d.ts +2 -0
- package/util/setAdd.d.ts.map +1 -0
- package/util/setAdd.js +13 -0
- package/util/setAdd.js.map +1 -0
- package/util/setAdd.mjs +7 -0
- package/util/setAdd.mjs.map +1 -0
- package/util/setDelete.d.ts +2 -0
- package/util/setDelete.d.ts.map +1 -0
- package/util/setDelete.js +13 -0
- package/util/setDelete.js.map +1 -0
- package/util/setDelete.mjs +7 -0
- package/util/setDelete.mjs.map +1 -0
package/FieldPath.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
import { SchemaAt } from './util/SchemaAt';
|
|
3
|
+
import { PathInSchema, PathstringInSchema } from './util/PathInSchema';
|
|
4
|
+
import { parsePathstring } from './util/parsePathstring';
|
|
5
|
+
export type FieldPathForValue<Value, RawValue = any> = FieldPath<z.ZodType<Value, any, RawValue>>;
|
|
6
|
+
export type FieldPathForRawValue<RawValue> = FieldPath<z.ZodType<any, any, RawValue>>;
|
|
7
|
+
export declare class FieldPath<T extends z.ZodTypeAny = z.ZodTypeAny> {
|
|
8
|
+
readonly path: BasePath;
|
|
9
|
+
readonly pathstring: string;
|
|
10
|
+
readonly schema: T;
|
|
11
|
+
private subfields;
|
|
12
|
+
private constructor();
|
|
13
|
+
static root<T extends z.ZodTypeAny>(schema: T): FieldPath<T>;
|
|
14
|
+
get<Path extends PathInSchema<T>>(path: Path): SchemaAt<T, Path> extends never ? never : FieldPath<SchemaAt<T, Path>>;
|
|
15
|
+
get<Pathstring extends PathstringInSchema<T>>(path: Pathstring): FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>;
|
|
16
|
+
subfield<K extends SubpathKey<T>>(key: K): FieldPath<SchemaAt<T, [K]>>;
|
|
17
|
+
}
|
|
18
|
+
export type BasePath = (string | number)[];
|
|
19
|
+
export type SubpathKey<T extends z.ZodTypeAny> = 0 extends 1 & T ? any : 0 extends 1 & z.input<T> ? any : T extends z.ZodObject<infer Shape, infer UnknownKeys> ? UnknownKeys extends 'passthrough' ? string : keyof Shape : T extends z.ZodRecord<infer Key, any> ? z.input<Key> : T extends z.ZodMap<infer Key, any> ? z.input<Key> : T extends z.ZodArray<any> ? number : T extends z.ZodTuple<any, any> ? number : T extends z.ZodLazy<infer U> ? SubpathKey<U> : T extends z.ZodUnion<infer Options> ? SubpathKey<Options[number]> : T extends z.ZodDiscriminatedUnion<any, infer Options> ? SubpathKey<Options[number]> : T extends z.ZodOptional<infer U> ? SubpathKey<U> : T extends z.ZodNullable<infer U> ? SubpathKey<U> : T extends z.ZodDefault<infer U> ? SubpathKey<U> : T extends z.ZodCatch<infer U> ? SubpathKey<U> : T extends z.ZodEffects<infer U, any> ? SubpathKey<U> : T extends z.ZodBranded<infer U, any> ? SubpathKey<U> : never;
|
|
20
|
+
export type AllPaths<T extends z.ZodTypeAny> = SubpathKey<T> extends never ? [] : [] | ValuesOf<SubpathKeyMap<T>>;
|
|
21
|
+
type ValuesOf<O> = O[keyof O];
|
|
22
|
+
export type SubpathKeyMap<T extends z.ZodTypeAny> = {
|
|
23
|
+
[K in SubpathKey<T>]: [K, ...AllPaths<SchemaAt<T, [K]>>];
|
|
24
|
+
};
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=FieldPath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldPath.d.ts","sourceRoot":"","sources":["src/FieldPath.ts"],"names":[],"mappings":"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"}
|
package/FieldPath.js
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.FieldPath = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
+
var _zod = _interopRequireDefault(require("zod"));
|
|
13
|
+
var _pathstring = require("./util/pathstring.js");
|
|
14
|
+
var _parsePathstring = require("./util/parsePathstring.js");
|
|
15
|
+
var FieldPath = exports.FieldPath = /*#__PURE__*/function () {
|
|
16
|
+
function FieldPath(_ref) {
|
|
17
|
+
var schema = _ref.schema,
|
|
18
|
+
path = _ref.path;
|
|
19
|
+
(0, _classCallCheck2["default"])(this, FieldPath);
|
|
20
|
+
(0, _defineProperty2["default"])(this, "path", void 0);
|
|
21
|
+
(0, _defineProperty2["default"])(this, "pathstring", void 0);
|
|
22
|
+
(0, _defineProperty2["default"])(this, "schema", void 0);
|
|
23
|
+
(0, _defineProperty2["default"])(this, "subfields", void 0);
|
|
24
|
+
this.path = path;
|
|
25
|
+
this.schema = schema;
|
|
26
|
+
this.pathstring = (0, _pathstring.pathstring)(path);
|
|
27
|
+
}
|
|
28
|
+
return (0, _createClass2["default"])(FieldPath, [{
|
|
29
|
+
key: "get",
|
|
30
|
+
value: function get(path) {
|
|
31
|
+
if (typeof path === 'string') path = (0, _parsePathstring.parsePathstring)(path);
|
|
32
|
+
if (!Array.isArray(path)) throw new Error("invalid path: ".concat(path));
|
|
33
|
+
return path.reduce(function (field, key) {
|
|
34
|
+
return field.subfield(key);
|
|
35
|
+
}, this);
|
|
36
|
+
}
|
|
37
|
+
}, {
|
|
38
|
+
key: "subfield",
|
|
39
|
+
value: function subfield(key) {
|
|
40
|
+
var _this$subfields;
|
|
41
|
+
var cached = (_this$subfields = this.subfields) === null || _this$subfields === void 0 ? void 0 : _this$subfields.get(key);
|
|
42
|
+
if (cached) return cached;
|
|
43
|
+
var schema = subschema(this.schema, key);
|
|
44
|
+
if (!schema) throw new Error("invalid subschema key: ".concat(key));
|
|
45
|
+
var subfield = new FieldPath({
|
|
46
|
+
path: [].concat((0, _toConsumableArray2["default"])(this.path), [key]),
|
|
47
|
+
schema: schema
|
|
48
|
+
});
|
|
49
|
+
if (this.subfields == null) this.subfields = new Map();
|
|
50
|
+
this.subfields.set(key, subfield);
|
|
51
|
+
return subfield;
|
|
52
|
+
}
|
|
53
|
+
}], [{
|
|
54
|
+
key: "root",
|
|
55
|
+
value: function root(schema) {
|
|
56
|
+
return new FieldPath({
|
|
57
|
+
schema: schema,
|
|
58
|
+
path: []
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}]);
|
|
62
|
+
}();
|
|
63
|
+
function subschema(schema, key) {
|
|
64
|
+
switch (schema._def.typeName) {
|
|
65
|
+
case _zod["default"].ZodFirstPartyTypeKind.ZodAny:
|
|
66
|
+
case 'ZodArray':
|
|
67
|
+
if (typeof key === 'number') return schema.element;
|
|
68
|
+
break;
|
|
69
|
+
case 'ZodObject':
|
|
70
|
+
{
|
|
71
|
+
var _ref2 = schema,
|
|
72
|
+
shape = _ref2.shape,
|
|
73
|
+
_ref2$_def = _ref2._def,
|
|
74
|
+
unknownKeys = _ref2$_def.unknownKeys,
|
|
75
|
+
catchall = _ref2$_def.catchall;
|
|
76
|
+
if (key in shape) return shape[key];
|
|
77
|
+
if (unknownKeys === 'passthrough') return catchall;
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
case 'ZodUnion':
|
|
81
|
+
{
|
|
82
|
+
var options = schema.options.map(function (opt) {
|
|
83
|
+
return subschema(opt, key);
|
|
84
|
+
}).filter(function (opt) {
|
|
85
|
+
return opt != null;
|
|
86
|
+
});
|
|
87
|
+
return options.length > 1 ? _zod["default"].union(options) : options.length === 1 ? options[0] : undefined;
|
|
88
|
+
}
|
|
89
|
+
case 'ZodDiscriminatedUnion':
|
|
90
|
+
{
|
|
91
|
+
var discUnion = schema;
|
|
92
|
+
var _options = discUnion.options.map(function (opt) {
|
|
93
|
+
return subschema(opt, key);
|
|
94
|
+
}).filter(function (opt) {
|
|
95
|
+
return opt != null;
|
|
96
|
+
});
|
|
97
|
+
return _options.length > 1 ? _zod["default"].discriminatedUnion(discUnion.discriminator, _options) : _options.length === 1 ? _options[0] : undefined;
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
case 'ZodIntersection':
|
|
101
|
+
break;
|
|
102
|
+
case 'ZodTuple':
|
|
103
|
+
{
|
|
104
|
+
var _ref3 = schema,
|
|
105
|
+
items = _ref3.items,
|
|
106
|
+
rest = _ref3._def.rest;
|
|
107
|
+
if (typeof key === 'number' && key > 0 && key < items.length) {
|
|
108
|
+
return items[key];
|
|
109
|
+
}
|
|
110
|
+
if (rest) return rest;
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
case 'ZodRecord':
|
|
114
|
+
{
|
|
115
|
+
var _ref4 = schema,
|
|
116
|
+
keySchema = _ref4.keySchema,
|
|
117
|
+
valueSchema = _ref4.valueSchema;
|
|
118
|
+
if (keySchema.safeParse(key).success) return valueSchema;
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
case 'ZodMap':
|
|
122
|
+
{
|
|
123
|
+
var _ref5 = schema,
|
|
124
|
+
_keySchema = _ref5.keySchema,
|
|
125
|
+
_valueSchema = _ref5.valueSchema;
|
|
126
|
+
if (_keySchema.safeParse(key).success) return _valueSchema;
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
case 'ZodLazy':
|
|
130
|
+
return subschema(schema.schema, key);
|
|
131
|
+
case 'ZodEffects':
|
|
132
|
+
{
|
|
133
|
+
var _ref6 = schema,
|
|
134
|
+
_ref6$_def = _ref6._def,
|
|
135
|
+
type = _ref6$_def.effect.type,
|
|
136
|
+
innerSchema = _ref6$_def.schema;
|
|
137
|
+
if (type === 'refinement') return subschema(innerSchema, key);
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
case 'ZodOptional':
|
|
141
|
+
return subschema(schema.unwrap(), key);
|
|
142
|
+
case 'ZodNullable':
|
|
143
|
+
return subschema(schema.unwrap(), key);
|
|
144
|
+
case 'ZodDefault':
|
|
145
|
+
return subschema(schema.removeDefault(), key);
|
|
146
|
+
case 'ZodCatch':
|
|
147
|
+
return subschema(schema.removeCatch(), key);
|
|
148
|
+
case 'ZodBranded':
|
|
149
|
+
return subschema(schema._def.type, key);
|
|
150
|
+
case 'ZodPipeline':
|
|
151
|
+
return subschema(schema._def.out, key);
|
|
152
|
+
}
|
|
153
|
+
return undefined;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=FieldPath.js.map
|
package/FieldPath.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldPath.js","names":["_zod","_interopRequireDefault","require","_pathstring","_parsePathstring","FieldPath","exports","_ref","schema","path","_classCallCheck2","_defineProperty2","pathstring","_createClass2","key","value","get","parsePathstring","Array","isArray","Error","concat","reduce","field","subfield","_this$subfields","cached","subfields","subschema","_toConsumableArray2","Map","set","root","_def","typeName","z","ZodFirstPartyTypeKind","ZodAny","element","_ref2","shape","_ref2$_def","unknownKeys","catchall","options","map","opt","filter","length","union","undefined","discUnion","discriminatedUnion","discriminator","_ref3","items","rest","_ref4","keySchema","valueSchema","safeParse","success","_ref5","_ref6","_ref6$_def","type","effect","innerSchema","unwrap","removeDefault","removeCatch","out"],"sources":["src/FieldPath.ts"],"sourcesContent":["import z from 'zod'\nimport { pathstring } from './util/pathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\n\nexport type FieldPathForValue<Value, RawValue = any> = FieldPath<\n z.ZodType<Value, any, RawValue>\n>\nexport type FieldPathForRawValue<RawValue> = FieldPath<\n z.ZodType<any, any, RawValue>\n>\n\nexport class FieldPath<T extends z.ZodTypeAny = z.ZodTypeAny> {\n readonly path: BasePath\n readonly pathstring: string\n readonly schema: T\n\n private subfields: Map<SubpathKey<T>, FieldPath> | undefined\n\n private constructor({ schema, path }: { schema: T; path: BasePath }) {\n this.path = path\n this.schema = schema\n this.pathstring = pathstring(path)\n }\n\n static root<T extends z.ZodTypeAny>(schema: T) {\n return new FieldPath({ schema, path: [] })\n }\n\n get<Path extends PathInSchema<T>>(\n path: Path\n ): SchemaAt<T, Path> extends never ? never : FieldPath<SchemaAt<T, Path>>\n get<Pathstring extends PathstringInSchema<T>>(\n path: Pathstring\n ): FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>\n get(path: any): FieldPath {\n if (typeof path === 'string') path = parsePathstring(path)\n if (!Array.isArray(path)) throw new Error(`invalid path: ${path}`)\n return path.reduce((field, key) => field.subfield(key), this)\n }\n\n subfield<K extends SubpathKey<T>>(key: K): FieldPath<SchemaAt<T, [K]>> {\n const cached = this.subfields?.get(key)\n if (cached) return cached as any\n const schema = subschema(this.schema, key)\n if (!schema) throw new Error(`invalid subschema key: ${key}`)\n const subfield = new FieldPath({\n path: [...this.path, key] as any,\n schema: schema as any,\n })\n if (this.subfields == null) this.subfields = new Map()\n this.subfields.set(key, subfield)\n return subfield\n }\n}\n\nexport type BasePath = (string | number)[]\n\nexport type SubpathKey<T extends z.ZodTypeAny> = 0 extends 1 & T\n ? any\n : 0 extends 1 & z.input<T>\n ? any\n : T extends z.ZodObject<infer Shape, infer UnknownKeys>\n ? UnknownKeys extends 'passthrough'\n ? string\n : keyof Shape\n : T extends z.ZodRecord<infer Key, any>\n ? z.input<Key>\n : T extends z.ZodMap<infer Key, any>\n ? z.input<Key>\n : T extends z.ZodArray<any>\n ? number\n : T extends z.ZodTuple<any, any>\n ? number\n : T extends z.ZodLazy<infer U>\n ? SubpathKey<U>\n : T extends z.ZodUnion<infer Options>\n ? SubpathKey<Options[number]>\n : T extends z.ZodDiscriminatedUnion<any, infer Options>\n ? SubpathKey<Options[number]>\n : T extends z.ZodOptional<infer U>\n ? SubpathKey<U>\n : T extends z.ZodNullable<infer U>\n ? SubpathKey<U>\n : T extends z.ZodDefault<infer U>\n ? SubpathKey<U>\n : T extends z.ZodCatch<infer U>\n ? SubpathKey<U>\n : T extends z.ZodEffects<infer U, any>\n ? SubpathKey<U>\n : T extends z.ZodBranded<infer U, any>\n ? SubpathKey<U>\n : never\n\nexport type AllPaths<T extends z.ZodTypeAny> = SubpathKey<T> extends never\n ? []\n : [] | ValuesOf<SubpathKeyMap<T>>\n\ntype ValuesOf<O> = O[keyof O]\n\nexport type SubpathKeyMap<T extends z.ZodTypeAny> = {\n [K in SubpathKey<T>]: [K, ...AllPaths<SchemaAt<T, [K]>>]\n}\n\nfunction subschema(\n schema: z.ZodTypeAny,\n key: string\n): z.ZodTypeAny | undefined {\n switch (schema._def.typeName) {\n case z.ZodFirstPartyTypeKind.ZodAny:\n case 'ZodArray':\n if (typeof key === 'number') return (schema as z.ZodArray<any>).element\n break\n case 'ZodObject': {\n const {\n shape,\n _def: { unknownKeys, catchall },\n } = schema as z.AnyZodObject\n if (key in shape) return shape[key]\n if (unknownKeys === 'passthrough') return catchall\n break\n }\n case 'ZodUnion': {\n const options = (\n schema as z.ZodUnion<[z.ZodTypeAny, ...z.ZodTypeAny[]]>\n ).options\n .map((opt) => subschema(opt, key))\n .filter((opt): opt is z.ZodTypeAny => opt != null)\n return options.length > 1\n ? z.union(options as any)\n : options.length === 1\n ? options[0]\n : undefined\n }\n case 'ZodDiscriminatedUnion': {\n const discUnion = schema as z.ZodDiscriminatedUnion<\n any,\n [z.AnyZodObject, ...z.AnyZodObject[]]\n >\n const options = discUnion.options\n .map((opt) => subschema(opt, key))\n .filter((opt): opt is z.ZodTypeAny => opt != null)\n return options.length > 1\n ? z.discriminatedUnion(discUnion.discriminator, options as any)\n : options.length === 1\n ? options[0]\n : undefined\n break\n }\n case 'ZodIntersection':\n break\n case 'ZodTuple': {\n const {\n items,\n _def: { rest },\n } = schema as z.ZodTuple<any, any>\n if (typeof key === 'number' && key > 0 && key < items.length) {\n return items[key]\n }\n if (rest) return rest\n break\n }\n case 'ZodRecord': {\n const { keySchema, valueSchema } = schema as z.ZodRecord<\n z.ZodTypeAny,\n z.ZodTypeAny\n >\n if (keySchema.safeParse(key).success) return valueSchema\n break\n }\n case 'ZodMap': {\n const { keySchema, valueSchema } = schema as z.ZodMap<\n z.ZodTypeAny,\n z.ZodTypeAny\n >\n if (keySchema.safeParse(key).success) return valueSchema\n break\n }\n case 'ZodLazy':\n return subschema((schema as z.ZodLazy<z.ZodTypeAny>).schema, key)\n case 'ZodEffects': {\n const {\n _def: {\n effect: { type },\n schema: innerSchema,\n },\n } = schema as z.ZodEffects<z.ZodTypeAny, any>\n if (type === 'refinement') return subschema(innerSchema, key)\n break\n }\n case 'ZodOptional':\n return subschema((schema as z.ZodOptional<z.ZodTypeAny>).unwrap(), key)\n case 'ZodNullable':\n return subschema((schema as z.ZodNullable<z.ZodTypeAny>).unwrap(), key)\n case 'ZodDefault':\n return subschema(\n (schema as z.ZodDefault<z.ZodTypeAny>).removeDefault(),\n key\n )\n case 'ZodCatch':\n return subschema((schema as z.ZodCatch<z.ZodTypeAny>).removeCatch(), key)\n case 'ZodBranded':\n return subschema(\n (schema as z.ZodBranded<z.ZodTypeAny, any>)._def.type,\n key\n )\n case 'ZodPipeline':\n return subschema(\n (schema as z.ZodPipeline<z.ZodTypeAny, z.ZodTypeAny>)._def.out,\n key\n )\n }\n return undefined\n}\n"],"mappings":"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","ignoreList":[]}
|
package/FieldPath.mjs
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
import { pathstring } from "./util/pathstring.mjs";
|
|
3
|
+
import { parsePathstring } from "./util/parsePathstring.mjs";
|
|
4
|
+
export class FieldPath {
|
|
5
|
+
path;
|
|
6
|
+
pathstring;
|
|
7
|
+
schema;
|
|
8
|
+
subfields;
|
|
9
|
+
constructor({
|
|
10
|
+
schema,
|
|
11
|
+
path
|
|
12
|
+
}) {
|
|
13
|
+
this.path = path;
|
|
14
|
+
this.schema = schema;
|
|
15
|
+
this.pathstring = pathstring(path);
|
|
16
|
+
}
|
|
17
|
+
static root(schema) {
|
|
18
|
+
return new FieldPath({
|
|
19
|
+
schema,
|
|
20
|
+
path: []
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
get(path) {
|
|
24
|
+
if (typeof path === 'string') path = parsePathstring(path);
|
|
25
|
+
if (!Array.isArray(path)) throw new Error(`invalid path: ${path}`);
|
|
26
|
+
return path.reduce((field, key) => field.subfield(key), this);
|
|
27
|
+
}
|
|
28
|
+
subfield(key) {
|
|
29
|
+
var _this$subfields;
|
|
30
|
+
const cached = (_this$subfields = this.subfields) === null || _this$subfields === void 0 ? void 0 : _this$subfields.get(key);
|
|
31
|
+
if (cached) return cached;
|
|
32
|
+
const schema = subschema(this.schema, key);
|
|
33
|
+
if (!schema) throw new Error(`invalid subschema key: ${key}`);
|
|
34
|
+
const subfield = new FieldPath({
|
|
35
|
+
path: [...this.path, key],
|
|
36
|
+
schema: schema
|
|
37
|
+
});
|
|
38
|
+
if (this.subfields == null) this.subfields = new Map();
|
|
39
|
+
this.subfields.set(key, subfield);
|
|
40
|
+
return subfield;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function subschema(schema, key) {
|
|
44
|
+
switch (schema._def.typeName) {
|
|
45
|
+
case z.ZodFirstPartyTypeKind.ZodAny:
|
|
46
|
+
case 'ZodArray':
|
|
47
|
+
if (typeof key === 'number') return schema.element;
|
|
48
|
+
break;
|
|
49
|
+
case 'ZodObject':
|
|
50
|
+
{
|
|
51
|
+
const {
|
|
52
|
+
shape,
|
|
53
|
+
_def: {
|
|
54
|
+
unknownKeys,
|
|
55
|
+
catchall
|
|
56
|
+
}
|
|
57
|
+
} = schema;
|
|
58
|
+
if (key in shape) return shape[key];
|
|
59
|
+
if (unknownKeys === 'passthrough') return catchall;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
case 'ZodUnion':
|
|
63
|
+
{
|
|
64
|
+
const options = schema.options.map(opt => subschema(opt, key)).filter(opt => opt != null);
|
|
65
|
+
return options.length > 1 ? z.union(options) : options.length === 1 ? options[0] : undefined;
|
|
66
|
+
}
|
|
67
|
+
case 'ZodDiscriminatedUnion':
|
|
68
|
+
{
|
|
69
|
+
const discUnion = schema;
|
|
70
|
+
const options = discUnion.options.map(opt => subschema(opt, key)).filter(opt => opt != null);
|
|
71
|
+
return options.length > 1 ? z.discriminatedUnion(discUnion.discriminator, options) : options.length === 1 ? options[0] : undefined;
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
case 'ZodIntersection':
|
|
75
|
+
break;
|
|
76
|
+
case 'ZodTuple':
|
|
77
|
+
{
|
|
78
|
+
const {
|
|
79
|
+
items,
|
|
80
|
+
_def: {
|
|
81
|
+
rest
|
|
82
|
+
}
|
|
83
|
+
} = schema;
|
|
84
|
+
if (typeof key === 'number' && key > 0 && key < items.length) {
|
|
85
|
+
return items[key];
|
|
86
|
+
}
|
|
87
|
+
if (rest) return rest;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
case 'ZodRecord':
|
|
91
|
+
{
|
|
92
|
+
const {
|
|
93
|
+
keySchema,
|
|
94
|
+
valueSchema
|
|
95
|
+
} = schema;
|
|
96
|
+
if (keySchema.safeParse(key).success) return valueSchema;
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
case 'ZodMap':
|
|
100
|
+
{
|
|
101
|
+
const {
|
|
102
|
+
keySchema,
|
|
103
|
+
valueSchema
|
|
104
|
+
} = schema;
|
|
105
|
+
if (keySchema.safeParse(key).success) return valueSchema;
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
case 'ZodLazy':
|
|
109
|
+
return subschema(schema.schema, key);
|
|
110
|
+
case 'ZodEffects':
|
|
111
|
+
{
|
|
112
|
+
const {
|
|
113
|
+
_def: {
|
|
114
|
+
effect: {
|
|
115
|
+
type
|
|
116
|
+
},
|
|
117
|
+
schema: innerSchema
|
|
118
|
+
}
|
|
119
|
+
} = schema;
|
|
120
|
+
if (type === 'refinement') return subschema(innerSchema, key);
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
case 'ZodOptional':
|
|
124
|
+
return subschema(schema.unwrap(), key);
|
|
125
|
+
case 'ZodNullable':
|
|
126
|
+
return subschema(schema.unwrap(), key);
|
|
127
|
+
case 'ZodDefault':
|
|
128
|
+
return subschema(schema.removeDefault(), key);
|
|
129
|
+
case 'ZodCatch':
|
|
130
|
+
return subschema(schema.removeCatch(), key);
|
|
131
|
+
case 'ZodBranded':
|
|
132
|
+
return subschema(schema._def.type, key);
|
|
133
|
+
case 'ZodPipeline':
|
|
134
|
+
return subschema(schema._def.out, key);
|
|
135
|
+
}
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=FieldPath.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldPath.mjs","names":["z","pathstring","parsePathstring","FieldPath","path","schema","subfields","constructor","root","get","Array","isArray","Error","reduce","field","key","subfield","_this$subfields","cached","subschema","Map","set","_def","typeName","ZodFirstPartyTypeKind","ZodAny","element","shape","unknownKeys","catchall","options","map","opt","filter","length","union","undefined","discUnion","discriminatedUnion","discriminator","items","rest","keySchema","valueSchema","safeParse","success","effect","type","innerSchema","unwrap","removeDefault","removeCatch","out"],"sources":["src/FieldPath.ts"],"sourcesContent":["import z from 'zod'\nimport { pathstring } from './util/pathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\n\nexport type FieldPathForValue<Value, RawValue = any> = FieldPath<\n z.ZodType<Value, any, RawValue>\n>\nexport type FieldPathForRawValue<RawValue> = FieldPath<\n z.ZodType<any, any, RawValue>\n>\n\nexport class FieldPath<T extends z.ZodTypeAny = z.ZodTypeAny> {\n readonly path: BasePath\n readonly pathstring: string\n readonly schema: T\n\n private subfields: Map<SubpathKey<T>, FieldPath> | undefined\n\n private constructor({ schema, path }: { schema: T; path: BasePath }) {\n this.path = path\n this.schema = schema\n this.pathstring = pathstring(path)\n }\n\n static root<T extends z.ZodTypeAny>(schema: T) {\n return new FieldPath({ schema, path: [] })\n }\n\n get<Path extends PathInSchema<T>>(\n path: Path\n ): SchemaAt<T, Path> extends never ? never : FieldPath<SchemaAt<T, Path>>\n get<Pathstring extends PathstringInSchema<T>>(\n path: Pathstring\n ): FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>\n get(path: any): FieldPath {\n if (typeof path === 'string') path = parsePathstring(path)\n if (!Array.isArray(path)) throw new Error(`invalid path: ${path}`)\n return path.reduce((field, key) => field.subfield(key), this)\n }\n\n subfield<K extends SubpathKey<T>>(key: K): FieldPath<SchemaAt<T, [K]>> {\n const cached = this.subfields?.get(key)\n if (cached) return cached as any\n const schema = subschema(this.schema, key)\n if (!schema) throw new Error(`invalid subschema key: ${key}`)\n const subfield = new FieldPath({\n path: [...this.path, key] as any,\n schema: schema as any,\n })\n if (this.subfields == null) this.subfields = new Map()\n this.subfields.set(key, subfield)\n return subfield\n }\n}\n\nexport type BasePath = (string | number)[]\n\nexport type SubpathKey<T extends z.ZodTypeAny> = 0 extends 1 & T\n ? any\n : 0 extends 1 & z.input<T>\n ? any\n : T extends z.ZodObject<infer Shape, infer UnknownKeys>\n ? UnknownKeys extends 'passthrough'\n ? string\n : keyof Shape\n : T extends z.ZodRecord<infer Key, any>\n ? z.input<Key>\n : T extends z.ZodMap<infer Key, any>\n ? z.input<Key>\n : T extends z.ZodArray<any>\n ? number\n : T extends z.ZodTuple<any, any>\n ? number\n : T extends z.ZodLazy<infer U>\n ? SubpathKey<U>\n : T extends z.ZodUnion<infer Options>\n ? SubpathKey<Options[number]>\n : T extends z.ZodDiscriminatedUnion<any, infer Options>\n ? SubpathKey<Options[number]>\n : T extends z.ZodOptional<infer U>\n ? SubpathKey<U>\n : T extends z.ZodNullable<infer U>\n ? SubpathKey<U>\n : T extends z.ZodDefault<infer U>\n ? SubpathKey<U>\n : T extends z.ZodCatch<infer U>\n ? SubpathKey<U>\n : T extends z.ZodEffects<infer U, any>\n ? SubpathKey<U>\n : T extends z.ZodBranded<infer U, any>\n ? SubpathKey<U>\n : never\n\nexport type AllPaths<T extends z.ZodTypeAny> = SubpathKey<T> extends never\n ? []\n : [] | ValuesOf<SubpathKeyMap<T>>\n\ntype ValuesOf<O> = O[keyof O]\n\nexport type SubpathKeyMap<T extends z.ZodTypeAny> = {\n [K in SubpathKey<T>]: [K, ...AllPaths<SchemaAt<T, [K]>>]\n}\n\nfunction subschema(\n schema: z.ZodTypeAny,\n key: string\n): z.ZodTypeAny | undefined {\n switch (schema._def.typeName) {\n case z.ZodFirstPartyTypeKind.ZodAny:\n case 'ZodArray':\n if (typeof key === 'number') return (schema as z.ZodArray<any>).element\n break\n case 'ZodObject': {\n const {\n shape,\n _def: { unknownKeys, catchall },\n } = schema as z.AnyZodObject\n if (key in shape) return shape[key]\n if (unknownKeys === 'passthrough') return catchall\n break\n }\n case 'ZodUnion': {\n const options = (\n schema as z.ZodUnion<[z.ZodTypeAny, ...z.ZodTypeAny[]]>\n ).options\n .map((opt) => subschema(opt, key))\n .filter((opt): opt is z.ZodTypeAny => opt != null)\n return options.length > 1\n ? z.union(options as any)\n : options.length === 1\n ? options[0]\n : undefined\n }\n case 'ZodDiscriminatedUnion': {\n const discUnion = schema as z.ZodDiscriminatedUnion<\n any,\n [z.AnyZodObject, ...z.AnyZodObject[]]\n >\n const options = discUnion.options\n .map((opt) => subschema(opt, key))\n .filter((opt): opt is z.ZodTypeAny => opt != null)\n return options.length > 1\n ? z.discriminatedUnion(discUnion.discriminator, options as any)\n : options.length === 1\n ? options[0]\n : undefined\n break\n }\n case 'ZodIntersection':\n break\n case 'ZodTuple': {\n const {\n items,\n _def: { rest },\n } = schema as z.ZodTuple<any, any>\n if (typeof key === 'number' && key > 0 && key < items.length) {\n return items[key]\n }\n if (rest) return rest\n break\n }\n case 'ZodRecord': {\n const { keySchema, valueSchema } = schema as z.ZodRecord<\n z.ZodTypeAny,\n z.ZodTypeAny\n >\n if (keySchema.safeParse(key).success) return valueSchema\n break\n }\n case 'ZodMap': {\n const { keySchema, valueSchema } = schema as z.ZodMap<\n z.ZodTypeAny,\n z.ZodTypeAny\n >\n if (keySchema.safeParse(key).success) return valueSchema\n break\n }\n case 'ZodLazy':\n return subschema((schema as z.ZodLazy<z.ZodTypeAny>).schema, key)\n case 'ZodEffects': {\n const {\n _def: {\n effect: { type },\n schema: innerSchema,\n },\n } = schema as z.ZodEffects<z.ZodTypeAny, any>\n if (type === 'refinement') return subschema(innerSchema, key)\n break\n }\n case 'ZodOptional':\n return subschema((schema as z.ZodOptional<z.ZodTypeAny>).unwrap(), key)\n case 'ZodNullable':\n return subschema((schema as z.ZodNullable<z.ZodTypeAny>).unwrap(), key)\n case 'ZodDefault':\n return subschema(\n (schema as z.ZodDefault<z.ZodTypeAny>).removeDefault(),\n key\n )\n case 'ZodCatch':\n return subschema((schema as z.ZodCatch<z.ZodTypeAny>).removeCatch(), key)\n case 'ZodBranded':\n return subschema(\n (schema as z.ZodBranded<z.ZodTypeAny, any>)._def.type,\n key\n )\n case 'ZodPipeline':\n return subschema(\n (schema as z.ZodPipeline<z.ZodTypeAny, z.ZodTypeAny>)._def.out,\n key\n )\n }\n return undefined\n}\n"],"mappings":"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","ignoreList":[]}
|
package/FormAction.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
import { SetMountedAction } from './actions/setMounted';
|
|
3
|
+
import { InitializeAction } from './actions/initialize';
|
|
4
|
+
import { SetValueAction } from './actions/setValue';
|
|
5
|
+
import { SetRawValueAction } from './actions/setRawValue';
|
|
6
|
+
import { SetMetaAction } from './actions/setMeta';
|
|
7
|
+
import { FieldPath } from './FieldPath';
|
|
8
|
+
import { SubmitAction } from './actions/submit';
|
|
9
|
+
import { SubmitSucceededAction } from './actions/submitSucceeded';
|
|
10
|
+
import { SetSubmitStatusAction } from './actions/setSubmitStatus';
|
|
11
|
+
import { AddHandlersAction } from './actions/addHandlers';
|
|
12
|
+
import { RemoveHandlersAction } from './actions/removeHandlers';
|
|
13
|
+
import { ArrayAction } from './actions/arrayActions';
|
|
14
|
+
export type FormAction<T extends z.ZodTypeAny> = SetMountedAction | InitializeAction<T> | SetValueAction<FieldPath> | SetRawValueAction<FieldPath> | SetMetaAction<FieldPath> | AddHandlersAction<T> | RemoveHandlersAction<T> | SubmitAction | SubmitSucceededAction | SetSubmitStatusAction<T> | ArrayAction;
|
|
15
|
+
//# sourceMappingURL=FormAction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormAction.d.ts","sourceRoot":"","sources":["src/FormAction.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IACzC,gBAAgB,GAChB,gBAAgB,CAAC,CAAC,CAAC,GACnB,cAAc,CAAC,SAAS,CAAC,GACzB,iBAAiB,CAAC,SAAS,CAAC,GAC5B,aAAa,CAAC,SAAS,CAAC,GACxB,iBAAiB,CAAC,CAAC,CAAC,GACpB,oBAAoB,CAAC,CAAC,CAAC,GACvB,YAAY,GACZ,qBAAqB,GACrB,qBAAqB,CAAC,CAAC,CAAC,GACxB,WAAW,CAAA"}
|
package/FormAction.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormAction.js","names":[],"sources":["src/FormAction.ts"],"sourcesContent":["import z from 'zod'\nimport { SetMountedAction } from './actions/setMounted'\nimport { InitializeAction } from './actions/initialize'\nimport { SetValueAction } from './actions/setValue'\nimport { SetRawValueAction } from './actions/setRawValue'\nimport { SetMetaAction } from './actions/setMeta'\nimport { FieldPath } from './FieldPath'\nimport { SubmitAction } from './actions/submit'\nimport { SubmitSucceededAction } from './actions/submitSucceeded'\nimport { SetSubmitStatusAction } from './actions/setSubmitStatus'\nimport { AddHandlersAction } from './actions/addHandlers'\nimport { RemoveHandlersAction } from './actions/removeHandlers'\nimport { ArrayAction } from './actions/arrayActions'\n\nexport type FormAction<T extends z.ZodTypeAny> =\n | SetMountedAction\n | InitializeAction<T>\n | SetValueAction<FieldPath>\n | SetRawValueAction<FieldPath>\n | SetMetaAction<FieldPath>\n | AddHandlersAction<T>\n | RemoveHandlersAction<T>\n | SubmitAction\n | SubmitSucceededAction\n | SetSubmitStatusAction<T>\n | ArrayAction\n"],"mappings":"","ignoreList":[]}
|
package/FormAction.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormAction.mjs","names":[],"sources":["src/FormAction.ts"],"sourcesContent":["import z from 'zod'\nimport { SetMountedAction } from './actions/setMounted'\nimport { InitializeAction } from './actions/initialize'\nimport { SetValueAction } from './actions/setValue'\nimport { SetRawValueAction } from './actions/setRawValue'\nimport { SetMetaAction } from './actions/setMeta'\nimport { FieldPath } from './FieldPath'\nimport { SubmitAction } from './actions/submit'\nimport { SubmitSucceededAction } from './actions/submitSucceeded'\nimport { SetSubmitStatusAction } from './actions/setSubmitStatus'\nimport { AddHandlersAction } from './actions/addHandlers'\nimport { RemoveHandlersAction } from './actions/removeHandlers'\nimport { ArrayAction } from './actions/arrayActions'\n\nexport type FormAction<T extends z.ZodTypeAny> =\n | SetMountedAction\n | InitializeAction<T>\n | SetValueAction<FieldPath>\n | SetRawValueAction<FieldPath>\n | SetMetaAction<FieldPath>\n | AddHandlersAction<T>\n | RemoveHandlersAction<T>\n | SubmitAction\n | SubmitSucceededAction\n | SetSubmitStatusAction<T>\n | ArrayAction\n"],"mappings":"","ignoreList":[]}
|
package/FormContext.d.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import z from 'zod';
|
|
3
|
+
import { FieldPath } from './FieldPath';
|
|
4
|
+
import { initialize } from './actions/initialize';
|
|
5
|
+
import { setRawValue } from './actions/setRawValue';
|
|
6
|
+
import { setValue } from './actions/setValue';
|
|
7
|
+
import { submit } from './actions/submit';
|
|
8
|
+
import { setSubmitStatus } from './actions/setSubmitStatus';
|
|
9
|
+
import { SelectFormValues } from './createSelectFormValues';
|
|
10
|
+
import { SelectFieldErrorMap } from './createSelectFieldErrorMap';
|
|
11
|
+
import { createSelectFormStatus, SelectFormStatus } from './createSelectFormStatus';
|
|
12
|
+
import { setMeta } from './actions/setMeta';
|
|
13
|
+
import { addHandlers } from './actions/addHandlers';
|
|
14
|
+
import { removeHandlers } from './actions/removeHandlers';
|
|
15
|
+
import { arrayActions } from './actions/arrayActions';
|
|
16
|
+
export declare const FormContext: React.Context<FormContextProps<z.ZodTypeAny> | null>;
|
|
17
|
+
export type FormContextProps<T extends z.ZodTypeAny> = {
|
|
18
|
+
schema: T;
|
|
19
|
+
inverseSchema: z.ZodType<z.input<T>, any, z.output<T>>;
|
|
20
|
+
root: FieldPath<T>;
|
|
21
|
+
initialize: typeof initialize<T>;
|
|
22
|
+
addHandlers: typeof addHandlers<T>;
|
|
23
|
+
removeHandlers: typeof removeHandlers<T>;
|
|
24
|
+
setMeta: typeof setMeta;
|
|
25
|
+
setRawValue: typeof setRawValue;
|
|
26
|
+
setValue: typeof setValue;
|
|
27
|
+
submit: typeof submit;
|
|
28
|
+
setSubmitStatus: typeof setSubmitStatus<T>;
|
|
29
|
+
arrayActions: typeof arrayActions;
|
|
30
|
+
selectFormStatus: SelectFormStatus;
|
|
31
|
+
selectFieldErrorMap: SelectFieldErrorMap;
|
|
32
|
+
selectFormValues: SelectFormValues<T>;
|
|
33
|
+
getValues: () => z.output<T> | undefined;
|
|
34
|
+
getRawValues: () => unknown;
|
|
35
|
+
getInitialValues: () => z.output<T> | undefined;
|
|
36
|
+
getRawInitialValues: () => unknown;
|
|
37
|
+
getStatus: () => ReturnType<ReturnType<typeof createSelectFormStatus>>;
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=FormContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormContext.d.ts","sourceRoot":"","sources":["src/FormContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAErD,eAAO,MAAM,WAAW,sDAC0C,CAAA;AAElE,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAAI;IACrD,MAAM,EAAE,CAAC,CAAA;IACT,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACtD,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAClB,UAAU,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAA;IAChC,WAAW,EAAE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAA;IAClC,cAAc,EAAE,OAAO,cAAc,CAAC,CAAC,CAAC,CAAA;IACxC,OAAO,EAAE,OAAO,OAAO,CAAA;IACvB,WAAW,EAAE,OAAO,WAAW,CAAA;IAC/B,QAAQ,EAAE,OAAO,QAAQ,CAAA;IACzB,MAAM,EAAE,OAAO,MAAM,CAAA;IACrB,eAAe,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,CAAA;IAC1C,YAAY,EAAE,OAAO,YAAY,CAAA;IACjC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACrC,SAAS,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IACxC,YAAY,EAAE,MAAM,OAAO,CAAA;IAC3B,gBAAgB,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IAC/C,mBAAmB,EAAE,MAAM,OAAO,CAAA;IAClC,SAAS,EAAE,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAA;CACvE,CAAA"}
|
package/FormContext.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.FormContext = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var FormContext = exports.FormContext = /*#__PURE__*/_react["default"].createContext(null);
|
|
10
|
+
//# sourceMappingURL=FormContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormContext.js","names":["_react","_interopRequireDefault","require","FormContext","exports","React","createContext"],"sources":["src/FormContext.ts"],"sourcesContent":["import React from 'react'\nimport z from 'zod'\nimport { FieldPath } from './FieldPath'\nimport { initialize } from './actions/initialize'\nimport { setRawValue } from './actions/setRawValue'\nimport { setValue } from './actions/setValue'\nimport { submit } from './actions/submit'\nimport { setSubmitStatus } from './actions/setSubmitStatus'\nimport { SelectFormValues } from './createSelectFormValues'\nimport { SelectFieldErrorMap } from './createSelectFieldErrorMap'\nimport {\n createSelectFormStatus,\n SelectFormStatus,\n} from './createSelectFormStatus'\nimport { setMeta } from './actions/setMeta'\nimport { addHandlers } from './actions/addHandlers'\nimport { removeHandlers } from './actions/removeHandlers'\nimport { arrayActions } from './actions/arrayActions'\n\nexport const FormContext =\n React.createContext<FormContextProps<z.ZodTypeAny> | null>(null)\n\nexport type FormContextProps<T extends z.ZodTypeAny> = {\n schema: T\n inverseSchema: z.ZodType<z.input<T>, any, z.output<T>>\n root: FieldPath<T>\n initialize: typeof initialize<T>\n addHandlers: typeof addHandlers<T>\n removeHandlers: typeof removeHandlers<T>\n setMeta: typeof setMeta\n setRawValue: typeof setRawValue\n setValue: typeof setValue\n submit: typeof submit\n setSubmitStatus: typeof setSubmitStatus<T>\n arrayActions: typeof arrayActions\n selectFormStatus: SelectFormStatus\n selectFieldErrorMap: SelectFieldErrorMap\n selectFormValues: SelectFormValues<T>\n getValues: () => z.output<T> | undefined\n getRawValues: () => unknown\n getInitialValues: () => z.output<T> | undefined\n getRawInitialValues: () => unknown\n getStatus: () => ReturnType<ReturnType<typeof createSelectFormStatus>>\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAmBO,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,gBACtBE,iBAAK,CAACC,aAAa,CAAwC,IAAI,CAAC","ignoreList":[]}
|
package/FormContext.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormContext.mjs","names":["React","FormContext","createContext"],"sources":["src/FormContext.ts"],"sourcesContent":["import React from 'react'\nimport z from 'zod'\nimport { FieldPath } from './FieldPath'\nimport { initialize } from './actions/initialize'\nimport { setRawValue } from './actions/setRawValue'\nimport { setValue } from './actions/setValue'\nimport { submit } from './actions/submit'\nimport { setSubmitStatus } from './actions/setSubmitStatus'\nimport { SelectFormValues } from './createSelectFormValues'\nimport { SelectFieldErrorMap } from './createSelectFieldErrorMap'\nimport {\n createSelectFormStatus,\n SelectFormStatus,\n} from './createSelectFormStatus'\nimport { setMeta } from './actions/setMeta'\nimport { addHandlers } from './actions/addHandlers'\nimport { removeHandlers } from './actions/removeHandlers'\nimport { arrayActions } from './actions/arrayActions'\n\nexport const FormContext =\n React.createContext<FormContextProps<z.ZodTypeAny> | null>(null)\n\nexport type FormContextProps<T extends z.ZodTypeAny> = {\n schema: T\n inverseSchema: z.ZodType<z.input<T>, any, z.output<T>>\n root: FieldPath<T>\n initialize: typeof initialize<T>\n addHandlers: typeof addHandlers<T>\n removeHandlers: typeof removeHandlers<T>\n setMeta: typeof setMeta\n setRawValue: typeof setRawValue\n setValue: typeof setValue\n submit: typeof submit\n setSubmitStatus: typeof setSubmitStatus<T>\n arrayActions: typeof arrayActions\n selectFormStatus: SelectFormStatus\n selectFieldErrorMap: SelectFieldErrorMap\n selectFormValues: SelectFormValues<T>\n getValues: () => z.output<T> | undefined\n getRawValues: () => unknown\n getInitialValues: () => z.output<T> | undefined\n getRawInitialValues: () => unknown\n getStatus: () => ReturnType<ReturnType<typeof createSelectFormStatus>>\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAmBzB,OAAO,MAAMC,WAAW,gBACtBD,KAAK,CAACE,aAAa,CAAwC,IAAI,CAAC","ignoreList":[]}
|
package/FormState.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
export type FieldMeta = {
|
|
3
|
+
touched: boolean;
|
|
4
|
+
visited: boolean;
|
|
5
|
+
};
|
|
6
|
+
export type SubmitHandler<T extends z.ZodTypeAny> = (values: z.output<T>, options: {
|
|
7
|
+
initialValues: z.output<T>;
|
|
8
|
+
}) => void | Promise<void>;
|
|
9
|
+
export type SubmitSuccededHandler = () => void;
|
|
10
|
+
export type SubmitFailedHandler = (error: Error) => void;
|
|
11
|
+
export type FormState<T extends z.ZodTypeAny> = {
|
|
12
|
+
mounted: boolean;
|
|
13
|
+
initialized: boolean;
|
|
14
|
+
fieldMeta: Record<string, FieldMeta>;
|
|
15
|
+
rawValues?: unknown;
|
|
16
|
+
values?: z.output<T>;
|
|
17
|
+
submittedValues?: z.output<T>;
|
|
18
|
+
rawSubmittedValues?: z.input<T>;
|
|
19
|
+
rawInitialValues?: unknown;
|
|
20
|
+
initialValues?: z.output<T>;
|
|
21
|
+
validationError?: any;
|
|
22
|
+
submitPromise?: Promise<void>;
|
|
23
|
+
onSubmit: Set<SubmitHandler<T>>;
|
|
24
|
+
onSubmitSucceeded: Set<SubmitSuccededHandler>;
|
|
25
|
+
onSubmitFailed: Set<SubmitFailedHandler>;
|
|
26
|
+
submitting: boolean;
|
|
27
|
+
submitSucceeded: boolean;
|
|
28
|
+
submitFailed: boolean;
|
|
29
|
+
submitError?: Error;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=FormState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormState.d.ts","sourceRoot":"","sources":["src/FormState.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAAI,CAClD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE;IAAE,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;CAAE,KACpC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEzB,MAAM,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAA;AAE9C,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;AAExD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAAI;IAC9C,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACpC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACpB,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC7B,kBAAkB,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC3B,eAAe,CAAC,EAAE,GAAG,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,QAAQ,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/B,iBAAiB,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAA;IAC7C,cAAc,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAA;IACxC,UAAU,EAAE,OAAO,CAAA;IACnB,eAAe,EAAE,OAAO,CAAA;IACxB,YAAY,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,KAAK,CAAA;CACpB,CAAA"}
|
package/FormState.js
ADDED
package/FormState.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormState.js","names":[],"sources":["src/FormState.ts"],"sourcesContent":["import z from 'zod'\n\nexport type FieldMeta = {\n touched: boolean\n visited: boolean\n}\n\nexport type SubmitHandler<T extends z.ZodTypeAny> = (\n values: z.output<T>,\n options: { initialValues: z.output<T> }\n) => void | Promise<void>\n\nexport type SubmitSuccededHandler = () => void\n\nexport type SubmitFailedHandler = (error: Error) => void\n\nexport type FormState<T extends z.ZodTypeAny> = {\n mounted: boolean\n initialized: boolean\n fieldMeta: Record<string, FieldMeta>\n rawValues?: unknown\n values?: z.output<T>\n submittedValues?: z.output<T>\n rawSubmittedValues?: z.input<T>\n rawInitialValues?: unknown\n initialValues?: z.output<T>\n validationError?: any\n submitPromise?: Promise<void>\n onSubmit: Set<SubmitHandler<T>>\n onSubmitSucceeded: Set<SubmitSuccededHandler>\n onSubmitFailed: Set<SubmitFailedHandler>\n submitting: boolean\n submitSucceeded: boolean\n submitFailed: boolean\n submitError?: Error\n}\n"],"mappings":"","ignoreList":[]}
|
package/FormState.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormState.mjs","names":[],"sources":["src/FormState.ts"],"sourcesContent":["import z from 'zod'\n\nexport type FieldMeta = {\n touched: boolean\n visited: boolean\n}\n\nexport type SubmitHandler<T extends z.ZodTypeAny> = (\n values: z.output<T>,\n options: { initialValues: z.output<T> }\n) => void | Promise<void>\n\nexport type SubmitSuccededHandler = () => void\n\nexport type SubmitFailedHandler = (error: Error) => void\n\nexport type FormState<T extends z.ZodTypeAny> = {\n mounted: boolean\n initialized: boolean\n fieldMeta: Record<string, FieldMeta>\n rawValues?: unknown\n values?: z.output<T>\n submittedValues?: z.output<T>\n rawSubmittedValues?: z.input<T>\n rawInitialValues?: unknown\n initialValues?: z.output<T>\n validationError?: any\n submitPromise?: Promise<void>\n onSubmit: Set<SubmitHandler<T>>\n onSubmitSucceeded: Set<SubmitSuccededHandler>\n onSubmitFailed: Set<SubmitFailedHandler>\n submitting: boolean\n submitSucceeded: boolean\n submitFailed: boolean\n submitError?: Error\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ReactReduxContextValue } from 'react-redux';
|
|
4
|
+
import { FormState } from './FormState';
|
|
5
|
+
import { FormAction } from './FormAction';
|
|
6
|
+
export declare const FormStateContext: React.Context<ReactReduxContextValue<FormState<z.ZodTypeAny>, FormAction<z.ZodTypeAny>> | null>;
|
|
7
|
+
export type FormStateContext<T extends z.ZodTypeAny> = React.Context<ReactReduxContextValue<FormState<T>, FormAction<T>> | null>;
|
|
8
|
+
//# sourceMappingURL=FormStateContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormStateContext.d.ts","sourceRoot":"","sources":["src/FormStateContext.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,eAAO,MAAM,gBAAgB,iGAGd,CAAA;AAEf,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IACjD,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.FormStateContext = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var FormStateContext = exports.FormStateContext = /*#__PURE__*/_react["default"].createContext(null);
|
|
10
|
+
//# sourceMappingURL=FormStateContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormStateContext.js","names":["_react","_interopRequireDefault","require","FormStateContext","exports","React","createContext"],"sources":["src/FormStateContext.ts"],"sourcesContent":["import z from 'zod'\nimport React from 'react'\nimport { ReactReduxContextValue } from 'react-redux'\nimport { FormState } from './FormState'\nimport { FormAction } from './FormAction'\n\nexport const FormStateContext = React.createContext<ReactReduxContextValue<\n FormState<z.ZodTypeAny>,\n FormAction<z.ZodTypeAny>\n> | null>(null)\n\nexport type FormStateContext<T extends z.ZodTypeAny> =\n React.Context<ReactReduxContextValue<FormState<T>, FormAction<T>> | null>\n"],"mappings":";;;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKO,IAAMC,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,gBAAGE,iBAAK,CAACC,aAAa,CAGzC,IAAI,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormStateContext.mjs","names":["React","FormStateContext","createContext"],"sources":["src/FormStateContext.ts"],"sourcesContent":["import z from 'zod'\nimport React from 'react'\nimport { ReactReduxContextValue } from 'react-redux'\nimport { FormState } from './FormState'\nimport { FormAction } from './FormAction'\n\nexport const FormStateContext = React.createContext<ReactReduxContextValue<\n FormState<z.ZodTypeAny>,\n FormAction<z.ZodTypeAny>\n> | null>(null)\n\nexport type FormStateContext<T extends z.ZodTypeAny> =\n React.Context<ReactReduxContextValue<FormState<T>, FormAction<T>> | null>\n"],"mappings":"AACA,OAAOA,KAAK,MAAM,OAAO;AAKzB,OAAO,MAAMC,gBAAgB,gBAAGD,KAAK,CAACE,aAAa,CAGzC,IAAI,CAAC","ignoreList":[]}
|