@epic-web/workshop-app 6.77.0 → 6.77.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/client/assets/{_exerciseNumber-C1aZpAWV.js → _exerciseNumber-JuXb6JTN.js} +2 -2
- package/build/client/assets/{_exerciseNumber-C1aZpAWV.js.map → _exerciseNumber-JuXb6JTN.js.map} +1 -1
- package/build/client/assets/{_exerciseNumber_.finished-BICggZV1.js → _exerciseNumber_.finished-DD-1txyR.js} +2 -2
- package/build/client/assets/{_exerciseNumber_.finished-BICggZV1.js.map → _exerciseNumber_.finished-DD-1txyR.js.map} +1 -1
- package/build/client/assets/_extra-BfK-kKBL.js +2 -0
- package/build/client/assets/_extra-BfK-kKBL.js.map +1 -0
- package/build/client/assets/{_layout-BZI3FoQD.js → _layout-BsHVX3B_.js} +2 -2
- package/build/client/assets/{_layout-BZI3FoQD.js.map → _layout-BsHVX3B_.js.map} +1 -1
- package/build/client/assets/{_layout-CunOyAg4.js → _layout-CDyeQVKG.js} +2 -2
- package/build/client/assets/{_layout-CunOyAg4.js.map → _layout-CDyeQVKG.js.map} +1 -1
- package/build/client/assets/_layout-mVyOtxmC.js +2 -0
- package/build/client/assets/_layout-mVyOtxmC.js.map +1 -0
- package/build/client/assets/{account-C96cpeZR.js → account-BKXMYhfO.js} +2 -2
- package/build/client/assets/{account-C96cpeZR.js.map → account-BKXMYhfO.js.map} +1 -1
- package/build/client/assets/{app-CJniokic.js → app-AWsnszeo.js} +2 -2
- package/build/client/assets/{app-CJniokic.js.map → app-AWsnszeo.js.map} +1 -1
- package/build/client/assets/{cache-CAr50MIB.js → cache-CxMFS2A_.js} +2 -2
- package/build/client/assets/{cache-CAr50MIB.js.map → cache-CxMFS2A_.js.map} +1 -1
- package/build/client/assets/{db-DAnX-T3_.js → db-BZ-tFzMp.js} +2 -2
- package/build/client/assets/{db-DAnX-T3_.js.map → db-BZ-tFzMp.js.map} +1 -1
- package/build/client/assets/{diff-D8TUonC2.js → diff-0VO9C_Sf.js} +2 -2
- package/build/client/assets/{diff-D8TUonC2.js.map → diff-0VO9C_Sf.js.map} +1 -1
- package/build/client/assets/{diff-Col_iM3X.js → diff-CC_jaH50.js} +2 -2
- package/build/client/assets/{diff-Col_iM3X.js.map → diff-CC_jaH50.js.map} +1 -1
- package/build/client/assets/discord-BVfxP4Rd.js +2 -0
- package/build/client/assets/discord-BVfxP4Rd.js.map +1 -0
- package/build/client/assets/{discord-BJkw0IrB.js → discord-XhHqPI49.js} +2 -2
- package/build/client/assets/{discord-BJkw0IrB.js.map → discord-XhHqPI49.js.map} +1 -1
- package/build/client/assets/{epic-video-BJW6MU1i.js → epic-video-D4jBdSKs.js} +2 -2
- package/build/client/assets/{epic-video-BJW6MU1i.js.map → epic-video-D4jBdSKs.js.map} +1 -1
- package/build/client/assets/{epic-video-jtxu_0bl.js → epic-video-Ddc9rYLT.js} +2 -2
- package/build/client/assets/{epic-video-jtxu_0bl.js.map → epic-video-Ddc9rYLT.js.map} +1 -1
- package/build/client/assets/{finished-C2jP5uE7.js → finished-BSfM_f4M.js} +2 -2
- package/build/client/assets/{finished-C2jP5uE7.js.map → finished-BSfM_f4M.js.map} +1 -1
- package/build/client/assets/{index-CdzVFL-Z.js → index-BrVvTrwg.js} +2 -2
- package/build/client/assets/{index-CdzVFL-Z.js.map → index-BrVvTrwg.js.map} +1 -1
- package/build/client/assets/{index-Dpyv8N6m.js → index-CfPaTqRT.js} +2 -2
- package/build/client/assets/{index-Dpyv8N6m.js.map → index-CfPaTqRT.js.map} +1 -1
- package/build/client/assets/{index-X8or9u7t.js → index-CuCZuiBp.js} +2 -2
- package/build/client/assets/{index-X8or9u7t.js.map → index-CuCZuiBp.js.map} +1 -1
- package/build/client/assets/{index-KRgoKRWG.js → index-D0vH1MiQ.js} +2 -2
- package/build/client/assets/{index-KRgoKRWG.js.map → index-D0vH1MiQ.js.map} +1 -1
- package/build/client/assets/{index-BCQgVrao.js → index-DTC_5pri.js} +2 -2
- package/build/client/assets/{index-BCQgVrao.js.map → index-DTC_5pri.js.map} +1 -1
- package/build/client/assets/{launch-editor-D2exGfVu.js → launch-editor-0oPpbFQe.js} +2 -2
- package/build/client/assets/{launch-editor-D2exGfVu.js.map → launch-editor-0oPpbFQe.js.map} +1 -1
- package/build/client/assets/{loading-CDNzW5oO.js → loading-CaCCsk9k.js} +2 -2
- package/build/client/assets/{loading-CDNzW5oO.js.map → loading-CaCCsk9k.js.map} +1 -1
- package/build/client/assets/{login-mWjVXGbJ.js → login-w4y7RVYa.js} +2 -2
- package/build/client/assets/{login-mWjVXGbJ.js.map → login-w4y7RVYa.js.map} +1 -1
- package/build/client/assets/{manifest-dd28a0e5.js → manifest-a63db2d2.js} +1 -1
- package/build/client/assets/{mdx-DdpoOTHm.js → mdx-DwvWT4Ou.js} +2 -2
- package/build/client/assets/{mdx-DdpoOTHm.js.map → mdx-DwvWT4Ou.js.map} +1 -1
- package/build/client/assets/{onboarding-indicator-B-XR90_G.js → onboarding-indicator-BkeHYs2C.js} +2 -2
- package/build/client/assets/{onboarding-indicator-B-XR90_G.js.map → onboarding-indicator-BkeHYs2C.js.map} +1 -1
- package/build/client/assets/{online-DiNLkgTC.js → online-DVk-W8Cr.js} +2 -2
- package/build/client/assets/{online-DiNLkgTC.js.map → online-DVk-W8Cr.js.map} +1 -1
- package/build/client/assets/{playground-DmEAkxG1.js → playground-DG4B62WX.js} +2 -2
- package/build/client/assets/{playground-DmEAkxG1.js.map → playground-DG4B62WX.js.map} +1 -1
- package/build/client/assets/{playground-window-x2mQ5o1O.js → playground-window-CF8lTXXI.js} +2 -2
- package/build/client/assets/{playground-window-x2mQ5o1O.js.map → playground-window-CF8lTXXI.js.map} +1 -1
- package/build/client/assets/{preferences-B7ND1VS9.js → preferences-Czy5oqWs.js} +2 -2
- package/build/client/assets/{preferences-B7ND1VS9.js.map → preferences-Czy5oqWs.js.map} +1 -1
- package/build/client/assets/{presence-VCvV2mg7.js → presence-Brtc_BN7.js} +2 -2
- package/build/client/assets/{presence-VCvV2mg7.js.map → presence-Brtc_BN7.js.map} +1 -1
- package/build/client/assets/{preview-fhmjENlm.js → preview-Be-plbPz.js} +2 -2
- package/build/client/assets/{preview-fhmjENlm.js.map → preview-Be-plbPz.js.map} +1 -1
- package/build/client/assets/{product-CvyMpYD_.js → product-D4IgPJN5.js} +2 -2
- package/build/client/assets/{product-CvyMpYD_.js.map → product-D4IgPJN5.js.map} +1 -1
- package/build/client/assets/{progress-Bby-ybMA.js → progress-JDMkfyr3.js} +2 -2
- package/build/client/assets/{progress-Bby-ybMA.js.map → progress-JDMkfyr3.js.map} +1 -1
- package/build/client/assets/{revalidation-ws-BJWJviUX.js → revalidation-ws-iocj9Mrl.js} +2 -2
- package/build/client/assets/{revalidation-ws-BJWJviUX.js.map → revalidation-ws-iocj9Mrl.js.map} +1 -1
- package/build/client/assets/{root-B-MkiU1r.js → root-IJJBVEoj.js} +2 -2
- package/build/client/assets/{root-B-MkiU1r.js.map → root-IJJBVEoj.js.map} +1 -1
- package/build/client/assets/{root-loader-BOzEMapJ.js → root-loader-BmUqzUDN.js} +2 -2
- package/build/client/assets/{root-loader-BOzEMapJ.js.map → root-loader-BmUqzUDN.js.map} +1 -1
- package/build/client/assets/{set-playground-BSGwH9dH.js → set-playground-DO5tJu4h.js} +2 -2
- package/build/client/assets/{set-playground-BSGwH9dH.js.map → set-playground-DO5tJu4h.js.map} +1 -1
- package/build/client/assets/{test-BeEphi7e.js → test-C8NrA0Ls.js} +2 -2
- package/build/client/assets/{test-BeEphi7e.js.map → test-C8NrA0Ls.js.map} +1 -1
- package/build/client/assets/{tests-RWSslYc0.js → tests-Bko6qhsh.js} +2 -2
- package/build/client/assets/{tests-RWSslYc0.js.map → tests-Bko6qhsh.js.map} +1 -1
- package/build/client/assets/{user-BsPobzjB.js → user-CYXKquT7.js} +2 -2
- package/build/client/assets/{user-BsPobzjB.js.map → user-CYXKquT7.js.map} +1 -1
- package/build/client/assets/{version-f8qqYbyU.js → version-CwWSRwe5.js} +2 -2
- package/build/client/assets/{version-f8qqYbyU.js.map → version-CwWSRwe5.js.map} +1 -1
- package/build/client/assets/{workshop-config-Zfc8zU0x.js → workshop-config-BMWaKPZT.js} +2 -2
- package/build/client/assets/{workshop-config-Zfc8zU0x.js.map → workshop-config-BMWaKPZT.js.map} +1 -1
- package/build/server/index.js +7 -3
- package/build/server/index.js.map +1 -1
- package/package.json +3 -3
- package/build/client/assets/_extra-Dki7HdFp.js +0 -2
- package/build/client/assets/_extra-Dki7HdFp.js.map +0 -1
- package/build/client/assets/_layout-DTrIGRDO.js +0 -2
- package/build/client/assets/_layout-DTrIGRDO.js.map +0 -1
- package/build/client/assets/discord-r3m19sUM.js +0 -2
- package/build/client/assets/discord-r3m19sUM.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-CdzVFL-Z.js","sources":["../../../../../node_modules/@conform-to/dom/dist/_virtual/_rollupPluginBabelHelpers.mjs","../../../../../node_modules/@conform-to/dom/dist/util.mjs","../../../../../node_modules/@conform-to/dom/dist/dom.mjs","../../../../../node_modules/@conform-to/dom/dist/formdata.mjs","../../../../../node_modules/@conform-to/dom/dist/submission.mjs","../../../../../node_modules/@conform-to/dom/dist/form.mjs","../../../../../node_modules/@conform-to/react/dist/_virtual/_rollupPluginBabelHelpers.mjs","../../../../../node_modules/@conform-to/react/dist/context.mjs","../../../../../node_modules/@conform-to/react/dist/hooks.mjs","../../../../../node_modules/@conform-to/react/dist/helpers.mjs","../../../../../node_modules/@conform-to/zod/dist/_virtual/_rollupPluginBabelHelpers.mjs","../../../../../node_modules/zod/v4/core/core.js","../../../../../node_modules/zod/v4/core/util.js","../../../../../node_modules/zod/v4/core/errors.js","../../../../../node_modules/zod/v4/core/parse.js","../../../../../node_modules/zod/v4/core/versions.js","../../../../../node_modules/zod/v4/core/schemas.js","../../../../../node_modules/zod/v4/mini/schemas.js","../../../../../node_modules/@conform-to/zod/dist/v4/coercion.mjs","../../../../../node_modules/@conform-to/zod/dist/v4/parse.mjs","../../../../../node_modules/@epic-web/client-hints/dist/index.js","../../../../../node_modules/@epic-web/client-hints/dist/color-scheme.js","../../../../../node_modules/@epic-web/client-hints/dist/reduced-motion.js","../../../../../node_modules/@epic-web/client-hints/dist/time-zone.js","../../../app/utils/client-hints.tsx","../../../app/utils/forms.tsx","../../../app/routes/theme/index.tsx"],"sourcesContent":["function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nexport { _defineProperty as defineProperty, _objectSpread2 as objectSpread2, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };\n","function invariant(expectedCondition, message) {\n if (!expectedCondition) {\n throw new Error(message);\n }\n}\nfunction generateId() {\n return (Date.now() * Math.random()).toString(36);\n}\nfunction clone(data) {\n return JSON.parse(JSON.stringify(data));\n}\n\n/**\n * Check if the value is a plain object\n */\nfunction isPlainObject(obj) {\n return !!obj && obj.constructor === Object && Object.getPrototypeOf(obj) === Object.prototype;\n}\n\n/**\n * A utility function that performs a deep equality check between two values.\n * It handles plain objects, arrays, and primitive values only.\n */\nfunction deepEqual(left, right) {\n if (Object.is(left, right)) {\n return true;\n }\n if (left == null || right == null) {\n return false;\n }\n\n // Compare plain objects\n if (isPlainObject(left) && isPlainObject(right)) {\n var prevKeys = Object.keys(left);\n var nextKeys = Object.keys(right);\n if (prevKeys.length !== nextKeys.length) {\n return false;\n }\n for (var key of prevKeys) {\n if (!Object.prototype.hasOwnProperty.call(right, key) || !deepEqual(left[key], right[key])) {\n return false;\n }\n }\n return true;\n }\n\n // Compare arrays\n if (Array.isArray(left) && Array.isArray(right)) {\n if (left.length !== right.length) {\n return false;\n }\n for (var i = 0; i < left.length; i++) {\n if (!deepEqual(left[i], right[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n\n/*\n * Removes File object from the FormValue.\n * Used to avoid serialzing/sending File object back to the client.\n */\nfunction stripFiles(value) {\n var json = JSON.stringify(value, (_, value) => {\n // If the current value is a File, return undefined to omit it\n if (typeof File !== 'undefined' && value instanceof File) {\n return undefined;\n }\n return value;\n });\n return JSON.parse(json);\n}\n\n/**\n * Helper to get readable type name for error messages\n */\nfunction getTypeName(value) {\n if (value === null) return 'null';\n if (Array.isArray(value)) return 'Array';\n if (typeof value === 'object') {\n var _value$constructor$na, _value$constructor;\n return (_value$constructor$na = (_value$constructor = value.constructor) === null || _value$constructor === void 0 ? void 0 : _value$constructor.name) !== null && _value$constructor$na !== void 0 ? _value$constructor$na : 'Object';\n }\n return typeof value;\n}\n\nexport { clone, deepEqual, generateId, getTypeName, invariant, isPlainObject, stripFiles };\n","import { invariant } from './util.mjs';\n\n/**\n * Element that user can interact with,\n * includes `<input>`, `<select>` and `<textarea>`.\n */\n\n/**\n * Form Control element. It can either be a submit button or a submit input.\n */\n\nfunction isInputElement(element) {\n return element.tagName === 'INPUT';\n}\nfunction isSelectElement(element) {\n return element.tagName === 'SELECT';\n}\nfunction isTextAreaElement(element) {\n return element.tagName === 'TEXTAREA';\n}\n\n/**\n * A type guard to checks if the element is a submitter element.\n * A submitter element is either an input or button element with type submit.\n */\nfunction isSubmitter(element) {\n return 'type' in element && element.type === 'submit';\n}\n\n/**\n * A type guard to check if the provided element is a field element, which\n * is a form control excluding submit, button and reset type.\n */\nfunction isFieldElement(element) {\n if (element instanceof Element) {\n if (isInputElement(element)) {\n return element.type !== 'submit' && element.type !== 'button' && element.type !== 'reset';\n }\n if (isSelectElement(element) || isTextAreaElement(element)) {\n return true;\n }\n }\n return false;\n}\nfunction isGlobalInstance(obj, className) {\n var Ctor = globalThis[className];\n return typeof Ctor === 'function' && obj instanceof Ctor;\n}\n\n/**\n * Resolves the action from the submit event\n * with respect to the submitter `formaction` attribute.\n */\nfunction getFormAction(event) {\n var _ref, _submitter$getAttribu;\n var form = event.target;\n var submitter = event.submitter;\n return (_ref = (_submitter$getAttribu = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute('formaction')) !== null && _submitter$getAttribu !== void 0 ? _submitter$getAttribu : form.getAttribute('action')) !== null && _ref !== void 0 ? _ref : \"\".concat(location.pathname).concat(location.search);\n}\n\n/**\n * Resolves the encoding type from the submit event\n * with respect to the submitter `formenctype` attribute.\n */\nfunction getFormEncType(event) {\n var _submitter$getAttribu2;\n var form = event.target;\n var submitter = event.submitter;\n var encType = (_submitter$getAttribu2 = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute('formenctype')) !== null && _submitter$getAttribu2 !== void 0 ? _submitter$getAttribu2 : form.enctype;\n if (encType === 'multipart/form-data') {\n return encType;\n }\n return 'application/x-www-form-urlencoded';\n}\n\n/**\n * Resolves the method from the submit event\n * with respect to the submitter `formmethod` attribute.\n */\nfunction getFormMethod(event) {\n var _ref2, _submitter$getAttribu3;\n var form = event.target;\n var submitter = event.submitter;\n var method = (_ref2 = (_submitter$getAttribu3 = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute('formmethod')) !== null && _submitter$getAttribu3 !== void 0 ? _submitter$getAttribu3 : form.getAttribute('method')) === null || _ref2 === void 0 ? void 0 : _ref2.toUpperCase();\n switch (method) {\n case 'POST':\n case 'PUT':\n case 'PATCH':\n case 'DELETE':\n return method;\n }\n return 'GET';\n}\n\n/**\n * Creates a submit event that behaves like a real form submission.\n */\nfunction createSubmitEvent(submitter) {\n return new SubmitEvent('submit', {\n bubbles: true,\n cancelable: true,\n submitter\n });\n}\n\n/**\n * Trigger a form submit event with an optional submitter.\n * If the submitter is not mounted, it will be appended to the form and removed after submission.\n */\nfunction requestSubmit(form, submitter) {\n invariant(!!form, 'Failed to submit the form. The element provided is null or undefined.');\n if (typeof form.requestSubmit === 'function') {\n form.requestSubmit(submitter);\n } else {\n form.dispatchEvent(createSubmitEvent(submitter));\n }\n}\n\n/**\n * Triggers form submission with an intent value. This is achieved by\n * creating a hidden button element with the intent value and then submitting it with the form.\n */\nfunction requestIntent(formElement, intentName, intentValue) {\n var submitter = document.createElement('button');\n submitter.name = intentName;\n submitter.value = intentValue;\n submitter.hidden = true;\n submitter.formNoValidate = true;\n formElement.appendChild(submitter);\n requestSubmit(formElement, submitter);\n formElement.removeChild(submitter);\n}\nfunction createFileList(value) {\n var dataTransfer = new DataTransfer();\n if (Array.isArray(value)) {\n for (var file of value) {\n dataTransfer.items.add(file);\n }\n } else {\n dataTransfer.items.add(value);\n }\n return dataTransfer.files;\n}\nfunction createGlobalFormsObserver() {\n var inputListeners = new Set();\n var formListeners = new Set();\n var cleanup = null;\n function initialize() {\n var observer = new MutationObserver(handleMutation);\n observer.observe(document.body, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeOldValue: true,\n attributeFilter: ['form', 'name', 'data-conform']\n });\n document.addEventListener('input', handleInput);\n document.addEventListener('reset', handleReset);\n document.addEventListener('submit', handleSubmit, true);\n return () => {\n document.removeEventListener('input', handleInput);\n document.removeEventListener('reset', handleReset);\n document.removeEventListener('submit', handleSubmit, true);\n observer.disconnect();\n };\n }\n function handleInput(event) {\n var target = event.target;\n if (isFieldElement(target)) {\n inputListeners.forEach(callback => callback({\n type: 'input',\n target\n }));\n var form = target.form;\n if (form) {\n formListeners.forEach(callback => callback({\n type: 'input',\n target: form\n }));\n }\n }\n }\n function handleReset(event) {\n var form = event.target;\n if (form instanceof HTMLFormElement) {\n // Reset event is fired before the form is reset, so we need to wait for the next tick\n setTimeout(() => {\n formListeners.forEach(callback => {\n callback({\n type: 'reset',\n target: form\n });\n });\n var _loop = function _loop(target) {\n if (isFieldElement(target)) {\n inputListeners.forEach(callback => {\n callback({\n type: 'reset',\n target\n });\n });\n }\n };\n for (var target of form.elements) {\n _loop(target);\n }\n });\n }\n }\n function handleSubmit(event) {\n var target = event.target;\n var submitter = event.submitter;\n if (target instanceof HTMLFormElement) {\n formListeners.forEach(callback => callback({\n type: 'submit',\n target,\n submitter\n }));\n }\n }\n function getAssociatedFormElement(formId, node) {\n if (formId !== null) {\n return document.forms.namedItem(formId);\n }\n if (node instanceof Element) {\n return node.closest('form');\n }\n return null;\n }\n function handleMutation(mutations) {\n var seenForms = new Set();\n var seenInputs = new Set();\n var collectInputs = node => {\n if (isFieldElement(node)) {\n return [node];\n }\n return node instanceof Element ? Array.from(node.querySelectorAll('input,select,textarea')) : [];\n };\n var collectForms = node => {\n if (node instanceof HTMLFormElement) {\n return [node];\n }\n return node instanceof Element ? Array.from(node.querySelectorAll('form')) : [];\n };\n for (var mutation of mutations) {\n switch (mutation.type) {\n case 'childList':\n {\n var nodes = [...mutation.addedNodes, ...mutation.removedNodes];\n for (var node of nodes) {\n for (var form of collectForms(node)) {\n seenForms.add(form);\n }\n for (var input of collectInputs(node)) {\n var _input$form;\n seenInputs.add(input);\n var _form = (_input$form = input.form) !== null && _input$form !== void 0 ? _input$form : getAssociatedFormElement(input.getAttribute('form'), mutation.target);\n if (_form) {\n seenForms.add(_form);\n }\n }\n }\n break;\n }\n case 'attributes':\n {\n if (isFieldElement(mutation.target)) {\n seenInputs.add(mutation.target);\n if (mutation.target.form) {\n seenForms.add(mutation.target.form);\n }\n if (mutation.attributeName === 'form') {\n var oldForm = getAssociatedFormElement(mutation.oldValue, mutation.target);\n if (oldForm) {\n seenForms.add(oldForm);\n }\n }\n }\n break;\n }\n }\n }\n var _loop2 = function _loop2(target) {\n formListeners.forEach(callback => {\n callback({\n type: 'mutation',\n target\n });\n });\n };\n for (var target of seenForms) {\n _loop2(target);\n }\n var _loop3 = function _loop3(_target) {\n inputListeners.forEach(callback => {\n callback({\n type: 'mutation',\n target: _target\n });\n });\n };\n for (var _target of seenInputs) {\n _loop3(_target);\n }\n }\n return {\n onFieldUpdate(callback) {\n var _cleanup;\n cleanup = (_cleanup = cleanup) !== null && _cleanup !== void 0 ? _cleanup : initialize();\n inputListeners.add(callback);\n return () => {\n inputListeners.delete(callback);\n };\n },\n onFormUpdate(callback) {\n var _cleanup2;\n cleanup = (_cleanup2 = cleanup) !== null && _cleanup2 !== void 0 ? _cleanup2 : initialize();\n formListeners.add(callback);\n return () => {\n formListeners.delete(callback);\n };\n },\n dispose() {\n var _cleanup3;\n (_cleanup3 = cleanup) === null || _cleanup3 === void 0 || _cleanup3();\n cleanup = null;\n inputListeners.clear();\n formListeners.clear();\n }\n };\n}\n\n/**\n * Change the value of the given field element.\n * Dispatches both `input` and `change` events only if the value is changed.\n */\nfunction change(element, value, options) {\n // The value should be set to the element before dispatching the event\n var isChanged = updateField(element, {\n value\n });\n if (isChanged) {\n var inputEvent = new InputEvent('input', {\n bubbles: true,\n cancelable: true\n });\n var changeEvent = new Event('change', {\n bubbles: true,\n cancelable: true\n });\n if (options !== null && options !== void 0 && options.preventDefault) {\n inputEvent.preventDefault();\n changeEvent.preventDefault();\n }\n\n // Dispatch input event with the updated input value\n element.dispatchEvent(inputEvent);\n // Dispatch change event (necessary for select to update the selected option)\n element.dispatchEvent(changeEvent);\n }\n}\n\n/**\n * Dispatches focus and focusin events on the given element.\n */\nfunction focus(element) {\n // Only focusin event will be bubbled\n element.dispatchEvent(new FocusEvent('focusin', {\n bubbles: true\n }));\n element.dispatchEvent(new FocusEvent('focus'));\n}\n\n/**\n * Dispatches blur and focusout events on the given element.\n */\nfunction blur(element) {\n // Only focusout event will be bubbled\n element.dispatchEvent(new FocusEvent('focusout', {\n bubbles: true\n }));\n element.dispatchEvent(new FocusEvent('blur'));\n}\nfunction normalizeStringValues(value) {\n if (typeof value === 'undefined') return undefined;\n if (value === null) return [];\n if (typeof value === 'string') return [value];\n if (Array.isArray(value) && value.every(v => typeof v === 'string')) {\n return Array.from(value);\n }\n throw new Error('Expected string or string[] value for string based input');\n}\nfunction normalizeFileValues(value) {\n if (typeof value === 'undefined') return undefined;\n if (value === null) return [];\n if (isGlobalInstance(value, 'File')) return value.name === '' && value.size === 0 ? [] : [value];\n if (isGlobalInstance(value, 'FileList')) return Array.from(value);\n if (Array.isArray(value) && value.every(item => isGlobalInstance(item, 'File'))) {\n return value;\n }\n throw new Error('Expected File, FileList or File[] for file input');\n}\n\n/**\n * Updates the DOM element with the provided value and defaultValue.\n * If the value or defaultValue is undefined, it will keep the current value instead\n */\nfunction updateField(element, options) {\n var isChanged = false;\n if (isInputElement(element)) {\n switch (element.type) {\n case 'file':\n {\n var _element$files;\n var files = normalizeFileValues(options.value);\n var currentFiles = Array.from((_element$files = element.files) !== null && _element$files !== void 0 ? _element$files : []);\n if (files && (files.length !== currentFiles.length || files.some((file, i) => file !== currentFiles[i]))) {\n element.files = createFileList(files);\n isChanged = true;\n }\n return isChanged;\n }\n case 'checkbox':\n case 'radio':\n {\n var _value = normalizeStringValues(options.value);\n var _defaultValue = normalizeStringValues(options.defaultValue);\n if (_value) {\n var checked = _value.includes(element.value);\n if (element.type === 'checkbox' ? checked !== element.checked : checked) {\n // Simulate a click to update the checked state\n element.click();\n isChanged = true;\n }\n element.checked = checked;\n }\n if (_defaultValue) {\n element.defaultChecked = _defaultValue.includes(element.value);\n }\n return isChanged;\n }\n }\n } else if (isSelectElement(element)) {\n var _value2 = normalizeStringValues(options.value);\n var _defaultValue2 = normalizeStringValues(options.defaultValue);\n var shouldUnselect = _value2 && _value2.length === 0;\n for (var option of element.options) {\n if (_value2) {\n var index = _value2.indexOf(option.value);\n var selected = index > -1;\n\n // Update the selected state of the option\n if (option.selected !== selected) {\n option.selected = selected;\n isChanged = true;\n }\n\n // Remove the option from the value array\n if (selected) {\n _value2.splice(index, 1);\n }\n }\n if (_defaultValue2) {\n var _index = _defaultValue2.indexOf(option.value);\n var _selected = _index > -1;\n\n // Update the selected state of the option\n if (option.defaultSelected !== _selected) {\n option.defaultSelected = _selected;\n }\n\n // Remove the option from the defaultValue array\n if (_selected) {\n _defaultValue2.splice(_index, 1);\n }\n }\n }\n\n // We have already removed all selected options from the value and defaultValue array at this point\n var missingOptions = new Set([...(_value2 !== null && _value2 !== void 0 ? _value2 : []), ...(_defaultValue2 !== null && _defaultValue2 !== void 0 ? _defaultValue2 : [])]);\n for (var optionValue of missingOptions) {\n element.options.add(new Option(optionValue, optionValue, _defaultValue2 === null || _defaultValue2 === void 0 ? void 0 : _defaultValue2.includes(optionValue), _value2 === null || _value2 === void 0 ? void 0 : _value2.includes(optionValue)));\n isChanged = true;\n }\n\n // If the select element is not multiple and the value is an empty array, unset the selected index\n // This is to prevent the select element from showing the first option as selected\n if (shouldUnselect && element.selectedIndex !== -1) {\n element.selectedIndex = -1;\n isChanged = true;\n }\n return isChanged;\n }\n var value = normalizeStringValues(options.value);\n var defaultValue = normalizeStringValues(options.defaultValue);\n if (value) {\n var _value$;\n var inputValue = (_value$ = value[0]) !== null && _value$ !== void 0 ? _value$ : '';\n if (element.value !== inputValue) {\n /**\n * Triggering react custom change event\n * Solution based on dom-testing-library\n * @see https://github.com/facebook/react/issues/10135#issuecomment-401496776\n * @see https://github.com/testing-library/dom-testing-library/blob/main/src/events.js#L104-L123\n */\n var {\n set: valueSetter\n } = Object.getOwnPropertyDescriptor(element, 'value') || {};\n var prototype = Object.getPrototypeOf(element);\n var {\n set: prototypeValueSetter\n } = Object.getOwnPropertyDescriptor(prototype, 'value') || {};\n if (prototypeValueSetter && valueSetter !== prototypeValueSetter) {\n prototypeValueSetter.call(element, inputValue);\n } else if (valueSetter) {\n valueSetter.call(element, inputValue);\n } else {\n throw new Error('The given element does not have a value setter');\n }\n isChanged = true;\n }\n }\n if (defaultValue) {\n var _defaultValue$;\n element.defaultValue = (_defaultValue$ = defaultValue[0]) !== null && _defaultValue$ !== void 0 ? _defaultValue$ : '';\n }\n return isChanged;\n}\nfunction isDirtyInput(element) {\n var _element$files$length, _element$files2;\n if (isInputElement(element)) {\n switch (element.type) {\n case 'checkbox':\n case 'radio':\n return element.checked !== element.defaultChecked;\n case 'file':\n return ((_element$files$length = (_element$files2 = element.files) === null || _element$files2 === void 0 ? void 0 : _element$files2.length) !== null && _element$files$length !== void 0 ? _element$files$length : 0) > 0;\n default:\n return element.value !== element.defaultValue;\n }\n } else if (isSelectElement(element)) {\n return Array.from(element.options).some(option => option.selected !== option.defaultSelected);\n } else if (isTextAreaElement(element)) {\n return element.value !== element.defaultValue;\n }\n return false;\n}\n\nexport { blur, change, createFileList, createGlobalFormsObserver, createSubmitEvent, focus, getFormAction, getFormEncType, getFormMethod, isDirtyInput, isFieldElement, isGlobalInstance, isInputElement, isSelectElement, isSubmitter, isTextAreaElement, normalizeFileValues, normalizeStringValues, requestIntent, requestSubmit, updateField };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { isSubmitter, isGlobalInstance } from './dom.mjs';\nimport { isPlainObject, stripFiles, deepEqual, getTypeName } from './util.mjs';\nimport { formatIssues } from './standard-schema.mjs';\n\nvar DEFAULT_INTENT_NAME = '__INTENT__';\n\n/**\n * Construct a form data with the submitter value.\n * It utilizes the submitter argument on the FormData constructor from modern browsers\n * with fallback to append the submitter value in case it is not unsupported.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData#parameters\n */\nfunction getFormData(form, submitter) {\n var payload = new FormData(form, submitter);\n if (submitter) {\n if (!isSubmitter(submitter)) {\n throw new TypeError('The submitter must be an input or button element with type submit.');\n }\n if (submitter.name) {\n var entries = payload.getAll(submitter.name);\n\n // This assumes the submitter value to be always unique, which should be fine in most cases\n if (!entries.includes(submitter.value)) {\n payload.append(submitter.name, submitter.value);\n }\n }\n }\n return payload;\n}\n\n/**\n * Convert a string path into an array of segments.\n *\n * @example\n * ```js\n * getPathSegments(\"object.key\"); // → ['object', 'key']\n * getPathSegments(\"array[0].content\"); // → ['array', 0, 'content']\n * getPathSegments(\"todos[]\"); // → ['todos', '']\n * ```\n */\nfunction getPathSegments(path) {\n if (!path) return [];\n var tokenRegex = /([^.[\\]]+)|\\[(\\d*)\\]/g;\n var segments = [];\n var lastIndex = 0,\n match;\n while (match = tokenRegex.exec(path)) {\n // allow a single “.” between tokens\n if (match.index !== lastIndex) {\n if (!(match.index === lastIndex + 1 && path[lastIndex] === '.')) {\n throw new Error(\"Invalid path syntax at position \".concat(lastIndex, \" in \\\"\").concat(path, \"\\\"\"));\n }\n }\n var [, key, index] = match;\n if (key !== undefined) {\n if (key === '__proto__' || key === 'constructor') {\n throw new Error(\"Invalid path segment \\\"\".concat(key, \"\\\"\"));\n }\n segments.push(key);\n } else if (index === '') {\n segments.push('');\n } else {\n var number = Number(index);\n if (!Number.isInteger(number) || number < 0) {\n throw new Error(\"Invalid path segment: array index must be a non-negative integer, got \".concat(number));\n }\n segments.push(number);\n }\n lastIndex = tokenRegex.lastIndex;\n }\n if (lastIndex !== path.length) {\n throw new Error(\"Invalid path syntax at position \".concat(lastIndex, \" in \\\"\").concat(path, \"\\\"\"));\n }\n return segments;\n}\n\n/**\n * Returns a formatted name from the path segments based on the dot and bracket notation.\n *\n * @example\n * ```js\n * formatPathSegments(['object', 'key']); // → \"object.key\"\n * formatPathSegments(['array', 0, 'content']); // → \"array[0].content\"\n * formatPathSegments(['todos', '']); // → \"todos[]\"\n * ```\n */\nfunction formatPathSegments(segments) {\n return segments.reduce((path, segment) => appendPathSegment(path, segment), '');\n}\n\n/**\n * Append one more segment onto an existing path string.\n *\n * - segment = `undefined` ⇒ no-op\n * - segment = `\"\"` ⇒ empty brackets \"[]\"\n * - segment = `number` ⇒ bracket notation \"[n]\"\n * - segment = `string` ⇒ dot-notation \".prop\"\n */\nfunction appendPathSegment(path, segment) {\n // 1) nothing to append\n if (typeof segment === 'undefined') {\n return path !== null && path !== void 0 ? path : '';\n }\n\n // 2) explicit empty-segment => empty bracket\n if (segment === '') {\n // even as first segment, \"[]\" is valid\n return \"\".concat(path, \"[]\");\n }\n\n // 3) numeric index => [n]\n if (typeof segment === 'number') {\n return \"\".concat(path, \"[\").concat(segment, \"]\");\n }\n\n // 4) non-empty string => .prop (no leading dot if no base)\n return path ? \"\".concat(path, \".\").concat(segment) : segment;\n}\n\n/**\n * Returns true if `prefix` is a valid leading path of `name`.\n *\n * @example\n * ```js\n * isPrefix(\"foo.bar.baz\", \"foo.bar\") // → true\n * isPrefix(\"foo.bar[3].baz\", \"foo.bar[3]\") // → true\n * isPrefix(\"foo.bar[3].baz\", \"foo.bar\") // → true\n * isPrefix(\"foo.bar[3].baz\", \"foo.baz\") // → false\n * isPrefix(\"foo\", \"foo.bar\") // → false\n * ```\n */\nfunction isPrefix(name, prefix) {\n return getRelativePath(name, getPathSegments(prefix)) !== null;\n}\n\n/**\n * Return the segments of `fullPathStr` that come after the `baseSegments` prefix.\n *\n * @param fullPathStr Full path as a dot/bracket string\n * @param basePath Base path, already parsed into segments\n * @returns The “tail” segments, or `null` if `fullPathStr` isn’t nested under `baseSegments`\n *\n * @example\n * ```js\n * getRelativePath(\"foo.bar[0].qux\", [\"foo\",\"bar\"]) // → [0, \"qux\"]\n * getRelativePath(\"a.b.c.d\", [\"a\",\"b\"]) // → [\"c\",\"d\"]\n * getRelativePath(\"foo\", [\"foo\",\"bar\"]) // → null\n * ```\n */\nfunction getRelativePath(name, basePath) {\n var fullPath = getPathSegments(name);\n\n // if full is at least as long *and* starts with the base…\n if (fullPath.length >= basePath.length && basePath.every((segment, i) => segment === fullPath[i])) {\n return fullPath.slice(basePath.length);\n }\n return null;\n}\n\n/**\n * Assign a value to a target object by following the path segments.\n */\nfunction setValueAtPath(target, pathOrSegments, valueOrFn) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n try {\n // 1) normalize + validate path\n var segments = typeof pathOrSegments === 'string' ? getPathSegments(pathOrSegments) : pathOrSegments;\n if (segments.length === 0) {\n throw new Error('Cannot set value at the object root');\n }\n if (segments.some((segment, i) => segment === '' && i < segments.length - 1)) {\n throw new Error(\"Empty brackets '[]' only allowed at end of path (\\\"\".concat(pathOrSegments, \"\\\")\"));\n }\n\n // 2) clone root if needed\n var result = options.clone ? _objectSpread2({}, target) : target;\n var pointer = result;\n\n // 3) drill down, cloning ancestors\n for (var i = 0; i < segments.length - 1; i++) {\n var currentSegment = segments[i];\n var nextSegment = segments[i + 1];\n var child = pointer[currentSegment];\n if (Array.isArray(child)) {\n child = options.clone ? child.slice() : child;\n } else if (isPlainObject(child)) {\n child = options.clone ? _objectSpread2({}, child) : child;\n } else {\n child = typeof nextSegment === 'number' || nextSegment === '' ? [] : {};\n }\n pointer[currentSegment] = child;\n pointer = child;\n }\n\n // 4) final set or push\n var last = segments[segments.length - 1];\n var oldValue = pointer[last];\n var newValue = typeof valueOrFn === 'function' ? valueOrFn(oldValue) : valueOrFn;\n if (last === '') {\n if (!Array.isArray(pointer)) {\n throw new Error(\"Cannot push to non-array at \\\"\".concat(pathOrSegments, \"\\\"\"));\n }\n pointer.push(newValue);\n } else {\n pointer[last] = newValue;\n }\n return result;\n } catch (err) {\n if (options !== null && options !== void 0 && options.silent) {\n return target;\n }\n throw err;\n }\n}\n\n/**\n * Retrive the value from a target object by following the path segments.\n */\nfunction getValueAtPath(target, pathOrSegments) {\n var pointer = target;\n var segments = typeof pathOrSegments === 'string' ? getPathSegments(pathOrSegments) : pathOrSegments;\n for (var segment of segments) {\n if (segment === '') {\n throw new Error(\"Cannot access empty segment \\\"[]\\\" in \\\"\".concat(pathOrSegments, \"\\\"\"));\n }\n if (pointer == null || !Object.prototype.hasOwnProperty.call(pointer, segment)) {\n return undefined;\n }\n pointer = pointer[segment];\n }\n return pointer;\n}\n\n/**\n * Check if a form value is considered empty and should be stripped from the submission.\n * A value is empty if:\n * - It's an empty string \"\"\n * - It's an empty File (size 0 and name \"\")\n * - It's an array where all items are empty\n */\nfunction isEmptyValue(value) {\n if (value === '' || value === undefined) {\n return true;\n }\n if (isGlobalInstance(value, 'File')) {\n // Empty File has size 0 and empty name\n return value.size === 0 && value.name === '';\n }\n if (Array.isArray(value)) {\n // If array is empty or all items are empty, consider it empty\n return value.length === 0 || value.every(item => isEmptyValue(item));\n }\n return false;\n}\n\n/**\n * Parse `FormData` or `URLSearchParams` into a submission object.\n * This function structures the form values based on the naming convention.\n * It also includes all the field names and extracts the intent from the submission.\n *\n * @see https://conform.guide/api/react/future/parseSubmission\n * @example\n * ```ts\n * const formData = new FormData();\n *\n * formData.append('email', 'test@example.com');\n * formData.append('password', 'secret');\n *\n * parseSubmission(formData)\n * // {\n * // payload: { email: 'test@example.com', password: 'secret' },\n * // fields: ['email', 'password'],\n * // intent: null,\n * // }\n *\n * // If you have an intent field\n * formData.append('intent', 'login');\n * parseSubmission(formData, { intentName: 'intent' })\n * // {\n * // payload: { email: 'test@example.com', password: 'secret' },\n * // fields: ['email', 'password'],\n * // intent: 'login',\n * // }\n * ```\n */\nfunction parseSubmission(formData, options) {\n var _options$intentName;\n var intentName = (_options$intentName = options === null || options === void 0 ? void 0 : options.intentName) !== null && _options$intentName !== void 0 ? _options$intentName : DEFAULT_INTENT_NAME;\n var submission = {\n payload: {},\n fields: [],\n intent: null\n };\n for (var _name of new Set(formData.keys())) {\n var _options$skipEntry;\n if (_name !== intentName && !(options !== null && options !== void 0 && (_options$skipEntry = options.skipEntry) !== null && _options$skipEntry !== void 0 && _options$skipEntry.call(options, _name))) {\n var _options$stripEmptyVa;\n var _value = formData.getAll(_name);\n var segments = getPathSegments(_name);\n\n // If the name ends with [], remove the empty segment and keep the full array\n // Otherwise, unwrap single values\n if (segments.length > 0 && segments[segments.length - 1] === '') {\n segments.pop();\n } else {\n _value = _value.length > 1 ? _value : _value[0];\n }\n\n // Check if the value is empty and should be skipped (defaults to true)\n var stripEmptyValues = (_options$stripEmptyVa = options === null || options === void 0 ? void 0 : options.stripEmptyValues) !== null && _options$stripEmptyVa !== void 0 ? _options$stripEmptyVa : true;\n if (stripEmptyValues) {\n // For arrays, filter out individual empty items\n if (Array.isArray(_value)) {\n _value = _value.filter(item => !isEmptyValue(item));\n }\n if (isEmptyValue(_value)) {\n _value = undefined;\n }\n }\n setValueAtPath(submission.payload, segments, _value, {\n silent: true // Avoid errors if the path is invalid\n });\n submission.fields.push(_name);\n }\n }\n if (intentName) {\n // We take the first value of the intent field if it exists.\n var intent = formData.get(intentName);\n if (typeof intent === 'string') {\n submission.intent = intent;\n }\n }\n return submission;\n}\n\n/**\n * Creates a SubmissionResult object from a submission, adding validation results and target values.\n * This function will remove all files in the submission payload by default since\n * file inputs cannot be initialized with files.\n * You can specify `keepFiles: true` to keep the files if needed.\n *\n * @see https://conform.guide/api/react/future/report\n * @example\n * ```ts\n * // Report the submission with the field errors\n * report(submission, {\n * error: {\n * fieldErrors: {\n * email: ['Invalid email format'],\n * password: ['Password is required'],\n * },\n * })\n *\n * // Report the submission with a form error\n * report(submission, {\n * error: {\n * formErrors: ['Invalid credentials'],\n * },\n * })\n *\n * // Reset the form\n * report(submission, {\n * reset: true,\n * })\n * ```\n */\n\nfunction report(submission) {\n var _options$value;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var error;\n if (options.error == null) {\n error = options.error;\n } else {\n var _options$error$issues;\n error = formatIssues((_options$error$issues = options.error.issues) !== null && _options$error$issues !== void 0 ? _options$error$issues : []);\n if (options.error.formErrors) {\n error.formErrors.push(...options.error.formErrors);\n }\n if (options.error.fieldErrors) {\n for (var [_name2, messages] of Object.entries(options.error.fieldErrors)) {\n if (messages.length === 0) {\n continue;\n }\n if (!error.fieldErrors[_name2]) {\n error.fieldErrors[_name2] = messages;\n } else {\n error.fieldErrors[_name2].push(...messages);\n }\n }\n }\n }\n var targetValue = typeof options.value === 'undefined' || submission.payload === options.value && !options.reset ? undefined : options.value && !options.keepFiles ? stripFiles(options.value) : (_options$value = options.value) !== null && _options$value !== void 0 ? _options$value : {};\n if (options.hideFields) {\n for (var _name3 of options.hideFields) {\n var path = getPathSegments(_name3);\n setValueAtPath(submission.payload, path, undefined);\n if (targetValue) {\n setValueAtPath(targetValue, path, undefined);\n }\n }\n }\n return {\n submission: options.keepFiles ? submission : _objectSpread2(_objectSpread2({}, submission), {}, {\n payload: stripFiles(submission.payload)\n }),\n reset: options.reset,\n targetValue,\n error\n };\n}\n\n/**\n * A utility function that checks whether the current form data differs from the default values.\n *\n * @see https://conform.guide/api/react/future/isDirty\n * @example Enable a submit button only if the form is dirty\n *\n * ```tsx\n * const dirty = useFormData(\n * formRef,\n * (formData) => isDirty(formData, { defaultValue }) ?? false,\n * );\n *\n * return (\n * <button type=\"submit\" disabled={!dirty}>\n * Save changes\n * </button>\n * );\n * ```\n */\nfunction isDirty(\n/**\n * The current form data to compare. It can be:\n *\n * - A `FormData` object\n * - A `URLSearchParams` object\n * - A plain object that was parsed from form data (i.e. `submission.payload`)\n */\nformData, options) {\n if (!formData) {\n return;\n }\n var formValue = formData instanceof FormData || formData instanceof URLSearchParams ? parseSubmission(formData, {\n intentName: options === null || options === void 0 ? void 0 : options.intentName,\n skipEntry: options === null || options === void 0 ? void 0 : options.skipEntry\n }).payload : formData;\n var defaultValue = options === null || options === void 0 ? void 0 : options.defaultValue;\n var serializeData = value => {\n if (options !== null && options !== void 0 && options.serialize) {\n return options.serialize(value, serialize);\n }\n return serialize(value);\n };\n function normalize(data) {\n var value = serializeData(data);\n if (typeof value === 'undefined') {\n value = data;\n }\n\n // Removes empty strings, so that both empty string, empty file, null and undefined are treated as the same\n if (value === '' || value === null) {\n return undefined;\n }\n if (isGlobalInstance(value, 'File')) {\n // Remove empty File as well, which happens if no File was selected\n if (value.name === '' && value.size === 0) {\n return undefined;\n }\n\n // If the value is a File, no need to serialize it\n return value;\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return undefined;\n }\n var array = value.map(normalize);\n if (array.length === 1 && (typeof array[0] === 'string' || array[0] === undefined)) {\n return array[0];\n }\n return array;\n }\n if (isPlainObject(value)) {\n var entries = Object.entries(value).reduce((list, _ref) => {\n var [key, value] = _ref;\n var normalizedValue = normalize(value);\n if (typeof normalizedValue !== 'undefined') {\n list.push([key, normalizedValue]);\n }\n return list;\n }, []);\n if (entries.length === 0) {\n return undefined;\n }\n return Object.fromEntries(entries);\n }\n return value;\n }\n return !deepEqual(normalize(formValue), normalize(defaultValue));\n}\n\n/**\n * Convert an unknown value into something acceptable for HTML form submission.\n * Returns `undefined` when the value cannot be represented in form data.\n *\n * Input -> Output:\n * - string -> string\n * - null -> '' (empty string)\n * - boolean -> 'on' | '' (checked semantics)\n * - number | bigint -> value.toString()\n * - Date -> value.toISOString()\n * - File -> File\n * - FileList -> File[]\n * - Array -> string[] or File[] if all items serialize to the same kind; otherwise undefined\n * - anything else -> undefined\n */\nfunction serialize(value) {\n function serializePrimitive(value) {\n if (typeof value === 'string' || value === null) {\n return value;\n }\n if (typeof value === 'boolean') {\n return value ? 'on' : '';\n }\n if (typeof value === 'number' || typeof value === 'bigint') {\n return value.toString();\n }\n if (value instanceof Date) {\n return value.toISOString();\n }\n if (isGlobalInstance(value, 'File')) {\n return value;\n }\n }\n if (Array.isArray(value)) {\n var _options = [];\n var files = [];\n for (var item of value) {\n var serialized = serializePrimitive(item);\n if (typeof serialized === 'undefined') {\n return;\n }\n\n // It is unclear what `null` in a file array should mean, so we treat it as a string instead\n if (typeof serialized === 'string' || serialized === null) {\n if (files.length > 0) {\n return;\n }\n _options.push(serialized !== null && serialized !== void 0 ? serialized : '');\n } else {\n if (_options.length > 0) {\n return;\n }\n files.push(serialized);\n }\n }\n if (_options.length === value.length) {\n return _options;\n }\n if (files.length === value.length) {\n return files;\n }\n\n // If not all items are strings or files, return nothing\n }\n if (isGlobalInstance(value, 'FileList')) {\n return Array.from(value);\n }\n return serializePrimitive(value);\n}\n\n/**\n * Retrieve a field value from FormData with optional type guards.\n *\n * @example\n * // Basic field access: return `unknown`\n * const email = getFieldValue(formData, 'email');\n * // String type: returns `string`\n * const name = getFieldValue(formData, 'name', { type: 'string' });\n * // File type: returns `File`\n * const avatar = getFieldValue(formData, 'avatar', { type: 'file' });\n * // Object type: returns { city: unknown, ... }\n * const address = getFieldValue<Address>(formData, 'address', { type: 'object' });\n * // Array: returns `unknown[]`\n * const tags = getFieldValue(formData, 'tags', { array: true });\n * // Array with object type: returns `Array<{ name: unknown, ... }>`\n * const items = getFieldValue<Item[]>(formData, 'items', { type: 'object', array: true });\n * // Optional string type: returns `string | undefined`\n * const bio = getFieldValue(formData, 'bio', { type: 'string', optional: true });\n */\n\nfunction getFieldValue(formData, name, options) {\n var {\n type,\n array,\n optional\n } = options !== null && options !== void 0 ? options : {};\n var value;\n\n // Check if formData has a direct entry\n if (formData.has(name)) {\n // Get value based on array option\n value = array ? formData.getAll(name) : formData.get(name);\n } else {\n // Parse formData and use getValueAtPath\n var _submission = parseSubmission(formData, {\n stripEmptyValues: false\n });\n value = getValueAtPath(_submission.payload, name);\n }\n\n // If optional and value is undefined, skip validation and return early\n if (optional && value === undefined) {\n return;\n }\n\n // Type guards - validate the value matches the expected type\n if (array && !Array.isArray(value)) {\n throw new Error(\"Expected field \\\"\".concat(name, \"\\\" to be an array, but got \").concat(getTypeName(value)));\n }\n if (type) {\n var items = array ? value : [value];\n var predicate = {\n string: v => typeof v === 'string',\n file: v => v instanceof File,\n object: isPlainObject\n }[type];\n var typeName = {\n string: 'a string',\n file: 'a File',\n object: 'an object'\n }[type];\n for (var i = 0; i < items.length; i++) {\n if (!predicate(items[i])) {\n var field = array ? \"\".concat(name, \"[\").concat(i, \"]\") : name;\n throw new Error(\"Expected field \\\"\".concat(field, \"\\\" to be \").concat(typeName, \", but got \").concat(getTypeName(items[i])));\n }\n }\n }\n return value;\n}\n\nexport { DEFAULT_INTENT_NAME, appendPathSegment, formatPathSegments, getFieldValue, getFormData, getPathSegments, getRelativePath, getValueAtPath, isDirty, isPrefix, parseSubmission, report, serialize, setValueAtPath };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { isGlobalInstance } from './dom.mjs';\nimport { appendPathSegment, setValueAtPath, getValueAtPath, isPrefix } from './formdata.mjs';\nimport { isPlainObject, invariant } from './util.mjs';\n\n/**\n * The name to be used when submitting a form control\n */\nvar INTENT = '__intent__';\n\n/**\n * The name to be used when submitting a state\n */\nvar STATE = '__state__';\nfunction getSubmissionContext(body) {\n var intent = body.get(INTENT);\n var state = body.get(STATE);\n invariant((typeof intent === 'string' || intent === null) && (typeof state === 'string' || state === null), \"The input name \\\"\".concat(INTENT, \"\\\" and \\\"\").concat(STATE, \"\\\" are reserved by Conform. Please use another name for your input.\"));\n var context = {\n payload: {},\n fields: new Set(),\n intent: getIntent(intent)\n };\n if (state) {\n context.state = JSON.parse(state);\n }\n var _loop = function _loop(next) {\n if (name === INTENT || name === STATE) {\n return 1; // continue\n }\n context.fields.add(name);\n setValueAtPath(context.payload, name, prev => {\n if (!prev) {\n return next;\n } else if (Array.isArray(prev)) {\n return prev.concat(next);\n } else {\n return [prev, next];\n }\n }, {\n silent: true\n });\n };\n for (var [name, next] of body.entries()) {\n if (_loop(next)) continue;\n }\n return context;\n}\nfunction parse(payload, options) {\n var context = getSubmissionContext(payload);\n var intent = context.intent;\n if (intent) {\n switch (intent.type) {\n case 'update':\n {\n var name = appendPathSegment(intent.payload.name, intent.payload.index);\n var _value = intent.payload.value;\n if (typeof intent.payload.value !== 'undefined') {\n if (name) {\n setValueAtPath(context.payload, name, () => _value);\n } else {\n context.payload = _value;\n }\n }\n break;\n }\n case 'reset':\n {\n var _name = appendPathSegment(intent.payload.name, intent.payload.index);\n if (_name) {\n setValueAtPath(context.payload, _name, () => undefined);\n } else {\n context.payload = {};\n }\n break;\n }\n case 'insert':\n case 'remove':\n case 'reorder':\n {\n setListValue(context.payload, intent);\n break;\n }\n }\n }\n var result = options.resolve(context.payload, intent);\n var mergeResolveResult = resolved => createSubmission(_objectSpread2(_objectSpread2({}, context), {}, {\n value: resolved.value,\n error: resolved.error\n }));\n if (result instanceof Promise) {\n return result.then(mergeResolveResult);\n }\n return mergeResolveResult(result);\n}\nfunction createSubmission(context) {\n if (context.intent || context.error !== undefined) {\n return {\n status: !context.intent ? 'error' : undefined,\n payload: context.payload,\n error: typeof context.error !== 'undefined' ? context.error : {},\n reply(options) {\n return replySubmission(context, options);\n }\n };\n }\n return {\n status: 'success',\n payload: context.payload,\n value: context.value,\n reply(options) {\n return replySubmission(context, options);\n }\n };\n}\nfunction replySubmission(context) {\n var _context$intent, _context$intent$paylo, _options$formErrors, _ref;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if ('resetForm' in options && options.resetForm || ((_context$intent = context.intent) === null || _context$intent === void 0 ? void 0 : _context$intent.type) === 'reset' && ((_context$intent$paylo = context.intent.payload.name) !== null && _context$intent$paylo !== void 0 ? _context$intent$paylo : '') === '') {\n return {\n initialValue: null\n };\n }\n if ('hideFields' in options && options.hideFields) {\n for (var name of options.hideFields) {\n var _value2 = getValueAtPath(context.payload, name);\n if (typeof _value2 !== 'undefined') {\n setValueAtPath(context.payload, name, () => undefined);\n }\n }\n }\n var extraError = 'formErrors' in options || 'fieldErrors' in options ? normalize(_objectSpread2({\n '': (_options$formErrors = options.formErrors) !== null && _options$formErrors !== void 0 ? _options$formErrors : null\n }, options.fieldErrors)) : null;\n var error = context.error || extraError ? _objectSpread2(_objectSpread2({}, context.error), extraError) : undefined;\n var initialValue = (_ref = normalize(context.payload,\n // We can't serialize the file and send it back from the server, but we can preserve it in the client\n typeof document !== 'undefined'\n // We need the file on the client because it's treated as the form value\n // But we will exclude the File type for now as it's only used by the internal\n // form state and we will remove the need to preserve the file on the client soon\n )) !== null && _ref !== void 0 ? _ref : {};\n return {\n status: context.intent ? undefined : error ? 'error' : 'success',\n intent: context.intent ? context.intent : undefined,\n initialValue,\n error,\n state: context.state,\n fields: Array.from(context.fields)\n };\n}\nfunction getIntent(serializedIntent) {\n if (!serializedIntent) {\n return null;\n }\n var control = JSON.parse(serializedIntent);\n if (typeof control.type !== 'string' || typeof control.payload === 'undefined') {\n throw new Error('Unknown form control intent');\n }\n return control;\n}\nfunction serializeIntent(intent) {\n switch (intent.type) {\n case 'insert':\n return JSON.stringify({\n type: intent.type,\n payload: _objectSpread2(_objectSpread2({}, intent.payload), {}, {\n defaultValue: serialize(intent.payload.defaultValue)\n })\n });\n case 'update':\n return JSON.stringify({\n type: intent.type,\n payload: _objectSpread2(_objectSpread2({}, intent.payload), {}, {\n value: serialize(intent.payload.value)\n })\n });\n default:\n return JSON.stringify(intent);\n }\n}\nfunction updateList(list, intent) {\n var _intent$payload$index;\n invariant(Array.isArray(list), \"Failed to update list. The value is not an array.\");\n switch (intent.type) {\n case 'insert':\n list.splice((_intent$payload$index = intent.payload.index) !== null && _intent$payload$index !== void 0 ? _intent$payload$index : list.length, 0, intent.payload.defaultValue);\n break;\n case 'remove':\n list.splice(intent.payload.index, 1);\n break;\n case 'reorder':\n list.splice(intent.payload.to, 0, ...list.splice(intent.payload.from, 1));\n break;\n default:\n throw new Error('Unknown list intent received');\n }\n}\nfunction setListValue(data, intent) {\n setValueAtPath(data, intent.payload.name, value => {\n var list = value !== null && value !== void 0 ? value : [];\n updateList(list, intent);\n return list;\n });\n}\n\n/**\n * A placeholder symbol for the root value of a nested object\n */\nvar root = Symbol.for('root');\nfunction setState(state, name, valueFn) {\n // The keys are sorted in desc so that the root value is handled last\n var keys = Object.keys(state).sort((prev, next) => next.localeCompare(prev));\n var target = {};\n var _loop2 = function _loop2() {\n var value = state[_key];\n if (isPrefix(_key, name) && _key !== name) {\n setValueAtPath(target, _key, currentValue => {\n if (typeof currentValue === 'undefined') {\n return value;\n }\n\n // As the key should be unique, if currentValue is already defined,\n // it must be either an object or an array\n\n // @ts-expect-error\n currentValue[root] = value;\n return currentValue;\n });\n\n // Remove the value from the data\n delete state[_key];\n }\n };\n for (var _key of keys) {\n _loop2();\n }\n var result = valueFn(getValueAtPath(target, name));\n Object.assign(state, flatten(result, {\n resolve(data) {\n if (isPlainObject(data) || Array.isArray(data)) {\n var _data$root;\n // @ts-expect-error\n return (_data$root = data[root]) !== null && _data$root !== void 0 ? _data$root : null;\n }\n return data;\n },\n prefix: name\n }));\n}\nfunction setListState(state, intent, getDefaultValue) {\n setState(state, intent.payload.name, value => {\n var list = value !== null && value !== void 0 ? value : [];\n switch (intent.type) {\n case 'insert':\n updateList(list, {\n type: intent.type,\n payload: _objectSpread2(_objectSpread2({}, intent.payload), {}, {\n defaultValue: getDefaultValue === null || getDefaultValue === void 0 ? void 0 : getDefaultValue(intent.payload.defaultValue)\n })\n });\n break;\n default:\n updateList(list, intent);\n break;\n }\n return list;\n });\n}\nfunction serialize(defaultValue) {\n if (isPlainObject(defaultValue)) {\n // @ts-expect-error FIXME\n return Object.entries(defaultValue).reduce((result, _ref2) => {\n var [key, value] = _ref2;\n result[key] = serialize(value);\n return result;\n }, {});\n } else if (Array.isArray(defaultValue)) {\n // @ts-expect-error FIXME\n return defaultValue.map(serialize);\n } else if (defaultValue instanceof Date) {\n // @ts-expect-error FIXME\n return defaultValue.toISOString();\n } else if (typeof defaultValue === 'boolean') {\n // @ts-expect-error FIXME\n return defaultValue ? 'on' : undefined;\n } else if (typeof defaultValue === 'number' || typeof defaultValue === 'bigint') {\n // @ts-expect-error FIXME\n return defaultValue.toString();\n } else {\n // @ts-expect-error FIXME\n return defaultValue !== null && defaultValue !== void 0 ? defaultValue : undefined;\n }\n}\n\n/**\n * Normalize value by removing empty object or array, empty string and null values\n */\n\nfunction normalize(value) {\n var acceptFile = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (isPlainObject(value)) {\n var obj = Object.keys(value).sort().reduce((result, key) => {\n var data = normalize(value[key], acceptFile);\n if (typeof data !== 'undefined') {\n result[key] = data;\n }\n return result;\n }, {});\n if (Object.keys(obj).length === 0) {\n return;\n }\n return obj;\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return undefined;\n }\n return value.map(item => normalize(item, acceptFile));\n }\n if (typeof value === 'string' && value === '' || value === null || isGlobalInstance(value, 'File') && (!acceptFile || value.size === 0)) {\n return;\n }\n return value;\n}\n\n/**\n * Flatten a tree into a dictionary\n */\nfunction flatten(data) {\n var _options$resolve;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var result = {};\n var resolve = (_options$resolve = options.resolve) !== null && _options$resolve !== void 0 ? _options$resolve : data => data;\n function process(data, prefix) {\n var value = normalize(resolve(data));\n if (typeof value !== 'undefined') {\n result[prefix] = value;\n }\n if (Array.isArray(data)) {\n for (var i = 0; i < data.length; i++) {\n process(data[i], \"\".concat(prefix, \"[\").concat(i, \"]\"));\n }\n } else if (isPlainObject(data)) {\n for (var [_key2, _value3] of Object.entries(data)) {\n process(_value3, prefix ? \"\".concat(prefix, \".\").concat(_key2) : _key2);\n }\n }\n }\n if (data) {\n var _options$prefix;\n process(data, (_options$prefix = options.prefix) !== null && _options$prefix !== void 0 ? _options$prefix : '');\n }\n return result;\n}\n\nexport { INTENT, STATE, createSubmission, flatten, getIntent, getSubmissionContext, normalize, parse, replySubmission, root, serialize, serializeIntent, setListState, setListValue, setState, updateList };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { appendPathSegment, getValueAtPath, isPrefix, setValueAtPath, getFormData, getPathSegments, getRelativePath, formatPathSegments } from './formdata.mjs';\nimport { getFormAction, getFormEncType, getFormMethod, isFieldElement, requestSubmit, isDirtyInput, updateField } from './dom.mjs';\nimport { generateId, clone, isPlainObject, invariant } from './util.mjs';\nimport { serialize, flatten, setListState, setListValue, setState, normalize, INTENT, serializeIntent, root, getSubmissionContext } from './submission.mjs';\n\nfunction createFormMeta(options, isResetting) {\n var _lastResult$initialVa, _options$constraint, _lastResult$state$val, _lastResult$state, _ref;\n var lastResult = !isResetting ? options.lastResult : undefined;\n var defaultValue = options.defaultValue ? serialize(options.defaultValue) : {};\n var initialValue = (_lastResult$initialVa = lastResult === null || lastResult === void 0 ? void 0 : lastResult.initialValue) !== null && _lastResult$initialVa !== void 0 ? _lastResult$initialVa : defaultValue;\n var result = {\n formId: options.formId,\n pendingIntents: isResetting ? [{\n type: 'reset',\n payload: {}\n }] : [],\n isValueUpdated: false,\n submissionStatus: lastResult === null || lastResult === void 0 ? void 0 : lastResult.status,\n defaultValue,\n initialValue,\n value: initialValue,\n constraint: (_options$constraint = options.constraint) !== null && _options$constraint !== void 0 ? _options$constraint : {},\n validated: (_lastResult$state$val = lastResult === null || lastResult === void 0 || (_lastResult$state = lastResult.state) === null || _lastResult$state === void 0 ? void 0 : _lastResult$state.validated) !== null && _lastResult$state$val !== void 0 ? _lastResult$state$val : {},\n key: !isResetting ? getDefaultKey(defaultValue) : _objectSpread2({\n '': generateId()\n }, getDefaultKey(defaultValue)),\n // The `lastResult` should comes from the server which we won't expect the error to be null\n // We can consider adding a warning if it happens\n error: (_ref = lastResult === null || lastResult === void 0 ? void 0 : lastResult.error) !== null && _ref !== void 0 ? _ref : {}\n };\n handleIntent(result, lastResult === null || lastResult === void 0 ? void 0 : lastResult.intent, lastResult === null || lastResult === void 0 ? void 0 : lastResult.fields);\n return result;\n}\nfunction getDefaultKey(defaultValue, prefix) {\n return Object.entries(flatten(defaultValue, {\n prefix\n })).reduce((result, _ref2) => {\n var [key, value] = _ref2;\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n result[appendPathSegment(key, i)] = generateId();\n }\n }\n return result;\n }, {});\n}\nfunction setFieldsValidated(meta, fields) {\n for (var _name of Object.keys(meta.error).concat(fields !== null && fields !== void 0 ? fields : [])) {\n meta.validated[_name] = true;\n }\n}\nfunction handleIntent(meta, intent, fields, initialized) {\n var _fields$filter;\n if (!intent) {\n setFieldsValidated(meta, fields);\n return;\n }\n switch (intent.type) {\n case 'validate':\n {\n if (intent.payload.name) {\n meta.validated[intent.payload.name] = true;\n } else {\n setFieldsValidated(meta, fields);\n }\n break;\n }\n case 'update':\n {\n var {\n validated,\n value\n } = intent.payload;\n var _name2 = appendPathSegment(intent.payload.name, intent.payload.index);\n if (typeof value !== 'undefined') {\n updateValue(meta, _name2 !== null && _name2 !== void 0 ? _name2 : '', value);\n }\n if (typeof validated !== 'undefined') {\n // Clean up previous validated state\n if (_name2) {\n setState(meta.validated, _name2, () => undefined);\n } else {\n meta.validated = {};\n }\n if (validated) {\n if (isPlainObject(value) || Array.isArray(value)) {\n Object.assign(meta.validated, flatten(value, {\n resolve() {\n return true;\n },\n prefix: _name2\n }));\n }\n meta.validated[_name2 !== null && _name2 !== void 0 ? _name2 : ''] = true;\n } else if (_name2) {\n delete meta.validated[_name2];\n }\n }\n break;\n }\n case 'reset':\n {\n var _name3 = appendPathSegment(intent.payload.name, intent.payload.index);\n var _value = getValueAtPath(meta.defaultValue, _name3);\n updateValue(meta, _name3, _value);\n if (_name3) {\n setState(meta.validated, _name3, () => undefined);\n delete meta.validated[_name3];\n } else {\n meta.validated = {};\n }\n break;\n }\n case 'insert':\n case 'remove':\n case 'reorder':\n {\n if (initialized) {\n meta.initialValue = clone(meta.initialValue);\n meta.key = clone(meta.key);\n setListState(meta.key, intent, defaultValue => {\n if (!Array.isArray(defaultValue) && !isPlainObject(defaultValue)) {\n return generateId();\n }\n return Object.assign(getDefaultKey(defaultValue), {\n [root]: generateId()\n });\n });\n setListValue(meta.initialValue, intent);\n }\n setListState(meta.validated, intent);\n meta.validated[intent.payload.name] = true;\n break;\n }\n }\n var validatedFields = (_fields$filter = fields === null || fields === void 0 ? void 0 : fields.filter(name => meta.validated[name])) !== null && _fields$filter !== void 0 ? _fields$filter : [];\n meta.error = Object.entries(meta.error).reduce((result, _ref3) => {\n var [name, error] = _ref3;\n if (meta.validated[name] || validatedFields.some(field => isPrefix(name, field))) {\n result[name] = error;\n }\n return result;\n }, {});\n}\nfunction updateValue(meta, name, value) {\n if (name === '') {\n meta.initialValue = value;\n meta.value = value;\n meta.key = _objectSpread2(_objectSpread2({}, getDefaultKey(value)), {}, {\n '': generateId()\n });\n return;\n }\n meta.initialValue = clone(meta.initialValue);\n meta.value = clone(meta.value);\n meta.key = clone(meta.key);\n setValueAtPath(meta.initialValue, name, () => value);\n setValueAtPath(meta.value, name, () => value);\n if (isPlainObject(value) || Array.isArray(value)) {\n setState(meta.key, name, () => undefined);\n Object.assign(meta.key, getDefaultKey(value, name));\n }\n meta.key[name] = generateId();\n}\nfunction createStateProxy(fn) {\n var cache = {};\n return new Proxy(cache, {\n get(_, name, receiver) {\n var _cache$name;\n if (typeof name !== 'string') {\n return;\n }\n return (_cache$name = cache[name]) !== null && _cache$name !== void 0 ? _cache$name : cache[name] = fn(name, receiver);\n }\n });\n}\nfunction createValueProxy(value) {\n var val = normalize(value);\n return createStateProxy((name, proxy) => {\n if (name === '') {\n return val;\n }\n var path = getPathSegments(name);\n var basename = formatPathSegments(path.slice(0, -1));\n var key = formatPathSegments(path.slice(-1));\n var parentValue = proxy[basename];\n return getValueAtPath(parentValue, key);\n });\n}\nfunction createConstraintProxy(constraint) {\n return createStateProxy((name, proxy) => {\n var _result;\n var result = constraint[name];\n if (!result) {\n var path = getPathSegments(name);\n for (var i = path.length - 1; i >= 0; i--) {\n var segment = path[i];\n\n // Try searching a less specific path for the constraint\n // e.g. `array[0].anotherArray[1].key` -> `array[0].anotherArray[].key` -> `array[].anotherArray[].key`\n if (typeof segment === 'number') {\n // This overrides the current number segment with an empty string\n // which will be treated as an empty bracket\n path[i] = '';\n break;\n }\n }\n var alternative = formatPathSegments(path);\n if (name !== alternative) {\n result = proxy[alternative];\n }\n }\n return (_result = result) !== null && _result !== void 0 ? _result : {};\n });\n}\nfunction createKeyProxy(key) {\n return createStateProxy((name, proxy) => {\n var currentKey = key[name];\n var segments = getPathSegments(name);\n if (segments.length === 0) {\n return currentKey;\n }\n var parentKey = proxy[formatPathSegments(segments.slice(0, -1))];\n if (typeof parentKey === 'undefined') {\n return currentKey;\n }\n return \"\".concat(parentKey, \"/\").concat(currentKey !== null && currentKey !== void 0 ? currentKey : segments.at(-1));\n });\n}\nfunction createValidProxy(error) {\n return createStateProxy(name => {\n var keys = Object.keys(error);\n if (name === '') {\n return keys.length === 0;\n }\n for (var key of keys) {\n if (isPrefix(key, name) && typeof error[key] !== 'undefined') {\n return false;\n }\n }\n return true;\n });\n}\nfunction createDirtyProxy(defaultValue, value, shouldDirtyConsider) {\n return createStateProxy(name => JSON.stringify(defaultValue[name]) !== JSON.stringify(value[name], (key, value) => {\n if (name === '' && key === '' && value) {\n return Object.entries(value).reduce((result, _ref4) => {\n var [name, value] = _ref4;\n if (!shouldDirtyConsider(name)) {\n return result;\n }\n return Object.assign(result !== null && result !== void 0 ? result : {}, {\n [name]: value\n });\n }, undefined);\n }\n return value;\n }));\n}\nfunction shouldNotify(prev, next, cache, scope) {\n var compareFn = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : (prev, next) => JSON.stringify(prev) !== JSON.stringify(next);\n if (scope && prev !== next) {\n var _scope$prefix, _scope$name;\n var prefixes = (_scope$prefix = scope.prefix) !== null && _scope$prefix !== void 0 ? _scope$prefix : [];\n var names = (_scope$name = scope.name) !== null && _scope$name !== void 0 ? _scope$name : [];\n var list = prefixes.length === 0 ? names : Array.from(new Set([...Object.keys(prev), ...Object.keys(next)]));\n var _loop = function _loop(_name4) {\n if (prefixes.length === 0 || names.includes(_name4) || prefixes.some(prefix => isPrefix(_name4, prefix))) {\n var _cache$_name;\n (_cache$_name = cache[_name4]) !== null && _cache$_name !== void 0 ? _cache$_name : cache[_name4] = compareFn(prev[_name4], next[_name4]);\n if (cache[_name4]) {\n return {\n v: true\n };\n }\n }\n },\n _ret;\n for (var _name4 of list) {\n _ret = _loop(_name4);\n if (_ret) return _ret.v;\n }\n }\n return false;\n}\nfunction createFormContext(options) {\n var subscribers = [];\n var latestOptions = options;\n var processedIntents = new Set();\n var meta = createFormMeta(options);\n var state = createFormState(meta);\n function getFormElement() {\n return document.forms.namedItem(latestOptions.formId);\n }\n function createFormState(next) {\n var prev = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : next;\n var state = arguments.length > 2 ? arguments[2] : undefined;\n var defaultValue = !state || prev.defaultValue !== next.defaultValue ? createValueProxy(next.defaultValue) : state.defaultValue;\n var initialValue = next.initialValue === next.defaultValue ? defaultValue : !state || prev.initialValue !== next.initialValue ? createValueProxy(next.initialValue) : state.initialValue;\n var value = next.value === next.initialValue ? initialValue : !state || prev.value !== next.value ? createValueProxy(next.value) : state.value;\n return {\n submissionStatus: next.submissionStatus,\n pendingIntents: next.pendingIntents,\n defaultValue,\n initialValue,\n value,\n error: !state || prev.error !== next.error ? next.error : state.error,\n validated: next.validated,\n constraint: !state || prev.constraint !== next.constraint ? createConstraintProxy(next.constraint) : state.constraint,\n key: !state || prev.key !== next.key ? createKeyProxy(next.key) : state.key,\n valid: !state || prev.error !== next.error ? createValidProxy(next.error) : state.valid,\n dirty: !state || prev.defaultValue !== next.defaultValue || prev.value !== next.value ? createDirtyProxy(defaultValue, value, key => {\n var _latestOptions$should, _latestOptions$should2;\n return (_latestOptions$should = (_latestOptions$should2 = latestOptions.shouldDirtyConsider) === null || _latestOptions$should2 === void 0 ? void 0 : _latestOptions$should2.call(latestOptions, key)) !== null && _latestOptions$should !== void 0 ? _latestOptions$should : true;\n }) : state.dirty\n };\n }\n function updateFormMeta(nextMeta) {\n var prevMeta = meta;\n var prevState = state;\n var nextState = createFormState(nextMeta, prevMeta, prevState);\n\n // Apply change before notifying subscribers\n meta = nextMeta;\n state = nextState;\n var cache = {\n value: {},\n error: {},\n initialValue: {},\n key: {},\n valid: {},\n dirty: {}\n };\n for (var subscriber of subscribers) {\n var _subscriber$getSubjec;\n var subject = (_subscriber$getSubjec = subscriber.getSubject) === null || _subscriber$getSubjec === void 0 ? void 0 : _subscriber$getSubjec.call(subscriber);\n if (!subject || subject.formId && prevMeta.formId !== nextMeta.formId || subject.status && prevState.submissionStatus !== nextState.submissionStatus || subject.pendingIntents && prevMeta.pendingIntents !== nextMeta.pendingIntents || shouldNotify(prevState.error, nextState.error, cache.error, subject.error) || shouldNotify(prevState.initialValue, nextState.initialValue, cache.initialValue, subject.initialValue) || shouldNotify(prevState.key, nextState.key, cache.key, subject.key, (prev, next) => prev !== next) || shouldNotify(prevState.valid, nextState.valid, cache.valid, subject.valid, compareBoolean) || shouldNotify(prevState.dirty, nextState.dirty, cache.dirty, subject.dirty, compareBoolean) || shouldNotify(prevState.value, nextState.value, cache.value, subject.value)) {\n subscriber.callback();\n }\n }\n }\n function compareBoolean() {\n var prev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return prev !== next;\n }\n function getSerializedState() {\n return JSON.stringify({\n validated: meta.validated\n });\n }\n function submit(event) {\n var form = event.target;\n var submitter = event.submitter;\n invariant(form === getFormElement(), \"The submit event is dispatched by form#\".concat(form.id, \" instead of form#\").concat(latestOptions.formId));\n var formData = getFormData(form, submitter);\n var result = {\n formData,\n action: getFormAction(event),\n encType: getFormEncType(event),\n method: getFormMethod(event)\n };\n if (typeof (latestOptions === null || latestOptions === void 0 ? void 0 : latestOptions.onValidate) === 'undefined') {\n return result;\n }\n var submission = latestOptions.onValidate({\n form,\n formData,\n submitter\n });\n if (submission.status === 'success' || submission.error !== null) {\n var _result2 = submission.reply();\n report(_objectSpread2(_objectSpread2({}, _result2), {}, {\n status: _result2.status !== 'success' ? _result2.status : undefined\n }));\n }\n return _objectSpread2(_objectSpread2({}, result), {}, {\n submission\n });\n }\n function resolveTarget(event) {\n var form = getFormElement();\n var element = event.target;\n if (!form || !isFieldElement(element) || element.form !== form || !element.form.isConnected || element.name === '') {\n return null;\n }\n return element;\n }\n function willValidate(element, eventName) {\n var {\n shouldValidate = 'onSubmit',\n shouldRevalidate = shouldValidate\n } = latestOptions;\n var validated = meta.validated[element.name];\n return validated ? shouldRevalidate === eventName && (eventName === 'onInput' || meta.isValueUpdated) : shouldValidate === eventName;\n }\n function updateFormValue(form) {\n var formData = new FormData(form);\n var result = getSubmissionContext(formData);\n updateFormMeta(_objectSpread2(_objectSpread2({}, meta), {}, {\n isValueUpdated: true,\n value: result.payload\n }));\n }\n function onInput(event) {\n var element = resolveTarget(event);\n if (!element || !element.form) {\n return;\n }\n if (event.defaultPrevented || !willValidate(element, 'onInput')) {\n updateFormValue(element.form);\n } else {\n dispatch({\n type: 'validate',\n payload: {\n name: element.name\n }\n });\n }\n }\n function onBlur(event) {\n var element = resolveTarget(event);\n if (!element || event.defaultPrevented || !willValidate(element, 'onBlur')) {\n return;\n }\n dispatch({\n type: 'validate',\n payload: {\n name: element.name\n }\n });\n }\n function reset() {\n processedIntents.clear();\n updateFormMeta(createFormMeta(latestOptions, true));\n }\n function onReset(event) {\n var element = getFormElement();\n if (event.type !== 'reset' || event.target !== element || event.defaultPrevented) {\n return;\n }\n reset();\n }\n function report(result) {\n var _result$error, _result$state;\n var formElement = getFormElement();\n if (!result.initialValue) {\n reset();\n return;\n }\n var error = Object.entries((_result$error = result.error) !== null && _result$error !== void 0 ? _result$error : {}).reduce((result, _ref5) => {\n var [name, newError] = _ref5;\n var error = newError === null ? meta.error[name] : newError;\n if (error) {\n result[name] = error;\n }\n return result;\n }, {});\n var pendingIntents = result.intent ? meta.pendingIntents.filter(intent => !processedIntents.has(intent)).concat(result.intent) : meta.pendingIntents;\n var update = _objectSpread2(_objectSpread2({}, meta), {}, {\n pendingIntents,\n isValueUpdated: false,\n submissionStatus: result.status,\n value: result.initialValue,\n validated: _objectSpread2(_objectSpread2({}, meta.validated), (_result$state = result.state) === null || _result$state === void 0 ? void 0 : _result$state.validated),\n error\n });\n handleIntent(update, result.intent, result.fields, true);\n updateFormMeta(update);\n if (formElement && result.status === 'error') {\n for (var element of formElement.elements) {\n if (isFieldElement(element) && meta.error[element.name]) {\n element.focus();\n break;\n }\n }\n }\n }\n function onUpdate(options) {\n var currentFormId = latestOptions.formId;\n var currentResult = latestOptions.lastResult;\n\n // Merge new options with the latest options\n Object.assign(latestOptions, options);\n if (latestOptions.formId !== currentFormId) {\n reset();\n } else if (options.lastResult && options.lastResult !== currentResult) {\n report(options.lastResult);\n }\n }\n function subscribe(callback, getSubject) {\n var subscriber = {\n callback,\n getSubject\n };\n subscribers.push(subscriber);\n return () => {\n subscribers = subscribers.filter(current => current !== subscriber);\n };\n }\n function getState() {\n return state;\n }\n function dispatch(intent) {\n var form = getFormElement();\n var submitter = document.createElement('button');\n var buttonProps = getControlButtonProps(intent);\n submitter.name = buttonProps.name;\n submitter.value = buttonProps.value;\n submitter.hidden = true;\n submitter.formNoValidate = true;\n form === null || form === void 0 || form.appendChild(submitter);\n requestSubmit(form, submitter);\n form === null || form === void 0 || form.removeChild(submitter);\n }\n function getControlButtonProps(intent) {\n return {\n name: INTENT,\n value: serializeIntent(intent),\n form: latestOptions.formId,\n formNoValidate: true\n };\n }\n function createFormControl(type) {\n var control = function control() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return dispatch({\n type,\n payload\n });\n };\n return Object.assign(control, {\n getButtonProps() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return getControlButtonProps({\n type,\n payload\n });\n }\n });\n }\n function observe() {\n var observer = new MutationObserver(mutations => {\n var form = getFormElement();\n if (!form) {\n return;\n }\n for (var mutation of mutations) {\n var nodes = mutation.type === 'childList' ? [...mutation.addedNodes, ...mutation.removedNodes] : [mutation.target];\n for (var node of nodes) {\n var element = isFieldElement(node) ? node : node instanceof HTMLElement ? node.querySelector('input,select,textarea') : null;\n if ((element === null || element === void 0 ? void 0 : element.form) === form) {\n updateFormValue(form);\n return;\n }\n }\n }\n });\n observer.observe(document, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: ['form', 'name']\n });\n return () => {\n observer.disconnect();\n };\n }\n function runSideEffect(intents) {\n var formElement = getFormElement();\n if (!formElement) {\n return;\n }\n for (var intent of intents) {\n switch (intent.type) {\n case 'update':\n {\n var _name5 = appendPathSegment(intent.payload.name, intent.payload.index);\n var baseSegments = getPathSegments(_name5);\n for (var element of formElement.elements) {\n if (isFieldElement(element)) {\n var paths = getRelativePath(element.name, baseSegments);\n if (paths) {\n var value = getValueAtPath(intent.payload.value, paths);\n var inputValue = typeof value === 'string' || Array.isArray(value) && value.every(item => typeof item === 'string') ? value : undefined;\n if (typeof inputValue !== 'undefined' || _name5 === '' && paths.length > 1) {\n updateField(element, {\n value: inputValue !== null && inputValue !== void 0 ? inputValue : null\n });\n\n // Update the element attribute to notify useControl / useInputControl hook\n element.dataset.conform = generateId();\n }\n }\n }\n }\n break;\n }\n case 'reset':\n {\n var prefix = appendPathSegment(intent.payload.name, intent.payload.index);\n for (var _element of formElement.elements) {\n if (isFieldElement(_element) && _element.name && isPrefix(_element.name, prefix)) {\n var _value2 = getValueAtPath(meta.defaultValue, _element.name);\n var defaultValue = typeof _value2 === 'string' || Array.isArray(_value2) && _value2.every(item => typeof item === 'string') ? _value2 : undefined;\n if (typeof defaultValue === 'undefined' && !_element.dataset.conform && 'defaultValue' in _element && !isDirtyInput(_element)) {\n continue;\n }\n updateField(_element, {\n defaultValue: defaultValue,\n value: defaultValue !== null && defaultValue !== void 0 ? defaultValue : null\n });\n\n // Update the element attribute to notify useControl / useInputControl hook\n _element.dataset.conform = generateId();\n }\n }\n break;\n }\n }\n processedIntents.add(intent);\n }\n }\n return {\n getFormId() {\n return meta.formId;\n },\n submit,\n onReset,\n onInput,\n onBlur,\n onUpdate,\n validate: createFormControl('validate'),\n reset: createFormControl('reset'),\n update: createFormControl('update'),\n insert: createFormControl('insert'),\n remove: createFormControl('remove'),\n reorder: createFormControl('reorder'),\n runSideEffect,\n subscribe,\n getState,\n getSerializedState,\n observe\n };\n}\n\nexport { createFormContext };\n","function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nexport { _defineProperty as defineProperty, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { STATE, formatPaths, getPaths, unstable_createFormContext, INTENT, isPrefix } from '@conform-to/dom';\nimport { useContext, useMemo, createContext, useCallback, useSyncExternalStore, useRef } from 'react';\nimport { jsx } from 'react/jsx-runtime';\n\nvar Form = /*#__PURE__*/createContext([]);\n\n// To hide the FormContext type from the public API\nvar wrappedSymbol = Symbol('wrapped');\nfunction getWrappedFormContext(context) {\n return context[wrappedSymbol];\n}\nfunction useFormContext(formId) {\n var contexts = useContext(Form);\n var form = formId ? contexts.find(context => formId === context.getFormId()) : contexts[0];\n if (!form) {\n throw new Error('Form context is not available');\n }\n return form;\n}\nfunction useFormState(form, subjectRef) {\n var subscribe = useCallback(callback => form.subscribe(callback, () => subjectRef === null || subjectRef === void 0 ? void 0 : subjectRef.current), [form, subjectRef]);\n return useSyncExternalStore(subscribe, form.getState, form.getState);\n}\nfunction FormProvider(props) {\n var forms = useContext(Form);\n var context = getWrappedFormContext(props.context);\n var value = useMemo(() => [context].concat(forms),\n // Put the latest form context first\n [forms, context]);\n return /*#__PURE__*/jsx(Form.Provider, {\n value: value,\n children: props.children\n });\n}\nfunction FormStateInput(props) {\n var context = useFormContext(props.formId);\n return /*#__PURE__*/jsx(\"input\", {\n type: \"hidden\",\n name: STATE,\n value: context.getSerializedState(),\n form: props.formId\n });\n}\nfunction useSubjectRef() {\n var initialSubject = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var subjectRef = useRef(initialSubject);\n\n // Reset the subject everytime the component is rerendered\n // This let us subscribe to data used in the last render only\n subjectRef.current = initialSubject;\n return subjectRef;\n}\nfunction updateSubjectRef(ref, subject, scope, name) {\n if (subject === 'status' || subject === 'formId' || subject === 'pendingIntents') {\n ref.current[subject] = true;\n } else if (typeof scope !== 'undefined' && typeof name !== 'undefined') {\n var _ref$current$subject$, _ref$current$subject;\n ref.current[subject] = _objectSpread2(_objectSpread2({}, ref.current[subject]), {}, {\n [scope]: ((_ref$current$subject$ = (_ref$current$subject = ref.current[subject]) === null || _ref$current$subject === void 0 ? void 0 : _ref$current$subject[scope]) !== null && _ref$current$subject$ !== void 0 ? _ref$current$subject$ : []).concat(name)\n });\n }\n}\nfunction getMetadata(context, subjectRef, stateSnapshot) {\n var name = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var id = name ? \"\".concat(context.getFormId(), \"-\").concat(name) : context.getFormId();\n var state = context.getState();\n return new Proxy({\n id,\n name,\n errorId: \"\".concat(id, \"-error\"),\n descriptionId: \"\".concat(id, \"-description\"),\n get defaultValue() {\n var initialValue = this.initialValue;\n if (typeof initialValue === 'string') {\n return initialValue;\n }\n if (Array.isArray(initialValue)) {\n return initialValue[0];\n }\n },\n get defaultOptions() {\n var initialValue = this.initialValue;\n if (typeof initialValue === 'string') {\n return [initialValue];\n }\n if (Array.isArray(initialValue) && initialValue.every(item => typeof item === 'string')) {\n return initialValue;\n }\n },\n get defaultChecked() {\n if (this.initialValue === 'on') {\n return true;\n }\n },\n get initialValue() {\n return state.initialValue[name];\n },\n get value() {\n return state.value[name];\n },\n get errors() {\n return state.error[name];\n },\n get key() {\n return state.key[name];\n },\n get valid() {\n return state.valid[name];\n },\n get dirty() {\n return state.dirty[name];\n },\n get allErrors() {\n if (name === '') {\n return state.error;\n }\n var result = {};\n for (var [key, error] of Object.entries(state.error)) {\n if (isPrefix(key, name)) {\n result[key] = error;\n }\n }\n return result;\n },\n get getFieldset() {\n return () => new Proxy({}, {\n get(target, key, receiver) {\n if (typeof key === 'string') {\n return getFieldMetadata(context, subjectRef, stateSnapshot, name, key);\n }\n return Reflect.get(target, key, receiver);\n }\n });\n }\n }, {\n get(target, key, receiver) {\n // We want to minize re-render by identifying whether the field is used in a callback only\n // but there is no clear way to know if it is accessed during render or not\n // if the stateSnapshot is not the latest, then it must be accessed in a callback\n if (state === stateSnapshot) {\n switch (key) {\n case 'id':\n case 'errorId':\n case 'descriptionId':\n updateSubjectRef(subjectRef, 'formId');\n break;\n case 'key':\n case 'initialValue':\n case 'value':\n case 'valid':\n case 'dirty':\n updateSubjectRef(subjectRef, key, 'name', name);\n break;\n case 'errors':\n case 'allErrors':\n updateSubjectRef(subjectRef, 'error', key === 'errors' ? 'name' : 'prefix', name);\n break;\n }\n }\n return Reflect.get(target, key, receiver);\n }\n });\n}\nfunction getFieldMetadata(context, subjectRef, stateSnapshot) {\n var prefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var key = arguments.length > 4 ? arguments[4] : undefined;\n var name = typeof key === 'undefined' ? prefix : formatPaths([...getPaths(prefix), key]);\n return new Proxy({}, {\n get(_, key, receiver) {\n var _state$constraint$nam;\n var metadata = getMetadata(context, subjectRef, stateSnapshot, name);\n var state = context.getState();\n switch (key) {\n case 'formId':\n if (state === stateSnapshot) {\n updateSubjectRef(subjectRef, 'formId');\n }\n return context.getFormId();\n case 'required':\n case 'minLength':\n case 'maxLength':\n case 'min':\n case 'max':\n case 'pattern':\n case 'step':\n case 'multiple':\n return (_state$constraint$nam = state.constraint[name]) === null || _state$constraint$nam === void 0 ? void 0 : _state$constraint$nam[key];\n case 'getFieldList':\n {\n return () => {\n var _state$initialValue$n;\n var initialValue = (_state$initialValue$n = state.initialValue[name]) !== null && _state$initialValue$n !== void 0 ? _state$initialValue$n : [];\n if (state === stateSnapshot) {\n updateSubjectRef(subjectRef, 'initialValue', 'name', name);\n }\n if (!Array.isArray(initialValue)) {\n throw new Error('The initial value at the given name is not a list');\n }\n return Array(initialValue.length).fill(0).map((_, index) => getFieldMetadata(context, subjectRef, stateSnapshot, name, index));\n };\n }\n }\n return Reflect.get(metadata, key, receiver);\n }\n });\n}\nfunction getFormMetadata(context, subjectRef, stateSnapshot, noValidate) {\n return new Proxy({}, {\n get(_, key, receiver) {\n var metadata = getMetadata(context, subjectRef, stateSnapshot);\n var state = context.getState();\n switch (key) {\n case 'context':\n return {\n [wrappedSymbol]: context\n };\n case 'status':\n if (state === stateSnapshot) {\n updateSubjectRef(subjectRef, 'status');\n }\n return state.submissionStatus;\n case 'validate':\n case 'update':\n case 'reset':\n case 'insert':\n case 'remove':\n case 'reorder':\n return context[key];\n case 'onSubmit':\n return context.submit;\n case 'noValidate':\n return noValidate;\n }\n return Reflect.get(metadata, key, receiver);\n }\n });\n}\nfunction createFormContext(options) {\n var {\n onSubmit\n } = options;\n var context = unstable_createFormContext(options);\n return _objectSpread2(_objectSpread2({}, context), {}, {\n submit(event) {\n var submitEvent = event.nativeEvent;\n var result = context.submit(submitEvent);\n if (!result.submission || result.submission.status === 'success' || result.submission.error === null) {\n if (!result.formData.has(INTENT)) {\n var _onSubmit;\n (_onSubmit = onSubmit) === null || _onSubmit === void 0 || _onSubmit(event, result);\n }\n } else {\n event.preventDefault();\n }\n },\n onUpdate(options) {\n onSubmit = options.onSubmit;\n context.onUpdate(options);\n }\n });\n}\n\nexport { Form, FormProvider, FormStateInput, createFormContext, getFieldMetadata, getFormMetadata, getMetadata, getWrappedFormContext, updateSubjectRef, useFormContext, useFormState, useSubjectRef };\n","import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { useState, useEffect, useLayoutEffect, useId } from 'react';\nimport { createFormContext, useSubjectRef, useFormState, getFormMetadata, useFormContext, getFieldMetadata } from './context.mjs';\n\nvar _excluded = [\"id\"];\n\n/**\n * useLayoutEffect is client-only.\n * This basically makes it a no-op on server\n */\nvar useSafeLayoutEffect = typeof document === 'undefined' ? useEffect : useLayoutEffect;\nfunction useFormId(preferredId) {\n var id = useId();\n return preferredId !== null && preferredId !== void 0 ? preferredId : id;\n}\nfunction useNoValidate() {\n var defaultNoValidate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var [noValidate, setNoValidate] = useState(defaultNoValidate);\n useSafeLayoutEffect(() => {\n // This is necessary to fix an issue in strict mode with related to our proxy setup\n // It avoids the component from being rerendered without re-rendering the child\n // Which reset the proxy but failed to capture its usage within child component\n if (!noValidate) {\n setNoValidate(true);\n }\n }, [noValidate]);\n return noValidate;\n}\nfunction useForm(options) {\n var {\n id\n } = options,\n formConfig = _objectWithoutProperties(options, _excluded);\n var formId = useFormId(id);\n var [context] = useState(() => createFormContext(_objectSpread2(_objectSpread2({}, formConfig), {}, {\n formId\n })));\n useSafeLayoutEffect(() => {\n var disconnect = context.observe();\n document.addEventListener('input', context.onInput);\n document.addEventListener('focusout', context.onBlur);\n document.addEventListener('reset', context.onReset);\n return () => {\n disconnect();\n document.removeEventListener('input', context.onInput);\n document.removeEventListener('focusout', context.onBlur);\n document.removeEventListener('reset', context.onReset);\n };\n }, [context]);\n useSafeLayoutEffect(() => {\n context.onUpdate(_objectSpread2(_objectSpread2({}, formConfig), {}, {\n formId\n }));\n });\n var subjectRef = useSubjectRef({\n pendingIntents: true\n });\n var stateSnapshot = useFormState(context, subjectRef);\n var noValidate = useNoValidate(options.defaultNoValidate);\n var form = getFormMetadata(context, subjectRef, stateSnapshot, noValidate);\n useEffect(() => {\n context.runSideEffect(stateSnapshot.pendingIntents);\n }, [context, stateSnapshot.pendingIntents]);\n return [form, form.getFieldset()];\n}\nfunction useFormMetadata(formId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var subjectRef = useSubjectRef();\n var context = useFormContext(formId);\n var stateSnapshot = useFormState(context, subjectRef);\n var noValidate = useNoValidate(options.defaultNoValidate);\n return getFormMetadata(context, subjectRef, stateSnapshot, noValidate);\n}\nfunction useField(name) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var subjectRef = useSubjectRef();\n var context = useFormContext(options.formId);\n var stateSnapshot = useFormState(context, subjectRef);\n var field = getFieldMetadata(context, subjectRef, stateSnapshot, name);\n var form = getFormMetadata(context, subjectRef, stateSnapshot, false);\n return [field, form];\n}\n\nexport { useField, useForm, useFormId, useFormMetadata, useNoValidate, useSafeLayoutEffect };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\n\n/**\n * Cleanup `undefined` from the result.\n * To minimize conflicts when merging with user defined props\n */\nfunction simplify(props) {\n for (var key in props) {\n if (props[key] === undefined) {\n delete props[key];\n }\n }\n return props;\n}\n\n/**\n * Derives aria attributes of a form control based on the field metadata.\n */\nfunction getAriaAttributes(metadata) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var field = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (typeof options.ariaAttributes !== 'undefined' && !options.ariaAttributes) {\n return {};\n }\n var invalid = options.ariaInvalid === 'allErrors' ? !metadata.valid : typeof metadata.errors !== 'undefined';\n var ariaDescribedBy = options.ariaDescribedBy;\n return simplify({\n 'aria-invalid': field && invalid || undefined,\n 'aria-describedby': invalid ? \"\".concat(metadata.errorId, \" \").concat(ariaDescribedBy !== null && ariaDescribedBy !== void 0 ? ariaDescribedBy : '').trim() : ariaDescribedBy\n });\n}\n\n/**\n * Derives the properties of a form element based on the form metadata,\n * including `id`, `onSubmit`, `noValidate`, and `aria-describedby`.\n *\n * @example\n * ```tsx\n * <form {...getFormProps(metadata)} />\n * ```\n */\nfunction getFormProps(metadata, options) {\n return simplify(_objectSpread2({\n id: metadata.id,\n onSubmit: metadata.onSubmit,\n noValidate: metadata.noValidate\n }, getAriaAttributes(metadata, options)));\n}\n\n/**\n * Derives the properties of a fieldset element based on the field metadata,\n * including `id`, `name`, `form`, and `aria-describedby`.\n *\n * @example\n * ```tsx\n * <fieldset {...getFieldsetProps(metadata)} />\n * ```\n */\nfunction getFieldsetProps(metadata, options) {\n var field = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return simplify(_objectSpread2({\n id: metadata.id,\n name: metadata.name,\n form: metadata.formId\n }, getAriaAttributes(metadata, options, field)));\n}\n\n/**\n * Derives common properties of a form control based on the field metadata,\n * including `key`, `id`, `name`, `form`, `required`, `autoFocus`, `aria-invalid` and `aria-describedby`.\n */\nfunction getFormControlProps(metadata, options) {\n return simplify(_objectSpread2({\n key: undefined,\n required: metadata.required || undefined\n }, getFieldsetProps(metadata, options, true)));\n}\n\n/**\n * Derives the properties of an input element based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby`\n * and constraint attributes such as `type`, `required`, `minLength`, `maxLength`, `min`, `max`, `step`, `pattern`, `multiple`.\n * Depends on the provided options, it will also set `defaultChecked` / `checked` if it is a checkbox or radio button,\n * or otherwise `defaultValue` / `value`.\n *\n * @see https://conform.guide/api/react/getInputProps\n * @example\n * ```tsx\n * // To setup an uncontrolled input\n * <input {...getInputProps(metadata, { type: 'text' })} />\n * // To setup an uncontrolled checkbox\n * <input {...getInputProps(metadata, { type: 'checkbox' })} />\n * // To setup an input without defaultValue\n * <input {...getInputProps(metadata, { value: false })} />\n * // To setup a radio button without defaultChecked state\n * <input {...getInputProps(metadata, { type: 'radio', value: false })} />\n * ```\n */\nfunction getInputProps(metadata, options) {\n var props = _objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n type: options.type,\n minLength: metadata.minLength,\n maxLength: metadata.maxLength,\n min: metadata.min,\n max: metadata.max,\n step: metadata.step,\n pattern: metadata.pattern,\n multiple: metadata.multiple\n });\n if (typeof options.value === 'undefined' || options.value) {\n if (options.type === 'checkbox' || options.type === 'radio') {\n props.value = typeof options.value === 'string' ? options.value : 'on';\n props.defaultChecked = Array.isArray(metadata.initialValue) ? metadata.initialValue.includes(options.value) : metadata.initialValue === props.value;\n } else if (typeof metadata.initialValue === 'string') {\n props.defaultValue = metadata.initialValue;\n }\n }\n return simplify(props);\n}\n\n/**\n * Derives the properties of a select element based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby`\n * and constraint attributes such as `required` or `multiple`.\n * Depends on the provided options, it will also set `defaultValue` / `value`.\n *\n * @see https://conform.guide/api/react/getSelectProps\n * @example\n * ```tsx\n * // To setup an uncontrolled select\n * <select {...getSelectProps(metadata)} />\n * // To setup a select without defaultValue\n * <select {...getSelectProps(metadata, { value: false })} />\n * ```\n */\nfunction getSelectProps(metadata) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var props = _objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n multiple: metadata.multiple\n });\n if (typeof options.value === 'undefined' || options.value) {\n var _metadata$initialValu;\n props.defaultValue = Array.isArray(metadata.initialValue) ? metadata.initialValue.map(item => \"\".concat(item !== null && item !== void 0 ? item : '')) : (_metadata$initialValu = metadata.initialValue) === null || _metadata$initialValu === void 0 ? void 0 : _metadata$initialValu.toString();\n }\n return simplify(props);\n}\n\n/**\n * Derives the properties of a textarea element based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby`\n * and constraint attributes such as `required`, `minLength` or `maxLength`.\n * Depends on the provided options, it will also set `defaultValue` / `value`.\n *\n * @see https://conform.guide/api/react/getTextareaProps\n * @example\n * ```tsx\n * // To setup an uncontrolled textarea\n * <textarea {...getTextareaProps(metadata)} />\n * // To setup a textarea without defaultValue\n * <textarea {...getTextareaProps(metadata, { value: false })} />\n * ```\n */\nfunction getTextareaProps(metadata) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var props = _objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n minLength: metadata.minLength,\n maxLength: metadata.maxLength\n });\n if (typeof options.value === 'undefined' || options.value) {\n var _metadata$initialValu2;\n props.defaultValue = (_metadata$initialValu2 = metadata.initialValue) === null || _metadata$initialValu2 === void 0 ? void 0 : _metadata$initialValu2.toString();\n }\n return simplify(props);\n}\n\n/**\n * Derives the properties of a collection of checkboxes or radio buttons based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby` and `required`.\n *\n * @see https://conform.guide/api/react/getCollectionProps\n * @example\n * ```tsx\n * <fieldset>\n * {getCollectionProps(metadata, {\n * type: 'checkbox',\n * options: ['a', 'b', 'c']\n * }).map((props) => (\n * <div key={props.key}>\n * <label htmlFor={props.id}>{props.value}</label>\n * <input {...props} />\n * </div>\n * ))}\n * </fieldset>\n * ```\n */\nfunction getCollectionProps(metadata, options) {\n return options.options.map(value => {\n var _metadata$key;\n return simplify(_objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n key: \"\".concat((_metadata$key = metadata.key) !== null && _metadata$key !== void 0 ? _metadata$key : '').concat(value),\n id: \"\".concat(metadata.id, \"-\").concat(value),\n type: options.type,\n value,\n defaultChecked: typeof options.value === 'undefined' || options.value ? options.type === 'checkbox' && Array.isArray(metadata.initialValue) ? metadata.initialValue.includes(value) : metadata.initialValue === value : undefined,\n // The required attribute doesn't make sense for checkbox group\n // As it would require all checkboxes to be checked instead of at least one\n // It is overriden with `undefiend` so it could be cleaned up properly\n required: options.type === 'checkbox' ? undefined : metadata.required\n }));\n });\n}\n\nexport { getAriaAttributes, getCollectionProps, getFieldsetProps, getFormControlProps, getFormProps, getInputProps, getSelectProps, getTextareaProps };\n","function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nexport { _defineProperty as defineProperty, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };\n","/** A special constant with type `never` */\nexport const NEVER = Object.freeze({\n status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n function init(inst, def) {\n var _a;\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod ?? {},\n enumerable: false,\n });\n (_a = inst._zod).traits ?? (_a.traits = new Set());\n inst._zod.traits.add(name);\n initializer(inst, def);\n // support prototype modifications\n for (const k in _.prototype) {\n if (!(k in inst))\n Object.defineProperty(inst, k, { value: _.prototype[k].bind(inst) });\n }\n inst._zod.constr = _;\n inst._zod.def = def;\n }\n // doesn't work if Parent has a constructor with arguments\n const Parent = params?.Parent ?? Object;\n class Definition extends Parent {\n }\n Object.defineProperty(Definition, \"name\", { value: name });\n function _(def) {\n var _a;\n const inst = params?.Parent ? new Definition() : this;\n init(inst, def);\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n for (const fn of inst._zod.deferred) {\n fn();\n }\n return inst;\n }\n Object.defineProperty(_, \"init\", { value: init });\n Object.defineProperty(_, Symbol.hasInstance, {\n value: (inst) => {\n if (params?.Parent && inst instanceof params.Parent)\n return true;\n return inst?._zod?.traits?.has(name);\n },\n });\n Object.defineProperty(_, \"name\", { value: name });\n return _;\n}\n////////////////////////////// UTILITIES ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n constructor() {\n super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n if (newConfig)\n Object.assign(globalConfig, newConfig);\n return globalConfig;\n}\n","// functions\nexport function assertEqual(val) {\n return val;\n}\nexport function assertNotEqual(val) {\n return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n throw new Error();\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n const values = Object.entries(entries)\n .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n .map(([_, v]) => v);\n return values;\n}\nexport function joinValues(array, separator = \"|\") {\n return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n if (typeof value === \"bigint\")\n return value.toString();\n return value;\n}\nexport function cached(getter) {\n const set = false;\n return {\n get value() {\n if (!set) {\n const value = getter();\n Object.defineProperty(this, \"value\", { value });\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n };\n}\nexport function nullish(input) {\n return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport function defineLazy(object, key, getter) {\n const set = false;\n Object.defineProperty(object, key, {\n get() {\n if (!set) {\n const value = getter();\n object[key] = value;\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n set(v) {\n Object.defineProperty(object, key, {\n value: v,\n // configurable: true,\n });\n // object[key] = v;\n },\n configurable: true,\n });\n}\nexport function assignProp(target, prop, value) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n}\nexport function getElementAtPath(obj, path) {\n if (!path)\n return obj;\n return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n const keys = Object.keys(promisesObj);\n const promises = keys.map((key) => promisesObj[key]);\n return Promise.all(promises).then((results) => {\n const resolvedObj = {};\n for (let i = 0; i < keys.length; i++) {\n resolvedObj[keys[i]] = results[i];\n }\n return resolvedObj;\n });\n}\nexport function randomString(length = 10) {\n const chars = \"abcdefghijklmnopqrstuvwxyz\";\n let str = \"\";\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * chars.length)];\n }\n return str;\n}\nexport function esc(str) {\n return JSON.stringify(str);\n}\nexport const captureStackTrace = Error.captureStackTrace\n ? Error.captureStackTrace\n : (..._args) => { };\nexport function isObject(data) {\n return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n return false;\n }\n try {\n const F = Function;\n new F(\"\");\n return true;\n }\n catch (_) {\n return false;\n }\n});\nexport function isPlainObject(o) {\n if (isObject(o) === false)\n return false;\n // modified constructor\n const ctor = o.constructor;\n if (ctor === undefined)\n return true;\n // modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false)\n return false;\n // ctor doesn't have static `isPrototypeOf`\n if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nexport function numKeys(data) {\n let keyCount = 0;\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n keyCount++;\n }\n }\n return keyCount;\n}\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isNaN(data) ? \"nan\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"function\":\n return \"function\";\n case \"bigint\":\n return \"bigint\";\n case \"symbol\":\n return \"symbol\";\n case \"object\":\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return \"promise\";\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return \"map\";\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return \"set\";\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return \"date\";\n }\n if (typeof File !== \"undefined\" && data instanceof File) {\n return \"file\";\n }\n return \"object\";\n default:\n throw new Error(`Unknown data type: ${t}`);\n }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n const cl = new inst._zod.constr(def ?? inst._zod.def);\n if (!def || params?.parent)\n cl._zod.parent = inst;\n return cl;\n}\nexport function normalizeParams(_params) {\n const params = _params;\n if (!params)\n return {};\n if (typeof params === \"string\")\n return { error: () => params };\n if (params?.message !== undefined) {\n if (params?.error !== undefined)\n throw new Error(\"Cannot specify both `message` and `error` params\");\n params.error = params.message;\n }\n delete params.message;\n if (typeof params.error === \"string\")\n return { ...params, error: () => params.error };\n return params;\n}\nexport function createTransparentProxy(getter) {\n let target;\n return new Proxy({}, {\n get(_, prop, receiver) {\n target ?? (target = getter());\n return Reflect.get(target, prop, receiver);\n },\n set(_, prop, value, receiver) {\n target ?? (target = getter());\n return Reflect.set(target, prop, value, receiver);\n },\n has(_, prop) {\n target ?? (target = getter());\n return Reflect.has(target, prop);\n },\n deleteProperty(_, prop) {\n target ?? (target = getter());\n return Reflect.deleteProperty(target, prop);\n },\n ownKeys(_) {\n target ?? (target = getter());\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(_, prop) {\n target ?? (target = getter());\n return Reflect.getOwnPropertyDescriptor(target, prop);\n },\n defineProperty(_, prop, descriptor) {\n target ?? (target = getter());\n return Reflect.defineProperty(target, prop, descriptor);\n },\n });\n}\nexport function stringifyPrimitive(value) {\n if (typeof value === \"bigint\")\n return value.toString() + \"n\";\n if (typeof value === \"string\")\n return `\"${value}\"`;\n return `${value}`;\n}\nexport function optionalKeys(shape) {\n return Object.keys(shape).filter((k) => {\n return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n });\n}\nexport const NUMBER_FORMAT_RANGES = {\n safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n int32: [-2147483648, 2147483647],\n uint32: [0, 4294967295],\n float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n const newShape = {};\n const currDef = schema._zod.def; //.shape;\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // pick key\n newShape[key] = currDef.shape[key];\n }\n return clone(schema, {\n ...schema._zod.def,\n shape: newShape,\n checks: [],\n });\n}\nexport function omit(schema, mask) {\n const newShape = { ...schema._zod.def.shape };\n const currDef = schema._zod.def; //.shape;\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n delete newShape[key];\n }\n return clone(schema, {\n ...schema._zod.def,\n shape: newShape,\n checks: [],\n });\n}\nexport function extend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to extend: expected a plain object\");\n }\n const def = {\n ...schema._zod.def,\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n checks: [], // delete existing checks\n };\n return clone(schema, def);\n}\nexport function merge(a, b) {\n return clone(a, {\n ...a._zod.def,\n get shape() {\n const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n catchall: b._zod.def.catchall,\n checks: [], // delete existing checks\n });\n}\nexport function partial(Class, schema, mask) {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in oldShape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n else {\n for (const key in oldShape) {\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n return clone(schema, {\n ...schema._zod.def,\n shape,\n checks: [],\n });\n}\nexport function required(Class, schema, mask) {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n else {\n for (const key in oldShape) {\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n return clone(schema, {\n ...schema._zod.def,\n shape,\n // optional: [],\n checks: [],\n });\n}\nexport function aborted(x, startIndex = 0) {\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue !== true)\n return true;\n }\n return false;\n}\nexport function prefixIssues(path, issues) {\n return issues.map((iss) => {\n var _a;\n (_a = iss).path ?? (_a.path = []);\n iss.path.unshift(path);\n return iss;\n });\n}\nexport function unwrapMessage(message) {\n return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n const full = { ...iss, path: iss.path ?? [] };\n // for backwards compatibility\n if (!iss.message) {\n const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n unwrapMessage(ctx?.error?.(iss)) ??\n unwrapMessage(config.customError?.(iss)) ??\n unwrapMessage(config.localeError?.(iss)) ??\n \"Invalid input\";\n full.message = message;\n }\n // delete (full as any).def;\n delete full.inst;\n delete full.continue;\n if (!ctx?.reportInput) {\n delete full.input;\n }\n return full;\n}\nexport function getSizableOrigin(input) {\n if (input instanceof Set)\n return \"set\";\n if (input instanceof Map)\n return \"map\";\n if (input instanceof File)\n return \"file\";\n return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n if (Array.isArray(input))\n return \"array\";\n if (typeof input === \"string\")\n return \"string\";\n return \"unknown\";\n}\nexport function issue(...args) {\n const [iss, input, inst] = args;\n if (typeof iss === \"string\") {\n return {\n message: iss,\n code: \"custom\",\n input,\n inst,\n };\n }\n return { ...iss };\n}\nexport function cleanEnum(obj) {\n return Object.entries(obj)\n .filter(([k, _]) => {\n // return true if NaN, meaning it's not a number, thus a string key\n return Number.isNaN(Number.parseInt(k, 10));\n })\n .map((el) => el[1]);\n}\n// instanceof\nexport class Class {\n constructor(..._args) { }\n}\n","import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n inst.name = \"$ZodError\";\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod,\n enumerable: false,\n });\n Object.defineProperty(inst, \"issues\", {\n value: def,\n enumerable: false,\n });\n Object.defineProperty(inst, \"message\", {\n get() {\n return JSON.stringify(def, util.jsonStringifyReplacer, 2);\n },\n enumerable: true,\n // configurable: false,\n });\n Object.defineProperty(inst, \"toString\", {\n value: () => inst.message,\n enumerable: false,\n });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of error.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n}\nexport function formatError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n issue.errors.map((issues) => processError({ issues }));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues });\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues });\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(error);\n return fieldErrors;\n}\nexport function treeifyError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const result = { errors: [] };\n const processError = (error, path = []) => {\n var _a, _b;\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n // regular union error\n issue.errors.map((issues) => processError({ issues }, issue.path));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n result.errors.push(mapper(issue));\n continue;\n }\n let curr = result;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n if (typeof el === \"string\") {\n curr.properties ?? (curr.properties = {});\n (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n curr = curr.properties[el];\n }\n else {\n curr.items ?? (curr.items = []);\n (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n curr = curr.items[el];\n }\n if (terminal) {\n curr.errors.push(mapper(issue));\n }\n i++;\n }\n }\n }\n };\n processError(error);\n return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n * issues: [\n * {\n * expected: 'string',\n * code: 'invalid_type',\n * path: [ 'username' ],\n * message: 'Invalid input: expected string'\n * },\n * {\n * expected: 'number',\n * code: 'invalid_type',\n * path: [ 'favoriteNumbers', 1 ],\n * message: 'Invalid input: expected number'\n * }\n * ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n * ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n * ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(path) {\n const segs = [];\n for (const seg of path) {\n if (typeof seg === \"number\")\n segs.push(`[${seg}]`);\n else if (typeof seg === \"symbol\")\n segs.push(`[${JSON.stringify(String(seg))}]`);\n else if (/[^\\w$]/.test(seg))\n segs.push(`[${JSON.stringify(seg)}]`);\n else {\n if (segs.length)\n segs.push(\".\");\n segs.push(seg);\n }\n }\n return segs.join(\"\");\n}\nexport function prettifyError(error) {\n const lines = [];\n // sort by path length\n const issues = [...error.issues].sort((a, b) => a.path.length - b.path.length);\n // Process each issue\n for (const issue of issues) {\n lines.push(`✖ ${issue.message}`);\n if (issue.path?.length)\n lines.push(` → at ${toDotPath(issue.path)}`);\n }\n // Convert Map to formatted string\n return lines.join(\"\\n\");\n}\n","import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n if (result.issues.length) {\n const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, _params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n if (result.issues.length) {\n const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n return result.issues.length\n ? {\n success: false,\n error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n return result.issues.length\n ? {\n success: false,\n error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\n","export const version = {\n major: 4,\n minor: 0,\n patch: 0,\n};\n","import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n var _a;\n inst ?? (inst = {});\n inst._zod.def = def; // set _def property\n inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n inst._zod.version = version;\n const checks = [...(inst._zod.def.checks ?? [])];\n // if inst is itself a checks.$ZodCheck, run it as a check\n if (inst._zod.traits.has(\"$ZodCheck\")) {\n checks.unshift(inst);\n }\n //\n for (const ch of checks) {\n for (const fn of ch._zod.onattach) {\n fn(inst);\n }\n }\n if (checks.length === 0) {\n // deferred initializer\n // inst._zod.parse is not yet defined\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n inst._zod.deferred?.push(() => {\n inst._zod.run = inst._zod.parse;\n });\n }\n else {\n const runChecks = (payload, checks, ctx) => {\n let isAborted = util.aborted(payload);\n let asyncResult;\n for (const ch of checks) {\n if (ch._zod.def.when) {\n const shouldRun = ch._zod.def.when(payload);\n if (!shouldRun)\n continue;\n }\n else if (isAborted) {\n continue;\n }\n const currLen = payload.issues.length;\n const _ = ch._zod.check(payload);\n if (_ instanceof Promise && ctx?.async === false) {\n throw new core.$ZodAsyncError();\n }\n if (asyncResult || _ instanceof Promise) {\n asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n await _;\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n return;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n });\n }\n else {\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n continue;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n }\n }\n if (asyncResult) {\n return asyncResult.then(() => {\n return payload;\n });\n }\n return payload;\n };\n inst._zod.run = (payload, ctx) => {\n const result = inst._zod.parse(payload, ctx);\n if (result instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return result.then((result) => runChecks(result, checks, ctx));\n }\n return runChecks(result, checks, ctx);\n };\n }\n inst[\"~standard\"] = {\n validate: (value) => {\n try {\n const r = safeParse(inst, value);\n return r.success ? { value: r.data } : { issues: r.error?.issues };\n }\n catch (_) {\n return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n }\n },\n vendor: \"zod\",\n version: 1,\n };\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n inst._zod.parse = (payload, _) => {\n if (def.coerce)\n try {\n payload.value = String(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"string\")\n return payload;\n payload.issues.push({\n expected: \"string\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n // check initialization must come first\n checks.$ZodCheckStringFormat.init(inst, def);\n $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.guid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n if (def.version) {\n const versionMap = {\n v1: 1,\n v2: 2,\n v3: 3,\n v4: 4,\n v5: 5,\n v6: 6,\n v7: 7,\n v8: 8,\n };\n const v = versionMap[def.version];\n if (v === undefined)\n throw new Error(`Invalid UUID version: \"${def.version}\"`);\n def.pattern ?? (def.pattern = regexes.uuid(v));\n }\n else\n def.pattern ?? (def.pattern = regexes.uuid());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.email);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n try {\n const orig = payload.value;\n const url = new URL(orig);\n const href = url.href;\n if (def.hostname) {\n def.hostname.lastIndex = 0;\n if (!def.hostname.test(url.hostname)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid hostname\",\n pattern: regexes.hostname.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n if (def.protocol) {\n def.protocol.lastIndex = 0;\n if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid protocol\",\n pattern: def.protocol.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n // payload.value = url.href;\n if (!orig.endsWith(\"/\") && href.endsWith(\"/\")) {\n payload.value = href.slice(0, -1);\n }\n else {\n payload.value = href;\n }\n return;\n }\n catch (_) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.emoji());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.nanoid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid2);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ulid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.xid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ksuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.datetime(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.date);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.time(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.duration);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv4);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv4`;\n });\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv6);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv6`;\n });\n inst._zod.check = (payload) => {\n try {\n new URL(`http://[${payload.value}]`);\n // return;\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"ipv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv4);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n const [address, prefix] = payload.value.split(\"/\");\n try {\n if (!prefix)\n throw new Error();\n const prefixNum = Number(prefix);\n if (`${prefixNum}` !== prefix)\n throw new Error();\n if (prefixNum < 0 || prefixNum > 128)\n throw new Error();\n new URL(`http://[${address}]`);\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"cidrv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64(data) {\n if (data === \"\")\n return true;\n if (data.length % 4 !== 0)\n return false;\n try {\n atob(data);\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64URL(data) {\n if (!regexes.base64url.test(data))\n return false;\n const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64url);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64url\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64URL(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.e164);\n $ZodStringFormat.init(inst, def);\n});\n////////////////////////////// ZodJWT //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n try {\n const tokensParts = token.split(\".\");\n if (tokensParts.length !== 3)\n return false;\n const [header] = tokensParts;\n if (!header)\n return false;\n const parsedHeader = JSON.parse(atob(header));\n if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n return false;\n if (!parsedHeader.alg)\n return false;\n if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidJWT(payload.value, def.alg))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"jwt\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (def.fn(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Number(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n return payload;\n }\n const received = typeof input === \"number\"\n ? Number.isNaN(input)\n ? \"NaN\"\n : !Number.isFinite(input)\n ? \"Infinity\"\n : undefined\n : undefined;\n payload.issues.push({\n expected: \"number\",\n code: \"invalid_type\",\n input,\n inst,\n ...(received ? { received } : {}),\n });\n return payload;\n };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n checks.$ZodCheckNumberFormat.init(inst, def);\n $ZodNumber.init(inst, def); // no format checksp\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.boolean;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Boolean(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"boolean\")\n return payload;\n payload.issues.push({\n expected: \"boolean\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.bigint;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = BigInt(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"bigint\")\n return payload;\n payload.issues.push({\n expected: \"bigint\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n checks.$ZodCheckBigIntFormat.init(inst, def);\n $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"symbol\")\n return payload;\n payload.issues.push({\n expected: \"symbol\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.undefined;\n inst._zod.values = new Set([undefined]);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"undefined\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.null;\n inst._zod.values = new Set([null]);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input === null)\n return payload;\n payload.issues.push({\n expected: \"null\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.issues.push({\n expected: \"never\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"void\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce) {\n try {\n payload.value = new Date(payload.value);\n }\n catch (_err) { }\n }\n const input = payload.value;\n const isDate = input instanceof Date;\n const isValidDate = isDate && !Number.isNaN(input.getTime());\n if (isValidDate)\n return payload;\n payload.issues.push({\n expected: \"date\",\n code: \"invalid_type\",\n input,\n ...(isDate ? { received: \"Invalid Date\" } : {}),\n inst,\n });\n return payload;\n };\n});\nfunction handleArrayResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n expected: \"array\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = Array(input.length);\n const proms = [];\n for (let i = 0; i < input.length; i++) {\n const item = input[i];\n const result = def.element._zod.run({\n value: item,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n }\n else {\n handleArrayResult(result, payload, i);\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload; //handleArrayResultsAsync(parseResults, final);\n };\n});\nfunction handleObjectResult(result, final, key) {\n // if(isOptional)\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n final.value[key] = result.value;\n}\nfunction handleOptionalObjectResult(result, final, key, input) {\n if (result.issues.length) {\n // validation failed against value schema\n if (input[key] === undefined) {\n // if input was undefined, ignore the error\n if (key in input) {\n final.value[key] = undefined;\n }\n else {\n final.value[key] = result.value;\n }\n }\n else {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n }\n else if (result.value === undefined) {\n // validation returned `undefined`\n if (key in input)\n final.value[key] = undefined;\n }\n else {\n // non-undefined value\n final.value[key] = result.value;\n }\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodType.init(inst, def);\n const _normalized = util.cached(() => {\n const keys = Object.keys(def.shape);\n for (const k of keys) {\n if (!(def.shape[k] instanceof $ZodType)) {\n throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n }\n }\n const okeys = util.optionalKeys(def.shape);\n return {\n shape: def.shape,\n keys,\n keySet: new Set(keys),\n numKeys: keys.length,\n optionalKeys: new Set(okeys),\n };\n });\n util.defineLazy(inst._zod, \"propValues\", () => {\n const shape = def.shape;\n const propValues = {};\n for (const key in shape) {\n const field = shape[key]._zod;\n if (field.values) {\n propValues[key] ?? (propValues[key] = new Set());\n for (const v of field.values)\n propValues[key].add(v);\n }\n }\n return propValues;\n });\n const generateFastpass = (shape) => {\n const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n const normalized = _normalized.value;\n const parseStr = (key) => {\n const k = util.esc(key);\n return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n };\n doc.write(`const input = payload.value;`);\n const ids = Object.create(null);\n let counter = 0;\n for (const key of normalized.keys) {\n ids[key] = `key_${counter++}`;\n }\n // A: preserve key order {\n doc.write(`const newResult = {}`);\n for (const key of normalized.keys) {\n if (normalized.optionalKeys.has(key)) {\n const id = ids[key];\n doc.write(`const ${id} = ${parseStr(key)};`);\n const k = util.esc(key);\n doc.write(`\n if (${id}.issues.length) {\n if (input[${k}] === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n payload.issues = payload.issues.concat(\n ${id}.issues.map((iss) => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}],\n }))\n );\n }\n } else if (${id}.value === undefined) {\n if (${k} in input) newResult[${k}] = undefined;\n } else {\n newResult[${k}] = ${id}.value;\n }\n `);\n }\n else {\n const id = ids[key];\n // const id = ids[key];\n doc.write(`const ${id} = ${parseStr(key)};`);\n doc.write(`\n if (${id}.issues.length) payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${util.esc(key)}, ...iss.path] : [${util.esc(key)}]\n })));`);\n doc.write(`newResult[${util.esc(key)}] = ${id}.value`);\n }\n }\n doc.write(`payload.value = newResult;`);\n doc.write(`return payload;`);\n const fn = doc.compile();\n return (payload, ctx) => fn(shape, payload, ctx);\n };\n let fastpass;\n const isObject = util.isObject;\n const jit = !core.globalConfig.jitless;\n const allowsEval = util.allowsEval;\n const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n // always synchronous\n if (!fastpass)\n fastpass = generateFastpass(def.shape);\n payload = fastpass(payload, ctx);\n }\n else {\n payload.value = {};\n const shape = value.shape;\n for (const key of value.keys) {\n const el = shape[key];\n // do not add omitted optional keys\n // if (!(key in input)) {\n // if (optionalKeys.has(key)) continue;\n // payload.issues.push({\n // code: \"invalid_type\",\n // path: [key],\n // expected: \"nonoptional\",\n // note: `Missing required key: \"${key}\"`,\n // input,\n // inst,\n // });\n // }\n const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n const isOptional = el._zod.optin === \"optional\" && el._zod.optout === \"optional\";\n if (r instanceof Promise) {\n proms.push(r.then((r) => isOptional ? handleOptionalObjectResult(r, payload, key, input) : handleObjectResult(r, payload, key)));\n }\n else if (isOptional) {\n handleOptionalObjectResult(r, payload, key, input);\n }\n else {\n handleObjectResult(r, payload, key);\n }\n }\n }\n if (!catchall) {\n // return payload;\n return proms.length ? Promise.all(proms).then(() => payload) : payload;\n }\n const unrecognized = [];\n // iterate over input keys\n const keySet = value.keySet;\n const _catchall = catchall._zod;\n const t = _catchall.def.type;\n for (const key of Object.keys(input)) {\n if (keySet.has(key))\n continue;\n if (t === \"never\") {\n unrecognized.push(key);\n continue;\n }\n const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handleObjectResult(r, payload, key)));\n }\n else {\n handleObjectResult(r, payload, key);\n }\n }\n if (unrecognized.length) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n keys: unrecognized,\n input,\n inst,\n });\n }\n if (!proms.length)\n return payload;\n return Promise.all(proms).then(() => {\n return payload;\n });\n };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n for (const result of results) {\n if (result.issues.length === 0) {\n final.value = result.value;\n return final;\n }\n }\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"values\", () => {\n if (def.options.every((o) => o._zod.values)) {\n return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n }\n return undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n if (def.options.every((o) => o._zod.pattern)) {\n const patterns = def.options.map((o) => o._zod.pattern);\n return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n }\n return undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n if (result.issues.length === 0)\n return result;\n results.push(result);\n }\n }\n if (!async)\n return handleUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleUnionResults(results, payload, inst, ctx);\n });\n };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n $ZodUnion.init(inst, def);\n const _super = inst._zod.parse;\n util.defineLazy(inst._zod, \"propValues\", () => {\n const propValues = {};\n for (const option of def.options) {\n const pv = option._zod.propValues;\n if (!pv || Object.keys(pv).length === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n for (const [k, v] of Object.entries(pv)) {\n if (!propValues[k])\n propValues[k] = new Set();\n for (const val of v) {\n propValues[k].add(val);\n }\n }\n }\n return propValues;\n });\n const disc = util.cached(() => {\n const opts = def.options;\n const map = new Map();\n for (const o of opts) {\n const values = o._zod.propValues[def.discriminator];\n if (!values || values.size === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n for (const v of values) {\n if (map.has(v)) {\n throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n }\n map.set(v, o);\n }\n }\n return map;\n });\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isObject(input)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"object\",\n input,\n inst,\n });\n return payload;\n }\n const opt = disc.value.get(input?.[def.discriminator]);\n if (opt) {\n return opt._zod.run(payload, ctx);\n }\n if (def.unionFallback) {\n return _super(payload, ctx);\n }\n // no matching discriminator\n payload.issues.push({\n code: \"invalid_union\",\n errors: [],\n note: \"No matching discriminator\",\n input,\n path: [def.discriminator],\n inst,\n });\n return payload;\n };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n const async = left instanceof Promise || right instanceof Promise;\n if (async) {\n return Promise.all([left, right]).then(([left, right]) => {\n return handleIntersectionResults(payload, left, right);\n });\n }\n return handleIntersectionResults(payload, left, right);\n };\n});\nfunction mergeValues(a, b) {\n // const aType = parse.t(a);\n // const bType = parse.t(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n if (a instanceof Date && b instanceof Date && +a === +b) {\n return { valid: true, data: a };\n }\n if (util.isPlainObject(a) && util.isPlainObject(b)) {\n const bKeys = Object.keys(b);\n const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return { valid: false, mergeErrorPath: [] };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n if (left.issues.length) {\n result.issues.push(...left.issues);\n }\n if (right.issues.length) {\n result.issues.push(...right.issues);\n }\n if (util.aborted(result))\n return result;\n const merged = mergeValues(left.value, right.value);\n if (!merged.valid) {\n throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n }\n result.value = merged.data;\n return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n $ZodType.init(inst, def);\n const items = def.items;\n const optStart = items.length - [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n input,\n inst,\n expected: \"tuple\",\n code: \"invalid_type\",\n });\n return payload;\n }\n payload.value = [];\n const proms = [];\n if (!def.rest) {\n const tooBig = input.length > items.length;\n const tooSmall = input.length < optStart - 1;\n if (tooBig || tooSmall) {\n payload.issues.push({\n input,\n inst,\n origin: \"array\",\n ...(tooBig ? { code: \"too_big\", maximum: items.length } : { code: \"too_small\", minimum: items.length }),\n });\n return payload;\n }\n }\n let i = -1;\n for (const item of items) {\n i++;\n if (i >= input.length)\n if (i >= optStart)\n continue;\n const result = item._zod.run({\n value: input[i],\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n if (def.rest) {\n const rest = input.slice(items.length);\n for (const el of rest) {\n i++;\n const result = def.rest._zod.run({\n value: el,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleTupleResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isPlainObject(input)) {\n payload.issues.push({\n expected: \"record\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (def.keyType._zod.values) {\n const values = def.keyType._zod.values;\n payload.value = {};\n for (const key of values) {\n if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }\n }\n }\n let unrecognized;\n for (const key in input) {\n if (!values.has(key)) {\n unrecognized = unrecognized ?? [];\n unrecognized.push(key);\n }\n }\n if (unrecognized && unrecognized.length > 0) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n input,\n inst,\n keys: unrecognized,\n });\n }\n }\n else {\n payload.value = {};\n for (const key of Reflect.ownKeys(input)) {\n if (key === \"__proto__\")\n continue;\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (keyResult.issues.length) {\n payload.issues.push({\n origin: \"record\",\n code: \"invalid_key\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n payload.value[keyResult.value] = keyResult.value;\n continue;\n }\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload;\n };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Map)) {\n payload.issues.push({\n expected: \"map\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n payload.value = new Map();\n for (const [key, value] of input) {\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n if (keyResult instanceof Promise || valueResult instanceof Promise) {\n proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }));\n }\n else {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n if (keyResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, keyResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_key\",\n input,\n inst,\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n if (valueResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, valueResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_element\",\n input,\n inst,\n key: key,\n issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Set)) {\n payload.issues.push({\n input,\n inst,\n expected: \"set\",\n code: \"invalid_type\",\n });\n return payload;\n }\n const proms = [];\n payload.value = new Set();\n for (const item of input) {\n const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleSetResult(result, payload)));\n }\n else\n handleSetResult(result, payload);\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleSetResult(result, final) {\n if (result.issues.length) {\n final.issues.push(...result.issues);\n }\n final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n $ZodType.init(inst, def);\n const values = util.getEnumValues(def.entries);\n inst._zod.values = new Set(values);\n inst._zod.pattern = new RegExp(`^(${values\n .filter((k) => util.propertyKeyTypes.has(typeof k))\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.values = new Set(def.values);\n inst._zod.pattern = new RegExp(`^(${def.values\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? o.toString() : String(o)))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values: def.values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input instanceof File)\n return payload;\n payload.issues.push({\n expected: \"file\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const _out = def.transform(payload.value, payload);\n if (_ctx.async) {\n const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n if (_out instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n payload.value = _out;\n return payload;\n };\n});\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (def.innerType._zod.optin === \"optional\") {\n return def.innerType._zod.run(payload, ctx);\n }\n if (payload.value === undefined) {\n return payload;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n });\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === null)\n return payload;\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n $ZodType.init(inst, def);\n // inst._zod.qin = \"true\";\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n /**\n * $ZodDefault always returns the default value immediately.\n * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe. */\n return payload;\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleDefaultResult(result, def));\n }\n return handleDefaultResult(result, def);\n };\n});\nfunction handleDefaultResult(payload, def) {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => {\n const v = def.innerType._zod.values;\n return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleNonOptionalResult(result, inst));\n }\n return handleNonOptionalResult(result, inst);\n };\n});\nfunction handleNonOptionalResult(payload, inst) {\n if (!payload.issues.length && payload.value === undefined) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: payload.value,\n inst,\n });\n }\n return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.issues.length === 0;\n return payload;\n });\n }\n payload.value = result.issues.length === 0;\n return payload;\n };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n });\n }\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"nan\",\n code: \"invalid_type\",\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handlePipeResult(left, def, ctx));\n }\n return handlePipeResult(left, def, ctx);\n };\n});\nfunction handlePipeResult(left, def, ctx) {\n if (util.aborted(left)) {\n return left;\n }\n return def.out._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then(handleReadonlyResult);\n }\n return handleReadonlyResult(result);\n };\n});\nfunction handleReadonlyResult(payload) {\n payload.value = Object.freeze(payload.value);\n return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n const regexParts = [];\n for (const part of def.parts) {\n if (part instanceof $ZodType) {\n if (!part._zod.pattern) {\n // if (!source)\n throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n }\n const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n if (!source)\n throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n regexParts.push(source.slice(start, end));\n }\n else if (part === null || util.primitiveTypes.has(typeof part)) {\n regexParts.push(util.escapeRegex(`${part}`));\n }\n else {\n throw new Error(`Invalid template literal part: ${part}`);\n }\n }\n inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"string\") {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"template_literal\",\n code: \"invalid_type\",\n });\n return payload;\n }\n inst._zod.pattern.lastIndex = 0;\n if (!inst._zod.pattern.test(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n code: \"invalid_format\",\n format: \"template_literal\",\n pattern: inst._zod.pattern.source,\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"innerType\", () => def.getter());\n util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType._zod.pattern);\n util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const inner = inst._zod.innerType;\n return inner._zod.run(payload, ctx);\n };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n checks.$ZodCheck.init(inst, def);\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _) => {\n return payload;\n };\n inst._zod.check = (payload) => {\n const input = payload.value;\n const r = def.fn(input);\n if (r instanceof Promise) {\n return r.then((r) => handleRefineResult(r, payload, input, inst));\n }\n handleRefineResult(r, payload, input, inst);\n return;\n };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n if (!result) {\n const _iss = {\n code: \"custom\",\n input,\n inst, // incorporates params.error into issue reporting\n path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n continue: !inst._zod.def.abort,\n // params: inst._zod.def.params,\n };\n if (inst._zod.def.params)\n _iss.params = inst._zod.def.params;\n payload.issues.push(util.issue(_iss));\n }\n}\n","import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodMiniType = /*@__PURE__*/ core.$constructor(\"ZodMiniType\", (inst, def) => {\n if (!inst._zod)\n throw new Error(\"Uninitialized schema in ZodMiniType.\");\n core.$ZodType.init(inst, def);\n inst.def = def;\n inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n inst.check = (...checks) => {\n return inst.clone({\n ...def,\n checks: [\n ...(def.checks ?? []),\n ...checks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n ],\n }\n // { parent: true }\n );\n };\n inst.clone = (_def, params) => core.clone(inst, _def, params);\n inst.brand = () => inst;\n inst.register = ((reg, meta) => {\n reg.add(inst, meta);\n return inst;\n });\n});\nexport const ZodMiniString = /*@__PURE__*/ core.$constructor(\"ZodMiniString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function string(params) {\n return core._string(ZodMiniString, params);\n}\nexport const ZodMiniStringFormat = /*@__PURE__*/ core.$constructor(\"ZodMiniStringFormat\", (inst, def) => {\n core.$ZodStringFormat.init(inst, def);\n ZodMiniString.init(inst, def);\n});\nexport const ZodMiniEmail = /*@__PURE__*/ core.$constructor(\"ZodMiniEmail\", (inst, def) => {\n core.$ZodEmail.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function email(params) {\n return core._email(ZodMiniEmail, params);\n}\nexport const ZodMiniGUID = /*@__PURE__*/ core.$constructor(\"ZodMiniGUID\", (inst, def) => {\n core.$ZodGUID.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function guid(params) {\n return core._guid(ZodMiniGUID, params);\n}\nexport const ZodMiniUUID = /*@__PURE__*/ core.$constructor(\"ZodMiniUUID\", (inst, def) => {\n core.$ZodUUID.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n return core._uuid(ZodMiniUUID, params);\n}\nexport function uuidv4(params) {\n return core._uuidv4(ZodMiniUUID, params);\n}\n// ZodMiniUUIDv6\nexport function uuidv6(params) {\n return core._uuidv6(ZodMiniUUID, params);\n}\n// ZodMiniUUIDv7\nexport function uuidv7(params) {\n return core._uuidv7(ZodMiniUUID, params);\n}\nexport const ZodMiniURL = /*@__PURE__*/ core.$constructor(\"ZodMiniURL\", (inst, def) => {\n core.$ZodURL.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function url(params) {\n return core._url(ZodMiniURL, params);\n}\nexport const ZodMiniEmoji = /*@__PURE__*/ core.$constructor(\"ZodMiniEmoji\", (inst, def) => {\n core.$ZodEmoji.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n return core._emoji(ZodMiniEmoji, params);\n}\nexport const ZodMiniNanoID = /*@__PURE__*/ core.$constructor(\"ZodMiniNanoID\", (inst, def) => {\n core.$ZodNanoID.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n return core._nanoid(ZodMiniNanoID, params);\n}\nexport const ZodMiniCUID = /*@__PURE__*/ core.$constructor(\"ZodMiniCUID\", (inst, def) => {\n core.$ZodCUID.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function cuid(params) {\n return core._cuid(ZodMiniCUID, params);\n}\nexport const ZodMiniCUID2 = /*@__PURE__*/ core.$constructor(\"ZodMiniCUID2\", (inst, def) => {\n core.$ZodCUID2.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n return core._cuid2(ZodMiniCUID2, params);\n}\nexport const ZodMiniULID = /*@__PURE__*/ core.$constructor(\"ZodMiniULID\", (inst, def) => {\n core.$ZodULID.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n return core._ulid(ZodMiniULID, params);\n}\nexport const ZodMiniXID = /*@__PURE__*/ core.$constructor(\"ZodMiniXID\", (inst, def) => {\n core.$ZodXID.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function xid(params) {\n return core._xid(ZodMiniXID, params);\n}\nexport const ZodMiniKSUID = /*@__PURE__*/ core.$constructor(\"ZodMiniKSUID\", (inst, def) => {\n core.$ZodKSUID.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n return core._ksuid(ZodMiniKSUID, params);\n}\nexport const ZodMiniIPv4 = /*@__PURE__*/ core.$constructor(\"ZodMiniIPv4\", (inst, def) => {\n core.$ZodIPv4.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n return core._ipv4(ZodMiniIPv4, params);\n}\nexport const ZodMiniIPv6 = /*@__PURE__*/ core.$constructor(\"ZodMiniIPv6\", (inst, def) => {\n core.$ZodIPv6.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n return core._ipv6(ZodMiniIPv6, params);\n}\nexport const ZodMiniCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodMiniCIDRv4\", (inst, def) => {\n core.$ZodCIDRv4.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n return core._cidrv4(ZodMiniCIDRv4, params);\n}\nexport const ZodMiniCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodMiniCIDRv6\", (inst, def) => {\n core.$ZodCIDRv6.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n return core._cidrv6(ZodMiniCIDRv6, params);\n}\nexport const ZodMiniBase64 = /*@__PURE__*/ core.$constructor(\"ZodMiniBase64\", (inst, def) => {\n core.$ZodBase64.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function base64(params) {\n return core._base64(ZodMiniBase64, params);\n}\nexport const ZodMiniBase64URL = /*@__PURE__*/ core.$constructor(\"ZodMiniBase64URL\", (inst, def) => {\n core.$ZodBase64URL.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n return core._base64url(ZodMiniBase64URL, params);\n}\nexport const ZodMiniE164 = /*@__PURE__*/ core.$constructor(\"ZodMiniE164\", (inst, def) => {\n core.$ZodE164.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function e164(params) {\n return core._e164(ZodMiniE164, params);\n}\nexport const ZodMiniJWT = /*@__PURE__*/ core.$constructor(\"ZodMiniJWT\", (inst, def) => {\n core.$ZodJWT.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n return core._jwt(ZodMiniJWT, params);\n}\nexport const ZodMiniCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodMiniCustomStringFormat\", (inst, def) => {\n core.$ZodCustomStringFormat.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n return core._stringFormat(ZodMiniCustomStringFormat, format, fnOrRegex, _params);\n}\nexport const ZodMiniNumber = /*@__PURE__*/ core.$constructor(\"ZodMiniNumber\", (inst, def) => {\n core.$ZodNumber.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function number(params) {\n return core._number(ZodMiniNumber, params);\n}\nexport const ZodMiniNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodMiniNumberFormat\", (inst, def) => {\n core.$ZodNumberFormat.init(inst, def);\n ZodMiniNumber.init(inst, def);\n});\n// int\nexport function int(params) {\n return core._int(ZodMiniNumberFormat, params);\n}\n// float32\nexport function float32(params) {\n return core._float32(ZodMiniNumberFormat, params);\n}\n// float64\nexport function float64(params) {\n return core._float64(ZodMiniNumberFormat, params);\n}\n// int32\nexport function int32(params) {\n return core._int32(ZodMiniNumberFormat, params);\n}\n// uint32\nexport function uint32(params) {\n return core._uint32(ZodMiniNumberFormat, params);\n}\nexport const ZodMiniBoolean = /*@__PURE__*/ core.$constructor(\"ZodMiniBoolean\", (inst, def) => {\n core.$ZodBoolean.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function boolean(params) {\n return core._boolean(ZodMiniBoolean, params);\n}\nexport const ZodMiniBigInt = /*@__PURE__*/ core.$constructor(\"ZodMiniBigInt\", (inst, def) => {\n core.$ZodBigInt.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function bigint(params) {\n return core._bigint(ZodMiniBigInt, params);\n}\nexport const ZodMiniBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodMiniBigIntFormat\", (inst, def) => {\n core.$ZodBigIntFormat.init(inst, def);\n ZodMiniBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n return core._int64(ZodMiniBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n return core._uint64(ZodMiniBigIntFormat, params);\n}\nexport const ZodMiniSymbol = /*@__PURE__*/ core.$constructor(\"ZodMiniSymbol\", (inst, def) => {\n core.$ZodSymbol.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function symbol(params) {\n return core._symbol(ZodMiniSymbol, params);\n}\nexport const ZodMiniUndefined = /*@__PURE__*/ core.$constructor(\"ZodMiniUndefined\", (inst, def) => {\n core.$ZodUndefined.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nfunction _undefined(params) {\n return core._undefined(ZodMiniUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodMiniNull = /*@__PURE__*/ core.$constructor(\"ZodMiniNull\", (inst, def) => {\n core.$ZodNull.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nfunction _null(params) {\n return core._null(ZodMiniNull, params);\n}\nexport { _null as null };\nexport const ZodMiniAny = /*@__PURE__*/ core.$constructor(\"ZodMiniAny\", (inst, def) => {\n core.$ZodAny.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function any() {\n return core._any(ZodMiniAny);\n}\nexport const ZodMiniUnknown = /*@__PURE__*/ core.$constructor(\"ZodMiniUnknown\", (inst, def) => {\n core.$ZodUnknown.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function unknown() {\n return core._unknown(ZodMiniUnknown);\n}\nexport const ZodMiniNever = /*@__PURE__*/ core.$constructor(\"ZodMiniNever\", (inst, def) => {\n core.$ZodNever.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function never(params) {\n return core._never(ZodMiniNever, params);\n}\nexport const ZodMiniVoid = /*@__PURE__*/ core.$constructor(\"ZodMiniVoid\", (inst, def) => {\n core.$ZodVoid.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nfunction _void(params) {\n return core._void(ZodMiniVoid, params);\n}\nexport { _void as void };\nexport const ZodMiniDate = /*@__PURE__*/ core.$constructor(\"ZodMiniDate\", (inst, def) => {\n core.$ZodDate.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function date(params) {\n return core._date(ZodMiniDate, params);\n}\nexport const ZodMiniArray = /*@__PURE__*/ core.$constructor(\"ZodMiniArray\", (inst, def) => {\n core.$ZodArray.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function array(element, params) {\n return new ZodMiniArray({\n type: \"array\",\n element: element,\n ...util.normalizeParams(params),\n });\n}\n// .keyof\nexport function keyof(schema) {\n const shape = schema._zod.def.shape;\n return literal(Object.keys(shape));\n}\nexport const ZodMiniObject = /*@__PURE__*/ core.$constructor(\"ZodMiniObject\", (inst, def) => {\n core.$ZodObject.init(inst, def);\n ZodMiniType.init(inst, def);\n util.defineLazy(inst, \"shape\", () => def.shape);\n});\nexport function object(shape, params) {\n const def = {\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n ...util.normalizeParams(params),\n };\n return new ZodMiniObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n return new ZodMiniObject({\n type: \"object\",\n // shape: shape as core.$ZodLooseShape,\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n catchall: never(),\n ...util.normalizeParams(params),\n });\n}\n// looseObject\nexport function looseObject(shape, params) {\n return new ZodMiniObject({\n type: \"object\",\n // shape: shape as core.$ZodLooseShape,\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n // get optional() {\n // return util.optionalKeys(shape);\n // },\n catchall: unknown(),\n ...util.normalizeParams(params),\n });\n}\n// object methods\nexport function extend(schema, shape) {\n return util.extend(schema, shape);\n}\nexport function merge(schema, shape) {\n return util.extend(schema, shape);\n}\nexport function pick(schema, mask) {\n return util.pick(schema, mask);\n}\n// .omit\nexport function omit(schema, mask) {\n return util.omit(schema, mask);\n}\nexport function partial(schema, mask) {\n return util.partial(ZodMiniOptional, schema, mask);\n}\nexport function required(schema, mask) {\n return util.required(ZodMiniNonOptional, schema, mask);\n}\nexport function catchall(inst, catchall) {\n return inst.clone({ ...inst._zod.def, catchall: catchall });\n}\nexport const ZodMiniUnion = /*@__PURE__*/ core.$constructor(\"ZodMiniUnion\", (inst, def) => {\n core.$ZodUnion.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function union(options, params) {\n return new ZodMiniUnion({\n type: \"union\",\n options: options,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodMiniDiscriminatedUnion\", (inst, def) => {\n core.$ZodDiscriminatedUnion.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n return new ZodMiniDiscriminatedUnion({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniIntersection = /*@__PURE__*/ core.$constructor(\"ZodMiniIntersection\", (inst, def) => {\n core.$ZodIntersection.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function intersection(left, right) {\n return new ZodMiniIntersection({\n type: \"intersection\",\n left: left,\n right: right,\n });\n}\nexport const ZodMiniTuple = /*@__PURE__*/ core.$constructor(\"ZodMiniTuple\", (inst, def) => {\n core.$ZodTuple.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function tuple(items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof core.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new ZodMiniTuple({\n type: \"tuple\",\n items: items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniRecord = /*@__PURE__*/ core.$constructor(\"ZodMiniRecord\", (inst, def) => {\n core.$ZodRecord.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function record(keyType, valueType, params) {\n return new ZodMiniRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function partialRecord(keyType, valueType, params) {\n return new ZodMiniRecord({\n type: \"record\",\n keyType: union([keyType, never()]),\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniMap = /*@__PURE__*/ core.$constructor(\"ZodMiniMap\", (inst, def) => {\n core.$ZodMap.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function map(keyType, valueType, params) {\n return new ZodMiniMap({\n type: \"map\",\n keyType: keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniSet = /*@__PURE__*/ core.$constructor(\"ZodMiniSet\", (inst, def) => {\n core.$ZodSet.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function set(valueType, params) {\n return new ZodMiniSet({\n type: \"set\",\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniEnum = /*@__PURE__*/ core.$constructor(\"ZodMiniEnum\", (inst, def) => {\n core.$ZodEnum.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nfunction _enum(values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n return new ZodMiniEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n return new ZodMiniEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniLiteral = /*@__PURE__*/ core.$constructor(\"ZodMiniLiteral\", (inst, def) => {\n core.$ZodLiteral.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function literal(value, params) {\n return new ZodMiniLiteral({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniFile = /*@__PURE__*/ core.$constructor(\"ZodMiniFile\", (inst, def) => {\n core.$ZodFile.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function file(params) {\n return core._file(ZodMiniFile, params);\n}\nexport const ZodMiniTransform = /*@__PURE__*/ core.$constructor(\"ZodMiniTransform\", (inst, def) => {\n core.$ZodTransform.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function transform(fn) {\n return new ZodMiniTransform({\n type: \"transform\",\n transform: fn,\n });\n}\nexport const ZodMiniOptional = /*@__PURE__*/ core.$constructor(\"ZodMiniOptional\", (inst, def) => {\n core.$ZodOptional.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function optional(innerType) {\n return new ZodMiniOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodMiniNullable = /*@__PURE__*/ core.$constructor(\"ZodMiniNullable\", (inst, def) => {\n core.$ZodNullable.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function nullable(innerType) {\n return new ZodMiniNullable({\n type: \"nullable\",\n innerType: innerType,\n });\n}\n// nullish\nexport function nullish(innerType) {\n return optional(nullable(innerType));\n}\nexport const ZodMiniDefault = /*@__PURE__*/ core.$constructor(\"ZodMiniDefault\", (inst, def) => {\n core.$ZodDefault.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function _default(innerType, defaultValue) {\n return new ZodMiniDefault({\n type: \"default\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport const ZodMiniPrefault = /*@__PURE__*/ core.$constructor(\"ZodMiniPrefault\", (inst, def) => {\n core.$ZodPrefault.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function prefault(innerType, defaultValue) {\n return new ZodMiniPrefault({\n type: \"prefault\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport const ZodMiniNonOptional = /*@__PURE__*/ core.$constructor(\"ZodMiniNonOptional\", (inst, def) => {\n core.$ZodNonOptional.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function nonoptional(innerType, params) {\n return new ZodMiniNonOptional({\n type: \"nonoptional\",\n innerType: innerType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniSuccess = /*@__PURE__*/ core.$constructor(\"ZodMiniSuccess\", (inst, def) => {\n core.$ZodSuccess.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function success(innerType) {\n return new ZodMiniSuccess({\n type: \"success\",\n innerType: innerType,\n });\n}\nexport const ZodMiniCatch = /*@__PURE__*/ core.$constructor(\"ZodMiniCatch\", (inst, def) => {\n core.$ZodCatch.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nfunction _catch(innerType, catchValue) {\n return new ZodMiniCatch({\n type: \"catch\",\n innerType: innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport { _catch as catch };\nexport const ZodMiniNaN = /*@__PURE__*/ core.$constructor(\"ZodMiniNaN\", (inst, def) => {\n core.$ZodNaN.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function nan(params) {\n return core._nan(ZodMiniNaN, params);\n}\nexport const ZodMiniPipe = /*@__PURE__*/ core.$constructor(\"ZodMiniPipe\", (inst, def) => {\n core.$ZodPipe.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function pipe(in_, out) {\n return new ZodMiniPipe({\n type: \"pipe\",\n in: in_,\n out: out,\n });\n}\nexport const ZodMiniReadonly = /*@__PURE__*/ core.$constructor(\"ZodMiniReadonly\", (inst, def) => {\n core.$ZodReadonly.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function readonly(innerType) {\n return new ZodMiniReadonly({\n type: \"readonly\",\n innerType: innerType,\n });\n}\nexport const ZodMiniTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodMiniTemplateLiteral\", (inst, def) => {\n core.$ZodTemplateLiteral.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function templateLiteral(parts, params) {\n return new ZodMiniTemplateLiteral({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniLazy = /*@__PURE__*/ core.$constructor(\"ZodMiniLazy\", (inst, def) => {\n core.$ZodLazy.init(inst, def);\n ZodMiniType.init(inst, def);\n});\n// export function lazy<T extends object>(getter: () => T): T {\n// return util.createTransparentProxy<T>(getter);\n// }\nfunction _lazy(getter) {\n return new ZodMiniLazy({\n type: \"lazy\",\n getter: getter,\n });\n}\nexport { _lazy as lazy };\nexport const ZodMiniPromise = /*@__PURE__*/ core.$constructor(\"ZodMiniPromise\", (inst, def) => {\n core.$ZodPromise.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function promise(innerType) {\n return new ZodMiniPromise({\n type: \"promise\",\n innerType: innerType,\n });\n}\nexport const ZodMiniCustom = /*@__PURE__*/ core.$constructor(\"ZodMiniCustom\", (inst, def) => {\n core.$ZodCustom.init(inst, def);\n ZodMiniType.init(inst, def);\n});\n// custom checks\nexport function check(fn, params) {\n const ch = new core.$ZodCheck({\n check: \"custom\",\n ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\n// ZodCustom\n// custom schema\nexport function custom(fn, _params) {\n return core._custom(ZodMiniCustom, fn ?? (() => true), _params);\n}\n// refine\nexport function refine(fn, _params = {}) {\n return core._refine(ZodMiniCustom, fn, _params);\n}\n// instanceof\nclass Class {\n constructor(..._args) { }\n}\nfunction _instanceof(cls, params = {\n error: `Input not instance of ${cls.name}`,\n}) {\n const inst = custom((data) => data instanceof cls, params);\n inst._zod.bag.Class = cls;\n return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n Pipe: ZodMiniPipe,\n Boolean: ZodMiniBoolean,\n String: ZodMiniString,\n Transform: ZodMiniTransform,\n}, ...args);\nexport function json() {\n const jsonSchema = _lazy(() => {\n return union([string(), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n });\n return jsonSchema;\n}\n","import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.mjs';\nimport { pipe, transform, lazy } from 'zod/v4-mini';\n\n/**\n * Helpers for coercing string value\n * Modify the value only if it's a string, otherwise return the value as-is\n */\nfunction stripEmptyString(value) {\n if (typeof value !== 'string') {\n return value;\n }\n if (value === '') {\n return undefined;\n }\n return value;\n}\n\n/**\n * Helpers for coercing file\n * Modify the value only if it's a file, otherwise return the value as-is\n */\nfunction stripEmptyFile(file) {\n if (typeof File !== 'undefined' && file instanceof File && file.name === '' && file.size === 0) {\n return undefined;\n }\n return file;\n}\nfunction coerceNumber(value) {\n if (typeof value !== 'string') {\n return value;\n }\n return value.trim() === '' ? value : Number(value);\n}\nfunction coerceBoolean(value) {\n if (typeof value !== 'string') {\n return value;\n }\n return value === 'on' ? true : value;\n}\nfunction coerceDate(value) {\n if (typeof value !== 'string') {\n return value;\n }\n var date = new Date(value);\n\n // z.date() does not expose a quick way to set invalid_date error\n // This gets around it by returning the original string if it's invalid\n // See https://github.com/colinhacks/zod/issues/1526\n if (isNaN(date.getTime())) {\n return value;\n }\n return date;\n}\nfunction coerceBigInt(value) {\n if (typeof value !== 'string') {\n return value;\n }\n if (value.trim() === '') {\n return value;\n }\n try {\n return BigInt(value);\n } catch (_unused) {\n return value;\n }\n}\nfunction compose(a, b) {\n var c = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : i => i;\n return value => c(b(a(value)));\n}\nfunction selectDefaultCoercion(type, defaultCoercion) {\n var def = type._zod.def;\n if (def.type === 'string' || def.type === 'enum' // || def.type === 'nativeEnum'\n ) {\n return defaultCoercion.string;\n } else if (def.type === 'literal') {\n if (!('values' in def)) {\n return defaultCoercion.string;\n }\n var literalValue = [...def.values][0];\n if (typeof literalValue === 'number') {\n return defaultCoercion.number;\n }\n if (typeof literalValue === 'boolean') {\n return defaultCoercion.boolean;\n }\n if (typeof literalValue === 'bigint') {\n return defaultCoercion.bigint;\n }\n return defaultCoercion.string;\n } else if (def.type === 'file') {\n return defaultCoercion.file;\n } else if (def.type === 'number') {\n return defaultCoercion.number;\n } else if (def.type === 'boolean') {\n return defaultCoercion.boolean;\n } else if (def.type === 'date') {\n return defaultCoercion.date;\n } else if (def.type === 'bigint') {\n return defaultCoercion.bigint;\n }\n return null;\n}\n\n/**\n * Reconstruct the provided schema with additional preprocessing steps\n * This strips empty values to undefined and coerces string to the correct type\n */\nfunction enableTypeCoercion(type, options) {\n var _;\n var result = options.cache.get(type);\n\n // Return the cached schema if it's already processed\n // This is to prevent infinite recursion caused by z.lazy()\n if (result) {\n return result;\n }\n var schema = type;\n var zod = type._zod;\n var def = zod.def;\n var constr = zod.constr;\n var coercion = options.coerce(type);\n if (coercion) {\n schema = pipe(transform(coercion), type);\n } else if (def.type === 'array') {\n schema = pipe(transform(value => {\n // No preprocess needed if the value is already an array\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === 'undefined' || typeof options.stripEmptyValue(value) === 'undefined') {\n return [];\n }\n\n // Wrap it in an array otherwise\n return [value];\n }), new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n element: enableTypeCoercion(def.element, options)\n })));\n } else if (def.type === 'object') {\n schema = pipe(transform(value => {\n if (typeof value === 'undefined') {\n // Defaults it to an empty object\n return {};\n }\n return value;\n }), new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n shape: Object.fromEntries(Object.entries(def.shape).map(_ref => {\n var [key, def] = _ref;\n return [key, enableTypeCoercion(def, options)];\n }))\n })));\n } else if (def.type === 'optional' || def.type === 'nonoptional') {\n schema = pipe(transform(options.stripEmptyValue), new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, options)\n })));\n } else if (def.type === 'default' || def.type === 'prefault') {\n var defaultValue = def.defaultValue;\n schema = pipe(transform(options.stripEmptyValue), new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: defaultValue !== '' ? enableTypeCoercion(def.innerType, options) : def.innerType\n })));\n } else if (def.type === 'catch') {\n schema = new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, options)\n }));\n } else if (def.type === 'intersection') {\n schema = new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n left: enableTypeCoercion(def.left, options),\n right: enableTypeCoercion(def.right, options)\n }));\n // The `type` of `discriminatedUnion` is defined as 'union', so it can be determined from the class name used.\n } else if (def.type === 'union' && (_ = [...zod.traits][0]) !== null && _ !== void 0 && _.includes('DiscriminatedUnion')) {\n schema = pipe(transform(value => {\n if (typeof value === 'undefined') {\n // Defaults it to an empty object\n return {};\n }\n return value;\n }), new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n options: def.options.map(item => {\n var objectDef = item._zod.def;\n var setOriginalPropValues = object => {\n // The discriminate key is obtained from the defined Object.\n // If you regenerate the Object schema, the `propValues` property disappears. Therefore, set the one obtained from the original Object.\n // https://github.com/colinhacks/zod/blob/22ab436bc214d86d740e78f33ae6834d28ddc152/packages/zod/src/v4/core/schemas.ts#L1949-L1963\n object._zod.propValues = item._zod.propValues;\n // @ts-expect-error: The `disc` property was used up to version 3.25.34, but was changed to the `propValues` property from version 3.25.35 onwards.\n object._zod.disc = item._zod.disc;\n return object;\n };\n if (objectDef.type !== 'object') {\n return setOriginalPropValues(enableTypeCoercion(item, options));\n }\n var object = new item._zod.constr(_objectSpread2(_objectSpread2({}, objectDef), {}, {\n shape: Object.fromEntries(Object.entries(objectDef.shape).map(_ref2 => {\n var [key, def] = _ref2;\n return [key, enableTypeCoercion(def, options)];\n }))\n }));\n return setOriginalPropValues(object);\n })\n })));\n } else if (def.type === 'union') {\n schema = new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n options: def.options.map(item => enableTypeCoercion(item, options))\n }));\n } else if (def.type === 'tuple') {\n schema = new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n items: def.items.map(item => enableTypeCoercion(item, options))\n }));\n } else if (def.type === 'nullable') {\n schema = new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, options)\n }));\n } else if (def.type === 'pipe') {\n schema = new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n in: enableTypeCoercion(def.in, options),\n out: enableTypeCoercion(def.out, options)\n }));\n } else if (def.type === 'lazy') {\n var inner = def.getter();\n schema = lazy(() => enableTypeCoercion(inner, options));\n }\n if (type !== schema) {\n options.cache.set(type, schema);\n }\n return schema;\n}\n\n/**\n * A helper that enhance the zod schema to strip empty value and coerce form value to the expected type with option to customize type coercion.\n * @example\n *\n * ```tsx\n * import { parseWithZod, unstable_coerceFormValue as coerceFormValue } from '@conform-to/zod';\n * import { z } from 'zod';\n *\n * // Coerce the form value with default behaviour\n * const schema = coerceFormValue(\n * z.object({\n * // ...\n * })\n * );\n *\n * // Coerce the form value with default coercion overrided\n * const schema = coerceFormValue(\n * z.object({\n * ref: z.number()\n * date: z.date(),\n * amount: z.number(),\n * confirm: z.boolean(),\n * }),\n * {\n * // Trim the value for all string-based fields\n * // e.g. `z.string()`, `z.number()` or `z.boolean()`\n * string: (value) => {\n * if (typeof value !== 'string') {\n * return value;\n * }\n *\n * const result = value.trim();\n *\n * // Treat it as `undefined` if the value is empty\n * if (result === '') {\n * return undefined;\n * }\n *\n * return result;\n * },\n *\n * // Override the default coercion with `z.number()`\n * number: (value) => {\n * // Pass the value as is if it's not a string\n * if (typeof value !== 'string') {\n * return value;\n * }\n *\n * // Trim and remove commas before casting it to number\n * return Number(value.trim().replace(/,/g, ''));\n * },\n *\n * // Disable coercion for `z.boolean()`\n * boolean: false,\n * },\n * );\n * ```\n */\nfunction coerceFormValue(type, options) {\n var getCoercion = (type, fallbackCoercion) => {\n var _options$defaultCoerc;\n var providedCoercion = options === null || options === void 0 || (_options$defaultCoerc = options.defaultCoercion) === null || _options$defaultCoerc === void 0 ? void 0 : _options$defaultCoerc[type];\n if (typeof providedCoercion === 'function') {\n return providedCoercion;\n }\n\n // If the user explicitly disabled the coercion or no fallback coercion, return a noop function\n if (providedCoercion === false || !fallbackCoercion) {\n return value => value;\n }\n return fallbackCoercion;\n };\n var defaultCoercion = {\n string: compose(stripEmptyString, getCoercion('string')),\n file: compose(stripEmptyFile, getCoercion('file')),\n number: compose(stripEmptyString, getCoercion('string'), getCoercion('number', coerceNumber)),\n boolean: compose(stripEmptyString, getCoercion('string'), getCoercion('boolean', coerceBoolean)),\n date: compose(stripEmptyString, getCoercion('string'), getCoercion('date', coerceDate)),\n bigint: compose(stripEmptyString, getCoercion('string'), getCoercion('bigint', coerceBigInt))\n };\n return enableTypeCoercion(type, {\n cache: new Map(),\n stripEmptyValue: compose(defaultCoercion.string, defaultCoercion.file),\n coerce: type => {\n var _options$customize, _options$customize2;\n var coercion = (_options$customize = options === null || options === void 0 || (_options$customize2 = options.customize) === null || _options$customize2 === void 0 ? void 0 : _options$customize2.call(options, type)) !== null && _options$customize !== void 0 ? _options$customize : null;\n if (coercion === null) {\n coercion = selectDefaultCoercion(type, defaultCoercion);\n }\n return coercion;\n }\n });\n}\n\nexport { coerceFormValue, enableTypeCoercion };\n","import { parse, formatPaths } from '@conform-to/dom';\nimport { safeParseAsync, safeParse } from 'zod/v4/core';\nimport { coerceFormValue } from './coercion.mjs';\n\nfunction getError(zodError, formatError) {\n var result = {};\n for (var issue of zodError.issues) {\n var name = formatPaths(issue.path.map(path => {\n if (typeof path === 'symbol') {\n throw new Error('@conform-to/zod does not support symbol paths. Please use a string or number instead.');\n }\n return path;\n }));\n switch (issue.message) {\n case conformZodMessage.VALIDATION_UNDEFINED:\n return null;\n case conformZodMessage.VALIDATION_SKIPPED:\n result[name] = null;\n break;\n default:\n {\n var _issues = result[name];\n if (_issues !== null) {\n if (_issues) {\n result[name] = _issues.concat(issue);\n } else {\n result[name] = [issue];\n }\n }\n break;\n }\n }\n }\n return Object.entries(result).reduce((result, _ref) => {\n var [name, issues] = _ref;\n result[name] = issues ? formatError(issues) : null;\n return result;\n }, {});\n}\nfunction parseWithZod(payload, options) {\n return parse(payload, {\n resolve(payload, intent) {\n var error = options.error;\n var baseSchema = typeof options.schema === 'function' ? options.schema(intent) : options.schema;\n var schema = !options.disableAutoCoercion ? coerceFormValue(baseSchema) : baseSchema;\n var resolveSubmission = result => {\n var _options$formatError;\n return {\n value: result.success ? result.data : undefined,\n error: !result.success ? getError(result.error, (_options$formatError = options.formatError) !== null && _options$formatError !== void 0 ? _options$formatError : issues => issues.map(issue => issue.message)) : undefined\n };\n };\n return options.async ? safeParseAsync(schema, payload, {\n error\n }).then(result => resolveSubmission(result)) : resolveSubmission(safeParse(schema, payload, {\n error\n }));\n }\n });\n}\nvar conformZodMessage = {\n VALIDATION_SKIPPED: '__skipped__',\n VALIDATION_UNDEFINED: '__undefined__'\n};\n\nexport { conformZodMessage, parseWithZod };\n","export function getHintUtils(hints) {\n function getCookieValue(cookieString, name) {\n const hint = hints[name];\n if (!hint) {\n throw new Error(`Unknown client hint: ${typeof name === 'string' ? name : 'Unknown'}`);\n }\n const value = cookieString\n .split(';')\n .map((c) => c.trim())\n .find((c) => c.startsWith(hint.cookieName + '='))\n ?.split('=')[1];\n if (!value)\n return null;\n try {\n return decodeURIComponent(value);\n }\n catch (error) {\n // Handle malformed URI gracefully by falling back to null\n // This prevents crashes and allows the hint's fallback value to be used\n console.warn(`Failed to decode cookie value for ${hint.cookieName}:`, error);\n return null;\n }\n }\n function getHints(request) {\n const cookieString = typeof document !== 'undefined'\n ? document.cookie\n : typeof request !== 'undefined'\n ? request.headers.get('Cookie') ?? ''\n : '';\n return Object.entries(hints).reduce((acc, [name, hint]) => {\n const hintName = name;\n if ('transform' in hint) {\n // @ts-expect-error - this is fine (PRs welcome though)\n acc[hintName] = hint.transform(getCookieValue(cookieString, hintName) ?? hint.fallback);\n }\n else {\n // @ts-expect-error - this is fine (PRs welcome though)\n acc[hintName] = getCookieValue(cookieString, hintName) ?? hint.fallback;\n }\n return acc;\n }, {});\n }\n /**\n * This returns a string of JavaScript that can be used to check if the client\n * hints have changed and will reload the page if they have.\n */\n function getClientHintCheckScript() {\n return `\n// This block of code allows us to check if the client hints have changed and\n// force a reload of the page with updated hints if they have so you don't get\n// a flash of incorrect content.\nfunction checkClientHints() {\n\tif (!navigator.cookieEnabled) return;\n\n\t// set a short-lived cookie to make sure we can set cookies\n\tdocument.cookie = \"canSetCookies=1; Max-Age=60; SameSite=Lax; path=/\";\n\tconst canSetCookies = document.cookie.includes(\"canSetCookies=1\");\n\tdocument.cookie = \"canSetCookies=; Max-Age=-1; path=/\";\n\tif (!canSetCookies) return;\n\n\tconst cookies = document.cookie.split(';').map(c => c.trim()).reduce((acc, cur) => {\n\t\tconst [key, value] = cur.split('=');\n\t\tacc[key] = value;\n\t\treturn acc;\n\t}, {});\n\n\tlet cookieChanged = false;\n\tconst hints = [\n\t${Object.values(hints)\n .map((hint) => {\n const cookieName = JSON.stringify(hint.cookieName);\n return `{ name: ${cookieName}, actual: String(${hint.getValueCode}), value: cookies[${cookieName}] != null ? cookies[${cookieName}] : encodeURIComponent(\"${hint.fallback}\") }`;\n })\n .join(',\\n')}\n\t];\n\t\n\t// Add safety check to prevent infinite refresh scenarios\n\tlet reloadAttempts = parseInt(sessionStorage.getItem('clientHintReloadAttempts') || '0');\n\tif (reloadAttempts > 3) {\n\t\tconsole.warn('Too many client hint reload attempts, skipping reload to prevent infinite loop');\n\t\treturn;\n\t}\n\t\n\tfor (const hint of hints) {\n\t\tdocument.cookie = encodeURIComponent(hint.name) + '=' + encodeURIComponent(hint.actual) + '; Max-Age=31536000; SameSite=Lax; path=/';\n\t\t\n\t\ttry {\n\t\t\tconst decodedValue = decodeURIComponent(hint.value);\n\t\t\tif (decodedValue !== hint.actual) {\n\t\t\t\tcookieChanged = true;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\t// Handle malformed URI gracefully\n\t\t\tconsole.warn('Failed to decode cookie value during client hint check:', error);\n\t\t\t// If we can't decode the value, assume it's different to be safe\n\t\t\tcookieChanged = true;\n\t\t}\n\t}\n\t\n\tif (cookieChanged) {\n\t\t// Increment reload attempts counter\n\t\tsessionStorage.setItem('clientHintReloadAttempts', String(reloadAttempts + 1));\n\t\t\n\t\t// Hide the page content immediately to prevent visual flicker\n\t\tconst style = document.createElement('style');\n\t\tstyle.textContent = 'html { visibility: hidden !important; }';\n\t\tdocument.head.appendChild(style);\n\n\t\t// Trigger the reload\n\t\twindow.location.reload();\n\t} else {\n\t\t// Reset reload attempts counter if no reload was needed\n\t\tsessionStorage.removeItem('clientHintReloadAttempts');\n\t}\n}\n\ncheckClientHints();\n`;\n }\n return { getHints, getClientHintCheckScript };\n}\n","export const clientHint = {\n cookieName: 'CH-prefers-color-scheme',\n getValueCode: `window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'`,\n fallback: 'light',\n transform(value) {\n return value === 'dark' ? 'dark' : 'light';\n },\n};\n/**\n * Subscribe to changes in the user's color scheme preference. Optionally pass\n * in a cookie name to use for the cookie that will be set if different from the\n * default.\n */\nexport function subscribeToSchemeChange(subscriber, cookieName = clientHint.cookieName) {\n const schemaMatch = window.matchMedia('(prefers-color-scheme: dark)');\n function handleThemeChange() {\n const value = schemaMatch.matches ? 'dark' : 'light';\n document.cookie = `${cookieName}=${value}; Max-Age=31536000; SameSite=Lax; Path=/`;\n subscriber(value);\n }\n schemaMatch.addEventListener('change', handleThemeChange);\n return function cleanupSchemaChange() {\n schemaMatch.removeEventListener('change', handleThemeChange);\n };\n}\n","export const clientHint = {\n cookieName: 'CH-reduced-motion',\n getValueCode: `window.matchMedia('(prefers-reduced-motion: reduce)').matches ? 'reduce' : 'no-preference'`,\n fallback: 'no-preference',\n transform(value) {\n return value === 'reduce' ? 'reduce' : 'no-preference';\n },\n};\n/**\n * Subscribe to changes in the user's motion preference. Optionally pass\n * in a cookie name to use for the cookie that will be set if different from the\n * default.\n */\nexport function subscribeToMotionChange(subscriber, cookieName = clientHint.cookieName) {\n const motionMatch = window.matchMedia('(prefers-reduced-motion: reduce)');\n function handleMotionChange() {\n const value = motionMatch.matches ? 'reduce' : 'no-preference';\n document.cookie = `${cookieName}=${value}; Max-Age=31536000; SameSite=Lax; Path=/`;\n subscriber(value);\n }\n motionMatch.addEventListener('change', handleMotionChange);\n return function cleanupMotionChange() {\n motionMatch.removeEventListener('change', handleMotionChange);\n };\n}\n","export const clientHint = {\n cookieName: 'CH-time-zone',\n getValueCode: 'Intl.DateTimeFormat().resolvedOptions().timeZone',\n fallback: 'UTC',\n};\n","/**\n * This file contains utilities for using client hints for user preference which\n * are needed by the server, but are only known by the browser.\n */\nimport { getHintUtils } from '@epic-web/client-hints'\nimport {\n\tclientHint as colorSchemeHint,\n\tsubscribeToSchemeChange,\n} from '@epic-web/client-hints/color-scheme'\nimport {\n\tclientHint as reducedMotionHint,\n\tsubscribeToMotionChange,\n} from '@epic-web/client-hints/reduced-motion'\nimport { clientHint as timeZoneHint } from '@epic-web/client-hints/time-zone'\nimport * as React from 'react'\nimport { useRevalidator } from 'react-router'\nimport { useRequestInfo } from './root-loader.ts'\n\nconst themeCookieName = 'EpicShop_CH-prefers-color-scheme'\nconst motionCookieName = 'EpicShop_CH-reduced-motion'\nconst hintsUtils = getHintUtils({\n\ttheme: {\n\t\t...colorSchemeHint,\n\t\tcookieName: themeCookieName,\n\t},\n\ttimeZone: {\n\t\t...timeZoneHint,\n\t\tcookieName: 'EpicShop_CH-time-zone',\n\t},\n\treducedMotion: {\n\t\t...reducedMotionHint,\n\t\tcookieName: motionCookieName,\n\t},\n\t// add other hints here\n})\n\nexport const { getHints } = hintsUtils\n\n/**\n * @returns an object with the client hints and their values\n */\nexport function useHints() {\n\tconst requestInfo = useRequestInfo()\n\treturn requestInfo.hints\n}\n\n/**\n * @returns inline script element that checks for client hints and sets cookies\n * if they are not set then reloads the page if any cookie was set to an\n * inaccurate value.\n */\nexport function ClientHintCheck() {\n\tconst { revalidate } = useRevalidator()\n\tReact.useEffect(\n\t\t() => subscribeToSchemeChange(() => revalidate(), themeCookieName),\n\t\t[revalidate],\n\t)\n\tReact.useEffect(\n\t\t() => subscribeToMotionChange(() => revalidate(), motionCookieName),\n\t\t[revalidate],\n\t)\n\n\treturn (\n\t\t<script\n\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t__html: hintsUtils.getClientHintCheckScript(),\n\t\t\t}}\n\t\t/>\n\t)\n}\n","export type ListOfErrors = Array<string | null | undefined> | null | undefined\n\nexport function ErrorList({\n\tid,\n\terrors,\n}: {\n\terrors?: ListOfErrors\n\tid?: string\n}) {\n\tconst errorsToRender = errors?.filter(Boolean)\n\tif (!errorsToRender?.length) return null\n\treturn (\n\t\t<ul id={id} className=\"space-y-1\">\n\t\t\t{errorsToRender.map((e) => (\n\t\t\t\t<li key={e} className=\"text-foreground-destructive text-[10px]\">\n\t\t\t\t\t{e}\n\t\t\t\t</li>\n\t\t\t))}\n\t\t</ul>\n\t)\n}\n","import { getFormProps, useForm } from '@conform-to/react'\nimport { parseWithZod } from '@conform-to/zod/v4'\nimport { data, redirect, useFetcher, useFetchers } from 'react-router'\nimport { safeRedirect } from 'remix-utils/safe-redirect'\nimport { z } from 'zod'\nimport { Icon } from '#app/components/icons.tsx'\nimport { SimpleTooltip } from '#app/components/ui/tooltip.tsx'\nimport { useHints } from '#app/utils/client-hints.tsx'\nimport { ErrorList } from '#app/utils/forms.tsx'\nimport { dataWithPE, usePERedirectInput } from '#app/utils/pe.tsx'\nimport { useRequestInfo } from '#app/utils/root-loader.ts'\nimport { type Route } from './+types/index.tsx'\nimport { setTheme } from './theme-session.server.ts'\n\nconst ROUTE_PATH = '/theme'\n\nconst ThemeFormSchema = z.object({\n\ttheme: z.enum(['system', 'light', 'dark']),\n})\nconst ThemeFormSchemaForConform = ThemeFormSchema as z.ZodTypeAny\nconst parseWithZodUnsafe = parseWithZod as unknown as (\n\tformData: FormData,\n\toptions: { schema: z.ZodTypeAny },\n) => any\n\nexport async function loader({ request }: Route.LoaderArgs) {\n\tconst referrer = request.headers.get('Referer')\n\treturn redirect(safeRedirect(referrer ?? '/'), {\n\t\theaders: { 'Cache-Control': 'no-cache' },\n\t})\n}\n\nexport async function action({ request }: Route.ActionArgs) {\n\tconst formData = await request.formData()\n\tconst submission = parseWithZodUnsafe(formData, {\n\t\tschema: ThemeFormSchemaForConform,\n\t})\n\tif (submission.status !== 'success') {\n\t\treturn data(submission.reply(), {\n\t\t\t// You can also use the status to determine the HTTP status code\n\t\t\tstatus: submission.status === 'error' ? 400 : 200,\n\t\t})\n\t}\n\tconst { theme } = submission.value\n\n\tconst responseInit = {\n\t\theaders: { 'set-cookie': setTheme(theme) },\n\t}\n\treturn dataWithPE(request, formData, submission.reply(), responseInit)\n}\n\nexport function ThemeSwitch({\n\tdisableTooltip,\n}: { disableTooltip?: boolean } = {}) {\n\tconst requestInfo = useRequestInfo()\n\tconst peRedirectInput = usePERedirectInput()\n\tconst fetcher = useFetcher<Route.ComponentProps['actionData']>()\n\n\tconst [form] = useForm({\n\t\tlastResult: fetcher.data,\n\t\tonValidate({ formData }) {\n\t\t\treturn parseWithZodUnsafe(formData, {\n\t\t\t\tschema: ThemeFormSchemaForConform,\n\t\t\t})\n\t\t},\n\t})\n\n\tconst mode = requestInfo.session.theme ?? 'system'\n\tconst nextMode =\n\t\tmode === 'system' ? 'light' : mode === 'light' ? 'dark' : 'system'\n\tconst modeLabel = {\n\t\tlight: <Icon size=\"md\" name=\"Sun\" title=\"Light mode\" />,\n\t\tdark: <Icon size=\"md\" name=\"Moon\" title=\"Dark mode\" />,\n\t\tsystem: <Icon size=\"md\" name=\"Laptop\" title=\"System mode\" />,\n\t}\n\n\tconst button = (\n\t\t<button\n\t\t\ttype=\"submit\"\n\t\t\tname=\"intent\"\n\t\t\tvalue=\"update-theme\"\n\t\t\tclassName=\"flex h-8 w-8 cursor-pointer items-center justify-center\"\n\t\t>\n\t\t\t{modeLabel[mode]}\n\t\t</button>\n\t)\n\n\treturn (\n\t\t<fetcher.Form method=\"POST\" action={ROUTE_PATH} {...getFormProps(form)}>\n\t\t\t<div className=\"flex gap-2\">\n\t\t\t\t{peRedirectInput}\n\t\t\t\t<input type=\"hidden\" name=\"theme\" value={nextMode} />\n\t\t\t\t{disableTooltip ? (\n\t\t\t\t\tbutton\n\t\t\t\t) : (\n\t\t\t\t\t<SimpleTooltip content={`Change theme from ${mode} mode`}>\n\t\t\t\t\t\t{button}\n\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<ErrorList errors={form.errors} id={form.errorId} />\n\t\t</fetcher.Form>\n\t)\n}\n\n/**\n * @returns the user's theme preference, or the client hint theme if the user\n * has not set a preference.\n */\nexport function useTheme() {\n\tconst hints = useHints()\n\tconst requestInfo = useRequestInfo()\n\tconst fetchers = useFetchers()\n\tconst fetcher = fetchers.find(\n\t\t(f) => f.formData?.get('intent') === 'update-theme',\n\t)\n\tconst optimisticTheme = fetcher?.formData?.get('theme')\n\tif (optimisticTheme === 'system') return hints.theme\n\tif (optimisticTheme === 'light' || optimisticTheme === 'dark') {\n\t\treturn optimisticTheme\n\t}\n\treturn requestInfo.session.theme ?? hints.theme\n}\n"],"names":["ownKeys","o","r","_objectSpread2","_defineProperty","obj","key","value","_toPropertyKey","_toPrimitive","input","hint","prim","res","arg","invariant","expectedCondition","message","generateId","clone","data","isPlainObject","isInputElement","element","isSelectElement","isTextAreaElement","isSubmitter","isFieldElement","isGlobalInstance","className","Ctor","getFormAction","event","_ref","_submitter$getAttribu","form","submitter","getFormEncType","_submitter$getAttribu2","encType","getFormMethod","_ref2","_submitter$getAttribu3","method","createSubmitEvent","requestSubmit","createFileList","dataTransfer","file","normalizeStringValues","v","normalizeFileValues","item","updateField","options","isChanged","_element$files","files","currentFiles","i","_value","_defaultValue","checked","_value2","_defaultValue2","shouldUnselect","option","index","selected","_index","_selected","missingOptions","optionValue","defaultValue","_value$","inputValue","valueSetter","prototype","prototypeValueSetter","_defaultValue$","isDirtyInput","_element$files$length","_element$files2","getFormData","payload","entries","getPathSegments","path","tokenRegex","segments","lastIndex","match","number","formatPathSegments","segment","appendPathSegment","isPrefix","name","prefix","getRelativePath","basePath","fullPath","setValueAtPath","target","pathOrSegments","valueOrFn","result","pointer","currentSegment","nextSegment","child","last","oldValue","newValue","err","getValueAtPath","INTENT","STATE","getSubmissionContext","body","intent","state","context","getIntent","_loop","next","prev","parse","_name","setListValue","mergeResolveResult","resolved","createSubmission","replySubmission","_context$intent","_context$intent$paylo","_options$formErrors","extraError","normalize","error","initialValue","serializedIntent","control","serializeIntent","serialize","updateList","list","_intent$payload$index","root","setState","valueFn","keys","_loop2","_key","currentValue","flatten","_data$root","setListState","getDefaultValue","acceptFile","_options$resolve","resolve","process","_key2","_value3","_options$prefix","createFormMeta","isResetting","_lastResult$initialVa","_options$constraint","_lastResult$state$val","_lastResult$state","lastResult","getDefaultKey","handleIntent","setFieldsValidated","meta","fields","initialized","_fields$filter","validated","_name2","updateValue","_name3","validatedFields","_ref3","field","createStateProxy","fn","cache","_","receiver","_cache$name","createValueProxy","val","proxy","basename","parentValue","createConstraintProxy","constraint","_result","alternative","createKeyProxy","currentKey","parentKey","createValidProxy","createDirtyProxy","shouldDirtyConsider","_ref4","shouldNotify","scope","compareFn","_scope$prefix","_scope$name","prefixes","names","_name4","_cache$_name","_ret","createFormContext","subscribers","latestOptions","processedIntents","createFormState","getFormElement","_latestOptions$should","_latestOptions$should2","updateFormMeta","nextMeta","prevMeta","prevState","nextState","subscriber","_subscriber$getSubjec","subject","compareBoolean","getSerializedState","submit","formData","submission","_result2","report","resolveTarget","willValidate","eventName","shouldValidate","shouldRevalidate","updateFormValue","onInput","dispatch","onBlur","reset","onReset","_result$error","_result$state","formElement","_ref5","newError","pendingIntents","update","onUpdate","currentFormId","currentResult","subscribe","callback","getSubject","current","getState","buttonProps","getControlButtonProps","createFormControl","type","observe","observer","mutations","mutation","nodes","node","runSideEffect","intents","_name5","baseSegments","paths","_element","_objectWithoutPropertiesLoose","source","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","wrappedSymbol","useFormState","subjectRef","useCallback","useSyncExternalStore","useSubjectRef","initialSubject","useRef","updateSubjectRef","ref","_ref$current$subject$","_ref$current$subject","getMetadata","stateSnapshot","id","getFieldMetadata","formatPaths","getPaths","_state$constraint$nam","metadata","_state$initialValue$n","getFormMetadata","noValidate","onSubmit","unstable_createFormContext","submitEvent","_onSubmit","_excluded","useSafeLayoutEffect","useEffect","useLayoutEffect","useFormId","preferredId","useId","useNoValidate","defaultNoValidate","setNoValidate","useState","useForm","formConfig","formId","disconnect","simplify","props","getAriaAttributes","invalid","ariaDescribedBy","getFormProps","$constructor","initializer","params","init","inst","def","_a","k","Parent","Definition","$ZodAsyncError","globalConfig","config","newConfig","jsonStringifyReplacer","defineLazy","object","getter","captureStackTrace","_args","cl","aborted","x","startIndex","unwrapMessage","finalizeIssue","iss","ctx","full","util.jsonStringifyReplacer","$ZodError","$ZodRealError","_parse","_Err","schema","_ctx","_params","core.$ZodAsyncError","e","util.finalizeIssue","core.config","util.captureStackTrace","errors.$ZodRealError","_parseAsync","parseAsync","_safeParse","errors.$ZodError","safeParse","_safeParseAsync","safeParseAsync","version","$ZodType","core.$constructor","checks","ch","runChecks","isAborted","util.aborted","asyncResult","currLen","$ZodTransform","_out","output","$ZodPipe","util.defineLazy","left","handlePipeResult","$ZodLazy","ZodMiniType","core.$ZodType","parse.parse","parse.safeParse","parse.parseAsync","parse.safeParseAsync","_def","core.clone","reg","ZodMiniTransform","core.$ZodTransform","transform","ZodMiniPipe","core.$ZodPipe","pipe","in_","out","ZodMiniLazy","core.$ZodLazy","_lazy","stripEmptyString","stripEmptyFile","coerceNumber","coerceBoolean","coerceDate","date","coerceBigInt","compose","a","b","c","selectDefaultCoercion","defaultCoercion","literalValue","enableTypeCoercion","zod","constr","coercion","objectDef","setOriginalPropValues","inner","lazy","coerceFormValue","getCoercion","fallbackCoercion","_options$customize","getError","zodError","formatError","issue","conformZodMessage","_issues","issues","parseWithZod","baseSchema","resolveSubmission","_options$formatError","getHintUtils","hints","getCookieValue","cookieString","getHints","request","acc","hintName","getClientHintCheckScript","cookieName","clientHint","subscribeToSchemeChange","schemaMatch","handleThemeChange","subscribeToMotionChange","motionMatch","handleMotionChange","themeCookieName","motionCookieName","hintsUtils","colorSchemeHint","timeZoneHint","reducedMotionHint","useHints","useRequestInfo","ClientHintCheck","revalidate","useRevalidator","React.useEffect","jsx","ErrorList","errors","errorsToRender","ROUTE_PATH","ThemeFormSchema","z","theme","ThemeFormSchemaForConform","parseWithZodUnsafe","ThemeSwitch","disableTooltip","requestInfo","peRedirectInput","usePERedirectInput","fetcher","useFetcher","onValidate","mode","session","nextMode","modeLabel","light","Icon","size","title","dark","system","button","children","jsxs","Form","action","SimpleTooltip","content","errorId","useTheme","optimisticTheme","useFetchers","find","f","get"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]}
|
|
1
|
+
{"version":3,"file":"index-BrVvTrwg.js","sources":["../../../../../node_modules/@conform-to/dom/dist/_virtual/_rollupPluginBabelHelpers.mjs","../../../../../node_modules/@conform-to/dom/dist/util.mjs","../../../../../node_modules/@conform-to/dom/dist/dom.mjs","../../../../../node_modules/@conform-to/dom/dist/formdata.mjs","../../../../../node_modules/@conform-to/dom/dist/submission.mjs","../../../../../node_modules/@conform-to/dom/dist/form.mjs","../../../../../node_modules/@conform-to/react/dist/_virtual/_rollupPluginBabelHelpers.mjs","../../../../../node_modules/@conform-to/react/dist/context.mjs","../../../../../node_modules/@conform-to/react/dist/hooks.mjs","../../../../../node_modules/@conform-to/react/dist/helpers.mjs","../../../../../node_modules/@conform-to/zod/dist/_virtual/_rollupPluginBabelHelpers.mjs","../../../../../node_modules/zod/v4/core/core.js","../../../../../node_modules/zod/v4/core/util.js","../../../../../node_modules/zod/v4/core/errors.js","../../../../../node_modules/zod/v4/core/parse.js","../../../../../node_modules/zod/v4/core/versions.js","../../../../../node_modules/zod/v4/core/schemas.js","../../../../../node_modules/zod/v4/mini/schemas.js","../../../../../node_modules/@conform-to/zod/dist/v4/coercion.mjs","../../../../../node_modules/@conform-to/zod/dist/v4/parse.mjs","../../../../../node_modules/@epic-web/client-hints/dist/index.js","../../../../../node_modules/@epic-web/client-hints/dist/color-scheme.js","../../../../../node_modules/@epic-web/client-hints/dist/reduced-motion.js","../../../../../node_modules/@epic-web/client-hints/dist/time-zone.js","../../../app/utils/client-hints.tsx","../../../app/utils/forms.tsx","../../../app/routes/theme/index.tsx"],"sourcesContent":["function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nexport { _defineProperty as defineProperty, _objectSpread2 as objectSpread2, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };\n","function invariant(expectedCondition, message) {\n if (!expectedCondition) {\n throw new Error(message);\n }\n}\nfunction generateId() {\n return (Date.now() * Math.random()).toString(36);\n}\nfunction clone(data) {\n return JSON.parse(JSON.stringify(data));\n}\n\n/**\n * Check if the value is a plain object\n */\nfunction isPlainObject(obj) {\n return !!obj && obj.constructor === Object && Object.getPrototypeOf(obj) === Object.prototype;\n}\n\n/**\n * A utility function that performs a deep equality check between two values.\n * It handles plain objects, arrays, and primitive values only.\n */\nfunction deepEqual(left, right) {\n if (Object.is(left, right)) {\n return true;\n }\n if (left == null || right == null) {\n return false;\n }\n\n // Compare plain objects\n if (isPlainObject(left) && isPlainObject(right)) {\n var prevKeys = Object.keys(left);\n var nextKeys = Object.keys(right);\n if (prevKeys.length !== nextKeys.length) {\n return false;\n }\n for (var key of prevKeys) {\n if (!Object.prototype.hasOwnProperty.call(right, key) || !deepEqual(left[key], right[key])) {\n return false;\n }\n }\n return true;\n }\n\n // Compare arrays\n if (Array.isArray(left) && Array.isArray(right)) {\n if (left.length !== right.length) {\n return false;\n }\n for (var i = 0; i < left.length; i++) {\n if (!deepEqual(left[i], right[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n\n/*\n * Removes File object from the FormValue.\n * Used to avoid serialzing/sending File object back to the client.\n */\nfunction stripFiles(value) {\n var json = JSON.stringify(value, (_, value) => {\n // If the current value is a File, return undefined to omit it\n if (typeof File !== 'undefined' && value instanceof File) {\n return undefined;\n }\n return value;\n });\n return JSON.parse(json);\n}\n\n/**\n * Helper to get readable type name for error messages\n */\nfunction getTypeName(value) {\n if (value === null) return 'null';\n if (Array.isArray(value)) return 'Array';\n if (typeof value === 'object') {\n var _value$constructor$na, _value$constructor;\n return (_value$constructor$na = (_value$constructor = value.constructor) === null || _value$constructor === void 0 ? void 0 : _value$constructor.name) !== null && _value$constructor$na !== void 0 ? _value$constructor$na : 'Object';\n }\n return typeof value;\n}\n\nexport { clone, deepEqual, generateId, getTypeName, invariant, isPlainObject, stripFiles };\n","import { invariant } from './util.mjs';\n\n/**\n * Element that user can interact with,\n * includes `<input>`, `<select>` and `<textarea>`.\n */\n\n/**\n * Form Control element. It can either be a submit button or a submit input.\n */\n\nfunction isInputElement(element) {\n return element.tagName === 'INPUT';\n}\nfunction isSelectElement(element) {\n return element.tagName === 'SELECT';\n}\nfunction isTextAreaElement(element) {\n return element.tagName === 'TEXTAREA';\n}\n\n/**\n * A type guard to checks if the element is a submitter element.\n * A submitter element is either an input or button element with type submit.\n */\nfunction isSubmitter(element) {\n return 'type' in element && element.type === 'submit';\n}\n\n/**\n * A type guard to check if the provided element is a field element, which\n * is a form control excluding submit, button and reset type.\n */\nfunction isFieldElement(element) {\n if (element instanceof Element) {\n if (isInputElement(element)) {\n return element.type !== 'submit' && element.type !== 'button' && element.type !== 'reset';\n }\n if (isSelectElement(element) || isTextAreaElement(element)) {\n return true;\n }\n }\n return false;\n}\nfunction isGlobalInstance(obj, className) {\n var Ctor = globalThis[className];\n return typeof Ctor === 'function' && obj instanceof Ctor;\n}\n\n/**\n * Resolves the action from the submit event\n * with respect to the submitter `formaction` attribute.\n */\nfunction getFormAction(event) {\n var _ref, _submitter$getAttribu;\n var form = event.target;\n var submitter = event.submitter;\n return (_ref = (_submitter$getAttribu = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute('formaction')) !== null && _submitter$getAttribu !== void 0 ? _submitter$getAttribu : form.getAttribute('action')) !== null && _ref !== void 0 ? _ref : \"\".concat(location.pathname).concat(location.search);\n}\n\n/**\n * Resolves the encoding type from the submit event\n * with respect to the submitter `formenctype` attribute.\n */\nfunction getFormEncType(event) {\n var _submitter$getAttribu2;\n var form = event.target;\n var submitter = event.submitter;\n var encType = (_submitter$getAttribu2 = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute('formenctype')) !== null && _submitter$getAttribu2 !== void 0 ? _submitter$getAttribu2 : form.enctype;\n if (encType === 'multipart/form-data') {\n return encType;\n }\n return 'application/x-www-form-urlencoded';\n}\n\n/**\n * Resolves the method from the submit event\n * with respect to the submitter `formmethod` attribute.\n */\nfunction getFormMethod(event) {\n var _ref2, _submitter$getAttribu3;\n var form = event.target;\n var submitter = event.submitter;\n var method = (_ref2 = (_submitter$getAttribu3 = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute('formmethod')) !== null && _submitter$getAttribu3 !== void 0 ? _submitter$getAttribu3 : form.getAttribute('method')) === null || _ref2 === void 0 ? void 0 : _ref2.toUpperCase();\n switch (method) {\n case 'POST':\n case 'PUT':\n case 'PATCH':\n case 'DELETE':\n return method;\n }\n return 'GET';\n}\n\n/**\n * Creates a submit event that behaves like a real form submission.\n */\nfunction createSubmitEvent(submitter) {\n return new SubmitEvent('submit', {\n bubbles: true,\n cancelable: true,\n submitter\n });\n}\n\n/**\n * Trigger a form submit event with an optional submitter.\n * If the submitter is not mounted, it will be appended to the form and removed after submission.\n */\nfunction requestSubmit(form, submitter) {\n invariant(!!form, 'Failed to submit the form. The element provided is null or undefined.');\n if (typeof form.requestSubmit === 'function') {\n form.requestSubmit(submitter);\n } else {\n form.dispatchEvent(createSubmitEvent(submitter));\n }\n}\n\n/**\n * Triggers form submission with an intent value. This is achieved by\n * creating a hidden button element with the intent value and then submitting it with the form.\n */\nfunction requestIntent(formElement, intentName, intentValue) {\n var submitter = document.createElement('button');\n submitter.name = intentName;\n submitter.value = intentValue;\n submitter.hidden = true;\n submitter.formNoValidate = true;\n formElement.appendChild(submitter);\n requestSubmit(formElement, submitter);\n formElement.removeChild(submitter);\n}\nfunction createFileList(value) {\n var dataTransfer = new DataTransfer();\n if (Array.isArray(value)) {\n for (var file of value) {\n dataTransfer.items.add(file);\n }\n } else {\n dataTransfer.items.add(value);\n }\n return dataTransfer.files;\n}\nfunction createGlobalFormsObserver() {\n var inputListeners = new Set();\n var formListeners = new Set();\n var cleanup = null;\n function initialize() {\n var observer = new MutationObserver(handleMutation);\n observer.observe(document.body, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeOldValue: true,\n attributeFilter: ['form', 'name', 'data-conform']\n });\n document.addEventListener('input', handleInput);\n document.addEventListener('reset', handleReset);\n document.addEventListener('submit', handleSubmit, true);\n return () => {\n document.removeEventListener('input', handleInput);\n document.removeEventListener('reset', handleReset);\n document.removeEventListener('submit', handleSubmit, true);\n observer.disconnect();\n };\n }\n function handleInput(event) {\n var target = event.target;\n if (isFieldElement(target)) {\n inputListeners.forEach(callback => callback({\n type: 'input',\n target\n }));\n var form = target.form;\n if (form) {\n formListeners.forEach(callback => callback({\n type: 'input',\n target: form\n }));\n }\n }\n }\n function handleReset(event) {\n var form = event.target;\n if (form instanceof HTMLFormElement) {\n // Reset event is fired before the form is reset, so we need to wait for the next tick\n setTimeout(() => {\n formListeners.forEach(callback => {\n callback({\n type: 'reset',\n target: form\n });\n });\n var _loop = function _loop(target) {\n if (isFieldElement(target)) {\n inputListeners.forEach(callback => {\n callback({\n type: 'reset',\n target\n });\n });\n }\n };\n for (var target of form.elements) {\n _loop(target);\n }\n });\n }\n }\n function handleSubmit(event) {\n var target = event.target;\n var submitter = event.submitter;\n if (target instanceof HTMLFormElement) {\n formListeners.forEach(callback => callback({\n type: 'submit',\n target,\n submitter\n }));\n }\n }\n function getAssociatedFormElement(formId, node) {\n if (formId !== null) {\n return document.forms.namedItem(formId);\n }\n if (node instanceof Element) {\n return node.closest('form');\n }\n return null;\n }\n function handleMutation(mutations) {\n var seenForms = new Set();\n var seenInputs = new Set();\n var collectInputs = node => {\n if (isFieldElement(node)) {\n return [node];\n }\n return node instanceof Element ? Array.from(node.querySelectorAll('input,select,textarea')) : [];\n };\n var collectForms = node => {\n if (node instanceof HTMLFormElement) {\n return [node];\n }\n return node instanceof Element ? Array.from(node.querySelectorAll('form')) : [];\n };\n for (var mutation of mutations) {\n switch (mutation.type) {\n case 'childList':\n {\n var nodes = [...mutation.addedNodes, ...mutation.removedNodes];\n for (var node of nodes) {\n for (var form of collectForms(node)) {\n seenForms.add(form);\n }\n for (var input of collectInputs(node)) {\n var _input$form;\n seenInputs.add(input);\n var _form = (_input$form = input.form) !== null && _input$form !== void 0 ? _input$form : getAssociatedFormElement(input.getAttribute('form'), mutation.target);\n if (_form) {\n seenForms.add(_form);\n }\n }\n }\n break;\n }\n case 'attributes':\n {\n if (isFieldElement(mutation.target)) {\n seenInputs.add(mutation.target);\n if (mutation.target.form) {\n seenForms.add(mutation.target.form);\n }\n if (mutation.attributeName === 'form') {\n var oldForm = getAssociatedFormElement(mutation.oldValue, mutation.target);\n if (oldForm) {\n seenForms.add(oldForm);\n }\n }\n }\n break;\n }\n }\n }\n var _loop2 = function _loop2(target) {\n formListeners.forEach(callback => {\n callback({\n type: 'mutation',\n target\n });\n });\n };\n for (var target of seenForms) {\n _loop2(target);\n }\n var _loop3 = function _loop3(_target) {\n inputListeners.forEach(callback => {\n callback({\n type: 'mutation',\n target: _target\n });\n });\n };\n for (var _target of seenInputs) {\n _loop3(_target);\n }\n }\n return {\n onFieldUpdate(callback) {\n var _cleanup;\n cleanup = (_cleanup = cleanup) !== null && _cleanup !== void 0 ? _cleanup : initialize();\n inputListeners.add(callback);\n return () => {\n inputListeners.delete(callback);\n };\n },\n onFormUpdate(callback) {\n var _cleanup2;\n cleanup = (_cleanup2 = cleanup) !== null && _cleanup2 !== void 0 ? _cleanup2 : initialize();\n formListeners.add(callback);\n return () => {\n formListeners.delete(callback);\n };\n },\n dispose() {\n var _cleanup3;\n (_cleanup3 = cleanup) === null || _cleanup3 === void 0 || _cleanup3();\n cleanup = null;\n inputListeners.clear();\n formListeners.clear();\n }\n };\n}\n\n/**\n * Change the value of the given field element.\n * Dispatches both `input` and `change` events only if the value is changed.\n */\nfunction change(element, value, options) {\n // The value should be set to the element before dispatching the event\n var isChanged = updateField(element, {\n value\n });\n if (isChanged) {\n var inputEvent = new InputEvent('input', {\n bubbles: true,\n cancelable: true\n });\n var changeEvent = new Event('change', {\n bubbles: true,\n cancelable: true\n });\n if (options !== null && options !== void 0 && options.preventDefault) {\n inputEvent.preventDefault();\n changeEvent.preventDefault();\n }\n\n // Dispatch input event with the updated input value\n element.dispatchEvent(inputEvent);\n // Dispatch change event (necessary for select to update the selected option)\n element.dispatchEvent(changeEvent);\n }\n}\n\n/**\n * Dispatches focus and focusin events on the given element.\n */\nfunction focus(element) {\n // Only focusin event will be bubbled\n element.dispatchEvent(new FocusEvent('focusin', {\n bubbles: true\n }));\n element.dispatchEvent(new FocusEvent('focus'));\n}\n\n/**\n * Dispatches blur and focusout events on the given element.\n */\nfunction blur(element) {\n // Only focusout event will be bubbled\n element.dispatchEvent(new FocusEvent('focusout', {\n bubbles: true\n }));\n element.dispatchEvent(new FocusEvent('blur'));\n}\nfunction normalizeStringValues(value) {\n if (typeof value === 'undefined') return undefined;\n if (value === null) return [];\n if (typeof value === 'string') return [value];\n if (Array.isArray(value) && value.every(v => typeof v === 'string')) {\n return Array.from(value);\n }\n throw new Error('Expected string or string[] value for string based input');\n}\nfunction normalizeFileValues(value) {\n if (typeof value === 'undefined') return undefined;\n if (value === null) return [];\n if (isGlobalInstance(value, 'File')) return value.name === '' && value.size === 0 ? [] : [value];\n if (isGlobalInstance(value, 'FileList')) return Array.from(value);\n if (Array.isArray(value) && value.every(item => isGlobalInstance(item, 'File'))) {\n return value;\n }\n throw new Error('Expected File, FileList or File[] for file input');\n}\n\n/**\n * Updates the DOM element with the provided value and defaultValue.\n * If the value or defaultValue is undefined, it will keep the current value instead\n */\nfunction updateField(element, options) {\n var isChanged = false;\n if (isInputElement(element)) {\n switch (element.type) {\n case 'file':\n {\n var _element$files;\n var files = normalizeFileValues(options.value);\n var currentFiles = Array.from((_element$files = element.files) !== null && _element$files !== void 0 ? _element$files : []);\n if (files && (files.length !== currentFiles.length || files.some((file, i) => file !== currentFiles[i]))) {\n element.files = createFileList(files);\n isChanged = true;\n }\n return isChanged;\n }\n case 'checkbox':\n case 'radio':\n {\n var _value = normalizeStringValues(options.value);\n var _defaultValue = normalizeStringValues(options.defaultValue);\n if (_value) {\n var checked = _value.includes(element.value);\n if (element.type === 'checkbox' ? checked !== element.checked : checked) {\n // Simulate a click to update the checked state\n element.click();\n isChanged = true;\n }\n element.checked = checked;\n }\n if (_defaultValue) {\n element.defaultChecked = _defaultValue.includes(element.value);\n }\n return isChanged;\n }\n }\n } else if (isSelectElement(element)) {\n var _value2 = normalizeStringValues(options.value);\n var _defaultValue2 = normalizeStringValues(options.defaultValue);\n var shouldUnselect = _value2 && _value2.length === 0;\n for (var option of element.options) {\n if (_value2) {\n var index = _value2.indexOf(option.value);\n var selected = index > -1;\n\n // Update the selected state of the option\n if (option.selected !== selected) {\n option.selected = selected;\n isChanged = true;\n }\n\n // Remove the option from the value array\n if (selected) {\n _value2.splice(index, 1);\n }\n }\n if (_defaultValue2) {\n var _index = _defaultValue2.indexOf(option.value);\n var _selected = _index > -1;\n\n // Update the selected state of the option\n if (option.defaultSelected !== _selected) {\n option.defaultSelected = _selected;\n }\n\n // Remove the option from the defaultValue array\n if (_selected) {\n _defaultValue2.splice(_index, 1);\n }\n }\n }\n\n // We have already removed all selected options from the value and defaultValue array at this point\n var missingOptions = new Set([...(_value2 !== null && _value2 !== void 0 ? _value2 : []), ...(_defaultValue2 !== null && _defaultValue2 !== void 0 ? _defaultValue2 : [])]);\n for (var optionValue of missingOptions) {\n element.options.add(new Option(optionValue, optionValue, _defaultValue2 === null || _defaultValue2 === void 0 ? void 0 : _defaultValue2.includes(optionValue), _value2 === null || _value2 === void 0 ? void 0 : _value2.includes(optionValue)));\n isChanged = true;\n }\n\n // If the select element is not multiple and the value is an empty array, unset the selected index\n // This is to prevent the select element from showing the first option as selected\n if (shouldUnselect && element.selectedIndex !== -1) {\n element.selectedIndex = -1;\n isChanged = true;\n }\n return isChanged;\n }\n var value = normalizeStringValues(options.value);\n var defaultValue = normalizeStringValues(options.defaultValue);\n if (value) {\n var _value$;\n var inputValue = (_value$ = value[0]) !== null && _value$ !== void 0 ? _value$ : '';\n if (element.value !== inputValue) {\n /**\n * Triggering react custom change event\n * Solution based on dom-testing-library\n * @see https://github.com/facebook/react/issues/10135#issuecomment-401496776\n * @see https://github.com/testing-library/dom-testing-library/blob/main/src/events.js#L104-L123\n */\n var {\n set: valueSetter\n } = Object.getOwnPropertyDescriptor(element, 'value') || {};\n var prototype = Object.getPrototypeOf(element);\n var {\n set: prototypeValueSetter\n } = Object.getOwnPropertyDescriptor(prototype, 'value') || {};\n if (prototypeValueSetter && valueSetter !== prototypeValueSetter) {\n prototypeValueSetter.call(element, inputValue);\n } else if (valueSetter) {\n valueSetter.call(element, inputValue);\n } else {\n throw new Error('The given element does not have a value setter');\n }\n isChanged = true;\n }\n }\n if (defaultValue) {\n var _defaultValue$;\n element.defaultValue = (_defaultValue$ = defaultValue[0]) !== null && _defaultValue$ !== void 0 ? _defaultValue$ : '';\n }\n return isChanged;\n}\nfunction isDirtyInput(element) {\n var _element$files$length, _element$files2;\n if (isInputElement(element)) {\n switch (element.type) {\n case 'checkbox':\n case 'radio':\n return element.checked !== element.defaultChecked;\n case 'file':\n return ((_element$files$length = (_element$files2 = element.files) === null || _element$files2 === void 0 ? void 0 : _element$files2.length) !== null && _element$files$length !== void 0 ? _element$files$length : 0) > 0;\n default:\n return element.value !== element.defaultValue;\n }\n } else if (isSelectElement(element)) {\n return Array.from(element.options).some(option => option.selected !== option.defaultSelected);\n } else if (isTextAreaElement(element)) {\n return element.value !== element.defaultValue;\n }\n return false;\n}\n\nexport { blur, change, createFileList, createGlobalFormsObserver, createSubmitEvent, focus, getFormAction, getFormEncType, getFormMethod, isDirtyInput, isFieldElement, isGlobalInstance, isInputElement, isSelectElement, isSubmitter, isTextAreaElement, normalizeFileValues, normalizeStringValues, requestIntent, requestSubmit, updateField };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { isSubmitter, isGlobalInstance } from './dom.mjs';\nimport { isPlainObject, stripFiles, deepEqual, getTypeName } from './util.mjs';\nimport { formatIssues } from './standard-schema.mjs';\n\nvar DEFAULT_INTENT_NAME = '__INTENT__';\n\n/**\n * Construct a form data with the submitter value.\n * It utilizes the submitter argument on the FormData constructor from modern browsers\n * with fallback to append the submitter value in case it is not unsupported.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData#parameters\n */\nfunction getFormData(form, submitter) {\n var payload = new FormData(form, submitter);\n if (submitter) {\n if (!isSubmitter(submitter)) {\n throw new TypeError('The submitter must be an input or button element with type submit.');\n }\n if (submitter.name) {\n var entries = payload.getAll(submitter.name);\n\n // This assumes the submitter value to be always unique, which should be fine in most cases\n if (!entries.includes(submitter.value)) {\n payload.append(submitter.name, submitter.value);\n }\n }\n }\n return payload;\n}\n\n/**\n * Convert a string path into an array of segments.\n *\n * @example\n * ```js\n * getPathSegments(\"object.key\"); // → ['object', 'key']\n * getPathSegments(\"array[0].content\"); // → ['array', 0, 'content']\n * getPathSegments(\"todos[]\"); // → ['todos', '']\n * ```\n */\nfunction getPathSegments(path) {\n if (!path) return [];\n var tokenRegex = /([^.[\\]]+)|\\[(\\d*)\\]/g;\n var segments = [];\n var lastIndex = 0,\n match;\n while (match = tokenRegex.exec(path)) {\n // allow a single “.” between tokens\n if (match.index !== lastIndex) {\n if (!(match.index === lastIndex + 1 && path[lastIndex] === '.')) {\n throw new Error(\"Invalid path syntax at position \".concat(lastIndex, \" in \\\"\").concat(path, \"\\\"\"));\n }\n }\n var [, key, index] = match;\n if (key !== undefined) {\n if (key === '__proto__' || key === 'constructor') {\n throw new Error(\"Invalid path segment \\\"\".concat(key, \"\\\"\"));\n }\n segments.push(key);\n } else if (index === '') {\n segments.push('');\n } else {\n var number = Number(index);\n if (!Number.isInteger(number) || number < 0) {\n throw new Error(\"Invalid path segment: array index must be a non-negative integer, got \".concat(number));\n }\n segments.push(number);\n }\n lastIndex = tokenRegex.lastIndex;\n }\n if (lastIndex !== path.length) {\n throw new Error(\"Invalid path syntax at position \".concat(lastIndex, \" in \\\"\").concat(path, \"\\\"\"));\n }\n return segments;\n}\n\n/**\n * Returns a formatted name from the path segments based on the dot and bracket notation.\n *\n * @example\n * ```js\n * formatPathSegments(['object', 'key']); // → \"object.key\"\n * formatPathSegments(['array', 0, 'content']); // → \"array[0].content\"\n * formatPathSegments(['todos', '']); // → \"todos[]\"\n * ```\n */\nfunction formatPathSegments(segments) {\n return segments.reduce((path, segment) => appendPathSegment(path, segment), '');\n}\n\n/**\n * Append one more segment onto an existing path string.\n *\n * - segment = `undefined` ⇒ no-op\n * - segment = `\"\"` ⇒ empty brackets \"[]\"\n * - segment = `number` ⇒ bracket notation \"[n]\"\n * - segment = `string` ⇒ dot-notation \".prop\"\n */\nfunction appendPathSegment(path, segment) {\n // 1) nothing to append\n if (typeof segment === 'undefined') {\n return path !== null && path !== void 0 ? path : '';\n }\n\n // 2) explicit empty-segment => empty bracket\n if (segment === '') {\n // even as first segment, \"[]\" is valid\n return \"\".concat(path, \"[]\");\n }\n\n // 3) numeric index => [n]\n if (typeof segment === 'number') {\n return \"\".concat(path, \"[\").concat(segment, \"]\");\n }\n\n // 4) non-empty string => .prop (no leading dot if no base)\n return path ? \"\".concat(path, \".\").concat(segment) : segment;\n}\n\n/**\n * Returns true if `prefix` is a valid leading path of `name`.\n *\n * @example\n * ```js\n * isPrefix(\"foo.bar.baz\", \"foo.bar\") // → true\n * isPrefix(\"foo.bar[3].baz\", \"foo.bar[3]\") // → true\n * isPrefix(\"foo.bar[3].baz\", \"foo.bar\") // → true\n * isPrefix(\"foo.bar[3].baz\", \"foo.baz\") // → false\n * isPrefix(\"foo\", \"foo.bar\") // → false\n * ```\n */\nfunction isPrefix(name, prefix) {\n return getRelativePath(name, getPathSegments(prefix)) !== null;\n}\n\n/**\n * Return the segments of `fullPathStr` that come after the `baseSegments` prefix.\n *\n * @param fullPathStr Full path as a dot/bracket string\n * @param basePath Base path, already parsed into segments\n * @returns The “tail” segments, or `null` if `fullPathStr` isn’t nested under `baseSegments`\n *\n * @example\n * ```js\n * getRelativePath(\"foo.bar[0].qux\", [\"foo\",\"bar\"]) // → [0, \"qux\"]\n * getRelativePath(\"a.b.c.d\", [\"a\",\"b\"]) // → [\"c\",\"d\"]\n * getRelativePath(\"foo\", [\"foo\",\"bar\"]) // → null\n * ```\n */\nfunction getRelativePath(name, basePath) {\n var fullPath = getPathSegments(name);\n\n // if full is at least as long *and* starts with the base…\n if (fullPath.length >= basePath.length && basePath.every((segment, i) => segment === fullPath[i])) {\n return fullPath.slice(basePath.length);\n }\n return null;\n}\n\n/**\n * Assign a value to a target object by following the path segments.\n */\nfunction setValueAtPath(target, pathOrSegments, valueOrFn) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n try {\n // 1) normalize + validate path\n var segments = typeof pathOrSegments === 'string' ? getPathSegments(pathOrSegments) : pathOrSegments;\n if (segments.length === 0) {\n throw new Error('Cannot set value at the object root');\n }\n if (segments.some((segment, i) => segment === '' && i < segments.length - 1)) {\n throw new Error(\"Empty brackets '[]' only allowed at end of path (\\\"\".concat(pathOrSegments, \"\\\")\"));\n }\n\n // 2) clone root if needed\n var result = options.clone ? _objectSpread2({}, target) : target;\n var pointer = result;\n\n // 3) drill down, cloning ancestors\n for (var i = 0; i < segments.length - 1; i++) {\n var currentSegment = segments[i];\n var nextSegment = segments[i + 1];\n var child = pointer[currentSegment];\n if (Array.isArray(child)) {\n child = options.clone ? child.slice() : child;\n } else if (isPlainObject(child)) {\n child = options.clone ? _objectSpread2({}, child) : child;\n } else {\n child = typeof nextSegment === 'number' || nextSegment === '' ? [] : {};\n }\n pointer[currentSegment] = child;\n pointer = child;\n }\n\n // 4) final set or push\n var last = segments[segments.length - 1];\n var oldValue = pointer[last];\n var newValue = typeof valueOrFn === 'function' ? valueOrFn(oldValue) : valueOrFn;\n if (last === '') {\n if (!Array.isArray(pointer)) {\n throw new Error(\"Cannot push to non-array at \\\"\".concat(pathOrSegments, \"\\\"\"));\n }\n pointer.push(newValue);\n } else {\n pointer[last] = newValue;\n }\n return result;\n } catch (err) {\n if (options !== null && options !== void 0 && options.silent) {\n return target;\n }\n throw err;\n }\n}\n\n/**\n * Retrive the value from a target object by following the path segments.\n */\nfunction getValueAtPath(target, pathOrSegments) {\n var pointer = target;\n var segments = typeof pathOrSegments === 'string' ? getPathSegments(pathOrSegments) : pathOrSegments;\n for (var segment of segments) {\n if (segment === '') {\n throw new Error(\"Cannot access empty segment \\\"[]\\\" in \\\"\".concat(pathOrSegments, \"\\\"\"));\n }\n if (pointer == null || !Object.prototype.hasOwnProperty.call(pointer, segment)) {\n return undefined;\n }\n pointer = pointer[segment];\n }\n return pointer;\n}\n\n/**\n * Check if a form value is considered empty and should be stripped from the submission.\n * A value is empty if:\n * - It's an empty string \"\"\n * - It's an empty File (size 0 and name \"\")\n * - It's an array where all items are empty\n */\nfunction isEmptyValue(value) {\n if (value === '' || value === undefined) {\n return true;\n }\n if (isGlobalInstance(value, 'File')) {\n // Empty File has size 0 and empty name\n return value.size === 0 && value.name === '';\n }\n if (Array.isArray(value)) {\n // If array is empty or all items are empty, consider it empty\n return value.length === 0 || value.every(item => isEmptyValue(item));\n }\n return false;\n}\n\n/**\n * Parse `FormData` or `URLSearchParams` into a submission object.\n * This function structures the form values based on the naming convention.\n * It also includes all the field names and extracts the intent from the submission.\n *\n * @see https://conform.guide/api/react/future/parseSubmission\n * @example\n * ```ts\n * const formData = new FormData();\n *\n * formData.append('email', 'test@example.com');\n * formData.append('password', 'secret');\n *\n * parseSubmission(formData)\n * // {\n * // payload: { email: 'test@example.com', password: 'secret' },\n * // fields: ['email', 'password'],\n * // intent: null,\n * // }\n *\n * // If you have an intent field\n * formData.append('intent', 'login');\n * parseSubmission(formData, { intentName: 'intent' })\n * // {\n * // payload: { email: 'test@example.com', password: 'secret' },\n * // fields: ['email', 'password'],\n * // intent: 'login',\n * // }\n * ```\n */\nfunction parseSubmission(formData, options) {\n var _options$intentName;\n var intentName = (_options$intentName = options === null || options === void 0 ? void 0 : options.intentName) !== null && _options$intentName !== void 0 ? _options$intentName : DEFAULT_INTENT_NAME;\n var submission = {\n payload: {},\n fields: [],\n intent: null\n };\n for (var _name of new Set(formData.keys())) {\n var _options$skipEntry;\n if (_name !== intentName && !(options !== null && options !== void 0 && (_options$skipEntry = options.skipEntry) !== null && _options$skipEntry !== void 0 && _options$skipEntry.call(options, _name))) {\n var _options$stripEmptyVa;\n var _value = formData.getAll(_name);\n var segments = getPathSegments(_name);\n\n // If the name ends with [], remove the empty segment and keep the full array\n // Otherwise, unwrap single values\n if (segments.length > 0 && segments[segments.length - 1] === '') {\n segments.pop();\n } else {\n _value = _value.length > 1 ? _value : _value[0];\n }\n\n // Check if the value is empty and should be skipped (defaults to true)\n var stripEmptyValues = (_options$stripEmptyVa = options === null || options === void 0 ? void 0 : options.stripEmptyValues) !== null && _options$stripEmptyVa !== void 0 ? _options$stripEmptyVa : true;\n if (stripEmptyValues) {\n // For arrays, filter out individual empty items\n if (Array.isArray(_value)) {\n _value = _value.filter(item => !isEmptyValue(item));\n }\n if (isEmptyValue(_value)) {\n _value = undefined;\n }\n }\n setValueAtPath(submission.payload, segments, _value, {\n silent: true // Avoid errors if the path is invalid\n });\n submission.fields.push(_name);\n }\n }\n if (intentName) {\n // We take the first value of the intent field if it exists.\n var intent = formData.get(intentName);\n if (typeof intent === 'string') {\n submission.intent = intent;\n }\n }\n return submission;\n}\n\n/**\n * Creates a SubmissionResult object from a submission, adding validation results and target values.\n * This function will remove all files in the submission payload by default since\n * file inputs cannot be initialized with files.\n * You can specify `keepFiles: true` to keep the files if needed.\n *\n * @see https://conform.guide/api/react/future/report\n * @example\n * ```ts\n * // Report the submission with the field errors\n * report(submission, {\n * error: {\n * fieldErrors: {\n * email: ['Invalid email format'],\n * password: ['Password is required'],\n * },\n * })\n *\n * // Report the submission with a form error\n * report(submission, {\n * error: {\n * formErrors: ['Invalid credentials'],\n * },\n * })\n *\n * // Reset the form\n * report(submission, {\n * reset: true,\n * })\n * ```\n */\n\nfunction report(submission) {\n var _options$value;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var error;\n if (options.error == null) {\n error = options.error;\n } else {\n var _options$error$issues;\n error = formatIssues((_options$error$issues = options.error.issues) !== null && _options$error$issues !== void 0 ? _options$error$issues : []);\n if (options.error.formErrors) {\n error.formErrors.push(...options.error.formErrors);\n }\n if (options.error.fieldErrors) {\n for (var [_name2, messages] of Object.entries(options.error.fieldErrors)) {\n if (messages.length === 0) {\n continue;\n }\n if (!error.fieldErrors[_name2]) {\n error.fieldErrors[_name2] = messages;\n } else {\n error.fieldErrors[_name2].push(...messages);\n }\n }\n }\n }\n var targetValue = typeof options.value === 'undefined' || submission.payload === options.value && !options.reset ? undefined : options.value && !options.keepFiles ? stripFiles(options.value) : (_options$value = options.value) !== null && _options$value !== void 0 ? _options$value : {};\n if (options.hideFields) {\n for (var _name3 of options.hideFields) {\n var path = getPathSegments(_name3);\n setValueAtPath(submission.payload, path, undefined);\n if (targetValue) {\n setValueAtPath(targetValue, path, undefined);\n }\n }\n }\n return {\n submission: options.keepFiles ? submission : _objectSpread2(_objectSpread2({}, submission), {}, {\n payload: stripFiles(submission.payload)\n }),\n reset: options.reset,\n targetValue,\n error\n };\n}\n\n/**\n * A utility function that checks whether the current form data differs from the default values.\n *\n * @see https://conform.guide/api/react/future/isDirty\n * @example Enable a submit button only if the form is dirty\n *\n * ```tsx\n * const dirty = useFormData(\n * formRef,\n * (formData) => isDirty(formData, { defaultValue }) ?? false,\n * );\n *\n * return (\n * <button type=\"submit\" disabled={!dirty}>\n * Save changes\n * </button>\n * );\n * ```\n */\nfunction isDirty(\n/**\n * The current form data to compare. It can be:\n *\n * - A `FormData` object\n * - A `URLSearchParams` object\n * - A plain object that was parsed from form data (i.e. `submission.payload`)\n */\nformData, options) {\n if (!formData) {\n return;\n }\n var formValue = formData instanceof FormData || formData instanceof URLSearchParams ? parseSubmission(formData, {\n intentName: options === null || options === void 0 ? void 0 : options.intentName,\n skipEntry: options === null || options === void 0 ? void 0 : options.skipEntry\n }).payload : formData;\n var defaultValue = options === null || options === void 0 ? void 0 : options.defaultValue;\n var serializeData = value => {\n if (options !== null && options !== void 0 && options.serialize) {\n return options.serialize(value, serialize);\n }\n return serialize(value);\n };\n function normalize(data) {\n var value = serializeData(data);\n if (typeof value === 'undefined') {\n value = data;\n }\n\n // Removes empty strings, so that both empty string, empty file, null and undefined are treated as the same\n if (value === '' || value === null) {\n return undefined;\n }\n if (isGlobalInstance(value, 'File')) {\n // Remove empty File as well, which happens if no File was selected\n if (value.name === '' && value.size === 0) {\n return undefined;\n }\n\n // If the value is a File, no need to serialize it\n return value;\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return undefined;\n }\n var array = value.map(normalize);\n if (array.length === 1 && (typeof array[0] === 'string' || array[0] === undefined)) {\n return array[0];\n }\n return array;\n }\n if (isPlainObject(value)) {\n var entries = Object.entries(value).reduce((list, _ref) => {\n var [key, value] = _ref;\n var normalizedValue = normalize(value);\n if (typeof normalizedValue !== 'undefined') {\n list.push([key, normalizedValue]);\n }\n return list;\n }, []);\n if (entries.length === 0) {\n return undefined;\n }\n return Object.fromEntries(entries);\n }\n return value;\n }\n return !deepEqual(normalize(formValue), normalize(defaultValue));\n}\n\n/**\n * Convert an unknown value into something acceptable for HTML form submission.\n * Returns `undefined` when the value cannot be represented in form data.\n *\n * Input -> Output:\n * - string -> string\n * - null -> '' (empty string)\n * - boolean -> 'on' | '' (checked semantics)\n * - number | bigint -> value.toString()\n * - Date -> value.toISOString()\n * - File -> File\n * - FileList -> File[]\n * - Array -> string[] or File[] if all items serialize to the same kind; otherwise undefined\n * - anything else -> undefined\n */\nfunction serialize(value) {\n function serializePrimitive(value) {\n if (typeof value === 'string' || value === null) {\n return value;\n }\n if (typeof value === 'boolean') {\n return value ? 'on' : '';\n }\n if (typeof value === 'number' || typeof value === 'bigint') {\n return value.toString();\n }\n if (value instanceof Date) {\n return value.toISOString();\n }\n if (isGlobalInstance(value, 'File')) {\n return value;\n }\n }\n if (Array.isArray(value)) {\n var _options = [];\n var files = [];\n for (var item of value) {\n var serialized = serializePrimitive(item);\n if (typeof serialized === 'undefined') {\n return;\n }\n\n // It is unclear what `null` in a file array should mean, so we treat it as a string instead\n if (typeof serialized === 'string' || serialized === null) {\n if (files.length > 0) {\n return;\n }\n _options.push(serialized !== null && serialized !== void 0 ? serialized : '');\n } else {\n if (_options.length > 0) {\n return;\n }\n files.push(serialized);\n }\n }\n if (_options.length === value.length) {\n return _options;\n }\n if (files.length === value.length) {\n return files;\n }\n\n // If not all items are strings or files, return nothing\n }\n if (isGlobalInstance(value, 'FileList')) {\n return Array.from(value);\n }\n return serializePrimitive(value);\n}\n\n/**\n * Retrieve a field value from FormData with optional type guards.\n *\n * @example\n * // Basic field access: return `unknown`\n * const email = getFieldValue(formData, 'email');\n * // String type: returns `string`\n * const name = getFieldValue(formData, 'name', { type: 'string' });\n * // File type: returns `File`\n * const avatar = getFieldValue(formData, 'avatar', { type: 'file' });\n * // Object type: returns { city: unknown, ... }\n * const address = getFieldValue<Address>(formData, 'address', { type: 'object' });\n * // Array: returns `unknown[]`\n * const tags = getFieldValue(formData, 'tags', { array: true });\n * // Array with object type: returns `Array<{ name: unknown, ... }>`\n * const items = getFieldValue<Item[]>(formData, 'items', { type: 'object', array: true });\n * // Optional string type: returns `string | undefined`\n * const bio = getFieldValue(formData, 'bio', { type: 'string', optional: true });\n */\n\nfunction getFieldValue(formData, name, options) {\n var {\n type,\n array,\n optional\n } = options !== null && options !== void 0 ? options : {};\n var value;\n\n // Check if formData has a direct entry\n if (formData.has(name)) {\n // Get value based on array option\n value = array ? formData.getAll(name) : formData.get(name);\n } else {\n // Parse formData and use getValueAtPath\n var _submission = parseSubmission(formData, {\n stripEmptyValues: false\n });\n value = getValueAtPath(_submission.payload, name);\n }\n\n // If optional and value is undefined, skip validation and return early\n if (optional && value === undefined) {\n return;\n }\n\n // Type guards - validate the value matches the expected type\n if (array && !Array.isArray(value)) {\n throw new Error(\"Expected field \\\"\".concat(name, \"\\\" to be an array, but got \").concat(getTypeName(value)));\n }\n if (type) {\n var items = array ? value : [value];\n var predicate = {\n string: v => typeof v === 'string',\n file: v => v instanceof File,\n object: isPlainObject\n }[type];\n var typeName = {\n string: 'a string',\n file: 'a File',\n object: 'an object'\n }[type];\n for (var i = 0; i < items.length; i++) {\n if (!predicate(items[i])) {\n var field = array ? \"\".concat(name, \"[\").concat(i, \"]\") : name;\n throw new Error(\"Expected field \\\"\".concat(field, \"\\\" to be \").concat(typeName, \", but got \").concat(getTypeName(items[i])));\n }\n }\n }\n return value;\n}\n\nexport { DEFAULT_INTENT_NAME, appendPathSegment, formatPathSegments, getFieldValue, getFormData, getPathSegments, getRelativePath, getValueAtPath, isDirty, isPrefix, parseSubmission, report, serialize, setValueAtPath };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { isGlobalInstance } from './dom.mjs';\nimport { appendPathSegment, setValueAtPath, getValueAtPath, isPrefix } from './formdata.mjs';\nimport { isPlainObject, invariant } from './util.mjs';\n\n/**\n * The name to be used when submitting a form control\n */\nvar INTENT = '__intent__';\n\n/**\n * The name to be used when submitting a state\n */\nvar STATE = '__state__';\nfunction getSubmissionContext(body) {\n var intent = body.get(INTENT);\n var state = body.get(STATE);\n invariant((typeof intent === 'string' || intent === null) && (typeof state === 'string' || state === null), \"The input name \\\"\".concat(INTENT, \"\\\" and \\\"\").concat(STATE, \"\\\" are reserved by Conform. Please use another name for your input.\"));\n var context = {\n payload: {},\n fields: new Set(),\n intent: getIntent(intent)\n };\n if (state) {\n context.state = JSON.parse(state);\n }\n var _loop = function _loop(next) {\n if (name === INTENT || name === STATE) {\n return 1; // continue\n }\n context.fields.add(name);\n setValueAtPath(context.payload, name, prev => {\n if (!prev) {\n return next;\n } else if (Array.isArray(prev)) {\n return prev.concat(next);\n } else {\n return [prev, next];\n }\n }, {\n silent: true\n });\n };\n for (var [name, next] of body.entries()) {\n if (_loop(next)) continue;\n }\n return context;\n}\nfunction parse(payload, options) {\n var context = getSubmissionContext(payload);\n var intent = context.intent;\n if (intent) {\n switch (intent.type) {\n case 'update':\n {\n var name = appendPathSegment(intent.payload.name, intent.payload.index);\n var _value = intent.payload.value;\n if (typeof intent.payload.value !== 'undefined') {\n if (name) {\n setValueAtPath(context.payload, name, () => _value);\n } else {\n context.payload = _value;\n }\n }\n break;\n }\n case 'reset':\n {\n var _name = appendPathSegment(intent.payload.name, intent.payload.index);\n if (_name) {\n setValueAtPath(context.payload, _name, () => undefined);\n } else {\n context.payload = {};\n }\n break;\n }\n case 'insert':\n case 'remove':\n case 'reorder':\n {\n setListValue(context.payload, intent);\n break;\n }\n }\n }\n var result = options.resolve(context.payload, intent);\n var mergeResolveResult = resolved => createSubmission(_objectSpread2(_objectSpread2({}, context), {}, {\n value: resolved.value,\n error: resolved.error\n }));\n if (result instanceof Promise) {\n return result.then(mergeResolveResult);\n }\n return mergeResolveResult(result);\n}\nfunction createSubmission(context) {\n if (context.intent || context.error !== undefined) {\n return {\n status: !context.intent ? 'error' : undefined,\n payload: context.payload,\n error: typeof context.error !== 'undefined' ? context.error : {},\n reply(options) {\n return replySubmission(context, options);\n }\n };\n }\n return {\n status: 'success',\n payload: context.payload,\n value: context.value,\n reply(options) {\n return replySubmission(context, options);\n }\n };\n}\nfunction replySubmission(context) {\n var _context$intent, _context$intent$paylo, _options$formErrors, _ref;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if ('resetForm' in options && options.resetForm || ((_context$intent = context.intent) === null || _context$intent === void 0 ? void 0 : _context$intent.type) === 'reset' && ((_context$intent$paylo = context.intent.payload.name) !== null && _context$intent$paylo !== void 0 ? _context$intent$paylo : '') === '') {\n return {\n initialValue: null\n };\n }\n if ('hideFields' in options && options.hideFields) {\n for (var name of options.hideFields) {\n var _value2 = getValueAtPath(context.payload, name);\n if (typeof _value2 !== 'undefined') {\n setValueAtPath(context.payload, name, () => undefined);\n }\n }\n }\n var extraError = 'formErrors' in options || 'fieldErrors' in options ? normalize(_objectSpread2({\n '': (_options$formErrors = options.formErrors) !== null && _options$formErrors !== void 0 ? _options$formErrors : null\n }, options.fieldErrors)) : null;\n var error = context.error || extraError ? _objectSpread2(_objectSpread2({}, context.error), extraError) : undefined;\n var initialValue = (_ref = normalize(context.payload,\n // We can't serialize the file and send it back from the server, but we can preserve it in the client\n typeof document !== 'undefined'\n // We need the file on the client because it's treated as the form value\n // But we will exclude the File type for now as it's only used by the internal\n // form state and we will remove the need to preserve the file on the client soon\n )) !== null && _ref !== void 0 ? _ref : {};\n return {\n status: context.intent ? undefined : error ? 'error' : 'success',\n intent: context.intent ? context.intent : undefined,\n initialValue,\n error,\n state: context.state,\n fields: Array.from(context.fields)\n };\n}\nfunction getIntent(serializedIntent) {\n if (!serializedIntent) {\n return null;\n }\n var control = JSON.parse(serializedIntent);\n if (typeof control.type !== 'string' || typeof control.payload === 'undefined') {\n throw new Error('Unknown form control intent');\n }\n return control;\n}\nfunction serializeIntent(intent) {\n switch (intent.type) {\n case 'insert':\n return JSON.stringify({\n type: intent.type,\n payload: _objectSpread2(_objectSpread2({}, intent.payload), {}, {\n defaultValue: serialize(intent.payload.defaultValue)\n })\n });\n case 'update':\n return JSON.stringify({\n type: intent.type,\n payload: _objectSpread2(_objectSpread2({}, intent.payload), {}, {\n value: serialize(intent.payload.value)\n })\n });\n default:\n return JSON.stringify(intent);\n }\n}\nfunction updateList(list, intent) {\n var _intent$payload$index;\n invariant(Array.isArray(list), \"Failed to update list. The value is not an array.\");\n switch (intent.type) {\n case 'insert':\n list.splice((_intent$payload$index = intent.payload.index) !== null && _intent$payload$index !== void 0 ? _intent$payload$index : list.length, 0, intent.payload.defaultValue);\n break;\n case 'remove':\n list.splice(intent.payload.index, 1);\n break;\n case 'reorder':\n list.splice(intent.payload.to, 0, ...list.splice(intent.payload.from, 1));\n break;\n default:\n throw new Error('Unknown list intent received');\n }\n}\nfunction setListValue(data, intent) {\n setValueAtPath(data, intent.payload.name, value => {\n var list = value !== null && value !== void 0 ? value : [];\n updateList(list, intent);\n return list;\n });\n}\n\n/**\n * A placeholder symbol for the root value of a nested object\n */\nvar root = Symbol.for('root');\nfunction setState(state, name, valueFn) {\n // The keys are sorted in desc so that the root value is handled last\n var keys = Object.keys(state).sort((prev, next) => next.localeCompare(prev));\n var target = {};\n var _loop2 = function _loop2() {\n var value = state[_key];\n if (isPrefix(_key, name) && _key !== name) {\n setValueAtPath(target, _key, currentValue => {\n if (typeof currentValue === 'undefined') {\n return value;\n }\n\n // As the key should be unique, if currentValue is already defined,\n // it must be either an object or an array\n\n // @ts-expect-error\n currentValue[root] = value;\n return currentValue;\n });\n\n // Remove the value from the data\n delete state[_key];\n }\n };\n for (var _key of keys) {\n _loop2();\n }\n var result = valueFn(getValueAtPath(target, name));\n Object.assign(state, flatten(result, {\n resolve(data) {\n if (isPlainObject(data) || Array.isArray(data)) {\n var _data$root;\n // @ts-expect-error\n return (_data$root = data[root]) !== null && _data$root !== void 0 ? _data$root : null;\n }\n return data;\n },\n prefix: name\n }));\n}\nfunction setListState(state, intent, getDefaultValue) {\n setState(state, intent.payload.name, value => {\n var list = value !== null && value !== void 0 ? value : [];\n switch (intent.type) {\n case 'insert':\n updateList(list, {\n type: intent.type,\n payload: _objectSpread2(_objectSpread2({}, intent.payload), {}, {\n defaultValue: getDefaultValue === null || getDefaultValue === void 0 ? void 0 : getDefaultValue(intent.payload.defaultValue)\n })\n });\n break;\n default:\n updateList(list, intent);\n break;\n }\n return list;\n });\n}\nfunction serialize(defaultValue) {\n if (isPlainObject(defaultValue)) {\n // @ts-expect-error FIXME\n return Object.entries(defaultValue).reduce((result, _ref2) => {\n var [key, value] = _ref2;\n result[key] = serialize(value);\n return result;\n }, {});\n } else if (Array.isArray(defaultValue)) {\n // @ts-expect-error FIXME\n return defaultValue.map(serialize);\n } else if (defaultValue instanceof Date) {\n // @ts-expect-error FIXME\n return defaultValue.toISOString();\n } else if (typeof defaultValue === 'boolean') {\n // @ts-expect-error FIXME\n return defaultValue ? 'on' : undefined;\n } else if (typeof defaultValue === 'number' || typeof defaultValue === 'bigint') {\n // @ts-expect-error FIXME\n return defaultValue.toString();\n } else {\n // @ts-expect-error FIXME\n return defaultValue !== null && defaultValue !== void 0 ? defaultValue : undefined;\n }\n}\n\n/**\n * Normalize value by removing empty object or array, empty string and null values\n */\n\nfunction normalize(value) {\n var acceptFile = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (isPlainObject(value)) {\n var obj = Object.keys(value).sort().reduce((result, key) => {\n var data = normalize(value[key], acceptFile);\n if (typeof data !== 'undefined') {\n result[key] = data;\n }\n return result;\n }, {});\n if (Object.keys(obj).length === 0) {\n return;\n }\n return obj;\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return undefined;\n }\n return value.map(item => normalize(item, acceptFile));\n }\n if (typeof value === 'string' && value === '' || value === null || isGlobalInstance(value, 'File') && (!acceptFile || value.size === 0)) {\n return;\n }\n return value;\n}\n\n/**\n * Flatten a tree into a dictionary\n */\nfunction flatten(data) {\n var _options$resolve;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var result = {};\n var resolve = (_options$resolve = options.resolve) !== null && _options$resolve !== void 0 ? _options$resolve : data => data;\n function process(data, prefix) {\n var value = normalize(resolve(data));\n if (typeof value !== 'undefined') {\n result[prefix] = value;\n }\n if (Array.isArray(data)) {\n for (var i = 0; i < data.length; i++) {\n process(data[i], \"\".concat(prefix, \"[\").concat(i, \"]\"));\n }\n } else if (isPlainObject(data)) {\n for (var [_key2, _value3] of Object.entries(data)) {\n process(_value3, prefix ? \"\".concat(prefix, \".\").concat(_key2) : _key2);\n }\n }\n }\n if (data) {\n var _options$prefix;\n process(data, (_options$prefix = options.prefix) !== null && _options$prefix !== void 0 ? _options$prefix : '');\n }\n return result;\n}\n\nexport { INTENT, STATE, createSubmission, flatten, getIntent, getSubmissionContext, normalize, parse, replySubmission, root, serialize, serializeIntent, setListState, setListValue, setState, updateList };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { appendPathSegment, getValueAtPath, isPrefix, setValueAtPath, getFormData, getPathSegments, getRelativePath, formatPathSegments } from './formdata.mjs';\nimport { getFormAction, getFormEncType, getFormMethod, isFieldElement, requestSubmit, isDirtyInput, updateField } from './dom.mjs';\nimport { generateId, clone, isPlainObject, invariant } from './util.mjs';\nimport { serialize, flatten, setListState, setListValue, setState, normalize, INTENT, serializeIntent, root, getSubmissionContext } from './submission.mjs';\n\nfunction createFormMeta(options, isResetting) {\n var _lastResult$initialVa, _options$constraint, _lastResult$state$val, _lastResult$state, _ref;\n var lastResult = !isResetting ? options.lastResult : undefined;\n var defaultValue = options.defaultValue ? serialize(options.defaultValue) : {};\n var initialValue = (_lastResult$initialVa = lastResult === null || lastResult === void 0 ? void 0 : lastResult.initialValue) !== null && _lastResult$initialVa !== void 0 ? _lastResult$initialVa : defaultValue;\n var result = {\n formId: options.formId,\n pendingIntents: isResetting ? [{\n type: 'reset',\n payload: {}\n }] : [],\n isValueUpdated: false,\n submissionStatus: lastResult === null || lastResult === void 0 ? void 0 : lastResult.status,\n defaultValue,\n initialValue,\n value: initialValue,\n constraint: (_options$constraint = options.constraint) !== null && _options$constraint !== void 0 ? _options$constraint : {},\n validated: (_lastResult$state$val = lastResult === null || lastResult === void 0 || (_lastResult$state = lastResult.state) === null || _lastResult$state === void 0 ? void 0 : _lastResult$state.validated) !== null && _lastResult$state$val !== void 0 ? _lastResult$state$val : {},\n key: !isResetting ? getDefaultKey(defaultValue) : _objectSpread2({\n '': generateId()\n }, getDefaultKey(defaultValue)),\n // The `lastResult` should comes from the server which we won't expect the error to be null\n // We can consider adding a warning if it happens\n error: (_ref = lastResult === null || lastResult === void 0 ? void 0 : lastResult.error) !== null && _ref !== void 0 ? _ref : {}\n };\n handleIntent(result, lastResult === null || lastResult === void 0 ? void 0 : lastResult.intent, lastResult === null || lastResult === void 0 ? void 0 : lastResult.fields);\n return result;\n}\nfunction getDefaultKey(defaultValue, prefix) {\n return Object.entries(flatten(defaultValue, {\n prefix\n })).reduce((result, _ref2) => {\n var [key, value] = _ref2;\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n result[appendPathSegment(key, i)] = generateId();\n }\n }\n return result;\n }, {});\n}\nfunction setFieldsValidated(meta, fields) {\n for (var _name of Object.keys(meta.error).concat(fields !== null && fields !== void 0 ? fields : [])) {\n meta.validated[_name] = true;\n }\n}\nfunction handleIntent(meta, intent, fields, initialized) {\n var _fields$filter;\n if (!intent) {\n setFieldsValidated(meta, fields);\n return;\n }\n switch (intent.type) {\n case 'validate':\n {\n if (intent.payload.name) {\n meta.validated[intent.payload.name] = true;\n } else {\n setFieldsValidated(meta, fields);\n }\n break;\n }\n case 'update':\n {\n var {\n validated,\n value\n } = intent.payload;\n var _name2 = appendPathSegment(intent.payload.name, intent.payload.index);\n if (typeof value !== 'undefined') {\n updateValue(meta, _name2 !== null && _name2 !== void 0 ? _name2 : '', value);\n }\n if (typeof validated !== 'undefined') {\n // Clean up previous validated state\n if (_name2) {\n setState(meta.validated, _name2, () => undefined);\n } else {\n meta.validated = {};\n }\n if (validated) {\n if (isPlainObject(value) || Array.isArray(value)) {\n Object.assign(meta.validated, flatten(value, {\n resolve() {\n return true;\n },\n prefix: _name2\n }));\n }\n meta.validated[_name2 !== null && _name2 !== void 0 ? _name2 : ''] = true;\n } else if (_name2) {\n delete meta.validated[_name2];\n }\n }\n break;\n }\n case 'reset':\n {\n var _name3 = appendPathSegment(intent.payload.name, intent.payload.index);\n var _value = getValueAtPath(meta.defaultValue, _name3);\n updateValue(meta, _name3, _value);\n if (_name3) {\n setState(meta.validated, _name3, () => undefined);\n delete meta.validated[_name3];\n } else {\n meta.validated = {};\n }\n break;\n }\n case 'insert':\n case 'remove':\n case 'reorder':\n {\n if (initialized) {\n meta.initialValue = clone(meta.initialValue);\n meta.key = clone(meta.key);\n setListState(meta.key, intent, defaultValue => {\n if (!Array.isArray(defaultValue) && !isPlainObject(defaultValue)) {\n return generateId();\n }\n return Object.assign(getDefaultKey(defaultValue), {\n [root]: generateId()\n });\n });\n setListValue(meta.initialValue, intent);\n }\n setListState(meta.validated, intent);\n meta.validated[intent.payload.name] = true;\n break;\n }\n }\n var validatedFields = (_fields$filter = fields === null || fields === void 0 ? void 0 : fields.filter(name => meta.validated[name])) !== null && _fields$filter !== void 0 ? _fields$filter : [];\n meta.error = Object.entries(meta.error).reduce((result, _ref3) => {\n var [name, error] = _ref3;\n if (meta.validated[name] || validatedFields.some(field => isPrefix(name, field))) {\n result[name] = error;\n }\n return result;\n }, {});\n}\nfunction updateValue(meta, name, value) {\n if (name === '') {\n meta.initialValue = value;\n meta.value = value;\n meta.key = _objectSpread2(_objectSpread2({}, getDefaultKey(value)), {}, {\n '': generateId()\n });\n return;\n }\n meta.initialValue = clone(meta.initialValue);\n meta.value = clone(meta.value);\n meta.key = clone(meta.key);\n setValueAtPath(meta.initialValue, name, () => value);\n setValueAtPath(meta.value, name, () => value);\n if (isPlainObject(value) || Array.isArray(value)) {\n setState(meta.key, name, () => undefined);\n Object.assign(meta.key, getDefaultKey(value, name));\n }\n meta.key[name] = generateId();\n}\nfunction createStateProxy(fn) {\n var cache = {};\n return new Proxy(cache, {\n get(_, name, receiver) {\n var _cache$name;\n if (typeof name !== 'string') {\n return;\n }\n return (_cache$name = cache[name]) !== null && _cache$name !== void 0 ? _cache$name : cache[name] = fn(name, receiver);\n }\n });\n}\nfunction createValueProxy(value) {\n var val = normalize(value);\n return createStateProxy((name, proxy) => {\n if (name === '') {\n return val;\n }\n var path = getPathSegments(name);\n var basename = formatPathSegments(path.slice(0, -1));\n var key = formatPathSegments(path.slice(-1));\n var parentValue = proxy[basename];\n return getValueAtPath(parentValue, key);\n });\n}\nfunction createConstraintProxy(constraint) {\n return createStateProxy((name, proxy) => {\n var _result;\n var result = constraint[name];\n if (!result) {\n var path = getPathSegments(name);\n for (var i = path.length - 1; i >= 0; i--) {\n var segment = path[i];\n\n // Try searching a less specific path for the constraint\n // e.g. `array[0].anotherArray[1].key` -> `array[0].anotherArray[].key` -> `array[].anotherArray[].key`\n if (typeof segment === 'number') {\n // This overrides the current number segment with an empty string\n // which will be treated as an empty bracket\n path[i] = '';\n break;\n }\n }\n var alternative = formatPathSegments(path);\n if (name !== alternative) {\n result = proxy[alternative];\n }\n }\n return (_result = result) !== null && _result !== void 0 ? _result : {};\n });\n}\nfunction createKeyProxy(key) {\n return createStateProxy((name, proxy) => {\n var currentKey = key[name];\n var segments = getPathSegments(name);\n if (segments.length === 0) {\n return currentKey;\n }\n var parentKey = proxy[formatPathSegments(segments.slice(0, -1))];\n if (typeof parentKey === 'undefined') {\n return currentKey;\n }\n return \"\".concat(parentKey, \"/\").concat(currentKey !== null && currentKey !== void 0 ? currentKey : segments.at(-1));\n });\n}\nfunction createValidProxy(error) {\n return createStateProxy(name => {\n var keys = Object.keys(error);\n if (name === '') {\n return keys.length === 0;\n }\n for (var key of keys) {\n if (isPrefix(key, name) && typeof error[key] !== 'undefined') {\n return false;\n }\n }\n return true;\n });\n}\nfunction createDirtyProxy(defaultValue, value, shouldDirtyConsider) {\n return createStateProxy(name => JSON.stringify(defaultValue[name]) !== JSON.stringify(value[name], (key, value) => {\n if (name === '' && key === '' && value) {\n return Object.entries(value).reduce((result, _ref4) => {\n var [name, value] = _ref4;\n if (!shouldDirtyConsider(name)) {\n return result;\n }\n return Object.assign(result !== null && result !== void 0 ? result : {}, {\n [name]: value\n });\n }, undefined);\n }\n return value;\n }));\n}\nfunction shouldNotify(prev, next, cache, scope) {\n var compareFn = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : (prev, next) => JSON.stringify(prev) !== JSON.stringify(next);\n if (scope && prev !== next) {\n var _scope$prefix, _scope$name;\n var prefixes = (_scope$prefix = scope.prefix) !== null && _scope$prefix !== void 0 ? _scope$prefix : [];\n var names = (_scope$name = scope.name) !== null && _scope$name !== void 0 ? _scope$name : [];\n var list = prefixes.length === 0 ? names : Array.from(new Set([...Object.keys(prev), ...Object.keys(next)]));\n var _loop = function _loop(_name4) {\n if (prefixes.length === 0 || names.includes(_name4) || prefixes.some(prefix => isPrefix(_name4, prefix))) {\n var _cache$_name;\n (_cache$_name = cache[_name4]) !== null && _cache$_name !== void 0 ? _cache$_name : cache[_name4] = compareFn(prev[_name4], next[_name4]);\n if (cache[_name4]) {\n return {\n v: true\n };\n }\n }\n },\n _ret;\n for (var _name4 of list) {\n _ret = _loop(_name4);\n if (_ret) return _ret.v;\n }\n }\n return false;\n}\nfunction createFormContext(options) {\n var subscribers = [];\n var latestOptions = options;\n var processedIntents = new Set();\n var meta = createFormMeta(options);\n var state = createFormState(meta);\n function getFormElement() {\n return document.forms.namedItem(latestOptions.formId);\n }\n function createFormState(next) {\n var prev = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : next;\n var state = arguments.length > 2 ? arguments[2] : undefined;\n var defaultValue = !state || prev.defaultValue !== next.defaultValue ? createValueProxy(next.defaultValue) : state.defaultValue;\n var initialValue = next.initialValue === next.defaultValue ? defaultValue : !state || prev.initialValue !== next.initialValue ? createValueProxy(next.initialValue) : state.initialValue;\n var value = next.value === next.initialValue ? initialValue : !state || prev.value !== next.value ? createValueProxy(next.value) : state.value;\n return {\n submissionStatus: next.submissionStatus,\n pendingIntents: next.pendingIntents,\n defaultValue,\n initialValue,\n value,\n error: !state || prev.error !== next.error ? next.error : state.error,\n validated: next.validated,\n constraint: !state || prev.constraint !== next.constraint ? createConstraintProxy(next.constraint) : state.constraint,\n key: !state || prev.key !== next.key ? createKeyProxy(next.key) : state.key,\n valid: !state || prev.error !== next.error ? createValidProxy(next.error) : state.valid,\n dirty: !state || prev.defaultValue !== next.defaultValue || prev.value !== next.value ? createDirtyProxy(defaultValue, value, key => {\n var _latestOptions$should, _latestOptions$should2;\n return (_latestOptions$should = (_latestOptions$should2 = latestOptions.shouldDirtyConsider) === null || _latestOptions$should2 === void 0 ? void 0 : _latestOptions$should2.call(latestOptions, key)) !== null && _latestOptions$should !== void 0 ? _latestOptions$should : true;\n }) : state.dirty\n };\n }\n function updateFormMeta(nextMeta) {\n var prevMeta = meta;\n var prevState = state;\n var nextState = createFormState(nextMeta, prevMeta, prevState);\n\n // Apply change before notifying subscribers\n meta = nextMeta;\n state = nextState;\n var cache = {\n value: {},\n error: {},\n initialValue: {},\n key: {},\n valid: {},\n dirty: {}\n };\n for (var subscriber of subscribers) {\n var _subscriber$getSubjec;\n var subject = (_subscriber$getSubjec = subscriber.getSubject) === null || _subscriber$getSubjec === void 0 ? void 0 : _subscriber$getSubjec.call(subscriber);\n if (!subject || subject.formId && prevMeta.formId !== nextMeta.formId || subject.status && prevState.submissionStatus !== nextState.submissionStatus || subject.pendingIntents && prevMeta.pendingIntents !== nextMeta.pendingIntents || shouldNotify(prevState.error, nextState.error, cache.error, subject.error) || shouldNotify(prevState.initialValue, nextState.initialValue, cache.initialValue, subject.initialValue) || shouldNotify(prevState.key, nextState.key, cache.key, subject.key, (prev, next) => prev !== next) || shouldNotify(prevState.valid, nextState.valid, cache.valid, subject.valid, compareBoolean) || shouldNotify(prevState.dirty, nextState.dirty, cache.dirty, subject.dirty, compareBoolean) || shouldNotify(prevState.value, nextState.value, cache.value, subject.value)) {\n subscriber.callback();\n }\n }\n }\n function compareBoolean() {\n var prev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return prev !== next;\n }\n function getSerializedState() {\n return JSON.stringify({\n validated: meta.validated\n });\n }\n function submit(event) {\n var form = event.target;\n var submitter = event.submitter;\n invariant(form === getFormElement(), \"The submit event is dispatched by form#\".concat(form.id, \" instead of form#\").concat(latestOptions.formId));\n var formData = getFormData(form, submitter);\n var result = {\n formData,\n action: getFormAction(event),\n encType: getFormEncType(event),\n method: getFormMethod(event)\n };\n if (typeof (latestOptions === null || latestOptions === void 0 ? void 0 : latestOptions.onValidate) === 'undefined') {\n return result;\n }\n var submission = latestOptions.onValidate({\n form,\n formData,\n submitter\n });\n if (submission.status === 'success' || submission.error !== null) {\n var _result2 = submission.reply();\n report(_objectSpread2(_objectSpread2({}, _result2), {}, {\n status: _result2.status !== 'success' ? _result2.status : undefined\n }));\n }\n return _objectSpread2(_objectSpread2({}, result), {}, {\n submission\n });\n }\n function resolveTarget(event) {\n var form = getFormElement();\n var element = event.target;\n if (!form || !isFieldElement(element) || element.form !== form || !element.form.isConnected || element.name === '') {\n return null;\n }\n return element;\n }\n function willValidate(element, eventName) {\n var {\n shouldValidate = 'onSubmit',\n shouldRevalidate = shouldValidate\n } = latestOptions;\n var validated = meta.validated[element.name];\n return validated ? shouldRevalidate === eventName && (eventName === 'onInput' || meta.isValueUpdated) : shouldValidate === eventName;\n }\n function updateFormValue(form) {\n var formData = new FormData(form);\n var result = getSubmissionContext(formData);\n updateFormMeta(_objectSpread2(_objectSpread2({}, meta), {}, {\n isValueUpdated: true,\n value: result.payload\n }));\n }\n function onInput(event) {\n var element = resolveTarget(event);\n if (!element || !element.form) {\n return;\n }\n if (event.defaultPrevented || !willValidate(element, 'onInput')) {\n updateFormValue(element.form);\n } else {\n dispatch({\n type: 'validate',\n payload: {\n name: element.name\n }\n });\n }\n }\n function onBlur(event) {\n var element = resolveTarget(event);\n if (!element || event.defaultPrevented || !willValidate(element, 'onBlur')) {\n return;\n }\n dispatch({\n type: 'validate',\n payload: {\n name: element.name\n }\n });\n }\n function reset() {\n processedIntents.clear();\n updateFormMeta(createFormMeta(latestOptions, true));\n }\n function onReset(event) {\n var element = getFormElement();\n if (event.type !== 'reset' || event.target !== element || event.defaultPrevented) {\n return;\n }\n reset();\n }\n function report(result) {\n var _result$error, _result$state;\n var formElement = getFormElement();\n if (!result.initialValue) {\n reset();\n return;\n }\n var error = Object.entries((_result$error = result.error) !== null && _result$error !== void 0 ? _result$error : {}).reduce((result, _ref5) => {\n var [name, newError] = _ref5;\n var error = newError === null ? meta.error[name] : newError;\n if (error) {\n result[name] = error;\n }\n return result;\n }, {});\n var pendingIntents = result.intent ? meta.pendingIntents.filter(intent => !processedIntents.has(intent)).concat(result.intent) : meta.pendingIntents;\n var update = _objectSpread2(_objectSpread2({}, meta), {}, {\n pendingIntents,\n isValueUpdated: false,\n submissionStatus: result.status,\n value: result.initialValue,\n validated: _objectSpread2(_objectSpread2({}, meta.validated), (_result$state = result.state) === null || _result$state === void 0 ? void 0 : _result$state.validated),\n error\n });\n handleIntent(update, result.intent, result.fields, true);\n updateFormMeta(update);\n if (formElement && result.status === 'error') {\n for (var element of formElement.elements) {\n if (isFieldElement(element) && meta.error[element.name]) {\n element.focus();\n break;\n }\n }\n }\n }\n function onUpdate(options) {\n var currentFormId = latestOptions.formId;\n var currentResult = latestOptions.lastResult;\n\n // Merge new options with the latest options\n Object.assign(latestOptions, options);\n if (latestOptions.formId !== currentFormId) {\n reset();\n } else if (options.lastResult && options.lastResult !== currentResult) {\n report(options.lastResult);\n }\n }\n function subscribe(callback, getSubject) {\n var subscriber = {\n callback,\n getSubject\n };\n subscribers.push(subscriber);\n return () => {\n subscribers = subscribers.filter(current => current !== subscriber);\n };\n }\n function getState() {\n return state;\n }\n function dispatch(intent) {\n var form = getFormElement();\n var submitter = document.createElement('button');\n var buttonProps = getControlButtonProps(intent);\n submitter.name = buttonProps.name;\n submitter.value = buttonProps.value;\n submitter.hidden = true;\n submitter.formNoValidate = true;\n form === null || form === void 0 || form.appendChild(submitter);\n requestSubmit(form, submitter);\n form === null || form === void 0 || form.removeChild(submitter);\n }\n function getControlButtonProps(intent) {\n return {\n name: INTENT,\n value: serializeIntent(intent),\n form: latestOptions.formId,\n formNoValidate: true\n };\n }\n function createFormControl(type) {\n var control = function control() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return dispatch({\n type,\n payload\n });\n };\n return Object.assign(control, {\n getButtonProps() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return getControlButtonProps({\n type,\n payload\n });\n }\n });\n }\n function observe() {\n var observer = new MutationObserver(mutations => {\n var form = getFormElement();\n if (!form) {\n return;\n }\n for (var mutation of mutations) {\n var nodes = mutation.type === 'childList' ? [...mutation.addedNodes, ...mutation.removedNodes] : [mutation.target];\n for (var node of nodes) {\n var element = isFieldElement(node) ? node : node instanceof HTMLElement ? node.querySelector('input,select,textarea') : null;\n if ((element === null || element === void 0 ? void 0 : element.form) === form) {\n updateFormValue(form);\n return;\n }\n }\n }\n });\n observer.observe(document, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: ['form', 'name']\n });\n return () => {\n observer.disconnect();\n };\n }\n function runSideEffect(intents) {\n var formElement = getFormElement();\n if (!formElement) {\n return;\n }\n for (var intent of intents) {\n switch (intent.type) {\n case 'update':\n {\n var _name5 = appendPathSegment(intent.payload.name, intent.payload.index);\n var baseSegments = getPathSegments(_name5);\n for (var element of formElement.elements) {\n if (isFieldElement(element)) {\n var paths = getRelativePath(element.name, baseSegments);\n if (paths) {\n var value = getValueAtPath(intent.payload.value, paths);\n var inputValue = typeof value === 'string' || Array.isArray(value) && value.every(item => typeof item === 'string') ? value : undefined;\n if (typeof inputValue !== 'undefined' || _name5 === '' && paths.length > 1) {\n updateField(element, {\n value: inputValue !== null && inputValue !== void 0 ? inputValue : null\n });\n\n // Update the element attribute to notify useControl / useInputControl hook\n element.dataset.conform = generateId();\n }\n }\n }\n }\n break;\n }\n case 'reset':\n {\n var prefix = appendPathSegment(intent.payload.name, intent.payload.index);\n for (var _element of formElement.elements) {\n if (isFieldElement(_element) && _element.name && isPrefix(_element.name, prefix)) {\n var _value2 = getValueAtPath(meta.defaultValue, _element.name);\n var defaultValue = typeof _value2 === 'string' || Array.isArray(_value2) && _value2.every(item => typeof item === 'string') ? _value2 : undefined;\n if (typeof defaultValue === 'undefined' && !_element.dataset.conform && 'defaultValue' in _element && !isDirtyInput(_element)) {\n continue;\n }\n updateField(_element, {\n defaultValue: defaultValue,\n value: defaultValue !== null && defaultValue !== void 0 ? defaultValue : null\n });\n\n // Update the element attribute to notify useControl / useInputControl hook\n _element.dataset.conform = generateId();\n }\n }\n break;\n }\n }\n processedIntents.add(intent);\n }\n }\n return {\n getFormId() {\n return meta.formId;\n },\n submit,\n onReset,\n onInput,\n onBlur,\n onUpdate,\n validate: createFormControl('validate'),\n reset: createFormControl('reset'),\n update: createFormControl('update'),\n insert: createFormControl('insert'),\n remove: createFormControl('remove'),\n reorder: createFormControl('reorder'),\n runSideEffect,\n subscribe,\n getState,\n getSerializedState,\n observe\n };\n}\n\nexport { createFormContext };\n","function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nexport { _defineProperty as defineProperty, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { STATE, formatPaths, getPaths, unstable_createFormContext, INTENT, isPrefix } from '@conform-to/dom';\nimport { useContext, useMemo, createContext, useCallback, useSyncExternalStore, useRef } from 'react';\nimport { jsx } from 'react/jsx-runtime';\n\nvar Form = /*#__PURE__*/createContext([]);\n\n// To hide the FormContext type from the public API\nvar wrappedSymbol = Symbol('wrapped');\nfunction getWrappedFormContext(context) {\n return context[wrappedSymbol];\n}\nfunction useFormContext(formId) {\n var contexts = useContext(Form);\n var form = formId ? contexts.find(context => formId === context.getFormId()) : contexts[0];\n if (!form) {\n throw new Error('Form context is not available');\n }\n return form;\n}\nfunction useFormState(form, subjectRef) {\n var subscribe = useCallback(callback => form.subscribe(callback, () => subjectRef === null || subjectRef === void 0 ? void 0 : subjectRef.current), [form, subjectRef]);\n return useSyncExternalStore(subscribe, form.getState, form.getState);\n}\nfunction FormProvider(props) {\n var forms = useContext(Form);\n var context = getWrappedFormContext(props.context);\n var value = useMemo(() => [context].concat(forms),\n // Put the latest form context first\n [forms, context]);\n return /*#__PURE__*/jsx(Form.Provider, {\n value: value,\n children: props.children\n });\n}\nfunction FormStateInput(props) {\n var context = useFormContext(props.formId);\n return /*#__PURE__*/jsx(\"input\", {\n type: \"hidden\",\n name: STATE,\n value: context.getSerializedState(),\n form: props.formId\n });\n}\nfunction useSubjectRef() {\n var initialSubject = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var subjectRef = useRef(initialSubject);\n\n // Reset the subject everytime the component is rerendered\n // This let us subscribe to data used in the last render only\n subjectRef.current = initialSubject;\n return subjectRef;\n}\nfunction updateSubjectRef(ref, subject, scope, name) {\n if (subject === 'status' || subject === 'formId' || subject === 'pendingIntents') {\n ref.current[subject] = true;\n } else if (typeof scope !== 'undefined' && typeof name !== 'undefined') {\n var _ref$current$subject$, _ref$current$subject;\n ref.current[subject] = _objectSpread2(_objectSpread2({}, ref.current[subject]), {}, {\n [scope]: ((_ref$current$subject$ = (_ref$current$subject = ref.current[subject]) === null || _ref$current$subject === void 0 ? void 0 : _ref$current$subject[scope]) !== null && _ref$current$subject$ !== void 0 ? _ref$current$subject$ : []).concat(name)\n });\n }\n}\nfunction getMetadata(context, subjectRef, stateSnapshot) {\n var name = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var id = name ? \"\".concat(context.getFormId(), \"-\").concat(name) : context.getFormId();\n var state = context.getState();\n return new Proxy({\n id,\n name,\n errorId: \"\".concat(id, \"-error\"),\n descriptionId: \"\".concat(id, \"-description\"),\n get defaultValue() {\n var initialValue = this.initialValue;\n if (typeof initialValue === 'string') {\n return initialValue;\n }\n if (Array.isArray(initialValue)) {\n return initialValue[0];\n }\n },\n get defaultOptions() {\n var initialValue = this.initialValue;\n if (typeof initialValue === 'string') {\n return [initialValue];\n }\n if (Array.isArray(initialValue) && initialValue.every(item => typeof item === 'string')) {\n return initialValue;\n }\n },\n get defaultChecked() {\n if (this.initialValue === 'on') {\n return true;\n }\n },\n get initialValue() {\n return state.initialValue[name];\n },\n get value() {\n return state.value[name];\n },\n get errors() {\n return state.error[name];\n },\n get key() {\n return state.key[name];\n },\n get valid() {\n return state.valid[name];\n },\n get dirty() {\n return state.dirty[name];\n },\n get allErrors() {\n if (name === '') {\n return state.error;\n }\n var result = {};\n for (var [key, error] of Object.entries(state.error)) {\n if (isPrefix(key, name)) {\n result[key] = error;\n }\n }\n return result;\n },\n get getFieldset() {\n return () => new Proxy({}, {\n get(target, key, receiver) {\n if (typeof key === 'string') {\n return getFieldMetadata(context, subjectRef, stateSnapshot, name, key);\n }\n return Reflect.get(target, key, receiver);\n }\n });\n }\n }, {\n get(target, key, receiver) {\n // We want to minize re-render by identifying whether the field is used in a callback only\n // but there is no clear way to know if it is accessed during render or not\n // if the stateSnapshot is not the latest, then it must be accessed in a callback\n if (state === stateSnapshot) {\n switch (key) {\n case 'id':\n case 'errorId':\n case 'descriptionId':\n updateSubjectRef(subjectRef, 'formId');\n break;\n case 'key':\n case 'initialValue':\n case 'value':\n case 'valid':\n case 'dirty':\n updateSubjectRef(subjectRef, key, 'name', name);\n break;\n case 'errors':\n case 'allErrors':\n updateSubjectRef(subjectRef, 'error', key === 'errors' ? 'name' : 'prefix', name);\n break;\n }\n }\n return Reflect.get(target, key, receiver);\n }\n });\n}\nfunction getFieldMetadata(context, subjectRef, stateSnapshot) {\n var prefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var key = arguments.length > 4 ? arguments[4] : undefined;\n var name = typeof key === 'undefined' ? prefix : formatPaths([...getPaths(prefix), key]);\n return new Proxy({}, {\n get(_, key, receiver) {\n var _state$constraint$nam;\n var metadata = getMetadata(context, subjectRef, stateSnapshot, name);\n var state = context.getState();\n switch (key) {\n case 'formId':\n if (state === stateSnapshot) {\n updateSubjectRef(subjectRef, 'formId');\n }\n return context.getFormId();\n case 'required':\n case 'minLength':\n case 'maxLength':\n case 'min':\n case 'max':\n case 'pattern':\n case 'step':\n case 'multiple':\n return (_state$constraint$nam = state.constraint[name]) === null || _state$constraint$nam === void 0 ? void 0 : _state$constraint$nam[key];\n case 'getFieldList':\n {\n return () => {\n var _state$initialValue$n;\n var initialValue = (_state$initialValue$n = state.initialValue[name]) !== null && _state$initialValue$n !== void 0 ? _state$initialValue$n : [];\n if (state === stateSnapshot) {\n updateSubjectRef(subjectRef, 'initialValue', 'name', name);\n }\n if (!Array.isArray(initialValue)) {\n throw new Error('The initial value at the given name is not a list');\n }\n return Array(initialValue.length).fill(0).map((_, index) => getFieldMetadata(context, subjectRef, stateSnapshot, name, index));\n };\n }\n }\n return Reflect.get(metadata, key, receiver);\n }\n });\n}\nfunction getFormMetadata(context, subjectRef, stateSnapshot, noValidate) {\n return new Proxy({}, {\n get(_, key, receiver) {\n var metadata = getMetadata(context, subjectRef, stateSnapshot);\n var state = context.getState();\n switch (key) {\n case 'context':\n return {\n [wrappedSymbol]: context\n };\n case 'status':\n if (state === stateSnapshot) {\n updateSubjectRef(subjectRef, 'status');\n }\n return state.submissionStatus;\n case 'validate':\n case 'update':\n case 'reset':\n case 'insert':\n case 'remove':\n case 'reorder':\n return context[key];\n case 'onSubmit':\n return context.submit;\n case 'noValidate':\n return noValidate;\n }\n return Reflect.get(metadata, key, receiver);\n }\n });\n}\nfunction createFormContext(options) {\n var {\n onSubmit\n } = options;\n var context = unstable_createFormContext(options);\n return _objectSpread2(_objectSpread2({}, context), {}, {\n submit(event) {\n var submitEvent = event.nativeEvent;\n var result = context.submit(submitEvent);\n if (!result.submission || result.submission.status === 'success' || result.submission.error === null) {\n if (!result.formData.has(INTENT)) {\n var _onSubmit;\n (_onSubmit = onSubmit) === null || _onSubmit === void 0 || _onSubmit(event, result);\n }\n } else {\n event.preventDefault();\n }\n },\n onUpdate(options) {\n onSubmit = options.onSubmit;\n context.onUpdate(options);\n }\n });\n}\n\nexport { Form, FormProvider, FormStateInput, createFormContext, getFieldMetadata, getFormMetadata, getMetadata, getWrappedFormContext, updateSubjectRef, useFormContext, useFormState, useSubjectRef };\n","import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { useState, useEffect, useLayoutEffect, useId } from 'react';\nimport { createFormContext, useSubjectRef, useFormState, getFormMetadata, useFormContext, getFieldMetadata } from './context.mjs';\n\nvar _excluded = [\"id\"];\n\n/**\n * useLayoutEffect is client-only.\n * This basically makes it a no-op on server\n */\nvar useSafeLayoutEffect = typeof document === 'undefined' ? useEffect : useLayoutEffect;\nfunction useFormId(preferredId) {\n var id = useId();\n return preferredId !== null && preferredId !== void 0 ? preferredId : id;\n}\nfunction useNoValidate() {\n var defaultNoValidate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var [noValidate, setNoValidate] = useState(defaultNoValidate);\n useSafeLayoutEffect(() => {\n // This is necessary to fix an issue in strict mode with related to our proxy setup\n // It avoids the component from being rerendered without re-rendering the child\n // Which reset the proxy but failed to capture its usage within child component\n if (!noValidate) {\n setNoValidate(true);\n }\n }, [noValidate]);\n return noValidate;\n}\nfunction useForm(options) {\n var {\n id\n } = options,\n formConfig = _objectWithoutProperties(options, _excluded);\n var formId = useFormId(id);\n var [context] = useState(() => createFormContext(_objectSpread2(_objectSpread2({}, formConfig), {}, {\n formId\n })));\n useSafeLayoutEffect(() => {\n var disconnect = context.observe();\n document.addEventListener('input', context.onInput);\n document.addEventListener('focusout', context.onBlur);\n document.addEventListener('reset', context.onReset);\n return () => {\n disconnect();\n document.removeEventListener('input', context.onInput);\n document.removeEventListener('focusout', context.onBlur);\n document.removeEventListener('reset', context.onReset);\n };\n }, [context]);\n useSafeLayoutEffect(() => {\n context.onUpdate(_objectSpread2(_objectSpread2({}, formConfig), {}, {\n formId\n }));\n });\n var subjectRef = useSubjectRef({\n pendingIntents: true\n });\n var stateSnapshot = useFormState(context, subjectRef);\n var noValidate = useNoValidate(options.defaultNoValidate);\n var form = getFormMetadata(context, subjectRef, stateSnapshot, noValidate);\n useEffect(() => {\n context.runSideEffect(stateSnapshot.pendingIntents);\n }, [context, stateSnapshot.pendingIntents]);\n return [form, form.getFieldset()];\n}\nfunction useFormMetadata(formId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var subjectRef = useSubjectRef();\n var context = useFormContext(formId);\n var stateSnapshot = useFormState(context, subjectRef);\n var noValidate = useNoValidate(options.defaultNoValidate);\n return getFormMetadata(context, subjectRef, stateSnapshot, noValidate);\n}\nfunction useField(name) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var subjectRef = useSubjectRef();\n var context = useFormContext(options.formId);\n var stateSnapshot = useFormState(context, subjectRef);\n var field = getFieldMetadata(context, subjectRef, stateSnapshot, name);\n var form = getFormMetadata(context, subjectRef, stateSnapshot, false);\n return [field, form];\n}\n\nexport { useField, useForm, useFormId, useFormMetadata, useNoValidate, useSafeLayoutEffect };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\n\n/**\n * Cleanup `undefined` from the result.\n * To minimize conflicts when merging with user defined props\n */\nfunction simplify(props) {\n for (var key in props) {\n if (props[key] === undefined) {\n delete props[key];\n }\n }\n return props;\n}\n\n/**\n * Derives aria attributes of a form control based on the field metadata.\n */\nfunction getAriaAttributes(metadata) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var field = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (typeof options.ariaAttributes !== 'undefined' && !options.ariaAttributes) {\n return {};\n }\n var invalid = options.ariaInvalid === 'allErrors' ? !metadata.valid : typeof metadata.errors !== 'undefined';\n var ariaDescribedBy = options.ariaDescribedBy;\n return simplify({\n 'aria-invalid': field && invalid || undefined,\n 'aria-describedby': invalid ? \"\".concat(metadata.errorId, \" \").concat(ariaDescribedBy !== null && ariaDescribedBy !== void 0 ? ariaDescribedBy : '').trim() : ariaDescribedBy\n });\n}\n\n/**\n * Derives the properties of a form element based on the form metadata,\n * including `id`, `onSubmit`, `noValidate`, and `aria-describedby`.\n *\n * @example\n * ```tsx\n * <form {...getFormProps(metadata)} />\n * ```\n */\nfunction getFormProps(metadata, options) {\n return simplify(_objectSpread2({\n id: metadata.id,\n onSubmit: metadata.onSubmit,\n noValidate: metadata.noValidate\n }, getAriaAttributes(metadata, options)));\n}\n\n/**\n * Derives the properties of a fieldset element based on the field metadata,\n * including `id`, `name`, `form`, and `aria-describedby`.\n *\n * @example\n * ```tsx\n * <fieldset {...getFieldsetProps(metadata)} />\n * ```\n */\nfunction getFieldsetProps(metadata, options) {\n var field = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return simplify(_objectSpread2({\n id: metadata.id,\n name: metadata.name,\n form: metadata.formId\n }, getAriaAttributes(metadata, options, field)));\n}\n\n/**\n * Derives common properties of a form control based on the field metadata,\n * including `key`, `id`, `name`, `form`, `required`, `autoFocus`, `aria-invalid` and `aria-describedby`.\n */\nfunction getFormControlProps(metadata, options) {\n return simplify(_objectSpread2({\n key: undefined,\n required: metadata.required || undefined\n }, getFieldsetProps(metadata, options, true)));\n}\n\n/**\n * Derives the properties of an input element based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby`\n * and constraint attributes such as `type`, `required`, `minLength`, `maxLength`, `min`, `max`, `step`, `pattern`, `multiple`.\n * Depends on the provided options, it will also set `defaultChecked` / `checked` if it is a checkbox or radio button,\n * or otherwise `defaultValue` / `value`.\n *\n * @see https://conform.guide/api/react/getInputProps\n * @example\n * ```tsx\n * // To setup an uncontrolled input\n * <input {...getInputProps(metadata, { type: 'text' })} />\n * // To setup an uncontrolled checkbox\n * <input {...getInputProps(metadata, { type: 'checkbox' })} />\n * // To setup an input without defaultValue\n * <input {...getInputProps(metadata, { value: false })} />\n * // To setup a radio button without defaultChecked state\n * <input {...getInputProps(metadata, { type: 'radio', value: false })} />\n * ```\n */\nfunction getInputProps(metadata, options) {\n var props = _objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n type: options.type,\n minLength: metadata.minLength,\n maxLength: metadata.maxLength,\n min: metadata.min,\n max: metadata.max,\n step: metadata.step,\n pattern: metadata.pattern,\n multiple: metadata.multiple\n });\n if (typeof options.value === 'undefined' || options.value) {\n if (options.type === 'checkbox' || options.type === 'radio') {\n props.value = typeof options.value === 'string' ? options.value : 'on';\n props.defaultChecked = Array.isArray(metadata.initialValue) ? metadata.initialValue.includes(options.value) : metadata.initialValue === props.value;\n } else if (typeof metadata.initialValue === 'string') {\n props.defaultValue = metadata.initialValue;\n }\n }\n return simplify(props);\n}\n\n/**\n * Derives the properties of a select element based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby`\n * and constraint attributes such as `required` or `multiple`.\n * Depends on the provided options, it will also set `defaultValue` / `value`.\n *\n * @see https://conform.guide/api/react/getSelectProps\n * @example\n * ```tsx\n * // To setup an uncontrolled select\n * <select {...getSelectProps(metadata)} />\n * // To setup a select without defaultValue\n * <select {...getSelectProps(metadata, { value: false })} />\n * ```\n */\nfunction getSelectProps(metadata) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var props = _objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n multiple: metadata.multiple\n });\n if (typeof options.value === 'undefined' || options.value) {\n var _metadata$initialValu;\n props.defaultValue = Array.isArray(metadata.initialValue) ? metadata.initialValue.map(item => \"\".concat(item !== null && item !== void 0 ? item : '')) : (_metadata$initialValu = metadata.initialValue) === null || _metadata$initialValu === void 0 ? void 0 : _metadata$initialValu.toString();\n }\n return simplify(props);\n}\n\n/**\n * Derives the properties of a textarea element based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby`\n * and constraint attributes such as `required`, `minLength` or `maxLength`.\n * Depends on the provided options, it will also set `defaultValue` / `value`.\n *\n * @see https://conform.guide/api/react/getTextareaProps\n * @example\n * ```tsx\n * // To setup an uncontrolled textarea\n * <textarea {...getTextareaProps(metadata)} />\n * // To setup a textarea without defaultValue\n * <textarea {...getTextareaProps(metadata, { value: false })} />\n * ```\n */\nfunction getTextareaProps(metadata) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var props = _objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n minLength: metadata.minLength,\n maxLength: metadata.maxLength\n });\n if (typeof options.value === 'undefined' || options.value) {\n var _metadata$initialValu2;\n props.defaultValue = (_metadata$initialValu2 = metadata.initialValue) === null || _metadata$initialValu2 === void 0 ? void 0 : _metadata$initialValu2.toString();\n }\n return simplify(props);\n}\n\n/**\n * Derives the properties of a collection of checkboxes or radio buttons based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby` and `required`.\n *\n * @see https://conform.guide/api/react/getCollectionProps\n * @example\n * ```tsx\n * <fieldset>\n * {getCollectionProps(metadata, {\n * type: 'checkbox',\n * options: ['a', 'b', 'c']\n * }).map((props) => (\n * <div key={props.key}>\n * <label htmlFor={props.id}>{props.value}</label>\n * <input {...props} />\n * </div>\n * ))}\n * </fieldset>\n * ```\n */\nfunction getCollectionProps(metadata, options) {\n return options.options.map(value => {\n var _metadata$key;\n return simplify(_objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n key: \"\".concat((_metadata$key = metadata.key) !== null && _metadata$key !== void 0 ? _metadata$key : '').concat(value),\n id: \"\".concat(metadata.id, \"-\").concat(value),\n type: options.type,\n value,\n defaultChecked: typeof options.value === 'undefined' || options.value ? options.type === 'checkbox' && Array.isArray(metadata.initialValue) ? metadata.initialValue.includes(value) : metadata.initialValue === value : undefined,\n // The required attribute doesn't make sense for checkbox group\n // As it would require all checkboxes to be checked instead of at least one\n // It is overriden with `undefiend` so it could be cleaned up properly\n required: options.type === 'checkbox' ? undefined : metadata.required\n }));\n });\n}\n\nexport { getAriaAttributes, getCollectionProps, getFieldsetProps, getFormControlProps, getFormProps, getInputProps, getSelectProps, getTextareaProps };\n","function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nexport { _defineProperty as defineProperty, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };\n","/** A special constant with type `never` */\nexport const NEVER = Object.freeze({\n status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n function init(inst, def) {\n var _a;\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod ?? {},\n enumerable: false,\n });\n (_a = inst._zod).traits ?? (_a.traits = new Set());\n inst._zod.traits.add(name);\n initializer(inst, def);\n // support prototype modifications\n for (const k in _.prototype) {\n if (!(k in inst))\n Object.defineProperty(inst, k, { value: _.prototype[k].bind(inst) });\n }\n inst._zod.constr = _;\n inst._zod.def = def;\n }\n // doesn't work if Parent has a constructor with arguments\n const Parent = params?.Parent ?? Object;\n class Definition extends Parent {\n }\n Object.defineProperty(Definition, \"name\", { value: name });\n function _(def) {\n var _a;\n const inst = params?.Parent ? new Definition() : this;\n init(inst, def);\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n for (const fn of inst._zod.deferred) {\n fn();\n }\n return inst;\n }\n Object.defineProperty(_, \"init\", { value: init });\n Object.defineProperty(_, Symbol.hasInstance, {\n value: (inst) => {\n if (params?.Parent && inst instanceof params.Parent)\n return true;\n return inst?._zod?.traits?.has(name);\n },\n });\n Object.defineProperty(_, \"name\", { value: name });\n return _;\n}\n////////////////////////////// UTILITIES ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n constructor() {\n super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n if (newConfig)\n Object.assign(globalConfig, newConfig);\n return globalConfig;\n}\n","// functions\nexport function assertEqual(val) {\n return val;\n}\nexport function assertNotEqual(val) {\n return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n throw new Error();\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n const values = Object.entries(entries)\n .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n .map(([_, v]) => v);\n return values;\n}\nexport function joinValues(array, separator = \"|\") {\n return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n if (typeof value === \"bigint\")\n return value.toString();\n return value;\n}\nexport function cached(getter) {\n const set = false;\n return {\n get value() {\n if (!set) {\n const value = getter();\n Object.defineProperty(this, \"value\", { value });\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n };\n}\nexport function nullish(input) {\n return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport function defineLazy(object, key, getter) {\n const set = false;\n Object.defineProperty(object, key, {\n get() {\n if (!set) {\n const value = getter();\n object[key] = value;\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n set(v) {\n Object.defineProperty(object, key, {\n value: v,\n // configurable: true,\n });\n // object[key] = v;\n },\n configurable: true,\n });\n}\nexport function assignProp(target, prop, value) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n}\nexport function getElementAtPath(obj, path) {\n if (!path)\n return obj;\n return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n const keys = Object.keys(promisesObj);\n const promises = keys.map((key) => promisesObj[key]);\n return Promise.all(promises).then((results) => {\n const resolvedObj = {};\n for (let i = 0; i < keys.length; i++) {\n resolvedObj[keys[i]] = results[i];\n }\n return resolvedObj;\n });\n}\nexport function randomString(length = 10) {\n const chars = \"abcdefghijklmnopqrstuvwxyz\";\n let str = \"\";\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * chars.length)];\n }\n return str;\n}\nexport function esc(str) {\n return JSON.stringify(str);\n}\nexport const captureStackTrace = Error.captureStackTrace\n ? Error.captureStackTrace\n : (..._args) => { };\nexport function isObject(data) {\n return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n return false;\n }\n try {\n const F = Function;\n new F(\"\");\n return true;\n }\n catch (_) {\n return false;\n }\n});\nexport function isPlainObject(o) {\n if (isObject(o) === false)\n return false;\n // modified constructor\n const ctor = o.constructor;\n if (ctor === undefined)\n return true;\n // modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false)\n return false;\n // ctor doesn't have static `isPrototypeOf`\n if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nexport function numKeys(data) {\n let keyCount = 0;\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n keyCount++;\n }\n }\n return keyCount;\n}\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isNaN(data) ? \"nan\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"function\":\n return \"function\";\n case \"bigint\":\n return \"bigint\";\n case \"symbol\":\n return \"symbol\";\n case \"object\":\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return \"promise\";\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return \"map\";\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return \"set\";\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return \"date\";\n }\n if (typeof File !== \"undefined\" && data instanceof File) {\n return \"file\";\n }\n return \"object\";\n default:\n throw new Error(`Unknown data type: ${t}`);\n }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n const cl = new inst._zod.constr(def ?? inst._zod.def);\n if (!def || params?.parent)\n cl._zod.parent = inst;\n return cl;\n}\nexport function normalizeParams(_params) {\n const params = _params;\n if (!params)\n return {};\n if (typeof params === \"string\")\n return { error: () => params };\n if (params?.message !== undefined) {\n if (params?.error !== undefined)\n throw new Error(\"Cannot specify both `message` and `error` params\");\n params.error = params.message;\n }\n delete params.message;\n if (typeof params.error === \"string\")\n return { ...params, error: () => params.error };\n return params;\n}\nexport function createTransparentProxy(getter) {\n let target;\n return new Proxy({}, {\n get(_, prop, receiver) {\n target ?? (target = getter());\n return Reflect.get(target, prop, receiver);\n },\n set(_, prop, value, receiver) {\n target ?? (target = getter());\n return Reflect.set(target, prop, value, receiver);\n },\n has(_, prop) {\n target ?? (target = getter());\n return Reflect.has(target, prop);\n },\n deleteProperty(_, prop) {\n target ?? (target = getter());\n return Reflect.deleteProperty(target, prop);\n },\n ownKeys(_) {\n target ?? (target = getter());\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(_, prop) {\n target ?? (target = getter());\n return Reflect.getOwnPropertyDescriptor(target, prop);\n },\n defineProperty(_, prop, descriptor) {\n target ?? (target = getter());\n return Reflect.defineProperty(target, prop, descriptor);\n },\n });\n}\nexport function stringifyPrimitive(value) {\n if (typeof value === \"bigint\")\n return value.toString() + \"n\";\n if (typeof value === \"string\")\n return `\"${value}\"`;\n return `${value}`;\n}\nexport function optionalKeys(shape) {\n return Object.keys(shape).filter((k) => {\n return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n });\n}\nexport const NUMBER_FORMAT_RANGES = {\n safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n int32: [-2147483648, 2147483647],\n uint32: [0, 4294967295],\n float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n const newShape = {};\n const currDef = schema._zod.def; //.shape;\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // pick key\n newShape[key] = currDef.shape[key];\n }\n return clone(schema, {\n ...schema._zod.def,\n shape: newShape,\n checks: [],\n });\n}\nexport function omit(schema, mask) {\n const newShape = { ...schema._zod.def.shape };\n const currDef = schema._zod.def; //.shape;\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n delete newShape[key];\n }\n return clone(schema, {\n ...schema._zod.def,\n shape: newShape,\n checks: [],\n });\n}\nexport function extend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to extend: expected a plain object\");\n }\n const def = {\n ...schema._zod.def,\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n checks: [], // delete existing checks\n };\n return clone(schema, def);\n}\nexport function merge(a, b) {\n return clone(a, {\n ...a._zod.def,\n get shape() {\n const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n catchall: b._zod.def.catchall,\n checks: [], // delete existing checks\n });\n}\nexport function partial(Class, schema, mask) {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in oldShape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n else {\n for (const key in oldShape) {\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n return clone(schema, {\n ...schema._zod.def,\n shape,\n checks: [],\n });\n}\nexport function required(Class, schema, mask) {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n else {\n for (const key in oldShape) {\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n return clone(schema, {\n ...schema._zod.def,\n shape,\n // optional: [],\n checks: [],\n });\n}\nexport function aborted(x, startIndex = 0) {\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue !== true)\n return true;\n }\n return false;\n}\nexport function prefixIssues(path, issues) {\n return issues.map((iss) => {\n var _a;\n (_a = iss).path ?? (_a.path = []);\n iss.path.unshift(path);\n return iss;\n });\n}\nexport function unwrapMessage(message) {\n return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n const full = { ...iss, path: iss.path ?? [] };\n // for backwards compatibility\n if (!iss.message) {\n const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n unwrapMessage(ctx?.error?.(iss)) ??\n unwrapMessage(config.customError?.(iss)) ??\n unwrapMessage(config.localeError?.(iss)) ??\n \"Invalid input\";\n full.message = message;\n }\n // delete (full as any).def;\n delete full.inst;\n delete full.continue;\n if (!ctx?.reportInput) {\n delete full.input;\n }\n return full;\n}\nexport function getSizableOrigin(input) {\n if (input instanceof Set)\n return \"set\";\n if (input instanceof Map)\n return \"map\";\n if (input instanceof File)\n return \"file\";\n return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n if (Array.isArray(input))\n return \"array\";\n if (typeof input === \"string\")\n return \"string\";\n return \"unknown\";\n}\nexport function issue(...args) {\n const [iss, input, inst] = args;\n if (typeof iss === \"string\") {\n return {\n message: iss,\n code: \"custom\",\n input,\n inst,\n };\n }\n return { ...iss };\n}\nexport function cleanEnum(obj) {\n return Object.entries(obj)\n .filter(([k, _]) => {\n // return true if NaN, meaning it's not a number, thus a string key\n return Number.isNaN(Number.parseInt(k, 10));\n })\n .map((el) => el[1]);\n}\n// instanceof\nexport class Class {\n constructor(..._args) { }\n}\n","import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n inst.name = \"$ZodError\";\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod,\n enumerable: false,\n });\n Object.defineProperty(inst, \"issues\", {\n value: def,\n enumerable: false,\n });\n Object.defineProperty(inst, \"message\", {\n get() {\n return JSON.stringify(def, util.jsonStringifyReplacer, 2);\n },\n enumerable: true,\n // configurable: false,\n });\n Object.defineProperty(inst, \"toString\", {\n value: () => inst.message,\n enumerable: false,\n });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of error.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n}\nexport function formatError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n issue.errors.map((issues) => processError({ issues }));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues });\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues });\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(error);\n return fieldErrors;\n}\nexport function treeifyError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const result = { errors: [] };\n const processError = (error, path = []) => {\n var _a, _b;\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n // regular union error\n issue.errors.map((issues) => processError({ issues }, issue.path));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n result.errors.push(mapper(issue));\n continue;\n }\n let curr = result;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n if (typeof el === \"string\") {\n curr.properties ?? (curr.properties = {});\n (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n curr = curr.properties[el];\n }\n else {\n curr.items ?? (curr.items = []);\n (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n curr = curr.items[el];\n }\n if (terminal) {\n curr.errors.push(mapper(issue));\n }\n i++;\n }\n }\n }\n };\n processError(error);\n return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n * issues: [\n * {\n * expected: 'string',\n * code: 'invalid_type',\n * path: [ 'username' ],\n * message: 'Invalid input: expected string'\n * },\n * {\n * expected: 'number',\n * code: 'invalid_type',\n * path: [ 'favoriteNumbers', 1 ],\n * message: 'Invalid input: expected number'\n * }\n * ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n * ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n * ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(path) {\n const segs = [];\n for (const seg of path) {\n if (typeof seg === \"number\")\n segs.push(`[${seg}]`);\n else if (typeof seg === \"symbol\")\n segs.push(`[${JSON.stringify(String(seg))}]`);\n else if (/[^\\w$]/.test(seg))\n segs.push(`[${JSON.stringify(seg)}]`);\n else {\n if (segs.length)\n segs.push(\".\");\n segs.push(seg);\n }\n }\n return segs.join(\"\");\n}\nexport function prettifyError(error) {\n const lines = [];\n // sort by path length\n const issues = [...error.issues].sort((a, b) => a.path.length - b.path.length);\n // Process each issue\n for (const issue of issues) {\n lines.push(`✖ ${issue.message}`);\n if (issue.path?.length)\n lines.push(` → at ${toDotPath(issue.path)}`);\n }\n // Convert Map to formatted string\n return lines.join(\"\\n\");\n}\n","import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n if (result.issues.length) {\n const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, _params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n if (result.issues.length) {\n const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n return result.issues.length\n ? {\n success: false,\n error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n return result.issues.length\n ? {\n success: false,\n error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\n","export const version = {\n major: 4,\n minor: 0,\n patch: 0,\n};\n","import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n var _a;\n inst ?? (inst = {});\n inst._zod.def = def; // set _def property\n inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n inst._zod.version = version;\n const checks = [...(inst._zod.def.checks ?? [])];\n // if inst is itself a checks.$ZodCheck, run it as a check\n if (inst._zod.traits.has(\"$ZodCheck\")) {\n checks.unshift(inst);\n }\n //\n for (const ch of checks) {\n for (const fn of ch._zod.onattach) {\n fn(inst);\n }\n }\n if (checks.length === 0) {\n // deferred initializer\n // inst._zod.parse is not yet defined\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n inst._zod.deferred?.push(() => {\n inst._zod.run = inst._zod.parse;\n });\n }\n else {\n const runChecks = (payload, checks, ctx) => {\n let isAborted = util.aborted(payload);\n let asyncResult;\n for (const ch of checks) {\n if (ch._zod.def.when) {\n const shouldRun = ch._zod.def.when(payload);\n if (!shouldRun)\n continue;\n }\n else if (isAborted) {\n continue;\n }\n const currLen = payload.issues.length;\n const _ = ch._zod.check(payload);\n if (_ instanceof Promise && ctx?.async === false) {\n throw new core.$ZodAsyncError();\n }\n if (asyncResult || _ instanceof Promise) {\n asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n await _;\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n return;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n });\n }\n else {\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n continue;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n }\n }\n if (asyncResult) {\n return asyncResult.then(() => {\n return payload;\n });\n }\n return payload;\n };\n inst._zod.run = (payload, ctx) => {\n const result = inst._zod.parse(payload, ctx);\n if (result instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return result.then((result) => runChecks(result, checks, ctx));\n }\n return runChecks(result, checks, ctx);\n };\n }\n inst[\"~standard\"] = {\n validate: (value) => {\n try {\n const r = safeParse(inst, value);\n return r.success ? { value: r.data } : { issues: r.error?.issues };\n }\n catch (_) {\n return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n }\n },\n vendor: \"zod\",\n version: 1,\n };\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n inst._zod.parse = (payload, _) => {\n if (def.coerce)\n try {\n payload.value = String(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"string\")\n return payload;\n payload.issues.push({\n expected: \"string\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n // check initialization must come first\n checks.$ZodCheckStringFormat.init(inst, def);\n $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.guid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n if (def.version) {\n const versionMap = {\n v1: 1,\n v2: 2,\n v3: 3,\n v4: 4,\n v5: 5,\n v6: 6,\n v7: 7,\n v8: 8,\n };\n const v = versionMap[def.version];\n if (v === undefined)\n throw new Error(`Invalid UUID version: \"${def.version}\"`);\n def.pattern ?? (def.pattern = regexes.uuid(v));\n }\n else\n def.pattern ?? (def.pattern = regexes.uuid());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.email);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n try {\n const orig = payload.value;\n const url = new URL(orig);\n const href = url.href;\n if (def.hostname) {\n def.hostname.lastIndex = 0;\n if (!def.hostname.test(url.hostname)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid hostname\",\n pattern: regexes.hostname.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n if (def.protocol) {\n def.protocol.lastIndex = 0;\n if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid protocol\",\n pattern: def.protocol.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n // payload.value = url.href;\n if (!orig.endsWith(\"/\") && href.endsWith(\"/\")) {\n payload.value = href.slice(0, -1);\n }\n else {\n payload.value = href;\n }\n return;\n }\n catch (_) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.emoji());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.nanoid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid2);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ulid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.xid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ksuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.datetime(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.date);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.time(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.duration);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv4);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv4`;\n });\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv6);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv6`;\n });\n inst._zod.check = (payload) => {\n try {\n new URL(`http://[${payload.value}]`);\n // return;\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"ipv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv4);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n const [address, prefix] = payload.value.split(\"/\");\n try {\n if (!prefix)\n throw new Error();\n const prefixNum = Number(prefix);\n if (`${prefixNum}` !== prefix)\n throw new Error();\n if (prefixNum < 0 || prefixNum > 128)\n throw new Error();\n new URL(`http://[${address}]`);\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"cidrv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64(data) {\n if (data === \"\")\n return true;\n if (data.length % 4 !== 0)\n return false;\n try {\n atob(data);\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64URL(data) {\n if (!regexes.base64url.test(data))\n return false;\n const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64url);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64url\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64URL(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.e164);\n $ZodStringFormat.init(inst, def);\n});\n////////////////////////////// ZodJWT //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n try {\n const tokensParts = token.split(\".\");\n if (tokensParts.length !== 3)\n return false;\n const [header] = tokensParts;\n if (!header)\n return false;\n const parsedHeader = JSON.parse(atob(header));\n if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n return false;\n if (!parsedHeader.alg)\n return false;\n if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidJWT(payload.value, def.alg))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"jwt\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (def.fn(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Number(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n return payload;\n }\n const received = typeof input === \"number\"\n ? Number.isNaN(input)\n ? \"NaN\"\n : !Number.isFinite(input)\n ? \"Infinity\"\n : undefined\n : undefined;\n payload.issues.push({\n expected: \"number\",\n code: \"invalid_type\",\n input,\n inst,\n ...(received ? { received } : {}),\n });\n return payload;\n };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n checks.$ZodCheckNumberFormat.init(inst, def);\n $ZodNumber.init(inst, def); // no format checksp\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.boolean;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Boolean(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"boolean\")\n return payload;\n payload.issues.push({\n expected: \"boolean\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.bigint;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = BigInt(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"bigint\")\n return payload;\n payload.issues.push({\n expected: \"bigint\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n checks.$ZodCheckBigIntFormat.init(inst, def);\n $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"symbol\")\n return payload;\n payload.issues.push({\n expected: \"symbol\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.undefined;\n inst._zod.values = new Set([undefined]);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"undefined\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.null;\n inst._zod.values = new Set([null]);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input === null)\n return payload;\n payload.issues.push({\n expected: \"null\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.issues.push({\n expected: \"never\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"void\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce) {\n try {\n payload.value = new Date(payload.value);\n }\n catch (_err) { }\n }\n const input = payload.value;\n const isDate = input instanceof Date;\n const isValidDate = isDate && !Number.isNaN(input.getTime());\n if (isValidDate)\n return payload;\n payload.issues.push({\n expected: \"date\",\n code: \"invalid_type\",\n input,\n ...(isDate ? { received: \"Invalid Date\" } : {}),\n inst,\n });\n return payload;\n };\n});\nfunction handleArrayResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n expected: \"array\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = Array(input.length);\n const proms = [];\n for (let i = 0; i < input.length; i++) {\n const item = input[i];\n const result = def.element._zod.run({\n value: item,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n }\n else {\n handleArrayResult(result, payload, i);\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload; //handleArrayResultsAsync(parseResults, final);\n };\n});\nfunction handleObjectResult(result, final, key) {\n // if(isOptional)\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n final.value[key] = result.value;\n}\nfunction handleOptionalObjectResult(result, final, key, input) {\n if (result.issues.length) {\n // validation failed against value schema\n if (input[key] === undefined) {\n // if input was undefined, ignore the error\n if (key in input) {\n final.value[key] = undefined;\n }\n else {\n final.value[key] = result.value;\n }\n }\n else {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n }\n else if (result.value === undefined) {\n // validation returned `undefined`\n if (key in input)\n final.value[key] = undefined;\n }\n else {\n // non-undefined value\n final.value[key] = result.value;\n }\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodType.init(inst, def);\n const _normalized = util.cached(() => {\n const keys = Object.keys(def.shape);\n for (const k of keys) {\n if (!(def.shape[k] instanceof $ZodType)) {\n throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n }\n }\n const okeys = util.optionalKeys(def.shape);\n return {\n shape: def.shape,\n keys,\n keySet: new Set(keys),\n numKeys: keys.length,\n optionalKeys: new Set(okeys),\n };\n });\n util.defineLazy(inst._zod, \"propValues\", () => {\n const shape = def.shape;\n const propValues = {};\n for (const key in shape) {\n const field = shape[key]._zod;\n if (field.values) {\n propValues[key] ?? (propValues[key] = new Set());\n for (const v of field.values)\n propValues[key].add(v);\n }\n }\n return propValues;\n });\n const generateFastpass = (shape) => {\n const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n const normalized = _normalized.value;\n const parseStr = (key) => {\n const k = util.esc(key);\n return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n };\n doc.write(`const input = payload.value;`);\n const ids = Object.create(null);\n let counter = 0;\n for (const key of normalized.keys) {\n ids[key] = `key_${counter++}`;\n }\n // A: preserve key order {\n doc.write(`const newResult = {}`);\n for (const key of normalized.keys) {\n if (normalized.optionalKeys.has(key)) {\n const id = ids[key];\n doc.write(`const ${id} = ${parseStr(key)};`);\n const k = util.esc(key);\n doc.write(`\n if (${id}.issues.length) {\n if (input[${k}] === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n payload.issues = payload.issues.concat(\n ${id}.issues.map((iss) => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}],\n }))\n );\n }\n } else if (${id}.value === undefined) {\n if (${k} in input) newResult[${k}] = undefined;\n } else {\n newResult[${k}] = ${id}.value;\n }\n `);\n }\n else {\n const id = ids[key];\n // const id = ids[key];\n doc.write(`const ${id} = ${parseStr(key)};`);\n doc.write(`\n if (${id}.issues.length) payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${util.esc(key)}, ...iss.path] : [${util.esc(key)}]\n })));`);\n doc.write(`newResult[${util.esc(key)}] = ${id}.value`);\n }\n }\n doc.write(`payload.value = newResult;`);\n doc.write(`return payload;`);\n const fn = doc.compile();\n return (payload, ctx) => fn(shape, payload, ctx);\n };\n let fastpass;\n const isObject = util.isObject;\n const jit = !core.globalConfig.jitless;\n const allowsEval = util.allowsEval;\n const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n // always synchronous\n if (!fastpass)\n fastpass = generateFastpass(def.shape);\n payload = fastpass(payload, ctx);\n }\n else {\n payload.value = {};\n const shape = value.shape;\n for (const key of value.keys) {\n const el = shape[key];\n // do not add omitted optional keys\n // if (!(key in input)) {\n // if (optionalKeys.has(key)) continue;\n // payload.issues.push({\n // code: \"invalid_type\",\n // path: [key],\n // expected: \"nonoptional\",\n // note: `Missing required key: \"${key}\"`,\n // input,\n // inst,\n // });\n // }\n const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n const isOptional = el._zod.optin === \"optional\" && el._zod.optout === \"optional\";\n if (r instanceof Promise) {\n proms.push(r.then((r) => isOptional ? handleOptionalObjectResult(r, payload, key, input) : handleObjectResult(r, payload, key)));\n }\n else if (isOptional) {\n handleOptionalObjectResult(r, payload, key, input);\n }\n else {\n handleObjectResult(r, payload, key);\n }\n }\n }\n if (!catchall) {\n // return payload;\n return proms.length ? Promise.all(proms).then(() => payload) : payload;\n }\n const unrecognized = [];\n // iterate over input keys\n const keySet = value.keySet;\n const _catchall = catchall._zod;\n const t = _catchall.def.type;\n for (const key of Object.keys(input)) {\n if (keySet.has(key))\n continue;\n if (t === \"never\") {\n unrecognized.push(key);\n continue;\n }\n const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handleObjectResult(r, payload, key)));\n }\n else {\n handleObjectResult(r, payload, key);\n }\n }\n if (unrecognized.length) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n keys: unrecognized,\n input,\n inst,\n });\n }\n if (!proms.length)\n return payload;\n return Promise.all(proms).then(() => {\n return payload;\n });\n };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n for (const result of results) {\n if (result.issues.length === 0) {\n final.value = result.value;\n return final;\n }\n }\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"values\", () => {\n if (def.options.every((o) => o._zod.values)) {\n return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n }\n return undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n if (def.options.every((o) => o._zod.pattern)) {\n const patterns = def.options.map((o) => o._zod.pattern);\n return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n }\n return undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n if (result.issues.length === 0)\n return result;\n results.push(result);\n }\n }\n if (!async)\n return handleUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleUnionResults(results, payload, inst, ctx);\n });\n };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n $ZodUnion.init(inst, def);\n const _super = inst._zod.parse;\n util.defineLazy(inst._zod, \"propValues\", () => {\n const propValues = {};\n for (const option of def.options) {\n const pv = option._zod.propValues;\n if (!pv || Object.keys(pv).length === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n for (const [k, v] of Object.entries(pv)) {\n if (!propValues[k])\n propValues[k] = new Set();\n for (const val of v) {\n propValues[k].add(val);\n }\n }\n }\n return propValues;\n });\n const disc = util.cached(() => {\n const opts = def.options;\n const map = new Map();\n for (const o of opts) {\n const values = o._zod.propValues[def.discriminator];\n if (!values || values.size === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n for (const v of values) {\n if (map.has(v)) {\n throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n }\n map.set(v, o);\n }\n }\n return map;\n });\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isObject(input)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"object\",\n input,\n inst,\n });\n return payload;\n }\n const opt = disc.value.get(input?.[def.discriminator]);\n if (opt) {\n return opt._zod.run(payload, ctx);\n }\n if (def.unionFallback) {\n return _super(payload, ctx);\n }\n // no matching discriminator\n payload.issues.push({\n code: \"invalid_union\",\n errors: [],\n note: \"No matching discriminator\",\n input,\n path: [def.discriminator],\n inst,\n });\n return payload;\n };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n const async = left instanceof Promise || right instanceof Promise;\n if (async) {\n return Promise.all([left, right]).then(([left, right]) => {\n return handleIntersectionResults(payload, left, right);\n });\n }\n return handleIntersectionResults(payload, left, right);\n };\n});\nfunction mergeValues(a, b) {\n // const aType = parse.t(a);\n // const bType = parse.t(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n if (a instanceof Date && b instanceof Date && +a === +b) {\n return { valid: true, data: a };\n }\n if (util.isPlainObject(a) && util.isPlainObject(b)) {\n const bKeys = Object.keys(b);\n const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return { valid: false, mergeErrorPath: [] };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n if (left.issues.length) {\n result.issues.push(...left.issues);\n }\n if (right.issues.length) {\n result.issues.push(...right.issues);\n }\n if (util.aborted(result))\n return result;\n const merged = mergeValues(left.value, right.value);\n if (!merged.valid) {\n throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n }\n result.value = merged.data;\n return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n $ZodType.init(inst, def);\n const items = def.items;\n const optStart = items.length - [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n input,\n inst,\n expected: \"tuple\",\n code: \"invalid_type\",\n });\n return payload;\n }\n payload.value = [];\n const proms = [];\n if (!def.rest) {\n const tooBig = input.length > items.length;\n const tooSmall = input.length < optStart - 1;\n if (tooBig || tooSmall) {\n payload.issues.push({\n input,\n inst,\n origin: \"array\",\n ...(tooBig ? { code: \"too_big\", maximum: items.length } : { code: \"too_small\", minimum: items.length }),\n });\n return payload;\n }\n }\n let i = -1;\n for (const item of items) {\n i++;\n if (i >= input.length)\n if (i >= optStart)\n continue;\n const result = item._zod.run({\n value: input[i],\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n if (def.rest) {\n const rest = input.slice(items.length);\n for (const el of rest) {\n i++;\n const result = def.rest._zod.run({\n value: el,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleTupleResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isPlainObject(input)) {\n payload.issues.push({\n expected: \"record\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (def.keyType._zod.values) {\n const values = def.keyType._zod.values;\n payload.value = {};\n for (const key of values) {\n if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }\n }\n }\n let unrecognized;\n for (const key in input) {\n if (!values.has(key)) {\n unrecognized = unrecognized ?? [];\n unrecognized.push(key);\n }\n }\n if (unrecognized && unrecognized.length > 0) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n input,\n inst,\n keys: unrecognized,\n });\n }\n }\n else {\n payload.value = {};\n for (const key of Reflect.ownKeys(input)) {\n if (key === \"__proto__\")\n continue;\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (keyResult.issues.length) {\n payload.issues.push({\n origin: \"record\",\n code: \"invalid_key\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n payload.value[keyResult.value] = keyResult.value;\n continue;\n }\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload;\n };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Map)) {\n payload.issues.push({\n expected: \"map\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n payload.value = new Map();\n for (const [key, value] of input) {\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n if (keyResult instanceof Promise || valueResult instanceof Promise) {\n proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }));\n }\n else {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n if (keyResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, keyResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_key\",\n input,\n inst,\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n if (valueResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, valueResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_element\",\n input,\n inst,\n key: key,\n issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Set)) {\n payload.issues.push({\n input,\n inst,\n expected: \"set\",\n code: \"invalid_type\",\n });\n return payload;\n }\n const proms = [];\n payload.value = new Set();\n for (const item of input) {\n const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleSetResult(result, payload)));\n }\n else\n handleSetResult(result, payload);\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleSetResult(result, final) {\n if (result.issues.length) {\n final.issues.push(...result.issues);\n }\n final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n $ZodType.init(inst, def);\n const values = util.getEnumValues(def.entries);\n inst._zod.values = new Set(values);\n inst._zod.pattern = new RegExp(`^(${values\n .filter((k) => util.propertyKeyTypes.has(typeof k))\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.values = new Set(def.values);\n inst._zod.pattern = new RegExp(`^(${def.values\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? o.toString() : String(o)))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values: def.values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input instanceof File)\n return payload;\n payload.issues.push({\n expected: \"file\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const _out = def.transform(payload.value, payload);\n if (_ctx.async) {\n const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n if (_out instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n payload.value = _out;\n return payload;\n };\n});\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (def.innerType._zod.optin === \"optional\") {\n return def.innerType._zod.run(payload, ctx);\n }\n if (payload.value === undefined) {\n return payload;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n });\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === null)\n return payload;\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n $ZodType.init(inst, def);\n // inst._zod.qin = \"true\";\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n /**\n * $ZodDefault always returns the default value immediately.\n * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe. */\n return payload;\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleDefaultResult(result, def));\n }\n return handleDefaultResult(result, def);\n };\n});\nfunction handleDefaultResult(payload, def) {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => {\n const v = def.innerType._zod.values;\n return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleNonOptionalResult(result, inst));\n }\n return handleNonOptionalResult(result, inst);\n };\n});\nfunction handleNonOptionalResult(payload, inst) {\n if (!payload.issues.length && payload.value === undefined) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: payload.value,\n inst,\n });\n }\n return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.issues.length === 0;\n return payload;\n });\n }\n payload.value = result.issues.length === 0;\n return payload;\n };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n });\n }\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"nan\",\n code: \"invalid_type\",\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handlePipeResult(left, def, ctx));\n }\n return handlePipeResult(left, def, ctx);\n };\n});\nfunction handlePipeResult(left, def, ctx) {\n if (util.aborted(left)) {\n return left;\n }\n return def.out._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then(handleReadonlyResult);\n }\n return handleReadonlyResult(result);\n };\n});\nfunction handleReadonlyResult(payload) {\n payload.value = Object.freeze(payload.value);\n return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n const regexParts = [];\n for (const part of def.parts) {\n if (part instanceof $ZodType) {\n if (!part._zod.pattern) {\n // if (!source)\n throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n }\n const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n if (!source)\n throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n regexParts.push(source.slice(start, end));\n }\n else if (part === null || util.primitiveTypes.has(typeof part)) {\n regexParts.push(util.escapeRegex(`${part}`));\n }\n else {\n throw new Error(`Invalid template literal part: ${part}`);\n }\n }\n inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"string\") {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"template_literal\",\n code: \"invalid_type\",\n });\n return payload;\n }\n inst._zod.pattern.lastIndex = 0;\n if (!inst._zod.pattern.test(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n code: \"invalid_format\",\n format: \"template_literal\",\n pattern: inst._zod.pattern.source,\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"innerType\", () => def.getter());\n util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType._zod.pattern);\n util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const inner = inst._zod.innerType;\n return inner._zod.run(payload, ctx);\n };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n checks.$ZodCheck.init(inst, def);\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _) => {\n return payload;\n };\n inst._zod.check = (payload) => {\n const input = payload.value;\n const r = def.fn(input);\n if (r instanceof Promise) {\n return r.then((r) => handleRefineResult(r, payload, input, inst));\n }\n handleRefineResult(r, payload, input, inst);\n return;\n };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n if (!result) {\n const _iss = {\n code: \"custom\",\n input,\n inst, // incorporates params.error into issue reporting\n path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n continue: !inst._zod.def.abort,\n // params: inst._zod.def.params,\n };\n if (inst._zod.def.params)\n _iss.params = inst._zod.def.params;\n payload.issues.push(util.issue(_iss));\n }\n}\n","import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodMiniType = /*@__PURE__*/ core.$constructor(\"ZodMiniType\", (inst, def) => {\n if (!inst._zod)\n throw new Error(\"Uninitialized schema in ZodMiniType.\");\n core.$ZodType.init(inst, def);\n inst.def = def;\n inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n inst.check = (...checks) => {\n return inst.clone({\n ...def,\n checks: [\n ...(def.checks ?? []),\n ...checks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n ],\n }\n // { parent: true }\n );\n };\n inst.clone = (_def, params) => core.clone(inst, _def, params);\n inst.brand = () => inst;\n inst.register = ((reg, meta) => {\n reg.add(inst, meta);\n return inst;\n });\n});\nexport const ZodMiniString = /*@__PURE__*/ core.$constructor(\"ZodMiniString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function string(params) {\n return core._string(ZodMiniString, params);\n}\nexport const ZodMiniStringFormat = /*@__PURE__*/ core.$constructor(\"ZodMiniStringFormat\", (inst, def) => {\n core.$ZodStringFormat.init(inst, def);\n ZodMiniString.init(inst, def);\n});\nexport const ZodMiniEmail = /*@__PURE__*/ core.$constructor(\"ZodMiniEmail\", (inst, def) => {\n core.$ZodEmail.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function email(params) {\n return core._email(ZodMiniEmail, params);\n}\nexport const ZodMiniGUID = /*@__PURE__*/ core.$constructor(\"ZodMiniGUID\", (inst, def) => {\n core.$ZodGUID.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function guid(params) {\n return core._guid(ZodMiniGUID, params);\n}\nexport const ZodMiniUUID = /*@__PURE__*/ core.$constructor(\"ZodMiniUUID\", (inst, def) => {\n core.$ZodUUID.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n return core._uuid(ZodMiniUUID, params);\n}\nexport function uuidv4(params) {\n return core._uuidv4(ZodMiniUUID, params);\n}\n// ZodMiniUUIDv6\nexport function uuidv6(params) {\n return core._uuidv6(ZodMiniUUID, params);\n}\n// ZodMiniUUIDv7\nexport function uuidv7(params) {\n return core._uuidv7(ZodMiniUUID, params);\n}\nexport const ZodMiniURL = /*@__PURE__*/ core.$constructor(\"ZodMiniURL\", (inst, def) => {\n core.$ZodURL.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function url(params) {\n return core._url(ZodMiniURL, params);\n}\nexport const ZodMiniEmoji = /*@__PURE__*/ core.$constructor(\"ZodMiniEmoji\", (inst, def) => {\n core.$ZodEmoji.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n return core._emoji(ZodMiniEmoji, params);\n}\nexport const ZodMiniNanoID = /*@__PURE__*/ core.$constructor(\"ZodMiniNanoID\", (inst, def) => {\n core.$ZodNanoID.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n return core._nanoid(ZodMiniNanoID, params);\n}\nexport const ZodMiniCUID = /*@__PURE__*/ core.$constructor(\"ZodMiniCUID\", (inst, def) => {\n core.$ZodCUID.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function cuid(params) {\n return core._cuid(ZodMiniCUID, params);\n}\nexport const ZodMiniCUID2 = /*@__PURE__*/ core.$constructor(\"ZodMiniCUID2\", (inst, def) => {\n core.$ZodCUID2.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n return core._cuid2(ZodMiniCUID2, params);\n}\nexport const ZodMiniULID = /*@__PURE__*/ core.$constructor(\"ZodMiniULID\", (inst, def) => {\n core.$ZodULID.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n return core._ulid(ZodMiniULID, params);\n}\nexport const ZodMiniXID = /*@__PURE__*/ core.$constructor(\"ZodMiniXID\", (inst, def) => {\n core.$ZodXID.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function xid(params) {\n return core._xid(ZodMiniXID, params);\n}\nexport const ZodMiniKSUID = /*@__PURE__*/ core.$constructor(\"ZodMiniKSUID\", (inst, def) => {\n core.$ZodKSUID.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n return core._ksuid(ZodMiniKSUID, params);\n}\nexport const ZodMiniIPv4 = /*@__PURE__*/ core.$constructor(\"ZodMiniIPv4\", (inst, def) => {\n core.$ZodIPv4.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n return core._ipv4(ZodMiniIPv4, params);\n}\nexport const ZodMiniIPv6 = /*@__PURE__*/ core.$constructor(\"ZodMiniIPv6\", (inst, def) => {\n core.$ZodIPv6.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n return core._ipv6(ZodMiniIPv6, params);\n}\nexport const ZodMiniCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodMiniCIDRv4\", (inst, def) => {\n core.$ZodCIDRv4.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n return core._cidrv4(ZodMiniCIDRv4, params);\n}\nexport const ZodMiniCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodMiniCIDRv6\", (inst, def) => {\n core.$ZodCIDRv6.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n return core._cidrv6(ZodMiniCIDRv6, params);\n}\nexport const ZodMiniBase64 = /*@__PURE__*/ core.$constructor(\"ZodMiniBase64\", (inst, def) => {\n core.$ZodBase64.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function base64(params) {\n return core._base64(ZodMiniBase64, params);\n}\nexport const ZodMiniBase64URL = /*@__PURE__*/ core.$constructor(\"ZodMiniBase64URL\", (inst, def) => {\n core.$ZodBase64URL.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n return core._base64url(ZodMiniBase64URL, params);\n}\nexport const ZodMiniE164 = /*@__PURE__*/ core.$constructor(\"ZodMiniE164\", (inst, def) => {\n core.$ZodE164.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function e164(params) {\n return core._e164(ZodMiniE164, params);\n}\nexport const ZodMiniJWT = /*@__PURE__*/ core.$constructor(\"ZodMiniJWT\", (inst, def) => {\n core.$ZodJWT.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n return core._jwt(ZodMiniJWT, params);\n}\nexport const ZodMiniCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodMiniCustomStringFormat\", (inst, def) => {\n core.$ZodCustomStringFormat.init(inst, def);\n ZodMiniStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n return core._stringFormat(ZodMiniCustomStringFormat, format, fnOrRegex, _params);\n}\nexport const ZodMiniNumber = /*@__PURE__*/ core.$constructor(\"ZodMiniNumber\", (inst, def) => {\n core.$ZodNumber.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function number(params) {\n return core._number(ZodMiniNumber, params);\n}\nexport const ZodMiniNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodMiniNumberFormat\", (inst, def) => {\n core.$ZodNumberFormat.init(inst, def);\n ZodMiniNumber.init(inst, def);\n});\n// int\nexport function int(params) {\n return core._int(ZodMiniNumberFormat, params);\n}\n// float32\nexport function float32(params) {\n return core._float32(ZodMiniNumberFormat, params);\n}\n// float64\nexport function float64(params) {\n return core._float64(ZodMiniNumberFormat, params);\n}\n// int32\nexport function int32(params) {\n return core._int32(ZodMiniNumberFormat, params);\n}\n// uint32\nexport function uint32(params) {\n return core._uint32(ZodMiniNumberFormat, params);\n}\nexport const ZodMiniBoolean = /*@__PURE__*/ core.$constructor(\"ZodMiniBoolean\", (inst, def) => {\n core.$ZodBoolean.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function boolean(params) {\n return core._boolean(ZodMiniBoolean, params);\n}\nexport const ZodMiniBigInt = /*@__PURE__*/ core.$constructor(\"ZodMiniBigInt\", (inst, def) => {\n core.$ZodBigInt.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function bigint(params) {\n return core._bigint(ZodMiniBigInt, params);\n}\nexport const ZodMiniBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodMiniBigIntFormat\", (inst, def) => {\n core.$ZodBigIntFormat.init(inst, def);\n ZodMiniBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n return core._int64(ZodMiniBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n return core._uint64(ZodMiniBigIntFormat, params);\n}\nexport const ZodMiniSymbol = /*@__PURE__*/ core.$constructor(\"ZodMiniSymbol\", (inst, def) => {\n core.$ZodSymbol.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function symbol(params) {\n return core._symbol(ZodMiniSymbol, params);\n}\nexport const ZodMiniUndefined = /*@__PURE__*/ core.$constructor(\"ZodMiniUndefined\", (inst, def) => {\n core.$ZodUndefined.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nfunction _undefined(params) {\n return core._undefined(ZodMiniUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodMiniNull = /*@__PURE__*/ core.$constructor(\"ZodMiniNull\", (inst, def) => {\n core.$ZodNull.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nfunction _null(params) {\n return core._null(ZodMiniNull, params);\n}\nexport { _null as null };\nexport const ZodMiniAny = /*@__PURE__*/ core.$constructor(\"ZodMiniAny\", (inst, def) => {\n core.$ZodAny.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function any() {\n return core._any(ZodMiniAny);\n}\nexport const ZodMiniUnknown = /*@__PURE__*/ core.$constructor(\"ZodMiniUnknown\", (inst, def) => {\n core.$ZodUnknown.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function unknown() {\n return core._unknown(ZodMiniUnknown);\n}\nexport const ZodMiniNever = /*@__PURE__*/ core.$constructor(\"ZodMiniNever\", (inst, def) => {\n core.$ZodNever.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function never(params) {\n return core._never(ZodMiniNever, params);\n}\nexport const ZodMiniVoid = /*@__PURE__*/ core.$constructor(\"ZodMiniVoid\", (inst, def) => {\n core.$ZodVoid.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nfunction _void(params) {\n return core._void(ZodMiniVoid, params);\n}\nexport { _void as void };\nexport const ZodMiniDate = /*@__PURE__*/ core.$constructor(\"ZodMiniDate\", (inst, def) => {\n core.$ZodDate.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function date(params) {\n return core._date(ZodMiniDate, params);\n}\nexport const ZodMiniArray = /*@__PURE__*/ core.$constructor(\"ZodMiniArray\", (inst, def) => {\n core.$ZodArray.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function array(element, params) {\n return new ZodMiniArray({\n type: \"array\",\n element: element,\n ...util.normalizeParams(params),\n });\n}\n// .keyof\nexport function keyof(schema) {\n const shape = schema._zod.def.shape;\n return literal(Object.keys(shape));\n}\nexport const ZodMiniObject = /*@__PURE__*/ core.$constructor(\"ZodMiniObject\", (inst, def) => {\n core.$ZodObject.init(inst, def);\n ZodMiniType.init(inst, def);\n util.defineLazy(inst, \"shape\", () => def.shape);\n});\nexport function object(shape, params) {\n const def = {\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n ...util.normalizeParams(params),\n };\n return new ZodMiniObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n return new ZodMiniObject({\n type: \"object\",\n // shape: shape as core.$ZodLooseShape,\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n catchall: never(),\n ...util.normalizeParams(params),\n });\n}\n// looseObject\nexport function looseObject(shape, params) {\n return new ZodMiniObject({\n type: \"object\",\n // shape: shape as core.$ZodLooseShape,\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n // get optional() {\n // return util.optionalKeys(shape);\n // },\n catchall: unknown(),\n ...util.normalizeParams(params),\n });\n}\n// object methods\nexport function extend(schema, shape) {\n return util.extend(schema, shape);\n}\nexport function merge(schema, shape) {\n return util.extend(schema, shape);\n}\nexport function pick(schema, mask) {\n return util.pick(schema, mask);\n}\n// .omit\nexport function omit(schema, mask) {\n return util.omit(schema, mask);\n}\nexport function partial(schema, mask) {\n return util.partial(ZodMiniOptional, schema, mask);\n}\nexport function required(schema, mask) {\n return util.required(ZodMiniNonOptional, schema, mask);\n}\nexport function catchall(inst, catchall) {\n return inst.clone({ ...inst._zod.def, catchall: catchall });\n}\nexport const ZodMiniUnion = /*@__PURE__*/ core.$constructor(\"ZodMiniUnion\", (inst, def) => {\n core.$ZodUnion.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function union(options, params) {\n return new ZodMiniUnion({\n type: \"union\",\n options: options,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodMiniDiscriminatedUnion\", (inst, def) => {\n core.$ZodDiscriminatedUnion.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n return new ZodMiniDiscriminatedUnion({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniIntersection = /*@__PURE__*/ core.$constructor(\"ZodMiniIntersection\", (inst, def) => {\n core.$ZodIntersection.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function intersection(left, right) {\n return new ZodMiniIntersection({\n type: \"intersection\",\n left: left,\n right: right,\n });\n}\nexport const ZodMiniTuple = /*@__PURE__*/ core.$constructor(\"ZodMiniTuple\", (inst, def) => {\n core.$ZodTuple.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function tuple(items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof core.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new ZodMiniTuple({\n type: \"tuple\",\n items: items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniRecord = /*@__PURE__*/ core.$constructor(\"ZodMiniRecord\", (inst, def) => {\n core.$ZodRecord.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function record(keyType, valueType, params) {\n return new ZodMiniRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function partialRecord(keyType, valueType, params) {\n return new ZodMiniRecord({\n type: \"record\",\n keyType: union([keyType, never()]),\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniMap = /*@__PURE__*/ core.$constructor(\"ZodMiniMap\", (inst, def) => {\n core.$ZodMap.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function map(keyType, valueType, params) {\n return new ZodMiniMap({\n type: \"map\",\n keyType: keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniSet = /*@__PURE__*/ core.$constructor(\"ZodMiniSet\", (inst, def) => {\n core.$ZodSet.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function set(valueType, params) {\n return new ZodMiniSet({\n type: \"set\",\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniEnum = /*@__PURE__*/ core.$constructor(\"ZodMiniEnum\", (inst, def) => {\n core.$ZodEnum.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nfunction _enum(values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n return new ZodMiniEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n return new ZodMiniEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniLiteral = /*@__PURE__*/ core.$constructor(\"ZodMiniLiteral\", (inst, def) => {\n core.$ZodLiteral.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function literal(value, params) {\n return new ZodMiniLiteral({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniFile = /*@__PURE__*/ core.$constructor(\"ZodMiniFile\", (inst, def) => {\n core.$ZodFile.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function file(params) {\n return core._file(ZodMiniFile, params);\n}\nexport const ZodMiniTransform = /*@__PURE__*/ core.$constructor(\"ZodMiniTransform\", (inst, def) => {\n core.$ZodTransform.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function transform(fn) {\n return new ZodMiniTransform({\n type: \"transform\",\n transform: fn,\n });\n}\nexport const ZodMiniOptional = /*@__PURE__*/ core.$constructor(\"ZodMiniOptional\", (inst, def) => {\n core.$ZodOptional.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function optional(innerType) {\n return new ZodMiniOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodMiniNullable = /*@__PURE__*/ core.$constructor(\"ZodMiniNullable\", (inst, def) => {\n core.$ZodNullable.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function nullable(innerType) {\n return new ZodMiniNullable({\n type: \"nullable\",\n innerType: innerType,\n });\n}\n// nullish\nexport function nullish(innerType) {\n return optional(nullable(innerType));\n}\nexport const ZodMiniDefault = /*@__PURE__*/ core.$constructor(\"ZodMiniDefault\", (inst, def) => {\n core.$ZodDefault.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function _default(innerType, defaultValue) {\n return new ZodMiniDefault({\n type: \"default\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport const ZodMiniPrefault = /*@__PURE__*/ core.$constructor(\"ZodMiniPrefault\", (inst, def) => {\n core.$ZodPrefault.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function prefault(innerType, defaultValue) {\n return new ZodMiniPrefault({\n type: \"prefault\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport const ZodMiniNonOptional = /*@__PURE__*/ core.$constructor(\"ZodMiniNonOptional\", (inst, def) => {\n core.$ZodNonOptional.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function nonoptional(innerType, params) {\n return new ZodMiniNonOptional({\n type: \"nonoptional\",\n innerType: innerType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniSuccess = /*@__PURE__*/ core.$constructor(\"ZodMiniSuccess\", (inst, def) => {\n core.$ZodSuccess.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function success(innerType) {\n return new ZodMiniSuccess({\n type: \"success\",\n innerType: innerType,\n });\n}\nexport const ZodMiniCatch = /*@__PURE__*/ core.$constructor(\"ZodMiniCatch\", (inst, def) => {\n core.$ZodCatch.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nfunction _catch(innerType, catchValue) {\n return new ZodMiniCatch({\n type: \"catch\",\n innerType: innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport { _catch as catch };\nexport const ZodMiniNaN = /*@__PURE__*/ core.$constructor(\"ZodMiniNaN\", (inst, def) => {\n core.$ZodNaN.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function nan(params) {\n return core._nan(ZodMiniNaN, params);\n}\nexport const ZodMiniPipe = /*@__PURE__*/ core.$constructor(\"ZodMiniPipe\", (inst, def) => {\n core.$ZodPipe.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function pipe(in_, out) {\n return new ZodMiniPipe({\n type: \"pipe\",\n in: in_,\n out: out,\n });\n}\nexport const ZodMiniReadonly = /*@__PURE__*/ core.$constructor(\"ZodMiniReadonly\", (inst, def) => {\n core.$ZodReadonly.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function readonly(innerType) {\n return new ZodMiniReadonly({\n type: \"readonly\",\n innerType: innerType,\n });\n}\nexport const ZodMiniTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodMiniTemplateLiteral\", (inst, def) => {\n core.$ZodTemplateLiteral.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function templateLiteral(parts, params) {\n return new ZodMiniTemplateLiteral({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMiniLazy = /*@__PURE__*/ core.$constructor(\"ZodMiniLazy\", (inst, def) => {\n core.$ZodLazy.init(inst, def);\n ZodMiniType.init(inst, def);\n});\n// export function lazy<T extends object>(getter: () => T): T {\n// return util.createTransparentProxy<T>(getter);\n// }\nfunction _lazy(getter) {\n return new ZodMiniLazy({\n type: \"lazy\",\n getter: getter,\n });\n}\nexport { _lazy as lazy };\nexport const ZodMiniPromise = /*@__PURE__*/ core.$constructor(\"ZodMiniPromise\", (inst, def) => {\n core.$ZodPromise.init(inst, def);\n ZodMiniType.init(inst, def);\n});\nexport function promise(innerType) {\n return new ZodMiniPromise({\n type: \"promise\",\n innerType: innerType,\n });\n}\nexport const ZodMiniCustom = /*@__PURE__*/ core.$constructor(\"ZodMiniCustom\", (inst, def) => {\n core.$ZodCustom.init(inst, def);\n ZodMiniType.init(inst, def);\n});\n// custom checks\nexport function check(fn, params) {\n const ch = new core.$ZodCheck({\n check: \"custom\",\n ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\n// ZodCustom\n// custom schema\nexport function custom(fn, _params) {\n return core._custom(ZodMiniCustom, fn ?? (() => true), _params);\n}\n// refine\nexport function refine(fn, _params = {}) {\n return core._refine(ZodMiniCustom, fn, _params);\n}\n// instanceof\nclass Class {\n constructor(..._args) { }\n}\nfunction _instanceof(cls, params = {\n error: `Input not instance of ${cls.name}`,\n}) {\n const inst = custom((data) => data instanceof cls, params);\n inst._zod.bag.Class = cls;\n return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n Pipe: ZodMiniPipe,\n Boolean: ZodMiniBoolean,\n String: ZodMiniString,\n Transform: ZodMiniTransform,\n}, ...args);\nexport function json() {\n const jsonSchema = _lazy(() => {\n return union([string(), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n });\n return jsonSchema;\n}\n","import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.mjs';\nimport { pipe, transform, lazy } from 'zod/v4-mini';\n\n/**\n * Helpers for coercing string value\n * Modify the value only if it's a string, otherwise return the value as-is\n */\nfunction stripEmptyString(value) {\n if (typeof value !== 'string') {\n return value;\n }\n if (value === '') {\n return undefined;\n }\n return value;\n}\n\n/**\n * Helpers for coercing file\n * Modify the value only if it's a file, otherwise return the value as-is\n */\nfunction stripEmptyFile(file) {\n if (typeof File !== 'undefined' && file instanceof File && file.name === '' && file.size === 0) {\n return undefined;\n }\n return file;\n}\nfunction coerceNumber(value) {\n if (typeof value !== 'string') {\n return value;\n }\n return value.trim() === '' ? value : Number(value);\n}\nfunction coerceBoolean(value) {\n if (typeof value !== 'string') {\n return value;\n }\n return value === 'on' ? true : value;\n}\nfunction coerceDate(value) {\n if (typeof value !== 'string') {\n return value;\n }\n var date = new Date(value);\n\n // z.date() does not expose a quick way to set invalid_date error\n // This gets around it by returning the original string if it's invalid\n // See https://github.com/colinhacks/zod/issues/1526\n if (isNaN(date.getTime())) {\n return value;\n }\n return date;\n}\nfunction coerceBigInt(value) {\n if (typeof value !== 'string') {\n return value;\n }\n if (value.trim() === '') {\n return value;\n }\n try {\n return BigInt(value);\n } catch (_unused) {\n return value;\n }\n}\nfunction compose(a, b) {\n var c = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : i => i;\n return value => c(b(a(value)));\n}\nfunction selectDefaultCoercion(type, defaultCoercion) {\n var def = type._zod.def;\n if (def.type === 'string' || def.type === 'enum' // || def.type === 'nativeEnum'\n ) {\n return defaultCoercion.string;\n } else if (def.type === 'literal') {\n if (!('values' in def)) {\n return defaultCoercion.string;\n }\n var literalValue = [...def.values][0];\n if (typeof literalValue === 'number') {\n return defaultCoercion.number;\n }\n if (typeof literalValue === 'boolean') {\n return defaultCoercion.boolean;\n }\n if (typeof literalValue === 'bigint') {\n return defaultCoercion.bigint;\n }\n return defaultCoercion.string;\n } else if (def.type === 'file') {\n return defaultCoercion.file;\n } else if (def.type === 'number') {\n return defaultCoercion.number;\n } else if (def.type === 'boolean') {\n return defaultCoercion.boolean;\n } else if (def.type === 'date') {\n return defaultCoercion.date;\n } else if (def.type === 'bigint') {\n return defaultCoercion.bigint;\n }\n return null;\n}\n\n/**\n * Reconstruct the provided schema with additional preprocessing steps\n * This strips empty values to undefined and coerces string to the correct type\n */\nfunction enableTypeCoercion(type, options) {\n var _;\n var result = options.cache.get(type);\n\n // Return the cached schema if it's already processed\n // This is to prevent infinite recursion caused by z.lazy()\n if (result) {\n return result;\n }\n var schema = type;\n var zod = type._zod;\n var def = zod.def;\n var constr = zod.constr;\n var coercion = options.coerce(type);\n if (coercion) {\n schema = pipe(transform(coercion), type);\n } else if (def.type === 'array') {\n schema = pipe(transform(value => {\n // No preprocess needed if the value is already an array\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === 'undefined' || typeof options.stripEmptyValue(value) === 'undefined') {\n return [];\n }\n\n // Wrap it in an array otherwise\n return [value];\n }), new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n element: enableTypeCoercion(def.element, options)\n })));\n } else if (def.type === 'object') {\n schema = pipe(transform(value => {\n if (typeof value === 'undefined') {\n // Defaults it to an empty object\n return {};\n }\n return value;\n }), new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n shape: Object.fromEntries(Object.entries(def.shape).map(_ref => {\n var [key, def] = _ref;\n return [key, enableTypeCoercion(def, options)];\n }))\n })));\n } else if (def.type === 'optional' || def.type === 'nonoptional') {\n schema = pipe(transform(options.stripEmptyValue), new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, options)\n })));\n } else if (def.type === 'default' || def.type === 'prefault') {\n var defaultValue = def.defaultValue;\n schema = pipe(transform(options.stripEmptyValue), new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: defaultValue !== '' ? enableTypeCoercion(def.innerType, options) : def.innerType\n })));\n } else if (def.type === 'catch') {\n schema = new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, options)\n }));\n } else if (def.type === 'intersection') {\n schema = new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n left: enableTypeCoercion(def.left, options),\n right: enableTypeCoercion(def.right, options)\n }));\n // The `type` of `discriminatedUnion` is defined as 'union', so it can be determined from the class name used.\n } else if (def.type === 'union' && (_ = [...zod.traits][0]) !== null && _ !== void 0 && _.includes('DiscriminatedUnion')) {\n schema = pipe(transform(value => {\n if (typeof value === 'undefined') {\n // Defaults it to an empty object\n return {};\n }\n return value;\n }), new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n options: def.options.map(item => {\n var objectDef = item._zod.def;\n var setOriginalPropValues = object => {\n // The discriminate key is obtained from the defined Object.\n // If you regenerate the Object schema, the `propValues` property disappears. Therefore, set the one obtained from the original Object.\n // https://github.com/colinhacks/zod/blob/22ab436bc214d86d740e78f33ae6834d28ddc152/packages/zod/src/v4/core/schemas.ts#L1949-L1963\n object._zod.propValues = item._zod.propValues;\n // @ts-expect-error: The `disc` property was used up to version 3.25.34, but was changed to the `propValues` property from version 3.25.35 onwards.\n object._zod.disc = item._zod.disc;\n return object;\n };\n if (objectDef.type !== 'object') {\n return setOriginalPropValues(enableTypeCoercion(item, options));\n }\n var object = new item._zod.constr(_objectSpread2(_objectSpread2({}, objectDef), {}, {\n shape: Object.fromEntries(Object.entries(objectDef.shape).map(_ref2 => {\n var [key, def] = _ref2;\n return [key, enableTypeCoercion(def, options)];\n }))\n }));\n return setOriginalPropValues(object);\n })\n })));\n } else if (def.type === 'union') {\n schema = new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n options: def.options.map(item => enableTypeCoercion(item, options))\n }));\n } else if (def.type === 'tuple') {\n schema = new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n items: def.items.map(item => enableTypeCoercion(item, options))\n }));\n } else if (def.type === 'nullable') {\n schema = new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, options)\n }));\n } else if (def.type === 'pipe') {\n schema = new constr(_objectSpread2(_objectSpread2({}, def), {}, {\n in: enableTypeCoercion(def.in, options),\n out: enableTypeCoercion(def.out, options)\n }));\n } else if (def.type === 'lazy') {\n var inner = def.getter();\n schema = lazy(() => enableTypeCoercion(inner, options));\n }\n if (type !== schema) {\n options.cache.set(type, schema);\n }\n return schema;\n}\n\n/**\n * A helper that enhance the zod schema to strip empty value and coerce form value to the expected type with option to customize type coercion.\n * @example\n *\n * ```tsx\n * import { parseWithZod, unstable_coerceFormValue as coerceFormValue } from '@conform-to/zod';\n * import { z } from 'zod';\n *\n * // Coerce the form value with default behaviour\n * const schema = coerceFormValue(\n * z.object({\n * // ...\n * })\n * );\n *\n * // Coerce the form value with default coercion overrided\n * const schema = coerceFormValue(\n * z.object({\n * ref: z.number()\n * date: z.date(),\n * amount: z.number(),\n * confirm: z.boolean(),\n * }),\n * {\n * // Trim the value for all string-based fields\n * // e.g. `z.string()`, `z.number()` or `z.boolean()`\n * string: (value) => {\n * if (typeof value !== 'string') {\n * return value;\n * }\n *\n * const result = value.trim();\n *\n * // Treat it as `undefined` if the value is empty\n * if (result === '') {\n * return undefined;\n * }\n *\n * return result;\n * },\n *\n * // Override the default coercion with `z.number()`\n * number: (value) => {\n * // Pass the value as is if it's not a string\n * if (typeof value !== 'string') {\n * return value;\n * }\n *\n * // Trim and remove commas before casting it to number\n * return Number(value.trim().replace(/,/g, ''));\n * },\n *\n * // Disable coercion for `z.boolean()`\n * boolean: false,\n * },\n * );\n * ```\n */\nfunction coerceFormValue(type, options) {\n var getCoercion = (type, fallbackCoercion) => {\n var _options$defaultCoerc;\n var providedCoercion = options === null || options === void 0 || (_options$defaultCoerc = options.defaultCoercion) === null || _options$defaultCoerc === void 0 ? void 0 : _options$defaultCoerc[type];\n if (typeof providedCoercion === 'function') {\n return providedCoercion;\n }\n\n // If the user explicitly disabled the coercion or no fallback coercion, return a noop function\n if (providedCoercion === false || !fallbackCoercion) {\n return value => value;\n }\n return fallbackCoercion;\n };\n var defaultCoercion = {\n string: compose(stripEmptyString, getCoercion('string')),\n file: compose(stripEmptyFile, getCoercion('file')),\n number: compose(stripEmptyString, getCoercion('string'), getCoercion('number', coerceNumber)),\n boolean: compose(stripEmptyString, getCoercion('string'), getCoercion('boolean', coerceBoolean)),\n date: compose(stripEmptyString, getCoercion('string'), getCoercion('date', coerceDate)),\n bigint: compose(stripEmptyString, getCoercion('string'), getCoercion('bigint', coerceBigInt))\n };\n return enableTypeCoercion(type, {\n cache: new Map(),\n stripEmptyValue: compose(defaultCoercion.string, defaultCoercion.file),\n coerce: type => {\n var _options$customize, _options$customize2;\n var coercion = (_options$customize = options === null || options === void 0 || (_options$customize2 = options.customize) === null || _options$customize2 === void 0 ? void 0 : _options$customize2.call(options, type)) !== null && _options$customize !== void 0 ? _options$customize : null;\n if (coercion === null) {\n coercion = selectDefaultCoercion(type, defaultCoercion);\n }\n return coercion;\n }\n });\n}\n\nexport { coerceFormValue, enableTypeCoercion };\n","import { parse, formatPaths } from '@conform-to/dom';\nimport { safeParseAsync, safeParse } from 'zod/v4/core';\nimport { coerceFormValue } from './coercion.mjs';\n\nfunction getError(zodError, formatError) {\n var result = {};\n for (var issue of zodError.issues) {\n var name = formatPaths(issue.path.map(path => {\n if (typeof path === 'symbol') {\n throw new Error('@conform-to/zod does not support symbol paths. Please use a string or number instead.');\n }\n return path;\n }));\n switch (issue.message) {\n case conformZodMessage.VALIDATION_UNDEFINED:\n return null;\n case conformZodMessage.VALIDATION_SKIPPED:\n result[name] = null;\n break;\n default:\n {\n var _issues = result[name];\n if (_issues !== null) {\n if (_issues) {\n result[name] = _issues.concat(issue);\n } else {\n result[name] = [issue];\n }\n }\n break;\n }\n }\n }\n return Object.entries(result).reduce((result, _ref) => {\n var [name, issues] = _ref;\n result[name] = issues ? formatError(issues) : null;\n return result;\n }, {});\n}\nfunction parseWithZod(payload, options) {\n return parse(payload, {\n resolve(payload, intent) {\n var error = options.error;\n var baseSchema = typeof options.schema === 'function' ? options.schema(intent) : options.schema;\n var schema = !options.disableAutoCoercion ? coerceFormValue(baseSchema) : baseSchema;\n var resolveSubmission = result => {\n var _options$formatError;\n return {\n value: result.success ? result.data : undefined,\n error: !result.success ? getError(result.error, (_options$formatError = options.formatError) !== null && _options$formatError !== void 0 ? _options$formatError : issues => issues.map(issue => issue.message)) : undefined\n };\n };\n return options.async ? safeParseAsync(schema, payload, {\n error\n }).then(result => resolveSubmission(result)) : resolveSubmission(safeParse(schema, payload, {\n error\n }));\n }\n });\n}\nvar conformZodMessage = {\n VALIDATION_SKIPPED: '__skipped__',\n VALIDATION_UNDEFINED: '__undefined__'\n};\n\nexport { conformZodMessage, parseWithZod };\n","export function getHintUtils(hints) {\n function getCookieValue(cookieString, name) {\n const hint = hints[name];\n if (!hint) {\n throw new Error(`Unknown client hint: ${typeof name === 'string' ? name : 'Unknown'}`);\n }\n const value = cookieString\n .split(';')\n .map((c) => c.trim())\n .find((c) => c.startsWith(hint.cookieName + '='))\n ?.split('=')[1];\n if (!value)\n return null;\n try {\n return decodeURIComponent(value);\n }\n catch (error) {\n // Handle malformed URI gracefully by falling back to null\n // This prevents crashes and allows the hint's fallback value to be used\n console.warn(`Failed to decode cookie value for ${hint.cookieName}:`, error);\n return null;\n }\n }\n function getHints(request) {\n const cookieString = typeof document !== 'undefined'\n ? document.cookie\n : typeof request !== 'undefined'\n ? request.headers.get('Cookie') ?? ''\n : '';\n return Object.entries(hints).reduce((acc, [name, hint]) => {\n const hintName = name;\n if ('transform' in hint) {\n // @ts-expect-error - this is fine (PRs welcome though)\n acc[hintName] = hint.transform(getCookieValue(cookieString, hintName) ?? hint.fallback);\n }\n else {\n // @ts-expect-error - this is fine (PRs welcome though)\n acc[hintName] = getCookieValue(cookieString, hintName) ?? hint.fallback;\n }\n return acc;\n }, {});\n }\n /**\n * This returns a string of JavaScript that can be used to check if the client\n * hints have changed and will reload the page if they have.\n */\n function getClientHintCheckScript() {\n return `\n// This block of code allows us to check if the client hints have changed and\n// force a reload of the page with updated hints if they have so you don't get\n// a flash of incorrect content.\nfunction checkClientHints() {\n\tif (!navigator.cookieEnabled) return;\n\n\t// set a short-lived cookie to make sure we can set cookies\n\tdocument.cookie = \"canSetCookies=1; Max-Age=60; SameSite=Lax; path=/\";\n\tconst canSetCookies = document.cookie.includes(\"canSetCookies=1\");\n\tdocument.cookie = \"canSetCookies=; Max-Age=-1; path=/\";\n\tif (!canSetCookies) return;\n\n\tconst cookies = document.cookie.split(';').map(c => c.trim()).reduce((acc, cur) => {\n\t\tconst [key, value] = cur.split('=');\n\t\tacc[key] = value;\n\t\treturn acc;\n\t}, {});\n\n\tlet cookieChanged = false;\n\tconst hints = [\n\t${Object.values(hints)\n .map((hint) => {\n const cookieName = JSON.stringify(hint.cookieName);\n return `{ name: ${cookieName}, actual: String(${hint.getValueCode}), value: cookies[${cookieName}] != null ? cookies[${cookieName}] : encodeURIComponent(\"${hint.fallback}\") }`;\n })\n .join(',\\n')}\n\t];\n\t\n\t// Add safety check to prevent infinite refresh scenarios\n\tlet reloadAttempts = parseInt(sessionStorage.getItem('clientHintReloadAttempts') || '0');\n\tif (reloadAttempts > 3) {\n\t\tconsole.warn('Too many client hint reload attempts, skipping reload to prevent infinite loop');\n\t\treturn;\n\t}\n\t\n\tfor (const hint of hints) {\n\t\tdocument.cookie = encodeURIComponent(hint.name) + '=' + encodeURIComponent(hint.actual) + '; Max-Age=31536000; SameSite=Lax; path=/';\n\t\t\n\t\ttry {\n\t\t\tconst decodedValue = decodeURIComponent(hint.value);\n\t\t\tif (decodedValue !== hint.actual) {\n\t\t\t\tcookieChanged = true;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\t// Handle malformed URI gracefully\n\t\t\tconsole.warn('Failed to decode cookie value during client hint check:', error);\n\t\t\t// If we can't decode the value, assume it's different to be safe\n\t\t\tcookieChanged = true;\n\t\t}\n\t}\n\t\n\tif (cookieChanged) {\n\t\t// Increment reload attempts counter\n\t\tsessionStorage.setItem('clientHintReloadAttempts', String(reloadAttempts + 1));\n\t\t\n\t\t// Hide the page content immediately to prevent visual flicker\n\t\tconst style = document.createElement('style');\n\t\tstyle.textContent = 'html { visibility: hidden !important; }';\n\t\tdocument.head.appendChild(style);\n\n\t\t// Trigger the reload\n\t\twindow.location.reload();\n\t} else {\n\t\t// Reset reload attempts counter if no reload was needed\n\t\tsessionStorage.removeItem('clientHintReloadAttempts');\n\t}\n}\n\ncheckClientHints();\n`;\n }\n return { getHints, getClientHintCheckScript };\n}\n","export const clientHint = {\n cookieName: 'CH-prefers-color-scheme',\n getValueCode: `window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'`,\n fallback: 'light',\n transform(value) {\n return value === 'dark' ? 'dark' : 'light';\n },\n};\n/**\n * Subscribe to changes in the user's color scheme preference. Optionally pass\n * in a cookie name to use for the cookie that will be set if different from the\n * default.\n */\nexport function subscribeToSchemeChange(subscriber, cookieName = clientHint.cookieName) {\n const schemaMatch = window.matchMedia('(prefers-color-scheme: dark)');\n function handleThemeChange() {\n const value = schemaMatch.matches ? 'dark' : 'light';\n document.cookie = `${cookieName}=${value}; Max-Age=31536000; SameSite=Lax; Path=/`;\n subscriber(value);\n }\n schemaMatch.addEventListener('change', handleThemeChange);\n return function cleanupSchemaChange() {\n schemaMatch.removeEventListener('change', handleThemeChange);\n };\n}\n","export const clientHint = {\n cookieName: 'CH-reduced-motion',\n getValueCode: `window.matchMedia('(prefers-reduced-motion: reduce)').matches ? 'reduce' : 'no-preference'`,\n fallback: 'no-preference',\n transform(value) {\n return value === 'reduce' ? 'reduce' : 'no-preference';\n },\n};\n/**\n * Subscribe to changes in the user's motion preference. Optionally pass\n * in a cookie name to use for the cookie that will be set if different from the\n * default.\n */\nexport function subscribeToMotionChange(subscriber, cookieName = clientHint.cookieName) {\n const motionMatch = window.matchMedia('(prefers-reduced-motion: reduce)');\n function handleMotionChange() {\n const value = motionMatch.matches ? 'reduce' : 'no-preference';\n document.cookie = `${cookieName}=${value}; Max-Age=31536000; SameSite=Lax; Path=/`;\n subscriber(value);\n }\n motionMatch.addEventListener('change', handleMotionChange);\n return function cleanupMotionChange() {\n motionMatch.removeEventListener('change', handleMotionChange);\n };\n}\n","export const clientHint = {\n cookieName: 'CH-time-zone',\n getValueCode: 'Intl.DateTimeFormat().resolvedOptions().timeZone',\n fallback: 'UTC',\n};\n","/**\n * This file contains utilities for using client hints for user preference which\n * are needed by the server, but are only known by the browser.\n */\nimport { getHintUtils } from '@epic-web/client-hints'\nimport {\n\tclientHint as colorSchemeHint,\n\tsubscribeToSchemeChange,\n} from '@epic-web/client-hints/color-scheme'\nimport {\n\tclientHint as reducedMotionHint,\n\tsubscribeToMotionChange,\n} from '@epic-web/client-hints/reduced-motion'\nimport { clientHint as timeZoneHint } from '@epic-web/client-hints/time-zone'\nimport * as React from 'react'\nimport { useRevalidator } from 'react-router'\nimport { useRequestInfo } from './root-loader.ts'\n\nconst themeCookieName = 'EpicShop_CH-prefers-color-scheme'\nconst motionCookieName = 'EpicShop_CH-reduced-motion'\nconst hintsUtils = getHintUtils({\n\ttheme: {\n\t\t...colorSchemeHint,\n\t\tcookieName: themeCookieName,\n\t},\n\ttimeZone: {\n\t\t...timeZoneHint,\n\t\tcookieName: 'EpicShop_CH-time-zone',\n\t},\n\treducedMotion: {\n\t\t...reducedMotionHint,\n\t\tcookieName: motionCookieName,\n\t},\n\t// add other hints here\n})\n\nexport const { getHints } = hintsUtils\n\n/**\n * @returns an object with the client hints and their values\n */\nexport function useHints() {\n\tconst requestInfo = useRequestInfo()\n\treturn requestInfo.hints\n}\n\n/**\n * @returns inline script element that checks for client hints and sets cookies\n * if they are not set then reloads the page if any cookie was set to an\n * inaccurate value.\n */\nexport function ClientHintCheck() {\n\tconst { revalidate } = useRevalidator()\n\tReact.useEffect(\n\t\t() => subscribeToSchemeChange(() => revalidate(), themeCookieName),\n\t\t[revalidate],\n\t)\n\tReact.useEffect(\n\t\t() => subscribeToMotionChange(() => revalidate(), motionCookieName),\n\t\t[revalidate],\n\t)\n\n\treturn (\n\t\t<script\n\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t__html: hintsUtils.getClientHintCheckScript(),\n\t\t\t}}\n\t\t/>\n\t)\n}\n","export type ListOfErrors = Array<string | null | undefined> | null | undefined\n\nexport function ErrorList({\n\tid,\n\terrors,\n}: {\n\terrors?: ListOfErrors\n\tid?: string\n}) {\n\tconst errorsToRender = errors?.filter(Boolean)\n\tif (!errorsToRender?.length) return null\n\treturn (\n\t\t<ul id={id} className=\"space-y-1\">\n\t\t\t{errorsToRender.map((e) => (\n\t\t\t\t<li key={e} className=\"text-foreground-destructive text-[10px]\">\n\t\t\t\t\t{e}\n\t\t\t\t</li>\n\t\t\t))}\n\t\t</ul>\n\t)\n}\n","import { getFormProps, useForm } from '@conform-to/react'\nimport { parseWithZod } from '@conform-to/zod/v4'\nimport { data, redirect, useFetcher, useFetchers } from 'react-router'\nimport { safeRedirect } from 'remix-utils/safe-redirect'\nimport { z } from 'zod'\nimport { Icon } from '#app/components/icons.tsx'\nimport { SimpleTooltip } from '#app/components/ui/tooltip.tsx'\nimport { useHints } from '#app/utils/client-hints.tsx'\nimport { ErrorList } from '#app/utils/forms.tsx'\nimport { dataWithPE, usePERedirectInput } from '#app/utils/pe.tsx'\nimport { useRequestInfo } from '#app/utils/root-loader.ts'\nimport { type Route } from './+types/index.tsx'\nimport { setTheme } from './theme-session.server.ts'\n\nconst ROUTE_PATH = '/theme'\n\nconst ThemeFormSchema = z.object({\n\ttheme: z.enum(['system', 'light', 'dark']),\n})\nconst ThemeFormSchemaForConform = ThemeFormSchema as z.ZodTypeAny\nconst parseWithZodUnsafe = parseWithZod as unknown as (\n\tformData: FormData,\n\toptions: { schema: z.ZodTypeAny },\n) => any\n\nexport async function loader({ request }: Route.LoaderArgs) {\n\tconst referrer = request.headers.get('Referer')\n\treturn redirect(safeRedirect(referrer ?? '/'), {\n\t\theaders: { 'Cache-Control': 'no-cache' },\n\t})\n}\n\nexport async function action({ request }: Route.ActionArgs) {\n\tconst formData = await request.formData()\n\tconst submission = parseWithZodUnsafe(formData, {\n\t\tschema: ThemeFormSchemaForConform,\n\t})\n\tif (submission.status !== 'success') {\n\t\treturn data(submission.reply(), {\n\t\t\t// You can also use the status to determine the HTTP status code\n\t\t\tstatus: submission.status === 'error' ? 400 : 200,\n\t\t})\n\t}\n\tconst { theme } = submission.value\n\n\tconst responseInit = {\n\t\theaders: { 'set-cookie': setTheme(theme) },\n\t}\n\treturn dataWithPE(request, formData, submission.reply(), responseInit)\n}\n\nexport function ThemeSwitch({\n\tdisableTooltip,\n}: { disableTooltip?: boolean } = {}) {\n\tconst requestInfo = useRequestInfo()\n\tconst peRedirectInput = usePERedirectInput()\n\tconst fetcher = useFetcher<Route.ComponentProps['actionData']>()\n\n\tconst [form] = useForm({\n\t\tlastResult: fetcher.data,\n\t\tonValidate({ formData }) {\n\t\t\treturn parseWithZodUnsafe(formData, {\n\t\t\t\tschema: ThemeFormSchemaForConform,\n\t\t\t})\n\t\t},\n\t})\n\n\tconst mode = requestInfo.session.theme ?? 'system'\n\tconst nextMode =\n\t\tmode === 'system' ? 'light' : mode === 'light' ? 'dark' : 'system'\n\tconst modeLabel = {\n\t\tlight: <Icon size=\"md\" name=\"Sun\" title=\"Light mode\" />,\n\t\tdark: <Icon size=\"md\" name=\"Moon\" title=\"Dark mode\" />,\n\t\tsystem: <Icon size=\"md\" name=\"Laptop\" title=\"System mode\" />,\n\t}\n\n\tconst button = (\n\t\t<button\n\t\t\ttype=\"submit\"\n\t\t\tname=\"intent\"\n\t\t\tvalue=\"update-theme\"\n\t\t\tclassName=\"flex h-8 w-8 cursor-pointer items-center justify-center\"\n\t\t>\n\t\t\t{modeLabel[mode]}\n\t\t</button>\n\t)\n\n\treturn (\n\t\t<fetcher.Form method=\"POST\" action={ROUTE_PATH} {...getFormProps(form)}>\n\t\t\t<div className=\"flex gap-2\">\n\t\t\t\t{peRedirectInput}\n\t\t\t\t<input type=\"hidden\" name=\"theme\" value={nextMode} />\n\t\t\t\t{disableTooltip ? (\n\t\t\t\t\tbutton\n\t\t\t\t) : (\n\t\t\t\t\t<SimpleTooltip content={`Change theme from ${mode} mode`}>\n\t\t\t\t\t\t{button}\n\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<ErrorList errors={form.errors} id={form.errorId} />\n\t\t</fetcher.Form>\n\t)\n}\n\n/**\n * @returns the user's theme preference, or the client hint theme if the user\n * has not set a preference.\n */\nexport function useTheme() {\n\tconst hints = useHints()\n\tconst requestInfo = useRequestInfo()\n\tconst fetchers = useFetchers()\n\tconst fetcher = fetchers.find(\n\t\t(f) => f.formData?.get('intent') === 'update-theme',\n\t)\n\tconst optimisticTheme = fetcher?.formData?.get('theme')\n\tif (optimisticTheme === 'system') return hints.theme\n\tif (optimisticTheme === 'light' || optimisticTheme === 'dark') {\n\t\treturn optimisticTheme\n\t}\n\treturn requestInfo.session.theme ?? hints.theme\n}\n"],"names":["ownKeys","o","r","_objectSpread2","_defineProperty","obj","key","value","_toPropertyKey","_toPrimitive","input","hint","prim","res","arg","invariant","expectedCondition","message","generateId","clone","data","isPlainObject","isInputElement","element","isSelectElement","isTextAreaElement","isSubmitter","isFieldElement","isGlobalInstance","className","Ctor","getFormAction","event","_ref","_submitter$getAttribu","form","submitter","getFormEncType","_submitter$getAttribu2","encType","getFormMethod","_ref2","_submitter$getAttribu3","method","createSubmitEvent","requestSubmit","createFileList","dataTransfer","file","normalizeStringValues","v","normalizeFileValues","item","updateField","options","isChanged","_element$files","files","currentFiles","i","_value","_defaultValue","checked","_value2","_defaultValue2","shouldUnselect","option","index","selected","_index","_selected","missingOptions","optionValue","defaultValue","_value$","inputValue","valueSetter","prototype","prototypeValueSetter","_defaultValue$","isDirtyInput","_element$files$length","_element$files2","getFormData","payload","entries","getPathSegments","path","tokenRegex","segments","lastIndex","match","number","formatPathSegments","segment","appendPathSegment","isPrefix","name","prefix","getRelativePath","basePath","fullPath","setValueAtPath","target","pathOrSegments","valueOrFn","result","pointer","currentSegment","nextSegment","child","last","oldValue","newValue","err","getValueAtPath","INTENT","STATE","getSubmissionContext","body","intent","state","context","getIntent","_loop","next","prev","parse","_name","setListValue","mergeResolveResult","resolved","createSubmission","replySubmission","_context$intent","_context$intent$paylo","_options$formErrors","extraError","normalize","error","initialValue","serializedIntent","control","serializeIntent","serialize","updateList","list","_intent$payload$index","root","setState","valueFn","keys","_loop2","_key","currentValue","flatten","_data$root","setListState","getDefaultValue","acceptFile","_options$resolve","resolve","process","_key2","_value3","_options$prefix","createFormMeta","isResetting","_lastResult$initialVa","_options$constraint","_lastResult$state$val","_lastResult$state","lastResult","getDefaultKey","handleIntent","setFieldsValidated","meta","fields","initialized","_fields$filter","validated","_name2","updateValue","_name3","validatedFields","_ref3","field","createStateProxy","fn","cache","_","receiver","_cache$name","createValueProxy","val","proxy","basename","parentValue","createConstraintProxy","constraint","_result","alternative","createKeyProxy","currentKey","parentKey","createValidProxy","createDirtyProxy","shouldDirtyConsider","_ref4","shouldNotify","scope","compareFn","_scope$prefix","_scope$name","prefixes","names","_name4","_cache$_name","_ret","createFormContext","subscribers","latestOptions","processedIntents","createFormState","getFormElement","_latestOptions$should","_latestOptions$should2","updateFormMeta","nextMeta","prevMeta","prevState","nextState","subscriber","_subscriber$getSubjec","subject","compareBoolean","getSerializedState","submit","formData","submission","_result2","report","resolveTarget","willValidate","eventName","shouldValidate","shouldRevalidate","updateFormValue","onInput","dispatch","onBlur","reset","onReset","_result$error","_result$state","formElement","_ref5","newError","pendingIntents","update","onUpdate","currentFormId","currentResult","subscribe","callback","getSubject","current","getState","buttonProps","getControlButtonProps","createFormControl","type","observe","observer","mutations","mutation","nodes","node","runSideEffect","intents","_name5","baseSegments","paths","_element","_objectWithoutPropertiesLoose","source","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","wrappedSymbol","useFormState","subjectRef","useCallback","useSyncExternalStore","useSubjectRef","initialSubject","useRef","updateSubjectRef","ref","_ref$current$subject$","_ref$current$subject","getMetadata","stateSnapshot","id","getFieldMetadata","formatPaths","getPaths","_state$constraint$nam","metadata","_state$initialValue$n","getFormMetadata","noValidate","onSubmit","unstable_createFormContext","submitEvent","_onSubmit","_excluded","useSafeLayoutEffect","useEffect","useLayoutEffect","useFormId","preferredId","useId","useNoValidate","defaultNoValidate","setNoValidate","useState","useForm","formConfig","formId","disconnect","simplify","props","getAriaAttributes","invalid","ariaDescribedBy","getFormProps","$constructor","initializer","params","init","inst","def","_a","k","Parent","Definition","$ZodAsyncError","globalConfig","config","newConfig","jsonStringifyReplacer","defineLazy","object","getter","captureStackTrace","_args","cl","aborted","x","startIndex","unwrapMessage","finalizeIssue","iss","ctx","full","util.jsonStringifyReplacer","$ZodError","$ZodRealError","_parse","_Err","schema","_ctx","_params","core.$ZodAsyncError","e","util.finalizeIssue","core.config","util.captureStackTrace","errors.$ZodRealError","_parseAsync","parseAsync","_safeParse","errors.$ZodError","safeParse","_safeParseAsync","safeParseAsync","version","$ZodType","core.$constructor","checks","ch","runChecks","isAborted","util.aborted","asyncResult","currLen","$ZodTransform","_out","output","$ZodPipe","util.defineLazy","left","handlePipeResult","$ZodLazy","ZodMiniType","core.$ZodType","parse.parse","parse.safeParse","parse.parseAsync","parse.safeParseAsync","_def","core.clone","reg","ZodMiniTransform","core.$ZodTransform","transform","ZodMiniPipe","core.$ZodPipe","pipe","in_","out","ZodMiniLazy","core.$ZodLazy","_lazy","stripEmptyString","stripEmptyFile","coerceNumber","coerceBoolean","coerceDate","date","coerceBigInt","compose","a","b","c","selectDefaultCoercion","defaultCoercion","literalValue","enableTypeCoercion","zod","constr","coercion","objectDef","setOriginalPropValues","inner","lazy","coerceFormValue","getCoercion","fallbackCoercion","_options$customize","getError","zodError","formatError","issue","conformZodMessage","_issues","issues","parseWithZod","baseSchema","resolveSubmission","_options$formatError","getHintUtils","hints","getCookieValue","cookieString","getHints","request","acc","hintName","getClientHintCheckScript","cookieName","clientHint","subscribeToSchemeChange","schemaMatch","handleThemeChange","subscribeToMotionChange","motionMatch","handleMotionChange","themeCookieName","motionCookieName","hintsUtils","colorSchemeHint","timeZoneHint","reducedMotionHint","useHints","useRequestInfo","ClientHintCheck","revalidate","useRevalidator","React.useEffect","jsx","ErrorList","errors","errorsToRender","ROUTE_PATH","ThemeFormSchema","z","theme","ThemeFormSchemaForConform","parseWithZodUnsafe","ThemeSwitch","disableTooltip","requestInfo","peRedirectInput","usePERedirectInput","fetcher","useFetcher","onValidate","mode","session","nextMode","modeLabel","light","Icon","size","title","dark","system","button","children","jsxs","Form","action","SimpleTooltip","content","errorId","useTheme","optimisticTheme","useFetchers","find","f","get"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]}
|