@metapages/metapage 1.0.21 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +2409 -1362
- package/dist/index.js.map +1 -1
- package/dist/metapage/Metaframe.d.ts +14 -0
- package/dist/metapage/Metaframe.d.ts.map +1 -1
- package/dist/metapage/Metapage.d.ts +3 -3
- package/dist/metapage/Metapage.d.ts.map +1 -1
- package/dist/metapage/MetapageIFrameRpcClient.d.ts.map +1 -1
- package/package.json +4 -2
- package/src/declarations.d.ts +1 -0
- package/src/metapage/Metaframe.ts +112 -15
- package/src/metapage/Metapage.ts +38 -19
- package/src/metapage/MetapageIFrameRpcClient.ts +0 -5
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/metapage/versions.ts","../src/metapage/Constants.ts","../node_modules/compare-versions/lib/esm/utils.js","../node_modules/compare-versions/lib/esm/compareVersions.js","../node_modules/fetch-retry/dist/fetch-retry.umd.js","../node_modules/mutative/dist/mutative.esm.mjs","../src/metapage/conversions-metapage.ts","../src/metapage/conversions-metaframe.ts","../node_modules/base64-arraybuffer/dist/base64-arraybuffer.es5.js","../src/metapage/data.ts","../src/metapage/events.ts","../src/metapage/jsonrpc.ts","../src/metapage/jsonrpc2.ts","../node_modules/eventemitter3/index.js","../node_modules/fast-json-stable-stringify/index.js","../src/metapage/Shared.ts","../src/metapage/MetapageTools.ts","../src/metapage/Metaframe.ts","../src/metapage/MetapageIFrameRpcClient.ts","../src/metapage/Metapage.ts","../src/metapage/util.ts"],"sourcesContent":[null,null,"export const semver = /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\nexport const validateAndParse = (version) => {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = version.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${version}' received)`);\n }\n match.shift();\n return match;\n};\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\nconst forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b))\n return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp)\n return 1;\n if (ap < bp)\n return -1;\n return 0;\n};\nexport const compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || '0', b[i] || '0');\n if (r !== 0)\n return r;\n }\n return 0;\n};\n//# sourceMappingURL=utils.js.map","import { compareSegments, validateAndParse } from './utils.js';\n/**\n * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.\n * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.\n * @param v1 - First version to compare\n * @param v2 - Second version to compare\n * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters).\n */\nexport const compareVersions = (v1, v2) => {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0)\n return r;\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n }\n else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n return 0;\n};\n//# sourceMappingURL=compareVersions.js.map","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.fetchRetry = factory());\n})(this, (function () { 'use strict';\n\n var fetchRetry = function (fetch, defaults) {\n defaults = defaults || {};\n if (typeof fetch !== 'function') {\n throw new ArgumentError('fetch must be a function');\n }\n\n if (typeof defaults !== 'object') {\n throw new ArgumentError('defaults must be an object');\n }\n\n if (defaults.retries !== undefined && !isPositiveInteger(defaults.retries)) {\n throw new ArgumentError('retries must be a positive integer');\n }\n\n if (defaults.retryDelay !== undefined && !isPositiveInteger(defaults.retryDelay) && typeof defaults.retryDelay !== 'function') {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n\n if (defaults.retryOn !== undefined && !Array.isArray(defaults.retryOn) && typeof defaults.retryOn !== 'function') {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n\n var baseDefaults = {\n retries: 3,\n retryDelay: 1000,\n retryOn: [],\n };\n\n defaults = Object.assign(baseDefaults, defaults);\n\n return function fetchRetry(input, init) {\n var retries = defaults.retries;\n var retryDelay = defaults.retryDelay;\n var retryOn = defaults.retryOn;\n\n if (init && init.retries !== undefined) {\n if (isPositiveInteger(init.retries)) {\n retries = init.retries;\n } else {\n throw new ArgumentError('retries must be a positive integer');\n }\n }\n\n if (init && init.retryDelay !== undefined) {\n if (isPositiveInteger(init.retryDelay) || (typeof init.retryDelay === 'function')) {\n retryDelay = init.retryDelay;\n } else {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n }\n\n if (init && init.retryOn) {\n if (Array.isArray(init.retryOn) || (typeof init.retryOn === 'function')) {\n retryOn = init.retryOn;\n } else {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n }\n\n // eslint-disable-next-line no-undef\n return new Promise(function (resolve, reject) {\n var wrappedFetch = function (attempt) {\n // As of node 18, this is no longer needed since node comes with native support for fetch:\n /* istanbul ignore next */\n var _input =\n typeof Request !== 'undefined' && input instanceof Request\n ? input.clone()\n : input;\n fetch(_input, init)\n .then(function (response) {\n if (Array.isArray(retryOn) && retryOn.indexOf(response.status) === -1) {\n resolve(response);\n } else if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n return Promise.resolve(retryOn(attempt, null, response))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }).catch(reject);\n } catch (error) {\n reject(error);\n }\n } else {\n if (attempt < retries) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }\n })\n .catch(function (error) {\n if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n Promise.resolve(retryOn(attempt, error, null))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n })\n .catch(function(error) {\n reject(error);\n });\n } catch(error) {\n reject(error);\n }\n } else if (attempt < retries) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n });\n };\n\n function retry(attempt, error, response) {\n var delay = (typeof retryDelay === 'function') ?\n retryDelay(attempt, error, response) : retryDelay;\n setTimeout(function () {\n wrappedFetch(++attempt);\n }, delay);\n }\n\n wrappedFetch(0);\n });\n };\n };\n\n function isPositiveInteger(value) {\n return Number.isInteger(value) && value >= 0;\n }\n\n function ArgumentError(message) {\n this.name = 'ArgumentError';\n this.message = message;\n }\n\n return fetchRetry;\n\n}));\n","const Operation = {\n Remove: 'remove',\n Replace: 'replace',\n Add: 'add',\n};\n\n// Don't use `Symbol()` just for 3rd party access the draft\nconst PROXY_DRAFT = Symbol.for('__MUTATIVE_PROXY_DRAFT__');\nconst RAW_RETURN_SYMBOL = Symbol('__MUTATIVE_RAW_RETURN_SYMBOL__');\nconst iteratorSymbol = Symbol.iterator;\nconst dataTypes = {\n mutable: 'mutable',\n immutable: 'immutable',\n};\n\nconst internal = {};\n\nfunction has(target, key) {\n return target instanceof Map\n ? target.has(key)\n : Object.prototype.hasOwnProperty.call(target, key);\n}\nfunction getDescriptor(target, key) {\n if (key in target) {\n let prototype = Reflect.getPrototypeOf(target);\n while (prototype) {\n const descriptor = Reflect.getOwnPropertyDescriptor(prototype, key);\n if (descriptor)\n return descriptor;\n prototype = Reflect.getPrototypeOf(prototype);\n }\n }\n return;\n}\n\nfunction latest(proxyDraft) {\n var _a;\n return (_a = proxyDraft.copy) !== null && _a !== void 0 ? _a : proxyDraft.original;\n}\n/**\n * Check if the value is a draft\n */\nfunction isDraft(target) {\n return !!getProxyDraft(target);\n}\nfunction getProxyDraft(value) {\n if (typeof value !== 'object')\n return null;\n return value === null || value === void 0 ? void 0 : value[PROXY_DRAFT];\n}\nfunction getValue(value) {\n var _a;\n const proxyDraft = getProxyDraft(value);\n return proxyDraft ? (_a = proxyDraft.copy) !== null && _a !== void 0 ? _a : proxyDraft.original : value;\n}\n/**\n * Check if a value is draftable\n */\nfunction isDraftable(value, options) {\n if (!value || typeof value !== 'object')\n return false;\n let markResult;\n return (Object.getPrototypeOf(value) === Object.prototype ||\n Array.isArray(value) ||\n value instanceof Map ||\n value instanceof Set ||\n (!!(options === null || options === void 0 ? void 0 : options.mark) &&\n ((markResult = options.mark(value, dataTypes)) === dataTypes.immutable ||\n typeof markResult === 'function')));\n}\nfunction getPath(target, path = []) {\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 === null || proxyDraft === void 0 ? void 0 : proxyDraft.original) !== target.original) {\n return null;\n }\n const isSet = target.parent.type === 3 /* 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 (!((isSet && parentCopy.size > key) || has(parentCopy, key)))\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 }\n catch (e) {\n return null;\n }\n return path;\n}\nfunction getType(target) {\n if (Array.isArray(target))\n return 1 /* DraftType.Array */;\n if (target instanceof Map)\n return 2 /* DraftType.Map */;\n if (target instanceof Set)\n return 3 /* DraftType.Set */;\n return 0 /* DraftType.Object */;\n}\nfunction get(target, key) {\n return getType(target) === 2 /* DraftType.Map */ ? target.get(key) : target[key];\n}\nfunction set(target, key, value) {\n const type = getType(target);\n if (type === 2 /* DraftType.Map */) {\n target.set(key, value);\n }\n else {\n target[key] = value;\n }\n}\nfunction peek(target, key) {\n const state = getProxyDraft(target);\n const source = state ? latest(state) : target;\n return source[key];\n}\nfunction isEqual(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n }\n else {\n return x !== x && y !== y;\n }\n}\nfunction revokeProxy(proxyDraft) {\n if (!proxyDraft)\n return;\n while (proxyDraft.finalities.revoke.length > 0) {\n const revoke = proxyDraft.finalities.revoke.pop();\n revoke();\n }\n}\n// handle JSON Pointer path with spec https://www.rfc-editor.org/rfc/rfc6901\nfunction escapePath(path, pathAsArray) {\n return pathAsArray\n ? path\n : ['']\n .concat(path)\n .map((_item) => {\n const item = `${_item}`;\n if (item.indexOf('/') === -1 && item.indexOf('~') === -1)\n return item;\n return item.replace(/~/g, '~0').replace(/\\//g, '~1');\n })\n .join('/');\n}\nfunction unescapePath(path) {\n if (Array.isArray(path))\n return path;\n return path\n .split('/')\n .map((_item) => _item.replace(/~1/g, '/').replace(/~0/g, '~'))\n .slice(1);\n}\nfunction resolvePath(base, path) {\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) === 3 /* 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\nfunction strictCopy(target) {\n const copy = Object.create(Object.getPrototypeOf(target));\n Reflect.ownKeys(target).forEach((key) => {\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}\nconst propIsEnum = Object.prototype.propertyIsEnumerable;\nfunction shallowCopy(original, options) {\n let markResult;\n if (Array.isArray(original)) {\n return Array.prototype.concat.call(original);\n }\n else if (original instanceof Set) {\n return new Set(original.values());\n }\n else if (original instanceof Map) {\n return new Map(original);\n }\n else if ((options === null || options === void 0 ? void 0 : options.mark) &&\n ((markResult = options.mark(original, dataTypes)),\n markResult !== undefined) &&\n markResult !== dataTypes.mutable) {\n if (markResult === dataTypes.immutable) {\n return strictCopy(original);\n }\n else if (typeof markResult === 'function') {\n if ((options.enablePatches || options.enableAutoFreeze)) {\n throw new Error(`You can't use mark and patches or auto freeze together.`);\n }\n return markResult();\n }\n throw new Error(`Unsupported mark result: ${markResult}`);\n }\n else if (typeof original === 'object' &&\n Object.getPrototypeOf(original) === Object.prototype) {\n // For best performance with shallow copies,\n // don't use `Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));` by default.\n const copy = {};\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 }\n else {\n throw new Error(`Please check mark() to ensure that it is a stable marker draftable function.`);\n }\n}\nfunction ensureShallowCopy(target) {\n if (target.copy)\n return;\n target.copy = shallowCopy(target.original, target.options);\n}\nfunction deepClone(target) {\n if (!isDraftable(target))\n return getValue(target);\n if (Array.isArray(target))\n return target.map(deepClone);\n if (target instanceof Map)\n return new Map(Array.from(target.entries()).map(([k, v]) => [k, deepClone(v)]));\n if (target instanceof Set)\n return new Set(Array.from(target).map(deepClone));\n const copy = Object.create(Object.getPrototypeOf(target));\n for (const key in target)\n copy[key] = deepClone(target[key]);\n return copy;\n}\nfunction cloneIfNeeded(target) {\n return isDraft(target) ? deepClone(target) : target;\n}\n\nfunction markChanged(proxyDraft) {\n var _a;\n proxyDraft.assignedMap = (_a = proxyDraft.assignedMap) !== null && _a !== void 0 ? _a : new Map();\n if (!proxyDraft.operated) {\n proxyDraft.operated = true;\n if (proxyDraft.parent) {\n markChanged(proxyDraft.parent);\n }\n }\n}\n\nfunction throwFrozenError() {\n throw new Error('Cannot modify frozen object');\n}\nfunction deepFreeze(target, subKey, updatedValues, stack, keys) {\n {\n updatedValues = updatedValues !== null && updatedValues !== void 0 ? updatedValues : new WeakMap();\n stack = stack !== null && stack !== void 0 ? stack : [];\n keys = keys !== null && keys !== void 0 ? 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(`Forbids circular reference: ~/${keys\n .slice(0, index)\n .map((key, index) => {\n if (typeof key === 'symbol')\n return `[${key.toString()}]`;\n const parent = stack[index];\n if (typeof key === 'object' &&\n (parent instanceof Map || parent instanceof Set))\n return Array.from(parent.keys()).indexOf(key);\n return key;\n })\n .join('/')}`);\n }\n stack.push(value);\n keys.push(subKey);\n }\n else {\n stack.push(value);\n }\n }\n if (Object.isFrozen(target) || isDraft(target)) {\n {\n stack.pop();\n keys.pop();\n }\n return;\n }\n const type = getType(target);\n switch (type) {\n case 2 /* DraftType.Map */:\n for (const [key, value] of target) {\n deepFreeze(key, key, updatedValues, stack, keys);\n deepFreeze(value, key, updatedValues, stack, keys);\n }\n target.set = target.clear = target.delete = throwFrozenError;\n break;\n case 3 /* DraftType.Set */:\n for (const value of target) {\n deepFreeze(value, value, updatedValues, stack, keys);\n }\n target.add = target.clear = target.delete = throwFrozenError;\n break;\n case 1 /* DraftType.Array */:\n Object.freeze(target);\n let index = 0;\n for (const value of target) {\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 deepFreeze(value, name, updatedValues, stack, keys);\n });\n }\n {\n stack.pop();\n keys.pop();\n }\n}\n\nfunction forEach(target, iter) {\n const type = getType(target);\n if (type === 0 /* DraftType.Object */) {\n Reflect.ownKeys(target).forEach((key) => {\n iter(key, target[key], target);\n });\n }\n else if (type === 1 /* DraftType.Array */) {\n let index = 0;\n for (const entry of target) {\n iter(index, entry, target);\n index += 1;\n }\n }\n else {\n target.forEach((entry, index) => iter(index, entry, target));\n }\n}\n\nfunction handleValue(target, handledSet, options) {\n if (isDraft(target) ||\n !isDraftable(target, options) ||\n handledSet.has(target) ||\n Object.isFrozen(target))\n return;\n const isSet = target instanceof Set;\n const setMap = isSet ? new Map() : undefined;\n handledSet.add(target);\n forEach(target, (key, value) => {\n var _a;\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 = ((_a = proxyDraft.assignedMap) === null || _a === void 0 ? void 0 : _a.size) || proxyDraft.operated\n ? proxyDraft.copy\n : proxyDraft.original;\n // final update value\n set(isSet ? setMap : target, key, updatedValue);\n }\n else {\n handleValue(value, handledSet, options);\n }\n });\n if (setMap) {\n const set = target;\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}\nfunction finalizeAssigned(proxyDraft, key) {\n // handle the draftable assigned values, and the value is not a draft\n const copy = proxyDraft.type === 3 /* DraftType.Set */ ? proxyDraft.setMap : proxyDraft.copy;\n if (proxyDraft.finalities.revoke.length > 1 &&\n proxyDraft.assignedMap.get(key) &&\n copy) {\n handleValue(get(copy, key), proxyDraft.finalities.handledSet, proxyDraft.options);\n }\n}\nfunction finalizeSetValue(target) {\n if (target.type === 3 /* DraftType.Set */ && target.copy) {\n target.copy.clear();\n target.setMap.forEach((value) => {\n target.copy.add(getValue(value));\n });\n }\n}\nfunction finalizePatches(target, generatePatches, patches, inversePatches) {\n const shouldFinalize = 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}\nfunction markFinalization(target, key, value, generatePatches) {\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 var _a;\n const copy = target.type === 3 /* 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 (target.options.enableAutoFreeze) {\n target.options.updatedValues =\n (_a = target.options.updatedValues) !== null && _a !== void 0 ? _a : 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 === 3 /* DraftType.Set */ ? target.setMap : target.copy;\n if (isEqual(get(copy, key), value)) {\n finalizeAssigned(target, key);\n }\n });\n }\n}\n\nfunction generateArrayPatches(proxyState, basePath, patches, inversePatches, pathAsArray) {\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 }\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}\nfunction generatePatchesFromAssigned({ original, copy, assignedMap }, basePath, patches, inversePatches, pathAsArray) {\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)\n 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(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}\nfunction generateSetPatches({ original, copy }, basePath, patches, inversePatches, pathAsArray) {\n let index = 0;\n original.forEach((value) => {\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) => {\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}\nfunction generatePatches(proxyState, basePath, patches, inversePatches) {\n const { pathAsArray = true } = proxyState.options.enablePatches;\n switch (proxyState.type) {\n case 0 /* DraftType.Object */:\n case 2 /* DraftType.Map */:\n return generatePatchesFromAssigned(proxyState, basePath, patches, inversePatches, pathAsArray);\n case 1 /* DraftType.Array */:\n return generateArrayPatches(proxyState, basePath, patches, inversePatches, pathAsArray);\n case 3 /* DraftType.Set */:\n return generateSetPatches(proxyState, basePath, patches, inversePatches, pathAsArray);\n }\n}\n\nlet readable = false;\nconst checkReadable = (value, options, ignoreCheckDraftable = false) => {\n if (typeof value === 'object' &&\n value !== null &&\n (!isDraftable(value, options) || ignoreCheckDraftable) &&\n !readable) {\n throw new Error(`Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.`);\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 */\nfunction unsafe(callback) {\n readable = true;\n let result;\n try {\n result = callback();\n }\n finally {\n readable = false;\n }\n return result;\n}\n\nconst mapHandler = {\n get size() {\n const current = latest(getProxyDraft(this));\n return current.size;\n },\n has(key) {\n return latest(getProxyDraft(this)).has(key);\n },\n set(key, value) {\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) {\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 }\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)\n 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, thisArg) {\n const target = getProxyDraft(this);\n latest(target).forEach((_value, _key) => {\n callback.call(thisArg, this.get(_key), _key, this);\n });\n },\n get(key) {\n var _a, _b;\n const target = getProxyDraft(this);\n const value = latest(target).get(key);\n const mutable = ((_b = (_a = target.options).mark) === null || _b === void 0 ? void 0 : _b.call(_a, 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() {\n return latest(getProxyDraft(this)).keys();\n },\n values() {\n const iterator = this.keys();\n return {\n [iteratorSymbol]: () => this.values(),\n next: () => {\n const result = iterator.next();\n if (result.done)\n return result;\n const value = this.get(result.value);\n return {\n done: false,\n value,\n };\n },\n };\n },\n entries() {\n const iterator = this.keys();\n return {\n [iteratorSymbol]: () => this.entries(),\n next: () => {\n const result = iterator.next();\n if (result.done)\n return result;\n const value = this.get(result.value);\n return {\n done: false,\n value: [result.value, value],\n };\n },\n };\n },\n [iteratorSymbol]() {\n return this.entries();\n },\n};\nconst mapHandlerKeys = Reflect.ownKeys(mapHandler);\n\nconst getNextIterator = (target, iterator, { isValuesIterator }) => () => {\n var _a, _b;\n const result = iterator.next();\n if (result.done)\n return result;\n const key = result.value;\n let value = target.setMap.get(key);\n const currentDraft = getProxyDraft(value);\n const mutable = ((_b = (_a = target.options).mark) === null || _b === void 0 ? void 0 : _b.call(_a, value, dataTypes)) === dataTypes.mutable;\n if (target.options.strict) {\n checkReadable(key, target.options, mutable);\n }\n if (!mutable &&\n !currentDraft &&\n isDraftable(key, target.options) &&\n !target.finalized &&\n target.original.has(key)) {\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 }\n else if (currentDraft) {\n // drafted\n value = currentDraft.proxy;\n }\n return {\n done: false,\n value: isValuesIterator ? value : [value, value],\n };\n};\nconst setHandler = {\n get size() {\n const target = getProxyDraft(this);\n return target.setMap.size;\n },\n has(value) {\n const target = getProxyDraft(this);\n // reassigned or non-draftable values\n if (target.setMap.has(value))\n 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) {\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) {\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 }\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)\n 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() {\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() {\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 }),\n };\n },\n keys() {\n return this.values();\n },\n [iteratorSymbol]() {\n return this.values();\n },\n forEach(callback, thisArg) {\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};\nconst setHandlerKeys = Reflect.ownKeys(setHandler);\n\nconst draftsCache = new WeakSet();\nconst proxyHandler = {\n get(target, key, receiver) {\n var _a, _b;\n const copy = (_a = target.copy) === null || _a === void 0 ? void 0 : _a[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)\n return target;\n let markResult;\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 = 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 if (source instanceof Map && mapHandlerKeys.includes(key)) {\n if (key === 'size') {\n return Object.getOwnPropertyDescriptor(mapHandler, 'size').get.call(target.proxy);\n }\n const handle = mapHandler[key];\n if (handle) {\n return handle.bind(target.proxy);\n }\n }\n if (source instanceof Set && setHandlerKeys.includes(key)) {\n if (key === 'size') {\n return Object.getOwnPropertyDescriptor(setHandler, 'size').get.call(target.proxy);\n }\n const handle = setHandler[key];\n if (handle) {\n return handle.bind(target.proxy);\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 (_b = desc.get) === null || _b === void 0 ? void 0 : _b.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 === 1 /* 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, key, value) {\n var _a;\n if (target.type === 3 /* DraftType.Set */ || target.type === 2 /* DraftType.Map */) {\n throw new Error(`Map/Set draft does not support any property assignment.`);\n }\n let _key;\n if (target.type === 1 /* DraftType.Array */ &&\n key !== 'length' &&\n !(Number.isInteger((_key = Number(key))) &&\n _key >= 0 &&\n (key === 0 || _key === 0 || String(_key) === String(key)))) {\n throw new Error(`Only supports setting array indices and the 'length' property.`);\n }\n const desc = getDescriptor(latest(target), key);\n if (desc === null || desc === void 0 ? void 0 : 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 = (_a = target.assignedMap) !== null && _a !== void 0 ? _a : new Map();\n target.assignedMap.set(key, false);\n return true;\n }\n // !case: handle new props with value 'undefined'\n if (isEqual(value, current) &&\n (value !== undefined || has(target.original, key)))\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 }\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, key) {\n return key in latest(target);\n },\n ownKeys(target) {\n return Reflect.ownKeys(latest(target));\n },\n getOwnPropertyDescriptor(target, key) {\n const source = latest(target);\n const descriptor = Reflect.getOwnPropertyDescriptor(source, key);\n if (!descriptor)\n return descriptor;\n return {\n writable: true,\n configurable: target.type !== 1 /* DraftType.Array */ || key !== 'length',\n enumerable: descriptor.enumerable,\n value: source[key],\n };\n },\n getPrototypeOf(target) {\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, key) {\n var _a;\n if (target.type === 1 /* 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 }\n else {\n target.assignedMap = (_a = target.assignedMap) !== null && _a !== void 0 ? _a : new Map();\n // The original non-existent key has been deleted\n target.assignedMap.delete(key);\n }\n if (target.copy)\n delete target.copy[key];\n return true;\n },\n};\nfunction createDraft(createDraftOptions) {\n const { original, parentDraft, key, finalities, options } = createDraftOptions;\n const type = getType(original);\n const 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: type === 3 /* DraftType.Set */\n ? new Map(original.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(type === 1 /* DraftType.Array */ ? Object.assign([], proxyDraft) : proxyDraft, proxyHandler);\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 var _a, _b;\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 === 3 /* 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 (target.options.enableAutoFreeze) {\n target.options.updatedValues =\n (_a = target.options.updatedValues) !== null && _a !== void 0 ? _a : 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 (_b = oldProxyDraft.callbacks) === null || _b === void 0 ? void 0 : _b.forEach((callback) => {\n callback(patches, inversePatches);\n });\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}\ninternal.createDraft = createDraft;\nfunction finalizeDraft(result, returnedValue, patches, inversePatches, enableAutoFreeze) {\n var _a;\n const proxyDraft = getProxyDraft(result);\n const original = (_a = proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.original) !== null && _a !== void 0 ? _a : result;\n const hasReturnedValue = !!returnedValue.length;\n if (proxyDraft === null || proxyDraft === void 0 ? void 0 : 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)\n revokeProxy(proxyDraft);\n if (enableAutoFreeze) {\n deepFreeze(state, state, proxyDraft === null || proxyDraft === void 0 ? void 0 : 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 ];\n}\n\nfunction draftify(baseState, options) {\n var _a;\n const finalities = {\n draft: [],\n revoke: [],\n handledSet: new WeakSet(),\n };\n let patches;\n let inversePatches;\n if (options.enablePatches) {\n patches = [];\n inversePatches = [];\n }\n const isMutable = ((_a = options.mark) === null || _a === void 0 ? void 0 : _a.call(options, 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 = []) => {\n const [finalizedState, finalizedPatches, finalizedInversePatches] = finalizeDraft(draft, returnedValue, patches, inversePatches, options.enableAutoFreeze);\n return (options.enablePatches\n ? [finalizedState, finalizedPatches, finalizedInversePatches]\n : finalizedState);\n },\n ];\n}\n\nfunction handleReturnValue(options) {\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 (proxyDraft &&\n rootDraft &&\n proxyDraft.finalities === rootDraft.finalities) {\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) => source.add(key === _item ? currentValue : _item));\n }\n else {\n set(source, key, currentValue);\n }\n }\n else if (typeof item === 'object' && item !== null) {\n options.value = item;\n options.isRoot = false;\n handleReturnValue(options);\n }\n });\n if (isRoot) {\n if (!options.isContainDraft)\n console.warn(`The return value does not contain any draft, please use 'rawReturn()' to wrap the return value to improve performance.`);\n if (useRawReturn) {\n console.warn(`The return value contains drafts, please don't use 'rawReturn()' to wrap the return value.`);\n }\n }\n}\nfunction getCurrent(target) {\n const proxyDraft = getProxyDraft(target);\n if (!isDraftable(target, proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.options))\n return target;\n const type = getType(target);\n if (proxyDraft && !proxyDraft.operated)\n return proxyDraft.original;\n let currentValue;\n function ensureShallowCopy() {\n currentValue =\n type === 2 /* DraftType.Map */\n ? new Map(target)\n : type === 3 /* DraftType.Set */\n ? Array.from(proxyDraft.setMap.values())\n : shallowCopy(target, proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.options);\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 }\n finally {\n proxyDraft.finalized = false;\n }\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 forEach(currentValue, (key, value) => {\n if (proxyDraft && isEqual(get(proxyDraft.original, key), value))\n return;\n const newValue = getCurrent(value);\n if (newValue !== value) {\n if (currentValue === target)\n ensureShallowCopy();\n set(currentValue, key, newValue);\n }\n });\n return type === 3 /* DraftType.Set */ ? new Set(currentValue) : currentValue;\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 */\nfunction current(target) {\n if (!isDraft(target)) {\n throw new Error(`current() is only used for Draft, parameter: ${target}`);\n }\n return getCurrent(target);\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 */\nconst makeCreator = (arg) => {\n if (arg !== undefined &&\n Object.prototype.toString.call(arg) !== '[object Object]') {\n throw new Error(`Invalid options: ${String(arg)}, 'options' should be an object.`);\n }\n return function create(arg0, arg1, arg2) {\n var _a, _b, _c;\n if (typeof arg0 === 'function' && typeof arg1 !== 'function') {\n return function (base, ...args) {\n return create(base, (draft) => arg0.call(this, draft, ...args), arg1);\n };\n }\n const base = arg0;\n const mutate = arg1;\n let options = arg2;\n if (typeof arg1 !== 'function') {\n options = arg1;\n }\n if (options !== undefined &&\n Object.prototype.toString.call(options) !== '[object Object]') {\n throw new Error(`Invalid options: ${options}, 'options' should be an object.`);\n }\n options = Object.assign(Object.assign({}, arg), options);\n const state = isDraft(base) ? current(base) : base;\n const mark = Array.isArray(options.mark)\n ? ((value, types) => {\n for (const mark of options.mark) {\n if (typeof mark !== 'function') {\n throw new Error(`Invalid mark: ${mark}, 'mark' should be a function.`);\n }\n const result = mark(value, types);\n if (result) {\n return result;\n }\n }\n return;\n })\n : options.mark;\n const enablePatches = (_a = options.enablePatches) !== null && _a !== void 0 ? _a : false;\n const strict = (_b = options.strict) !== null && _b !== void 0 ? _b : false;\n const enableAutoFreeze = (_c = options.enableAutoFreeze) !== null && _c !== void 0 ? _c : false;\n const _options = {\n enableAutoFreeze,\n mark,\n strict,\n enablePatches,\n };\n if (!isDraftable(state, _options) &&\n typeof state === 'object' &&\n state !== null) {\n throw new Error(`Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.`);\n }\n const [draft, finalize] = draftify(state, _options);\n if (typeof arg1 !== 'function') {\n if (!isDraftable(state, _options)) {\n throw new Error(`Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.`);\n }\n return [draft, finalize];\n }\n let result;\n try {\n result = mutate(draft);\n }\n catch (error) {\n revokeProxy(getProxyDraft(draft));\n throw error;\n }\n const returnValue = (value) => {\n const proxyDraft = getProxyDraft(draft);\n if (!isDraft(value)) {\n if (value !== undefined &&\n !isEqual(value, draft) &&\n (proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.operated)) {\n throw new Error(`Either the value is returned as a new non-draft value, or only the draft is modified without returning any value.`);\n }\n const rawReturnValue = value === null || value === void 0 ? void 0 : value[RAW_RETURN_SYMBOL];\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\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\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 */\nfunction apply(state, patches, applyOptions) {\n let i;\n for (i = patches.length - 1; i >= 0; i -= 1) {\n const { value, op, path } = patches[i];\n if ((!path.length && op === Operation.Replace) ||\n (path === '' && op === Operation.Add)) {\n state = value;\n break;\n }\n }\n if (i > -1) {\n patches = patches.slice(i + 1);\n }\n const mutate = (draft) => {\n patches.forEach((patch) => {\n const { path: _path, op } = patch;\n const path = unescapePath(_path);\n let base = 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 (((parentType === 0 /* DraftType.Object */ ||\n parentType === 1 /* DraftType.Array */) &&\n (key === '__proto__' || key === 'constructor')) ||\n (typeof base === 'function' && key === 'prototype')) {\n throw new Error(`Patching reserved attributes like __proto__ and constructor is not allowed.`);\n }\n // use `index` in Set draft\n base = get(parentType === 3 /* 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 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 2 /* DraftType.Map */:\n return base.set(key, value);\n case 3 /* 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 1 /* 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, 0, value);\n case 2 /* DraftType.Map */:\n return base.set(key, value);\n case 3 /* DraftType.Set */:\n return base.add(value);\n default:\n return (base[key] = value);\n }\n case Operation.Remove:\n switch (type) {\n case 1 /* DraftType.Array */:\n return base.splice(key, 1);\n case 2 /* DraftType.Map */:\n return base.delete(key);\n case 3 /* 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);\n return state;\n }\n return create(state, mutate, Object.assign(Object.assign({}, applyOptions), { enablePatches: false }));\n}\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 */\nfunction original(target) {\n const proxyDraft = getProxyDraft(target);\n if (!proxyDraft) {\n throw new Error(`original() is only used for a draft, parameter: ${target}`);\n }\n return proxyDraft.original;\n}\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 */\nfunction rawReturn(value) {\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 (value !== undefined &&\n (typeof value !== 'object' || value === null)) {\n console.warn('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 return {\n [RAW_RETURN_SYMBOL]: [value],\n };\n}\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) => {\n if (!value || typeof value !== 'object')\n return false;\n const prototype = Object.getPrototypeOf(value);\n if (prototype === null) {\n return true;\n }\n const constructor = Object.hasOwnProperty.call(prototype, 'constructor') &&\n prototype.constructor;\n if (constructor === Object)\n return true;\n return (typeof constructor === 'function' &&\n Function.toString.call(constructor) === constructorString);\n};\nconst markSimpleObject = (value) => {\n if (isSimpleObject(value)) {\n return dataTypes.immutable;\n }\n return;\n};\n\n/**\n * Cast a value to an Draft type value.\n */\nfunction castDraft(value) {\n return value;\n}\n/**\n * Cast a value to an Immutable type value.\n */\nfunction castImmutable(value) {\n return value;\n}\n\nexport { apply, castDraft, castImmutable, create, current, isDraft, isDraftable, makeCreator, markSimpleObject, original, rawReturn, unsafe };\n//# sourceMappingURL=mutative.esm.mjs.map\n",null,null,"/*\n * base64-arraybuffer 1.0.2 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n//# sourceMappingURL=base64-arraybuffer.es5.js.map\n",null,null,null,null,"'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n",null,null,null,null,null,null],"names":["MetaframeVersionsAll","MetapageVersionsAll","MetaframeVersionCurrent","MetapageVersionCurrent","METAFRAME_JSON_FILE","METAPAGE_KEY_DEFINITION","METAPAGE_KEY_STATE","VERSION_METAPAGE","VERSION_METAFRAME","semver","validateAndParse","version","match","isWildcard","s","tryParse","v","n","forceType","a","b","compareStrings","ap","bp","compareSegments","i","r","compareVersions","v1","v2","n1","n2","p1","p2","global","factory","module","this","fetchRetry","fetch","defaults","ArgumentError","isPositiveInteger","baseDefaults","input","init","retries","retryDelay","retryOn","resolve","reject","wrappedFetch","attempt","_input","response","retryOnResponse","retry","error","delay","value","message","Operation","PROXY_DRAFT","RAW_RETURN_SYMBOL","iteratorSymbol","dataTypes","internal","has","target","key","getDescriptor","prototype","descriptor","latest","proxyDraft","_a","isDraft","getProxyDraft","getValue","isDraftable","options","markResult","getPath","path","parentCopy","get","isSet","resolvePath","getType","set","peek","state","isEqual","x","y","revokeProxy","escapePath","pathAsArray","_item","item","base","index","strictCopy","copy","desc","propIsEnum","shallowCopy","original","ensureShallowCopy","deepClone","k","cloneIfNeeded","markChanged","throwFrozenError","deepFreeze","subKey","updatedValues","stack","keys","parent","name","forEach","iter","type","entry","handleValue","handledSet","setMap","updatedValue","values","finalizeAssigned","finalizeSetValue","finalizePatches","generatePatches","patches","inversePatches","basePath","markFinalization","generateArrayPatches","proxyState","assignedMap","_path","arrayLengthAssignment","generatePatchesFromAssigned","assignedValue","originalValue","op","generateSetPatches","readable","checkReadable","ignoreCheckDraftable","mapHandler","source","callback","thisArg","_value","_key","_b","mutable","draft","iterator","result","mapHandlerKeys","getNextIterator","isValuesIterator","currentDraft","proxy","setHandler","valueProxyDraft","setHandlerKeys","draftsCache","proxyHandler","receiver","handle","createDraft","subProxyDraft","current","currentProxyDraft","createDraftOptions","parentDraft","finalities","revoke","oldProxyDraft","finalizeDraft","returnedValue","enableAutoFreeze","hasReturnedValue","draftify","baseState","finalizedState","finalizedPatches","finalizedInversePatches","handleReturnValue","rootDraft","useRawReturn","isRoot","currentValue","arr","getCurrent","newValue","makeCreator","arg","create","arg0","arg1","arg2","_c","args","mutate","mark","types","enablePatches","strict","_options","finalize","returnValue","rawReturnValue","returnedProxyDraft","fetchRetryWrapper","convertMetapageDefinitionToVersion","def","targetVersion","err","convertMetapageDefinitionToTargetVersionInternal","convertMetapageDefinitionToCurrentVersion","currentVersion","getMatchingMetapageVersion","currentDefinition","definition_v0_2_to_v0_3","definition_v0_3_to_v1","definition_v0_3_to_v0_2","definition_v1_to_v0_3","old","castV1","convertMetaframeDefinitionToVersion","convertMetaframeDefinitionToTargetVersionInternal","convertMetaframeDefinitionToCurrentVersion","getMatchingMetaframeVersion","definition_v0_3_to_v0_4","definition_v0_4_to_v0_5","definition_v0_4_to_v0_3","definition_v0_5_to_v0_6","definition_v0_5_to_v0_4","definition_v0_6_to_v1","definition_v0_6_to_v0_5","definition_v1_to_v0_6","convertMetaframeJsonToCurrentVersion","m","opts","title","descriptionUrl","keywords","decription","tags","chars","lookup","encode","arraybuffer","bytes","len","base64","decode","bufferLength","p","encoded1","encoded2","encoded3","encoded4","serializeInputs","inputs","maybeNewObject","possiblySerializeValueToDataref","deserializeInputs","possiblyDeserializeDatarefToValue","valueToFile","fileName","buffer","typedValue","blob","replacement","arrayBuffer","serializedRef","serializedRefBlob","serializedRefFile","serializedRefTypedArray","constructorName","possiblyDeserializeDatarefToFile","typedArray","MetapageEvents","JsonRpcMethodsFromChild","JsonRpcMethodsFromParent","PARSE_ERROR","INVALID_REQUEST","METHOD_NOT_FOUND","INVALID_PARAMS","INTERNAL_ERROR","isJsonRpcId","prefix","Events","EE","fn","context","once","addListener","emitter","event","listener","evt","clearEvent","EventEmitter","names","events","handlers","l","ee","listeners","a1","a2","a3","a4","a5","length","j","fastJsonStableStringify","data","cycles","cmp","f","node","aobj","bobj","seen","stringify","out","seenIndex","MetapageHashParams","isIframe","INITIAL_NULL_METAPAGE_DEFINITION","MetapageShared","merge","newInputs","pipeId","getUrlParam","getUrlParamDebug","isDebugFromUrlsParams","param","generateMetaframeId","generateId","generateMetapageId","generateNonce","LETTERS","charactersLength","log","o","color","backgroundColor","cssstring","stringToRgb","str","intToRGB","hashCode","hash","c","isPageLoaded","pageLoaded","loaded","metapageAllSha256Hash","metapage","metapageStr","sha256ToBase64","metapageOnlyEssentailSha256Hash","MetaframeLoadingState","MetaframeEvents","Metaframe","thisRef","params","_","disposer","MetapageToolsLog","pipe","originalInputs","updateBlob","outputs","originalOutputs","payload","method","jsonrpc","MetapageIFrameRpcClient","url","iframeId","parentId","consoleBackgroundColor","debug","urlBlob","selfThis","_d","metaframeDef","metaframeDefCurrent","inputBlob","maybeNewInputs","inputUpdate","maybeNewOutputs","outputsUpdate","pipeName","fWrap","val","thing","messageJSON","emptyState","getLibraryVersionMatching","matchPipe","outputPipeName","inputPipeName","CONSOLE_BACKGROUND_COLOR_DEFAULT","Metapage","metaPageDef","exists","flag","newState","metaframeId","newDefinition","metaframeDefinition","previousDefinition","newMetaframeId","otherMetaframeId","inputPipes","id","definition","iframeClient","outputPipeId","__","targets","inputPipe","targetName","inputPipeId","metaframeInputs","metapageInputs","metaframeValuesNew","isInputs","metaframePipeId","inputOrOutputState","metaframePipedId","inputsMetaframesNew","metaframe","iframe","modified","outputKeys","collectedOutputs","outputKey","hashParamsUpdatePayload","getMetapageDefinitionFromUrl","metapageUrl","getMetaframeDefinitionFromUrl","metaframeUrl"],"mappings":"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","x_google_ignoreList":[2,3,4,5,8,13,14]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/metapage/versions.ts","../src/metapage/Constants.ts","../node_modules/compare-versions/lib/esm/utils.js","../node_modules/compare-versions/lib/esm/compareVersions.js","../node_modules/fetch-retry/dist/fetch-retry.umd.js","../node_modules/mutative/dist/mutative.esm.mjs","../src/metapage/conversions-metapage.ts","../src/metapage/conversions-metaframe.ts","../node_modules/base64-arraybuffer/dist/base64-arraybuffer.es5.js","../src/metapage/data.ts","../src/metapage/events.ts","../src/metapage/jsonrpc.ts","../src/metapage/jsonrpc2.ts","../node_modules/eventemitter3/index.js","../node_modules/@metapages/hash-query/dist/core/index.js","../node_modules/fast-json-stable-stringify/index.js","../src/metapage/Shared.ts","../src/metapage/MetapageTools.ts","../src/metapage/Metaframe.ts","../node_modules/picomatch-browser/lib/constants.js","../node_modules/picomatch-browser/lib/utils.js","../node_modules/picomatch-browser/lib/scan.js","../node_modules/picomatch-browser/lib/parse.js","../node_modules/picomatch-browser/lib/picomatch.js","../node_modules/picomatch-browser/index.js","../src/metapage/MetapageIFrameRpcClient.ts","../src/metapage/Metapage.ts","../src/metapage/util.ts"],"sourcesContent":[null,null,"export const semver = /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\nexport const validateAndParse = (version) => {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = version.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${version}' received)`);\n }\n match.shift();\n return match;\n};\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\nconst forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b))\n return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp)\n return 1;\n if (ap < bp)\n return -1;\n return 0;\n};\nexport const compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || '0', b[i] || '0');\n if (r !== 0)\n return r;\n }\n return 0;\n};\n//# sourceMappingURL=utils.js.map","import { compareSegments, validateAndParse } from './utils.js';\n/**\n * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.\n * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.\n * @param v1 - First version to compare\n * @param v2 - Second version to compare\n * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters).\n */\nexport const compareVersions = (v1, v2) => {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0)\n return r;\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n }\n else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n return 0;\n};\n//# sourceMappingURL=compareVersions.js.map","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.fetchRetry = factory());\n})(this, (function () { 'use strict';\n\n var fetchRetry = function (fetch, defaults) {\n defaults = defaults || {};\n if (typeof fetch !== 'function') {\n throw new ArgumentError('fetch must be a function');\n }\n\n if (typeof defaults !== 'object') {\n throw new ArgumentError('defaults must be an object');\n }\n\n if (defaults.retries !== undefined && !isPositiveInteger(defaults.retries)) {\n throw new ArgumentError('retries must be a positive integer');\n }\n\n if (defaults.retryDelay !== undefined && !isPositiveInteger(defaults.retryDelay) && typeof defaults.retryDelay !== 'function') {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n\n if (defaults.retryOn !== undefined && !Array.isArray(defaults.retryOn) && typeof defaults.retryOn !== 'function') {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n\n var baseDefaults = {\n retries: 3,\n retryDelay: 1000,\n retryOn: [],\n };\n\n defaults = Object.assign(baseDefaults, defaults);\n\n return function fetchRetry(input, init) {\n var retries = defaults.retries;\n var retryDelay = defaults.retryDelay;\n var retryOn = defaults.retryOn;\n\n if (init && init.retries !== undefined) {\n if (isPositiveInteger(init.retries)) {\n retries = init.retries;\n } else {\n throw new ArgumentError('retries must be a positive integer');\n }\n }\n\n if (init && init.retryDelay !== undefined) {\n if (isPositiveInteger(init.retryDelay) || (typeof init.retryDelay === 'function')) {\n retryDelay = init.retryDelay;\n } else {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n }\n\n if (init && init.retryOn) {\n if (Array.isArray(init.retryOn) || (typeof init.retryOn === 'function')) {\n retryOn = init.retryOn;\n } else {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n }\n\n // eslint-disable-next-line no-undef\n return new Promise(function (resolve, reject) {\n var wrappedFetch = function (attempt) {\n // As of node 18, this is no longer needed since node comes with native support for fetch:\n /* istanbul ignore next */\n var _input =\n typeof Request !== 'undefined' && input instanceof Request\n ? input.clone()\n : input;\n fetch(_input, init)\n .then(function (response) {\n if (Array.isArray(retryOn) && retryOn.indexOf(response.status) === -1) {\n resolve(response);\n } else if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n return Promise.resolve(retryOn(attempt, null, response))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }).catch(reject);\n } catch (error) {\n reject(error);\n }\n } else {\n if (attempt < retries) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }\n })\n .catch(function (error) {\n if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n Promise.resolve(retryOn(attempt, error, null))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n })\n .catch(function(error) {\n reject(error);\n });\n } catch(error) {\n reject(error);\n }\n } else if (attempt < retries) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n });\n };\n\n function retry(attempt, error, response) {\n var delay = (typeof retryDelay === 'function') ?\n retryDelay(attempt, error, response) : retryDelay;\n setTimeout(function () {\n wrappedFetch(++attempt);\n }, delay);\n }\n\n wrappedFetch(0);\n });\n };\n };\n\n function isPositiveInteger(value) {\n return Number.isInteger(value) && value >= 0;\n }\n\n function ArgumentError(message) {\n this.name = 'ArgumentError';\n this.message = message;\n }\n\n return fetchRetry;\n\n}));\n","const Operation = {\n Remove: 'remove',\n Replace: 'replace',\n Add: 'add',\n};\n\n// Don't use `Symbol()` just for 3rd party access the draft\nconst PROXY_DRAFT = Symbol.for('__MUTATIVE_PROXY_DRAFT__');\nconst RAW_RETURN_SYMBOL = Symbol('__MUTATIVE_RAW_RETURN_SYMBOL__');\nconst iteratorSymbol = Symbol.iterator;\nconst dataTypes = {\n mutable: 'mutable',\n immutable: 'immutable',\n};\n\nconst internal = {};\n\nfunction has(target, key) {\n return target instanceof Map\n ? target.has(key)\n : Object.prototype.hasOwnProperty.call(target, key);\n}\nfunction getDescriptor(target, key) {\n if (key in target) {\n let prototype = Reflect.getPrototypeOf(target);\n while (prototype) {\n const descriptor = Reflect.getOwnPropertyDescriptor(prototype, key);\n if (descriptor)\n return descriptor;\n prototype = Reflect.getPrototypeOf(prototype);\n }\n }\n return;\n}\n\nfunction latest(proxyDraft) {\n var _a;\n return (_a = proxyDraft.copy) !== null && _a !== void 0 ? _a : proxyDraft.original;\n}\n/**\n * Check if the value is a draft\n */\nfunction isDraft(target) {\n return !!getProxyDraft(target);\n}\nfunction getProxyDraft(value) {\n if (typeof value !== 'object')\n return null;\n return value === null || value === void 0 ? void 0 : value[PROXY_DRAFT];\n}\nfunction getValue(value) {\n var _a;\n const proxyDraft = getProxyDraft(value);\n return proxyDraft ? (_a = proxyDraft.copy) !== null && _a !== void 0 ? _a : proxyDraft.original : value;\n}\n/**\n * Check if a value is draftable\n */\nfunction isDraftable(value, options) {\n if (!value || typeof value !== 'object')\n return false;\n let markResult;\n return (Object.getPrototypeOf(value) === Object.prototype ||\n Array.isArray(value) ||\n value instanceof Map ||\n value instanceof Set ||\n (!!(options === null || options === void 0 ? void 0 : options.mark) &&\n ((markResult = options.mark(value, dataTypes)) === dataTypes.immutable ||\n typeof markResult === 'function')));\n}\nfunction getPath(target, path = []) {\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 === null || proxyDraft === void 0 ? void 0 : proxyDraft.original) !== target.original) {\n return null;\n }\n const isSet = target.parent.type === 3 /* 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 (!((isSet && parentCopy.size > key) || has(parentCopy, key)))\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 }\n catch (e) {\n return null;\n }\n return path;\n}\nfunction getType(target) {\n if (Array.isArray(target))\n return 1 /* DraftType.Array */;\n if (target instanceof Map)\n return 2 /* DraftType.Map */;\n if (target instanceof Set)\n return 3 /* DraftType.Set */;\n return 0 /* DraftType.Object */;\n}\nfunction get(target, key) {\n return getType(target) === 2 /* DraftType.Map */ ? target.get(key) : target[key];\n}\nfunction set(target, key, value) {\n const type = getType(target);\n if (type === 2 /* DraftType.Map */) {\n target.set(key, value);\n }\n else {\n target[key] = value;\n }\n}\nfunction peek(target, key) {\n const state = getProxyDraft(target);\n const source = state ? latest(state) : target;\n return source[key];\n}\nfunction isEqual(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n }\n else {\n return x !== x && y !== y;\n }\n}\nfunction revokeProxy(proxyDraft) {\n if (!proxyDraft)\n return;\n while (proxyDraft.finalities.revoke.length > 0) {\n const revoke = proxyDraft.finalities.revoke.pop();\n revoke();\n }\n}\n// handle JSON Pointer path with spec https://www.rfc-editor.org/rfc/rfc6901\nfunction escapePath(path, pathAsArray) {\n return pathAsArray\n ? path\n : ['']\n .concat(path)\n .map((_item) => {\n const item = `${_item}`;\n if (item.indexOf('/') === -1 && item.indexOf('~') === -1)\n return item;\n return item.replace(/~/g, '~0').replace(/\\//g, '~1');\n })\n .join('/');\n}\nfunction unescapePath(path) {\n if (Array.isArray(path))\n return path;\n return path\n .split('/')\n .map((_item) => _item.replace(/~1/g, '/').replace(/~0/g, '~'))\n .slice(1);\n}\nfunction resolvePath(base, path) {\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) === 3 /* 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\nfunction strictCopy(target) {\n const copy = Object.create(Object.getPrototypeOf(target));\n Reflect.ownKeys(target).forEach((key) => {\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}\nconst propIsEnum = Object.prototype.propertyIsEnumerable;\nfunction shallowCopy(original, options) {\n let markResult;\n if (Array.isArray(original)) {\n return Array.prototype.concat.call(original);\n }\n else if (original instanceof Set) {\n return new Set(original.values());\n }\n else if (original instanceof Map) {\n return new Map(original);\n }\n else if ((options === null || options === void 0 ? void 0 : options.mark) &&\n ((markResult = options.mark(original, dataTypes)),\n markResult !== undefined) &&\n markResult !== dataTypes.mutable) {\n if (markResult === dataTypes.immutable) {\n return strictCopy(original);\n }\n else if (typeof markResult === 'function') {\n if ((options.enablePatches || options.enableAutoFreeze)) {\n throw new Error(`You can't use mark and patches or auto freeze together.`);\n }\n return markResult();\n }\n throw new Error(`Unsupported mark result: ${markResult}`);\n }\n else if (typeof original === 'object' &&\n Object.getPrototypeOf(original) === Object.prototype) {\n // For best performance with shallow copies,\n // don't use `Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));` by default.\n const copy = {};\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 }\n else {\n throw new Error(`Please check mark() to ensure that it is a stable marker draftable function.`);\n }\n}\nfunction ensureShallowCopy(target) {\n if (target.copy)\n return;\n target.copy = shallowCopy(target.original, target.options);\n}\nfunction deepClone(target) {\n if (!isDraftable(target))\n return getValue(target);\n if (Array.isArray(target))\n return target.map(deepClone);\n if (target instanceof Map)\n return new Map(Array.from(target.entries()).map(([k, v]) => [k, deepClone(v)]));\n if (target instanceof Set)\n return new Set(Array.from(target).map(deepClone));\n const copy = Object.create(Object.getPrototypeOf(target));\n for (const key in target)\n copy[key] = deepClone(target[key]);\n return copy;\n}\nfunction cloneIfNeeded(target) {\n return isDraft(target) ? deepClone(target) : target;\n}\n\nfunction markChanged(proxyDraft) {\n var _a;\n proxyDraft.assignedMap = (_a = proxyDraft.assignedMap) !== null && _a !== void 0 ? _a : new Map();\n if (!proxyDraft.operated) {\n proxyDraft.operated = true;\n if (proxyDraft.parent) {\n markChanged(proxyDraft.parent);\n }\n }\n}\n\nfunction throwFrozenError() {\n throw new Error('Cannot modify frozen object');\n}\nfunction deepFreeze(target, subKey, updatedValues, stack, keys) {\n {\n updatedValues = updatedValues !== null && updatedValues !== void 0 ? updatedValues : new WeakMap();\n stack = stack !== null && stack !== void 0 ? stack : [];\n keys = keys !== null && keys !== void 0 ? 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(`Forbids circular reference: ~/${keys\n .slice(0, index)\n .map((key, index) => {\n if (typeof key === 'symbol')\n return `[${key.toString()}]`;\n const parent = stack[index];\n if (typeof key === 'object' &&\n (parent instanceof Map || parent instanceof Set))\n return Array.from(parent.keys()).indexOf(key);\n return key;\n })\n .join('/')}`);\n }\n stack.push(value);\n keys.push(subKey);\n }\n else {\n stack.push(value);\n }\n }\n if (Object.isFrozen(target) || isDraft(target)) {\n {\n stack.pop();\n keys.pop();\n }\n return;\n }\n const type = getType(target);\n switch (type) {\n case 2 /* DraftType.Map */:\n for (const [key, value] of target) {\n deepFreeze(key, key, updatedValues, stack, keys);\n deepFreeze(value, key, updatedValues, stack, keys);\n }\n target.set = target.clear = target.delete = throwFrozenError;\n break;\n case 3 /* DraftType.Set */:\n for (const value of target) {\n deepFreeze(value, value, updatedValues, stack, keys);\n }\n target.add = target.clear = target.delete = throwFrozenError;\n break;\n case 1 /* DraftType.Array */:\n Object.freeze(target);\n let index = 0;\n for (const value of target) {\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 deepFreeze(value, name, updatedValues, stack, keys);\n });\n }\n {\n stack.pop();\n keys.pop();\n }\n}\n\nfunction forEach(target, iter) {\n const type = getType(target);\n if (type === 0 /* DraftType.Object */) {\n Reflect.ownKeys(target).forEach((key) => {\n iter(key, target[key], target);\n });\n }\n else if (type === 1 /* DraftType.Array */) {\n let index = 0;\n for (const entry of target) {\n iter(index, entry, target);\n index += 1;\n }\n }\n else {\n target.forEach((entry, index) => iter(index, entry, target));\n }\n}\n\nfunction handleValue(target, handledSet, options) {\n if (isDraft(target) ||\n !isDraftable(target, options) ||\n handledSet.has(target) ||\n Object.isFrozen(target))\n return;\n const isSet = target instanceof Set;\n const setMap = isSet ? new Map() : undefined;\n handledSet.add(target);\n forEach(target, (key, value) => {\n var _a;\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 = ((_a = proxyDraft.assignedMap) === null || _a === void 0 ? void 0 : _a.size) || proxyDraft.operated\n ? proxyDraft.copy\n : proxyDraft.original;\n // final update value\n set(isSet ? setMap : target, key, updatedValue);\n }\n else {\n handleValue(value, handledSet, options);\n }\n });\n if (setMap) {\n const set = target;\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}\nfunction finalizeAssigned(proxyDraft, key) {\n // handle the draftable assigned values, and the value is not a draft\n const copy = proxyDraft.type === 3 /* DraftType.Set */ ? proxyDraft.setMap : proxyDraft.copy;\n if (proxyDraft.finalities.revoke.length > 1 &&\n proxyDraft.assignedMap.get(key) &&\n copy) {\n handleValue(get(copy, key), proxyDraft.finalities.handledSet, proxyDraft.options);\n }\n}\nfunction finalizeSetValue(target) {\n if (target.type === 3 /* DraftType.Set */ && target.copy) {\n target.copy.clear();\n target.setMap.forEach((value) => {\n target.copy.add(getValue(value));\n });\n }\n}\nfunction finalizePatches(target, generatePatches, patches, inversePatches) {\n const shouldFinalize = 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}\nfunction markFinalization(target, key, value, generatePatches) {\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 var _a;\n const copy = target.type === 3 /* 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 (target.options.enableAutoFreeze) {\n target.options.updatedValues =\n (_a = target.options.updatedValues) !== null && _a !== void 0 ? _a : 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 === 3 /* DraftType.Set */ ? target.setMap : target.copy;\n if (isEqual(get(copy, key), value)) {\n finalizeAssigned(target, key);\n }\n });\n }\n}\n\nfunction generateArrayPatches(proxyState, basePath, patches, inversePatches, pathAsArray) {\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 }\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}\nfunction generatePatchesFromAssigned({ original, copy, assignedMap }, basePath, patches, inversePatches, pathAsArray) {\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)\n 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(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}\nfunction generateSetPatches({ original, copy }, basePath, patches, inversePatches, pathAsArray) {\n let index = 0;\n original.forEach((value) => {\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) => {\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}\nfunction generatePatches(proxyState, basePath, patches, inversePatches) {\n const { pathAsArray = true } = proxyState.options.enablePatches;\n switch (proxyState.type) {\n case 0 /* DraftType.Object */:\n case 2 /* DraftType.Map */:\n return generatePatchesFromAssigned(proxyState, basePath, patches, inversePatches, pathAsArray);\n case 1 /* DraftType.Array */:\n return generateArrayPatches(proxyState, basePath, patches, inversePatches, pathAsArray);\n case 3 /* DraftType.Set */:\n return generateSetPatches(proxyState, basePath, patches, inversePatches, pathAsArray);\n }\n}\n\nlet readable = false;\nconst checkReadable = (value, options, ignoreCheckDraftable = false) => {\n if (typeof value === 'object' &&\n value !== null &&\n (!isDraftable(value, options) || ignoreCheckDraftable) &&\n !readable) {\n throw new Error(`Strict mode: Mutable data cannot be accessed directly, please use 'unsafe(callback)' wrap.`);\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 */\nfunction unsafe(callback) {\n readable = true;\n let result;\n try {\n result = callback();\n }\n finally {\n readable = false;\n }\n return result;\n}\n\nconst mapHandler = {\n get size() {\n const current = latest(getProxyDraft(this));\n return current.size;\n },\n has(key) {\n return latest(getProxyDraft(this)).has(key);\n },\n set(key, value) {\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) {\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 }\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)\n 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, thisArg) {\n const target = getProxyDraft(this);\n latest(target).forEach((_value, _key) => {\n callback.call(thisArg, this.get(_key), _key, this);\n });\n },\n get(key) {\n var _a, _b;\n const target = getProxyDraft(this);\n const value = latest(target).get(key);\n const mutable = ((_b = (_a = target.options).mark) === null || _b === void 0 ? void 0 : _b.call(_a, 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() {\n return latest(getProxyDraft(this)).keys();\n },\n values() {\n const iterator = this.keys();\n return {\n [iteratorSymbol]: () => this.values(),\n next: () => {\n const result = iterator.next();\n if (result.done)\n return result;\n const value = this.get(result.value);\n return {\n done: false,\n value,\n };\n },\n };\n },\n entries() {\n const iterator = this.keys();\n return {\n [iteratorSymbol]: () => this.entries(),\n next: () => {\n const result = iterator.next();\n if (result.done)\n return result;\n const value = this.get(result.value);\n return {\n done: false,\n value: [result.value, value],\n };\n },\n };\n },\n [iteratorSymbol]() {\n return this.entries();\n },\n};\nconst mapHandlerKeys = Reflect.ownKeys(mapHandler);\n\nconst getNextIterator = (target, iterator, { isValuesIterator }) => () => {\n var _a, _b;\n const result = iterator.next();\n if (result.done)\n return result;\n const key = result.value;\n let value = target.setMap.get(key);\n const currentDraft = getProxyDraft(value);\n const mutable = ((_b = (_a = target.options).mark) === null || _b === void 0 ? void 0 : _b.call(_a, value, dataTypes)) === dataTypes.mutable;\n if (target.options.strict) {\n checkReadable(key, target.options, mutable);\n }\n if (!mutable &&\n !currentDraft &&\n isDraftable(key, target.options) &&\n !target.finalized &&\n target.original.has(key)) {\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 }\n else if (currentDraft) {\n // drafted\n value = currentDraft.proxy;\n }\n return {\n done: false,\n value: isValuesIterator ? value : [value, value],\n };\n};\nconst setHandler = {\n get size() {\n const target = getProxyDraft(this);\n return target.setMap.size;\n },\n has(value) {\n const target = getProxyDraft(this);\n // reassigned or non-draftable values\n if (target.setMap.has(value))\n 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) {\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) {\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 }\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)\n 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() {\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() {\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 }),\n };\n },\n keys() {\n return this.values();\n },\n [iteratorSymbol]() {\n return this.values();\n },\n forEach(callback, thisArg) {\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};\nconst setHandlerKeys = Reflect.ownKeys(setHandler);\n\nconst draftsCache = new WeakSet();\nconst proxyHandler = {\n get(target, key, receiver) {\n var _a, _b;\n const copy = (_a = target.copy) === null || _a === void 0 ? void 0 : _a[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)\n return target;\n let markResult;\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 = 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 if (source instanceof Map && mapHandlerKeys.includes(key)) {\n if (key === 'size') {\n return Object.getOwnPropertyDescriptor(mapHandler, 'size').get.call(target.proxy);\n }\n const handle = mapHandler[key];\n if (handle) {\n return handle.bind(target.proxy);\n }\n }\n if (source instanceof Set && setHandlerKeys.includes(key)) {\n if (key === 'size') {\n return Object.getOwnPropertyDescriptor(setHandler, 'size').get.call(target.proxy);\n }\n const handle = setHandler[key];\n if (handle) {\n return handle.bind(target.proxy);\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 (_b = desc.get) === null || _b === void 0 ? void 0 : _b.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 === 1 /* 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, key, value) {\n var _a;\n if (target.type === 3 /* DraftType.Set */ || target.type === 2 /* DraftType.Map */) {\n throw new Error(`Map/Set draft does not support any property assignment.`);\n }\n let _key;\n if (target.type === 1 /* DraftType.Array */ &&\n key !== 'length' &&\n !(Number.isInteger((_key = Number(key))) &&\n _key >= 0 &&\n (key === 0 || _key === 0 || String(_key) === String(key)))) {\n throw new Error(`Only supports setting array indices and the 'length' property.`);\n }\n const desc = getDescriptor(latest(target), key);\n if (desc === null || desc === void 0 ? void 0 : 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 = (_a = target.assignedMap) !== null && _a !== void 0 ? _a : new Map();\n target.assignedMap.set(key, false);\n return true;\n }\n // !case: handle new props with value 'undefined'\n if (isEqual(value, current) &&\n (value !== undefined || has(target.original, key)))\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 }\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, key) {\n return key in latest(target);\n },\n ownKeys(target) {\n return Reflect.ownKeys(latest(target));\n },\n getOwnPropertyDescriptor(target, key) {\n const source = latest(target);\n const descriptor = Reflect.getOwnPropertyDescriptor(source, key);\n if (!descriptor)\n return descriptor;\n return {\n writable: true,\n configurable: target.type !== 1 /* DraftType.Array */ || key !== 'length',\n enumerable: descriptor.enumerable,\n value: source[key],\n };\n },\n getPrototypeOf(target) {\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, key) {\n var _a;\n if (target.type === 1 /* 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 }\n else {\n target.assignedMap = (_a = target.assignedMap) !== null && _a !== void 0 ? _a : new Map();\n // The original non-existent key has been deleted\n target.assignedMap.delete(key);\n }\n if (target.copy)\n delete target.copy[key];\n return true;\n },\n};\nfunction createDraft(createDraftOptions) {\n const { original, parentDraft, key, finalities, options } = createDraftOptions;\n const type = getType(original);\n const 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: type === 3 /* DraftType.Set */\n ? new Map(original.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(type === 1 /* DraftType.Array */ ? Object.assign([], proxyDraft) : proxyDraft, proxyHandler);\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 var _a, _b;\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 === 3 /* 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 (target.options.enableAutoFreeze) {\n target.options.updatedValues =\n (_a = target.options.updatedValues) !== null && _a !== void 0 ? _a : 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 (_b = oldProxyDraft.callbacks) === null || _b === void 0 ? void 0 : _b.forEach((callback) => {\n callback(patches, inversePatches);\n });\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}\ninternal.createDraft = createDraft;\nfunction finalizeDraft(result, returnedValue, patches, inversePatches, enableAutoFreeze) {\n var _a;\n const proxyDraft = getProxyDraft(result);\n const original = (_a = proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.original) !== null && _a !== void 0 ? _a : result;\n const hasReturnedValue = !!returnedValue.length;\n if (proxyDraft === null || proxyDraft === void 0 ? void 0 : 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)\n revokeProxy(proxyDraft);\n if (enableAutoFreeze) {\n deepFreeze(state, state, proxyDraft === null || proxyDraft === void 0 ? void 0 : 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 ];\n}\n\nfunction draftify(baseState, options) {\n var _a;\n const finalities = {\n draft: [],\n revoke: [],\n handledSet: new WeakSet(),\n };\n let patches;\n let inversePatches;\n if (options.enablePatches) {\n patches = [];\n inversePatches = [];\n }\n const isMutable = ((_a = options.mark) === null || _a === void 0 ? void 0 : _a.call(options, 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 = []) => {\n const [finalizedState, finalizedPatches, finalizedInversePatches] = finalizeDraft(draft, returnedValue, patches, inversePatches, options.enableAutoFreeze);\n return (options.enablePatches\n ? [finalizedState, finalizedPatches, finalizedInversePatches]\n : finalizedState);\n },\n ];\n}\n\nfunction handleReturnValue(options) {\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 (proxyDraft &&\n rootDraft &&\n proxyDraft.finalities === rootDraft.finalities) {\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) => source.add(key === _item ? currentValue : _item));\n }\n else {\n set(source, key, currentValue);\n }\n }\n else if (typeof item === 'object' && item !== null) {\n options.value = item;\n options.isRoot = false;\n handleReturnValue(options);\n }\n });\n if (isRoot) {\n if (!options.isContainDraft)\n console.warn(`The return value does not contain any draft, please use 'rawReturn()' to wrap the return value to improve performance.`);\n if (useRawReturn) {\n console.warn(`The return value contains drafts, please don't use 'rawReturn()' to wrap the return value.`);\n }\n }\n}\nfunction getCurrent(target) {\n const proxyDraft = getProxyDraft(target);\n if (!isDraftable(target, proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.options))\n return target;\n const type = getType(target);\n if (proxyDraft && !proxyDraft.operated)\n return proxyDraft.original;\n let currentValue;\n function ensureShallowCopy() {\n currentValue =\n type === 2 /* DraftType.Map */\n ? new Map(target)\n : type === 3 /* DraftType.Set */\n ? Array.from(proxyDraft.setMap.values())\n : shallowCopy(target, proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.options);\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 }\n finally {\n proxyDraft.finalized = false;\n }\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 forEach(currentValue, (key, value) => {\n if (proxyDraft && isEqual(get(proxyDraft.original, key), value))\n return;\n const newValue = getCurrent(value);\n if (newValue !== value) {\n if (currentValue === target)\n ensureShallowCopy();\n set(currentValue, key, newValue);\n }\n });\n return type === 3 /* DraftType.Set */ ? new Set(currentValue) : currentValue;\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 */\nfunction current(target) {\n if (!isDraft(target)) {\n throw new Error(`current() is only used for Draft, parameter: ${target}`);\n }\n return getCurrent(target);\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 */\nconst makeCreator = (arg) => {\n if (arg !== undefined &&\n Object.prototype.toString.call(arg) !== '[object Object]') {\n throw new Error(`Invalid options: ${String(arg)}, 'options' should be an object.`);\n }\n return function create(arg0, arg1, arg2) {\n var _a, _b, _c;\n if (typeof arg0 === 'function' && typeof arg1 !== 'function') {\n return function (base, ...args) {\n return create(base, (draft) => arg0.call(this, draft, ...args), arg1);\n };\n }\n const base = arg0;\n const mutate = arg1;\n let options = arg2;\n if (typeof arg1 !== 'function') {\n options = arg1;\n }\n if (options !== undefined &&\n Object.prototype.toString.call(options) !== '[object Object]') {\n throw new Error(`Invalid options: ${options}, 'options' should be an object.`);\n }\n options = Object.assign(Object.assign({}, arg), options);\n const state = isDraft(base) ? current(base) : base;\n const mark = Array.isArray(options.mark)\n ? ((value, types) => {\n for (const mark of options.mark) {\n if (typeof mark !== 'function') {\n throw new Error(`Invalid mark: ${mark}, 'mark' should be a function.`);\n }\n const result = mark(value, types);\n if (result) {\n return result;\n }\n }\n return;\n })\n : options.mark;\n const enablePatches = (_a = options.enablePatches) !== null && _a !== void 0 ? _a : false;\n const strict = (_b = options.strict) !== null && _b !== void 0 ? _b : false;\n const enableAutoFreeze = (_c = options.enableAutoFreeze) !== null && _c !== void 0 ? _c : false;\n const _options = {\n enableAutoFreeze,\n mark,\n strict,\n enablePatches,\n };\n if (!isDraftable(state, _options) &&\n typeof state === 'object' &&\n state !== null) {\n throw new Error(`Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.`);\n }\n const [draft, finalize] = draftify(state, _options);\n if (typeof arg1 !== 'function') {\n if (!isDraftable(state, _options)) {\n throw new Error(`Invalid base state: create() only supports plain objects, arrays, Set, Map or using mark() to mark the state as immutable.`);\n }\n return [draft, finalize];\n }\n let result;\n try {\n result = mutate(draft);\n }\n catch (error) {\n revokeProxy(getProxyDraft(draft));\n throw error;\n }\n const returnValue = (value) => {\n const proxyDraft = getProxyDraft(draft);\n if (!isDraft(value)) {\n if (value !== undefined &&\n !isEqual(value, draft) &&\n (proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.operated)) {\n throw new Error(`Either the value is returned as a new non-draft value, or only the draft is modified without returning any value.`);\n }\n const rawReturnValue = value === null || value === void 0 ? void 0 : value[RAW_RETURN_SYMBOL];\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\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\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 */\nfunction apply(state, patches, applyOptions) {\n let i;\n for (i = patches.length - 1; i >= 0; i -= 1) {\n const { value, op, path } = patches[i];\n if ((!path.length && op === Operation.Replace) ||\n (path === '' && op === Operation.Add)) {\n state = value;\n break;\n }\n }\n if (i > -1) {\n patches = patches.slice(i + 1);\n }\n const mutate = (draft) => {\n patches.forEach((patch) => {\n const { path: _path, op } = patch;\n const path = unescapePath(_path);\n let base = 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 (((parentType === 0 /* DraftType.Object */ ||\n parentType === 1 /* DraftType.Array */) &&\n (key === '__proto__' || key === 'constructor')) ||\n (typeof base === 'function' && key === 'prototype')) {\n throw new Error(`Patching reserved attributes like __proto__ and constructor is not allowed.`);\n }\n // use `index` in Set draft\n base = get(parentType === 3 /* 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 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 2 /* DraftType.Map */:\n return base.set(key, value);\n case 3 /* 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 1 /* 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, 0, value);\n case 2 /* DraftType.Map */:\n return base.set(key, value);\n case 3 /* DraftType.Set */:\n return base.add(value);\n default:\n return (base[key] = value);\n }\n case Operation.Remove:\n switch (type) {\n case 1 /* DraftType.Array */:\n return base.splice(key, 1);\n case 2 /* DraftType.Map */:\n return base.delete(key);\n case 3 /* 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);\n return state;\n }\n return create(state, mutate, Object.assign(Object.assign({}, applyOptions), { enablePatches: false }));\n}\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 */\nfunction original(target) {\n const proxyDraft = getProxyDraft(target);\n if (!proxyDraft) {\n throw new Error(`original() is only used for a draft, parameter: ${target}`);\n }\n return proxyDraft.original;\n}\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 */\nfunction rawReturn(value) {\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 (value !== undefined &&\n (typeof value !== 'object' || value === null)) {\n console.warn('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 return {\n [RAW_RETURN_SYMBOL]: [value],\n };\n}\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) => {\n if (!value || typeof value !== 'object')\n return false;\n const prototype = Object.getPrototypeOf(value);\n if (prototype === null) {\n return true;\n }\n const constructor = Object.hasOwnProperty.call(prototype, 'constructor') &&\n prototype.constructor;\n if (constructor === Object)\n return true;\n return (typeof constructor === 'function' &&\n Function.toString.call(constructor) === constructorString);\n};\nconst markSimpleObject = (value) => {\n if (isSimpleObject(value)) {\n return dataTypes.immutable;\n }\n return;\n};\n\n/**\n * Cast a value to an Draft type value.\n */\nfunction castDraft(value) {\n return value;\n}\n/**\n * Cast a value to an Immutable type value.\n */\nfunction castImmutable(value) {\n return value;\n}\n\nexport { apply, castDraft, castImmutable, create, current, isDraft, isDraftable, makeCreator, markSimpleObject, original, rawReturn, unsafe };\n//# sourceMappingURL=mutative.esm.mjs.map\n",null,null,"/*\n * base64-arraybuffer 1.0.2 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n//# sourceMappingURL=base64-arraybuffer.es5.js.map\n",null,null,null,null,"'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","function y(t) {\n return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, \"default\") ? t.default : t;\n}\nvar I = function(t, r) {\n r || (r = {}), typeof r == \"function\" && (r = { cmp: r });\n var n = typeof r.cycles == \"boolean\" ? r.cycles : !1, e = r.cmp && /* @__PURE__ */ function(s) {\n return function(a) {\n return function(c, i) {\n var m = { key: c, value: a[c] }, f = { key: i, value: a[i] };\n return s(m, f);\n };\n };\n }(r.cmp), o = [];\n return function s(a) {\n if (a && a.toJSON && typeof a.toJSON == \"function\" && (a = a.toJSON()), a !== void 0) {\n if (typeof a == \"number\") return isFinite(a) ? \"\" + a : \"null\";\n if (typeof a != \"object\") return JSON.stringify(a);\n var c, i;\n if (Array.isArray(a)) {\n for (i = \"[\", c = 0; c < a.length; c++)\n c && (i += \",\"), i += s(a[c]) || \"null\";\n return i + \"]\";\n }\n if (a === null) return \"null\";\n if (o.indexOf(a) !== -1) {\n if (n) return JSON.stringify(\"__cycle__\");\n throw new TypeError(\"Converting circular structure to JSON\");\n }\n var m = o.push(a) - 1, f = Object.keys(a).sort(e && e(a));\n for (i = \"\", c = 0; c < f.length; c++) {\n var w = f[c], H = s(a[w]);\n H && (i && (i += \",\"), i += JSON.stringify(w) + \":\" + H);\n }\n return o.splice(m, 1), \"{\" + i + \"}\";\n }\n }(t);\n};\nconst V = /* @__PURE__ */ y(I), P = (t) => d(V(t)), F = (t) => {\n if (t && t.length > 0)\n return JSON.parse(S(t));\n}, d = (t) => btoa(encodeURIComponent(t)), S = (t) => decodeURIComponent(atob(t)), b = (t) => {\n const r = new URL(t);\n return v(r.hash);\n}, v = (t) => {\n let r = t;\n for (; r.startsWith(\"#\"); )\n r = r.substring(1);\n const n = r.indexOf(\"?\");\n if (n === -1)\n return [r, {}];\n const e = r.substring(0, n);\n r = r.substring(n + 1);\n const o = {};\n return r.split(\"&\").filter((s) => s.length > 0).map((s) => {\n const a = s.indexOf(\"=\");\n if (a === -1)\n return [s, \"\"];\n const c = s.substring(0, a), i = s.substring(a + 1);\n return [c, i];\n }).forEach(([s, a]) => {\n o[s] = a;\n }), Object.keys(o).forEach((s) => {\n try {\n o[s] = decodeURI(o[s]);\n } catch {\n o[s] = o[s];\n }\n }), [e, o];\n}, l = (t, r) => {\n const [n, e] = b(t);\n return e[r];\n}, E = (t) => U()[1][t], U = () => b(window.location.href), u = (t, r, n) => {\n const e = window.location.hash.startsWith(\"#\") ? window.location.hash.substring(1) : window.location.hash, o = g(e, t, r);\n o !== e && (n != null && n.modifyHistory ? window.location.hash = o : (window.history.replaceState(null, document.title, `${window.location.pathname}${window.location.search}${o.startsWith(\"#\") ? \"\" : \"#\"}${o}`), window.dispatchEvent(new HashChangeEvent(\"hashchange\"))));\n}, g = (t, r, n) => {\n const [e, o] = v(t);\n let s = !1;\n if (o.hasOwnProperty(r) && n === null || n === void 0 ? (delete o[r], s = !0) : o[r] !== n && (o[r] = n, s = !0), !s)\n return t;\n const a = Object.keys(o);\n a.sort();\n const c = a.map((i, m) => `${i}=${encodeURI(o[i])}`).join(\"&\");\n return `${e}?${c}`;\n}, h = (t, r, n) => {\n const e = new URL(t), o = g(e.hash, r, n);\n return e.hash = o, e.href;\n}, $ = (t, r, n) => {\n const e = new URL(t);\n return e.hash = O(e.hash, r, n), e.href;\n}, p = (t, r) => {\n const n = l(t, r);\n if (n && n !== \"\")\n return F(n);\n}, R = (t, r, n) => {\n const e = r ? P(r) : void 0;\n u(t, e, n);\n}, _ = (t) => p(window.location.href, t), O = (t, r, n) => {\n const e = n ? P(n) : void 0;\n return g(t, r, e);\n}, C = (t, r, n) => h(t, r, n ? n.toString() : void 0), W = (t, r) => {\n const n = l(t, r);\n return n ? parseFloat(n) : void 0;\n}, B = (t, r, n) => {\n u(t, r != null ? r.toString() : void 0, n);\n}, x = (t) => W(window.location.href, t), D = (t, r, n) => h(t, r, n != null ? n.toString() : void 0), J = (t, r) => {\n const n = l(t, r);\n return n ? parseInt(n) : void 0;\n}, L = (t, r, n) => {\n B(t, r, n);\n}, T = (t) => J(window.location.href, t), A = (t, r, n) => h(t, r, n ? \"true\" : void 0), j = (t, r) => l(t, r) === \"true\", q = (t, r, n) => {\n u(t, r ? \"true\" : void 0, n);\n}, M = (t) => j(window.location.href, t), k = (t, r, n) => h(t, r, n == null ? void 0 : d(n)), N = (t, r) => {\n const n = l(t, r);\n return n && n !== \"\" ? S(n) : void 0;\n}, z = (t, r, n) => {\n const e = r == null ? void 0 : d(r);\n u(t, e, n);\n}, G = (t) => N(window.location.href, t), K = (t, r) => {\n u(t, void 0, r);\n}, Q = (t, r) => h(t, r, void 0);\nexport {\n F as blobFromBase64String,\n P as blobToBase64String,\n Q as deleteHashParamFromUrl,\n K as deleteHashParamFromWindow,\n E as getHashParamFromWindow,\n l as getHashParamValue,\n N as getHashParamValueBase64DecodedFromUrl,\n G as getHashParamValueBase64DecodedFromWindow,\n j as getHashParamValueBooleanFromUrl,\n M as getHashParamValueBooleanFromWindow,\n W as getHashParamValueFloatFromUrl,\n x as getHashParamValueFloatFromWindow,\n J as getHashParamValueIntFromUrl,\n T as getHashParamValueIntFromWindow,\n p as getHashParamValueJsonFromUrl,\n _ as getHashParamValueJsonFromWindow,\n U as getHashParamsFromWindow,\n b as getUrlHashParams,\n v as getUrlHashParamsFromHashString,\n u as setHashParamInWindow,\n k as setHashParamValueBase64EncodedInUrl,\n z as setHashParamValueBase64EncodedInWindow,\n A as setHashParamValueBooleanInUrl,\n q as setHashParamValueBooleanInWindow,\n C as setHashParamValueFloatInUrl,\n B as setHashParamValueFloatInWindow,\n g as setHashParamValueInHashString,\n h as setHashParamValueInUrl,\n D as setHashParamValueIntInUrl,\n L as setHashParamValueIntInWindow,\n O as setHashParamValueJsonInHashString,\n $ as setHashParamValueJsonInUrl,\n R as setHashParamValueJsonInWindow,\n S as stringFromBase64String,\n d as stringToBase64String\n};\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n",null,null,null,"'use strict';\n\nconst WIN_SLASH = '\\\\\\\\/';\nconst WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n\n/**\n * Posix glob regex\n */\n\nconst DOT_LITERAL = '\\\\.';\nconst PLUS_LITERAL = '\\\\+';\nconst QMARK_LITERAL = '\\\\?';\nconst SLASH_LITERAL = '\\\\/';\nconst ONE_CHAR = '(?=.)';\nconst QMARK = '[^/]';\nconst END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\nconst START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\nconst DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\nconst NO_DOT = `(?!${DOT_LITERAL})`;\nconst NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\nconst NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\nconst NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\nconst QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\nconst STAR = `${QMARK}*?`;\nconst SEP = '/';\n\nconst POSIX_CHARS = {\n DOT_LITERAL,\n PLUS_LITERAL,\n QMARK_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n QMARK,\n END_ANCHOR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR,\n SEP\n};\n\n/**\n * Windows glob regex\n */\n\nconst WINDOWS_CHARS = {\n ...POSIX_CHARS,\n\n SLASH_LITERAL: `[${WIN_SLASH}]`,\n QMARK: WIN_NO_SLASH,\n STAR: `${WIN_NO_SLASH}*?`,\n DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n NO_DOT: `(?!${DOT_LITERAL})`,\n NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n END_ANCHOR: `(?:[${WIN_SLASH}]|$)`,\n SEP: '\\\\'\n};\n\n/**\n * POSIX Bracket Regex\n */\n\nconst POSIX_REGEX_SOURCE = {\n alnum: 'a-zA-Z0-9',\n alpha: 'a-zA-Z',\n ascii: '\\\\x00-\\\\x7F',\n blank: ' \\\\t',\n cntrl: '\\\\x00-\\\\x1F\\\\x7F',\n digit: '0-9',\n graph: '\\\\x21-\\\\x7E',\n lower: 'a-z',\n print: '\\\\x20-\\\\x7E ',\n punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\n space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\n upper: 'A-Z',\n word: 'A-Za-z0-9_',\n xdigit: 'A-Fa-f0-9'\n};\n\nmodule.exports = {\n MAX_LENGTH: 1024 * 64,\n POSIX_REGEX_SOURCE,\n\n // regular expressions\n REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n\n // Replace globs with equivalent patterns to reduce parsing time.\n REPLACEMENTS: {\n '***': '*',\n '**/**': '**',\n '**/**/**': '**'\n },\n\n // Digits\n CHAR_0: 48, /* 0 */\n CHAR_9: 57, /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 65, /* A */\n CHAR_LOWERCASE_A: 97, /* a */\n CHAR_UPPERCASE_Z: 90, /* Z */\n CHAR_LOWERCASE_Z: 122, /* z */\n\n CHAR_LEFT_PARENTHESES: 40, /* ( */\n CHAR_RIGHT_PARENTHESES: 41, /* ) */\n\n CHAR_ASTERISK: 42, /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: 38, /* & */\n CHAR_AT: 64, /* @ */\n CHAR_BACKWARD_SLASH: 92, /* \\ */\n CHAR_CARRIAGE_RETURN: 13, /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */\n CHAR_COLON: 58, /* : */\n CHAR_COMMA: 44, /* , */\n CHAR_DOT: 46, /* . */\n CHAR_DOUBLE_QUOTE: 34, /* \" */\n CHAR_EQUAL: 61, /* = */\n CHAR_EXCLAMATION_MARK: 33, /* ! */\n CHAR_FORM_FEED: 12, /* \\f */\n CHAR_FORWARD_SLASH: 47, /* / */\n CHAR_GRAVE_ACCENT: 96, /* ` */\n CHAR_HASH: 35, /* # */\n CHAR_HYPHEN_MINUS: 45, /* - */\n CHAR_LEFT_ANGLE_BRACKET: 60, /* < */\n CHAR_LEFT_CURLY_BRACE: 123, /* { */\n CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */\n CHAR_LINE_FEED: 10, /* \\n */\n CHAR_NO_BREAK_SPACE: 160, /* \\u00A0 */\n CHAR_PERCENT: 37, /* % */\n CHAR_PLUS: 43, /* + */\n CHAR_QUESTION_MARK: 63, /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */\n CHAR_RIGHT_CURLY_BRACE: 125, /* } */\n CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */\n CHAR_SEMICOLON: 59, /* ; */\n CHAR_SINGLE_QUOTE: 39, /* ' */\n CHAR_SPACE: 32, /* */\n CHAR_TAB: 9, /* \\t */\n CHAR_UNDERSCORE: 95, /* _ */\n CHAR_VERTICAL_LINE: 124, /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \\uFEFF */\n\n /**\n * Create EXTGLOB_CHARS\n */\n\n extglobChars(chars) {\n return {\n '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },\n '?': { type: 'qmark', open: '(?:', close: ')?' },\n '+': { type: 'plus', open: '(?:', close: ')+' },\n '*': { type: 'star', open: '(?:', close: ')*' },\n '@': { type: 'at', open: '(?:', close: ')' }\n };\n },\n\n /**\n * Create GLOB_CHARS\n */\n\n globChars(win32) {\n return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n }\n};\n","'use strict';\n\nconst {\n REGEX_BACKSLASH,\n REGEX_REMOVE_BACKSLASH,\n REGEX_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_GLOBAL\n} = require('./constants');\n\nexports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\nexports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);\nexports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);\nexports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\\\$1');\nexports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');\n\nexports.removeBackslashes = str => {\n return str.replace(REGEX_REMOVE_BACKSLASH, match => {\n return match === '\\\\' ? '' : match;\n });\n};\n\nexports.supportsLookbehinds = () => {\n const segs = process.version.slice(1).split('.').map(Number);\n if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) {\n return true;\n }\n return false;\n};\n\nexports.escapeLast = (input, char, lastIdx) => {\n const idx = input.lastIndexOf(char, lastIdx);\n if (idx === -1) return input;\n if (input[idx - 1] === '\\\\') return exports.escapeLast(input, char, idx - 1);\n return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n};\n\nexports.removePrefix = (input, state = {}) => {\n let output = input;\n if (output.startsWith('./')) {\n output = output.slice(2);\n state.prefix = './';\n }\n return output;\n};\n\nexports.wrapOutput = (input, state = {}, options = {}) => {\n const prepend = options.contains ? '' : '^';\n const append = options.contains ? '' : '$';\n\n let output = `${prepend}(?:${input})${append}`;\n if (state.negated === true) {\n output = `(?:^(?!${output}).*$)`;\n }\n return output;\n};\n\nexports.basename = (path, { windows } = {}) => {\n if (windows) {\n return path.replace(/[\\\\/]$/, '').replace(/.*[\\\\/]/, '');\n } else {\n return path.replace(/\\/$/, '').replace(/.*\\//, '');\n }\n};\n","'use strict';\n\nconst utils = require('./utils');\nconst {\n CHAR_ASTERISK, /* * */\n CHAR_AT, /* @ */\n CHAR_BACKWARD_SLASH, /* \\ */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_EXCLAMATION_MARK, /* ! */\n CHAR_FORWARD_SLASH, /* / */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_PLUS, /* + */\n CHAR_QUESTION_MARK, /* ? */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_RIGHT_SQUARE_BRACKET /* ] */\n} = require('./constants');\n\nconst isPathSeparator = code => {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n};\n\nconst depth = token => {\n if (token.isPrefix !== true) {\n token.depth = token.isGlobstar ? Infinity : 1;\n }\n};\n\n/**\n * Quickly scans a glob pattern and returns an object with a handful of\n * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),\n * `glob` (the actual pattern), and `negated` (true if the path starts with `!`).\n *\n * ```js\n * const pm = require('picomatch');\n * console.log(pm.scan('foo/bar/*.js'));\n * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an object with tokens and regex source string.\n * @api public\n */\n\nconst scan = (input, options) => {\n const opts = options || {};\n\n const length = input.length - 1;\n const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n const slashes = [];\n const tokens = [];\n const parts = [];\n\n let str = input;\n let index = -1;\n let start = 0;\n let lastIndex = 0;\n let isBrace = false;\n let isBracket = false;\n let isGlob = false;\n let isExtglob = false;\n let isGlobstar = false;\n let braceEscaped = false;\n let backslashes = false;\n let negated = false;\n let finished = false;\n let braces = 0;\n let prev;\n let code;\n let token = { value: '', depth: 0, isGlob: false };\n\n const eos = () => index >= length;\n const peek = () => str.charCodeAt(index + 1);\n const advance = () => {\n prev = code;\n return str.charCodeAt(++index);\n };\n\n while (index < length) {\n code = advance();\n let next;\n\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braceEscaped = true;\n }\n continue;\n }\n\n if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n continue;\n }\n\n if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (braceEscaped !== true && code === CHAR_COMMA) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_RIGHT_CURLY_BRACE) {\n braces--;\n\n if (braces === 0) {\n braceEscaped = false;\n isBrace = token.isBrace = true;\n finished = true;\n break;\n }\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_FORWARD_SLASH) {\n slashes.push(index);\n tokens.push(token);\n token = { value: '', depth: 0, isGlob: false };\n\n if (finished === true) continue;\n if (prev === CHAR_DOT && index === (start + 1)) {\n start += 2;\n continue;\n }\n\n lastIndex = index + 1;\n continue;\n }\n\n if (opts.noext !== true) {\n const isExtglobChar = code === CHAR_PLUS\n || code === CHAR_AT\n || code === CHAR_ASTERISK\n || code === CHAR_QUESTION_MARK\n || code === CHAR_EXCLAMATION_MARK;\n\n if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n isExtglob = token.isExtglob = true;\n finished = true;\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n }\n\n if (code === CHAR_ASTERISK) {\n if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_QUESTION_MARK) {\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_LEFT_SQUARE_BRACKET) {\n while (eos() !== true && (next = advance())) {\n if (next === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n isBracket = token.isBracket = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n }\n }\n\n if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n negated = token.negated = true;\n start++;\n continue;\n }\n\n if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_LEFT_PARENTHESES) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n\n if (isGlob === true) {\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n }\n\n if (opts.noext === true) {\n isExtglob = false;\n isGlob = false;\n }\n\n let base = str;\n let prefix = '';\n let glob = '';\n\n if (start > 0) {\n prefix = str.slice(0, start);\n str = str.slice(start);\n lastIndex -= start;\n }\n\n if (base && isGlob === true && lastIndex > 0) {\n base = str.slice(0, lastIndex);\n glob = str.slice(lastIndex);\n } else if (isGlob === true) {\n base = '';\n glob = str;\n } else {\n base = str;\n }\n\n if (base && base !== '' && base !== '/' && base !== str) {\n if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n base = base.slice(0, -1);\n }\n }\n\n if (opts.unescape === true) {\n if (glob) glob = utils.removeBackslashes(glob);\n\n if (base && backslashes === true) {\n base = utils.removeBackslashes(base);\n }\n }\n\n const state = {\n prefix,\n input,\n start,\n base,\n glob,\n isBrace,\n isBracket,\n isGlob,\n isExtglob,\n isGlobstar,\n negated\n };\n\n if (opts.tokens === true) {\n state.maxDepth = 0;\n if (!isPathSeparator(code)) {\n tokens.push(token);\n }\n state.tokens = tokens;\n }\n\n if (opts.parts === true || opts.tokens === true) {\n let prevIndex;\n\n for (let idx = 0; idx < slashes.length; idx++) {\n const n = prevIndex ? prevIndex + 1 : start;\n const i = slashes[idx];\n const value = input.slice(n, i);\n if (opts.tokens) {\n if (idx === 0 && start !== 0) {\n tokens[idx].isPrefix = true;\n tokens[idx].value = prefix;\n } else {\n tokens[idx].value = value;\n }\n depth(tokens[idx]);\n state.maxDepth += tokens[idx].depth;\n }\n if (idx !== 0 || value !== '') {\n parts.push(value);\n }\n prevIndex = i;\n }\n\n if (prevIndex && prevIndex + 1 < input.length) {\n const value = input.slice(prevIndex + 1);\n parts.push(value);\n\n if (opts.tokens) {\n tokens[tokens.length - 1].value = value;\n depth(tokens[tokens.length - 1]);\n state.maxDepth += tokens[tokens.length - 1].depth;\n }\n }\n\n state.slashes = slashes;\n state.parts = parts;\n }\n\n return state;\n};\n\nmodule.exports = scan;\n","'use strict';\n\nconst constants = require('./constants');\nconst utils = require('./utils');\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n POSIX_REGEX_SOURCE,\n REGEX_NON_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_BACKREF,\n REPLACEMENTS\n} = constants;\n\n/**\n * Helpers\n */\n\nconst expandRange = (args, options) => {\n if (typeof options.expandRange === 'function') {\n return options.expandRange(...args, options);\n }\n\n args.sort();\n const value = `[${args.join('-')}]`;\n\n try {\n /* eslint-disable-next-line no-new */\n new RegExp(value);\n } catch (ex) {\n return args.map(v => utils.escapeRegex(v)).join('..');\n }\n\n return value;\n};\n\n/**\n * Create the message for a syntax error\n */\n\nconst syntaxError = (type, char) => {\n return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n};\n\n/**\n * Parse the given input string.\n * @param {String} input\n * @param {Object} options\n * @return {Object}\n */\n\nconst parse = (input, options) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n input = REPLACEMENTS[input] || input;\n\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n\n let len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n const bos = { type: 'bos', value: '', output: opts.prepend || '' };\n const tokens = [bos];\n\n const capture = opts.capture ? '' : '?:';\n\n // create constants based on platform, for windows or posix\n const PLATFORM_CHARS = constants.globChars(opts.windows);\n const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n\n const {\n DOT_LITERAL,\n PLUS_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n } = PLATFORM_CHARS;\n\n const globstar = (opts) => {\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const nodot = opts.dot ? '' : NO_DOT;\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n let star = opts.bash === true ? globstar(opts) : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n // minimatch options support\n if (typeof opts.noext === 'boolean') {\n opts.noextglob = opts.noext;\n }\n\n const state = {\n input,\n index: -1,\n start: 0,\n dot: opts.dot === true,\n consumed: '',\n output: '',\n prefix: '',\n backtrack: false,\n negated: false,\n brackets: 0,\n braces: 0,\n parens: 0,\n quotes: 0,\n globstar: false,\n tokens\n };\n\n input = utils.removePrefix(input, state);\n len = input.length;\n\n const extglobs = [];\n const braces = [];\n const stack = [];\n let prev = bos;\n let value;\n\n /**\n * Tokenizing helpers\n */\n\n const eos = () => state.index === len - 1;\n const peek = state.peek = (n = 1) => input[state.index + n];\n const advance = state.advance = () => input[++state.index];\n const remaining = () => input.slice(state.index + 1);\n const consume = (value = '', num = 0) => {\n state.consumed += value;\n state.index += num;\n };\n const append = token => {\n state.output += token.output != null ? token.output : token.value;\n consume(token.value);\n };\n\n const negate = () => {\n let count = 1;\n\n while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\n advance();\n state.start++;\n count++;\n }\n\n if (count % 2 === 0) {\n return false;\n }\n\n state.negated = true;\n state.start++;\n return true;\n };\n\n const increment = type => {\n state[type]++;\n stack.push(type);\n };\n\n const decrement = type => {\n state[type]--;\n stack.pop();\n };\n\n /**\n * Push tokens onto the tokens array. This helper speeds up\n * tokenizing by 1) helping us avoid backtracking as much as possible,\n * and 2) helping us avoid creating extra tokens when consecutive\n * characters are plain text. This improves performance and simplifies\n * lookbehinds.\n */\n\n const push = tok => {\n if (prev.type === 'globstar') {\n const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\n const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\n\n if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = 'star';\n prev.value = '*';\n prev.output = star;\n state.output += prev.output;\n }\n }\n\n if (extglobs.length && tok.type !== 'paren' && !EXTGLOB_CHARS[tok.value]) {\n extglobs[extglobs.length - 1].inner += tok.value;\n }\n\n if (tok.value || tok.output) append(tok);\n if (prev && prev.type === 'text' && tok.type === 'text') {\n prev.value += tok.value;\n prev.output = (prev.output || '') + tok.value;\n return;\n }\n\n tok.prev = prev;\n tokens.push(tok);\n prev = tok;\n };\n\n const extglobOpen = (type, value) => {\n const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\n\n token.prev = prev;\n token.parens = state.parens;\n token.output = state.output;\n const output = (opts.capture ? '(' : '') + token.open;\n\n increment('parens');\n push({ type, value, output: state.output ? '' : ONE_CHAR });\n push({ type: 'paren', extglob: true, value: advance(), output });\n extglobs.push(token);\n };\n\n const extglobClose = token => {\n let output = token.close + (opts.capture ? ')' : '');\n\n if (token.type === 'negate') {\n let extglobStar = star;\n\n if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\n extglobStar = globstar(opts);\n }\n\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n output = token.close = `)$))${extglobStar}`;\n }\n\n if (token.prev.type === 'bos' && eos()) {\n state.negatedExtglob = true;\n }\n }\n\n push({ type: 'paren', extglob: true, value, output });\n decrement('parens');\n };\n\n /**\n * Fast paths\n */\n\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n let backslashes = false;\n\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n if (first === '\\\\') {\n backslashes = true;\n return m;\n }\n\n if (first === '?') {\n if (esc) {\n return esc + first + (rest ? QMARK.repeat(rest.length) : '');\n }\n if (index === 0) {\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\n }\n return QMARK.repeat(chars.length);\n }\n\n if (first === '.') {\n return DOT_LITERAL.repeat(chars.length);\n }\n\n if (first === '*') {\n if (esc) {\n return esc + first + (rest ? star : '');\n }\n return star;\n }\n return esc ? m : `\\\\${m}`;\n });\n\n if (backslashes === true) {\n if (opts.unescape === true) {\n output = output.replace(/\\\\/g, '');\n } else {\n output = output.replace(/\\\\+/g, m => {\n return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\n });\n }\n }\n\n if (output === input && opts.contains === true) {\n state.output = input;\n return state;\n }\n\n state.output = utils.wrapOutput(output, state, options);\n return state;\n }\n\n /**\n * Tokenize input until we reach end-of-string\n */\n\n while (!eos()) {\n value = advance();\n\n if (value === '\\u0000') {\n continue;\n }\n\n /**\n * Escaped characters\n */\n\n if (value === '\\\\') {\n const next = peek();\n\n if (next === '/' && opts.bash !== true) {\n continue;\n }\n\n if (next === '.' || next === ';') {\n continue;\n }\n\n if (!next) {\n value += '\\\\';\n push({ type: 'text', value });\n continue;\n }\n\n // collapse slashes to reduce potential for exploits\n const match = /^\\\\+/.exec(remaining());\n let slashes = 0;\n\n if (match && match[0].length > 2) {\n slashes = match[0].length;\n state.index += slashes;\n if (slashes % 2 !== 0) {\n value += '\\\\';\n }\n }\n\n if (opts.unescape === true) {\n value = advance() || '';\n } else {\n value += advance() || '';\n }\n\n if (state.brackets === 0) {\n push({ type: 'text', value });\n continue;\n }\n }\n\n /**\n * If we're inside a regex character class, continue\n * until we reach the closing bracket.\n */\n\n if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\n if (opts.posix !== false && value === ':') {\n const inner = prev.value.slice(1);\n if (inner.includes('[')) {\n prev.posix = true;\n\n if (inner.includes(':')) {\n const idx = prev.value.lastIndexOf('[');\n const pre = prev.value.slice(0, idx);\n const rest = prev.value.slice(idx + 2);\n const posix = POSIX_REGEX_SOURCE[rest];\n if (posix) {\n prev.value = pre + posix;\n state.backtrack = true;\n advance();\n\n if (!bos.output && tokens.indexOf(prev) === 1) {\n bos.output = ONE_CHAR;\n }\n continue;\n }\n }\n }\n }\n\n if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\n value = `\\\\${value}`;\n }\n\n if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\n value = `\\\\${value}`;\n }\n\n if (opts.posix === true && value === '!' && prev.value === '[') {\n value = '^';\n }\n\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * If we're inside a quoted string, continue\n * until we reach the closing double quote.\n */\n\n if (state.quotes === 1 && value !== '\"') {\n value = utils.escapeRegex(value);\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * Double quotes\n */\n\n if (value === '\"') {\n state.quotes = state.quotes === 1 ? 0 : 1;\n if (opts.keepQuotes === true) {\n push({ type: 'text', value });\n }\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === '(') {\n increment('parens');\n push({ type: 'paren', value });\n continue;\n }\n\n if (value === ')') {\n if (state.parens === 0 && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '('));\n }\n\n const extglob = extglobs[extglobs.length - 1];\n if (extglob && state.parens === extglob.parens + 1) {\n extglobClose(extglobs.pop());\n continue;\n }\n\n push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\n decrement('parens');\n continue;\n }\n\n /**\n * Square brackets\n */\n\n if (value === '[') {\n if (opts.nobracket === true || !remaining().includes(']')) {\n if (opts.nobracket !== true && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('closing', ']'));\n }\n\n value = `\\\\${value}`;\n } else {\n increment('brackets');\n }\n\n push({ type: 'bracket', value });\n continue;\n }\n\n if (value === ']') {\n if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n if (state.brackets === 0) {\n if (opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '['));\n }\n\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n decrement('brackets');\n\n const prevValue = prev.value.slice(1);\n if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\n value = `/${value}`;\n }\n\n prev.value += value;\n append({ value });\n\n // when literal brackets are explicitly disabled\n // assume we should match with a regex character class\n if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n continue;\n }\n\n const escaped = utils.escapeRegex(prev.value);\n state.output = state.output.slice(0, -prev.value.length);\n\n // when literal brackets are explicitly enabled\n // assume we should escape the brackets to match literal characters\n if (opts.literalBrackets === true) {\n state.output += escaped;\n prev.value = escaped;\n continue;\n }\n\n // when the user specifies nothing, try to match both\n prev.value = `(${capture}${escaped}|${prev.value})`;\n state.output += prev.value;\n continue;\n }\n\n /**\n * Braces\n */\n\n if (value === '{' && opts.nobrace !== true) {\n increment('braces');\n\n const open = {\n type: 'brace',\n value,\n output: '(',\n outputIndex: state.output.length,\n tokensIndex: state.tokens.length\n };\n\n braces.push(open);\n push(open);\n continue;\n }\n\n if (value === '}') {\n const brace = braces[braces.length - 1];\n\n if (opts.nobrace === true || !brace) {\n push({ type: 'text', value, output: value });\n continue;\n }\n\n let output = ')';\n\n if (brace.dots === true) {\n const arr = tokens.slice();\n const range = [];\n\n for (let i = arr.length - 1; i >= 0; i--) {\n tokens.pop();\n if (arr[i].type === 'brace') {\n break;\n }\n if (arr[i].type !== 'dots') {\n range.unshift(arr[i].value);\n }\n }\n\n output = expandRange(range, opts);\n state.backtrack = true;\n }\n\n if (brace.comma !== true && brace.dots !== true) {\n const out = state.output.slice(0, brace.outputIndex);\n const toks = state.tokens.slice(brace.tokensIndex);\n brace.value = brace.output = '\\\\{';\n value = output = '\\\\}';\n state.output = out;\n for (const t of toks) {\n state.output += (t.output || t.value);\n }\n }\n\n push({ type: 'brace', value, output });\n decrement('braces');\n braces.pop();\n continue;\n }\n\n /**\n * Pipes\n */\n\n if (value === '|') {\n if (extglobs.length > 0) {\n extglobs[extglobs.length - 1].conditions++;\n }\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Commas\n */\n\n if (value === ',') {\n let output = value;\n\n const brace = braces[braces.length - 1];\n if (brace && stack[stack.length - 1] === 'braces') {\n brace.comma = true;\n output = '|';\n }\n\n push({ type: 'comma', value, output });\n continue;\n }\n\n /**\n * Slashes\n */\n\n if (value === '/') {\n // if the beginning of the glob is \"./\", advance the start\n // to the current index, and don't add the \"./\" characters\n // to the state. This greatly simplifies lookbehinds when\n // checking for BOS characters like \"!\" and \".\" (not \"./\")\n if (prev.type === 'dot' && state.index === state.start + 1) {\n state.start = state.index + 1;\n state.consumed = '';\n state.output = '';\n tokens.pop();\n prev = bos; // reset \"prev\" to the first token\n continue;\n }\n\n push({ type: 'slash', value, output: SLASH_LITERAL });\n continue;\n }\n\n /**\n * Dots\n */\n\n if (value === '.') {\n if (state.braces > 0 && prev.type === 'dot') {\n if (prev.value === '.') prev.output = DOT_LITERAL;\n const brace = braces[braces.length - 1];\n prev.type = 'dots';\n prev.output += value;\n prev.value += value;\n brace.dots = true;\n continue;\n }\n\n if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\n push({ type: 'text', value, output: DOT_LITERAL });\n continue;\n }\n\n push({ type: 'dot', value, output: DOT_LITERAL });\n continue;\n }\n\n /**\n * Question marks\n */\n\n if (value === '?') {\n const isGroup = prev && prev.value === '(';\n if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('qmark', value);\n continue;\n }\n\n if (prev && prev.type === 'paren') {\n const next = peek();\n let output = value;\n\n if (next === '<' && !utils.supportsLookbehinds()) {\n throw new Error('Node.js v10 or higher is required for regex lookbehinds');\n }\n\n if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\n output = `\\\\${value}`;\n }\n\n push({ type: 'text', value, output });\n continue;\n }\n\n if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\n push({ type: 'qmark', value, output: QMARK_NO_DOT });\n continue;\n }\n\n push({ type: 'qmark', value, output: QMARK });\n continue;\n }\n\n /**\n * Exclamation\n */\n\n if (value === '!') {\n if (opts.noextglob !== true && peek() === '(') {\n if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\n extglobOpen('negate', value);\n continue;\n }\n }\n\n if (opts.nonegate !== true && state.index === 0) {\n negate();\n continue;\n }\n }\n\n /**\n * Plus\n */\n\n if (value === '+') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('plus', value);\n continue;\n }\n\n if ((prev && prev.value === '(') || opts.regex === false) {\n push({ type: 'plus', value, output: PLUS_LITERAL });\n continue;\n }\n\n if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\n push({ type: 'plus', value });\n continue;\n }\n\n push({ type: 'plus', value: PLUS_LITERAL });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value === '@') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n push({ type: 'at', extglob: true, value, output: '' });\n continue;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value !== '*') {\n if (value === '$' || value === '^') {\n value = `\\\\${value}`;\n }\n\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n if (match) {\n value += match[0];\n state.index += match[0].length;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Stars\n */\n\n if (prev && (prev.type === 'globstar' || prev.star === true)) {\n prev.type = 'star';\n prev.star = true;\n prev.value += value;\n prev.output = star;\n state.backtrack = true;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n let rest = remaining();\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n extglobOpen('star', value);\n continue;\n }\n\n if (prev.type === 'star') {\n if (opts.noglobstar === true) {\n consume(value);\n continue;\n }\n\n const prior = prev.prev;\n const before = prior.prev;\n const isStart = prior.type === 'slash' || prior.type === 'bos';\n const afterStar = before && (before.type === 'star' || before.type === 'globstar');\n\n if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\n const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\n if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n // strip consecutive `/**/`\n while (rest.slice(0, 3) === '/**') {\n const after = input[state.index + 4];\n if (after && after !== '/') {\n break;\n }\n rest = rest.slice(3);\n consume('/**', 3);\n }\n\n if (prior.type === 'bos' && eos()) {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = globstar(opts);\n state.output = prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\n prev.value += value;\n state.globstar = true;\n state.output += prior.output + prev.output;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\n const end = rest[1] !== void 0 ? '|$' : '';\n\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n prev.value += value;\n\n state.output += prior.output + prev.output;\n state.globstar = true;\n\n consume(value + advance());\n\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n if (prior.type === 'bos' && rest[0] === '/') {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n state.output = prev.output;\n state.globstar = true;\n consume(value + advance());\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n // remove single star from output\n state.output = state.output.slice(0, -prev.output.length);\n\n // reset previous token to globstar\n prev.type = 'globstar';\n prev.output = globstar(opts);\n prev.value += value;\n\n // reset output with globstar\n state.output += prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n const token = { type: 'star', value, output: star };\n\n if (opts.bash === true) {\n token.output = '.*?';\n if (prev.type === 'bos' || prev.type === 'slash') {\n token.output = nodot + token.output;\n }\n push(token);\n continue;\n }\n\n if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\n token.output = value;\n push(token);\n continue;\n }\n\n if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\n if (prev.type === 'dot') {\n state.output += NO_DOT_SLASH;\n prev.output += NO_DOT_SLASH;\n\n } else if (opts.dot === true) {\n state.output += NO_DOTS_SLASH;\n prev.output += NO_DOTS_SLASH;\n\n } else {\n state.output += nodot;\n prev.output += nodot;\n }\n\n if (peek() !== '*') {\n state.output += ONE_CHAR;\n prev.output += ONE_CHAR;\n }\n }\n\n push(token);\n }\n\n while (state.brackets > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\n state.output = utils.escapeLast(state.output, '[');\n decrement('brackets');\n }\n\n while (state.parens > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\n state.output = utils.escapeLast(state.output, '(');\n decrement('parens');\n }\n\n while (state.braces > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\n state.output = utils.escapeLast(state.output, '{');\n decrement('braces');\n }\n\n if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\n push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\n }\n\n // rebuild the output if we had to backtrack at any point\n if (state.backtrack === true) {\n state.output = '';\n\n for (const token of state.tokens) {\n state.output += token.output != null ? token.output : token.value;\n\n if (token.suffix) {\n state.output += token.suffix;\n }\n }\n }\n\n return state;\n};\n\n/**\n * Fast paths for creating regular expressions for common glob patterns.\n * This can significantly speed up processing and has very little downside\n * impact when none of the fast paths match.\n */\n\nparse.fastpaths = (input, options) => {\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n const len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n input = REPLACEMENTS[input] || input;\n\n // create constants based on platform, for windows or posix\n const {\n DOT_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOTS_SLASH,\n STAR,\n START_ANCHOR\n } = constants.globChars(opts.windows);\n\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n const capture = opts.capture ? '' : '?:';\n const state = { negated: false, prefix: '' };\n let star = opts.bash === true ? '.*?' : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n const globstar = (opts) => {\n if (opts.noglobstar === true) return star;\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const create = str => {\n switch (str) {\n case '*':\n return `${nodot}${ONE_CHAR}${star}`;\n\n case '.*':\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*.*':\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*/*':\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n\n case '**':\n return nodot + globstar(opts);\n\n case '**/*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n\n case '**/*.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '**/.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n default: {\n const match = /^(.*?)\\.(\\w+)$/.exec(str);\n if (!match) return;\n\n const source = create(match[1]);\n if (!source) return;\n\n return source + DOT_LITERAL + match[2];\n }\n }\n };\n\n const output = utils.removePrefix(input, state);\n let source = create(output);\n\n if (source && opts.strictSlashes !== true) {\n source += `${SLASH_LITERAL}?`;\n }\n\n return source;\n};\n\nmodule.exports = parse;\n","'use strict';\n\nconst scan = require('./scan');\nconst parse = require('./parse');\nconst utils = require('./utils');\nconst constants = require('./constants');\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\n\n/**\n * Creates a matcher function from one or more glob patterns. The\n * returned function takes a string to match as its first argument,\n * and returns true if the string is a match. The returned matcher\n * function also takes a boolean as the second argument that, when true,\n * returns an object with additional information.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch(glob[, options]);\n *\n * const isMatch = picomatch('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @name picomatch\n * @param {String|Array} `globs` One or more glob patterns.\n * @param {Object=} `options`\n * @return {Function=} Returns a matcher function.\n * @api public\n */\n\nconst picomatch = (glob, options, returnState = false) => {\n if (Array.isArray(glob)) {\n const fns = glob.map(input => picomatch(input, options, returnState));\n const arrayMatcher = str => {\n for (const isMatch of fns) {\n const state = isMatch(str);\n if (state) return state;\n }\n return false;\n };\n return arrayMatcher;\n }\n\n const isState = isObject(glob) && glob.tokens && glob.input;\n\n if (glob === '' || (typeof glob !== 'string' && !isState)) {\n throw new TypeError('Expected pattern to be a non-empty string');\n }\n\n const opts = options || {};\n const posix = opts.windows;\n const regex = isState\n ? picomatch.compileRe(glob, options)\n : picomatch.makeRe(glob, options, false, true);\n\n const state = regex.state;\n delete regex.state;\n\n let isIgnored = () => false;\n if (opts.ignore) {\n const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\n isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);\n }\n\n const matcher = (input, returnObject = false) => {\n const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });\n const result = { glob, state, regex, posix, input, output, match, isMatch };\n\n if (typeof opts.onResult === 'function') {\n opts.onResult(result);\n }\n\n if (isMatch === false) {\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (isIgnored(input)) {\n if (typeof opts.onIgnore === 'function') {\n opts.onIgnore(result);\n }\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (typeof opts.onMatch === 'function') {\n opts.onMatch(result);\n }\n return returnObject ? result : true;\n };\n\n if (returnState) {\n matcher.state = state;\n }\n\n return matcher;\n};\n\n/**\n * Test `input` with the given `regex`. This is used by the main\n * `picomatch()` function to test the input string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.test(input, regex[, options]);\n *\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp} `regex`\n * @return {Object} Returns an object with matching info.\n * @api public\n */\n\npicomatch.test = (input, regex, options, { glob, posix } = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected input to be a string');\n }\n\n if (input === '') {\n return { isMatch: false, output: '' };\n }\n\n const opts = options || {};\n const format = opts.format || (posix ? utils.toPosixSlashes : null);\n let match = input === glob;\n let output = (match && format) ? format(input) : input;\n\n if (match === false) {\n output = format ? format(input) : input;\n match = output === glob;\n }\n\n if (match === false || opts.capture === true) {\n if (opts.matchBase === true || opts.basename === true) {\n match = picomatch.matchBase(input, regex, options, posix);\n } else {\n match = regex.exec(output);\n }\n }\n\n return { isMatch: Boolean(match), match, output };\n};\n\n/**\n * Match the basename of a filepath.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.matchBase(input, glob[, options]);\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\n * @return {Boolean}\n * @api public\n */\n\npicomatch.matchBase = (input, glob, options) => {\n const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);\n return regex.test(utils.basename(input));\n};\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.isMatch(string, patterns[, options]);\n *\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String|Array} str The string to test.\n * @param {String|Array} patterns One or more glob patterns to use for matching.\n * @param {Object} [options] See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\npicomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const result = picomatch.parse(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\n * @api public\n */\n\npicomatch.parse = (pattern, options) => {\n if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));\n return parse(pattern, { ...options, fastpaths: false });\n};\n\n/**\n * Scan a glob pattern to separate the pattern into segments.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.scan(input[, options]);\n *\n * const result = picomatch.scan('!./foo/*.js');\n * console.log(result);\n * { prefix: '!./',\n * input: '!./foo/*.js',\n * start: 3,\n * base: 'foo',\n * glob: '*.js',\n * isBrace: false,\n * isBracket: false,\n * isGlob: true,\n * isExtglob: false,\n * isGlobstar: false,\n * negated: true }\n * ```\n * @param {String} `input` Glob pattern to scan.\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\npicomatch.scan = (input, options) => scan(input, options);\n\n/**\n * Create a regular expression from a parsed glob pattern.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const state = picomatch.parse('*.js');\n * // picomatch.compileRe(state[, options]);\n *\n * console.log(picomatch.compileRe(state));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `state` The object returned from the `.parse` method.\n * @param {Object} `options`\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\npicomatch.compileRe = (parsed, options, returnOutput = false, returnState = false) => {\n if (returnOutput === true) {\n return parsed.output;\n }\n\n const opts = options || {};\n const prepend = opts.contains ? '' : '^';\n const append = opts.contains ? '' : '$';\n\n let source = `${prepend}(?:${parsed.output})${append}`;\n if (parsed && parsed.negated === true) {\n source = `^(?!${source}).*$`;\n }\n\n const regex = picomatch.toRegex(source, options);\n if (returnState === true) {\n regex.state = parsed;\n }\n\n return regex;\n};\n\npicomatch.makeRe = (input, options, returnOutput = false, returnState = false) => {\n if (!input || typeof input !== 'string') {\n throw new TypeError('Expected a non-empty string');\n }\n\n const opts = options || {};\n let parsed = { negated: false, fastpaths: true };\n let prefix = '';\n let output;\n\n if (input.startsWith('./')) {\n input = input.slice(2);\n prefix = parsed.prefix = './';\n }\n\n if (opts.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\n output = parse.fastpaths(input, options);\n }\n\n if (output === undefined) {\n parsed = parse(input, options);\n parsed.prefix = prefix + (parsed.prefix || '');\n } else {\n parsed.output = output;\n }\n\n return picomatch.compileRe(parsed, options, returnOutput, returnState);\n};\n\n/**\n * Create a regular expression from the given regex source string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.toRegex(source[, options]);\n *\n * const { output } = picomatch.parse('*.js');\n * console.log(picomatch.toRegex(output));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `source` Regular expression source string.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\npicomatch.toRegex = (source, options) => {\n try {\n const opts = options || {};\n return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\n } catch (err) {\n if (options && options.debug === true) throw err;\n return /$^/;\n }\n};\n\n/**\n * Picomatch constants.\n * @return {Object}\n */\n\npicomatch.constants = constants;\n\n/**\n * Expose \"picomatch\"\n */\n\nmodule.exports = picomatch;\n","'use strict';\n\nmodule.exports = require('./lib/picomatch');\n",null,null,null],"names":["MetaframeVersionsAll","MetapageVersionsAll","MetaframeVersionCurrent","MetapageVersionCurrent","METAFRAME_JSON_FILE","METAPAGE_KEY_DEFINITION","METAPAGE_KEY_STATE","VERSION_METAPAGE","VERSION_METAFRAME","semver","validateAndParse","version","match","isWildcard","s","tryParse","v","n","forceType","a","b","compareStrings","ap","bp","compareSegments","i","r","compareVersions","v1","v2","n1","n2","p1","p2","global","factory","module","this","fetchRetry","fetch","defaults","ArgumentError","isPositiveInteger","baseDefaults","input","init","retries","retryDelay","retryOn","resolve","reject","wrappedFetch","attempt","_input","response","retryOnResponse","retry","error","delay","value","message","Operation","PROXY_DRAFT","RAW_RETURN_SYMBOL","iteratorSymbol","dataTypes","internal","has","target","key","getDescriptor","prototype","descriptor","latest","proxyDraft","_a","isDraft","getProxyDraft","getValue","isDraftable","options","markResult","getPath","path","parentCopy","get","isSet","resolvePath","getType","set","peek","state","isEqual","x","y","revokeProxy","escapePath","pathAsArray","_item","item","base","index","strictCopy","copy","desc","propIsEnum","shallowCopy","original","ensureShallowCopy","deepClone","k","cloneIfNeeded","markChanged","throwFrozenError","deepFreeze","subKey","updatedValues","stack","keys","parent","name","forEach","iter","type","entry","handleValue","handledSet","setMap","updatedValue","values","finalizeAssigned","finalizeSetValue","finalizePatches","generatePatches","patches","inversePatches","basePath","markFinalization","generateArrayPatches","proxyState","assignedMap","_path","arrayLengthAssignment","generatePatchesFromAssigned","assignedValue","originalValue","op","generateSetPatches","readable","checkReadable","ignoreCheckDraftable","mapHandler","source","callback","thisArg","_value","_key","_b","mutable","draft","iterator","result","mapHandlerKeys","getNextIterator","isValuesIterator","currentDraft","proxy","setHandler","valueProxyDraft","setHandlerKeys","draftsCache","proxyHandler","receiver","handle","createDraft","subProxyDraft","current","currentProxyDraft","createDraftOptions","parentDraft","finalities","revoke","oldProxyDraft","finalizeDraft","returnedValue","enableAutoFreeze","hasReturnedValue","draftify","baseState","finalizedState","finalizedPatches","finalizedInversePatches","handleReturnValue","rootDraft","useRawReturn","isRoot","currentValue","arr","getCurrent","newValue","makeCreator","arg","create","arg0","arg1","arg2","_c","args","mutate","mark","types","enablePatches","strict","_options","finalize","returnValue","rawReturnValue","returnedProxyDraft","fetchRetryWrapper","convertMetapageDefinitionToVersion","def","targetVersion","err","convertMetapageDefinitionToTargetVersionInternal","convertMetapageDefinitionToCurrentVersion","currentVersion","getMatchingMetapageVersion","currentDefinition","definition_v0_2_to_v0_3","definition_v0_3_to_v1","definition_v0_3_to_v0_2","definition_v1_to_v0_3","old","castV1","convertMetaframeDefinitionToVersion","convertMetaframeDefinitionToTargetVersionInternal","convertMetaframeDefinitionToCurrentVersion","getMatchingMetaframeVersion","definition_v0_3_to_v0_4","definition_v0_4_to_v0_5","definition_v0_4_to_v0_3","definition_v0_5_to_v0_6","definition_v0_5_to_v0_4","definition_v0_6_to_v1","definition_v0_6_to_v0_5","definition_v1_to_v0_6","convertMetaframeJsonToCurrentVersion","m","opts","title","descriptionUrl","keywords","decription","tags","chars","lookup","encode","arraybuffer","bytes","len","base64","decode","bufferLength","p","encoded1","encoded2","encoded3","encoded4","serializeInputs","inputs","maybeNewObject","possiblySerializeValueToDataref","deserializeInputs","possiblyDeserializeDatarefToValue","valueToFile","fileName","buffer","typedValue","blob","replacement","arrayBuffer","serializedRef","serializedRefBlob","serializedRefFile","serializedRefTypedArray","constructorName","possiblyDeserializeDatarefToFile","typedArray","MetapageEvents","JsonRpcMethodsFromChild","JsonRpcMethodsFromParent","PARSE_ERROR","INVALID_REQUEST","METHOD_NOT_FOUND","INVALID_PARAMS","INTERNAL_ERROR","isJsonRpcId","prefix","Events","EE","fn","context","once","addListener","emitter","event","listener","evt","clearEvent","EventEmitter","names","events","handlers","l","ee","listeners","a1","a2","a3","a4","a5","length","j","t","I","e","c","f","o","w","H","V","P","d","F","S","E","U","u","g","R","_","W","B","J","L","T","q","M","N","z","G","fastJsonStableStringify","data","cycles","cmp","node","aobj","bobj","seen","stringify","out","seenIndex","MetapageHashParams","isIframe","INITIAL_NULL_METAPAGE_DEFINITION","MetapageShared","merge","newInputs","pipeId","getUrlParam","getUrlParamDebug","isDebugFromUrlsParams","param","generateMetaframeId","generateId","generateMetapageId","generateNonce","LETTERS","charactersLength","log","color","backgroundColor","cssstring","stringToRgb","str","intToRGB","hashCode","hash","isPageLoaded","pageLoaded","loaded","metapageAllSha256Hash","metapage","metapageStr","sha256ToBase64","metapageOnlyEssentailSha256Hash","MetaframeLoadingState","MetaframeEvents","Metaframe","thisRef","params","disposer","MetapageToolsLog","pipe","originalInputs","updateBlob","outputs","originalOutputs","payload","method","jsonrpc","setHashParamInWindow","getHashParamFromWindow","setHashParamValueBooleanInWindow","getHashParamValueBooleanFromWindow","setHashParamValueJsonInWindow","getHashParamValueJsonFromWindow","setHashParamValueBase64EncodedInWindow","getHashParamValueBase64DecodedFromWindow","setHashParamValueFloatInWindow","getHashParamValueFloatFromWindow","setHashParamValueIntInWindow","getHashParamValueIntFromWindow","WIN_SLASH","WIN_NO_SLASH","DOT_LITERAL","PLUS_LITERAL","QMARK_LITERAL","SLASH_LITERAL","ONE_CHAR","QMARK","END_ANCHOR","START_ANCHOR","DOTS_SLASH","NO_DOT","NO_DOTS","NO_DOT_SLASH","NO_DOTS_SLASH","QMARK_NO_DOT","STAR","SEP","POSIX_CHARS","WINDOWS_CHARS","POSIX_REGEX_SOURCE","constants","win32","REGEX_BACKSLASH","REGEX_REMOVE_BACKSLASH","REGEX_SPECIAL_CHARS","REGEX_SPECIAL_CHARS_GLOBAL","require$$0","exports","val","segs","char","lastIdx","idx","output","prepend","append","windows","utils","CHAR_ASTERISK","CHAR_AT","CHAR_BACKWARD_SLASH","CHAR_COMMA","CHAR_DOT","CHAR_EXCLAMATION_MARK","CHAR_FORWARD_SLASH","CHAR_LEFT_CURLY_BRACE","CHAR_LEFT_PARENTHESES","CHAR_LEFT_SQUARE_BRACKET","CHAR_PLUS","CHAR_QUESTION_MARK","CHAR_RIGHT_CURLY_BRACE","CHAR_RIGHT_PARENTHESES","CHAR_RIGHT_SQUARE_BRACKET","require$$1","isPathSeparator","code","depth","token","scan","scanToEnd","slashes","tokens","parts","start","lastIndex","isBrace","isBracket","isGlob","isExtglob","isGlobstar","braceEscaped","backslashes","negated","finished","braces","prev","eos","advance","next","glob","prevIndex","scan_1","MAX_LENGTH","REGEX_NON_SPECIAL_CHARS","REGEX_SPECIAL_CHARS_BACKREF","REPLACEMENTS","expandRange","syntaxError","parse","max","bos","capture","PLATFORM_CHARS","EXTGLOB_CHARS","globstar","nodot","qmarkNoDot","star","extglobs","remaining","consume","num","negate","count","increment","decrement","push","tok","extglobOpen","extglobClose","extglobStar","esc","first","rest","inner","pre","posix","extglob","prevValue","escaped","open","brace","range","toks","prior","before","isStart","afterStar","after","end","slashDot","parse_1","require$$2","require$$3","isObject","picomatch","returnState","fns","isMatch","isState","regex","isIgnored","ignoreOpts","matcher","returnObject","format","patterns","pattern","parsed","returnOutput","picomatch_1","picomatchBrowser","MetapageIFrameRpcClient","url","iframeId","parentId","consoleBackgroundColor","debug","urlBlob","selfThis","_d","metaframeDef","metaframeDefCurrent","inputBlob","maybeNewInputs","inputUpdate","maybeNewOutputs","outputsUpdate","pipeName","fWrap","thing","messageJSON","emptyState","getLibraryVersionMatching","matchPipe","outputName","CONSOLE_BACKGROUND_COLOR_DEFAULT","Metapage","metaPageDef","exists","flag","newState","metaframeId","newDefinition","metaframeDefinition","previousDefinition","newMetaframeId","otherMetaframeId","inputPipes","id","definition","iframeClient","outputPipeId","__","targets","inputPipe","targetName","inputPipeId","metaframeInputs","metapageInputs","metaframeValuesNew","isInputs","metaframePipeId","inputOrOutputState","metaframePipedId","inputsMetaframesNew","metaframe","iframe","modified","outputKeys","collectedOutputs","outputKey","hashParamsUpdatePayload","getMetapageDefinitionFromUrl","metapageUrl","getMetaframeDefinitionFromUrl","metaframeUrl"],"mappings":"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","x_google_ignoreList":[2,3,4,5,8,13,14,15,19,20,21,22,23,24]}
|