@powerhousedao/connect 1.0.0-dev.217 → 1.0.0-dev.218
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/dist/assets/{app-DQ370G6e.js → app-Xz3xwBTk.js} +86 -86
- package/dist/assets/{app-loader-nW1Cg4Kf.js → app-loader-COnCCMTF.js} +8 -10
- package/dist/assets/{app-loader-dqDstlE2.css → app-loader-DaEnUcee.css} +0 -3
- package/dist/assets/{browser-C90VO6t5.js → browser-CKFHkHoB.js} +5 -5
- package/dist/assets/{ccip-D0kTbGok.js → ccip-bHyaGsOV.js} +5 -5
- package/dist/assets/{content-BQkzaEgC.js → content-BskCtF7o.js} +7 -23
- package/dist/assets/{getEnsName-D3a9xp8-.js → getEnsName-raU63cVI.js} +4 -4
- package/dist/assets/{index-DXXTfv0u.js → index-BavGUrl2.js} +3 -3
- package/dist/assets/{index-B61cc0KW.js → index-CclVYd6X.js} +6 -6
- package/dist/assets/{index-BeOmXEjJ.js → index-Cxa_sRum.js} +3 -3
- package/dist/assets/{isAddressEqual-DfLJCZxe.js → isAddressEqual-A6wk6_jk.js} +1 -1
- package/dist/assets/{main.DdOdrNYh.js → main.CSywLt9v.js} +1 -1
- package/dist/assets/{react-error-boundary.esm-DvCqLux1.js → react-error-boundary.esm-z8KmUnUW.js} +2 -2
- package/dist/assets/{root-BD6DrDI4.js → root-CreRLTjX.js} +6 -6
- package/dist/assets/{router-B5CZcJf1.js → router-BqOOmMac.js} +6 -6
- package/dist/index.html +31 -32
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-FD4TUZZS.js → chunk-2457SE2E.js} +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-PLDDJCW6.js → chunk-2ESYSVXG.js} +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-THVTRWRZ.js → chunk-2M5MUZC5.js} +2 -3
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-SDNEXZQH.js → chunk-2X2M6BYG.js} +1 -2
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-GJOMXDVW.js → chunk-2ZNMEO7F.js} +2 -3
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-XNBBEHKQ.js → chunk-7JJFEMGR.js} +4 -5
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-LEVFKHRO.js → chunk-7OQWVUC5.js} +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-BB7ACZ2P.js → chunk-APULBRCC.js} +2 -3
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-SZ7RYA6M.js → chunk-CSDGLPMX.js} +4 -5
- package/dist/modules/@powerhousedao/reactor-browser/chunk-DKDARAJS.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-LCQV2CEG.js → chunk-DZDC5PJZ.js} +2 -3
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-M7F32S4F.js → chunk-EAJA6RP7.js} +3 -4
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-ULBB7S2G.js → chunk-GDP7BUIH.js} +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-EVKU6ZC7.js → chunk-ISFL4WXH.js} +1 -2
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-UVZMZ4MR.js → chunk-J5TYPY7U.js} +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/chunk-KCFZEFYJ.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-LFIXFHHR.js → chunk-KCWUXJON.js} +1 -2
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-OJYBFBSZ.js → chunk-MHTRZST7.js} +3 -4
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-2UVA3JSX.js → chunk-OLDD444V.js} +2 -3
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-DVMSG5VM.js → chunk-OVGOA2P5.js} +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-WARL4IRP.js → chunk-P6NJ6IAQ.js} +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-ARAPK5F3.js → chunk-PXVJIFZD.js} +1 -2
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-SQMQ6KEB.js → chunk-RGIB4DD4.js} +1 -2
- package/dist/modules/@powerhousedao/reactor-browser/chunk-U36SV333.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-2DNQ5HGB.js → chunk-XBTEGV5M.js} +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/chunk-YG67WAIS.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/{chunk-GWYLZGKO.js → chunk-YWKVPJNL.js} +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/chunk-ZL5IPB6D.js +0 -0
- package/dist/modules/@powerhousedao/reactor-browser/context/index.js +7 -8
- package/dist/modules/@powerhousedao/reactor-browser/context/read-mode.js +6 -7
- package/dist/modules/@powerhousedao/reactor-browser/crypto/browser.js +2 -3
- package/dist/modules/@powerhousedao/reactor-browser/crypto/index.js +2 -3
- package/dist/modules/@powerhousedao/reactor-browser/document-model.js +3 -4
- package/dist/modules/@powerhousedao/reactor-browser/hooks/document-state.js +2 -5
- package/dist/modules/@powerhousedao/reactor-browser/hooks/index.js +22 -23
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useAddDebouncedOperations.js +6 -7
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useConnectCrypto.js +5 -6
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocument.js +2 -3
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocumentDispatch.js +2 -3
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocumentDrives.js +4 -5
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocumentEditor.js +13 -14
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveActions.js +4 -5
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveActionsWithUiNodes.js +9 -10
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveContext.js +2 -3
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useUiNodesContext.js +4 -5
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useUserPermissions.js +2 -3
- package/dist/modules/@powerhousedao/reactor-browser/index.js +27 -28
- package/dist/modules/@powerhousedao/reactor-browser/reactor.js +4 -5
- package/dist/modules/@powerhousedao/reactor-browser/renown/constants.js +1 -2
- package/dist/modules/@powerhousedao/reactor-browser/renown/types.js +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/storage/index.js +1 -2
- package/dist/modules/@powerhousedao/reactor-browser/storage/types.js +1 -2
- package/dist/modules/@powerhousedao/reactor-browser/uiNodes/constants.js +2 -3
- package/dist/modules/@powerhousedao/reactor-browser/uiNodes/types.js +1 -2
- package/dist/modules/@powerhousedao/reactor-browser/utils/index.js +2 -3
- package/dist/modules/@powerhousedao/reactor-browser/utils/signature.js +3 -4
- package/dist/vite-envs.sh +1 -1
- package/nginx.conf +86 -0
- package/nginx.sh +10 -0
- package/package.json +14 -20
- package/dist/modules/@powerhousedao/reactor-browser/chunk-2DNQ5HGB.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-2UVA3JSX.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-6MC6YR4B.js +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/chunk-6MC6YR4B.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-76N27672.js +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/chunk-76N27672.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-ARAPK5F3.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-BB7ACZ2P.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-BGYB4KKP.js +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/chunk-BGYB4KKP.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-DVMSG5VM.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-EVKU6ZC7.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-FD4TUZZS.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-GJOMXDVW.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-GLZ3ZPQT.js +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/chunk-GLZ3ZPQT.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-GWYLZGKO.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-K5KDABES.js +0 -1
- package/dist/modules/@powerhousedao/reactor-browser/chunk-K5KDABES.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-LCQV2CEG.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-LEVFKHRO.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-LFIXFHHR.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-M7F32S4F.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-OJYBFBSZ.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-PLDDJCW6.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-SDNEXZQH.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-SQMQ6KEB.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-SZ7RYA6M.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-THVTRWRZ.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-ULBB7S2G.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-UVZMZ4MR.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-WARL4IRP.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/chunk-XNBBEHKQ.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/context/index.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/context/read-mode.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/crypto/browser.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/crypto/index.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/document-model.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/hooks/document-state.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/hooks/index.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useAddDebouncedOperations.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useConnectCrypto.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocument.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocumentDispatch.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocumentDrives.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDocumentEditor.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveActions.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveActionsWithUiNodes.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveContext.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useUiNodesContext.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/hooks/useUserPermissions.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/index.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/reactor.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/renown/constants.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/renown/types.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/storage/index.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/storage/types.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/uiNodes/constants.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/uiNodes/types.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/utils/index.js.map +0 -7
- package/dist/modules/@powerhousedao/reactor-browser/utils/signature.js.map +0 -7
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js", "../../../../../../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/dist/jszip.min.js", "../../../../../../node_modules/.pnpm/sha1-uint8array@0.10.7/node_modules/sha1-uint8array/dist/sha1-uint8array.mjs", "../../../../../../packages/document-model/dist/src/document/utils/browser.js", "../../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/esm/wrapper.js", "../../../../../../packages/document-model/dist/src/document/utils/crypto.js", "../../../../../../packages/document-model/dist/src/document-model/custom/utils.js", "../../../../../../node_modules/.pnpm/change-case@5.4.4/node_modules/change-case/src/index.ts", "../../../../../../packages/document-model/dist/src/document-model/gen/actions.js", "../../../../../../packages/document-model/dist/src/document-model/gen/creators.js", "../../../../../../node_modules/.pnpm/zod@3.24.2/node_modules/zod/lib/index.mjs", "../../../../../../packages/document-model/dist/src/document/actions/types.js", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/interface.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/constant.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/internal.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/utils/proto.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/utils/draft.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/utils/copy.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/utils/mark.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/utils/deepFreeze.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/utils/forEach.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/utils/finalize.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/patch.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/unsafe.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/map.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/set.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/draft.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/draftify.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/current.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/makeCreator.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/create.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/apply.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/original.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/rawReturn.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/utils/marker.ts", "../../../../../../node_modules/.pnpm/mutative@1.1.0/node_modules/mutative/src/utils/cast.ts", "../../../../../../packages/document-model/dist/src/document/utils/document-helpers.js", "../../../../../../packages/document-model/dist/src/document/schema/zod.js", "../../../../../../packages/document-model/dist/src/document/actions/creators.js", "../../../../../../packages/document-model/dist/src/document/actions/operations.js", "../../../../../../packages/document-model/dist/src/document/reducer.js", "../../../../../../packages/document-model/dist/src/document/utils/errors.js", "../../../../../../packages/document-model/dist/src/document/utils/base.js", "../../../../../../packages/document-model/dist/src/document-model/gen/header/creators.js", "../../../../../../packages/document-model/dist/src/document-model/gen/versioning/creators.js", "../../../../../../packages/document-model/dist/src/document-model/gen/module/creators.js", "../../../../../../packages/document-model/dist/src/document-model/gen/operation-error/creators.js", "../../../../../../packages/document-model/dist/src/document-model/gen/operation-example/creators.js", "../../../../../../packages/document-model/dist/src/document-model/gen/operation/creators.js", "../../../../../../packages/document-model/dist/src/document-model/gen/state/creators.js", "../../../../../../packages/document-model/dist/src/document-model/gen/document-model.js", "../../../../../../packages/document-model/dist/src/document-model/custom/reducers/header.js", "../../../../../../packages/document-model/dist/src/document-model/custom/reducers/module.js", "../../../../../../packages/document-model/dist/src/document-model/custom/reducers/operation-error.js", "../../../../../../packages/document-model/dist/src/document-model/custom/reducers/operation-example.js", "../../../../../../packages/document-model/dist/src/document-model/custom/reducers/operation.js", "../../../../../../packages/document-model/dist/src/document-model/custom/reducers/state.js", "../../../../../../packages/document-model/dist/src/document-model/custom/reducers/versioning.js", "../../../../../../packages/document-model/dist/src/document-model/gen/schema/zod.js", "../../../../../../packages/document-model/dist/src/document-model/gen/reducer.js", "../../../../../../packages/document-model/dist/src/document-model/gen/utils.js", "../../../../../../packages/document-model/dist/src/document/utils/file.js", "../../../../../../node_modules/.pnpm/mime@4.0.6/node_modules/mime/dist/types/standard.js", "../../../../../../node_modules/.pnpm/mime@4.0.6/node_modules/mime/dist/src/Mime.js", "../../../../../../node_modules/.pnpm/mime@4.0.6/node_modules/mime/dist/src/index_lite.js", "../../../../../../packages/document-model/dist/src/document/utils/validation.js", "../../../../../../packages/document-model/dist/src/document-model/gen/constants.js", "../../../../../../packages/document-model/dist/src/document-model/module.js"],
|
|
4
|
-
"sourcesContent": ["'use strict'\n\nconst { hasOwnProperty } = Object.prototype\n\nconst stringify = configure()\n\n// @ts-expect-error\nstringify.configure = configure\n// @ts-expect-error\nstringify.stringify = stringify\n\n// @ts-expect-error\nstringify.default = stringify\n\n// @ts-expect-error used for named export\nexports.stringify = stringify\n// @ts-expect-error used for named export\nexports.configure = configure\n\nmodule.exports = stringify\n\n// eslint-disable-next-line no-control-regex\nconst strEscapeSequencesRegExp = /[\\u0000-\\u001f\\u0022\\u005c\\ud800-\\udfff]/\n\n// Escape C0 control characters, double quotes, the backslash and every code\n// unit with a numeric value in the inclusive range 0xD800 to 0xDFFF.\nfunction strEscape (str) {\n // Some magic numbers that worked out fine while benchmarking with v8 8.0\n if (str.length < 5000 && !strEscapeSequencesRegExp.test(str)) {\n return `\"${str}\"`\n }\n return JSON.stringify(str)\n}\n\nfunction sort (array, comparator) {\n // Insertion sort is very efficient for small input sizes, but it has a bad\n // worst case complexity. Thus, use native array sort for bigger values.\n if (array.length > 2e2 || comparator) {\n return array.sort(comparator)\n }\n for (let i = 1; i < array.length; i++) {\n const currentValue = array[i]\n let position = i\n while (position !== 0 && array[position - 1] > currentValue) {\n array[position] = array[position - 1]\n position--\n }\n array[position] = currentValue\n }\n return array\n}\n\nconst typedArrayPrototypeGetSymbolToStringTag =\n Object.getOwnPropertyDescriptor(\n Object.getPrototypeOf(\n Object.getPrototypeOf(\n new Int8Array()\n )\n ),\n Symbol.toStringTag\n ).get\n\nfunction isTypedArrayWithEntries (value) {\n return typedArrayPrototypeGetSymbolToStringTag.call(value) !== undefined && value.length !== 0\n}\n\nfunction stringifyTypedArray (array, separator, maximumBreadth) {\n if (array.length < maximumBreadth) {\n maximumBreadth = array.length\n }\n const whitespace = separator === ',' ? '' : ' '\n let res = `\"0\":${whitespace}${array[0]}`\n for (let i = 1; i < maximumBreadth; i++) {\n res += `${separator}\"${i}\":${whitespace}${array[i]}`\n }\n return res\n}\n\nfunction getCircularValueOption (options) {\n if (hasOwnProperty.call(options, 'circularValue')) {\n const circularValue = options.circularValue\n if (typeof circularValue === 'string') {\n return `\"${circularValue}\"`\n }\n if (circularValue == null) {\n return circularValue\n }\n if (circularValue === Error || circularValue === TypeError) {\n return {\n toString () {\n throw new TypeError('Converting circular structure to JSON')\n }\n }\n }\n throw new TypeError('The \"circularValue\" argument must be of type string or the value null or undefined')\n }\n return '\"[Circular]\"'\n}\n\nfunction getDeterministicOption (options) {\n let value\n if (hasOwnProperty.call(options, 'deterministic')) {\n value = options.deterministic\n if (typeof value !== 'boolean' && typeof value !== 'function') {\n throw new TypeError('The \"deterministic\" argument must be of type boolean or comparator function')\n }\n }\n return value === undefined ? true : value\n}\n\nfunction getBooleanOption (options, key) {\n let value\n if (hasOwnProperty.call(options, key)) {\n value = options[key]\n if (typeof value !== 'boolean') {\n throw new TypeError(`The \"${key}\" argument must be of type boolean`)\n }\n }\n return value === undefined ? true : value\n}\n\nfunction getPositiveIntegerOption (options, key) {\n let value\n if (hasOwnProperty.call(options, key)) {\n value = options[key]\n if (typeof value !== 'number') {\n throw new TypeError(`The \"${key}\" argument must be of type number`)\n }\n if (!Number.isInteger(value)) {\n throw new TypeError(`The \"${key}\" argument must be an integer`)\n }\n if (value < 1) {\n throw new RangeError(`The \"${key}\" argument must be >= 1`)\n }\n }\n return value === undefined ? Infinity : value\n}\n\nfunction getItemCount (number) {\n if (number === 1) {\n return '1 item'\n }\n return `${number} items`\n}\n\nfunction getUniqueReplacerSet (replacerArray) {\n const replacerSet = new Set()\n for (const value of replacerArray) {\n if (typeof value === 'string' || typeof value === 'number') {\n replacerSet.add(String(value))\n }\n }\n return replacerSet\n}\n\nfunction getStrictOption (options) {\n if (hasOwnProperty.call(options, 'strict')) {\n const value = options.strict\n if (typeof value !== 'boolean') {\n throw new TypeError('The \"strict\" argument must be of type boolean')\n }\n if (value) {\n return (value) => {\n let message = `Object can not safely be stringified. Received type ${typeof value}`\n if (typeof value !== 'function') message += ` (${value.toString()})`\n throw new Error(message)\n }\n }\n }\n}\n\nfunction configure (options) {\n options = { ...options }\n const fail = getStrictOption(options)\n if (fail) {\n if (options.bigint === undefined) {\n options.bigint = false\n }\n if (!('circularValue' in options)) {\n options.circularValue = Error\n }\n }\n const circularValue = getCircularValueOption(options)\n const bigint = getBooleanOption(options, 'bigint')\n const deterministic = getDeterministicOption(options)\n const comparator = typeof deterministic === 'function' ? deterministic : undefined\n const maximumDepth = getPositiveIntegerOption(options, 'maximumDepth')\n const maximumBreadth = getPositiveIntegerOption(options, 'maximumBreadth')\n\n function stringifyFnReplacer (key, parent, stack, replacer, spacer, indentation) {\n let value = parent[key]\n\n if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n value = replacer.call(parent, key, value)\n\n switch (typeof value) {\n case 'string':\n return strEscape(value)\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n let res = ''\n let join = ','\n const originalIndentation = indentation\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n if (spacer !== '') {\n indentation += spacer\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n }\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyFnReplacer(String(i), value, stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyFnReplacer(String(i), value, stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n if (spacer !== '') {\n res += `\\n${originalIndentation}`\n }\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n let whitespace = ''\n let separator = ''\n if (spacer !== '') {\n indentation += spacer\n join = `,\\n${indentation}`\n whitespace = ' '\n }\n const maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (deterministic && !isTypedArrayWithEntries(value)) {\n keys = sort(keys, comparator)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifyFnReplacer(key, value, stack, replacer, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}${strEscape(key)}:${whitespace}${tmp}`\n separator = join\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\":${whitespace}\"${getItemCount(removedKeys)} not stringified\"`\n separator = join\n }\n if (spacer !== '' && separator.length > 1) {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifyArrayReplacer (key, value, stack, replacer, spacer, indentation) {\n if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n\n switch (typeof value) {\n case 'string':\n return strEscape(value)\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n const originalIndentation = indentation\n let res = ''\n let join = ','\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n if (spacer !== '') {\n indentation += spacer\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n }\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyArrayReplacer(String(i), value[i], stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyArrayReplacer(String(i), value[i], stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n if (spacer !== '') {\n res += `\\n${originalIndentation}`\n }\n stack.pop()\n return `[${res}]`\n }\n stack.push(value)\n let whitespace = ''\n if (spacer !== '') {\n indentation += spacer\n join = `,\\n${indentation}`\n whitespace = ' '\n }\n let separator = ''\n for (const key of replacer) {\n const tmp = stringifyArrayReplacer(key, value[key], stack, replacer, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}${strEscape(key)}:${whitespace}${tmp}`\n separator = join\n }\n }\n if (spacer !== '' && separator.length > 1) {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifyIndent (key, value, stack, spacer, indentation) {\n switch (typeof value) {\n case 'string':\n return strEscape(value)\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n // Prevent calling `toJSON` again.\n if (typeof value !== 'object') {\n return stringifyIndent(key, value, stack, spacer, indentation)\n }\n if (value === null) {\n return 'null'\n }\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n const originalIndentation = indentation\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n indentation += spacer\n let res = `\\n${indentation}`\n const join = `,\\n${indentation}`\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyIndent(String(i), value[i], stack, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyIndent(String(i), value[i], stack, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n res += `\\n${originalIndentation}`\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n indentation += spacer\n const join = `,\\n${indentation}`\n let res = ''\n let separator = ''\n let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (isTypedArrayWithEntries(value)) {\n res += stringifyTypedArray(value, join, maximumBreadth)\n keys = keys.slice(value.length)\n maximumPropertiesToStringify -= value.length\n separator = join\n }\n if (deterministic) {\n keys = sort(keys, comparator)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifyIndent(key, value[key], stack, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}${strEscape(key)}: ${tmp}`\n separator = join\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\": \"${getItemCount(removedKeys)} not stringified\"`\n separator = join\n }\n if (separator !== '') {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifySimple (key, value, stack) {\n switch (typeof value) {\n case 'string':\n return strEscape(value)\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n // Prevent calling `toJSON` again\n if (typeof value !== 'object') {\n return stringifySimple(key, value, stack)\n }\n if (value === null) {\n return 'null'\n }\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n let res = ''\n\n const hasLength = value.length !== undefined\n if (hasLength && Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifySimple(String(i), value[i], stack)\n res += tmp !== undefined ? tmp : 'null'\n res += ','\n }\n const tmp = stringifySimple(String(i), value[i], stack)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `,\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n let separator = ''\n let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (hasLength && isTypedArrayWithEntries(value)) {\n res += stringifyTypedArray(value, ',', maximumBreadth)\n keys = keys.slice(value.length)\n maximumPropertiesToStringify -= value.length\n separator = ','\n }\n if (deterministic) {\n keys = sort(keys, comparator)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifySimple(key, value[key], stack)\n if (tmp !== undefined) {\n res += `${separator}${strEscape(key)}:${tmp}`\n separator = ','\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\":\"${getItemCount(removedKeys)} not stringified\"`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringify (value, replacer, space) {\n if (arguments.length > 1) {\n let spacer = ''\n if (typeof space === 'number') {\n spacer = ' '.repeat(Math.min(space, 10))\n } else if (typeof space === 'string') {\n spacer = space.slice(0, 10)\n }\n if (replacer != null) {\n if (typeof replacer === 'function') {\n return stringifyFnReplacer('', { '': value }, [], replacer, spacer, '')\n }\n if (Array.isArray(replacer)) {\n return stringifyArrayReplacer('', value, [], getUniqueReplacerSet(replacer), spacer, '')\n }\n }\n if (spacer.length !== 0) {\n return stringifyIndent('', value, [], spacer, '')\n }\n }\n return stringifySimple('', value, [])\n }\n\n return stringify\n}\n", "/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e<h.length;e++)u(h[e]);return u}({1:[function(e,t,r){\"use strict\";var d=e(\"./utils\"),c=e(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(e){for(var t,r,n,i,s,a,o,h=[],u=0,l=e.length,f=l,c=\"string\"!==d.getTypeOf(e);u<e.length;)f=l-u,n=c?(t=e[u++],r=u<l?e[u++]:0,u<l?e[u++]:0):(t=e.charCodeAt(u++),r=u<l?e.charCodeAt(u++):0,u<l?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<f?(15&r)<<2|n>>6:64,o=2<f?63&n:64,h.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join(\"\")},r.decode=function(e){var t,r,n,i,s,a,o=0,h=0,u=\"data:\";if(e.substr(0,u.length)===u)throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,f=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,\"\")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=c.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h(\"Deflate\",e)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){\"use strict\";function A(e,t){var r,n=\"\";for(r=0;r<t;r++)n+=String.fromCharCode(255&e),e>>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),c=I.transformTo(\"string\",O.utf8encode(h.name)),d=h.comment,p=I.transformTo(\"string\",s(d)),m=I.transformTo(\"string\",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(n,4)+f+b+p}}var I=e(\"../utils\"),i=e(\"../stream/GenericWorker\"),O=e(\"../utf8\"),B=e(\"../crc32\"),R=e(\"../signature\");function s(e,t,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var r=this.bytesWritten-e,n=function(e,t,r,n,i){var s=I.transformTo(\"string\",i(n));return R.CENTRAL_DIRECTORY_END+\"\\0\\0\\0\\0\"+A(e,2)+A(e,2)+A(t,4)+A(r,4)+A(s.length,2)+s}(this.dirRecords.length,r,e,this.zipComment,this.encodeFileName);this.push({data:n,meta:{percent:100}})},s.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},s.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()}),e.on(\"error\",function(e){t.error(e)}),this},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},s.prototype.error=function(e){var t=this._sources;if(!i.prototype.error.call(this,e))return!1;for(var r=0;r<t.length;r++)try{t[r].error(e)}catch(e){}return!0},s.prototype.lock=function(){i.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()},t.exports=s},{\"../crc32\":4,\"../signature\":23,\"../stream/GenericWorker\":28,\"../utf8\":31,\"../utils\":32}],9:[function(e,t,r){\"use strict\";var u=e(\"../compressions\"),n=e(\"./ZipFileWorker\");r.generateWorker=function(e,a,t){var o=new n(a.streamFiles,t,a.platform,a.encodeFileName),h=0;try{e.forEach(function(e,t){h++;var r=function(e,t){var r=e||t,n=u[r];if(!n)throw new Error(r+\" is not a valid compression method !\");return n}(t.options.compression,a.compression),n=t.options.compressionOptions||a.compressionOptions||{},i=t.dir,s=t.date;t._compressWorker(r,n).withStreamInfo(\"file\",{name:e,dir:i,date:s,comment:t.comment||\"\",unixPermissions:t.unixPermissions,dosPermissions:t.dosPermissions}).pipe(o)}),o.entriesCount=h}catch(e){o.error(e)}return o}},{\"../compressions\":3,\"./ZipFileWorker\":8}],10:[function(e,t,r){\"use strict\";function n(){if(!(this instanceof n))return new n;if(arguments.length)throw new Error(\"The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.\");this.files=Object.create(null),this.comment=null,this.root=\"\",this.clone=function(){var e=new n;for(var t in this)\"function\"!=typeof this[t]&&(e[t]=this[t]);return e}}(n.prototype=e(\"./object\")).loadAsync=e(\"./load\"),n.support=e(\"./support\"),n.defaults=e(\"./defaults\"),n.version=\"3.10.1\",n.loadAsync=function(e,t){return(new n).loadAsync(e,t)},n.external=e(\"./external\"),t.exports=n},{\"./defaults\":5,\"./external\":6,\"./load\":11,\"./object\":15,\"./support\":30}],11:[function(e,t,r){\"use strict\";var u=e(\"./utils\"),i=e(\"./external\"),n=e(\"./utf8\"),s=e(\"./zipEntries\"),a=e(\"./stream/Crc32Probe\"),l=e(\"./nodejsUtils\");function f(n){return new i.Promise(function(e,t){var r=n.decompressed.getContentWorker().pipe(new a);r.on(\"error\",function(e){t(e)}).on(\"end\",function(){r.streamInfo.crc32!==n.decompressed.crc32?t(new Error(\"Corrupted zip : CRC32 mismatch\")):e()}).resume()})}t.exports=function(e,o){var h=this;return o=u.extend(o||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:n.utf8decode}),l.isNode&&l.isStream(e)?i.Promise.reject(new Error(\"JSZip can't accept a stream when loading a zip file.\")):u.prepareContent(\"the loaded zip file\",e,!0,o.optimizedBinaryString,o.base64).then(function(e){var t=new s(o);return t.load(e),t}).then(function(e){var t=[i.Promise.resolve(e)],r=e.files;if(o.checkCRC32)for(var n=0;n<r.length;n++)t.push(f(r[n]));return i.Promise.all(t)}).then(function(e){for(var t=e.shift(),r=t.files,n=0;n<r.length;n++){var i=r[n],s=i.fileNameStr,a=u.resolve(i.fileNameStr);h.file(a,i.decompressed,{binary:!0,optimizedBinaryString:!0,date:i.date,dir:i.dir,comment:i.fileCommentStr.length?i.fileCommentStr:null,unixPermissions:i.unixPermissions,dosPermissions:i.dosPermissions,createFolders:o.createFolders}),i.dir||(h.file(a).unsafeOriginalName=s)}return t.zipComment.length&&(h.comment=t.zipComment),h})}},{\"./external\":6,\"./nodejsUtils\":14,\"./stream/Crc32Probe\":25,\"./utf8\":31,\"./utils\":32,\"./zipEntries\":33}],12:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../stream/GenericWorker\");function s(e,t){i.call(this,\"Nodejs stream input adapter for \"+e),this._upstreamEnded=!1,this._bindStream(t)}n.inherits(s,i),s.prototype._bindStream=function(e){var t=this;(this._stream=e).pause(),e.on(\"data\",function(e){t.push({data:e,meta:{percent:0}})}).on(\"error\",function(e){t.isPaused?this.generatedError=e:t.error(e)}).on(\"end\",function(){t.isPaused?t._upstreamEnded=!0:t.end()})},s.prototype.pause=function(){return!!i.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=s},{\"../stream/GenericWorker\":28,\"../utils\":32}],13:[function(e,t,r){\"use strict\";var i=e(\"readable-stream\").Readable;function n(e,t,r){i.call(this,t),this._helper=e;var n=this;e.on(\"data\",function(e,t){n.push(e)||n._helper.pause(),r&&r(t)}).on(\"error\",function(e){n.emit(\"error\",e)}).on(\"end\",function(){n.push(null)})}e(\"../utils\").inherits(n,i),n.prototype._read=function(){this._helper.resume()},t.exports=n},{\"../utils\":32,\"readable-stream\":16}],14:[function(e,t,r){\"use strict\";t.exports={isNode:\"undefined\"!=typeof Buffer,newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if(\"number\"==typeof e)throw new Error('The \"data\" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&\"function\"==typeof e.on&&\"function\"==typeof e.pause&&\"function\"==typeof e.resume}}},{}],15:[function(e,t,r){\"use strict\";function s(e,t,r){var n,i=u.getTypeOf(t),s=u.extend(r||{},f);s.date=s.date||new Date,null!==s.compression&&(s.compression=s.compression.toUpperCase()),\"string\"==typeof s.unixPermissions&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&16384&s.unixPermissions&&(s.dir=!0),s.dosPermissions&&16&s.dosPermissions&&(s.dir=!0),s.dir&&(e=g(e)),s.createFolders&&(n=_(e))&&b.call(this,n,!0);var a=\"string\"===i&&!1===s.binary&&!1===s.base64;r&&void 0!==r.binary||(s.binary=!a),(t instanceof c&&0===t.uncompressedSize||s.dir||!t||0===t.length)&&(s.base64=!1,s.binary=!0,t=\"\",s.compression=\"STORE\",i=\"string\");var o=null;o=t instanceof c||t instanceof l?t:p.isNode&&p.isStream(t)?new m(e,t):u.prepareContent(e,t,s.binary,s.optimizedBinaryString,s.base64);var h=new d(e,o,s);this.files[e]=h}var i=e(\"./utf8\"),u=e(\"./utils\"),l=e(\"./stream/GenericWorker\"),a=e(\"./stream/StreamHelper\"),f=e(\"./defaults\"),c=e(\"./compressedObject\"),d=e(\"./zipObject\"),o=e(\"./generate\"),p=e(\"./nodejsUtils\"),m=e(\"./nodejs/NodejsStreamInputAdapter\"),_=function(e){\"/\"===e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf(\"/\");return 0<t?e.substring(0,t):\"\"},g=function(e){return\"/\"!==e.slice(-1)&&(e+=\"/\"),e},b=function(e,t){return t=void 0!==t?t:f.createFolders,e=g(e),this.files[e]||s.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function h(e){return\"[object RegExp]\"===Object.prototype.toString.call(e)}var n={load:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},forEach:function(e){var t,r,n;for(t in this.files)n=this.files[t],(r=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(r,n)},filter:function(r){var n=[];return this.forEach(function(e,t){r(e,t)&&n.push(t)}),n},file:function(e,t,r){if(1!==arguments.length)return e=this.root+e,s.call(this,e,t,r),this;if(h(e)){var n=e;return this.filter(function(e,t){return!t.dir&&n.test(e)})}var i=this.files[this.root+e];return i&&!i.dir?i:null},folder:function(r){if(!r)return this;if(h(r))return this.filter(function(e,t){return t.dir&&r.test(e)});var e=this.root+r,t=b.call(this,e),n=this.clone();return n.root=t.name,n},remove:function(r){r=this.root+r;var e=this.files[r];if(e||(\"/\"!==r.slice(-1)&&(r+=\"/\"),e=this.files[r]),e&&!e.dir)delete this.files[r];else for(var t=this.filter(function(e,t){return t.name.slice(0,r.length)===r}),n=0;n<t.length;n++)delete this.files[t[n].name];return this},generate:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},generateInternalStream:function(e){var t,r={};try{if((r=u.extend(e||{},{streamFiles:!1,compression:\"STORE\",compressionOptions:null,type:\"\",platform:\"DOS\",comment:null,mimeType:\"application/zip\",encodeFileName:i.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),\"binarystring\"===r.type&&(r.type=\"string\"),!r.type)throw new Error(\"No output type specified.\");u.checkSupport(r.type),\"darwin\"!==r.platform&&\"freebsd\"!==r.platform&&\"linux\"!==r.platform&&\"sunos\"!==r.platform||(r.platform=\"UNIX\"),\"win32\"===r.platform&&(r.platform=\"DOS\");var n=r.comment||this.comment||\"\";t=o.generateWorker(this,r,n)}catch(e){(t=new l(\"error\")).error(e)}return new a(t,r.type||\"string\",r.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return(e=e||{}).type||(e.type=\"nodebuffer\"),this.generateInternalStream(e).toNodejsStream(t)}};t.exports=n},{\"./compressedObject\":2,\"./defaults\":5,\"./generate\":9,\"./nodejs/NodejsStreamInputAdapter\":12,\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31,\"./utils\":32,\"./zipObject\":35}],16:[function(e,t,r){\"use strict\";t.exports=e(\"stream\")},{stream:void 0}],17:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=255&e[t]}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data[this.zero+e]},i.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===t&&this.data[s+1]===r&&this.data[s+2]===n&&this.data[s+3]===i)return s-this.zero;return-1},i.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.readData(4);return t===s[0]&&r===s[1]&&n===s[2]&&i===s[3]},i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],18:[function(e,t,r){\"use strict\";var n=e(\"../utils\");function i(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}i.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error(\"End of data reached (data length = \"+this.length+\", asked index = \"+e+\"). Corrupted zip ?\")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(){},readInt:function(e){var t,r=0;for(this.checkOffset(e),t=this.index+e-1;t>=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r<this._listeners[e].length;r++)this._listeners[e][r].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.end()}),e.on(\"error\",function(e){t.error(e)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var e=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e=\"Worker \"+this.name;return this.previous?this.previous+\" -> \"+e:e}},t.exports=n},{}],29:[function(e,t,r){\"use strict\";var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),u=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on(\"data\",function(e,t){n.push(e),o&&o(t)}).on(\"error\",function(e){n=[],r(e)}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r<t.length;r++)s+=t[r].length;switch(e){case\"string\":return t.join(\"\");case\"array\":return Array.prototype.concat.apply([],t);case\"uint8array\":for(i=new Uint8Array(s),r=0;r<t.length;r++)i.set(t[r],n),n+=t[r].length;return i;case\"nodebuffer\":return Buffer.concat(t);default:throw new Error(\"concat : unsupported type '\"+e+\"'\")}}(i,n),a);t(e)}catch(e){r(e)}n=[]}).resume()})}function f(e,t,r){var n=t;switch(t){case\"blob\":case\"arraybuffer\":n=\"uint8array\";break;case\"base64\":n=\"string\"}try{this._internalType=n,this._outputType=t,this._mimeType=r,h.checkSupport(n),this._worker=e.pipe(new i(n)),e.lock()}catch(e){this._worker=new s(\"error\"),this._worker.error(e)}}f.prototype={accumulate:function(e){return l(this,e)},on:function(e,t){var r=this;return\"data\"===e?this._worker.on(e,function(e){t.call(r,e.data,e.meta)}):this._worker.on(e,function(){h.delay(t,arguments,r)}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(h.checkSupport(\"nodestream\"),\"nodebuffer\"!==this._outputType)throw new Error(this._outputType+\" is not supported by this method\");return new o(this,{objectMode:\"nodebuffer\"!==this._outputType},e)}},t.exports=f},{\"../base64\":1,\"../external\":6,\"../nodejs/NodejsStreamOutputAdapter\":13,\"../support\":30,\"../utils\":32,\"./ConvertWorker\":24,\"./GenericWorker\":28}],30:[function(e,t,r){\"use strict\";if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array,r.nodebuffer=\"undefined\"!=typeof Buffer,r.uint8array=\"undefined\"!=typeof Uint8Array,\"undefined\"==typeof ArrayBuffer)r.blob=!1;else{var n=new ArrayBuffer(0);try{r.blob=0===new Blob([n],{type:\"application/zip\"}).size}catch(e){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(n),r.blob=0===i.getBlob(\"application/zip\").size}catch(e){r.blob=!1}}}try{r.nodestream=!!e(\"readable-stream\").Readable}catch(e){r.nodestream=!1}},{\"readable-stream\":16}],31:[function(e,t,s){\"use strict\";for(var o=e(\"./utils\"),h=e(\"./support\"),r=e(\"./nodejsUtils\"),n=e(\"./stream/GenericWorker\"),u=new Array(256),i=0;i<256;i++)u[i]=252<=i?6:248<=i?5:240<=i?4:224<=i?3:192<=i?2:1;u[254]=u[254]=1;function a(){n.call(this,\"utf-8 decode\"),this.leftOver=null}function l(){n.call(this,\"utf-8 encode\")}s.utf8encode=function(e){return h.nodebuffer?r.newBufferFrom(e,\"utf-8\"):function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=h.uint8array?new Uint8Array(o):new Array(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t<s;)if((n=e[t++])<128)a[r++]=n;else if(4<(i=u[n]))a[r++]=65533,t+=i-1;else{for(n&=2===i?31:3===i?15:7;1<i&&t<s;)n=n<<6|63&e[t++],i--;1<i?a[r++]=65533:n<65536?a[r++]=n:(n-=65536,a[r++]=55296|n>>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,a){\"use strict\";var o=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),u=e(\"./external\");function n(e){return e}function l(e,t){for(var r=0;r<e.length;++r)t[r]=255&e.charCodeAt(r);return t}e(\"setimmediate\"),a.newBlob=function(t,r){a.checkSupport(\"blob\");try{return new Blob([t],{type:r})}catch(e){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return n.append(t),n.getBlob(r)}catch(e){throw new Error(\"Bug : can't construct the Blob.\")}}};var i={stringifyByChunk:function(e,t,r){var n=[],i=0,s=e.length;if(s<=r)return String.fromCharCode.apply(null,e);for(;i<s;)\"array\"===t||\"nodebuffer\"===t?n.push(String.fromCharCode.apply(null,e.slice(i,Math.min(i+r,s)))):n.push(String.fromCharCode.apply(null,e.subarray(i,Math.min(i+r,s)))),i+=r;return n.join(\"\")},stringifyByChar:function(e){for(var t=\"\",r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},applyCanBeUsed:{uint8array:function(){try{return o.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(e){return!1}}(),nodebuffer:function(){try{return o.nodebuffer&&1===String.fromCharCode.apply(null,r.allocBuffer(1)).length}catch(e){return!1}}()}};function s(e){var t=65536,r=a.getTypeOf(e),n=!0;if(\"uint8array\"===r?n=i.applyCanBeUsed.uint8array:\"nodebuffer\"===r&&(n=i.applyCanBeUsed.nodebuffer),n)for(;1<t;)try{return i.stringifyByChunk(e,r,t)}catch(e){t=Math.floor(t/2)}return i.stringifyByChar(e)}function f(e,t){for(var r=0;r<e.length;r++)t[r]=e[r];return t}a.applyFromCharCode=s;var c={};c.string={string:n,array:function(e){return l(e,new Array(e.length))},arraybuffer:function(e){return c.string.uint8array(e).buffer},uint8array:function(e){return l(e,new Uint8Array(e.length))},nodebuffer:function(e){return l(e,r.allocBuffer(e.length))}},c.array={string:s,array:n,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(e)}},c.arraybuffer={string:function(e){return s(new Uint8Array(e))},array:function(e){return f(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:n,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(new Uint8Array(e))}},c.uint8array={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:n,nodebuffer:function(e){return r.newBufferFrom(e)}},c.nodebuffer={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return c.nodebuffer.uint8array(e).buffer},uint8array:function(e){return f(e,new Uint8Array(e.length))},nodebuffer:n},a.transformTo=function(e,t){if(t=t||\"\",!e)return t;a.checkSupport(e);var r=a.getTypeOf(t);return c[r][e](t)},a.resolve=function(e){for(var t=e.split(\"/\"),r=[],n=0;n<t.length;n++){var i=t[n];\".\"===i||\"\"===i&&0!==n&&n!==t.length-1||(\"..\"===i?r.pop():r.push(i))}return r.join(\"/\")},a.getTypeOf=function(e){return\"string\"==typeof e?\"string\":\"[object Array]\"===Object.prototype.toString.call(e)?\"array\":o.nodebuffer&&r.isBuffer(e)?\"nodebuffer\":o.uint8array&&e instanceof Uint8Array?\"uint8array\":o.arraybuffer&&e instanceof ArrayBuffer?\"arraybuffer\":void 0},a.checkSupport=function(e){if(!o[e.toLowerCase()])throw new Error(e+\" is not supported by this platform\")},a.MAX_VALUE_16BITS=65535,a.MAX_VALUE_32BITS=-1,a.pretty=function(e){var t,r,n=\"\";for(r=0;r<(e||\"\").length;r++)n+=\"\\\\x\"+((t=e.charCodeAt(r))<16?\"0\":\"\")+t.toString(16).toUpperCase();return n},a.delay=function(e,t,r){setImmediate(function(){e.apply(r||null,t||[])})},a.inherits=function(e,t){function r(){}r.prototype=t.prototype,e.prototype=new r},a.extend=function(){var e,t,r={};for(e=0;e<arguments.length;e++)for(t in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],t)&&void 0===r[t]&&(r[t]=arguments[e][t]);return r},a.prepareContent=function(r,e,n,i,s){return u.Promise.resolve(e).then(function(n){return o.blob&&(n instanceof Blob||-1!==[\"[object File]\",\"[object Blob]\"].indexOf(Object.prototype.toString.call(n)))&&\"undefined\"!=typeof FileReader?new u.Promise(function(t,r){var e=new FileReader;e.onload=function(e){t(e.target.result)},e.onerror=function(e){r(e.target.error)},e.readAsArrayBuffer(n)}):n}).then(function(e){var t=a.getTypeOf(e);return t?(\"arraybuffer\"===t?e=a.transformTo(\"uint8array\",e):\"string\"===t&&(s?e=h.decode(e):n&&!0!==i&&(e=function(e){return l(e,o.uint8array?new Uint8Array(e.length):new Array(e.length))}(e))),e):u.Promise.reject(new Error(\"Can't read the data of '\"+r+\"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?\"))})}},{\"./base64\":1,\"./external\":6,\"./nodejsUtils\":14,\"./support\":30,setimmediate:54}],33:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),i=e(\"./utils\"),s=e(\"./signature\"),a=e(\"./zipEntry\"),o=e(\"./support\");function h(e){this.files=[],this.loadOptions=e}h.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error(\"Corrupted zip or bug: unexpected signature (\"+i.pretty(t)+\", expected \"+i.pretty(e)+\")\")}},isSignature:function(e,t){var r=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4)===t;return this.reader.setIndex(r),n},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=o.uint8array?\"uint8array\":\"array\",r=i.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(r)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e,t,r,n=this.zip64EndOfCentralSize-44;0<n;)e=this.reader.readInt(2),t=this.reader.readInt(4),r=this.reader.readData(t),this.zip64ExtensibleData[e]={id:e,length:t,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error(\"Multi-volumes zip are not supported\")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(e=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error(\"Corrupted zip or bug: expected \"+this.centralDirRecords+\" records in central dir, got \"+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(e<0)throw!this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error(\"Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html\"):new Error(\"Corrupted zip: can't find end of central directory\");this.reader.setIndex(e);var t=e;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,(e=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory locator\");if(this.reader.setIndex(e),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory\");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var n=t-r;if(0<n)this.isSignature(t,s.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error(\"Corrupted zip: missing \"+Math.abs(n)+\" bytes.\")},prepareReader:function(e){this.reader=n(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=h},{\"./reader/readerFor\":22,\"./signature\":23,\"./support\":30,\"./utils\":32,\"./zipEntry\":34}],34:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),s=e(\"./utils\"),i=e(\"./compressedObject\"),a=e(\"./crc32\"),o=e(\"./utf8\"),h=e(\"./compressions\"),u=e(\"./support\");function l(e,t){this.options=e,this.loadOptions=t}l.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(e){var t,r;if(e.skip(22),this.fileNameLength=e.readInt(2),r=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error(\"Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)\");if(null===(t=function(e){for(var t in h)if(Object.prototype.hasOwnProperty.call(h,t)&&h[t].magic===e)return h[t];return null}(this.compressionMethod)))throw new Error(\"Corrupted zip : compression \"+s.pretty(this.compressionMethod)+\" unknown (inner file : \"+s.transformTo(\"string\",this.fileName)+\")\");this.decompressed=new i(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error(\"Encrypted zip are not supported\");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<i;)t=e.readInt(2),r=e.readInt(2),n=e.readData(r),this.extraFields[t]={id:t,length:r,value:n};e.setIndex(i)},handleUTF8:function(){var e=u.uint8array?\"uint8array\":\"array\";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(null!==t)this.fileNameStr=t;else{var r=s.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r)}var n=this.findExtraFieldUnicodeComment();if(null!==n)this.fileCommentStr=n;else{var i=s.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(i)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileName)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileComment)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null}},t.exports=l},{\"./compressedObject\":2,\"./compressions\":3,\"./crc32\":4,\"./reader/readerFor\":22,\"./support\":30,\"./utf8\":31,\"./utils\":32}],35:[function(e,t,r){\"use strict\";function n(e,t,r){this.name=e,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=t,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}}var s=e(\"./stream/StreamHelper\"),i=e(\"./stream/DataWorker\"),a=e(\"./utf8\"),o=e(\"./compressedObject\"),h=e(\"./stream/GenericWorker\");n.prototype={internalStream:function(e){var t=null,r=\"string\";try{if(!e)throw new Error(\"No output type specified.\");var n=\"string\"===(r=e.toLowerCase())||\"text\"===r;\"binarystring\"!==r&&\"text\"!==r||(r=\"string\"),t=this._decompressWorker();var i=!this._dataBinary;i&&!n&&(t=t.pipe(new a.Utf8EncodeWorker)),!i&&n&&(t=t.pipe(new a.Utf8DecodeWorker))}catch(e){(t=new h(\"error\")).error(e)}return new s(t,r,\"\")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||\"nodebuffer\").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof o&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(r,e,t)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof h?this._data:new i(this._data)}};for(var u=[\"asText\",\"asBinary\",\"asNodeBuffer\",\"asUint8Array\",\"asArrayBuffer\"],l=function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},f=0;f<u.length;f++)n.prototype[u[f]]=l;t.exports=n},{\"./compressedObject\":2,\"./stream/DataWorker\":27,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31}],36:[function(e,l,t){(function(t){\"use strict\";var r,n,e=t.MutationObserver||t.WebKitMutationObserver;if(e){var i=0,s=new e(u),a=t.document.createTextNode(\"\");s.observe(a,{characterData:!0}),r=function(){a.data=i=++i%2}}else if(t.setImmediate||void 0===t.MessageChannel)r=\"document\"in t&&\"onreadystatechange\"in t.document.createElement(\"script\")?function(){var e=t.document.createElement(\"script\");e.onreadystatechange=function(){u(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(u,0)};else{var o=new t.MessageChannel;o.port1.onmessage=u,r=function(){o.port2.postMessage(0)}}var h=[];function u(){var e,t;n=!0;for(var r=h.length;r;){for(t=h,h=[],e=-1;++e<r;)t[e]();r=h.length}n=!1}l.exports=function(e){1!==h.push(e)||n||r()}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],37:[function(e,t,r){\"use strict\";var i=e(\"immediate\");function u(){}var l={},s=[\"REJECTED\"],a=[\"FULFILLED\"],n=[\"PENDING\"];function o(e){if(\"function\"!=typeof e)throw new TypeError(\"resolver must be a function\");this.state=n,this.queue=[],this.outcome=void 0,e!==u&&d(this,e)}function h(e,t,r){this.promise=e,\"function\"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),\"function\"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function f(t,r,n){i(function(){var e;try{e=r(n)}catch(e){return l.reject(t,e)}e===t?l.reject(t,new TypeError(\"Cannot resolve promise with itself\")):l.resolve(t,e)})}function c(e){var t=e&&e.then;if(e&&(\"object\"==typeof e||\"function\"==typeof e)&&\"function\"==typeof t)return function(){t.apply(e,arguments)}}function d(t,e){var r=!1;function n(e){r||(r=!0,l.reject(t,e))}function i(e){r||(r=!0,l.resolve(t,e))}var s=p(function(){e(i,n)});\"error\"===s.status&&n(s.value)}function p(e,t){var r={};try{r.value=e(t),r.status=\"success\"}catch(e){r.status=\"error\",r.value=e}return r}(t.exports=o).prototype.finally=function(t){if(\"function\"!=typeof t)return this;var r=this.constructor;return this.then(function(e){return r.resolve(t()).then(function(){return e})},function(e){return r.resolve(t()).then(function(){throw e})})},o.prototype.catch=function(e){return this.then(null,e)},o.prototype.then=function(e,t){if(\"function\"!=typeof e&&this.state===a||\"function\"!=typeof t&&this.state===s)return this;var r=new this.constructor(u);this.state!==n?f(r,this.state===a?e:t,this.outcome):this.queue.push(new h(r,e,t));return r},h.prototype.callFulfilled=function(e){l.resolve(this.promise,e)},h.prototype.otherCallFulfilled=function(e){f(this.promise,this.onFulfilled,e)},h.prototype.callRejected=function(e){l.reject(this.promise,e)},h.prototype.otherCallRejected=function(e){f(this.promise,this.onRejected,e)},l.resolve=function(e,t){var r=p(c,t);if(\"error\"===r.status)return l.reject(e,r.value);var n=r.value;if(n)d(e,n);else{e.state=a,e.outcome=t;for(var i=-1,s=e.queue.length;++i<s;)e.queue[i].callFulfilled(t)}return e},l.reject=function(e,t){e.state=s,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},o.resolve=function(e){if(e instanceof this)return e;return l.resolve(new this(u),e)},o.reject=function(e){var t=new this(u);return l.reject(t,e)},o.all=function(e){var r=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var n=e.length,i=!1;if(!n)return this.resolve([]);var s=new Array(n),a=0,t=-1,o=new this(u);for(;++t<n;)h(e[t],t);return o;function h(e,t){r.resolve(e).then(function(e){s[t]=e,++a!==n||i||(i=!0,l.resolve(o,s))},function(e){i||(i=!0,l.reject(o,e))})}},o.race=function(e){var t=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var r=e.length,n=!1;if(!r)return this.resolve([]);var i=-1,s=new this(u);for(;++i<r;)a=e[i],t.resolve(a).then(function(e){n||(n=!0,l.resolve(s,e))},function(e){n||(n=!0,l.reject(s,e))});var a;return s}},{immediate:36}],38:[function(e,t,r){\"use strict\";var n={};(0,e(\"./lib/utils/common\").assign)(n,e(\"./lib/deflate\"),e(\"./lib/inflate\"),e(\"./lib/zlib/constants\")),t.exports=n},{\"./lib/deflate\":39,\"./lib/inflate\":40,\"./lib/utils/common\":41,\"./lib/zlib/constants\":44}],39:[function(e,t,r){\"use strict\";var a=e(\"./zlib/deflate\"),o=e(\"./utils/common\"),h=e(\"./utils/strings\"),i=e(\"./zlib/messages\"),s=e(\"./zlib/zstream\"),u=Object.prototype.toString,l=0,f=-1,c=0,d=8;function p(e){if(!(this instanceof p))return new p(e);this.options=o.assign({level:f,method:d,chunkSize:16384,windowBits:15,memLevel:8,strategy:c,to:\"\"},e||{});var t=this.options;t.raw&&0<t.windowBits?t.windowBits=-t.windowBits:t.gzip&&0<t.windowBits&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var r=a.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==l)throw new Error(i[r]);if(t.header&&a.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(n=\"string\"==typeof t.dictionary?h.string2buf(t.dictionary):\"[object ArrayBuffer]\"===u.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(r=a.deflateSetDictionary(this.strm,n))!==l)throw new Error(i[r]);this._dict_set=!0}}function n(e,t){var r=new p(t);if(r.push(e,!0),r.err)throw r.msg||i[r.err];return r.result}p.prototype.push=function(e,t){var r,n,i=this.strm,s=this.options.chunkSize;if(this.ended)return!1;n=t===~~t?t:!0===t?4:0,\"string\"==typeof e?i.input=h.string2buf(e):\"[object ArrayBuffer]\"===u.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new o.Buf8(s),i.next_out=0,i.avail_out=s),1!==(r=a.deflate(i,n))&&r!==l)return this.onEnd(r),!(this.ended=!0);0!==i.avail_out&&(0!==i.avail_in||4!==n&&2!==n)||(\"string\"===this.options.to?this.onData(h.buf2binstring(o.shrinkBuf(i.output,i.next_out))):this.onData(o.shrinkBuf(i.output,i.next_out)))}while((0<i.avail_in||0===i.avail_out)&&1!==r);return 4===n?(r=a.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===l):2!==n||(this.onEnd(l),!(i.avail_out=0))},p.prototype.onData=function(e){this.chunks.push(e)},p.prototype.onEnd=function(e){e===l&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Deflate=p,r.deflate=n,r.deflateRaw=function(e,t){return(t=t||{}).raw=!0,n(e,t)},r.gzip=function(e,t){return(t=t||{}).gzip=!0,n(e,t)}},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/deflate\":46,\"./zlib/messages\":51,\"./zlib/zstream\":53}],40:[function(e,t,r){\"use strict\";var c=e(\"./zlib/inflate\"),d=e(\"./utils/common\"),p=e(\"./utils/strings\"),m=e(\"./zlib/constants\"),n=e(\"./zlib/messages\"),i=e(\"./zlib/zstream\"),s=e(\"./zlib/gzheader\"),_=Object.prototype.toString;function a(e){if(!(this instanceof a))return new a(e);this.options=d.assign({chunkSize:16384,windowBits:0,to:\"\"},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new i,this.strm.avail_out=0;var r=c.inflateInit2(this.strm,t.windowBits);if(r!==m.Z_OK)throw new Error(n[r]);this.header=new s,c.inflateGetHeader(this.strm,this.header)}function o(e,t){var r=new a(t);if(r.push(e,!0),r.err)throw r.msg||n[r.err];return r.result}a.prototype.push=function(e,t){var r,n,i,s,a,o,h=this.strm,u=this.options.chunkSize,l=this.options.dictionary,f=!1;if(this.ended)return!1;n=t===~~t?t:!0===t?m.Z_FINISH:m.Z_NO_FLUSH,\"string\"==typeof e?h.input=p.binstring2buf(e):\"[object ArrayBuffer]\"===_.call(e)?h.input=new Uint8Array(e):h.input=e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new d.Buf8(u),h.next_out=0,h.avail_out=u),(r=c.inflate(h,m.Z_NO_FLUSH))===m.Z_NEED_DICT&&l&&(o=\"string\"==typeof l?p.string2buf(l):\"[object ArrayBuffer]\"===_.call(l)?new Uint8Array(l):l,r=c.inflateSetDictionary(this.strm,o)),r===m.Z_BUF_ERROR&&!0===f&&(r=m.Z_OK,f=!1),r!==m.Z_STREAM_END&&r!==m.Z_OK)return this.onEnd(r),!(this.ended=!0);h.next_out&&(0!==h.avail_out&&r!==m.Z_STREAM_END&&(0!==h.avail_in||n!==m.Z_FINISH&&n!==m.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(i=p.utf8border(h.output,h.next_out),s=h.next_out-i,a=p.buf2string(h.output,i),h.next_out=s,h.avail_out=u-s,s&&d.arraySet(h.output,h.output,i,s,0),this.onData(a)):this.onData(d.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(f=!0)}while((0<h.avail_in||0===h.avail_out)&&r!==m.Z_STREAM_END);return r===m.Z_STREAM_END&&(n=m.Z_FINISH),n===m.Z_FINISH?(r=c.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===m.Z_OK):n!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),!(h.avail_out=0))},a.prototype.onData=function(e){this.chunks.push(e)},a.prototype.onEnd=function(e){e===m.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=d.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Inflate=a,r.inflate=o,r.inflateRaw=function(e,t){return(t=t||{}).raw=!0,o(e,t)},r.ungzip=o},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/constants\":44,\"./zlib/gzheader\":47,\"./zlib/inflate\":49,\"./zlib/messages\":51,\"./zlib/zstream\":53}],41:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;r.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if(\"object\"!=typeof r)throw new TypeError(r+\"must be non-object\");for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n])}}return e},r.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){var t,r,n,i,s,a;for(t=n=0,r=e.length;t<r;t++)n+=e[t].length;for(a=new Uint8Array(n),t=i=0,r=e.length;t<r;t++)s=e[t],a.set(s,i),i+=s.length;return a}},s={arraySet:function(e,t,r,n,i){for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){return[].concat.apply([],e)}};r.setTyped=function(e){e?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,i)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(n)},{}],42:[function(e,t,r){\"use strict\";var h=e(\"./common\"),i=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(e){i=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){s=!1}for(var u=new h.Buf8(256),n=0;n<256;n++)u[n]=252<=n?6:248<=n?5:240<=n?4:224<=n?3:192<=n?2:1;function l(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&i))return String.fromCharCode.apply(null,h.shrinkBuf(e,t));for(var r=\"\",n=0;n<t;n++)r+=String.fromCharCode(e[n]);return r}u[254]=u[254]=1,r.string2buf=function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=new h.Buf8(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r<n;r++)t[r]=e.charCodeAt(r);return t},r.buf2string=function(e,t){var r,n,i,s,a=t||e.length,o=new Array(2*a);for(r=n=0;r<a;)if((i=e[r++])<128)o[n++]=i;else if(4<(s=u[i]))o[n++]=65533,r+=s-1;else{for(i&=2===s?31:3===s?15:7;1<s&&r<a;)i=i<<6|63&e[r++],s--;1<s?o[n++]=65533:i<65536?o[n++]=i:(i-=65536,o[n++]=55296|i>>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3<r?2e3:r;s=s+(i=i+t[n++]|0)|0,--a;);i%=65521,s%=65521}return i|s<<16|0}},{}],44:[function(e,t,r){\"use strict\";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,t,r){\"use strict\";var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){\"use strict\";var h,c=e(\"../utils/common\"),u=e(\"./trees\"),d=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4<e?9:0)}function D(e){for(var t=e.length;0<=--t;)e[t]=0}function F(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&s<c);if(n=S-(c-s),s=c-S,a<n){if(e.match_start=t,o<=(a=n))break;d=u[s+a-1],p=u[s+a]}}}while((t=f[t&l])>h&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u<l&&(l=u),r=0===l?0:(a.avail_in-=l,c.arraySet(o,a.input,a.next_in,l,h),1===a.state.wrap?a.adler=d(a.adler,o,l,h):2===a.state.wrap&&(a.adler=p(a.adler,o,l,h)),a.next_in+=l,a.total_in+=l,l),e.lookahead+=r,e.lookahead+e.insert>=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+x-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<x)););}while(e.lookahead<z&&0!==e.strm.avail_in)}function Z(e,t){for(var r,n;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r)),e.match_length>=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart,0!=--e.match_length;);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function W(e,t){for(var r,n,i;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=x-1,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r),e.match_length<=5&&(1===e.strategy||e.match_length===x&&4096<e.strstart-e.match_start)&&(e.match_length=x-1)),e.prev_length>=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!=--e.prev_length;);if(e.match_available=0,e.match_length=x-1,e.strstart++,n&&(N(e,!1),0===e.strm.avail_out))return A}else if(e.match_available){if((n=u._tr_tally(e,0,e.window[e.strstart-1]))&&N(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return A}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=u._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function M(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}function H(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=v,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new c.Buf16(2*w),this.dyn_dtree=new c.Buf16(2*(2*a+1)),this.bl_tree=new c.Buf16(2*(2*o+1)),D(this.dyn_ltree),D(this.dyn_dtree),D(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new c.Buf16(k+1),this.heap=new c.Buf16(2*s+1),D(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new c.Buf16(2*s+1),D(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function G(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=i,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?C:E,e.adler=2===t.wrap?0:1,t.last_flush=l,u._tr_init(t),m):R(e,_)}function K(e){var t=G(e);return t===m&&function(e){e.window_size=2*e.w_size,D(e.head),e.max_lazy_match=h[e.level].max_lazy,e.good_match=h[e.level].good_length,e.nice_match=h[e.level].nice_length,e.max_chain_length=h[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=x-1,e.match_available=0,e.ins_h=0}(e.state),t}function Y(e,t,r,n,i,s){if(!e)return _;var a=1;if(t===g&&(t=6),n<0?(a=0,n=-n):15<n&&(a=2,n-=16),i<1||y<i||r!==v||n<8||15<n||t<0||9<t||s<0||b<s)return R(e,_);8===n&&(n=9);var o=new H;return(e.state=o).strm=e,o.wrap=a,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+x-1)/x),o.window=new c.Buf8(2*o.w_size),o.head=new c.Buf16(o.hash_size),o.prev=new c.Buf16(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new c.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=s,o.method=r,K(e)}h=[new M(0,0,0,0,function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5<t||t<0)return e?R(e,_):_;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||666===n.status&&t!==f)return R(e,0===e.avail_out?-5:_);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===C)if(2===n.wrap)e.adler=0,U(n,31),U(n,139),U(n,8),n.gzhead?(U(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),U(n,255&n.gzhead.time),U(n,n.gzhead.time>>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,U(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,U(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0<e.strstart&&(n=a[i=e.strstart-1])===a[++i]&&n===a[++i]&&n===a[++i]){s=e.strstart+S;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&i<s);e.match_length=S-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0<n.wrap&&(n.wrap=-n.wrap),0!==n.pending?m:1)},r.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==C&&69!==t&&73!==t&&91!==t&&103!==t&&t!==E&&666!==t?R(e,_):(e.state=null,t===E?R(e,-3):m):_},r.deflateSetDictionary=function(e,t){var r,n,i,s,a,o,h,u,l=t.length;if(!e||!e.state)return _;if(2===(s=(r=e.state).wrap)||1===s&&r.status!==C||r.lookahead)return _;for(1===s&&(e.adler=d(e.adler,t,l,0)),r.wrap=0,l>=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+x-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++,--i;);r.strstart=n,r.lookahead=x-1,j(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=x-1,r.match_available=0,e.next_in=o,e.input=h,e.avail_in=a,r.wrap=s,m},r.deflateInfo=\"pako deflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./messages\":51,\"./trees\":52}],47:[function(e,t,r){\"use strict\";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}},{}],48:[function(e,t,r){\"use strict\";t.exports=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C;r=e.state,n=e.next_in,z=e.input,i=n+(e.avail_in-5),s=e.next_out,C=e.output,a=s-(t-e.avail_out),o=s+(e.avail_out-257),h=r.dmax,u=r.wsize,l=r.whave,f=r.wnext,c=r.window,d=r.hold,p=r.bits,m=r.lencode,_=r.distcode,g=(1<<r.lenbits)-1,b=(1<<r.distbits)-1;e:do{p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=m[d&g];t:for(;;){if(d>>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<<y)-1)];continue t}if(32&y){r.mode=12;break e}e.msg=\"invalid literal/length code\",r.mode=30;break e}w=65535&v,(y&=15)&&(p<y&&(d+=z[n++]<<p,p+=8),w+=d&(1<<y)-1,d>>>=y,p-=y),p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=_[d&b];r:for(;;){if(d>>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<<y)-1)];continue r}e.msg=\"invalid distance code\",r.mode=30;break e}if(k=65535&v,p<(y&=15)&&(d+=z[n++]<<p,(p+=8)<y&&(d+=z[n++]<<p,p+=8)),h<(k+=d&(1<<y)-1)){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(d>>>=y,p-=y,(y=s-a)<k){if(l<(y=k-y)&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(S=c,(x=0)===f){if(x+=u-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C}}else if(f<y){if(x+=u+f-y,(y-=f)<w){for(w-=y;C[s++]=c[x++],--y;);if(x=0,f<w){for(w-=y=f;C[s++]=c[x++],--y;);x=s-k,S=C}}}else if(x+=f-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C}for(;2<w;)C[s++]=S[x++],C[s++]=S[x++],C[s++]=S[x++],w-=3;w&&(C[s++]=S[x++],1<w&&(C[s++]=S[x++]))}else{for(x=s-k;C[s++]=C[x++],C[s++]=C[x++],C[s++]=C[x++],2<(w-=3););w&&(C[s++]=C[x++],1<w&&(C[s++]=C[x++]))}break}}break}}while(n<i&&s<o);n-=w=p>>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n<i?i-n+5:5-(n-i),e.avail_out=s<o?o-s+257:257-(s-o),r.hold=d,r.bits=p}},{}],49:[function(e,t,r){\"use strict\";var I=e(\"../utils/common\"),O=e(\"./adler32\"),B=e(\"./crc32\"),R=e(\"./inffast\"),T=e(\"./inftrees\"),D=1,F=2,N=0,U=-2,P=1,n=852,i=592;function L(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?U:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,o(e))):U}function u(e,t){var r,n;return e?(n=new s,(e.state=n).window=null,(r=h(e,t))!==N&&(e.state=null),r):U}var l,f,c=!0;function j(e){if(c){var t;for(l=new I.Buf32(512),f=new I.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(T(D,e.lens,0,288,l,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;T(F,e.lens,0,32,f,0,e.work,{bits:5}),c=!1}e.lencode=l,e.lenbits=9,e.distcode=f,e.distbits=5}function Z(e,t,r,n){var i,s=e.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new I.Buf8(s.wsize)),n>=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0}r.inflateReset=o,r.inflateReset2=h,r.inflateResetKeep=a,r.inflateInit=function(e){return u(e,15)},r.inflateInit2=u,r.inflate=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C=0,E=new I.Buf8(4),A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return U;12===(r=e.state).mode&&(r.mode=13),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,f=o,c=h,x=N;e:for(;;)switch(r.mode){case P:if(0===r.wrap){r.mode=13;break}for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(2&r.wrap&&35615===u){E[r.check=0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){e.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<<k,e.adler=r.check=1,r.mode=512&u?10:12,l=u=0;break;case 2:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(r.flags=u,8!=(255&r.flags)){e.msg=\"unknown compression method\",r.mode=30;break}if(57344&r.flags){e.msg=\"unknown header flags set\",r.mode=30;break}r.head&&(r.head.text=u>>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.head&&(r.head.time=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.head&&(r.head.xflags=255&u,r.head.os=u>>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.length=u,r.head&&(r.head.extra_len=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.comment+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u!==(65535&r.check)){e.msg=\"header crc mismatch\",r.mode=30;break}l=u=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}e.adler=r.check=L(u),l=u=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){u>>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}switch(r.last=1&u,l-=1,3&(u>>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if((65535&u)!=(u>>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o<d&&(d=o),h<d&&(d=h),0===d)break e;I.arraySet(i,n,s,d,a),o-=d,s+=d,h-=d,a+=d,r.length-=d;break}r.mode=12;break;case 17:for(;l<14;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(r.nlen=257+(31&u),u>>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286<r.nlen||30<r.ndist){e.msg=\"too many length or distance symbols\",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.lens[A[r.have++]]=7&u,u>>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(b<16)u>>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u>>>=_,l-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}l-=_,k=0,d=3+(7&(u>>>=_)),u>>>=3,l-=3}else{for(z=_+7;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}l-=_,k=0,d=11+(127&(u>>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(g&&0==(240&g)){for(v=_,y=g,w=b;g=(C=r.lencode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.length+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<<r.distbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(0==(240&g)){for(v=_,y=g,w=b;g=(C=r.distcode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.offset+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(h<d&&(d=h),h-=d,r.length-=d;i[a++]=m[p++],--d;);0===r.length&&(r.mode=21);break;case 26:if(0===h)break e;i[a++]=r.length,h--,r.mode=21;break;case 27:if(r.wrap){for(;l<32;){if(0===o)break e;o--,u|=n[s++]<<l,l+=8}if(c-=h,e.total_out+=c,r.total+=c,c&&(e.adler=r.check=r.flags?B(r.check,i,c,a-c):O(r.check,i,c,a-c)),c=h,(r.flags?u:L(u))!==r.check){e.msg=\"incorrect data check\",r.mode=30;break}l=u=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u!==(4294967295&r.total)){e.msg=\"incorrect length check\",r.mode=30;break}l=u=0}r.mode=29;case 29:x=1;break e;case 30:x=-3;break e;case 31:return-4;case 32:default:return U}return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,(r.wsize||c!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&Z(e,e.output,e.next_out,c-e.avail_out)?(r.mode=31,-4):(f-=e.avail_in,c-=e.avail_out,e.total_in+=f,e.total_out+=c,r.total+=c,r.wrap&&c&&(e.adler=r.check=r.flags?B(r.check,i,c,e.next_out-c):O(r.check,i,c,e.next_out-c)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==f&&0===c||4===t)&&x===N&&(x=-5),x)},r.inflateEnd=function(e){if(!e||!e.state)return U;var t=e.state;return t.window&&(t.window=null),e.state=null,N},r.inflateGetHeader=function(e,t){var r;return e&&e.state?0==(2&(r=e.state).wrap)?U:((r.head=t).done=!1,N):U},r.inflateSetDictionary=function(e,t){var r,n=t.length;return e&&e.state?0!==(r=e.state).wrap&&11!==r.mode?U:11===r.mode&&O(1,t,n,0)!==r.check?-3:Z(e,t,n,n)?(r.mode=31,-4):(r.havedict=1,N):U},r.inflateInfo=\"pako inflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./inffast\":48,\"./inftrees\":50}],50:[function(e,t,r){\"use strict\";var D=e(\"../utils/common\"),F=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],N=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],U=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],P=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,r,n,i,s,a,o){var h,u,l,f,c,d,p,m,_,g=o.bits,b=0,v=0,y=0,w=0,k=0,x=0,S=0,z=0,C=0,E=0,A=null,I=0,O=new D.Buf16(16),B=new D.Buf16(16),R=null,T=0;for(b=0;b<=15;b++)O[b]=0;for(v=0;v<n;v++)O[t[r+v]]++;for(k=g,w=15;1<=w&&0===O[w];w--);if(w<k&&(k=w),0===w)return i[s++]=20971520,i[s++]=20971520,o.bits=1,0;for(y=1;y<w&&0===O[y];y++);for(k<y&&(k=y),b=z=1;b<=15;b++)if(z<<=1,(z-=O[b])<0)return-1;if(0<z&&(0===e||1!==w))return-1;for(B[1]=0,b=1;b<15;b++)B[b+1]=B[b]+O[b];for(v=0;v<n;v++)0!==t[r+v]&&(a[B[t[r+v]]++]=v);if(d=0===e?(A=R=a,19):1===e?(A=F,I-=257,R=N,T-=257,256):(A=U,R=P,-1),b=y,c=s,S=v=E=0,l=-1,f=(C=1<<(x=k))-1,1===e&&852<C||2===e&&592<C)return 1;for(;;){for(p=b-S,_=a[v]<d?(m=0,a[v]):a[v]>d?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<<b-S,y=u=1<<x;i[c+(E>>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<<b-1;E&h;)h>>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k<b&&(E&f)!==l){for(0===S&&(S=k),c+=y,z=1<<(x=b-S);x+S<w&&!((z-=O[x+S])<=0);)x++,z<<=1;if(C+=1<<x,1===e&&852<C||2===e&&592<C)return 1;i[l=E&f]=k<<24|x<<16|c-s|0}}return 0!==E&&(i[c+E]=b-S<<24|64<<16|0),o.bits=k,0}},{\"../utils/common\":41}],51:[function(e,t,r){\"use strict\";t.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},{}],52:[function(e,t,r){\"use strict\";var i=e(\"../utils/common\"),o=0,h=1;function n(e){for(var t=e.length;0<=--t;)e[t]=0}var s=0,a=29,u=256,l=u+1+a,f=30,c=19,_=2*l+1,g=15,d=16,p=7,m=256,b=16,v=17,y=18,w=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],k=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],x=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],z=new Array(2*(l+2));n(z);var C=new Array(2*f);n(C);var E=new Array(512);n(E);var A=new Array(256);n(A);var I=new Array(a);n(I);var O,B,R,T=new Array(f);function D(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}function F(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function N(e){return e<256?E[e]:E[256+(e>>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<<e.bi_valid&65535,U(e,e.bi_buf),e.bi_buf=t>>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function L(e,t,r){P(e,r[2*t],r[2*t+1])}function j(e,t){for(var r=0;r|=1&e,e>>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t<l;t++)e.dyn_ltree[2*t]=0;for(t=0;t<f;t++)e.dyn_dtree[2*t]=0;for(t=0;t<c;t++)e.bl_tree[2*t]=0;e.dyn_ltree[2*m]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function M(e){8<e.bi_valid?U(e,e.bi_buf):0<e.bi_valid&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function H(e,t,r,n){var i=2*t,s=2*r;return e[i]<e[s]||e[i]===e[s]&&n[t]<=n[r]}function G(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&H(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!H(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n}function K(e,t,r){var n,i,s,a,o=0;if(0!==e.last_lit)for(;n=e.pending_buf[e.d_buf+2*o]<<8|e.pending_buf[e.d_buf+2*o+1],i=e.pending_buf[e.l_buf+o],o++,0===n?L(e,i,t):(L(e,(s=A[i])+u+1,t),0!==(a=w[s])&&P(e,i-=I[s],a),L(e,s=N(--n),r),0!==(a=k[s])&&P(e,n-=T[s],a)),o<e.last_lit;);L(e,m,t)}function Y(e,t){var r,n,i,s=t.dyn_tree,a=t.stat_desc.static_tree,o=t.stat_desc.has_stree,h=t.stat_desc.elems,u=-1;for(e.heap_len=0,e.heap_max=_,r=0;r<h;r++)0!==s[2*r]?(e.heap[++e.heap_len]=u=r,e.depth[r]=0):s[2*r+1]=0;for(;e.heap_len<2;)s[2*(i=e.heap[++e.heap_len]=u<2?++u:0)]=1,e.depth[i]=0,e.opt_len--,o&&(e.static_len-=a[2*i+1]);for(t.max_code=u,r=e.heap_len>>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u<n||(e.bl_count[s]++,a=0,d<=n&&(a=c[n-d]),o=h[2*n],e.opt_len+=o*(s+a),f&&(e.static_len+=o*(l[2*n+1]+a)));if(0!==m){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,m-=2}while(0<m);for(s=p;0!==s;s--)for(n=e.bl_count[s];0!==n;)u<(i=e.heap[--r])||(h[2*i+1]!==s&&(e.opt_len+=(s-h[2*i+1])*h[2*i],h[2*i+1]=s),n--)}}(e,t),Z(s,u,e.bl_count)}function X(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++o<h&&i===a||(o<u?e.bl_tree[2*i]+=o:0!==i?(i!==s&&e.bl_tree[2*i]++,e.bl_tree[2*b]++):o<=10?e.bl_tree[2*v]++:e.bl_tree[2*y]++,s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4))}function V(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),n=0;n<=r;n++)if(i=a,a=t[2*(n+1)+1],!(++o<h&&i===a)){if(o<u)for(;L(e,i,e.bl_tree),0!=--o;);else 0!==i?(i!==s&&(L(e,i,e.bl_tree),o--),L(e,b,e.bl_tree),P(e,o-3,2)):o<=10?(L(e,v,e.bl_tree),P(e,o-3,3)):(L(e,y,e.bl_tree),P(e,o-11,7));s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4)}}n(T);var q=!1;function J(e,t,r,n){P(e,(s<<1)+(n?1:0),3),function(e,t,r,n){M(e),n&&(U(e,r),U(e,~r)),i.arraySet(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}(e,t,r,!0)}r._tr_init=function(e){q||(function(){var e,t,r,n,i,s=new Array(g+1);for(n=r=0;n<a-1;n++)for(I[n]=r,e=0;e<1<<w[n];e++)A[r++]=n;for(A[r-1]=n,n=i=0;n<16;n++)for(T[n]=i,e=0;e<1<<k[n];e++)E[i++]=n;for(i>>=7;n<f;n++)for(T[n]=i<<7,e=0;e<1<<k[n]-7;e++)E[256+i++]=n;for(t=0;t<=g;t++)s[t]=0;for(e=0;e<=143;)z[2*e+1]=8,e++,s[8]++;for(;e<=255;)z[2*e+1]=9,e++,s[9]++;for(;e<=279;)z[2*e+1]=7,e++,s[7]++;for(;e<=287;)z[2*e+1]=8,e++,s[8]++;for(Z(z,l+1,s),e=0;e<f;e++)C[2*e+1]=5,C[2*e]=j(e,5);O=new D(z,w,u+1,l,g),B=new D(C,k,0,f,g),R=new D(new Array(0),x,0,c,p)}(),q=!0),e.l_desc=new F(e.dyn_ltree,O),e.d_desc=new F(e.dyn_dtree,B),e.bl_desc=new F(e.bl_tree,R),e.bi_buf=0,e.bi_valid=0,W(e)},r._tr_stored_block=J,r._tr_flush_block=function(e,t,r,n){var i,s,a=0;0<e.level?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t<u;t++)if(0!==e.dyn_ltree[2*t])return h;return o}(e)),Y(e,e.l_desc),Y(e,e.d_desc),a=function(e){var t;for(X(e,e.dyn_ltree,e.l_desc.max_code),X(e,e.dyn_dtree,e.d_desc.max_code),Y(e,e.bl_desc),t=c-1;3<=t&&0===e.bl_tree[2*S[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i<n;i++)P(e,e.bl_tree[2*S[i]+1],3);V(e,e.dyn_ltree,t-1),V(e,e.dyn_dtree,r-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),K(e,e.dyn_ltree,e.dyn_dtree)),W(e),n&&M(e)},r._tr_tally=function(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{\"../utils/common\":41}],53:[function(e,t,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(r,n){\"use strict\";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i=\"[object process]\"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage(\"\",\"*\"),r.onmessage=t,e}}()?(a=\"setImmediate$\"+Math.random()+\"$\",r.addEventListener?r.addEventListener(\"message\",d,!1):r.attachEvent(\"onmessage\",d),function(e){r.postMessage(a+e,\"*\")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(s=l.documentElement,function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var n={callback:e,args:t};return h[o]=n,i(o),o++},e.clearImmediate=f}function f(e){delete h[e]}function c(e){if(u)setTimeout(c,0,e);else{var t=h[e];if(t){u=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(n,r)}}(t)}finally{f(e),u=!1}}}}function d(e){e.source===r&&\"string\"==typeof e.data&&0===e.data.indexOf(a)&&c(+e.data.slice(a.length))}}(\"undefined\"==typeof self?void 0===e?this:e:self)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[10])(10)});", "/**\n * sha1-uint8array.ts\n */\nconst K = [\n 0x5a827999 | 0,\n 0x6ed9eba1 | 0,\n 0x8f1bbcdc | 0,\n 0xca62c1d6 | 0,\n];\nconst algorithms = {\n sha1: 1,\n};\nexport function createHash(algorithm) {\n if (algorithm && !algorithms[algorithm] && !algorithms[algorithm.toLowerCase()]) {\n throw new Error(\"Digest method not supported\");\n }\n return new Hash();\n}\nclass Hash {\n constructor() {\n this.A = 0x67452301 | 0;\n this.B = 0xefcdab89 | 0;\n this.C = 0x98badcfe | 0;\n this.D = 0x10325476 | 0;\n this.E = 0xc3d2e1f0 | 0;\n this._size = 0;\n this._sp = 0; // surrogate pair\n if (!sharedBuffer || sharedOffset >= 8000 /* N.allocTotal */) {\n sharedBuffer = new ArrayBuffer(8000 /* N.allocTotal */);\n sharedOffset = 0;\n }\n this._byte = new Uint8Array(sharedBuffer, sharedOffset, 80 /* N.allocBytes */);\n this._word = new Int32Array(sharedBuffer, sharedOffset, 20 /* N.allocWords */);\n sharedOffset += 80 /* N.allocBytes */;\n }\n update(data) {\n // data: string\n if (\"string\" === typeof data) {\n return this._utf8(data);\n }\n // data: undefined\n if (data == null) {\n throw new TypeError(\"Invalid type: \" + typeof data);\n }\n const byteOffset = data.byteOffset;\n const length = data.byteLength;\n let blocks = (length / 64 /* N.inputBytes */) | 0;\n let offset = 0;\n // longer than 1 block\n if (blocks && !(byteOffset & 3) && !(this._size % 64 /* N.inputBytes */)) {\n const block = new Int32Array(data.buffer, byteOffset, blocks * 16 /* N.inputWords */);\n while (blocks--) {\n this._int32(block, offset >> 2);\n offset += 64 /* N.inputBytes */;\n }\n this._size += offset;\n }\n // data: TypedArray | DataView\n const BYTES_PER_ELEMENT = data.BYTES_PER_ELEMENT;\n if (BYTES_PER_ELEMENT !== 1 && data.buffer) {\n const rest = new Uint8Array(data.buffer, byteOffset + offset, length - offset);\n return this._uint8(rest);\n }\n // no more bytes\n if (offset === length)\n return this;\n // data: Uint8Array | Int8Array\n return this._uint8(data, offset);\n }\n _uint8(data, offset) {\n const { _byte, _word } = this;\n const length = data.length;\n offset = offset | 0;\n while (offset < length) {\n const start = this._size % 64 /* N.inputBytes */;\n let index = start;\n while (offset < length && index < 64 /* N.inputBytes */) {\n _byte[index++] = data[offset++];\n }\n if (index >= 64 /* N.inputBytes */) {\n this._int32(_word);\n }\n this._size += index - start;\n }\n return this;\n }\n _utf8(text) {\n const { _byte, _word } = this;\n const length = text.length;\n let surrogate = this._sp;\n for (let offset = 0; offset < length;) {\n const start = this._size % 64 /* N.inputBytes */;\n let index = start;\n while (offset < length && index < 64 /* N.inputBytes */) {\n let code = text.charCodeAt(offset++) | 0;\n if (code < 0x80) {\n // ASCII characters\n _byte[index++] = code;\n }\n else if (code < 0x800) {\n // 2 bytes\n _byte[index++] = 0xC0 | (code >>> 6);\n _byte[index++] = 0x80 | (code & 0x3F);\n }\n else if (code < 0xD800 || code > 0xDFFF) {\n // 3 bytes\n _byte[index++] = 0xE0 | (code >>> 12);\n _byte[index++] = 0x80 | ((code >>> 6) & 0x3F);\n _byte[index++] = 0x80 | (code & 0x3F);\n }\n else if (surrogate) {\n // 4 bytes - surrogate pair\n code = ((surrogate & 0x3FF) << 10) + (code & 0x3FF) + 0x10000;\n _byte[index++] = 0xF0 | (code >>> 18);\n _byte[index++] = 0x80 | ((code >>> 12) & 0x3F);\n _byte[index++] = 0x80 | ((code >>> 6) & 0x3F);\n _byte[index++] = 0x80 | (code & 0x3F);\n surrogate = 0;\n }\n else {\n surrogate = code;\n }\n }\n if (index >= 64 /* N.inputBytes */) {\n this._int32(_word);\n _word[0] = _word[16 /* N.inputWords */];\n }\n this._size += index - start;\n }\n this._sp = surrogate;\n return this;\n }\n _int32(data, offset) {\n let { A, B, C, D, E } = this;\n let i = 0;\n offset = offset | 0;\n while (i < 16 /* N.inputWords */) {\n W[i++] = swap32(data[offset++]);\n }\n for (i = 16 /* N.inputWords */; i < 80 /* N.workWords */; i++) {\n W[i] = rotate1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]);\n }\n for (i = 0; i < 80 /* N.workWords */; i++) {\n const S = (i / 20) | 0;\n const T = (rotate5(A) + ft(S, B, C, D) + E + W[i] + K[S]) | 0;\n E = D;\n D = C;\n C = rotate30(B);\n B = A;\n A = T;\n }\n this.A = (A + this.A) | 0;\n this.B = (B + this.B) | 0;\n this.C = (C + this.C) | 0;\n this.D = (D + this.D) | 0;\n this.E = (E + this.E) | 0;\n }\n digest(encoding) {\n const { _byte, _word } = this;\n let i = (this._size % 64 /* N.inputBytes */) | 0;\n _byte[i++] = 0x80;\n // pad 0 for current word\n while (i & 3) {\n _byte[i++] = 0;\n }\n i >>= 2;\n if (i > 14 /* N.highIndex */) {\n while (i < 16 /* N.inputWords */) {\n _word[i++] = 0;\n }\n i = 0;\n this._int32(_word);\n }\n // pad 0 for rest words\n while (i < 16 /* N.inputWords */) {\n _word[i++] = 0;\n }\n // input size\n const bits64 = this._size * 8;\n const low32 = (bits64 & 0xffffffff) >>> 0;\n const high32 = (bits64 - low32) / 0x100000000;\n if (high32)\n _word[14 /* N.highIndex */] = swap32(high32);\n if (low32)\n _word[15 /* N.lowIndex */] = swap32(low32);\n this._int32(_word);\n return (encoding === \"hex\") ? this._hex() : this._bin();\n }\n _hex() {\n const { A, B, C, D, E } = this;\n return hex32(A) + hex32(B) + hex32(C) + hex32(D) + hex32(E);\n }\n _bin() {\n const { A, B, C, D, E, _byte, _word } = this;\n _word[0] = swap32(A);\n _word[1] = swap32(B);\n _word[2] = swap32(C);\n _word[3] = swap32(D);\n _word[4] = swap32(E);\n return _byte.slice(0, 20);\n }\n}\nconst W = new Int32Array(80 /* N.workWords */);\nlet sharedBuffer;\nlet sharedOffset = 0;\nconst hex32 = num => (num + 0x100000000).toString(16).substr(-8);\nconst swapLE = (c => (((c << 24) & 0xff000000) | ((c << 8) & 0xff0000) | ((c >> 8) & 0xff00) | ((c >> 24) & 0xff)));\nconst swapBE = (c => c);\nconst swap32 = isBE() ? swapBE : swapLE;\nconst rotate1 = num => (num << 1) | (num >>> 31);\nconst rotate5 = num => (num << 5) | (num >>> 27);\nconst rotate30 = num => (num << 30) | (num >>> 2);\nfunction ft(s, b, c, d) {\n if (s === 0)\n return (b & c) | ((~b) & d);\n if (s === 2)\n return (b & c) | (b & d) | (c & d);\n return b ^ c ^ d;\n}\nfunction isBE() {\n const buf = new Uint8Array(new Uint16Array([0xFEFF]).buffer); // BOM\n return (buf[0] === 0xFE);\n}\n", "import { createHash as createSha1Hash } from \"sha1-uint8array\";\nconst FileSystemError = new Error(\"File system not available.\");\nexport function generateUUID() {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!crypto.randomUUID) {\n throw new Error(\"generateUUID is not available in unsecure contexts.\");\n }\n return crypto.randomUUID();\n}\nexport function writeFile(path, name, stream) {\n throw FileSystemError;\n}\nexport function readFile(path) {\n throw FileSystemError;\n}\nexport function fetchFile(url) {\n throw FileSystemError;\n}\nexport const getFile = async (file) => {\n return readFile(file);\n};\nexport const hash = (data, algorithm = \"sha1\") => {\n if (![\"sha1\"].includes(algorithm)) {\n throw new Error(\"Hashing algorithm not supported: Available: sha1\");\n }\n const hash = hashUIntArray(data);\n return uint8ArrayToBase64(hash);\n};\nfunction uint8ArrayToBase64(uint8Array) {\n // Convert the Uint8Array to a binary string\n let binaryString = \"\";\n for (let i = 0; i < uint8Array.length; i++) {\n binaryString += String.fromCharCode(uint8Array[i]);\n }\n // Encode the binary string to base64\n const base64String = btoa(binaryString);\n return base64String;\n}\nfunction hashUIntArray(data, algorithm = \"sha1\") {\n if (![\"sha1\"].includes(algorithm)) {\n throw new Error(\"Hashing algorithm not supported: Available: sha1\");\n }\n return createSha1Hash(\"sha1\")\n .update(data)\n .digest();\n}\n", "import cjsModule from '../index.js'\n\nexport const configure = cjsModule.configure\n\nexport const stringify = cjsModule\nexport default cjsModule\n", "import { generateUUID, hash } from \"#utils/env\";\nimport stringifyJson from \"safe-stable-stringify\";\nexport function generateId(method) {\n if (method && method.toString() !== \"UUIDv4\") {\n throw new Error(`Id generation method not supported: \"${method.toString()}\"`);\n }\n return generateUUID();\n}\nexport function getUnixTimestamp(date) {\n return (new Date(date).getTime() / 1000).toFixed(0);\n}\nexport function buildOperationSignatureParams({ documentId, signer, operation, previousStateHash, }) {\n const { timestamp, scope, id, type } = operation;\n return [\n getUnixTimestamp(timestamp), // timestamp,\n signer.app.key, // signer public key\n hash(\n // hash (docID, scope, operationID, operationName, operationInput)\n [documentId, scope, id, type, stringifyJson(operation.input)].join(\"\")),\n previousStateHash, // state hash that the operation was applied to\n ];\n}\nconst textEncode = new TextEncoder();\nexport function buildOperationSignatureMessage(params) {\n const message = params.join(\"\");\n const prefix = \"\\x19Signed Operation:\\n\" + message.length.toString();\n return textEncode.encode(prefix + message);\n}\nexport function ab2hex(ab) {\n const view = ArrayBuffer.isView(ab) ? ab : new Uint8Array(ab);\n return Array.prototype.map\n .call(view, (x) => (\"00\" + x.toString(16)).slice(-2))\n .join(\"\");\n}\nexport function hex2ab(hex) {\n return new Uint8Array(hex.match(/[\\da-f]{2}/gi)?.map(function (h) {\n return parseInt(h, 16);\n }) ?? []);\n}\nexport async function buildOperationSignature(context, signMethod) {\n const params = buildOperationSignatureParams(context);\n const message = buildOperationSignatureMessage(params);\n const signature = await signMethod(message);\n return [...params, `0x${ab2hex(signature)}`];\n}\nexport async function buildSignedOperation(action, reducer, document, context, signHandler) {\n const result = reducer(document, action, undefined, {\n reuseHash: true,\n reuseOperationResultingState: true,\n });\n const operation = result.operations[action.scope].at(-1);\n if (!operation) {\n throw new Error(\"Action was not applied\");\n }\n const previousStateHash = result.operations[action.scope].at(-2)?.hash ?? \"\";\n const signature = await buildOperationSignature({\n ...context,\n operation,\n previousStateHash,\n }, signHandler);\n return {\n ...operation,\n context: {\n ...operation.context,\n signer: {\n ...operation.context?.signer,\n ...context.signer,\n signatures: [...(context.signer.signatures ?? []), signature],\n },\n },\n };\n}\nexport async function verifyOperationSignature(signature, signer, verifyHandler) {\n const publicKey = signer.app.key;\n const params = signature.slice(0, 4);\n const signatureBytes = hex2ab(signature[4]);\n const expectedMessage = buildOperationSignatureMessage(params);\n return verifyHandler(publicKey, signatureBytes, expectedMessage);\n}\n", "import { pascalCase } from \"change-case\";\nexport function validateInitialState(initialState, allowEmptyState = false) {\n const errors = [];\n if (allowEmptyState && initialState === \"\")\n return errors;\n try {\n const state = JSON.parse(initialState);\n if (!allowEmptyState && !Object.keys(state).length) {\n errors.push({\n message: \"Initial state cannot be empty\",\n details: {\n initialState,\n },\n });\n }\n }\n catch {\n errors.push({\n message: \"Invalid initial state\",\n details: {\n initialState,\n },\n });\n }\n return errors;\n}\nexport function validateStateSchemaName(schema, documentName, scope = \"\", allowEmptySchema = true) {\n const errors = [];\n if (!allowEmptySchema && !schema) {\n errors.push({\n message: \"State schema is required\",\n details: {\n schema,\n },\n });\n return errors;\n }\n if (allowEmptySchema && !schema)\n return errors;\n const expectedTypeName = `type ${pascalCase(documentName)}${pascalCase(scope)}State`;\n if (!schema.includes(expectedTypeName)) {\n errors.push({\n message: `Invalid state schema name. Expected ${expectedTypeName}`,\n details: {\n schema,\n },\n });\n }\n return errors;\n}\nexport function validateModules(modules) {\n const errors = [];\n if (!modules.length) {\n errors.push({\n message: \"Modules are required\",\n details: {\n modules,\n },\n });\n }\n const modulesError = modules.reduce((acc, mod) => [...acc, ...validateModule(mod)], []);\n return [...errors, ...modulesError];\n}\nexport function validateModule(mod) {\n const errors = [];\n if (!mod.name) {\n errors.push({\n message: \"Module name is required\",\n details: {\n module: mod,\n },\n });\n }\n if (!mod.operations.length) {\n errors.push({\n message: \"Module operations are required\",\n details: {\n module: mod,\n },\n });\n }\n const operationErrors = mod.operations.reduce((acc, operation) => [...acc, ...validateModuleOperation(operation)], []);\n return [...errors, ...operationErrors];\n}\nexport function validateModuleOperation(operation) {\n const errors = [];\n if (!operation.name) {\n errors.push({\n message: \"Operation name is required\",\n details: {\n operation,\n },\n });\n }\n if (!operation.schema) {\n errors.push({\n message: \"Operation schema is required\",\n details: {\n operation,\n },\n });\n }\n return errors;\n}\n", "// Regexps involved with splitting words in various case formats.\nconst SPLIT_LOWER_UPPER_RE = /([\\p{Ll}\\d])(\\p{Lu})/gu;\nconst SPLIT_UPPER_UPPER_RE = /(\\p{Lu})([\\p{Lu}][\\p{Ll}])/gu;\n\n// Used to iterate over the initial split result and separate numbers.\nconst SPLIT_SEPARATE_NUMBER_RE = /(\\d)\\p{Ll}|(\\p{L})\\d/u;\n\n// Regexp involved with stripping non-word characters from the result.\nconst DEFAULT_STRIP_REGEXP = /[^\\p{L}\\d]+/giu;\n\n// The replacement value for splits.\nconst SPLIT_REPLACE_VALUE = \"$1\\0$2\";\n\n// The default characters to keep after transforming case.\nconst DEFAULT_PREFIX_SUFFIX_CHARACTERS = \"\";\n\n/**\n * Supported locale values. Use `false` to ignore locale.\n * Defaults to `undefined`, which uses the host environment.\n */\nexport type Locale = string[] | string | false | undefined;\n\n/**\n * Options used for converting strings to pascal/camel case.\n */\nexport interface PascalCaseOptions extends Options {\n mergeAmbiguousCharacters?: boolean;\n}\n\n/**\n * Options used for converting strings to any case.\n */\nexport interface Options {\n locale?: Locale;\n split?: (value: string) => string[];\n /** @deprecated Pass `split: splitSeparateNumbers` instead. */\n separateNumbers?: boolean;\n delimiter?: string;\n prefixCharacters?: string;\n suffixCharacters?: string;\n}\n\n/**\n * Split any cased input strings into an array of words.\n */\nexport function split(value: string) {\n let result = value.trim();\n\n result = result\n .replace(SPLIT_LOWER_UPPER_RE, SPLIT_REPLACE_VALUE)\n .replace(SPLIT_UPPER_UPPER_RE, SPLIT_REPLACE_VALUE);\n\n result = result.replace(DEFAULT_STRIP_REGEXP, \"\\0\");\n\n let start = 0;\n let end = result.length;\n\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\") start++;\n if (start === end) return [];\n while (result.charAt(end - 1) === \"\\0\") end--;\n\n return result.slice(start, end).split(/\\0/g);\n}\n\n/**\n * Split the input string into an array of words, separating numbers.\n */\nexport function splitSeparateNumbers(value: string) {\n const words = split(value);\n for (let i = 0; i < words.length; i++) {\n const word = words[i];\n const match = SPLIT_SEPARATE_NUMBER_RE.exec(word);\n if (match) {\n const offset = match.index + (match[1] ?? match[2]).length;\n words.splice(i, 1, word.slice(0, offset), word.slice(offset));\n }\n }\n return words;\n}\n\n/**\n * Convert a string to space separated lower case (`foo bar`).\n */\nexport function noCase(input: string, options?: Options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n return (\n prefix +\n words.map(lowerFactory(options?.locale)).join(options?.delimiter ?? \" \") +\n suffix\n );\n}\n\n/**\n * Convert a string to camel case (`fooBar`).\n */\nexport function camelCase(input: string, options?: PascalCaseOptions) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n const transform = options?.mergeAmbiguousCharacters\n ? capitalCaseTransformFactory(lower, upper)\n : pascalCaseTransformFactory(lower, upper);\n return (\n prefix +\n words\n .map((word, index) => {\n if (index === 0) return lower(word);\n return transform(word, index);\n })\n .join(options?.delimiter ?? \"\") +\n suffix\n );\n}\n\n/**\n * Convert a string to pascal case (`FooBar`).\n */\nexport function pascalCase(input: string, options?: PascalCaseOptions) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n const transform = options?.mergeAmbiguousCharacters\n ? capitalCaseTransformFactory(lower, upper)\n : pascalCaseTransformFactory(lower, upper);\n return prefix + words.map(transform).join(options?.delimiter ?? \"\") + suffix;\n}\n\n/**\n * Convert a string to pascal snake case (`Foo_Bar`).\n */\nexport function pascalSnakeCase(input: string, options?: Options) {\n return capitalCase(input, { delimiter: \"_\", ...options });\n}\n\n/**\n * Convert a string to capital case (`Foo Bar`).\n */\nexport function capitalCase(input: string, options?: Options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n return (\n prefix +\n words\n .map(capitalCaseTransformFactory(lower, upper))\n .join(options?.delimiter ?? \" \") +\n suffix\n );\n}\n\n/**\n * Convert a string to constant case (`FOO_BAR`).\n */\nexport function constantCase(input: string, options?: Options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n return (\n prefix +\n words.map(upperFactory(options?.locale)).join(options?.delimiter ?? \"_\") +\n suffix\n );\n}\n\n/**\n * Convert a string to dot case (`foo.bar`).\n */\nexport function dotCase(input: string, options?: Options) {\n return noCase(input, { delimiter: \".\", ...options });\n}\n\n/**\n * Convert a string to kebab case (`foo-bar`).\n */\nexport function kebabCase(input: string, options?: Options) {\n return noCase(input, { delimiter: \"-\", ...options });\n}\n\n/**\n * Convert a string to path case (`foo/bar`).\n */\nexport function pathCase(input: string, options?: Options) {\n return noCase(input, { delimiter: \"/\", ...options });\n}\n\n/**\n * Convert a string to path case (`Foo bar`).\n */\nexport function sentenceCase(input: string, options?: Options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n const transform = capitalCaseTransformFactory(lower, upper);\n return (\n prefix +\n words\n .map((word, index) => {\n if (index === 0) return transform(word);\n return lower(word);\n })\n .join(options?.delimiter ?? \" \") +\n suffix\n );\n}\n\n/**\n * Convert a string to snake case (`foo_bar`).\n */\nexport function snakeCase(input: string, options?: Options) {\n return noCase(input, { delimiter: \"_\", ...options });\n}\n\n/**\n * Convert a string to header case (`Foo-Bar`).\n */\nexport function trainCase(input: string, options?: Options) {\n return capitalCase(input, { delimiter: \"-\", ...options });\n}\n\nfunction lowerFactory(locale: Locale): (input: string) => string {\n return locale === false\n ? (input: string) => input.toLowerCase()\n : (input: string) => input.toLocaleLowerCase(locale);\n}\n\nfunction upperFactory(locale: Locale): (input: string) => string {\n return locale === false\n ? (input: string) => input.toUpperCase()\n : (input: string) => input.toLocaleUpperCase(locale);\n}\n\nfunction capitalCaseTransformFactory(\n lower: (input: string) => string,\n upper: (input: string) => string,\n) {\n return (word: string) => `${upper(word[0])}${lower(word.slice(1))}`;\n}\n\nfunction pascalCaseTransformFactory(\n lower: (input: string) => string,\n upper: (input: string) => string,\n) {\n return (word: string, index: number) => {\n const char0 = word[0];\n const initial =\n index > 0 && char0 >= \"0\" && char0 <= \"9\" ? \"_\" + char0 : upper(char0);\n return initial + lower(word.slice(1));\n };\n}\n\nfunction splitPrefixSuffix(\n input: string,\n options: Options = {},\n): [string, string[], string] {\n const splitFn =\n options.split ?? (options.separateNumbers ? splitSeparateNumbers : split);\n const prefixCharacters =\n options.prefixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;\n const suffixCharacters =\n options.suffixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;\n let prefixIndex = 0;\n let suffixIndex = input.length;\n\n while (prefixIndex < input.length) {\n const char = input.charAt(prefixIndex);\n if (!prefixCharacters.includes(char)) break;\n prefixIndex++;\n }\n\n while (suffixIndex > prefixIndex) {\n const index = suffixIndex - 1;\n const char = input.charAt(index);\n if (!suffixCharacters.includes(char)) break;\n suffixIndex = index;\n }\n\n return [\n input.slice(0, prefixIndex),\n splitFn(input.slice(prefixIndex, suffixIndex)),\n input.slice(suffixIndex),\n ];\n}\n", "export * from \"./header/actions.js\";\nexport * from \"./module/actions.js\";\nexport * from \"./operation-error/actions.js\";\nexport * from \"./operation-example/actions.js\";\nexport * from \"./operation/actions.js\";\nexport * from \"./state/actions.js\";\nexport * from \"./versioning/actions.js\";\n", "export * from \"./header/creators.js\";\nexport * from \"./versioning/creators.js\";\nexport * from \"./module/creators.js\";\nexport * from \"./operation-error/creators.js\";\nexport * from \"./operation-example/creators.js\";\nexport * from \"./operation/creators.js\";\nexport * from \"./state/creators.js\";\n", "var util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_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\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\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 // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\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(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.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 }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `smaller than or equal to`\n : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === errorMap ? undefined : errorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" &&\n (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nvar _ZodEnum_cache, _ZodNativeEnum_cache;\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (this._key instanceof Array) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n var _a, _b;\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message !== null && message !== void 0 ? message : ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: (_a = message !== null && message !== void 0 ? message : required_error) !== null && _a !== void 0 ? _a : ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: (_b = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b !== void 0 ? _b : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n var _a, _b;\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if ((_b = (_a = err === null || err === void 0 ? void 0 : err.message) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === null || _b === void 0 ? void 0 : _b.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&\u2019*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n // let regex = `\\\\d{2}:\\\\d{2}:\\\\d{2}`;\n let regex = `([01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d`;\n if (args.precision) {\n regex = `${regex}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n regex = `${regex}(\\\\.\\\\d+)?`;\n }\n return regex;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nfunction datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (!decoded.typ || !decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n var _a, _b;\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,\n local: (_b = options === null || options === void 0 ? void 0 : options.local) !== null && _b !== void 0 ? _b : false,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options === null || options === void 0 ? void 0 : options.position,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n var _a;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction 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 = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" ||\n (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null, min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" ||\n ch.kind === \"int\" ||\n ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch (_a) {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n var _a;\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .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 { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\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 { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodEnum_cache.set(this, void 0);\n }\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodEnum_cache, new Set(this._def.values), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\").has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\n_ZodEnum_cache = new WeakMap();\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodNativeEnum_cache.set(this, void 0);\n }\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodNativeEnum_cache, new Set(util.getValidEnumValues(this._def.values)), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\").has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\n_ZodNativeEnum_cache = new WeakMap();\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\"\n ? params.default\n : () => params.default,\n ...processCreateParams(params),\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result)\n ? result.then((data) => freeze(data))\n : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\"\n ? params(data)\n : typeof params === \"string\"\n ? { message: params }\n : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nfunction custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n var _a, _b;\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n var _a, _b;\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nconst NEVER = INVALID;\n\nvar z = /*#__PURE__*/Object.freeze({\n __proto__: null,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n get util () { return util; },\n get objectUtil () { return objectUtil; },\n ZodParsedType: ZodParsedType,\n getParsedType: getParsedType,\n ZodType: ZodType,\n datetimeRegex: datetimeRegex,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodSymbol: ZodSymbol,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodCatch: ZodCatch,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n ZodPipeline: ZodPipeline,\n ZodReadonly: ZodReadonly,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n coerce: coerce,\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n pipeline: pipelineType,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n symbol: symbolType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\nexport { BRAND, DIRTY, EMPTY_PATH, INVALID, NEVER, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodCatch, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPipeline, ZodPromise, ZodReadonly, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodSymbol, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, coerce, custom, dateType as date, datetimeRegex, z as default, errorMap as defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getErrorMap, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, util, voidType as void, z };\n", "export const SET_NAME = \"SET_NAME\";\nexport const UNDO = \"UNDO\";\nexport const REDO = \"REDO\";\nexport const PRUNE = \"PRUNE\";\nexport const LOAD_STATE = \"LOAD_STATE\";\nexport const NOOP = \"NOOP\";\n", "import { dataTypes } from './constant';\n\nexport const enum DraftType {\n Object,\n Array,\n Map,\n Set,\n}\n\nexport const Operation = {\n Remove: 'remove',\n Replace: 'replace',\n Add: 'add',\n} as const;\n\nexport type DataType = keyof typeof dataTypes;\n\nexport type PatchesOptions =\n | boolean\n | {\n /**\n * The default value is `true`. If it's `true`, the path will be an array, otherwise it is a string.\n */\n pathAsArray?: boolean;\n /**\n * The default value is `true`. If it's `true`, the array length will be included in the patches, otherwise no include array length.\n */\n arrayLengthAssignment?: boolean;\n };\n\nexport interface Finalities {\n draft: ((patches?: Patches, inversePatches?: Patches) => void)[];\n revoke: (() => void)[];\n handledSet: WeakSet<any>;\n}\n\nexport interface ProxyDraft<T = any> {\n type: DraftType;\n operated?: boolean;\n finalized: boolean;\n original: T;\n copy: T | null;\n proxy: T | null;\n finalities: Finalities;\n options: Options<any, any> & { updatedValues?: WeakMap<any, any> };\n parent?: ProxyDraft | null;\n key?: string | number | symbol;\n setMap?: Map<any, ProxyDraft>;\n assignedMap?: Map<any, boolean>;\n callbacks?: ((patches?: Patches, inversePatches?: Patches) => void)[];\n}\n\ninterface IPatch {\n op: (typeof Operation)[keyof typeof Operation];\n value?: any;\n}\n\nexport type Patch<P extends PatchesOptions = any> = P extends {\n pathAsArray: false;\n}\n ? IPatch & {\n path: string;\n }\n : P extends true | object\n ? IPatch & {\n path: (string | number)[];\n }\n : IPatch & {\n path: string | (string | number)[];\n };\n\nexport type Patches<P extends PatchesOptions = any> = Patch<P>[];\n\nexport type Result<\n T extends any,\n O extends PatchesOptions,\n F extends boolean\n> = O extends true | object\n ? [F extends true ? Immutable<T> : T, Patches<O>, Patches<O>]\n : F extends true\n ? Immutable<T>\n : T;\n\nexport type CreateResult<\n T extends any,\n O extends PatchesOptions,\n F extends boolean,\n R extends void | Promise<void> | T | Promise<T>\n> = R extends Promise<void> | Promise<T>\n ? Promise<Result<T, O, F>>\n : Result<T, O, F>;\n\ntype BaseMark = null | undefined | DataType;\ntype MarkWithCopy = BaseMark | (() => any);\n\nexport type Mark<O extends PatchesOptions, F extends boolean> = (\n target: any,\n types: typeof dataTypes\n) => O extends true | object\n ? BaseMark\n : F extends true\n ? BaseMark\n : MarkWithCopy;\n\nexport interface Options<O extends PatchesOptions, F extends boolean> {\n /**\n * In strict mode, Forbid accessing non-draftable values and forbid returning a non-draft value.\n */\n strict?: boolean;\n /**\n * Enable patch, and return the patches and inversePatches.\n */\n enablePatches?: O;\n /**\n * Enable autoFreeze, and return frozen state.\n */\n enableAutoFreeze?: F;\n /**\n * Set a mark to determine if the object is mutable or if an instance is an immutable.\n * And it can also return a shallow copy function(AutoFreeze and Patches should both be disabled).\n */\n mark?: Mark<O, F>;\n}\n\nexport interface ExternalOptions<O extends PatchesOptions, F extends boolean> {\n /**\n * In strict mode, Forbid accessing non-draftable values and forbid returning a non-draft value.\n */\n strict?: boolean;\n /**\n * Enable patch, and return the patches and inversePatches.\n */\n enablePatches?: O;\n /**\n * Enable autoFreeze, and return frozen state.\n */\n enableAutoFreeze?: F;\n /**\n * Set a mark to determine if the object is mutable or if an instance is an immutable.\n * And it can also return a shallow copy function(AutoFreeze and Patches should both be disabled).\n */\n mark?: Mark<O, F>[] | Mark<O, F>;\n}\n\n// Exclude `symbol`\ntype Primitive = string | number | bigint | boolean | null | undefined;\n\ntype ImmutableMap<K, V> = ReadonlyMap<Immutable<K>, Immutable<V>>;\ntype ImmutableSet<T> = ReadonlySet<Immutable<T>>;\ntype ImmutableObject<T> = { readonly [K in keyof T]: Immutable<T[K]> };\n\nexport type IfAvailable<T, Fallback = void> = true | false extends (\n T extends never ? true : false\n)\n ? Fallback\n : keyof T extends never\n ? Fallback\n : T;\ntype WeakReferences =\n | IfAvailable<WeakMap<any, any>>\n | IfAvailable<WeakSet<any>>;\ntype AtomicObject = Function | Promise<any> | Date | RegExp;\n\nexport type Immutable<T> = T extends Primitive | AtomicObject\n ? T\n : T extends IfAvailable<ReadonlyMap<infer K, infer V>>\n ? ImmutableMap<K, V>\n : T extends IfAvailable<ReadonlySet<infer V>>\n ? ImmutableSet<V>\n : T extends WeakReferences\n ? T\n : T extends object\n ? ImmutableObject<T>\n : T;\n\ntype DraftedMap<K, V> = Map<K, Draft<V>>;\ntype DraftedSet<T> = Set<Draft<T>>;\ntype DraftedObject<T> = {\n -readonly [K in keyof T]: Draft<T[K]>;\n};\n\nexport type Draft<T> = T extends Primitive | AtomicObject\n ? T\n : T extends IfAvailable<ReadonlyMap<infer K, infer V>>\n ? DraftedMap<K, V>\n : T extends IfAvailable<ReadonlySet<infer V>>\n ? DraftedSet<V>\n : T extends WeakReferences\n ? T\n : T extends object\n ? DraftedObject<T>\n : T;\n", "// Don't use `Symbol()` just for 3rd party access the draft\nexport const PROXY_DRAFT = Symbol.for('__MUTATIVE_PROXY_DRAFT__');\nexport const RAW_RETURN_SYMBOL = Symbol('__MUTATIVE_RAW_RETURN_SYMBOL__');\n\nexport const iteratorSymbol: typeof Symbol.iterator = Symbol.iterator;\n\nexport const dataTypes = {\n mutable: 'mutable',\n immutable: 'immutable',\n} as const;\n", "import { createDraft } from './draft';\n\nexport const internal = {} as {\n createDraft: typeof createDraft;\n};\n", "export function has(target: object, key: PropertyKey) {\n return target instanceof Map\n ? target.has(key)\n : Object.prototype.hasOwnProperty.call(target, key);\n}\n\nexport function getDescriptor(target: object, key: PropertyKey) {\n if (key in target) {\n let prototype = Reflect.getPrototypeOf(target);\n while (prototype) {\n const descriptor = Reflect.getOwnPropertyDescriptor(prototype, key);\n if (descriptor) return descriptor;\n prototype = Reflect.getPrototypeOf(prototype);\n }\n }\n return;\n}\n\nexport function isBaseSetInstance(obj: any) {\n return Object.getPrototypeOf(obj) === Set.prototype;\n}\n\nexport function isBaseMapInstance(obj: any) {\n return Object.getPrototypeOf(obj) === Map.prototype;\n}\n", "import { DraftType, Mark, ProxyDraft } from '../interface';\nimport { dataTypes, PROXY_DRAFT } from '../constant';\nimport { has } from './proto';\n\nexport function latest<T = any>(proxyDraft: ProxyDraft): T {\n return proxyDraft.copy ?? proxyDraft.original;\n}\n\n/**\n * Check if the value is a draft\n */\nexport function isDraft(target: any) {\n return !!getProxyDraft(target);\n}\n\nexport function getProxyDraft<T extends any>(value: T): ProxyDraft | null {\n if (typeof value !== 'object') return null;\n return (value as { [PROXY_DRAFT]: any })?.[PROXY_DRAFT];\n}\n\nexport function getValue<T extends object>(value: T): T {\n const proxyDraft = getProxyDraft(value);\n return proxyDraft ? proxyDraft.copy ?? proxyDraft.original : value;\n}\n\n/**\n * Check if a value is draftable\n */\nexport function isDraftable(value: any, options?: { mark?: Mark<any, any> }) {\n if (!value || typeof value !== 'object') return false;\n let markResult: any;\n return (\n Object.getPrototypeOf(value) === Object.prototype ||\n Array.isArray(value) ||\n value instanceof Map ||\n value instanceof Set ||\n (!!options?.mark &&\n ((markResult = options.mark(value, dataTypes)) === dataTypes.immutable ||\n typeof markResult === 'function'))\n );\n}\n\nexport function getPath(\n target: ProxyDraft,\n path: any[] = []\n): (string | number | object)[] | null {\n if (Object.hasOwnProperty.call(target, 'key')) {\n // check if the parent is a draft and the original value is not equal to the current value\n const parentCopy = target.parent!.copy;\n const proxyDraft = getProxyDraft(get(parentCopy, target.key!));\n if (proxyDraft !== null && proxyDraft?.original !== target.original) {\n return null;\n }\n const isSet = target.parent!.type === DraftType.Set;\n const key = isSet\n ? Array.from(target.parent!.setMap!.keys()).indexOf(target.key)\n : target.key;\n // check if the key is still in the next state parent\n if (\n !((isSet && parentCopy.size > (key as number)) || has(parentCopy, key!))\n )\n return null;\n path.push(key);\n }\n if (target.parent) {\n return getPath(target.parent, path);\n }\n // `target` is root draft.\n path.reverse();\n try {\n // check if the path is valid\n resolvePath(target.copy, path);\n } catch (e) {\n return null;\n }\n return path;\n}\n\nexport function getType(target: any) {\n if (Array.isArray(target)) return DraftType.Array;\n if (target instanceof Map) return DraftType.Map;\n if (target instanceof Set) return DraftType.Set;\n return DraftType.Object;\n}\n\nexport function get(target: any, key: PropertyKey) {\n return getType(target) === DraftType.Map ? target.get(key) : target[key];\n}\n\nexport function set(target: any, key: PropertyKey, value: any) {\n const type = getType(target);\n if (type === DraftType.Map) {\n target.set(key, value);\n } else {\n target[key] = value;\n }\n}\n\nexport function peek(target: any, key: PropertyKey) {\n const state = getProxyDraft(target);\n const source = state ? latest(state) : target;\n return source[key];\n}\n\nexport function isEqual(x: any, y: any) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport function revokeProxy(proxyDraft: ProxyDraft | null) {\n if (!proxyDraft) return;\n while (proxyDraft.finalities.revoke.length > 0) {\n const revoke = proxyDraft.finalities.revoke.pop()!;\n revoke();\n }\n}\n\n// handle JSON Pointer path with spec https://www.rfc-editor.org/rfc/rfc6901\nexport function escapePath(path: string[], pathAsArray: boolean) {\n return pathAsArray\n ? path\n : ['']\n .concat(path)\n .map((_item) => {\n const item = `${_item}`;\n if (item.indexOf('/') === -1 && item.indexOf('~') === -1) return item;\n return item.replace(/~/g, '~0').replace(/\\//g, '~1');\n })\n .join('/');\n}\n\nexport function unescapePath(path: string | (string | number)[]) {\n if (Array.isArray(path)) return path;\n return path\n .split('/')\n .map((_item) => _item.replace(/~1/g, '/').replace(/~0/g, '~'))\n .slice(1);\n}\n\nexport function resolvePath(base: any, path: (string | number)[]) {\n for (let index = 0; index < path.length - 1; index += 1) {\n const key = path[index];\n // use `index` in Set draft\n base = get(getType(base) === DraftType.Set ? Array.from(base) : base, key);\n if (typeof base !== 'object') {\n throw new Error(`Cannot resolve patch at '${path.join('/')}'.`);\n }\n }\n return base;\n}\n", "import type { Options, ProxyDraft } from '../interface';\nimport { dataTypes } from '../constant';\nimport { getValue, isDraft, isDraftable } from './draft';\nimport { isBaseMapInstance, isBaseSetInstance } from './proto';\n\nfunction strictCopy(target: any) {\n const copy = Object.create(Object.getPrototypeOf(target));\n Reflect.ownKeys(target).forEach((key: any) => {\n let desc = Reflect.getOwnPropertyDescriptor(target, key)!;\n if (desc.enumerable && desc.configurable && desc.writable) {\n copy[key] = target[key];\n return;\n }\n // for freeze\n if (!desc.writable) {\n desc.writable = true;\n desc.configurable = true;\n }\n if (desc.get || desc.set)\n desc = {\n configurable: true,\n writable: true,\n enumerable: desc.enumerable,\n value: target[key],\n };\n Reflect.defineProperty(copy, key, desc);\n });\n return copy;\n}\n\nconst propIsEnum = Object.prototype.propertyIsEnumerable;\n\nexport function shallowCopy(original: any, options?: Options<any, any>) {\n let markResult: any;\n if (Array.isArray(original)) {\n return Array.prototype.concat.call(original);\n } else if (original instanceof Set) {\n if (!isBaseSetInstance(original)) {\n const SubClass = Object.getPrototypeOf(original).constructor;\n return new SubClass(original.values());\n }\n return Set.prototype.difference\n ? Set.prototype.difference.call(original, new Set())\n : new Set(original.values());\n } else if (original instanceof Map) {\n if (!isBaseMapInstance(original)) {\n const SubClass = Object.getPrototypeOf(original).constructor;\n return new SubClass(original);\n }\n return new Map(original);\n } else if (\n options?.mark &&\n ((markResult = options.mark(original, dataTypes)),\n markResult !== undefined) &&\n markResult !== dataTypes.mutable\n ) {\n if (markResult === dataTypes.immutable) {\n return strictCopy(original);\n } else if (typeof markResult === 'function') {\n if (__DEV__ && (options.enablePatches || options.enableAutoFreeze)) {\n throw new Error(\n `You can't use mark and patches or auto freeze together.`\n );\n }\n return markResult();\n }\n throw new Error(`Unsupported mark result: ${markResult}`);\n } else if (\n typeof original === 'object' &&\n Object.getPrototypeOf(original) === Object.prototype\n ) {\n // For best performance with shallow copies,\n // don't use `Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));` by default.\n const copy: Record<string | symbol, any> = {};\n Object.keys(original).forEach((key) => {\n copy[key] = original[key];\n });\n Object.getOwnPropertySymbols(original).forEach((key) => {\n if (propIsEnum.call(original, key)) {\n copy[key] = original[key];\n }\n });\n return copy;\n } else {\n throw new Error(\n `Please check mark() to ensure that it is a stable marker draftable function.`\n );\n }\n}\n\nexport function ensureShallowCopy(target: ProxyDraft) {\n if (target.copy) return;\n target.copy = shallowCopy(target.original, target.options)!;\n}\n\nfunction deepClone<T>(target: T): T;\nfunction deepClone(target: any) {\n if (!isDraftable(target)) return getValue(target);\n if (Array.isArray(target)) return target.map(deepClone);\n if (target instanceof Map) {\n const iterable = Array.from(target.entries()).map(([k, v]) => [\n k,\n deepClone(v),\n ]) as Iterable<readonly [any, any]>;\n if (!isBaseMapInstance(target)) {\n const SubClass = Object.getPrototypeOf(target).constructor;\n return new SubClass(iterable);\n }\n return new Map(iterable);\n }\n if (target instanceof Set) {\n const iterable = Array.from(target).map(deepClone);\n if (!isBaseSetInstance(target)) {\n const SubClass = Object.getPrototypeOf(target).constructor;\n return new SubClass(iterable);\n }\n return new Set(iterable);\n }\n const copy = Object.create(Object.getPrototypeOf(target));\n for (const key in target) copy[key] = deepClone(target[key]);\n return copy;\n}\n\nexport function cloneIfNeeded<T>(target: T): T {\n return isDraft(target) ? deepClone(target) : target;\n}\n\nexport { deepClone };\n", "import { ProxyDraft } from '../interface';\n\nexport function markChanged(proxyDraft: ProxyDraft) {\n proxyDraft.assignedMap = proxyDraft.assignedMap ?? new Map();\n if (!proxyDraft.operated) {\n proxyDraft.operated = true;\n if (proxyDraft.parent) {\n markChanged(proxyDraft.parent);\n }\n }\n}\n", "import { DraftType } from '../interface';\nimport { getType, isDraft } from './draft';\n\nfunction throwFrozenError() {\n throw new Error('Cannot modify frozen object');\n}\n\nfunction isFreezable(value: any) {\n return (\n __DEV__ || (value && typeof value === 'object' && !Object.isFrozen(value))\n );\n}\n\nexport function deepFreeze(\n target: any,\n subKey?: any,\n updatedValues?: WeakMap<any, any>,\n stack?: any[],\n keys?: any[]\n) {\n if (__DEV__) {\n updatedValues = updatedValues ?? new WeakMap();\n stack = stack ?? [];\n keys = keys ?? [];\n const value = updatedValues.has(target)\n ? updatedValues.get(target)\n : target;\n if (stack.length > 0) {\n const index = stack.indexOf(value);\n if (value && typeof value === 'object' && index !== -1) {\n if (stack[0] === value) {\n throw new Error(`Forbids circular reference`);\n }\n throw new Error(\n `Forbids circular reference: ~/${keys\n .slice(0, index)\n .map((key, index) => {\n if (typeof key === 'symbol') return `[${key.toString()}]`;\n const parent = stack![index];\n if (\n typeof key === 'object' &&\n (parent instanceof Map || parent instanceof Set)\n )\n return Array.from(parent.keys()).indexOf(key);\n return key;\n })\n .join('/')}`\n );\n }\n stack.push(value);\n keys.push(subKey);\n } else {\n stack.push(value);\n }\n }\n if (Object.isFrozen(target) || isDraft(target)) {\n if (__DEV__) {\n stack!.pop();\n keys!.pop();\n }\n return;\n }\n const type = getType(target);\n switch (type) {\n case DraftType.Map:\n for (const [key, value] of target) {\n if (isFreezable(key)) deepFreeze(key, key, updatedValues, stack, keys);\n if (isFreezable(value))\n deepFreeze(value, key, updatedValues, stack, keys);\n }\n target.set = target.clear = target.delete = throwFrozenError;\n break;\n case DraftType.Set:\n for (const value of target) {\n if (isFreezable(value))\n deepFreeze(value, value, updatedValues, stack, keys);\n }\n target.add = target.clear = target.delete = throwFrozenError;\n break;\n case DraftType.Array:\n Object.freeze(target);\n let index = 0;\n for (const value of target) {\n if (isFreezable(value))\n deepFreeze(value, index, updatedValues, stack, keys);\n index += 1;\n }\n break;\n default:\n Object.freeze(target);\n // ignore non-enumerable or symbol properties\n Object.keys(target).forEach((name) => {\n const value = target[name];\n if (isFreezable(value))\n deepFreeze(value, name, updatedValues, stack, keys);\n });\n }\n if (__DEV__) {\n stack!.pop();\n keys!.pop();\n }\n}\n", "import { DraftType } from '../interface';\nimport { getType } from './draft';\n\nexport function forEach<T extends object>(\n target: T,\n iter: (key: string | number | symbol, value: any, source: T) => void\n) {\n const type = getType(target);\n if (type === DraftType.Object) {\n Reflect.ownKeys(target).forEach((key) => {\n iter(key, (target as any)[key], target);\n });\n } else if (type === DraftType.Array) {\n let index = 0;\n for (const entry of target as any[]) {\n iter(index, entry, target);\n index += 1;\n }\n } else {\n (target as Map<any, any> | Set<any>).forEach((entry: any, index: any) =>\n iter(index, entry, target)\n );\n }\n}\n", "import { DraftType, Patches, ProxyDraft } from '../interface';\nimport { ensureShallowCopy } from './copy';\nimport {\n get,\n getPath,\n getProxyDraft,\n getValue,\n isDraft,\n isDraftable,\n isEqual,\n set,\n} from './draft';\nimport { forEach } from './forEach';\n\nexport function handleValue(\n target: any,\n handledSet: WeakSet<any>,\n options?: ProxyDraft['options']\n) {\n if (\n isDraft(target) ||\n !isDraftable(target, options) ||\n handledSet.has(target) ||\n Object.isFrozen(target)\n )\n return;\n const isSet = target instanceof Set;\n const setMap: Map<any, any> | undefined = isSet ? new Map() : undefined;\n handledSet.add(target);\n forEach(target, (key, value) => {\n if (isDraft(value)) {\n const proxyDraft = getProxyDraft(value)!;\n ensureShallowCopy(proxyDraft);\n // A draft where a child node has been changed, or assigned a value\n const updatedValue =\n proxyDraft.assignedMap?.size || proxyDraft.operated\n ? proxyDraft.copy\n : proxyDraft.original;\n // final update value\n set(isSet ? setMap! : target, key, updatedValue);\n } else {\n handleValue(value, handledSet, options);\n }\n });\n if (setMap) {\n const set = target as Set<any>;\n const values = Array.from(set);\n set.clear();\n values.forEach((value) => {\n set.add(setMap!.has(value) ? setMap!.get(value) : value);\n });\n }\n}\n\nexport function finalizeAssigned(proxyDraft: ProxyDraft, key: PropertyKey) {\n // handle the draftable assigned values\uFF0C and the value is not a draft\n const copy =\n proxyDraft.type === DraftType.Set ? proxyDraft.setMap : proxyDraft.copy;\n if (\n proxyDraft.finalities.revoke.length > 1 &&\n proxyDraft.assignedMap!.get(key) &&\n copy\n ) {\n handleValue(\n get(copy, key),\n proxyDraft.finalities.handledSet,\n proxyDraft.options\n );\n }\n}\n\nexport type GeneratePatches = (\n proxyState: ProxyDraft,\n basePath: any[],\n patches: Patches,\n inversePatches: Patches\n) => void;\n\nexport function finalizeSetValue(target: ProxyDraft) {\n if (target.type === DraftType.Set && target.copy) {\n target.copy.clear();\n target.setMap!.forEach((value) => {\n target.copy!.add(getValue(value));\n });\n }\n}\n\nexport function finalizePatches(\n target: ProxyDraft,\n generatePatches: GeneratePatches,\n patches?: Patches,\n inversePatches?: Patches\n) {\n const shouldFinalize =\n target.operated &&\n target.assignedMap &&\n target.assignedMap.size > 0 &&\n !target.finalized;\n if (shouldFinalize) {\n if (patches && inversePatches) {\n const basePath = getPath(target);\n if (basePath) {\n generatePatches(target, basePath, patches, inversePatches);\n }\n }\n target.finalized = true;\n }\n}\n\nexport function markFinalization(\n target: ProxyDraft,\n key: any,\n value: any,\n generatePatches: GeneratePatches\n) {\n const proxyDraft = getProxyDraft(value);\n if (proxyDraft) {\n // !case: assign the draft value\n if (!proxyDraft.callbacks) {\n proxyDraft.callbacks = [];\n }\n proxyDraft.callbacks.push((patches, inversePatches) => {\n const copy = target.type === DraftType.Set ? target.setMap : target.copy;\n if (isEqual(get(copy, key), value)) {\n let updatedValue = proxyDraft.original;\n if (proxyDraft.copy) {\n updatedValue = proxyDraft.copy;\n }\n finalizeSetValue(target);\n finalizePatches(target, generatePatches, patches, inversePatches);\n if (__DEV__ && target.options.enableAutoFreeze) {\n target.options.updatedValues =\n target.options.updatedValues ?? new WeakMap();\n target.options.updatedValues.set(updatedValue, proxyDraft.original);\n }\n // final update value\n set(copy, key, updatedValue);\n }\n });\n if (target.options.enableAutoFreeze) {\n // !case: assign the draft value in cross draft tree\n if (proxyDraft.finalities !== target.finalities) {\n target.options.enableAutoFreeze = false;\n }\n }\n }\n if (isDraftable(value, target.options)) {\n // !case: assign the non-draft value\n target.finalities.draft.push(() => {\n const copy = target.type === DraftType.Set ? target.setMap : target.copy;\n if (isEqual(get(copy, key), value)) {\n finalizeAssigned(target, key);\n }\n });\n }\n}\n", "import { DraftType, Operation, Patches, ProxyDraft } from './interface';\nimport { cloneIfNeeded, escapePath, get, has, isEqual } from './utils';\n\nfunction generateArrayPatches(\n proxyState: ProxyDraft<Array<any>>,\n basePath: any[],\n patches: Patches,\n inversePatches: Patches,\n pathAsArray: boolean\n) {\n let { original, assignedMap, options } = proxyState;\n let copy = proxyState.copy!;\n if (copy.length < original.length) {\n [original, copy] = [copy, original];\n [patches, inversePatches] = [inversePatches, patches];\n }\n for (let index = 0; index < original.length; index += 1) {\n if (assignedMap!.get(index.toString()) && copy[index] !== original[index]) {\n const _path = basePath.concat([index]);\n const path = escapePath(_path, pathAsArray);\n patches.push({\n op: Operation.Replace,\n path,\n // If it is a draft, it needs to be deep cloned, and it may also be non-draft.\n value: cloneIfNeeded(copy[index]),\n });\n inversePatches.push({\n op: Operation.Replace,\n path,\n // If it is a draft, it needs to be deep cloned, and it may also be non-draft.\n value: cloneIfNeeded(original[index]),\n });\n }\n }\n for (let index = original.length; index < copy.length; index += 1) {\n const _path = basePath.concat([index]);\n const path = escapePath(_path, pathAsArray);\n patches.push({\n op: Operation.Add,\n path,\n // If it is a draft, it needs to be deep cloned, and it may also be non-draft.\n value: cloneIfNeeded(copy[index]),\n });\n }\n if (original.length < copy.length) {\n // https://www.rfc-editor.org/rfc/rfc6902#appendix-A.4\n // For performance, here we only generate an operation that replaces the length of the array,\n // which is inconsistent with JSON Patch specification\n const { arrayLengthAssignment = true } = options.enablePatches;\n if (arrayLengthAssignment) {\n const _path = basePath.concat(['length']);\n const path = escapePath(_path, pathAsArray);\n inversePatches.push({\n op: Operation.Replace,\n path,\n value: original.length,\n });\n } else {\n for (let index = copy.length; original.length < index; index -= 1) {\n const _path = basePath.concat([index - 1]);\n const path = escapePath(_path, pathAsArray);\n inversePatches.push({\n op: Operation.Remove,\n path,\n });\n }\n }\n }\n}\n\nfunction generatePatchesFromAssigned(\n { original, copy, assignedMap }: ProxyDraft<Record<string, any>>,\n basePath: any[],\n patches: Patches,\n inversePatches: Patches,\n pathAsArray: boolean\n) {\n assignedMap!.forEach((assignedValue, key) => {\n const originalValue = get(original, key);\n const value = cloneIfNeeded(get(copy, key));\n const op = !assignedValue\n ? Operation.Remove\n : has(original, key)\n ? Operation.Replace\n : Operation.Add;\n if (isEqual(originalValue, value) && op === Operation.Replace) return;\n const _path = basePath.concat(key);\n const path = escapePath(_path, pathAsArray);\n patches.push(op === Operation.Remove ? { op, path } : { op, path, value });\n inversePatches.push(\n op === Operation.Add\n ? { op: Operation.Remove, path }\n : op === Operation.Remove\n ? { op: Operation.Add, path, value: originalValue }\n : { op: Operation.Replace, path, value: originalValue }\n );\n });\n}\n\nfunction generateSetPatches(\n { original, copy }: ProxyDraft<Set<any>>,\n basePath: any[],\n patches: Patches,\n inversePatches: Patches,\n pathAsArray: boolean\n) {\n let index = 0;\n original.forEach((value: any) => {\n if (!copy!.has(value)) {\n const _path = basePath.concat([index]);\n const path = escapePath(_path, pathAsArray);\n patches.push({\n op: Operation.Remove,\n path,\n value,\n });\n inversePatches.unshift({\n op: Operation.Add,\n path,\n value,\n });\n }\n index += 1;\n });\n index = 0;\n copy!.forEach((value: any) => {\n if (!original.has(value)) {\n const _path = basePath.concat([index]);\n const path = escapePath(_path, pathAsArray);\n patches.push({\n op: Operation.Add,\n path,\n value,\n });\n inversePatches.unshift({\n op: Operation.Remove,\n path,\n value,\n });\n }\n index += 1;\n });\n}\n\nexport function generatePatches(\n proxyState: ProxyDraft,\n basePath: any[],\n patches: Patches,\n inversePatches: Patches\n) {\n const { pathAsArray = true } = proxyState.options.enablePatches;\n switch (proxyState.type) {\n case DraftType.Object:\n case DraftType.Map:\n return generatePatchesFromAssigned(\n proxyState,\n basePath,\n patches,\n inversePatches,\n pathAsArray\n );\n case DraftType.Array:\n return generateArrayPatches(\n proxyState,\n basePath,\n patches,\n inversePatches,\n pathAsArray\n );\n case DraftType.Set:\n return generateSetPatches(\n proxyState,\n basePath,\n patches,\n inversePatches,\n pathAsArray\n );\n }\n}\n", "import { Options } from './interface';\nimport { isDraftable } from './utils';\n\nlet readable = false;\n\nexport const checkReadable = (\n value: any,\n options: Options<any, any>,\n ignoreCheckDraftable = false\n) => {\n if (\n typeof value === 'object' &&\n value !== null &&\n (!isDraftable(value, options) || ignoreCheckDraftable) &&\n !readable\n ) {\n throw new Error(\n `Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.`\n );\n }\n};\n\n/**\n * `unsafe(callback)` to access mutable data directly in strict mode.\n *\n * ## Example\n *\n * ```ts\n * import { create, unsafe } from '../index';\n *\n * class Foobar {\n * bar = 1;\n * }\n *\n * const baseState = { foobar: new Foobar() };\n * const state = create(\n * baseState,\n * (draft) => {\n * unsafe(() => {\n * draft.foobar.bar = 2;\n * });\n * },\n * {\n * strict: true,\n * }\n * );\n *\n * expect(state).toBe(baseState);\n * expect(state.foobar).toBe(baseState.foobar);\n * expect(state.foobar.bar).toBe(2);\n * ```\n */\nexport function unsafe<T>(callback: () => T): T {\n readable = true;\n let result: T;\n try {\n result = callback();\n } finally {\n readable = false;\n }\n return result;\n}\n", "import { dataTypes, iteratorSymbol } from './constant';\nimport { internal } from './internal';\nimport { generatePatches } from './patch';\nimport { checkReadable } from './unsafe';\nimport {\n ensureShallowCopy,\n getProxyDraft,\n isDraftable,\n isEqual,\n latest,\n markChanged,\n markFinalization,\n} from './utils';\n\nexport const mapHandler = {\n get size() {\n const current: Map<any, any> = latest(getProxyDraft(this)!);\n return current.size;\n },\n has(key: any): boolean {\n return latest(getProxyDraft(this)!).has(key);\n },\n set(key: any, value: any) {\n const target = getProxyDraft(this)!;\n const source = latest(target);\n if (!source.has(key) || !isEqual(source.get(key), value)) {\n ensureShallowCopy(target);\n markChanged(target);\n target.assignedMap!.set(key, true);\n target.copy.set(key, value);\n markFinalization(target, key, value, generatePatches);\n }\n return this;\n },\n delete(key: any): boolean {\n if (!this.has(key)) {\n return false;\n }\n const target = getProxyDraft(this)!;\n ensureShallowCopy(target);\n markChanged(target);\n if (target.original.has(key)) {\n target.assignedMap!.set(key, false);\n } else {\n target.assignedMap!.delete(key);\n }\n target.copy.delete(key);\n return true;\n },\n clear() {\n const target = getProxyDraft(this)!;\n if (!this.size) return;\n ensureShallowCopy(target);\n markChanged(target);\n target.assignedMap = new Map();\n for (const [key] of target.original) {\n target.assignedMap.set(key, false);\n }\n target.copy!.clear();\n },\n forEach(callback: (value: any, key: any, self: any) => void, thisArg?: any) {\n const target = getProxyDraft(this)!;\n latest(target).forEach((_value: any, _key: any) => {\n callback.call(thisArg, this.get(_key), _key, this);\n });\n },\n get(key: any): any {\n const target = getProxyDraft(this)!;\n const value = latest(target).get(key);\n const mutable =\n target.options.mark?.(value, dataTypes) === dataTypes.mutable;\n if (target.options.strict) {\n checkReadable(value, target.options, mutable);\n }\n if (mutable) {\n return value;\n }\n if (target.finalized || !isDraftable(value, target.options)) {\n return value;\n }\n // drafted or reassigned\n if (value !== target.original.get(key)) {\n return value;\n }\n const draft = internal.createDraft({\n original: value,\n parentDraft: target,\n key,\n finalities: target.finalities,\n options: target.options,\n });\n ensureShallowCopy(target);\n target.copy.set(key, draft);\n return draft;\n },\n keys(): IterableIterator<any> {\n return latest(getProxyDraft(this)!).keys();\n },\n values(): IterableIterator<any> {\n const iterator = this.keys();\n return {\n [iteratorSymbol]: () => this.values(),\n next: () => {\n const result = iterator.next();\n if (result.done) return result;\n const value = this.get(result.value);\n return {\n done: false,\n value,\n };\n },\n } as any;\n },\n entries(): IterableIterator<[any, any]> {\n const iterator = this.keys();\n return {\n [iteratorSymbol]: () => this.entries(),\n next: () => {\n const result = iterator.next();\n if (result.done) return result;\n const value = this.get(result.value);\n return {\n done: false,\n value: [result.value, value],\n };\n },\n } as any;\n },\n [iteratorSymbol]() {\n return this.entries();\n },\n};\n\nexport const mapHandlerKeys = Reflect.ownKeys(mapHandler);\n", "import { ProxyDraft } from './interface';\nimport { dataTypes, iteratorSymbol } from './constant';\nimport { internal } from './internal';\nimport {\n ensureShallowCopy,\n getProxyDraft,\n isDraftable,\n markChanged,\n markFinalization,\n} from './utils';\nimport { checkReadable } from './unsafe';\nimport { generatePatches } from './patch';\n\nconst getNextIterator =\n (\n target: ProxyDraft<any>,\n iterator: IterableIterator<any>,\n { isValuesIterator }: { isValuesIterator: boolean }\n ) =>\n () => {\n const result = iterator.next();\n if (result.done) return result;\n const key = result.value as any;\n let value = target.setMap!.get(key);\n const currentDraft = getProxyDraft(value);\n const mutable =\n target.options.mark?.(value, dataTypes) === dataTypes.mutable;\n if (target.options.strict) {\n checkReadable(key, target.options, mutable);\n }\n if (\n !mutable &&\n !currentDraft &&\n isDraftable(key, target.options) &&\n !target.finalized &&\n target.original!.has(key)\n ) {\n // draft a draftable original set item\n const proxy = internal.createDraft({\n original: key,\n parentDraft: target,\n key,\n finalities: target.finalities,\n options: target.options,\n });\n target.setMap!.set(key, proxy);\n value = proxy;\n } else if (currentDraft) {\n // drafted\n value = currentDraft.proxy;\n }\n return {\n done: false,\n value: isValuesIterator ? value : [value, value],\n };\n };\n\nexport const setHandler = {\n get size() {\n const target: ProxyDraft<any> = getProxyDraft(this)!;\n return target.setMap!.size;\n },\n has(value: any) {\n const target = getProxyDraft(this)!;\n // reassigned or non-draftable values\n if (target.setMap!.has(value)) return true;\n ensureShallowCopy(target);\n const valueProxyDraft = getProxyDraft(value)!;\n // drafted\n if (valueProxyDraft && target.setMap!.has(valueProxyDraft.original))\n return true;\n return false;\n },\n add(value: any) {\n const target = getProxyDraft(this)!;\n if (!this.has(value)) {\n ensureShallowCopy(target);\n markChanged(target);\n target.assignedMap!.set(value, true);\n target.setMap!.set(value, value);\n markFinalization(target, value, value, generatePatches);\n }\n return this;\n },\n delete(value: any): boolean {\n if (!this.has(value)) {\n return false;\n }\n const target = getProxyDraft(this)!;\n ensureShallowCopy(target);\n markChanged(target);\n const valueProxyDraft = getProxyDraft(value)!;\n if (valueProxyDraft && target.setMap!.has(valueProxyDraft.original)) {\n // delete drafted\n target.assignedMap!.set(valueProxyDraft.original, false);\n return target.setMap!.delete(valueProxyDraft.original);\n }\n if (!valueProxyDraft && target.setMap!.has(value)) {\n // non-draftable values\n target.assignedMap!.set(value, false);\n } else {\n // reassigned\n target.assignedMap!.delete(value);\n }\n // delete reassigned or non-draftable values\n return target.setMap!.delete(value);\n },\n clear() {\n if (!this.size) return;\n const target = getProxyDraft(this)!;\n ensureShallowCopy(target);\n markChanged(target);\n for (const value of target.original) {\n target.assignedMap!.set(value, false);\n }\n target.setMap!.clear();\n },\n values(): IterableIterator<any> {\n const target = getProxyDraft(this)!;\n ensureShallowCopy(target);\n const iterator = target.setMap!.keys();\n return {\n [Symbol.iterator]: () => this.values(),\n next: getNextIterator(target, iterator, { isValuesIterator: true }),\n };\n },\n entries(): IterableIterator<[any, any]> {\n const target = getProxyDraft(this)!;\n ensureShallowCopy(target);\n const iterator = target.setMap!.keys();\n return {\n [Symbol.iterator]: () => this.entries(),\n next: getNextIterator(target, iterator, {\n isValuesIterator: false,\n }) as () => IteratorReturnResult<any>,\n };\n },\n keys(): IterableIterator<any> {\n return this.values();\n },\n [iteratorSymbol]() {\n return this.values();\n },\n forEach(callback: any, thisArg?: any) {\n const iterator = this.values();\n let result = iterator.next();\n while (!result.done) {\n callback.call(thisArg, result.value, result.value, this);\n result = iterator.next();\n }\n },\n};\n\nif (Set.prototype.difference) {\n // for compatibility with new Set methods\n // https://github.com/tc39/proposal-set-methods\n // And `https://github.com/tc39/proposal-set-methods/blob/main/details.md#symbolspecies` has some details about the `@@species` symbol.\n // So we can't use SubSet instance constructor to get the constructor of the SubSet instance.\n Object.assign(setHandler, {\n intersection(this: Set<any>, other: ReadonlySetLike<any>): Set<any> {\n return Set.prototype.intersection.call(new Set(this.values()), other);\n },\n union(this: Set<any>, other: ReadonlySetLike<any>): Set<any> {\n return Set.prototype.union.call(new Set(this.values()), other);\n },\n difference(this: Set<any>, other: ReadonlySetLike<any>): Set<any> {\n return Set.prototype.difference.call(new Set(this.values()), other);\n },\n symmetricDifference(this: Set<any>, other: ReadonlySetLike<any>): Set<any> {\n return Set.prototype.symmetricDifference.call(\n new Set(this.values()),\n other\n );\n },\n isSubsetOf(this: Set<any>, other: ReadonlySetLike<any>): boolean {\n return Set.prototype.isSubsetOf.call(new Set(this.values()), other);\n },\n isSupersetOf(this: Set<any>, other: ReadonlySetLike<any>): boolean {\n return Set.prototype.isSupersetOf.call(new Set(this.values()), other);\n },\n isDisjointFrom(this: Set<any>, other: ReadonlySetLike<any>): boolean {\n return Set.prototype.isDisjointFrom.call(new Set(this.values()), other);\n },\n });\n}\n\nexport const setHandlerKeys = Reflect.ownKeys(setHandler);\n", "import {\n DraftType,\n Finalities,\n Patches,\n ProxyDraft,\n Options,\n Operation,\n} from './interface';\nimport { dataTypes, PROXY_DRAFT } from './constant';\nimport { mapHandler, mapHandlerKeys } from './map';\nimport { setHandler, setHandlerKeys } from './set';\nimport { internal } from './internal';\nimport {\n deepFreeze,\n ensureShallowCopy,\n getDescriptor,\n getProxyDraft,\n getType,\n getValue,\n has,\n isEqual,\n isDraftable,\n latest,\n markChanged,\n peek,\n get,\n set,\n revokeProxy,\n finalizeSetValue,\n markFinalization,\n finalizePatches,\n} from './utils';\nimport { checkReadable } from './unsafe';\nimport { generatePatches } from './patch';\n\nconst draftsCache = new WeakSet<object>();\n\nconst proxyHandler: ProxyHandler<ProxyDraft> = {\n get(target: ProxyDraft, key: string | number | symbol, receiver: any) {\n const copy = target.copy?.[key];\n // Improve draft reading performance by caching the draft copy.\n if (copy && draftsCache.has(copy)) {\n return copy;\n }\n if (key === PROXY_DRAFT) return target;\n let markResult: any;\n if (target.options.mark) {\n // handle `Uncaught TypeError: Method get Map.prototype.size called on incompatible receiver #<Map>`\n // or `Uncaught TypeError: Method get Set.prototype.size called on incompatible receiver #<Set>`\n const value =\n key === 'size' &&\n (target.original instanceof Map || target.original instanceof Set)\n ? Reflect.get(target.original, key)\n : Reflect.get(target.original, key, receiver);\n markResult = target.options.mark(value, dataTypes);\n if (markResult === dataTypes.mutable) {\n if (target.options.strict) {\n checkReadable(value, target.options, true);\n }\n return value;\n }\n }\n const source = latest(target);\n\n if (source instanceof Map && mapHandlerKeys.includes(key as any)) {\n if (key === 'size') {\n return Object.getOwnPropertyDescriptor(mapHandler, 'size')!.get!.call(\n target.proxy\n );\n }\n const handle = mapHandler[key as keyof typeof mapHandler] as Function;\n if (handle) {\n return handle.bind(target.proxy);\n }\n }\n\n if (source instanceof Set && setHandlerKeys.includes(key as any)) {\n if (key === 'size') {\n return Object.getOwnPropertyDescriptor(setHandler, 'size')!.get!.call(\n target.proxy\n );\n }\n const handle = setHandler[key as keyof typeof setHandler] as Function;\n if (handle) {\n return handle.bind(target.proxy);\n }\n }\n\n if (!has(source, key)) {\n const desc = getDescriptor(source, key);\n return desc\n ? `value` in desc\n ? desc.value\n : // !case: support for getter\n desc.get?.call(target.proxy)\n : undefined;\n }\n const value = source[key];\n if (target.options.strict) {\n checkReadable(value, target.options);\n }\n if (target.finalized || !isDraftable(value, target.options)) {\n return value;\n }\n // Ensure that the assigned values are not drafted\n if (value === peek(target.original, key)) {\n ensureShallowCopy(target);\n target.copy![key] = createDraft({\n original: target.original[key],\n parentDraft: target,\n key: target.type === DraftType.Array ? Number(key) : key,\n finalities: target.finalities,\n options: target.options,\n });\n // !case: support for custom shallow copy function\n if (typeof markResult === 'function') {\n const subProxyDraft = getProxyDraft(target.copy![key])!;\n ensureShallowCopy(subProxyDraft);\n // Trigger a custom shallow copy to update to a new copy\n markChanged(subProxyDraft);\n return subProxyDraft.copy;\n }\n return target.copy![key];\n }\n return value;\n },\n set(target: ProxyDraft, key: string | number | symbol, value: any) {\n if (target.type === DraftType.Set || target.type === DraftType.Map) {\n throw new Error(\n `Map/Set draft does not support any property assignment.`\n );\n }\n let _key: number;\n if (\n target.type === DraftType.Array &&\n key !== 'length' &&\n !(\n Number.isInteger((_key = Number(key))) &&\n _key >= 0 &&\n (key === 0 || _key === 0 || String(_key) === String(key))\n )\n ) {\n throw new Error(\n `Only supports setting array indices and the 'length' property.`\n );\n }\n const desc = getDescriptor(latest(target), key);\n if (desc?.set) {\n // !case: cover the case of setter\n desc.set.call(target.proxy, value);\n return true;\n }\n const current = peek(latest(target), key);\n const currentProxyDraft = getProxyDraft(current);\n if (currentProxyDraft && isEqual(currentProxyDraft.original, value)) {\n // !case: ignore the case of assigning the original draftable value to a draft\n target.copy![key] = value;\n target.assignedMap = target.assignedMap ?? new Map();\n target.assignedMap.set(key, false);\n return true;\n }\n // !case: handle new props with value 'undefined'\n if (\n isEqual(value, current) &&\n (value !== undefined || has(target.original, key))\n )\n return true;\n ensureShallowCopy(target);\n markChanged(target);\n if (has(target.original, key) && isEqual(value, target.original[key])) {\n // !case: handle the case of assigning the original non-draftable value to a draft\n target.assignedMap!.delete(key);\n } else {\n target.assignedMap!.set(key, true);\n }\n target.copy![key] = value;\n markFinalization(target, key, value, generatePatches);\n return true;\n },\n has(target: ProxyDraft, key: string | symbol) {\n return key in latest(target);\n },\n ownKeys(target: ProxyDraft) {\n return Reflect.ownKeys(latest(target));\n },\n getOwnPropertyDescriptor(target: ProxyDraft, key: string | symbol) {\n const source = latest(target);\n const descriptor = Reflect.getOwnPropertyDescriptor(source, key);\n if (!descriptor) return descriptor;\n return {\n writable: true,\n configurable: target.type !== DraftType.Array || key !== 'length',\n enumerable: descriptor.enumerable,\n value: source[key],\n };\n },\n getPrototypeOf(target: ProxyDraft) {\n return Reflect.getPrototypeOf(target.original);\n },\n setPrototypeOf() {\n throw new Error(`Cannot call 'setPrototypeOf()' on drafts`);\n },\n defineProperty() {\n throw new Error(`Cannot call 'defineProperty()' on drafts`);\n },\n deleteProperty(target: ProxyDraft, key: string | symbol) {\n if (target.type === DraftType.Array) {\n return proxyHandler.set!.call(this, target, key, undefined, target.proxy);\n }\n if (peek(target.original, key) !== undefined || key in target.original) {\n // !case: delete an existing key\n ensureShallowCopy(target);\n markChanged(target);\n target.assignedMap!.set(key, false);\n } else {\n target.assignedMap = target.assignedMap ?? new Map();\n // The original non-existent key has been deleted\n target.assignedMap.delete(key);\n }\n if (target.copy) delete target.copy[key];\n return true;\n },\n};\n\nexport function createDraft<T extends object>(createDraftOptions: {\n original: T;\n parentDraft?: ProxyDraft | null;\n key?: string | number | symbol;\n finalities: Finalities;\n options: Options<any, any>;\n}): T {\n const { original, parentDraft, key, finalities, options } =\n createDraftOptions;\n const type = getType(original);\n const proxyDraft: ProxyDraft = {\n type,\n finalized: false,\n parent: parentDraft,\n original,\n copy: null,\n proxy: null,\n finalities,\n options,\n // Mapping of draft Set items to their corresponding draft values.\n setMap:\n type === DraftType.Set\n ? new Map((original as Set<any>).entries())\n : undefined,\n };\n // !case: undefined as a draft map key\n if (key || 'key' in createDraftOptions) {\n proxyDraft.key = key;\n }\n const { proxy, revoke } = Proxy.revocable<any>(\n type === DraftType.Array ? Object.assign([], proxyDraft) : proxyDraft,\n proxyHandler\n );\n finalities.revoke.push(revoke);\n draftsCache.add(proxy);\n proxyDraft.proxy = proxy;\n if (parentDraft) {\n const target = parentDraft;\n target.finalities.draft.push((patches, inversePatches) => {\n const oldProxyDraft = getProxyDraft(proxy)!;\n // if target is a Set draft, `setMap` is the real Set copies proxy mapping.\n let copy = target.type === DraftType.Set ? target.setMap : target.copy;\n const draft = get(copy, key!);\n const proxyDraft = getProxyDraft(draft);\n if (proxyDraft) {\n // assign the updated value to the copy object\n let updatedValue = proxyDraft.original;\n if (proxyDraft.operated) {\n updatedValue = getValue(draft);\n }\n finalizeSetValue(proxyDraft);\n finalizePatches(proxyDraft, generatePatches, patches, inversePatches);\n if (__DEV__ && target.options.enableAutoFreeze) {\n target.options.updatedValues =\n target.options.updatedValues ?? new WeakMap();\n target.options.updatedValues.set(updatedValue, proxyDraft.original);\n }\n // final update value\n set(copy, key!, updatedValue);\n }\n // !case: handle the deleted key\n oldProxyDraft.callbacks?.forEach((callback) => {\n callback(patches, inversePatches);\n });\n });\n } else {\n // !case: handle the root draft\n const target = getProxyDraft(proxy)!;\n target.finalities.draft.push((patches, inversePatches) => {\n finalizeSetValue(target);\n finalizePatches(target, generatePatches, patches, inversePatches);\n });\n }\n return proxy;\n}\n\ninternal.createDraft = createDraft;\n\nexport function finalizeDraft<T>(\n result: T,\n returnedValue: [T] | [],\n patches?: Patches,\n inversePatches?: Patches,\n enableAutoFreeze?: boolean\n) {\n const proxyDraft = getProxyDraft(result);\n const original = proxyDraft?.original ?? result;\n const hasReturnedValue = !!returnedValue.length;\n if (proxyDraft?.operated) {\n while (proxyDraft.finalities.draft.length > 0) {\n const finalize = proxyDraft.finalities.draft.pop()!;\n finalize(patches, inversePatches);\n }\n }\n const state = hasReturnedValue\n ? returnedValue[0]\n : proxyDraft\n ? proxyDraft.operated\n ? proxyDraft.copy\n : proxyDraft.original\n : result;\n if (proxyDraft) revokeProxy(proxyDraft);\n if (enableAutoFreeze) {\n deepFreeze(state, state, proxyDraft?.options.updatedValues);\n }\n return [\n state,\n patches && hasReturnedValue\n ? [{ op: Operation.Replace, path: [], value: returnedValue[0] }]\n : patches,\n inversePatches && hasReturnedValue\n ? [{ op: Operation.Replace, path: [], value: original }]\n : inversePatches,\n ] as [T, Patches | undefined, Patches | undefined];\n}\n", "import {\n Finalities,\n Options,\n Patches,\n PatchesOptions,\n Result,\n} from './interface';\nimport { createDraft, finalizeDraft } from './draft';\nimport { isDraftable } from './utils';\nimport { dataTypes } from './constant';\n\nexport function draftify<\n T extends object,\n O extends PatchesOptions = false,\n F extends boolean = false\n>(\n baseState: T,\n options: Options<O, F>\n): [T, (returnedValue: [T] | []) => Result<T, O, F>] {\n const finalities: Finalities = {\n draft: [],\n revoke: [],\n handledSet: new WeakSet<any>(),\n };\n let patches: Patches | undefined;\n let inversePatches: Patches | undefined;\n if (options.enablePatches) {\n patches = [];\n inversePatches = [];\n }\n const isMutable =\n options.mark?.(baseState, dataTypes) === dataTypes.mutable ||\n !isDraftable(baseState, options);\n const draft = isMutable\n ? baseState\n : createDraft({\n original: baseState,\n parentDraft: null,\n finalities,\n options,\n });\n return [\n draft,\n (returnedValue: [T] | [] = []) => {\n const [finalizedState, finalizedPatches, finalizedInversePatches] =\n finalizeDraft(\n draft,\n returnedValue,\n patches,\n inversePatches,\n options.enableAutoFreeze\n );\n return (\n options.enablePatches\n ? [finalizedState, finalizedPatches, finalizedInversePatches]\n : finalizedState\n ) as Result<T, O, F>;\n },\n ];\n}\n", "import { type Draft, DraftType, type ProxyDraft } from './interface';\nimport {\n forEach,\n get,\n getProxyDraft,\n getType,\n isBaseMapInstance,\n isBaseSetInstance,\n isDraft,\n isDraftable,\n isEqual,\n set,\n shallowCopy,\n} from './utils';\n\nexport function handleReturnValue<T extends object>(options: {\n rootDraft: ProxyDraft<any> | undefined;\n value: T;\n useRawReturn?: boolean;\n isContainDraft?: boolean;\n isRoot?: boolean;\n}) {\n const { rootDraft, value, useRawReturn = false, isRoot = true } = options;\n forEach(value, (key, item, source) => {\n const proxyDraft = getProxyDraft(item);\n // just handle the draft which is created by the same rootDraft\n if (\n proxyDraft &&\n rootDraft &&\n proxyDraft.finalities === rootDraft.finalities\n ) {\n options.isContainDraft = true;\n const currentValue = proxyDraft.original;\n // final update value, but just handle return value\n if (source instanceof Set) {\n const arr = Array.from(source);\n source.clear();\n arr.forEach((_item) =>\n source.add(key === _item ? currentValue : _item)\n );\n } else {\n set(source, key, currentValue);\n }\n } else if (typeof item === 'object' && item !== null) {\n options.value = item;\n options.isRoot = false;\n handleReturnValue(options);\n }\n });\n if (__DEV__ && isRoot) {\n if (!options.isContainDraft)\n console.warn(\n `The return value does not contain any draft, please use 'rawReturn()' to wrap the return value to improve performance.`\n );\n\n if (useRawReturn) {\n console.warn(\n `The return value contains drafts, please don't use 'rawReturn()' to wrap the return value.`\n );\n }\n }\n}\n\nfunction getCurrent(target: any) {\n const proxyDraft = getProxyDraft(target);\n if (!isDraftable(target, proxyDraft?.options)) return target;\n const type = getType(target);\n if (proxyDraft && !proxyDraft.operated) return proxyDraft.original;\n let currentValue: any;\n function ensureShallowCopy() {\n currentValue =\n type === DraftType.Map\n ? !isBaseMapInstance(target)\n ? new (Object.getPrototypeOf(target).constructor)(target)\n : new Map(target)\n : type === DraftType.Set\n ? Array.from(proxyDraft!.setMap!.values()!)\n : shallowCopy(target, proxyDraft?.options);\n }\n\n if (proxyDraft) {\n // It's a proxy draft, let's create a shallow copy eagerly\n proxyDraft.finalized = true;\n try {\n ensureShallowCopy();\n } finally {\n proxyDraft.finalized = false;\n }\n } else {\n // It's not a proxy draft, let's use the target directly and let's see\n // lazily if we need to create a shallow copy\n currentValue = target;\n }\n\n forEach(currentValue, (key, value) => {\n if (proxyDraft && isEqual(get(proxyDraft.original, key), value)) return;\n const newValue = getCurrent(value);\n if (newValue !== value) {\n if (currentValue === target) ensureShallowCopy();\n set(currentValue, key, newValue);\n }\n });\n if (type === DraftType.Set) {\n const value = proxyDraft?.original ?? currentValue;\n return !isBaseSetInstance(value)\n ? new (Object.getPrototypeOf(value).constructor)(currentValue)\n : new Set(currentValue);\n }\n return currentValue;\n}\n\n/**\n * `current(draft)` to get current state in the draft mutation function.\n *\n * ## Example\n *\n * ```ts\n * import { create, current } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const state = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * expect(current(draft.foo)).toEqual({ bar: 'str2' });\n * },\n * );\n * ```\n */\nexport function current<T extends object>(target: Draft<T>): T;\n/** @deprecated You should call current only on `Draft<T>` types. */\nexport function current<T extends object>(target: T): T;\nexport function current<T extends object>(target: T | Draft<T>): T {\n if (!isDraft(target)) {\n throw new Error(`current() is only used for Draft, parameter: ${target}`);\n }\n return getCurrent(target);\n}\n", "import {\n CreateResult,\n Draft,\n Mark,\n Options,\n ExternalOptions,\n PatchesOptions,\n Result,\n} from './interface';\nimport { draftify } from './draftify';\nimport {\n getProxyDraft,\n isDraft,\n isDraftable,\n isEqual,\n revokeProxy,\n} from './utils';\nimport { current, handleReturnValue } from './current';\nimport { RAW_RETURN_SYMBOL, dataTypes } from './constant';\n\ntype MakeCreator = <\n _F extends boolean = false,\n _O extends PatchesOptions = false\n>(\n options?: ExternalOptions<_O, _F>\n) => {\n <\n T extends any,\n F extends boolean = _F,\n O extends PatchesOptions = _O,\n R extends void | Promise<void> | T | Promise<T> = void\n >(\n base: T,\n mutate: (draft: Draft<T>) => R,\n options?: ExternalOptions<O, F>\n ): CreateResult<T, O, F, R>;\n <\n T extends any,\n F extends boolean = _F,\n O extends PatchesOptions = _O,\n R extends void | Promise<void> = void\n >(\n base: T,\n mutate: (draft: T) => R,\n options?: ExternalOptions<O, F>\n ): CreateResult<T, O, F, R>;\n <\n T extends any,\n P extends any[] = [],\n F extends boolean = _F,\n O extends PatchesOptions = _O,\n R extends void | Promise<void> = void\n >(\n mutate: (draft: Draft<T>, ...args: P) => R,\n options?: ExternalOptions<O, F>\n ): (base: T, ...args: P) => CreateResult<T, O, F, R>;\n <T extends any, O extends PatchesOptions = _O, F extends boolean = _F>(\n base: T,\n options?: ExternalOptions<O, F>\n ): [Draft<T>, () => Result<T, O, F>];\n};\n\n/**\n * `makeCreator(options)` to make a creator function.\n *\n * ## Example\n *\n * ```ts\n * import { makeCreator } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const create = makeCreator({ enableAutoFreeze: true });\n * const state = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * },\n * );\n *\n * expect(state).toEqual({ foo: { bar: 'str2' }, arr: [] });\n * expect(state).not.toBe(baseState);\n * expect(state.foo).not.toBe(baseState.foo);\n * expect(state.arr).toBe(baseState.arr);\n * expect(Object.isFrozen(state)).toBeTruthy();\n * ```\n */\nexport const makeCreator: MakeCreator = (arg) => {\n if (\n __DEV__ &&\n arg !== undefined &&\n Object.prototype.toString.call(arg) !== '[object Object]'\n ) {\n throw new Error(\n `Invalid options: ${String(arg)}, 'options' should be an object.`\n );\n }\n return function create(arg0: any, arg1: any, arg2?: any): any {\n if (typeof arg0 === 'function' && typeof arg1 !== 'function') {\n return function (this: any, base: any, ...args: any[]) {\n return create(\n base,\n (draft: any) => arg0.call(this, draft, ...args),\n arg1\n );\n };\n }\n const base = arg0;\n const mutate = arg1 as (...args: any[]) => any;\n let options = arg2;\n if (typeof arg1 !== 'function') {\n options = arg1;\n }\n if (\n __DEV__ &&\n options !== undefined &&\n Object.prototype.toString.call(options) !== '[object Object]'\n ) {\n throw new Error(\n `Invalid options: ${options}, 'options' should be an object.`\n );\n }\n options = {\n ...arg,\n ...options,\n };\n const state = isDraft(base) ? current(base) : base;\n const mark = Array.isArray(options.mark)\n ? (((value: unknown, types: typeof dataTypes) => {\n for (const mark of options.mark as Mark<any, any>[]) {\n if (__DEV__ && typeof mark !== 'function') {\n throw new Error(\n `Invalid mark: ${mark}, 'mark' should be a function.`\n );\n }\n const result = mark(value, types);\n if (result) {\n return result;\n }\n }\n return;\n }) as Mark<any, any>)\n : options.mark;\n const enablePatches = options.enablePatches ?? false;\n const strict = options.strict ?? false;\n const enableAutoFreeze = options.enableAutoFreeze ?? false;\n const _options: Options<any, any> = {\n enableAutoFreeze,\n mark,\n strict,\n enablePatches,\n };\n if (\n !isDraftable(state, _options) &&\n typeof state === 'object' &&\n state !== null\n ) {\n throw new Error(\n `Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.`\n );\n }\n const [draft, finalize] = draftify(state, _options);\n if (typeof arg1 !== 'function') {\n if (!isDraftable(state, _options)) {\n throw new Error(\n `Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.`\n );\n }\n return [draft, finalize];\n }\n let result: any;\n try {\n result = mutate(draft);\n } catch (error) {\n revokeProxy(getProxyDraft(draft));\n throw error;\n }\n const returnValue = (value: any) => {\n const proxyDraft = getProxyDraft(draft)!;\n if (!isDraft(value)) {\n if (\n value !== undefined &&\n !isEqual(value, draft) &&\n proxyDraft?.operated\n ) {\n throw new Error(\n `Either the value is returned as a new non-draft value, or only the draft is modified without returning any value.`\n );\n }\n const rawReturnValue = value?.[RAW_RETURN_SYMBOL] as [any] | undefined;\n if (rawReturnValue) {\n const _value = rawReturnValue[0];\n if (_options.strict && typeof value === 'object' && value !== null) {\n handleReturnValue({\n rootDraft: proxyDraft,\n value,\n useRawReturn: true,\n });\n }\n return finalize([_value]);\n }\n if (value !== undefined) {\n if (typeof value === 'object' && value !== null) {\n handleReturnValue({ rootDraft: proxyDraft, value });\n }\n return finalize([value]);\n }\n }\n if (value === draft || value === undefined) {\n return finalize([]);\n }\n const returnedProxyDraft = getProxyDraft(value)!;\n if (_options === returnedProxyDraft.options) {\n if (returnedProxyDraft.operated) {\n throw new Error(`Cannot return a modified child draft.`);\n }\n return finalize([current(value)]);\n }\n return finalize([value]);\n };\n if (result instanceof Promise) {\n return result.then(returnValue, (error) => {\n revokeProxy(getProxyDraft(draft)!);\n throw error;\n });\n }\n return returnValue(result);\n };\n};\n", "import { makeCreator } from './makeCreator';\n\n/**\n * `create(baseState, callback, options)` to create the next state\n *\n * ## Example\n *\n * ```ts\n * import { create } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const state = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * },\n * );\n *\n * expect(state).toEqual({ foo: { bar: 'str2' }, arr: [] });\n * expect(state).not.toBe(baseState);\n * expect(state.foo).not.toBe(baseState.foo);\n * expect(state.arr).toBe(baseState.arr);\n * ```\n */\nconst create = makeCreator();\n\nexport { create };\n", "import { Draft, Options, Patches, DraftType, Operation } from './interface';\nimport { deepClone, get, getType, isDraft, unescapePath } from './utils';\nimport { create } from './create';\n\n/**\n * `apply(state, patches)` to apply patches to state\n *\n * ## Example\n *\n * ```ts\n * import { create, apply } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const [state, patches] = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * },\n * { enablePatches: true }\n * );\n * expect(state).toEqual({ foo: { bar: 'str2' }, arr: [] });\n * expect(patches).toEqual([{ op: 'replace', path: ['foo', 'bar'], value: 'str2' }]);\n * expect(state).toEqual(apply(baseState, patches));\n * ```\n */\nexport function apply<T extends object, F extends boolean = false>(\n state: T,\n patches: Patches,\n applyOptions?: Pick<\n Options<boolean, F>,\n Exclude<keyof Options<boolean, F>, 'enablePatches'>\n >\n) {\n let i: number;\n for (i = patches.length - 1; i >= 0; i -= 1) {\n const { value, op, path } = patches[i];\n if (\n (!path.length && op === Operation.Replace) ||\n (path === '' && op === Operation.Add)\n ) {\n state = value;\n break;\n }\n }\n if (i > -1) {\n patches = patches.slice(i + 1);\n }\n const mutate = (draft: Draft<T>) => {\n patches.forEach((patch) => {\n const { path: _path, op } = patch;\n const path = unescapePath(_path);\n let base: any = draft;\n for (let index = 0; index < path.length - 1; index += 1) {\n const parentType = getType(base);\n let key = path[index];\n if (typeof key !== 'string' && typeof key !== 'number') {\n key = String(key);\n }\n if (\n ((parentType === DraftType.Object ||\n parentType === DraftType.Array) &&\n (key === '__proto__' || key === 'constructor')) ||\n (typeof base === 'function' && key === 'prototype')\n ) {\n throw new Error(\n `Patching reserved attributes like __proto__ and constructor is not allowed.`\n );\n }\n // use `index` in Set draft\n base = get(parentType === DraftType.Set ? Array.from(base) : base, key);\n if (typeof base !== 'object') {\n throw new Error(`Cannot apply patch at '${path.join('/')}'.`);\n }\n }\n\n const type = getType(base);\n // ensure the original patch is not modified.\n const value = deepClone(patch.value);\n const key = path[path.length - 1];\n switch (op) {\n case Operation.Replace:\n switch (type) {\n case DraftType.Map:\n return base.set(key, value);\n case DraftType.Set:\n throw new Error(`Cannot apply replace patch to set.`);\n default:\n return (base[key] = value);\n }\n case Operation.Add:\n switch (type) {\n case DraftType.Array:\n // If the \"-\" character is used to\n // index the end of the array (see [RFC6901](https://datatracker.ietf.org/doc/html/rfc6902)),\n // this has the effect of appending the value to the array.\n return key === '-'\n ? base.push(value)\n : base.splice(key as number, 0, value);\n case DraftType.Map:\n return base.set(key, value);\n case DraftType.Set:\n return base.add(value);\n default:\n return (base[key] = value);\n }\n case Operation.Remove:\n switch (type) {\n case DraftType.Array:\n return base.splice(key as number, 1);\n case DraftType.Map:\n return base.delete(key);\n case DraftType.Set:\n return base.delete(patch.value);\n default:\n return delete base[key];\n }\n default:\n throw new Error(`Unsupported patch operation: ${op}.`);\n }\n });\n };\n if (isDraft(state)) {\n if (applyOptions !== undefined) {\n throw new Error(`Cannot apply patches with options to a draft.`);\n }\n mutate(state as Draft<T>);\n return state;\n }\n return create<T, F>(state, mutate, {\n ...applyOptions,\n enablePatches: false,\n });\n}\n", "import { getProxyDraft } from './utils';\n\n/**\n * `original(draft)` to get original state in the draft mutation function.\n *\n * ## Example\n *\n * ```ts\n * import { create, original } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const state = create(\n * baseState,\n * (draft) => {\n * draft.foo.bar = 'str2';\n * expect(original(draft.foo)).toEqual({ bar: 'str' });\n * }\n * );\n * ```\n */\nexport function original<T>(target: T): T {\n const proxyDraft = getProxyDraft(target);\n if (!proxyDraft) {\n throw new Error(\n `original() is only used for a draft, parameter: ${target}`\n );\n }\n return proxyDraft.original;\n}\n", "import { RAW_RETURN_SYMBOL } from './constant';\n\n/**\n * Use rawReturn() to wrap the return value to skip the draft check and thus improve performance.\n *\n * ## Example\n *\n * ```ts\n * import { create, rawReturn } from '../index';\n *\n * const baseState = { foo: { bar: 'str' }, arr: [] };\n * const state = create(\n * baseState,\n * (draft) => {\n * return rawReturn(baseState);\n * },\n * );\n * expect(state).toBe(baseState);\n * ```\n */\nexport function rawReturn<T extends object | undefined>(value: T): T {\n if (arguments.length === 0) {\n throw new Error('rawReturn() must be called with a value.');\n }\n if (arguments.length > 1) {\n throw new Error('rawReturn() must be called with one argument.');\n }\n if (\n __DEV__ &&\n value !== undefined &&\n (typeof value !== 'object' || value === null)\n ) {\n console.warn(\n 'rawReturn() must be called with an object(including plain object, arrays, Set, Map, etc.) or `undefined`, other types do not need to be returned via rawReturn().'\n );\n }\n return {\n [RAW_RETURN_SYMBOL]: [value],\n } as never;\n}\n", "import { dataTypes } from '../constant';\n\nconst constructorString = Object.prototype.constructor.toString();\n/**\n * Check if the value is a simple object(No prototype chain object or iframe same-origin object),\n * support case: https://github.com/unadlib/mutative/issues/17\n */\nconst isSimpleObject = (value: unknown) => {\n if (!value || typeof value !== 'object') return false;\n const prototype = Object.getPrototypeOf(value);\n if (prototype === null) {\n return true;\n }\n const constructor =\n Object.hasOwnProperty.call(prototype, 'constructor') &&\n prototype.constructor;\n\n if (constructor === Object) return true;\n\n return (\n typeof constructor === 'function' &&\n Function.toString.call(constructor) === constructorString\n );\n};\n\nexport const markSimpleObject = (value: unknown) => {\n if (isSimpleObject(value)) {\n return dataTypes.immutable;\n }\n return;\n};\n", "import { Draft, Immutable } from '../interface';\n\n/**\n * Cast a value to an Draft type value.\n */\nexport function castDraft<T>(value: T): Draft<T> {\n return value as any;\n}\n\n/**\n * Cast a value to an Immutable type value.\n */\nexport function castImmutable<T>(value: T): Immutable<T> {\n return value as any;\n}\n\n/**\n * Cast a value to an Mutable type value.\n */\nexport function castMutable<T>(draft: Draft<T>): T {\n return draft as any;\n}\n", "import stringify from \"safe-stable-stringify\";\nexport var IntegrityIssueType;\n(function (IntegrityIssueType) {\n IntegrityIssueType[\"UNEXPECTED_INDEX\"] = \"UNEXPECTED_INDEX\";\n})(IntegrityIssueType || (IntegrityIssueType = {}));\nexport var IntegrityIssueSubType;\n(function (IntegrityIssueSubType) {\n IntegrityIssueSubType[\"DUPLICATED_INDEX\"] = \"DUPLICATED_INDEX\";\n IntegrityIssueSubType[\"MISSING_INDEX\"] = \"MISSING_INDEX\";\n})(IntegrityIssueSubType || (IntegrityIssueSubType = {}));\nexport function checkCleanedOperationsIntegrity(sortedOperations) {\n const result = [];\n // 1:1 1\n // 0:0 0 -> 1:0 1 -> 2:0 -> 3:0 -> 4:0 -> 5:0\n // 0:0 0 -> 2:1 1 -> 3:0 -> 4:0 -> 5:0\n // 0:0 0 -> 3:2 1 -> 4:0 -> 5:0\n // 0:0 0 -> 3:2 1 -> 5:1\n // 0:3 (expected 0, got -3)\n // 1:2 (expected 0, got -1)\n // 0:0 -> 1:1\n // 0:0 -> 2:2\n // 0:0 -> 3:2 -> 5:2\n let currentIndex = -1;\n for (const nextOperation of sortedOperations) {\n const nextIndex = nextOperation.index - nextOperation.skip;\n if (nextIndex !== currentIndex + 1) {\n result.push({\n operation: {\n index: nextOperation.index,\n skip: nextOperation.skip,\n },\n issue: IntegrityIssueType.UNEXPECTED_INDEX,\n category: nextIndex > currentIndex + 1\n ? IntegrityIssueSubType.MISSING_INDEX\n : IntegrityIssueSubType.DUPLICATED_INDEX,\n message: `Expected index ${currentIndex + 1} with skip 0 or equivalent, got index ${nextOperation.index} with skip ${nextOperation.skip}`,\n });\n }\n currentIndex = nextOperation.index;\n }\n return result;\n}\n// [] -> []\n// [0:0] -> [0:0]\n// 0:0 1:0 2:0 => 0:0 1:0 2:0, removals 0, no issues\n// 0:0 1:1 2:0 => 1:1 2:0, removals 1, no issues\n// 0:0 1:1 2:0 3:1 => 1:1 3:1, removals 2, no issues\n// 0:0 1:1 2:0 3:3 => 3:3\n// 1:1 2:0 3:0 => 1:1 2:0 3:0, removals 0, no issues\n// 1:0 0:0 2:0 => 2:0, removals 2, issues [UNEXPECTED_INDEX, INDEX_OUT_OF_ORDER]\n// 0:0 1:0 2:0 => 0:0 1:0 2:0, removals 0, no issues\n// 0:0 1:0 2:0 => 0:0 1:0 2:0, removals 0, no issues\n// 0:0 1:0 2:0 => 0:0 1:0 2:0, removals 0, no issues\nexport function garbageCollect(sortedOperations) {\n const result = [];\n let i = sortedOperations.length - 1;\n while (i > -1) {\n result.unshift(sortedOperations[i]);\n const skipUntil = (sortedOperations[i]?.index || 0) - (sortedOperations[i]?.skip || 0) - 1;\n let j = i - 1;\n while (j > -1 && (sortedOperations[j]?.index || 0) > skipUntil) {\n j--;\n }\n i = j;\n }\n return result;\n}\nexport function addUndo(sortedOperations) {\n const operationsCopy = [...sortedOperations];\n const latestOperation = operationsCopy[operationsCopy.length - 1];\n if (!latestOperation)\n return operationsCopy;\n if (latestOperation.type === \"NOOP\") {\n operationsCopy.push({\n ...latestOperation,\n index: latestOperation.index,\n type: \"NOOP\",\n skip: nextSkipNumber(sortedOperations),\n });\n }\n else {\n operationsCopy.push({\n type: \"NOOP\",\n index: latestOperation.index + 1,\n timestamp: new Date().toISOString(),\n input: {},\n skip: 1,\n scope: latestOperation.scope,\n hash: latestOperation.hash,\n });\n }\n return operationsCopy;\n}\n// [0:0 2:0 1:0 3:3 3:1] => [0:0 1:0 2:0 3:1 3:3]\n// Sort by index _and_ skip number\nexport function sortOperations(operations) {\n return operations\n .slice()\n .sort((a, b) => a.skip - b.skip)\n .sort((a, b) => a.index - b.index);\n}\n// [0:0, 1:0, 2:0, A3:0, A4:0, A5:0] + [0:0, 1:0, 2:0, B3:0, B4:2, B5:0]\n// GC => [0:0, 1:0, 2:0, A3:0, A4:0, A5:0] + [0:0, 1:0, B4:2, B5:0]\n// Split => [0:0, 1:0] + [2:0, A3:0, A4:0, A5:0] + [B4:2, B5:0]\n// Reshuffle(6:4) => [6:4, 7:0, 8:0, 9:0, 10:0, 11:0]\n// merge => [0:0, 1:0, 6:4, 7:0, 8:0, 9:0, 10:0, 11:0]\nexport function reshuffleByTimestamp(startIndex, opsA, opsB) {\n return [...opsA, ...opsB]\n .sort((a, b) => new Date(a.timestamp || \"\").getTime() -\n new Date(b.timestamp || \"\").getTime())\n .map((op, i) => ({\n ...op,\n index: startIndex.index + i,\n skip: i === 0 ? startIndex.skip : 0,\n }));\n}\nexport function reshuffleByTimestampAndIndex(startIndex, opsA, opsB) {\n return [...opsA, ...opsB]\n .sort((a, b) => new Date(a.timestamp || \"\").getTime() -\n new Date(b.timestamp || \"\").getTime())\n .sort((a, b) => a.index - b.index)\n .map((op, i) => ({\n ...op,\n index: startIndex.index + i,\n skip: i === 0 ? startIndex.skip : 0,\n }));\n}\n// TODO: implement better operation equality function\nexport function operationsAreEqual(op1, op2) {\n return stringify(op1) === stringify(op2);\n}\n// [T0:0 T1:0 T2:0 T3:0] + [B4:0 B5:0] = [T0:0 T1:0 T2:0 T3:0 B4:0 B5:0]\n// [T0:0 T1:0 T2:0 T3:0] + [B3:0 B4:0] = [T0:0 T1:0 T2:0 B3:0 B4:0]\n// [T0:0 T1:0 T2:0 T3:0] + [B2:0 B3:0] = [T0:0 T1:0 B2:0 B3:0]\n// [T0:0 T1:0 T2:0 T3:0] + [B4:0 B4:2] = [T0:0 T1:0 T2:0 T3:0 B4:0 B4:2]\n// [T0:0 T1:0 T2:0 T3:0] + [B3:0 B3:2] = [T0:0 T1:0 T2:0 B3:0 B3:2]\n// [T0:0 T1:0 T2:0 T3:0] + [B2:3 B3:0] = [T0:0 T1:0 B2:3 B3:0]\nexport function attachBranch(trunk, newBranch) {\n const trunkCopy = garbageCollect(sortOperations(trunk.slice()));\n const newOperations = garbageCollect(sortOperations(newBranch.slice()));\n if (trunkCopy.length < 1) {\n return [newOperations, []];\n }\n const result = [];\n let enteredBranch = false;\n while (newOperations.length > 0) {\n const newOperationCandidate = newOperations[0];\n let nextTrunkOperation = trunkCopy.shift();\n while (nextTrunkOperation &&\n precedes(nextTrunkOperation, newOperationCandidate)) {\n result.push(nextTrunkOperation);\n nextTrunkOperation = trunkCopy.shift();\n }\n if (!nextTrunkOperation) {\n enteredBranch = true;\n }\n else if (!enteredBranch) {\n if (operationsAreEqual(nextTrunkOperation, newOperationCandidate)) {\n newOperations.shift();\n result.push(nextTrunkOperation);\n }\n else {\n trunkCopy.unshift(nextTrunkOperation);\n enteredBranch = true;\n }\n }\n if (enteredBranch) {\n let nextAppend = newOperations.shift();\n while (nextAppend) {\n result.push(nextAppend);\n nextAppend = newOperations.shift();\n }\n }\n }\n if (!enteredBranch) {\n let nextAppend = trunkCopy.shift();\n while (nextAppend) {\n result.push(nextAppend);\n nextAppend = trunkCopy.shift();\n }\n }\n return [garbageCollect(result), trunkCopy];\n}\nexport function precedes(op1, op2) {\n return (op1.index < op2.index ||\n (op1.index === op2.index && op1.id === op2.id && op1.skip < op2.skip));\n}\nexport function split(sortedTargetOperations, sortedMergeOperations) {\n const commonOperations = [];\n const targetDiffOperations = [];\n const mergeDiffOperations = [];\n // get bigger array length\n const maxLength = Math.max(sortedTargetOperations.length, sortedMergeOperations.length);\n let splitHappened = false;\n for (let i = 0; i < maxLength; i++) {\n const targetOperation = sortedTargetOperations[i];\n const mergeOperation = sortedMergeOperations[i];\n if (targetOperation && mergeOperation) {\n if (!splitHappened &&\n operationsAreEqual(targetOperation, mergeOperation)) {\n commonOperations.push(targetOperation);\n }\n else {\n splitHappened = true;\n targetDiffOperations.push(targetOperation);\n mergeDiffOperations.push(mergeOperation);\n }\n }\n else if (targetOperation) {\n targetDiffOperations.push(targetOperation);\n }\n else if (mergeOperation) {\n mergeDiffOperations.push(mergeOperation);\n }\n }\n return [commonOperations, targetDiffOperations, mergeDiffOperations];\n}\n// [0:0, 1:0, 2:0, A3:0, A4:0, A5:0] + [0:0, 1:0, 2:0, B3:0, B4:2, B5:0]\n// GC => [0:0, 1:0, 2:0, A3:0, A4:0, A5:0] + [0:0, 1:0, B4:2, B5:0]\n// Split => [0:0, 1:0] + [2:0, A3:0, A4:0, A5:0] + [B4:2, B5:0]\n// Reshuffle(6:4) => [6:4, 7:0, 8:0, 9:0, 10:0, 11:0]\n// merge => [0:0, 1:0, 6:4, 7:0, 8:0, 9:0, 10:0, 11:0]\nexport function merge(sortedTargetOperations, sortedMergeOperations, reshuffle) {\n const [_commonOperations, _targetOperations, _mergeOperations] = split(garbageCollect(sortedTargetOperations), garbageCollect(sortedMergeOperations));\n const maxCommonIndex = getMaxIndex(_commonOperations);\n const nextIndex = 1 +\n Math.max(maxCommonIndex, getMaxIndex(_targetOperations), getMaxIndex(_mergeOperations));\n const filteredMergeOperations = filterDuplicatedOperations(_mergeOperations, _targetOperations);\n const newOperationHistory = reshuffle({\n index: nextIndex,\n skip: nextIndex - (maxCommonIndex + 1),\n }, _targetOperations, filteredMergeOperations);\n return _commonOperations.concat(newOperationHistory);\n}\nfunction getMaxIndex(sortedOperations) {\n const lastElement = sortedOperations[sortedOperations.length - 1];\n if (!lastElement) {\n return -1;\n }\n return lastElement.index;\n}\n// [] => -1\n// [0:0] => -1\n// [0:0 1:0] => 1\n// [0:0 1:1] => -1\n// [1:1] => -1\n// [0:0 1:0 2:0] => 1\n// [0:0 1:0 2:0 2:1] => 2\n// [0:0 1:0 2:0 2:1 2:2] => -1\n// [0:0 1:1 2:0] => 2\n// [0:0 1:1 2:2] => -1\n// [0:0 1:1 2:0 3:0] => 1\n// [0:0 1:1 2:0 3:1] => 3\n// [0:0 1:1 2:0 3:3] => -1\n// [50:50 100:50 150:50 151:0 152:0 153:0 154:3] => 53\nexport function nextSkipNumber(sortedOperations) {\n if (sortedOperations.length < 1) {\n return -1;\n }\n const cleanedOperations = garbageCollect(sortedOperations);\n let nextSkip = (cleanedOperations[cleanedOperations.length - 1]?.skip || 0) + 1;\n if (cleanedOperations.length > 1) {\n nextSkip += cleanedOperations[cleanedOperations.length - 2]?.skip || 0;\n }\n return (cleanedOperations[cleanedOperations.length - 1]?.index || -1) <\n nextSkip\n ? -1\n : nextSkip;\n}\nexport function checkOperationsIntegrity(operations) {\n return checkCleanedOperationsIntegrity(garbageCollect(sortOperations(operations)));\n}\nexport function groupOperationsByScope(operations) {\n const result = operations.reduce((acc, operation) => {\n if (!acc[operation.scope]) {\n acc[operation.scope] = [];\n }\n acc[operation.scope]?.push(operation);\n return acc;\n }, {});\n return result;\n}\nexport function prepareOperations(operationsHistory, newOperations) {\n const result = {\n integrityIssues: [],\n validOperations: [],\n invalidOperations: [],\n duplicatedOperations: [],\n };\n const sortedOperationsHistory = sortOperations(operationsHistory);\n const sortedOperations = sortOperations(newOperations);\n const integrityErrors = checkCleanedOperationsIntegrity([\n ...sortedOperationsHistory,\n ...sortedOperations,\n ]);\n const missingIndexErrors = integrityErrors.filter((integrityIssue) => integrityIssue.category === IntegrityIssueSubType.MISSING_INDEX);\n // get the integrity error with the lowest index operation\n const firstMissingIndexOperation = [...missingIndexErrors]\n .sort((a, b) => b.operation.index - a.operation.index)\n .pop()?.operation;\n for (const newOperation of sortedOperations) {\n // Operation is missing index or it follows an operation that is missing index\n if (firstMissingIndexOperation &&\n newOperation.index >= firstMissingIndexOperation.index) {\n result.invalidOperations.push(newOperation);\n continue;\n }\n // check if operation is duplicated\n const isDuplicatedOperation = integrityErrors.some((integrityError) => {\n return (integrityError.operation.index === newOperation.index &&\n integrityError.operation.skip === newOperation.skip &&\n integrityError.category === IntegrityIssueSubType.DUPLICATED_INDEX);\n });\n // add to duplicated operations if it is duplicated\n if (isDuplicatedOperation) {\n result.duplicatedOperations.push(newOperation);\n continue;\n }\n // otherwise, add to valid operations\n result.validOperations.push(newOperation);\n }\n result.integrityIssues.push(...integrityErrors);\n return result;\n}\nexport function removeExistingOperations(newOperations, operationsHistory) {\n return newOperations.filter((newOperation) => {\n return !operationsHistory.some((historyOperation) => {\n return ((newOperation.type === \"NOOP\" &&\n newOperation.skip === 0 &&\n newOperation.index === historyOperation.index) ||\n (newOperation.index === historyOperation.index &&\n newOperation.skip === historyOperation.skip &&\n newOperation.scope === historyOperation.scope &&\n newOperation.hash === historyOperation.hash &&\n newOperation.type === historyOperation.type));\n });\n });\n}\n/**\n * Skips header operations and returns the remaining operations.\n *\n * @param operations - The array of operations.\n * @param skipHeaderOperation - The skip header operation index.\n * @returns The remaining operations after skipping header operations.\n */\nexport function skipHeaderOperations(operations, skipHeaderOperation) {\n const lastOperation = sortOperations(operations).at(-1);\n const lastIndex = lastOperation?.index ?? -1;\n const nextIndex = lastIndex + 1;\n const skipOperationIndex = {\n ...skipHeaderOperation,\n index: skipHeaderOperation.index ?? nextIndex,\n };\n if (skipOperationIndex.index < lastIndex) {\n throw new Error(`The skip header operation index must be greater than or equal to ${lastIndex}`);\n }\n const clearedOperations = garbageCollect(sortOperations([...operations, skipOperationIndex]));\n return clearedOperations.slice(0, -1); //clearedOperation ? [clearedOperation as TOpIndex] : [];\n}\nexport function garbageCollectDocumentOperations(documentOperations) {\n const clearedOperations = Object.entries(documentOperations).reduce((acc, entry) => {\n const [scope, ops] = entry;\n return {\n ...acc,\n [scope]: garbageCollect(sortOperations(ops)),\n };\n }, {});\n return clearedOperations;\n}\n/**\n * Filters out duplicated operations from the target operations array based on their IDs.\n * If an operation has an ID, it is considered duplicated if there is another operation in the source operations array with the same ID.\n * If an operation does not have an ID, it is considered unique and will not be filtered out.\n * @param targetOperations - The array of target operations to filter.\n * @param sourceOperations - The array of source operations to compare against.\n * @returns An array of operations with duplicates filtered out.\n */\nexport function filterDuplicatedOperations(targetOperations, sourceOperations) {\n return targetOperations.filter((op) => {\n if (op.id) {\n return !sourceOperations.some((targetOp) => targetOp.id === op.id);\n }\n return true;\n });\n}\nexport function filterDocumentOperationsResultingState(documentOperations) {\n if (!documentOperations) {\n return {};\n }\n const entries = Object.entries(documentOperations);\n return entries.reduce((acc, [scope, operations]) => ({\n ...acc,\n [scope]: operations.map((op) => {\n const { resultingState, ...restProps } = op;\n return restProps;\n }),\n }), {});\n}\n/**\n * Calculates the difference between two arrays of operations.\n * Returns an array of operations that are present in `clearedOperationsA` but not in `clearedOperationsB`.\n *\n * @template TOp - The type of the operations.\n * @param {TOp[]} clearedOperationsA - The first array of operations.\n * @param {TOp[]} clearedOperationsB - The second array of operations.\n * @returns {TOp[]} - The difference between the two arrays of operations.\n */\nexport function diffOperations(clearedOperationsA, clearedOperationsB) {\n return clearedOperationsA.filter((operationA) => !clearedOperationsB.some((operationB) => operationA.index === operationB.index));\n}\n", "import { z } from \"zod\";\nexport const isDefinedNonNullAny = (v) => v !== undefined && v !== null;\nexport const definedNonNullAnySchema = z\n .any()\n .refine((v) => isDefinedNonNullAny(v));\nexport const Load_StateSchema = z.enum([\"LOAD_STATE\"]);\nexport const PruneSchema = z.enum([\"PRUNE\"]);\nexport const RedoSchema = z.enum([\"REDO\"]);\nexport const Set_NameSchema = z.enum([\"SET_NAME\"]);\nexport const UndoSchema = z.enum([\"UNDO\"]);\nexport function ActionSchema() {\n return z.object({\n __typename: z.literal(\"Action\").optional(),\n type: z.string(),\n });\n}\nexport function OperationScopeSchema() {\n return z.literal(\"global\").or(z.literal(\"local\"));\n}\nexport function DocumentActionSchema() {\n return z.union([\n LoadStateActionSchema(),\n PruneActionSchema(),\n RedoActionSchema(),\n SetNameActionSchema(),\n UndoActionSchema(),\n ]);\n}\nexport function DocumentFileSchema() {\n return z.object({\n __typename: z.literal(\"DocumentFile\").optional(),\n data: z.string(),\n extension: z.string().nullable(),\n fileName: z.string().nullable(),\n mimeType: z.string(),\n });\n}\nexport function LoadStateActionSchema() {\n return z.object({\n input: z.lazy(() => LoadStateActionInputSchema()),\n type: Load_StateSchema,\n scope: OperationScopeSchema(),\n });\n}\nexport function LoadStateActionInputSchema() {\n return z.object({\n operations: z.number(),\n state: z.lazy(() => LoadStateActionStateInputSchema()),\n });\n}\nexport function LoadStateActionStateInputSchema() {\n return z.object({\n data: z.unknown().nullish(),\n name: z.string(),\n });\n}\nexport function OperationSchema() {\n return z.object({\n __typename: z.literal(\"Operation\").optional(),\n hash: z.string(),\n index: z.number(),\n timestamp: z.string().datetime(),\n type: z.string(),\n });\n}\nexport function PruneActionSchema() {\n return z.object({\n input: z.lazy(() => PruneActionInputSchema()),\n type: PruneSchema,\n scope: OperationScopeSchema(),\n });\n}\nexport function PruneActionInputSchema() {\n return z.object({\n end: z.number().nullish(),\n start: z.number().nullish(),\n });\n}\nexport const RedoActionInputSchema = z.number;\nexport function RedoActionSchema() {\n return z.object({\n input: RedoActionInputSchema(),\n type: RedoSchema,\n scope: OperationScopeSchema(),\n });\n}\nexport const SetNameActionInputSchema = z.string;\nexport function SetNameActionSchema() {\n return z.object({\n input: SetNameActionInputSchema(),\n type: Set_NameSchema,\n scope: z.literal(\"global\"),\n });\n}\nexport function SetNameOperationSchema() {\n return z.object({\n __typename: z.literal(\"SetNameOperation\").optional(),\n hash: z.string(),\n index: z.number(),\n input: z.string(),\n timestamp: z.string().datetime(),\n type: z.string(),\n });\n}\nexport const UndoActionInputSchema = z.number;\nexport function UndoActionSchema() {\n return z.object({\n input: UndoActionInputSchema(),\n type: UndoSchema,\n scope: OperationScopeSchema(),\n });\n}\n", "import { LoadStateActionInputSchema, PruneActionInputSchema, RedoActionInputSchema, SetNameActionInputSchema, UndoActionInputSchema, } from \"../schema/zod.js\";\nimport { createAction } from \"../utils/base.js\";\n/**\n * Changes the name of the document.\n *\n * @param name - The name to be set in the document.\n * @category Actions\n */\nexport const setName = (name) => createAction(\"SET_NAME\", name, undefined, SetNameActionInputSchema, undefined);\n/**\n * Cancels the last `count` operations.\n *\n * @param count - Number of operations to cancel\n * @category Actions\n */\nexport const undo = (skip = 1, scope = \"global\") => createAction(\"UNDO\", skip, undefined, UndoActionInputSchema, scope);\n/**\n * Cancels the last `count` {@link undo | UNDO} operations.\n *\n * @param count - Number of UNDO operations to cancel\n * @category Actions\n */\nexport const redo = (count = 1, scope = \"global\") => createAction(\"REDO\", count, undefined, RedoActionInputSchema, scope);\n/**\n * Joins multiple operations into a single {@link loadState | LOAD_STATE} operation.\n *\n * @remarks\n * Useful to keep operations history smaller. Operations to prune are selected by index,\n * similar to the {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | slice} method in Arrays.\n *\n * @param start - Index of the first operation to prune\n * @param end - Index of the last operation to prune\n * @category Actions\n */\nexport const prune = (start, end, scope = \"global\") => createAction(\"PRUNE\", { start, end }, undefined, PruneActionInputSchema, scope);\n/**\n * Replaces the state of the document.\n *\n * @remarks\n * This action shouldn't be used directly. It is dispatched by the {@link prune} action.\n *\n * @param state - State to be set in the document.\n * @param operations - Number of operations that were removed from the previous state.\n * @category Actions\n */\nexport const loadState = (state, operations) => createAction(\"LOAD_STATE\", { state, operations }, undefined, LoadStateActionInputSchema);\nexport const noop = (scope = \"global\") => createAction(\"NOOP\", undefined, undefined, undefined, scope);\nexport const actions = {\n setName,\n undo,\n redo,\n prune,\n loadState,\n noop,\n};\n// TODO improve base actions type\n", "import { castDraft, create } from \"mutative\";\nimport { hashDocumentStateForScope, replayOperations } from \"../utils/base.js\";\nimport { nextSkipNumber, sortOperations } from \"../utils/document-helpers.js\";\nimport { loadState, noop } from \"./creators.js\";\n// updates the name of the document\nexport function setNameOperation(document, name) {\n return { ...document, name };\n}\nexport function undoOperation(document, action, skip) {\n // const scope = action.scope;\n const { scope } = action;\n const defaultResult = {\n document,\n action,\n skip,\n reuseLastOperationIndex: false,\n };\n return create(defaultResult, (draft) => {\n const operations = [...document.operations[scope]];\n const sortedOperations = sortOperations(operations);\n draft.action = noop(scope);\n const lastOperation = sortedOperations.at(-1);\n let nextIndex = lastOperation?.index ?? -1;\n const isNewNoop = lastOperation?.type !== \"NOOP\";\n if (isNewNoop) {\n nextIndex = nextIndex + 1;\n }\n else {\n draft.reuseLastOperationIndex = true;\n }\n const nextOperationHistory = isNewNoop\n ? [...sortedOperations, { index: nextIndex, skip: 0 }]\n : sortedOperations;\n draft.skip = nextSkipNumber(nextOperationHistory);\n if (lastOperation && draft.skip > lastOperation.skip + 1) {\n // there's an overlap with a previous skip operation\n // (add 1 to the skip value because we are adding a new operation to the history)\n draft.skip = draft.skip + 1;\n }\n if (draft.skip < 0) {\n throw new Error(`Cannot undo: you can't undo more operations than the ones in the scope history`);\n }\n });\n}\nexport function redoOperation(document, action, skip) {\n const { scope, input } = action;\n const defaultResult = {\n document,\n action,\n skip,\n reuseLastOperationIndex: false,\n };\n return create(defaultResult, (draft) => {\n if (draft.skip > 0) {\n throw new Error(`Cannot redo: skip value from reducer cannot be used with REDO action`);\n }\n if (typeof input !== \"number\" || input > 1) {\n throw new Error(`Cannot redo: you can only redo one operation at a time`);\n }\n if (typeof input !== \"number\" || input < 1) {\n throw new Error(`Invalid REDO action: invalid redo input value`);\n }\n if (draft.document.clipboard.length < 1) {\n throw new Error(`Cannot redo: no operations in the clipboard`);\n }\n const operationIndex = draft.document.clipboard.findLastIndex((op) => op.scope === scope);\n if (operationIndex < 0) {\n throw new Error(`Cannot redo: no operations in clipboard for scope \"${scope}\"`);\n }\n const operation = draft.document.clipboard.splice(operationIndex, 1)[0];\n draft.action = castDraft({\n type: operation.type,\n scope: operation.scope,\n input: operation.input,\n });\n });\n}\nexport function pruneOperation(document, input, wrappedReducer) {\n const operations = document.operations.global;\n let { start, end } = input;\n start = start || 0;\n end = end || operations.length;\n const actionsToPrune = operations.slice(start, end);\n const actionsToKeepStart = operations.slice(0, start);\n const actionsToKeepEnd = operations.slice(end);\n // runs all operations from the initial state to\n // the end of prune to get name and data\n const newDocument = replayOperations(document.initialState, {\n ...document.operations,\n global: actionsToKeepStart.concat(actionsToPrune),\n }, wrappedReducer);\n const { name, state: newState } = newDocument;\n // the new operation has the index of the first pruned operation\n const loadStateIndex = actionsToKeepStart.length;\n // if and operation is pruned then reuses the timestamp of the last operation\n // if not then assigns the timestamp of the following unpruned operation\n const loadStateTimestamp = actionsToKeepStart.length\n ? actionsToKeepStart[actionsToKeepStart.length - 1].timestamp\n : actionsToKeepEnd.length\n ? actionsToKeepEnd[0].timestamp\n : new Date().toISOString();\n // replaces pruned operations with LOAD_STATE\n return replayOperations(document.initialState, {\n ...document.operations,\n global: [\n ...actionsToKeepStart,\n {\n skip: 0,\n ...loadState({ name, state: newState }, actionsToPrune.length),\n timestamp: loadStateTimestamp,\n index: loadStateIndex,\n hash: hashDocumentStateForScope({ state: newState }, \"global\"),\n },\n ...actionsToKeepEnd\n // updates the index for all the following operations\n .map((action, index) => ({\n ...action,\n index: loadStateIndex + index + 1,\n })),\n ],\n }, wrappedReducer);\n}\nexport function loadStateOperation(oldDocument, newDocument) {\n return {\n ...oldDocument,\n name: newDocument.name,\n state: newDocument.state ??\n { global: {}, local: {} },\n };\n}\n", "import { castDraft, create, unsafe } from \"mutative\";\nimport { loadStateOperation, pruneOperation, redoOperation, setNameOperation, undoOperation, } from \"./actions/operations.js\";\nimport { LOAD_STATE, PRUNE, REDO, SET_NAME, UNDO } from \"./actions/types.js\";\nimport { DocumentActionSchema } from \"./schema/zod.js\";\nimport { getDocumentLastModified, hashDocumentStateForScope, isDocumentAction, isUndo, isUndoRedo, parseResultingState, replayOperations, } from \"./utils/base.js\";\nimport { generateId } from \"./utils/crypto.js\";\nimport { diffOperations, garbageCollect, garbageCollectDocumentOperations, skipHeaderOperations, sortOperations, } from \"./utils/document-helpers.js\";\n/**\n * Gets the next revision number based on the provided action.\n *\n * @param state The current state of the document.\n * @param operation The action being applied to the document.\n * @returns The next revision number.\n */\nfunction getNextRevision(document, operation) {\n let latestOperationIndex;\n if (\"index\" in operation) {\n latestOperationIndex = operation.index;\n }\n else {\n latestOperationIndex =\n document.operations[operation.scope].at(-1)?.index ?? -1;\n }\n return (latestOperationIndex ?? -1) + 1;\n}\n/**\n * Updates the document header with the latest revision number and\n * date of last modification.\n *\n * @param state The current state of the document.\n * @param operation The action being applied to the document.\n * @returns The updated document state.\n */\nexport function updateHeader(document, action) {\n return {\n ...document,\n revision: {\n ...document.revision,\n [action.scope]: getNextRevision(document, action),\n },\n lastModified: getDocumentLastModified(document),\n };\n}\n/**\n * Updates the operations history of the document based on the provided action.\n *\n * @param state The current state of the document.\n * @param actionOrOperation The action being applied to the document.\n * @param skip The number of operations to skip before applying the action.\n * @param reuseLastOperationIndex Whether to reuse the last operation index (used when a an UNDO operation is performed after an existing one).\n * @returns The updated document state.\n */\nfunction updateOperations(document, actionOrOperation, skip = 0, reuseLastOperationIndex = false) {\n // UNDO, REDO and PRUNE are meta operations\n // that alter the operations history themselves\n if (\"type\" in actionOrOperation &&\n [UNDO, REDO, PRUNE].includes(actionOrOperation.type)) {\n return document;\n }\n const { scope } = actionOrOperation;\n const operations = document.operations[scope].slice();\n let operationId;\n const latestOperation = operations.at(-1);\n const lastOperationIndex = latestOperation?.index ?? -1;\n let nextIndex = reuseLastOperationIndex\n ? lastOperationIndex\n : lastOperationIndex + 1;\n let timestamp = new Date().toISOString();\n if (\"index\" in actionOrOperation) {\n if (actionOrOperation.index - skip > nextIndex) {\n throw new Error(`Missing operations: expected ${nextIndex} with skip 0 or equivalent, got index ${actionOrOperation.index} with skip ${skip}`);\n }\n nextIndex = actionOrOperation.index;\n operationId = actionOrOperation.id;\n timestamp = actionOrOperation.timestamp;\n }\n else {\n operationId =\n \"id\" in actionOrOperation\n ? actionOrOperation.id\n : generateId();\n }\n operations.push({\n ...actionOrOperation,\n id: operationId,\n index: nextIndex,\n timestamp,\n hash: \"\",\n scope,\n skip,\n error: undefined,\n });\n // adds the action to the operations history with\n // the latest index and current timestamp\n return {\n ...document,\n operations: { ...document.operations, [scope]: operations },\n };\n}\n/**\n * Updates the document state based on the provided action.\n *\n * @param state The current state of the document.\n * @param action The action being applied to the document.\n * @param skip The number of operations to skip before applying the action.\n * @param reuseLastOperationIndex Whether to reuse the last operation index (used when a an UNDO operation is performed after an existing one).\n * @returns The updated document state.\n */\nexport function updateDocument(document, action, skip = 0, reuseLastOperationIndex = false) {\n let newDocument = updateOperations(document, action, skip, reuseLastOperationIndex);\n newDocument = updateHeader(newDocument, action);\n return newDocument;\n}\n/**\n * The base document reducer function that wraps a custom reducer function.\n *\n * @param state The current state of the document.\n * @param action The action being applied to the document.\n * @param wrappedReducer The custom reducer function being wrapped by the base reducer.\n * @returns The updated document state.\n */\nfunction _baseReducer(document, action, wrappedReducer) {\n // throws if action is not valid base action\n const parsedAction = DocumentActionSchema().parse(action);\n switch (parsedAction.type) {\n case SET_NAME:\n return setNameOperation(document, parsedAction.input);\n case PRUNE:\n return pruneOperation(document, parsedAction.input, wrappedReducer);\n case LOAD_STATE:\n return loadStateOperation(document, parsedAction.input.state);\n default:\n return document;\n }\n}\n/**\n * Processes an UNDO or REDO action.\n *\n * @param document The current state of the document.\n * @param action The action being applied to the document.\n * @param skip The number of operations to skip before applying the action.\n * @returns The updated document, calculated skip value and transformed action (if applied).\n */\nexport function processUndoRedo(document, action, skip) {\n switch (action.type) {\n case UNDO:\n return undoOperation(document, action, skip);\n case REDO:\n return redoOperation(document, action, skip);\n default:\n return { document, action, skip, reuseLastOperationIndex: false };\n }\n}\nfunction processSkipOperation(document, action, customReducer, skipValue, reuseOperationResultingState = false, resultingStateParser = parseResultingState) {\n const scope = action.scope;\n const latestOperation = document.operations[scope].at(-1);\n if (!latestOperation)\n return document;\n const documentOperations = garbageCollectDocumentOperations({\n ...document.operations,\n [scope]: skipHeaderOperations(document.operations[scope], latestOperation),\n });\n let scopeState = undefined;\n const lastRemainingOperation = documentOperations[scope].at(-1);\n // if the last operation has the resulting state and\n // reuseOperationResultingState is true then reuses it\n // instead of replaying the operations from the beginning\n if (reuseOperationResultingState && lastRemainingOperation?.resultingState) {\n scopeState = resultingStateParser(lastRemainingOperation.resultingState);\n }\n else {\n const { state } = replayOperations(document.initialState, documentOperations, customReducer, undefined, undefined, undefined, undefined, {\n reuseHash: true,\n reuseOperationResultingState,\n operationResultingStateParser: resultingStateParser,\n });\n scopeState = state[scope];\n }\n return {\n ...document,\n state: {\n ...document.state,\n [scope]: scopeState,\n },\n operations: garbageCollectDocumentOperations({\n ...document.operations,\n }),\n };\n}\nfunction processUndoOperation(document, scope, customReducer, reuseOperationResultingState = false, resultingStateParser = parseResultingState) {\n const operations = [...document.operations[scope]];\n const sortedOperations = sortOperations(operations);\n sortedOperations.pop();\n const documentOperations = garbageCollectDocumentOperations({\n ...document.operations,\n });\n const clearedOperations = [...documentOperations[scope]];\n const diff = diffOperations(garbageCollect(sortedOperations), clearedOperations);\n const doc = replayOperations(document.initialState, documentOperations, customReducer, undefined, undefined, undefined, undefined, {\n reuseHash: true,\n reuseOperationResultingState,\n operationResultingStateParser: resultingStateParser,\n });\n const clipboard = sortOperations([...document.clipboard, ...diff].filter((op) => op.type !== \"NOOP\")).reverse();\n return { ...doc, clipboard };\n}\n/**\n * Base document reducer that wraps a custom document reducer and handles\n * document-level actions such as undo, redo, prune, and set name.\n *\n * @template TGlobalState - The type of the state of the custom reducer.\n * @template TAction - The type of the actions of the custom reducer.\n * @param state - The current state of the document.\n * @param action - The action object to apply to the state.\n * @param customReducer - The custom reducer that implements the application logic\n * specific to the document's state.\n * @returns The new state of the document.\n */\nexport function baseReducer(document, action, customReducer, dispatch, options = {}) {\n const { skip, ignoreSkipOperations = false, reuseHash = false, reuseOperationResultingState = false, operationResultingStateParser, } = options;\n let _action = { ...action };\n let skipValue = skip || 0;\n let newDocument = {\n ...document,\n };\n let reuseLastOperationIndex = false;\n const shouldProcessSkipOperation = !ignoreSkipOperations &&\n (skipValue > 0 ||\n (\"index\" in _action &&\n \"skip\" in _action &&\n typeof _action.skip === \"number\" &&\n _action.skip > 0));\n if (isUndoRedo(_action)) {\n const { skip: calculatedSkip, action: transformedAction, document: processedDocument, reuseLastOperationIndex: reuseIndex, } = processUndoRedo(document, _action, skipValue);\n _action = transformedAction;\n skipValue = calculatedSkip;\n newDocument = processedDocument;\n reuseLastOperationIndex = reuseIndex;\n }\n else {\n newDocument = {\n ...newDocument,\n clipboard: [],\n };\n }\n // if the action is one the base document actions (SET_NAME, UNDO, REDO, PRUNE)\n // then runs the base reducer first\n if (isDocumentAction(_action)) {\n newDocument = _baseReducer(newDocument, _action, customReducer);\n }\n // updates the document revision number, last modified date\n // and operation history\n newDocument = updateDocument(newDocument, _action, skipValue, reuseLastOperationIndex);\n const isUndoAction = isUndo(action);\n if (isUndoAction) {\n const result = processUndoOperation(newDocument, action.scope, customReducer);\n return result;\n }\n if (shouldProcessSkipOperation) {\n newDocument = processSkipOperation(newDocument, _action, customReducer, skipValue, reuseOperationResultingState, operationResultingStateParser);\n }\n // wraps the custom reducer with Mutative to avoid\n // mutation bugs and allow writing reducers with\n // mutating code\n newDocument = create(newDocument, (draft) => {\n // the reducer runs on a immutable version of\n // provided state\n try {\n const newState = customReducer(draft.state, _action, dispatch);\n // const clipboardValue = isUndoRedo(action) ? [...clipboard] : [];\n // if the reducer creates a new state object instead\n // of mutating the draft then returns the new state\n if (newState) {\n // Object.assign(draft.state, newState);\n unsafe(() => {\n // casts new state as draft to comply with typescript\n draft.state = castDraft(newState);\n // clipboard: [...clipboardValue],\n });\n }\n else {\n // unsafe(() => {\n // draft.clipboard = castDraft([...clipboardValue]);\n // });\n }\n }\n catch (error) {\n // if the reducer throws an error then we should keep the previous state (before replayOperations)\n // and remove skip number from action/operation\n const lastOperationIndex = newDocument.operations[_action.scope].length - 1;\n draft.operations[_action.scope][lastOperationIndex].error = error.message;\n draft.operations[_action.scope][lastOperationIndex].skip = 0;\n if (shouldProcessSkipOperation) {\n draft.state = castDraft({\n ...document.state,\n });\n draft.operations = castDraft({\n ...document.operations,\n [_action.scope]: [\n ...document.operations[_action.scope],\n {\n ...draft.operations[_action.scope][lastOperationIndex],\n },\n ],\n });\n }\n }\n });\n // updates the document history\n // meta operations are not added to the operations history\n if ([UNDO, REDO, PRUNE].includes(_action.type)) {\n return newDocument;\n }\n // if reuseHash is true, checks if the action has\n // an hash and uses it instead of generating it\n const scope = _action.scope || \"global\";\n const hash = reuseHash && Object.prototype.hasOwnProperty.call(_action, \"hash\")\n ? _action.hash\n : hashDocumentStateForScope(newDocument, scope);\n // updates the last operation with the hash of the resulting state\n const lastOperation = newDocument.operations[scope].at(-1);\n if (lastOperation) {\n lastOperation.hash = hash;\n if (reuseOperationResultingState) {\n lastOperation.resultingState = JSON.stringify(newDocument.state[scope]);\n }\n // if the action has attachments then adds them to the document\n if (!isDocumentAction(_action) && _action.attachments) {\n _action.attachments.forEach((attachment) => {\n const { hash, ...file } = attachment;\n if (!newDocument.attachments) {\n newDocument.attachments = {};\n }\n newDocument.attachments[hash] = {\n ...file,\n };\n });\n }\n }\n return newDocument;\n}\n", "export class InvalidActionInputError extends Error {\n data;\n constructor(data) {\n super();\n this.name = \"InvalidActionInputError\";\n this.data = data;\n this.message =\n this.message || `Invalid action input: ${JSON.stringify(data, null, 2)}`;\n }\n}\nexport class InvalidActionInputZodError extends InvalidActionInputError {\n issues;\n constructor(issues) {\n super(issues);\n this.issues = issues;\n this.name = \"InvalidActionInputZodError\";\n }\n}\n", "import { hash } from \"#utils/env\";\nimport stringifyJson from \"safe-stable-stringify\";\nimport { ZodError } from \"zod\";\nimport { LOAD_STATE, NOOP, PRUNE, REDO, SET_NAME, UNDO, } from \"../actions/types.js\";\nimport { baseReducer, updateHeader } from \"../reducer.js\";\nimport { sortOperations } from \"./document-helpers.js\";\nimport { InvalidActionInputError, InvalidActionInputZodError, } from \"./errors.js\";\nexport function isNoopOperation(op) {\n return (op.type === NOOP &&\n op.skip !== undefined &&\n op.skip > 0 &&\n op.hash !== undefined);\n}\nexport function isUndoRedo(action) {\n return [UNDO, REDO].includes(action.type);\n}\nexport function isUndo(action) {\n return action.type === UNDO;\n}\nexport function isDocumentAction(action) {\n return [SET_NAME, UNDO, REDO, PRUNE, LOAD_STATE].includes(action.type);\n}\n/**\n * Helper function to be used by action creators.\n *\n * @remarks\n * Creates an action with the given type and input properties. The input\n * properties default to an empty object.\n *\n * @typeParam A - Type of the action to be returned.\n *\n * @param type - The type of the action.\n * @param input - The input properties of the action.\n * @param attachments - The attachments included in the action.\n * @param validator - The validator to use for the input properties.\n * @param scope - The scope of the action, can either be 'global' or 'local'.\n * @param skip - The number of operations to skip before this new action is applied.\n *\n * @throws Error if the type is empty or not a string.\n *\n * @returns The new action.\n */\nexport function createAction(type, input, attachments, validator, scope = \"global\") {\n if (!type) {\n throw new Error(\"Empty action type\");\n }\n if (typeof type !== \"string\") {\n throw new Error(`Invalid action type: ${JSON.stringify(type)}`);\n }\n const action = {\n type,\n input,\n scope,\n };\n if (attachments) {\n action.attachments = attachments;\n }\n try {\n validator?.().parse(action.input);\n }\n catch (error) {\n if (error instanceof ZodError) {\n throw new InvalidActionInputZodError(error.issues);\n }\n else {\n throw new InvalidActionInputError(error);\n }\n }\n return action;\n}\n/**\n * Helper function to create a document model reducer.\n *\n * @remarks\n * This function creates a new reducer that wraps the provided `reducer` with\n * `documentReducer`, adding support for document actions:\n * - `SET_NAME`\n * - `UNDO`\n * - `REDO`\n * - `PRUNE`\n *\n * It also updates the document-related attributes on every operation.\n *\n * @param reducer - The custom reducer to wrap.\n * @param documentReducer - The document reducer to use.\n *\n * @returns The new reducer.\n */\nexport function createReducer(stateReducer, documentReducer = baseReducer) {\n const reducer = (document, action, dispatch, options) => {\n return documentReducer(document, action, stateReducer, dispatch, options);\n };\n return reducer;\n}\nexport function baseCreateExtendedState(initialState, createState) {\n return {\n name: \"\",\n documentType: \"\",\n revision: {\n global: 0,\n local: 0,\n },\n created: new Date().toISOString(),\n lastModified: new Date().toISOString(),\n attachments: {},\n ...initialState,\n state: createState?.(initialState?.state) ??\n (initialState?.state ?? {\n global: {},\n local: {},\n }),\n };\n}\nexport function baseCreateDocument(initialState, createState) {\n const state = baseCreateExtendedState(initialState, createState);\n return {\n ...state,\n initialState: state,\n operations: { global: [], local: [] },\n clipboard: [],\n };\n}\nexport function hashDocumentStateForScope(document, scope = \"global\") {\n return hash(stringifyJson(document.state[scope] || \"\"));\n}\nexport const hashKey = (date, randomLimit = 1000) => {\n const random = Math.random() * randomLimit;\n return hash(`${(date ?? new Date()).toISOString()}${random}`);\n};\nexport function readOnly(value) {\n return Object.freeze(value);\n}\n/**\n * Maps skipped operations in an array of operations.\n * Skipped operations are operations that are ignored during processing.\n * @param operations - The array of operations to map.\n * @param skippedHeadOperations - The number of operations to skip at the head of the array of operations.\n * @returns An array of mapped operations with ignore flag indicating if the operation is skipped.\n * @throws Error if the operation index is invalid and there are missing operations.\n */\nexport function mapSkippedOperations(operations, skippedHeadOperations) {\n const ops = [...operations];\n let skipped = skippedHeadOperations || 0;\n let latestOpIndex = ops.length > 0 ? ops[ops.length - 1].index : 0;\n const scopeOpsWithIgnore = [];\n for (const operation of ops.reverse()) {\n if (skipped > 0) {\n const operationsDiff = latestOpIndex - operation.index;\n skipped -= operationsDiff;\n }\n if (skipped < 0) {\n throw new Error(\"Invalid operation index, missing operations\");\n }\n const mappedOp = {\n ignore: skipped > 0,\n operation,\n };\n // here we add 1 to the skip number because we want to get the number of\n // operations that we want to move the pointer back to get the latest valid operation\n // operation.skip = 1 means that we want to move the pointer back 2 operations to get to the latest valid operation\n const operationSkip = operation.skip > 0 ? operation.skip + 1 : 0;\n if (operationSkip > 0 && operationSkip > skipped) {\n const skipDiff = operationSkip - skipped;\n skipped = skipped + skipDiff;\n }\n latestOpIndex = operation.index;\n scopeOpsWithIgnore.push(mappedOp);\n }\n return scopeOpsWithIgnore.reverse();\n}\n// Flattens the mapped operations (with ignore flag) from all scopes into\n// a single array and sorts them by timestamp\nexport function sortMappedOperations(operations) {\n return Object.values(operations)\n .flatMap((array) => array)\n .sort((a, b) => new Date(a.operation.timestamp).getTime() -\n new Date(b.operation.timestamp).getTime());\n}\n// gets the last modified timestamp of a document from\u00A7\n// it's operations, falling back to the initial state\nexport function getDocumentLastModified(document) {\n const sortedOperations = sortOperations(Object.values(document.operations).flat());\n const timestamp = sortedOperations.at(-1)?.timestamp || document.initialState.lastModified;\n return timestamp;\n}\n// Runs the operations on the initial data using the\n// provided reducer, wrapped with the document reducer.\n// This rebuilds the document according to the provided actions.\nexport function replayOperations(initialState, clearedOperations, stateReducer, dispatch, header, documentReducer = baseReducer, skipHeaderOperations = {}, options) {\n // wraps the provided custom reducer with the\n // base document reducer\n const wrappedReducer = createReducer(stateReducer, documentReducer);\n return replayDocument(initialState, clearedOperations, wrappedReducer, dispatch, header, skipHeaderOperations, options);\n}\n// Runs the operations on the initial data using the\n// provided document reducer.\n// This rebuilds the document according to the provided actions.\nexport function replayDocument(initialState, operations, reducer, dispatch, header, skipHeaderOperations = {}, options) {\n const { checkHashes = true, reuseOperationResultingState, operationResultingStateParser = parseResultingState, } = options || {};\n let documentState = initialState;\n const operationsToReplay = [];\n const initialOperations = {\n global: [],\n local: [],\n };\n // if operation resulting state is to be used then\n // looks for the last operation with state of each\n // scope to use it as the starting point and only\n // replay operations that follow it\n if (reuseOperationResultingState) {\n for (const [scope, scopeOperations] of Object.entries(operations)) {\n const index = scopeOperations.findLastIndex((s) => !!s.resultingState);\n if (index < 0) {\n operationsToReplay.push(...scopeOperations);\n continue;\n }\n const opWithState = scopeOperations[index];\n if (!opWithState.resultingState)\n continue;\n try {\n const scopeState = operationResultingStateParser(opWithState.resultingState);\n documentState = {\n ...documentState,\n state: {\n ...documentState.state,\n // TODO how to deal with attachments?\n [scope]: scopeState,\n },\n };\n initialOperations[scope].push(...scopeOperations.slice(0, index + 1));\n operationsToReplay.push(...scopeOperations.slice(index + 1));\n }\n catch {\n /* if parsing fails then keeps replays all scope operations */\n operationsToReplay.push(...scopeOperations);\n }\n }\n }\n else {\n operationsToReplay.push(...Object.values(operations).flat());\n }\n // builds a new document from the initial data\n const document = baseCreateDocument(documentState);\n document.initialState = initialState;\n document.operations = initialOperations;\n let result = document;\n // if there are operations left without resulting state\n // then replays them\n if (operationsToReplay.length) {\n result = operationsToReplay.reduce((document, operation) => {\n const doc = reducer(document, operation, dispatch, {\n skip: operation.skip,\n ignoreSkipOperations: true,\n reuseHash: !checkHashes,\n });\n return doc;\n }, document);\n }\n // if not then updates the document header according\n // to the latest operation of each scope\n else {\n for (const scopeOperations of Object.values(initialOperations)) {\n const lastOperation = scopeOperations.at(-1);\n if (lastOperation) {\n result = updateHeader(result, lastOperation);\n }\n }\n }\n // if hash generation was skipped then checks if the hash\n // of each scope matches the hash of last operation\n if (!checkHashes) {\n for (const scope of Object.keys(result.state)) {\n for (let i = operationsToReplay.length - 1; i >= 0; i--) {\n const operation = operationsToReplay[i];\n if (operation.scope !== scope) {\n continue;\n }\n if (operation.hash !== hashDocumentStateForScope(result, scope)) {\n throw new Error(`Hash mismatch for scope ${scope}`);\n }\n else {\n break;\n }\n }\n }\n }\n // reuses operation timestamp if provided\n const resultOperations = Object.keys(result.operations).reduce((acc, key) => {\n const scope = key;\n return {\n ...acc,\n [scope]: [\n ...result.operations[scope].map((operation, index) => {\n return {\n ...operation,\n timestamp: operations[scope][index]?.timestamp ?? operation.timestamp,\n };\n }),\n ],\n };\n }, { global: [], local: [] });\n // gets the last modified timestamp from the latest operation\n const lastModified = Object.values(resultOperations).reduce((acc, curr) => {\n const operation = curr.at(-1);\n if (operation && operation.timestamp > acc) {\n acc = operation.timestamp;\n }\n return acc;\n }, initialState.lastModified);\n return {\n ...result,\n operations: resultOperations,\n lastModified,\n meta: header?.meta ?? {},\n };\n}\nexport function parseResultingState(state) {\n const stateType = typeof state;\n if (stateType === \"string\") {\n return JSON.parse(state);\n }\n else if (stateType === \"object\") {\n return state;\n }\n else {\n throw new Error(`Providing resulting state is of type: ${stateType}`);\n }\n}\n", "import { createAction } from \"../../../document/utils/base.js\";\nexport const setModelName = (input) => createAction(\"SET_MODEL_NAME\", { ...input });\nexport const setModelId = (input) => createAction(\"SET_MODEL_ID\", { ...input });\nexport const setModelExtension = (input) => createAction(\"SET_MODEL_EXTENSION\", { ...input });\nexport const setModelDescription = (input) => createAction(\"SET_MODEL_DESCRIPTION\", {\n ...input,\n});\nexport const setAuthorName = (input) => createAction(\"SET_AUTHOR_NAME\", { ...input });\nexport const setAuthorWebsite = (input) => createAction(\"SET_AUTHOR_WEBSITE\", { ...input });\n", "import { createAction } from \"../../../document/utils/base.js\";\nexport const addChangeLogItem = (input) => createAction(\"ADD_CHANGE_LOG_ITEM\", { ...input });\nexport const updateChangeLogItem = (input) => createAction(\"UPDATE_CHANGE_LOG_ITEM\", {\n ...input,\n});\nexport const deleteChangeLogItem = (input) => createAction(\"DELETE_CHANGE_LOG_ITEM\", {\n ...input,\n});\nexport const reorderChangeLogItems = (input) => createAction(\"REORDER_CHANGE_LOG_ITEMS\", {\n ...input,\n});\nexport const releaseNewVersion = () => createAction(\"RELEASE_NEW_VERSION\");\n", "import { createAction } from \"../../../document/utils/base.js\";\nexport const addModule = (input) => createAction(\"ADD_MODULE\", { ...input });\nexport const setModuleName = (input) => createAction(\"SET_MODULE_NAME\", { ...input });\nexport const setModuleDescription = (input) => createAction(\"SET_MODULE_DESCRIPTION\", {\n ...input,\n});\nexport const deleteModule = (input) => createAction(\"DELETE_MODULE\", { ...input });\nexport const reorderModules = (input) => createAction(\"REORDER_MODULES\", { ...input });\n", "import { createAction } from \"../../../document/utils/base.js\";\nexport const addOperationError = (input) => createAction(\"ADD_OPERATION_ERROR\", { ...input });\nexport const setOperationErrorCode = (input) => createAction(\"SET_OPERATION_ERROR_CODE\", {\n ...input,\n});\nexport const setOperationErrorName = (input) => createAction(\"SET_OPERATION_ERROR_NAME\", {\n ...input,\n});\nexport const setOperationErrorDescription = (input) => createAction(\"SET_OPERATION_ERROR_DESCRIPTION\", { ...input });\nexport const setOperationErrorTemplate = (input) => createAction(\"SET_OPERATION_ERROR_TEMPLATE\", { ...input });\nexport const deleteOperationError = (input) => createAction(\"DELETE_OPERATION_ERROR\", {\n ...input,\n});\nexport const reorderOperationErrors = (input) => createAction(\"REORDER_OPERATION_ERRORS\", {\n ...input,\n});\n", "import { createAction } from \"../../../document/utils/base.js\";\nexport const addOperationExample = (input) => createAction(\"ADD_OPERATION_EXAMPLE\", {\n ...input,\n});\nexport const updateOperationExample = (input) => createAction(\"UPDATE_OPERATION_EXAMPLE\", {\n ...input,\n});\nexport const deleteOperationExample = (input) => createAction(\"DELETE_OPERATION_EXAMPLE\", {\n ...input,\n});\nexport const reorderOperationExamples = (input) => createAction(\"REORDER_OPERATION_EXAMPLES\", {\n ...input,\n});\n", "import { createAction } from \"../../../document/utils/base.js\";\nexport const addOperation = (input) => createAction(\"ADD_OPERATION\", { ...input });\nexport const setOperationName = (input) => createAction(\"SET_OPERATION_NAME\", { ...input });\nexport const setOperationScope = (input) => createAction(\"SET_OPERATION_SCOPE\", { ...input });\nexport const setOperationSchema = (input) => createAction(\"SET_OPERATION_SCHEMA\", { ...input });\nexport const setOperationDescription = (input) => createAction(\"SET_OPERATION_DESCRIPTION\", {\n ...input,\n});\nexport const setOperationTemplate = (input) => createAction(\"SET_OPERATION_TEMPLATE\", {\n ...input,\n});\nexport const setOperationReducer = (input) => createAction(\"SET_OPERATION_REDUCER\", {\n ...input,\n});\nexport const moveOperation = (input) => createAction(\"MOVE_OPERATION\", { ...input });\nexport const deleteOperation = (input) => createAction(\"DELETE_OPERATION\", { ...input });\nexport const reorderModuleOperations = (input) => createAction(\"REORDER_MODULE_OPERATIONS\", {\n ...input,\n});\n", "import { createAction } from \"#document/utils/base.js\";\nexport const setStateSchema = (input) => createAction(\"SET_STATE_SCHEMA\", { ...input });\nexport const setInitialState = (input) => createAction(\"SET_INITIAL_STATE\", { ...input });\nexport const addStateExample = (input) => createAction(\"ADD_STATE_EXAMPLE\", { ...input });\nexport const updateStateExample = (input) => createAction(\"UPDATE_STATE_EXAMPLE\", { ...input });\nexport const deleteStateExample = (input) => createAction(\"DELETE_STATE_EXAMPLE\", { ...input });\nexport const reorderStateExamples = (input) => createAction(\"REORDER_STATE_EXAMPLES\", {\n ...input,\n});\n", "export const documentModelState = {\n id: \"powerhouse/document-model\",\n name: \"DocumentModel\",\n extension: \"phdm\",\n description: \"The Powerhouse Document Model describes the state and operations of a document type.\",\n author: {\n name: \"Powerhouse\",\n website: \"https://www.powerhouse.inc/\",\n },\n specifications: [\n {\n version: 1,\n changeLog: [],\n modules: [\n {\n name: \"header\",\n operations: [\n {\n name: \"SetModelName\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"SetModelId\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"SetModelExtension\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"SetModelDescription\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"SetAuthorName\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"SetAuthorWebsite\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n ],\n id: \"\",\n description: \"\",\n },\n {\n name: \"versioning\",\n operations: [\n {\n name: \"AddChangeLogItem\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"UpdateChangeLogItem\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"DeleteChangeLogItem\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"ReorderChangeLogItems\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"ReleaseNewVersion\",\n schema: null,\n id: \"\",\n description: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n ],\n id: \"\",\n description: \"\",\n },\n {\n name: \"module\",\n operations: [\n {\n name: \"AddModule\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"SetModuleName\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"SetModuleDescription\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"DeleteModule\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"ReorderModules\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n ],\n id: \"\",\n description: \"\",\n },\n {\n name: \"operation-error\",\n operations: [\n {\n name: \"AddOperationError\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"SetOperationErrorCode\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"SetOperationErrorName\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"SetOperationErrorDescription\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"SetOperationErrorTemplate\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"DeleteOperationError\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"ReorderOperationErrors\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n ],\n id: \"\",\n description: \"\",\n },\n {\n name: \"operation-example\",\n operations: [\n {\n name: \"AddOperationExample\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"UpdateOperationExample\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"DeleteOperationExample\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"ReorderOperationExamples\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n ],\n id: \"\",\n description: \"\",\n },\n {\n name: \"operation\",\n operations: [\n {\n name: \"AddOperation\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"SetOperationName\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"SetOperationSchema\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"SetOperationDescription\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"SetOperationTemplate\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"SetOperationReducer\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"MoveOperation\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"DeleteOperation\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"ReorderModuleOperations\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n ],\n id: \"\",\n description: \"\",\n },\n {\n name: \"state\",\n operations: [\n {\n name: \"SetStateSchema\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"SetInitialState\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"AddStateExample\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"UpdateStateExample\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"DeleteStateExample\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n {\n name: \"ReorderStateExamples\",\n id: \"\",\n description: \"\",\n schema: \"\",\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\",\n },\n ],\n id: \"\",\n description: \"\",\n },\n ],\n state: {\n global: {\n schema: \"\",\n initialValue: '{\\n \"id\": \"\",\\n \"name\": \"\",\\n \"extension\": \"\",\\n \"description\": \"\",\\n \"author\": {\\n \"name\": \"\",\\n \"website\": \"\"\\n },\\n \"specifications\": [\\n {\\n \"version\": 1,\\n \"changeLog\": [],\\n \"state\": {\\n \"schema\": \"\",\\n \"initialValue\": \"\",\\n \"examples\": []\\n },\\n \"modules\": []\\n }\\n ]\\n}',\n examples: [],\n },\n local: {\n schema: \"\",\n initialValue: `{}`,\n examples: [],\n },\n },\n },\n ],\n};\n", "export const reducer = {\n setModelNameOperation(state, action) {\n state.name = action.input.name;\n },\n setModelIdOperation(state, action) {\n state.id = action.input.id;\n },\n setModelExtensionOperation(state, action) {\n state.extension = action.input.extension;\n },\n setModelDescriptionOperation(state, action) {\n state.description = action.input.description;\n },\n setAuthorNameOperation(state, action) {\n state.author = state.author || { name: \"\", website: null };\n state.author.name = action.input.authorName;\n },\n setAuthorWebsiteOperation(state, action) {\n state.author = state.author || { name: \"\", website: null };\n state.author.website = action.input.authorWebsite;\n },\n};\n", "const moduleSorter = (order) => {\n const mapping = {};\n order.forEach((key, index) => (mapping[key] = index));\n return (a, b) => (mapping[b.id] || 999999) - (mapping[a.id] || 999999);\n};\nexport const reducer = {\n addModuleOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n latestSpec.modules.push({\n id: action.input.id,\n name: action.input.name,\n description: action.input.description || \"\",\n operations: [],\n });\n },\n setModuleNameOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n if (latestSpec.modules[i].id === action.input.id) {\n latestSpec.modules[i].name = action.input.name || \"\";\n }\n }\n },\n setModuleDescriptionOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n if (latestSpec.modules[i].id === action.input.id) {\n latestSpec.modules[i].description = action.input.description || \"\";\n }\n }\n },\n deleteModuleOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n latestSpec.modules = latestSpec.modules.filter((m) => m.id != action.input.id);\n },\n reorderModulesOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n latestSpec.modules.sort(moduleSorter(action.input.order));\n },\n};\n", "const errorSorter = (order) => {\n const mapping = {};\n order.forEach((key, index) => (mapping[key] = index));\n return (a, b) => (mapping[b.id] || 999999) - (mapping[a.id] || 999999);\n};\nexport const reducer = {\n addOperationErrorOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (latestSpec.modules[i].operations[j].id == action.input.operationId) {\n latestSpec.modules[i].operations[j].errors.push({\n id: action.input.id,\n name: action.input.errorName || \"\",\n code: action.input.errorCode || \"\",\n description: action.input.errorDescription || \"\",\n template: action.input.errorTemplate || \"\",\n });\n }\n }\n }\n },\n setOperationErrorCodeOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n for (let k = 0; k < latestSpec.modules[i].operations[j].errors.length; k++) {\n if (latestSpec.modules[i].operations[j].errors[k].id == action.input.id) {\n latestSpec.modules[i].operations[j].errors[k].code =\n action.input.errorCode || \"\";\n }\n }\n }\n }\n },\n setOperationErrorNameOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n for (let k = 0; k < latestSpec.modules[i].operations[j].errors.length; k++) {\n if (latestSpec.modules[i].operations[j].errors[k].id == action.input.id) {\n latestSpec.modules[i].operations[j].errors[k].name =\n action.input.errorName || \"\";\n }\n }\n }\n }\n },\n setOperationErrorDescriptionOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n for (let k = 0; k < latestSpec.modules[i].operations[j].errors.length; k++) {\n if (latestSpec.modules[i].operations[j].errors[k].id == action.input.id) {\n latestSpec.modules[i].operations[j].errors[k].description =\n action.input.errorDescription || \"\";\n }\n }\n }\n }\n },\n setOperationErrorTemplateOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n for (let k = 0; k < latestSpec.modules[i].operations[j].errors.length; k++) {\n if (latestSpec.modules[i].operations[j].errors[k].id == action.input.id) {\n latestSpec.modules[i].operations[j].errors[k].template =\n action.input.errorTemplate || \"\";\n }\n }\n }\n }\n },\n deleteOperationErrorOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n latestSpec.modules[i].operations[j].errors = latestSpec.modules[i].operations[j].errors.filter((e) => e.id != action.input.id);\n }\n }\n },\n reorderOperationErrorsOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (latestSpec.modules[i].operations[j].id == action.input.operationId) {\n latestSpec.modules[i].operations[j].errors.sort(errorSorter(action.input.order));\n }\n }\n }\n },\n};\n", "const exampleSorter = (order) => {\n const mapping = {};\n order.forEach((key, index) => (mapping[key] = index));\n return (a, b) => (mapping[b.id] || 999999) - (mapping[a.id] || 999999);\n};\nexport const reducer = {\n addOperationExampleOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (latestSpec.modules[i].operations[j].id == action.input.operationId) {\n latestSpec.modules[i].operations[j].examples.push({\n id: action.input.id,\n value: action.input.example,\n });\n }\n }\n }\n },\n updateOperationExampleOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n for (let k = 0; k < latestSpec.modules[i].operations[j].examples.length; k++) {\n if (latestSpec.modules[i].operations[j].examples[k].id ==\n action.input.id) {\n latestSpec.modules[i].operations[j].examples[k].value =\n action.input.example;\n }\n }\n }\n }\n },\n deleteOperationExampleOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n latestSpec.modules[i].operations[j].examples = latestSpec.modules[i].operations[j].examples.filter((e) => e.id != action.input.id);\n }\n }\n },\n reorderOperationExamplesOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (latestSpec.modules[i].operations[j].id == action.input.operationId) {\n latestSpec.modules[i].operations[j].examples.sort(exampleSorter(action.input.order));\n }\n }\n }\n },\n};\n", "const operationSorter = (order) => {\n const mapping = {};\n order.forEach((key, index) => (mapping[key] = index));\n return (a, b) => (mapping[b.id] || 999999) - (mapping[a.id] || 999999);\n};\nexport const reducer = {\n addOperationOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n if (latestSpec.modules[i].id == action.input.moduleId) {\n latestSpec.modules[i].operations.push({\n id: action.input.id,\n name: action.input.name,\n description: action.input.description || \"\",\n schema: action.input.schema || \"\",\n template: action.input.template || action.input.description || \"\",\n reducer: action.input.reducer || \"\",\n errors: [],\n examples: [],\n scope: action.input.scope || \"global\",\n });\n }\n }\n },\n setOperationNameOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (latestSpec.modules[i].operations[j].id == action.input.id) {\n latestSpec.modules[i].operations[j].name = action.input.name || \"\";\n }\n }\n }\n },\n setOperationScopeOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (latestSpec.modules[i].operations[j].id == action.input.id) {\n latestSpec.modules[i].operations[j].scope =\n action.input.scope || \"global\";\n }\n }\n }\n },\n setOperationSchemaOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (latestSpec.modules[i].operations[j].id == action.input.id) {\n latestSpec.modules[i].operations[j].schema =\n action.input.schema || \"\";\n }\n }\n }\n },\n setOperationDescriptionOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (latestSpec.modules[i].operations[j].id == action.input.id) {\n latestSpec.modules[i].operations[j].description =\n action.input.description || \"\";\n }\n }\n }\n },\n setOperationTemplateOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (latestSpec.modules[i].operations[j].id == action.input.id) {\n latestSpec.modules[i].operations[j].template =\n action.input.template || \"\";\n }\n }\n }\n },\n setOperationReducerOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n for (let j = 0; j < latestSpec.modules[i].operations.length; j++) {\n if (latestSpec.modules[i].operations[j].id == action.input.id) {\n latestSpec.modules[i].operations[j].reducer =\n action.input.reducer || \"\";\n }\n }\n }\n },\n moveOperationOperation(state, action) {\n const moveOperations = [];\n const latestSpec = state.specifications[state.specifications.length - 1];\n // Filter and collect\n for (let i = 0; i < latestSpec.modules.length; i++) {\n latestSpec.modules[i].operations = latestSpec.modules[i].operations.filter((operation) => {\n if (operation.id == action.input.operationId) {\n moveOperations.push(operation);\n return false;\n }\n return true;\n });\n }\n // Inject in target modules\n for (let i = 0; i < latestSpec.modules.length; i++) {\n if (latestSpec.modules[i].id == action.input.newModuleId) {\n latestSpec.modules[i].operations.push(...moveOperations);\n }\n }\n },\n deleteOperationOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n latestSpec.modules[i].operations = latestSpec.modules[i].operations.filter((operation) => operation.id != action.input.id);\n }\n },\n reorderModuleOperationsOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n for (let i = 0; i < latestSpec.modules.length; i++) {\n if (latestSpec.modules[i].id == action.input.moduleId) {\n latestSpec.modules[i].operations.sort(operationSorter(action.input.order));\n }\n }\n },\n};\n", "const exampleSorter = (order) => {\n const mapping = {};\n order.forEach((key, index) => (mapping[key] = index));\n return (a, b) => (mapping[b.id] || 999999) - (mapping[a.id] || 999999);\n};\nexport const reducer = {\n setStateSchemaOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n if (Object.keys(latestSpec.state).includes(action.input.scope)) {\n latestSpec.state[action.input.scope].schema =\n action.input.schema;\n }\n else {\n throw new Error(`Invalid scope: ${action.input.scope}`);\n }\n },\n setInitialStateOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n if (Object.keys(latestSpec.state).includes(action.input.scope)) {\n latestSpec.state[action.input.scope].initialValue =\n action.input.initialValue;\n }\n else {\n throw new Error(`Invalid scope: ${action.input.scope}`);\n }\n },\n addStateExampleOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n if (Object.keys(latestSpec.state).includes(action.input.scope)) {\n latestSpec.state[action.input.scope].examples.push({\n id: action.input.id,\n value: action.input.example,\n });\n }\n else {\n throw new Error(`Invalid scope: ${action.input.scope}`);\n }\n },\n updateStateExampleOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n if (!Object.keys(latestSpec.state).includes(action.input.scope)) {\n throw new Error(`Invalid scope: ${action.input.scope}`);\n }\n const examples = latestSpec.state[action.input.scope].examples;\n for (let i = 0; i < examples.length; i++) {\n if (examples[i].id == action.input.id) {\n examples[i].value = action.input.newExample;\n }\n }\n },\n deleteStateExampleOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n if (Object.keys(latestSpec.state).includes(action.input.scope)) {\n latestSpec.state[action.input.scope].examples =\n latestSpec.state[action.input.scope].examples.filter((e) => e.id != action.input.id);\n }\n else {\n throw new Error(`Invalid scope: ${action.input.scope}`);\n }\n },\n reorderStateExamplesOperation(state, action) {\n const latestSpec = state.specifications[state.specifications.length - 1];\n if (Object.keys(latestSpec.state).includes(action.input.scope)) {\n latestSpec.state[action.input.scope].examples.sort(exampleSorter(action.input.order));\n }\n else {\n throw new Error(`Invalid scope: ${action.input.scope}`);\n }\n },\n};\n", "/**\n * This is a scaffold file meant for customization:\n * - modify it by implementing the reducer functions\n * - delete the file and run the code generator again to have it reset\n */\nexport const reducer = {\n addChangeLogItemOperation(state, action) {\n throw new Error('Reducer \"addChangeLogItemOperation\" not yet implemented');\n },\n updateChangeLogItemOperation(state, action) {\n throw new Error('Reducer \"updateChangeLogItemOperation\" not yet implemented');\n },\n deleteChangeLogItemOperation(state, action) {\n throw new Error('Reducer \"deleteChangeLogItemOperation\" not yet implemented');\n },\n reorderChangeLogItemsOperation(state, action) {\n throw new Error('Reducer \"reorderChangeLogItemsOperation\" not yet implemented');\n },\n releaseNewVersionOperation(state, action) {\n throw new Error('Reducer \"releaseNewVersionOperation\" not yet implemented');\n },\n};\n", "import { z } from \"zod\";\nexport const isDefinedNonNullAny = (v) => v !== undefined && v !== null;\nexport const definedNonNullAnySchema = z\n .any()\n .refine((v) => isDefinedNonNullAny(v));\nexport function AddChangeLogItemInputSchema() {\n return z.object({\n __typename: z.literal(\"AddChangeLogItemInput\").optional(),\n content: z.string(),\n id: z.string(),\n insertBefore: z.string().nullable(),\n });\n}\nexport function AddModuleInputSchema() {\n return z.object({\n description: z.string().nullish(),\n id: z.string(),\n name: z.string(),\n });\n}\nexport function AddOperationErrorInputSchema() {\n return z.object({\n errorCode: z.string().nullish(),\n errorDescription: z.string().nullish(),\n errorName: z.string().nullish(),\n errorTemplate: z.string().nullish(),\n id: z.string(),\n operationId: z.string(),\n });\n}\nexport function AddOperationExampleInputSchema() {\n return z.object({\n example: z.string(),\n id: z.string(),\n operationId: z.string(),\n });\n}\nexport function AddOperationInputSchema() {\n return z.object({\n description: z.string().nullish(),\n id: z.string(),\n moduleId: z.string(),\n name: z.string(),\n reducer: z.string().nullish(),\n schema: z.string().nullish(),\n template: z.string().nullish(),\n scope: OperationScopeSchema().nullish(),\n });\n}\nexport function AddStateExampleInputSchema() {\n return z.object({\n scope: z.string(),\n example: z.string(),\n id: z.string(),\n insertBefore: z.string().nullish(),\n });\n}\nexport function AuthorSchema() {\n return z.object({\n __typename: z.literal(\"Author\").optional(),\n name: z.string(),\n website: z.string().nullable(),\n });\n}\nexport function CodeExampleSchema() {\n return z.object({\n __typename: z.literal(\"CodeExample\").optional(),\n id: z.string(),\n value: z.string(),\n });\n}\nexport function DeleteChangeLogItemInputSchema() {\n return z.object({\n __typename: z.literal(\"DeleteChangeLogItemInput\").optional(),\n id: z.string(),\n });\n}\nexport function DeleteModuleInputSchema() {\n return z.object({\n id: z.string(),\n });\n}\nexport function DeleteOperationErrorInputSchema() {\n return z.object({\n id: z.string(),\n });\n}\nexport function DeleteOperationExampleInputSchema() {\n return z.object({\n id: z.string(),\n });\n}\nexport function DeleteOperationInputSchema() {\n return z.object({\n id: z.string(),\n });\n}\nexport function DeleteStateExampleInputSchema() {\n return z.object({\n scope: z.string(),\n id: z.string(),\n });\n}\nexport function OperationScopeSchema() {\n return z.literal(\"global\").or(z.literal(\"local\"));\n}\nexport function DocumentModelInputSchema() {\n return z.union([\n AddChangeLogItemInputSchema(),\n AddModuleInputSchema(),\n AddOperationErrorInputSchema(),\n AddOperationExampleInputSchema(),\n AddOperationInputSchema(),\n AddStateExampleInputSchema(),\n DeleteChangeLogItemInputSchema(),\n DeleteModuleInputSchema(),\n DeleteOperationErrorInputSchema(),\n DeleteOperationExampleInputSchema(),\n DeleteOperationInputSchema(),\n DeleteStateExampleInputSchema(),\n MoveOperationInputSchema(),\n ReorderChangeLogItemsInputSchema(),\n ReorderModuleOperationsInputSchema(),\n ReorderModulesInputSchema(),\n ReorderOperationErrorsInputSchema(),\n ReorderOperationExamplesInputSchema(),\n ReorderStateExamplesInputSchema(),\n SetAuthorNameInputSchema(),\n SetAuthorWebsiteInputSchema(),\n SetInitialStateInputSchema(),\n SetModelDescriptionInputSchema(),\n SetModelExtensionInputSchema(),\n SetModelIdInputSchema(),\n SetModelNameInputSchema(),\n SetModuleDescriptionInputSchema(),\n SetModuleNameInputSchema(),\n SetOperationDescriptionInputSchema(),\n SetOperationErrorCodeInputSchema(),\n SetOperationErrorDescriptionInputSchema(),\n SetOperationErrorNameInputSchema(),\n SetOperationErrorTemplateInputSchema(),\n SetOperationNameInputSchema(),\n SetOperationReducerInputSchema(),\n SetOperationSchemaInputSchema(),\n SetOperationTemplateInputSchema(),\n SetStateSchemaInputSchema(),\n UpdateChangeLogItemInputSchema(),\n UpdateOperationExampleInputSchema(),\n UpdateStateExampleInputSchema(),\n ]);\n}\nexport function DocumentModelStateSchema() {\n return z.object({\n __typename: z.literal(\"DocumentModelState\").optional(),\n author: AuthorSchema(),\n description: z.string(),\n extension: z.string(),\n id: z.string(),\n name: z.string(),\n specifications: z.array(DocumentSpecificationSchema()),\n });\n}\nexport function DocumentSpecificationSchema() {\n return z.object({\n __typename: z.literal(\"DocumentSpecification\").optional(),\n changeLog: z.array(z.string()),\n modules: z.array(ModuleSchema()),\n state: ScopeStateSchema(),\n version: z.number(),\n });\n}\nexport function ModuleSchema() {\n return z.object({\n __typename: z.literal(\"Module\").optional(),\n description: z.string().nullable(),\n id: z.string(),\n name: z.string(),\n operations: z.array(OperationSchema()),\n });\n}\nexport function MoveOperationInputSchema() {\n return z.object({\n newModuleId: z.string(),\n operationId: z.string(),\n });\n}\nexport function OperationSchema() {\n return z.object({\n __typename: z.literal(\"Operation\").optional(),\n description: z.string().nullable(),\n errors: z.array(OperationErrorSchema()),\n examples: z.array(CodeExampleSchema()),\n id: z.string(),\n name: z.string().nullable(),\n reducer: z.string().nullable(),\n schema: z.string().nullable(),\n template: z.string().nullable(),\n scope: OperationScopeSchema(),\n });\n}\nexport function OperationErrorSchema() {\n return z.object({\n __typename: z.literal(\"OperationError\").optional(),\n code: z.string().nullable(),\n description: z.string().nullable(),\n id: z.string(),\n name: z.string().nullable(),\n template: z.string().nullable(),\n });\n}\nexport function ReorderChangeLogItemsInputSchema() {\n return z.object({\n __typename: z.literal(\"ReorderChangeLogItemsInput\").optional(),\n order: z.array(z.string()),\n });\n}\nexport function ReorderModuleOperationsInputSchema() {\n return z.object({\n moduleId: z.string(),\n order: z.array(z.string()),\n });\n}\nexport function ReorderModulesInputSchema() {\n return z.object({\n order: z.array(z.string()),\n });\n}\nexport function ReorderOperationErrorsInputSchema() {\n return z.object({\n operationId: z.string(),\n order: z.array(z.string()),\n });\n}\nexport function ReorderOperationExamplesInputSchema() {\n return z.object({\n operationId: z.string(),\n order: z.array(z.string()),\n });\n}\nexport function ReorderStateExamplesInputSchema() {\n return z.object({\n scope: z.string(),\n order: z.array(z.string()),\n });\n}\nexport function SetAuthorNameInputSchema() {\n return z.object({\n authorName: z.string(),\n });\n}\nexport function SetAuthorWebsiteInputSchema() {\n return z.object({\n authorWebsite: z.string(),\n });\n}\nexport function SetInitialStateInputSchema() {\n return z.object({\n scope: z.string(),\n initialValue: z.string(),\n });\n}\nexport function SetModelDescriptionInputSchema() {\n return z.object({\n description: z.string(),\n });\n}\nexport function SetModelExtensionInputSchema() {\n return z.object({\n extension: z.string(),\n });\n}\nexport function SetModelIdInputSchema() {\n return z.object({\n id: z.string(),\n });\n}\nexport function SetModelNameInputSchema() {\n return z.object({\n name: z.string(),\n });\n}\nexport function SetModuleDescriptionInputSchema() {\n return z.object({\n description: z.string().nullish(),\n id: z.string(),\n });\n}\nexport function SetModuleNameInputSchema() {\n return z.object({\n id: z.string(),\n name: z.string().nullish(),\n });\n}\nexport function SetOperationDescriptionInputSchema() {\n return z.object({\n description: z.string().nullish(),\n id: z.string(),\n });\n}\nexport function SetOperationErrorCodeInputSchema() {\n return z.object({\n errorCode: z.string().nullish(),\n id: z.string(),\n });\n}\nexport function SetOperationErrorDescriptionInputSchema() {\n return z.object({\n errorDescription: z.string().nullish(),\n id: z.string(),\n });\n}\nexport function SetOperationErrorNameInputSchema() {\n return z.object({\n errorName: z.string().nullish(),\n id: z.string(),\n });\n}\nexport function SetOperationErrorTemplateInputSchema() {\n return z.object({\n errorTemplate: z.string().nullish(),\n id: z.string(),\n });\n}\nexport function SetOperationNameInputSchema() {\n return z.object({\n id: z.string(),\n name: z.string().nullish(),\n });\n}\nexport function SetOperationScopeInputSchema() {\n return z.object({\n id: z.string(),\n scope: OperationScopeSchema(),\n });\n}\nexport function SetOperationReducerInputSchema() {\n return z.object({\n id: z.string(),\n reducer: z.string().nullish(),\n });\n}\nexport function SetOperationSchemaInputSchema() {\n return z.object({\n id: z.string(),\n schema: z.string().nullish(),\n });\n}\nexport function SetOperationTemplateInputSchema() {\n return z.object({\n id: z.string(),\n template: z.string().nullish(),\n });\n}\nexport function SetStateSchemaInputSchema() {\n return z.object({\n scope: z.string(),\n schema: z.string(),\n });\n}\nexport function StateSchema() {\n return z.object({\n __typename: z.literal(\"State\").optional(),\n examples: z.array(CodeExampleSchema()),\n initialValue: z.string(),\n schema: z.string(),\n });\n}\nexport function ScopeStateSchema() {\n return z.object({\n global: StateSchema(),\n local: StateSchema(),\n });\n}\nexport function UpdateChangeLogItemInputSchema() {\n return z.object({\n __typename: z.literal(\"UpdateChangeLogItemInput\").optional(),\n id: z.string(),\n newContent: z.string(),\n });\n}\nexport function UpdateOperationExampleInputSchema() {\n return z.object({\n example: z.string(),\n id: z.string(),\n });\n}\nexport function UpdateStateExampleInputSchema() {\n return z.object({\n scope: z.string(),\n id: z.string(),\n newExample: z.string(),\n });\n}\n", "import { createReducer, isDocumentAction } from \"../../document/utils/base.js\";\nimport { reducer as HeaderReducer } from \"../custom/reducers/header.js\";\nimport { reducer as ModuleReducer } from \"../custom/reducers/module.js\";\nimport { reducer as OperationErrorReducer } from \"../custom/reducers/operation-error.js\";\nimport { reducer as OperationExampleReducer } from \"../custom/reducers/operation-example.js\";\nimport { reducer as OperationReducer } from \"../custom/reducers/operation.js\";\nimport { reducer as StateReducer } from \"../custom/reducers/state.js\";\nimport { reducer as VersioningReducer } from \"../custom/reducers/versioning.js\";\nimport { AddChangeLogItemInputSchema, AddModuleInputSchema, AddOperationErrorInputSchema, AddOperationExampleInputSchema, AddOperationInputSchema, AddStateExampleInputSchema, DeleteChangeLogItemInputSchema, DeleteModuleInputSchema, DeleteOperationErrorInputSchema, DeleteOperationExampleInputSchema, DeleteOperationInputSchema, DeleteStateExampleInputSchema, MoveOperationInputSchema, ReorderChangeLogItemsInputSchema, ReorderModuleOperationsInputSchema, ReorderModulesInputSchema, ReorderOperationErrorsInputSchema, ReorderOperationExamplesInputSchema, ReorderStateExamplesInputSchema, SetAuthorNameInputSchema, SetAuthorWebsiteInputSchema, SetInitialStateInputSchema, SetModelDescriptionInputSchema, SetModelExtensionInputSchema, SetModelIdInputSchema, SetModelNameInputSchema, SetModuleDescriptionInputSchema, SetModuleNameInputSchema, SetOperationDescriptionInputSchema, SetOperationErrorCodeInputSchema, SetOperationErrorDescriptionInputSchema, SetOperationErrorNameInputSchema, SetOperationErrorTemplateInputSchema, SetOperationNameInputSchema, SetOperationReducerInputSchema, SetOperationSchemaInputSchema, SetOperationScopeInputSchema, SetOperationTemplateInputSchema, SetStateSchemaInputSchema, UpdateChangeLogItemInputSchema, UpdateOperationExampleInputSchema, UpdateStateExampleInputSchema, } from \"./schema/zod.js\";\nexport const stateReducer = (state, action) => {\n if (isDocumentAction(action)) {\n return state;\n }\n switch (action.type) {\n case \"SET_MODEL_NAME\":\n SetModelNameInputSchema().parse(action.input);\n HeaderReducer.setModelNameOperation(state.global, action);\n break;\n case \"SET_MODEL_ID\":\n SetModelIdInputSchema().parse(action.input);\n HeaderReducer.setModelIdOperation(state.global, action);\n break;\n case \"SET_MODEL_EXTENSION\":\n SetModelExtensionInputSchema().parse(action.input);\n HeaderReducer.setModelExtensionOperation(state.global, action);\n break;\n case \"SET_MODEL_DESCRIPTION\":\n SetModelDescriptionInputSchema().parse(action.input);\n HeaderReducer.setModelDescriptionOperation(state.global, action);\n break;\n case \"SET_AUTHOR_NAME\":\n SetAuthorNameInputSchema().parse(action.input);\n HeaderReducer.setAuthorNameOperation(state.global, action);\n break;\n case \"SET_AUTHOR_WEBSITE\":\n SetAuthorWebsiteInputSchema().parse(action.input);\n HeaderReducer.setAuthorWebsiteOperation(state.global, action);\n break;\n case \"ADD_CHANGE_LOG_ITEM\":\n AddChangeLogItemInputSchema().parse(action.input);\n VersioningReducer.addChangeLogItemOperation(state.global, action);\n break;\n case \"UPDATE_CHANGE_LOG_ITEM\":\n UpdateChangeLogItemInputSchema().parse(action.input);\n VersioningReducer.updateChangeLogItemOperation(state.global, action);\n break;\n case \"DELETE_CHANGE_LOG_ITEM\":\n DeleteChangeLogItemInputSchema().parse(action.input);\n VersioningReducer.deleteChangeLogItemOperation(state.global, action);\n break;\n case \"REORDER_CHANGE_LOG_ITEMS\":\n ReorderChangeLogItemsInputSchema().parse(action.input);\n VersioningReducer.reorderChangeLogItemsOperation(state.global, action);\n break;\n case \"RELEASE_NEW_VERSION\":\n if (Object.keys(action.input).length > 0)\n throw new Error(\"Expected empty input for action RELEASE_NEW_VERSION\");\n VersioningReducer.releaseNewVersionOperation(state.global, action);\n break;\n case \"ADD_MODULE\":\n AddModuleInputSchema().parse(action.input);\n ModuleReducer.addModuleOperation(state.global, action);\n break;\n case \"SET_MODULE_NAME\":\n SetModuleNameInputSchema().parse(action.input);\n ModuleReducer.setModuleNameOperation(state.global, action);\n break;\n case \"SET_MODULE_DESCRIPTION\":\n SetModuleDescriptionInputSchema().parse(action.input);\n ModuleReducer.setModuleDescriptionOperation(state.global, action);\n break;\n case \"DELETE_MODULE\":\n DeleteModuleInputSchema().parse(action.input);\n ModuleReducer.deleteModuleOperation(state.global, action);\n break;\n case \"REORDER_MODULES\":\n ReorderModulesInputSchema().parse(action.input);\n ModuleReducer.reorderModulesOperation(state.global, action);\n break;\n case \"ADD_OPERATION_ERROR\":\n AddOperationErrorInputSchema().parse(action.input);\n OperationErrorReducer.addOperationErrorOperation(state.global, action);\n break;\n case \"SET_OPERATION_ERROR_CODE\":\n SetOperationErrorCodeInputSchema().parse(action.input);\n OperationErrorReducer.setOperationErrorCodeOperation(state.global, action);\n break;\n case \"SET_OPERATION_ERROR_NAME\":\n SetOperationErrorNameInputSchema().parse(action.input);\n OperationErrorReducer.setOperationErrorNameOperation(state.global, action);\n break;\n case \"SET_OPERATION_ERROR_DESCRIPTION\":\n SetOperationErrorDescriptionInputSchema().parse(action.input);\n OperationErrorReducer.setOperationErrorDescriptionOperation(state.global, action);\n break;\n case \"SET_OPERATION_ERROR_TEMPLATE\":\n SetOperationErrorTemplateInputSchema().parse(action.input);\n OperationErrorReducer.setOperationErrorTemplateOperation(state.global, action);\n break;\n case \"DELETE_OPERATION_ERROR\":\n DeleteOperationErrorInputSchema().parse(action.input);\n OperationErrorReducer.deleteOperationErrorOperation(state.global, action);\n break;\n case \"REORDER_OPERATION_ERRORS\":\n ReorderOperationErrorsInputSchema().parse(action.input);\n OperationErrorReducer.reorderOperationErrorsOperation(state.global, action);\n break;\n case \"ADD_OPERATION_EXAMPLE\":\n AddOperationExampleInputSchema().parse(action.input);\n OperationExampleReducer.addOperationExampleOperation(state.global, action);\n break;\n case \"UPDATE_OPERATION_EXAMPLE\":\n UpdateOperationExampleInputSchema().parse(action.input);\n OperationExampleReducer.updateOperationExampleOperation(state.global, action);\n break;\n case \"DELETE_OPERATION_EXAMPLE\":\n DeleteOperationExampleInputSchema().parse(action.input);\n OperationExampleReducer.deleteOperationExampleOperation(state.global, action);\n break;\n case \"REORDER_OPERATION_EXAMPLES\":\n ReorderOperationExamplesInputSchema().parse(action.input);\n OperationExampleReducer.reorderOperationExamplesOperation(state.global, action);\n break;\n case \"ADD_OPERATION\":\n AddOperationInputSchema().parse(action.input);\n OperationReducer.addOperationOperation(state.global, action);\n break;\n case \"SET_OPERATION_NAME\":\n SetOperationNameInputSchema().parse(action.input);\n OperationReducer.setOperationNameOperation(state.global, action);\n break;\n case \"SET_OPERATION_SCOPE\":\n SetOperationScopeInputSchema().parse(action.input);\n OperationReducer.setOperationScopeOperation(state.global, action);\n break;\n case \"SET_OPERATION_SCHEMA\":\n SetOperationSchemaInputSchema().parse(action.input);\n OperationReducer.setOperationSchemaOperation(state.global, action);\n break;\n case \"SET_OPERATION_DESCRIPTION\":\n SetOperationDescriptionInputSchema().parse(action.input);\n OperationReducer.setOperationDescriptionOperation(state.global, action);\n break;\n case \"SET_OPERATION_TEMPLATE\":\n SetOperationTemplateInputSchema().parse(action.input);\n OperationReducer.setOperationTemplateOperation(state.global, action);\n break;\n case \"SET_OPERATION_REDUCER\":\n SetOperationReducerInputSchema().parse(action.input);\n OperationReducer.setOperationReducerOperation(state.global, action);\n break;\n case \"MOVE_OPERATION\":\n MoveOperationInputSchema().parse(action.input);\n OperationReducer.moveOperationOperation(state.global, action);\n break;\n case \"DELETE_OPERATION\":\n DeleteOperationInputSchema().parse(action.input);\n OperationReducer.deleteOperationOperation(state.global, action);\n break;\n case \"REORDER_MODULE_OPERATIONS\":\n ReorderModuleOperationsInputSchema().parse(action.input);\n OperationReducer.reorderModuleOperationsOperation(state.global, action);\n break;\n case \"SET_STATE_SCHEMA\":\n SetStateSchemaInputSchema().parse(action.input);\n StateReducer.setStateSchemaOperation(state.global, action);\n break;\n case \"SET_INITIAL_STATE\":\n SetInitialStateInputSchema().parse(action.input);\n StateReducer.setInitialStateOperation(state.global, action);\n break;\n case \"ADD_STATE_EXAMPLE\":\n AddStateExampleInputSchema().parse(action.input);\n StateReducer.addStateExampleOperation(state.global, action);\n break;\n case \"UPDATE_STATE_EXAMPLE\":\n UpdateStateExampleInputSchema().parse(action.input);\n StateReducer.updateStateExampleOperation(state.global, action);\n break;\n case \"DELETE_STATE_EXAMPLE\":\n DeleteStateExampleInputSchema().parse(action.input);\n StateReducer.deleteStateExampleOperation(state.global, action);\n break;\n case \"REORDER_STATE_EXAMPLES\":\n ReorderStateExamplesInputSchema().parse(action.input);\n StateReducer.reorderStateExamplesOperation(state.global, action);\n break;\n default:\n return state;\n }\n};\nexport const reducer = createReducer(stateReducer);\n", "import { baseCreateDocument, baseCreateExtendedState, } from \"#document/utils/base.js\";\nimport { baseLoadFromFile, baseLoadFromInput, baseSaveToFile, baseSaveToFileHandle, } from \"#document/utils/file.js\";\nimport { documentModelState, documentType, fileExtension, initialLocalState, } from \"./constants.js\";\nimport { reducer } from \"./reducer.js\";\nexport { fileExtension } from \"./constants.js\";\nexport const createState = (state) => {\n return {\n global: { ...documentModelState, ...state?.global },\n local: { ...initialLocalState, ...state?.local },\n };\n};\nexport const createExtendedState = (extendedState) => {\n return baseCreateExtendedState({ ...extendedState, documentType }, createState);\n};\nexport const createDocument = (state) => {\n return baseCreateDocument(createExtendedState(state), createState);\n};\nexport const saveToFile = (document, path, name) => {\n return baseSaveToFile(document, path, fileExtension, name);\n};\nexport const saveToFileHandle = (document, input) => {\n return baseSaveToFileHandle(document, input);\n};\nexport const loadFromFile = (path) => {\n return baseLoadFromFile(path, reducer);\n};\nexport const loadFromInput = (input) => {\n return baseLoadFromInput(input, reducer);\n};\n", "import { fetchFile, getFile, hash, readFile, writeFile } from \"#utils/env\";\nimport JSZip from \"jszip\";\nimport mime from \"mime/lite\";\nimport { replayDocument } from \"./base.js\";\nimport { filterDocumentOperationsResultingState, garbageCollectDocumentOperations, } from \"./document-helpers.js\";\nimport { validateOperations } from \"./validation.js\";\nexport function createZip(document) {\n // create zip file\n const zip = new JSZip();\n const { name, revision, documentType, created, lastModified } = document;\n const header = {\n name,\n revision,\n documentType,\n created,\n lastModified,\n };\n zip.file(\"header.json\", JSON.stringify(header, null, 2));\n zip.file(\"state.json\", JSON.stringify(document.initialState || {}, null, 2));\n zip.file(\"current-state.json\", JSON.stringify(document.state || {}, null, 2));\n zip.file(\"operations.json\", JSON.stringify(filterDocumentOperationsResultingState(document.operations), null, 2));\n if (document.attachments) {\n const attachments = Object.keys(document.attachments);\n attachments.forEach((key) => {\n const { data, ...attributes } = document.attachments?.[key] ?? {};\n if (data) {\n zip.file(key, data, {\n base64: true,\n createFolders: true,\n comment: JSON.stringify(attributes),\n });\n }\n });\n }\n return zip;\n}\n/**\n * Saves a document to a ZIP file.\n *\n * @remarks\n * This function creates a ZIP file containing the document's state, operations,\n * and file attachments. The file is saved to the specified path.\n *\n * @param document - The document to save to the file.\n * @param path - The path to save the file to.\n * @param extension - The extension to use for the file.\n * @returns A promise that resolves to the path of the saved file.\n */\nexport async function baseSaveToFile(document, path, extension, name) {\n // create zip file\n const zip = createZip(document);\n const file = await zip.generateAsync({\n type: \"uint8array\",\n streamFiles: true,\n });\n const fileName = name ?? document.name;\n const fileExtension = `.${extension}.zip`;\n return writeFile(path, fileName.endsWith(fileExtension) ? fileName : `${fileName}${fileExtension}`, file);\n}\nexport async function baseSaveToFileHandle(document, input) {\n const zip = createZip(document);\n const blob = await zip.generateAsync({ type: \"blob\" });\n const writable = await input.createWritable();\n await writable.write(blob);\n await writable.close();\n}\n/**\n * Loads a document from a ZIP file.\n *\n * @remarks\n * This function reads a ZIP file and returns the document state after\n * applying all the operations. The reducer is used to apply the operations.\n *\n * @typeParam S - The type of the state object.\n * @typeParam A - The type of the actions that can be applied to the state object.\n *\n * @param path - The path to the ZIP file.\n * @param reducer - The reducer to apply the operations to the state object.\n * @returns A promise that resolves to the document state after applying all the operations.\n * @throws An error if the initial state or the operations history is not found in the ZIP file.\n */\nexport async function baseLoadFromFile(path, reducer, options) {\n const file = readFile(path);\n return baseLoadFromInput(file, reducer, options);\n}\nexport async function baseLoadFromInput(input, reducer, options) {\n const zip = new JSZip();\n await zip.loadAsync(input);\n return loadFromZip(zip, reducer, options);\n}\nasync function loadFromZip(zip, reducer, options) {\n const initialStateZip = zip.file(\"state.json\");\n if (!initialStateZip) {\n throw new Error(\"Initial state not found\");\n }\n const initialStateStr = await initialStateZip.async(\"string\");\n const initialState = JSON.parse(initialStateStr);\n const headerZip = zip.file(\"header.json\");\n let header = undefined;\n if (headerZip) {\n header = JSON.parse(await headerZip.async(\"string\"));\n }\n const operationsZip = zip.file(\"operations.json\");\n if (!operationsZip) {\n throw new Error(\"Operations history not found\");\n }\n const operations = JSON.parse(await operationsZip.async(\"string\"));\n const clearedOperations = garbageCollectDocumentOperations(operations);\n const operationsError = validateOperations(clearedOperations);\n if (operationsError.length) {\n const errorMessages = operationsError.map((err) => err.message);\n throw new Error(errorMessages.join(\"\\n\"));\n }\n let result = replayDocument(initialState, clearedOperations, reducer, undefined, header, {}, options);\n if (header) {\n result = {\n ...result,\n ...header,\n };\n }\n return result;\n}\nfunction getFileAttributes(file) {\n const extension = file.replace(/^.*\\./, \"\") || undefined;\n const fileName = file.replace(/^.*[/\\\\]/, \"\") || undefined;\n return { extension, fileName };\n}\n/**\n * Fetches an attachment from a URL and returns its base64-encoded data and MIME type.\n * @param url - The URL of the attachment to fetch.\n * @returns A Promise that resolves to an object containing the base64-encoded data and MIME type of the attachment.\n */\nexport async function getRemoteFile(url) {\n const { buffer, mimeType = \"application/octet-stream\" } = await fetchFile(url);\n const attributes = getFileAttributes(url);\n const data = buffer.toString(\"base64\");\n return {\n data,\n hash: hash(data),\n mimeType,\n ...attributes,\n };\n}\n/**\n * Reads an attachment from a file and returns its base64-encoded data and MIME type.\n * @param path - The path of the attachment file to read.\n * @returns A Promise that resolves to an object containing the base64-encoded data and MIME type of the attachment.\n */\nexport async function getLocalFile(path) {\n const buffer = await getFile(path);\n const mimeType = mime.getType(path) || \"application/octet-stream\";\n const attributes = getFileAttributes(path);\n const data = buffer.toString(\"base64\");\n return { data, hash: hash(data), mimeType, ...attributes };\n}\n", "const types = {\n 'application/andrew-inset': ['ez'],\n 'application/appinstaller': ['appinstaller'],\n 'application/applixware': ['aw'],\n 'application/appx': ['appx'],\n 'application/appxbundle': ['appxbundle'],\n 'application/atom+xml': ['atom'],\n 'application/atomcat+xml': ['atomcat'],\n 'application/atomdeleted+xml': ['atomdeleted'],\n 'application/atomsvc+xml': ['atomsvc'],\n 'application/atsc-dwd+xml': ['dwd'],\n 'application/atsc-held+xml': ['held'],\n 'application/atsc-rsat+xml': ['rsat'],\n 'application/automationml-aml+xml': ['aml'],\n 'application/automationml-amlx+zip': ['amlx'],\n 'application/bdoc': ['bdoc'],\n 'application/calendar+xml': ['xcs'],\n 'application/ccxml+xml': ['ccxml'],\n 'application/cdfx+xml': ['cdfx'],\n 'application/cdmi-capability': ['cdmia'],\n 'application/cdmi-container': ['cdmic'],\n 'application/cdmi-domain': ['cdmid'],\n 'application/cdmi-object': ['cdmio'],\n 'application/cdmi-queue': ['cdmiq'],\n 'application/cpl+xml': ['cpl'],\n 'application/cu-seeme': ['cu'],\n 'application/cwl': ['cwl'],\n 'application/dash+xml': ['mpd'],\n 'application/dash-patch+xml': ['mpp'],\n 'application/davmount+xml': ['davmount'],\n 'application/docbook+xml': ['dbk'],\n 'application/dssc+der': ['dssc'],\n 'application/dssc+xml': ['xdssc'],\n 'application/ecmascript': ['ecma'],\n 'application/emma+xml': ['emma'],\n 'application/emotionml+xml': ['emotionml'],\n 'application/epub+zip': ['epub'],\n 'application/exi': ['exi'],\n 'application/express': ['exp'],\n 'application/fdf': ['fdf'],\n 'application/fdt+xml': ['fdt'],\n 'application/font-tdpfr': ['pfr'],\n 'application/geo+json': ['geojson'],\n 'application/gml+xml': ['gml'],\n 'application/gpx+xml': ['gpx'],\n 'application/gxf': ['gxf'],\n 'application/gzip': ['gz'],\n 'application/hjson': ['hjson'],\n 'application/hyperstudio': ['stk'],\n 'application/inkml+xml': ['ink', 'inkml'],\n 'application/ipfix': ['ipfix'],\n 'application/its+xml': ['its'],\n 'application/java-archive': ['jar', 'war', 'ear'],\n 'application/java-serialized-object': ['ser'],\n 'application/java-vm': ['class'],\n 'application/javascript': ['*js'],\n 'application/json': ['json', 'map'],\n 'application/json5': ['json5'],\n 'application/jsonml+json': ['jsonml'],\n 'application/ld+json': ['jsonld'],\n 'application/lgr+xml': ['lgr'],\n 'application/lost+xml': ['lostxml'],\n 'application/mac-binhex40': ['hqx'],\n 'application/mac-compactpro': ['cpt'],\n 'application/mads+xml': ['mads'],\n 'application/manifest+json': ['webmanifest'],\n 'application/marc': ['mrc'],\n 'application/marcxml+xml': ['mrcx'],\n 'application/mathematica': ['ma', 'nb', 'mb'],\n 'application/mathml+xml': ['mathml'],\n 'application/mbox': ['mbox'],\n 'application/media-policy-dataset+xml': ['mpf'],\n 'application/mediaservercontrol+xml': ['mscml'],\n 'application/metalink+xml': ['metalink'],\n 'application/metalink4+xml': ['meta4'],\n 'application/mets+xml': ['mets'],\n 'application/mmt-aei+xml': ['maei'],\n 'application/mmt-usd+xml': ['musd'],\n 'application/mods+xml': ['mods'],\n 'application/mp21': ['m21', 'mp21'],\n 'application/mp4': ['*mp4', '*mpg4', 'mp4s', 'm4p'],\n 'application/msix': ['msix'],\n 'application/msixbundle': ['msixbundle'],\n 'application/msword': ['doc', 'dot'],\n 'application/mxf': ['mxf'],\n 'application/n-quads': ['nq'],\n 'application/n-triples': ['nt'],\n 'application/node': ['cjs'],\n 'application/octet-stream': [\n 'bin',\n 'dms',\n 'lrf',\n 'mar',\n 'so',\n 'dist',\n 'distz',\n 'pkg',\n 'bpk',\n 'dump',\n 'elc',\n 'deploy',\n 'exe',\n 'dll',\n 'deb',\n 'dmg',\n 'iso',\n 'img',\n 'msi',\n 'msp',\n 'msm',\n 'buffer',\n ],\n 'application/oda': ['oda'],\n 'application/oebps-package+xml': ['opf'],\n 'application/ogg': ['ogx'],\n 'application/omdoc+xml': ['omdoc'],\n 'application/onenote': ['onetoc', 'onetoc2', 'onetmp', 'onepkg'],\n 'application/oxps': ['oxps'],\n 'application/p2p-overlay+xml': ['relo'],\n 'application/patch-ops-error+xml': ['xer'],\n 'application/pdf': ['pdf'],\n 'application/pgp-encrypted': ['pgp'],\n 'application/pgp-keys': ['asc'],\n 'application/pgp-signature': ['sig', '*asc'],\n 'application/pics-rules': ['prf'],\n 'application/pkcs10': ['p10'],\n 'application/pkcs7-mime': ['p7m', 'p7c'],\n 'application/pkcs7-signature': ['p7s'],\n 'application/pkcs8': ['p8'],\n 'application/pkix-attr-cert': ['ac'],\n 'application/pkix-cert': ['cer'],\n 'application/pkix-crl': ['crl'],\n 'application/pkix-pkipath': ['pkipath'],\n 'application/pkixcmp': ['pki'],\n 'application/pls+xml': ['pls'],\n 'application/postscript': ['ai', 'eps', 'ps'],\n 'application/provenance+xml': ['provx'],\n 'application/pskc+xml': ['pskcxml'],\n 'application/raml+yaml': ['raml'],\n 'application/rdf+xml': ['rdf', 'owl'],\n 'application/reginfo+xml': ['rif'],\n 'application/relax-ng-compact-syntax': ['rnc'],\n 'application/resource-lists+xml': ['rl'],\n 'application/resource-lists-diff+xml': ['rld'],\n 'application/rls-services+xml': ['rs'],\n 'application/route-apd+xml': ['rapd'],\n 'application/route-s-tsid+xml': ['sls'],\n 'application/route-usd+xml': ['rusd'],\n 'application/rpki-ghostbusters': ['gbr'],\n 'application/rpki-manifest': ['mft'],\n 'application/rpki-roa': ['roa'],\n 'application/rsd+xml': ['rsd'],\n 'application/rss+xml': ['rss'],\n 'application/rtf': ['rtf'],\n 'application/sbml+xml': ['sbml'],\n 'application/scvp-cv-request': ['scq'],\n 'application/scvp-cv-response': ['scs'],\n 'application/scvp-vp-request': ['spq'],\n 'application/scvp-vp-response': ['spp'],\n 'application/sdp': ['sdp'],\n 'application/senml+xml': ['senmlx'],\n 'application/sensml+xml': ['sensmlx'],\n 'application/set-payment-initiation': ['setpay'],\n 'application/set-registration-initiation': ['setreg'],\n 'application/shf+xml': ['shf'],\n 'application/sieve': ['siv', 'sieve'],\n 'application/smil+xml': ['smi', 'smil'],\n 'application/sparql-query': ['rq'],\n 'application/sparql-results+xml': ['srx'],\n 'application/sql': ['sql'],\n 'application/srgs': ['gram'],\n 'application/srgs+xml': ['grxml'],\n 'application/sru+xml': ['sru'],\n 'application/ssdl+xml': ['ssdl'],\n 'application/ssml+xml': ['ssml'],\n 'application/swid+xml': ['swidtag'],\n 'application/tei+xml': ['tei', 'teicorpus'],\n 'application/thraud+xml': ['tfi'],\n 'application/timestamped-data': ['tsd'],\n 'application/toml': ['toml'],\n 'application/trig': ['trig'],\n 'application/ttml+xml': ['ttml'],\n 'application/ubjson': ['ubj'],\n 'application/urc-ressheet+xml': ['rsheet'],\n 'application/urc-targetdesc+xml': ['td'],\n 'application/voicexml+xml': ['vxml'],\n 'application/wasm': ['wasm'],\n 'application/watcherinfo+xml': ['wif'],\n 'application/widget': ['wgt'],\n 'application/winhlp': ['hlp'],\n 'application/wsdl+xml': ['wsdl'],\n 'application/wspolicy+xml': ['wspolicy'],\n 'application/xaml+xml': ['xaml'],\n 'application/xcap-att+xml': ['xav'],\n 'application/xcap-caps+xml': ['xca'],\n 'application/xcap-diff+xml': ['xdf'],\n 'application/xcap-el+xml': ['xel'],\n 'application/xcap-ns+xml': ['xns'],\n 'application/xenc+xml': ['xenc'],\n 'application/xfdf': ['xfdf'],\n 'application/xhtml+xml': ['xhtml', 'xht'],\n 'application/xliff+xml': ['xlf'],\n 'application/xml': ['xml', 'xsl', 'xsd', 'rng'],\n 'application/xml-dtd': ['dtd'],\n 'application/xop+xml': ['xop'],\n 'application/xproc+xml': ['xpl'],\n 'application/xslt+xml': ['*xsl', 'xslt'],\n 'application/xspf+xml': ['xspf'],\n 'application/xv+xml': ['mxml', 'xhvml', 'xvml', 'xvm'],\n 'application/yang': ['yang'],\n 'application/yin+xml': ['yin'],\n 'application/zip': ['zip'],\n 'audio/3gpp': ['*3gpp'],\n 'audio/aac': ['adts', 'aac'],\n 'audio/adpcm': ['adp'],\n 'audio/amr': ['amr'],\n 'audio/basic': ['au', 'snd'],\n 'audio/midi': ['mid', 'midi', 'kar', 'rmi'],\n 'audio/mobile-xmf': ['mxmf'],\n 'audio/mp3': ['*mp3'],\n 'audio/mp4': ['m4a', 'mp4a'],\n 'audio/mpeg': ['mpga', 'mp2', 'mp2a', 'mp3', 'm2a', 'm3a'],\n 'audio/ogg': ['oga', 'ogg', 'spx', 'opus'],\n 'audio/s3m': ['s3m'],\n 'audio/silk': ['sil'],\n 'audio/wav': ['wav'],\n 'audio/wave': ['*wav'],\n 'audio/webm': ['weba'],\n 'audio/xm': ['xm'],\n 'font/collection': ['ttc'],\n 'font/otf': ['otf'],\n 'font/ttf': ['ttf'],\n 'font/woff': ['woff'],\n 'font/woff2': ['woff2'],\n 'image/aces': ['exr'],\n 'image/apng': ['apng'],\n 'image/avci': ['avci'],\n 'image/avcs': ['avcs'],\n 'image/avif': ['avif'],\n 'image/bmp': ['bmp', 'dib'],\n 'image/cgm': ['cgm'],\n 'image/dicom-rle': ['drle'],\n 'image/dpx': ['dpx'],\n 'image/emf': ['emf'],\n 'image/fits': ['fits'],\n 'image/g3fax': ['g3'],\n 'image/gif': ['gif'],\n 'image/heic': ['heic'],\n 'image/heic-sequence': ['heics'],\n 'image/heif': ['heif'],\n 'image/heif-sequence': ['heifs'],\n 'image/hej2k': ['hej2'],\n 'image/hsj2': ['hsj2'],\n 'image/ief': ['ief'],\n 'image/jls': ['jls'],\n 'image/jp2': ['jp2', 'jpg2'],\n 'image/jpeg': ['jpeg', 'jpg', 'jpe'],\n 'image/jph': ['jph'],\n 'image/jphc': ['jhc'],\n 'image/jpm': ['jpm', 'jpgm'],\n 'image/jpx': ['jpx', 'jpf'],\n 'image/jxl': ['jxl'],\n 'image/jxr': ['jxr'],\n 'image/jxra': ['jxra'],\n 'image/jxrs': ['jxrs'],\n 'image/jxs': ['jxs'],\n 'image/jxsc': ['jxsc'],\n 'image/jxsi': ['jxsi'],\n 'image/jxss': ['jxss'],\n 'image/ktx': ['ktx'],\n 'image/ktx2': ['ktx2'],\n 'image/png': ['png'],\n 'image/sgi': ['sgi'],\n 'image/svg+xml': ['svg', 'svgz'],\n 'image/t38': ['t38'],\n 'image/tiff': ['tif', 'tiff'],\n 'image/tiff-fx': ['tfx'],\n 'image/webp': ['webp'],\n 'image/wmf': ['wmf'],\n 'message/disposition-notification': ['disposition-notification'],\n 'message/global': ['u8msg'],\n 'message/global-delivery-status': ['u8dsn'],\n 'message/global-disposition-notification': ['u8mdn'],\n 'message/global-headers': ['u8hdr'],\n 'message/rfc822': ['eml', 'mime'],\n 'model/3mf': ['3mf'],\n 'model/gltf+json': ['gltf'],\n 'model/gltf-binary': ['glb'],\n 'model/iges': ['igs', 'iges'],\n 'model/jt': ['jt'],\n 'model/mesh': ['msh', 'mesh', 'silo'],\n 'model/mtl': ['mtl'],\n 'model/obj': ['obj'],\n 'model/prc': ['prc'],\n 'model/step+xml': ['stpx'],\n 'model/step+zip': ['stpz'],\n 'model/step-xml+zip': ['stpxz'],\n 'model/stl': ['stl'],\n 'model/u3d': ['u3d'],\n 'model/vrml': ['wrl', 'vrml'],\n 'model/x3d+binary': ['*x3db', 'x3dbz'],\n 'model/x3d+fastinfoset': ['x3db'],\n 'model/x3d+vrml': ['*x3dv', 'x3dvz'],\n 'model/x3d+xml': ['x3d', 'x3dz'],\n 'model/x3d-vrml': ['x3dv'],\n 'text/cache-manifest': ['appcache', 'manifest'],\n 'text/calendar': ['ics', 'ifb'],\n 'text/coffeescript': ['coffee', 'litcoffee'],\n 'text/css': ['css'],\n 'text/csv': ['csv'],\n 'text/html': ['html', 'htm', 'shtml'],\n 'text/jade': ['jade'],\n 'text/javascript': ['js', 'mjs'],\n 'text/jsx': ['jsx'],\n 'text/less': ['less'],\n 'text/markdown': ['md', 'markdown'],\n 'text/mathml': ['mml'],\n 'text/mdx': ['mdx'],\n 'text/n3': ['n3'],\n 'text/plain': ['txt', 'text', 'conf', 'def', 'list', 'log', 'in', 'ini'],\n 'text/richtext': ['rtx'],\n 'text/rtf': ['*rtf'],\n 'text/sgml': ['sgml', 'sgm'],\n 'text/shex': ['shex'],\n 'text/slim': ['slim', 'slm'],\n 'text/spdx': ['spdx'],\n 'text/stylus': ['stylus', 'styl'],\n 'text/tab-separated-values': ['tsv'],\n 'text/troff': ['t', 'tr', 'roff', 'man', 'me', 'ms'],\n 'text/turtle': ['ttl'],\n 'text/uri-list': ['uri', 'uris', 'urls'],\n 'text/vcard': ['vcard'],\n 'text/vtt': ['vtt'],\n 'text/wgsl': ['wgsl'],\n 'text/xml': ['*xml'],\n 'text/yaml': ['yaml', 'yml'],\n 'video/3gpp': ['3gp', '3gpp'],\n 'video/3gpp2': ['3g2'],\n 'video/h261': ['h261'],\n 'video/h263': ['h263'],\n 'video/h264': ['h264'],\n 'video/iso.segment': ['m4s'],\n 'video/jpeg': ['jpgv'],\n 'video/jpm': ['*jpm', '*jpgm'],\n 'video/mj2': ['mj2', 'mjp2'],\n 'video/mp2t': ['ts', 'm2t', 'm2ts', 'mts'],\n 'video/mp4': ['mp4', 'mp4v', 'mpg4'],\n 'video/mpeg': ['mpeg', 'mpg', 'mpe', 'm1v', 'm2v'],\n 'video/ogg': ['ogv'],\n 'video/quicktime': ['qt', 'mov'],\n 'video/webm': ['webm'],\n};\nObject.freeze(types);\nexport default types;\n", "var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Mime_extensionToType, _Mime_typeToExtension, _Mime_typeToExtensions;\nclass Mime {\n constructor(...args) {\n _Mime_extensionToType.set(this, new Map());\n _Mime_typeToExtension.set(this, new Map());\n _Mime_typeToExtensions.set(this, new Map());\n for (const arg of args) {\n this.define(arg);\n }\n }\n define(typeMap, force = false) {\n for (let [type, extensions] of Object.entries(typeMap)) {\n type = type.toLowerCase();\n extensions = extensions.map((ext) => ext.toLowerCase());\n if (!__classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").has(type)) {\n __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").set(type, new Set());\n }\n const allExtensions = __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").get(type);\n let first = true;\n for (let extension of extensions) {\n const starred = extension.startsWith('*');\n extension = starred ? extension.slice(1) : extension;\n allExtensions?.add(extension);\n if (first) {\n __classPrivateFieldGet(this, _Mime_typeToExtension, \"f\").set(type, extension);\n }\n first = false;\n if (starred)\n continue;\n const currentType = __classPrivateFieldGet(this, _Mime_extensionToType, \"f\").get(extension);\n if (currentType && currentType != type && !force) {\n throw new Error(`\"${type} -> ${extension}\" conflicts with \"${currentType} -> ${extension}\". Pass \\`force=true\\` to override this definition.`);\n }\n __classPrivateFieldGet(this, _Mime_extensionToType, \"f\").set(extension, type);\n }\n }\n return this;\n }\n getType(path) {\n if (typeof path !== 'string')\n return null;\n const last = path.replace(/^.*[/\\\\]/, '').toLowerCase();\n const ext = last.replace(/^.*\\./, '').toLowerCase();\n const hasPath = last.length < path.length;\n const hasDot = ext.length < last.length - 1;\n if (!hasDot && hasPath)\n return null;\n return __classPrivateFieldGet(this, _Mime_extensionToType, \"f\").get(ext) ?? null;\n }\n getExtension(type) {\n if (typeof type !== 'string')\n return null;\n type = type?.split?.(';')[0];\n return ((type && __classPrivateFieldGet(this, _Mime_typeToExtension, \"f\").get(type.trim().toLowerCase())) ?? null);\n }\n getAllExtensions(type) {\n if (typeof type !== 'string')\n return null;\n return __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").get(type.toLowerCase()) ?? null;\n }\n _freeze() {\n this.define = () => {\n throw new Error('define() not allowed for built-in Mime objects. See https://github.com/broofa/mime/blob/main/README.md#custom-mime-instances');\n };\n Object.freeze(this);\n for (const extensions of __classPrivateFieldGet(this, _Mime_typeToExtensions, \"f\").values()) {\n Object.freeze(extensions);\n }\n return this;\n }\n _getTestState() {\n return {\n types: __classPrivateFieldGet(this, _Mime_extensionToType, \"f\"),\n extensions: __classPrivateFieldGet(this, _Mime_typeToExtension, \"f\"),\n };\n }\n}\n_Mime_extensionToType = new WeakMap(), _Mime_typeToExtension = new WeakMap(), _Mime_typeToExtensions = new WeakMap();\nexport default Mime;\n", "import standardTypes from '../types/standard.js';\nimport Mime from './Mime.js';\nexport { default as Mime } from './Mime.js';\nexport default new Mime(standardTypes)._freeze();\n", "export function validateOperations(operations) {\n const errors = [];\n const scopes = Object.keys(operations);\n for (const scope of scopes) {\n const ops = operations[scope].sort((a, b) => a.index - b.index);\n let opIndex = -1;\n for (let i = 0; i < ops.length; i++) {\n opIndex = opIndex + 1 + ops[i].skip;\n if (ops[i].index !== opIndex) {\n errors.push({\n message: `Invalid operation index ${ops[i].index} at position ${i}`,\n details: {\n position: i,\n operation: ops[i],\n scope: ops[i].scope,\n },\n });\n }\n }\n }\n return errors;\n}\n", "export const documentModelState = {\n id: \"\",\n name: \"\",\n extension: \"\",\n description: \"\",\n author: {\n name: \"\",\n website: \"\",\n },\n specifications: [\n {\n version: 1,\n changeLog: [],\n state: {\n global: {\n schema: \"\",\n initialValue: \"\",\n examples: [],\n },\n local: {\n schema: \"\",\n initialValue: \"\",\n examples: [],\n },\n },\n modules: [],\n },\n ],\n};\nexport const initialLocalState = {};\nexport const fileExtension = \"phdm\";\nexport const documentType = \"powerhouse/document-model\";\nexport const documentModelName = \"DocumentModel\";\n", "import * as customUtils from \"./custom/utils.js\";\nimport * as actions from \"./gen/actions.js\";\nimport * as creators from \"./gen/creators.js\";\nimport { documentModelState } from \"./gen/document-model.js\";\nimport { reducer } from \"./gen/reducer.js\";\nimport * as documentModelUtils from \"./gen/utils.js\";\nexport const documentModelDocumentModelModule = {\n reducer,\n documentModel: documentModelState,\n actions: { ...creators, ...actions },\n utils: { ...documentModelUtils, ...customUtils },\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["configure", "value", "tmp", "key", "res", "join", "stringify", "e", "t", "r", "c", "n", "i", "s", "z", "a", "o", "h", "u", "l", "f", "d", "p", "W", "K", "m", "hash", "cjsModule", "cjsModule", "reducer", "util", "objectUtil", "errorUtil", "errorMap", "ctx", "result", "issues", "types", "elements", "processed", "r", "_a", "_b", "ZodFirstPartyTypeKind", "index", "set", "generatePatches", "current", "value", "proxyDraft", "ensureShallowCopy", "create", "base", "draft", "types", "mark", "result", "IntegrityIssueType", "IntegrityIssueSubType", "split", "hash", "stateReducer", "reducer", "createState", "stateReducer", "skipHeaderOperations", "reducer", "document", "reducer", "reducer", "reducer", "reducer", "exampleSorter", "reducer", "reducer", "isDefinedNonNullAny", "definedNonNullAnySchema", "OperationScopeSchema", "OperationScopeSchema", "OperationScopeSchema", "reducer", "utils_exports", "__classPrivateFieldGet", "JSZip", "documentType", "fileExtension", "reducer", "documentModelState", "documentModelState", "reducer", "reducer", "utils_exports"]
|
|
7
|
-
}
|