@metapages/metapage 1.8.15 → 1.8.17
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 +177 -183
- package/dist/index.js.map +1 -1
- package/dist/metapage/Metaframe.d.ts +1 -1
- package/dist/metapage/Metaframe.d.ts.map +1 -1
- package/dist/metapage/Metapage.d.ts +10 -10
- package/dist/metapage/Metapage.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/metapage/Metaframe.ts +24 -19
- package/src/metapage/Metapage.ts +36 -17
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/@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/util.ts","../src/metapage/MetapageIFrameRpcClient.ts","../src/metapage/Metapage.ts","../src/metapage/metapageRenderer.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 I(t) {\n return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, \"default\") ? t.default : t;\n}\nvar V = function(t, n) {\n n || (n = {}), typeof n == \"function\" && (n = { cmp: n });\n var r = typeof n.cycles == \"boolean\" ? n.cycles : !1, e = n.cmp && /* @__PURE__ */ function(s) {\n return function(a) {\n return function(c, l) {\n var h = { key: c, value: a[c] }, i = { key: l, value: a[l] };\n return s(h, i);\n };\n };\n }(n.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, l;\n if (Array.isArray(a)) {\n for (l = \"[\", c = 0; c < a.length; c++)\n c && (l += \",\"), l += s(a[c]) || \"null\";\n return l + \"]\";\n }\n if (a === null) return \"null\";\n if (o.indexOf(a) !== -1) {\n if (r) return JSON.stringify(\"__cycle__\");\n throw new TypeError(\"Converting circular structure to JSON\");\n }\n var h = o.push(a) - 1, i = Object.keys(a).sort(e && e(a));\n for (l = \"\", c = 0; c < i.length; c++) {\n var u = i[c], g = s(a[u]);\n g && (l && (l += \",\"), l += JSON.stringify(u) + \":\" + g);\n }\n return o.splice(h, 1), \"{\" + l + \"}\";\n }\n }(t);\n};\nconst p = /* @__PURE__ */ I(V), S = (t) => H(p(t)), v = (t) => {\n if (t && t.length > 0)\n try {\n return JSON.parse(w(t));\n } catch (n) {\n try {\n return JSON.parse(decodeURIComponent(w(t)));\n } catch {\n throw n;\n }\n }\n}, H = (t) => btoa(t), w = (t) => {\n try {\n return atob(t);\n } catch {\n return atob(decodeURIComponent(t));\n }\n}, y = (t) => {\n const n = t instanceof URL ? t : new URL(t);\n return b(n.hash);\n}, b = (t) => {\n let n = t;\n for (; n.startsWith(\"#\"); )\n n = n.substring(1);\n const r = n.indexOf(\"?\");\n if (r === -1)\n return [n, {}];\n const e = n.substring(0, r);\n n = n.substring(r + 1);\n const o = {};\n return n.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), l = s.substring(a + 1);\n return [c, l];\n }).forEach(([s, a]) => {\n o[s] = a;\n }), Object.keys(o).forEach((s) => {\n o[s] = o[s];\n }), [e, o];\n}, d = (t, n) => {\n const [r, e] = y(t);\n return e[n];\n}, D = (t) => F()[1][t], F = () => y(window.location.href), f = (t, n, r) => {\n const e = window.location.hash.startsWith(\"#\") ? window.location.hash.substring(1) : window.location.hash, o = P(e, t, n);\n o !== e && (r != null && r.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}, P = (t, n, r) => {\n const [e, o] = b(t);\n let s = !1;\n if (o.hasOwnProperty(n) && r === null || r === void 0 ? (delete o[n], s = !0) : o[n] !== r && (o[n] = r, s = !0), !s)\n return t;\n const a = Object.keys(o);\n a.sort();\n const c = a.map((l, h) => {\n const i = o[l];\n return /^[A-Za-z0-9+/]+={0,2}$/.test(i) && i.length % 4, `${l}=${i}`;\n }).join(\"&\");\n return !e && !c ? \"\" : `${e || \"\"}${c ? \"?\" + c : \"\"}`;\n}, O = (t, n) => {\n let r = t;\n for (; r.startsWith(\"#\"); )\n r = r.substring(1);\n const e = r.indexOf(\"?\"), o = e === -1 ? r : r.substring(0, e), s = {};\n if (e !== -1) {\n const h = r.substring(e + 1);\n h.length > 0 && h.split(\"&\").forEach((i) => {\n if (i.length > 0) {\n const u = i.indexOf(\"=\");\n if (u === -1)\n s[i] = \"\";\n else {\n const g = i.substring(0, u), U = i.substring(u + 1);\n s[g] = U;\n }\n }\n });\n }\n let a = !1;\n for (const [h, i] of Object.entries(n))\n i == null ? s.hasOwnProperty(h) && (delete s[h], a = !0) : s[h] !== i && (s[h] = i, a = !0);\n if (!a)\n return t;\n const c = Object.keys(s);\n c.sort();\n const l = c.map((h) => {\n const i = s[h];\n return /^[A-Za-z0-9+/]+={0,2}$/.test(i) && i.length % 4, `${h}=${i}`;\n }).join(\"&\");\n return !o && !l ? \"\" : `${o || \"\"}${l ? \"?\" + l : \"\"}`;\n}, m = (t, n, r) => {\n const e = t instanceof URL ? t : new URL(t), o = P(e.hash, n, r);\n return e.hash = o, e;\n}, x = (t, n) => {\n const r = t instanceof URL ? t : new URL(t);\n let e = O(r.hash, n);\n return r.hash = e, r;\n}, C = (t, n, r) => {\n const e = t instanceof URL ? t : new URL(t);\n return e.hash = B(e.hash, n, r), e;\n}, W = (t, n) => {\n const r = d(t, n);\n if (r && r !== \"\")\n return v(r);\n}, L = (t, n) => {\n const [r, e] = b(t), o = e[n];\n if (o && o !== \"\")\n return v(o);\n}, _ = (t, n, r) => {\n const e = n ? S(n) : void 0;\n f(t, e, r);\n}, k = (t) => W(window.location.href, t), B = (t, n, r) => {\n const e = r ? S(r) : void 0;\n return P(t, n, e);\n}, A = (t, n, r) => m(t, n, r ? r.toString() : void 0), J = (t, n) => {\n const r = d(t, n);\n return r ? parseFloat(r) : void 0;\n}, j = (t, n, r) => {\n f(t, n != null ? n.toString() : void 0, r);\n}, T = (t) => J(window.location.href, t), q = (t, n, r) => m(t, n, r != null ? r.toString() : void 0), $ = (t, n) => {\n const r = d(t, n);\n return r ? parseInt(r) : void 0;\n}, z = (t, n, r) => {\n j(t, n, r);\n}, Z = (t) => $(window.location.href, t), M = (t, n, r) => m(t, n, r ? \"true\" : void 0), R = (t, n) => d(t, n) === \"true\", G = (t, n, r) => {\n f(t, n ? \"true\" : void 0, r);\n}, K = (t) => R(window.location.href, t), Q = (t, n, r) => m(t, n, r == null ? void 0 : H(r)), E = (t, n) => {\n const r = d(t, n);\n return r && r !== \"\" ? w(r) : void 0;\n}, X = (t, n, r) => {\n const e = n == null ? void 0 : H(n);\n f(t, e, r);\n}, Y = (t) => E(window.location.href, t), tt = (t, n, r) => m(t, n, r == null ? void 0 : encodeURIComponent(r)), N = (t, n) => {\n const r = d(t, n);\n return r && r !== \"\" ? decodeURIComponent(r) : void 0;\n}, nt = (t, n, r) => {\n const e = n == null ? void 0 : encodeURIComponent(n);\n f(t, e, r);\n}, rt = (t) => N(window.location.href, t), et = (t, n) => {\n f(t, void 0, n);\n}, at = (t, n) => m(t, n, void 0);\nexport {\n v as blobFromBase64String,\n S as blobToBase64String,\n O as createHashParamValuesInHashString,\n at as deleteHashParamFromUrl,\n et as deleteHashParamFromWindow,\n D as getHashParamFromWindow,\n d as getHashParamValue,\n E as getHashParamValueBase64DecodedFromUrl,\n Y as getHashParamValueBase64DecodedFromWindow,\n R as getHashParamValueBooleanFromUrl,\n K as getHashParamValueBooleanFromWindow,\n J as getHashParamValueFloatFromUrl,\n T as getHashParamValueFloatFromWindow,\n $ as getHashParamValueIntFromUrl,\n Z as getHashParamValueIntFromWindow,\n L as getHashParamValueJsonFromHashString,\n W as getHashParamValueJsonFromUrl,\n k as getHashParamValueJsonFromWindow,\n N as getHashParamValueUriDecodedFromUrl,\n rt as getHashParamValueUriDecodedFromWindow,\n F as getHashParamsFromWindow,\n y as getUrlHashParams,\n b as getUrlHashParamsFromHashString,\n f as setHashParamInWindow,\n Q as setHashParamValueBase64EncodedInUrl,\n X as setHashParamValueBase64EncodedInWindow,\n M as setHashParamValueBooleanInUrl,\n G as setHashParamValueBooleanInWindow,\n A as setHashParamValueFloatInUrl,\n j as setHashParamValueFloatInWindow,\n P as setHashParamValueInHashString,\n m as setHashParamValueInUrl,\n q as setHashParamValueIntInUrl,\n z as setHashParamValueIntInWindow,\n B as setHashParamValueJsonInHashString,\n C as setHashParamValueJsonInUrl,\n _ as setHashParamValueJsonInWindow,\n tt as setHashParamValueUriEncodedInUrl,\n nt as setHashParamValueUriEncodedInWindow,\n x as setHashParamsInUrl,\n w as stringFromBase64String,\n H 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,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_v2","definition_v1_to_v0_3","definition_v2_to_v1","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","I","V","e","c","h","o","u","S","H","w","d","D","F","f","P","W","_","J","T","$","z","Z","R","G","K","E","X","Y","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","t","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","getMetapageDefinitionFromUrl","url","metapageUrl","definition","getMetaframeDefinitionFromUrl","metaframeUrl","urlEncodedDefinition","getHashParamValueJsonFromUrl","isEmptyMetaframeDefinition","MetapageIFrameRpcClient","iframeId","parentId","consoleBackgroundColor","debug","urlBlob","selfThis","_d","metaframeDef","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","metadata","otherMetaframeId","inputPipes","id","iframeClient","outputPipeId","__","targets","inputPipe","targetName","inputPipeId","metaframeInputs","metapageInputs","metaframeValuesNew","isInputs","metaframePipeId","inputOrOutputState","metaframePipedId","inputsMetaframesNew","metaframe","iframe","modified","outputKeys","collectedOutputs","outputKey","hashParamsUpdatePayload","isMetaframeDivider","validateLayout","validated","layout","currentMaxY","allMetaframeIds","renderMetapage","props","_e","onOutputs","rootDiv","processMetapage","disposers","desktopLayoutBlob","metaframesToHide","dividers","lowestYDivider","lowest","dividerY","visibleMetaframeIds","visibleLayoutItems","gridStyle","containerStyle","container","gridContainer","renderedMetaframes","layoutItem","itemStyle","wrapper","maxCol","hiddenContainer","getMetaframeKey","mfk","metapageDefinition"],"mappings":"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","x_google_ignoreList":[2,3,4,5,8,13,14,15,19,20,21,22,23,24]}
|
|
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/util.ts","../src/metapage/MetapageIFrameRpcClient.ts","../src/metapage/Metapage.ts","../src/metapage/metapageRenderer.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 p = function(t, n) {\n n || (n = {}), typeof n == \"function\" && (n = { cmp: n });\n var r = typeof n.cycles == \"boolean\" ? n.cycles : !1, e = n.cmp && /* @__PURE__ */ function(s) {\n return function(a) {\n return function(c, l) {\n var u = { key: c, value: a[c] }, i = { key: l, value: a[l] };\n return s(u, i);\n };\n };\n }(n.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, l;\n if (Array.isArray(a)) {\n for (l = \"[\", c = 0; c < a.length; c++)\n c && (l += \",\"), l += s(a[c]) || \"null\";\n return l + \"]\";\n }\n if (a === null) return \"null\";\n if (o.indexOf(a) !== -1) {\n if (r) return JSON.stringify(\"__cycle__\");\n throw new TypeError(\"Converting circular structure to JSON\");\n }\n var u = o.push(a) - 1, i = Object.keys(a).sort(e && e(a));\n for (l = \"\", c = 0; c < i.length; c++) {\n var h = i[c], g = s(a[h]);\n g && (l && (l += \",\"), l += JSON.stringify(h) + \":\" + g);\n }\n return o.splice(u, 1), \"{\" + l + \"}\";\n }\n }(t);\n};\nconst V = /* @__PURE__ */ y(p), S = (t) => w(V(t)), b = (t) => {\n if (t && t.length > 0)\n try {\n return JSON.parse(U(t));\n } catch {\n return JSON.parse(decodeURIComponent(atob(decodeURIComponent(t))));\n }\n}, w = (t) => btoa(encodeURIComponent(t)), U = (t) => {\n try {\n return decodeURIComponent(atob(t));\n } catch {\n return decodeURIComponent(atob(decodeURIComponent(t)));\n }\n}, I = (t) => {\n const n = t instanceof URL ? t : new URL(t);\n return H(n.hash);\n}, H = (t) => {\n let n = t;\n for (; n.startsWith(\"#\"); )\n n = n.substring(1);\n const r = n.indexOf(\"?\");\n if (r === -1)\n return [n, {}];\n const e = n.substring(0, r);\n n = n.substring(r + 1);\n const o = {};\n return n.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), l = s.substring(a + 1);\n return [c, l];\n }).forEach(([s, a]) => {\n o[s] = a;\n }), Object.keys(o).forEach((s) => {\n o[s] = o[s];\n }), [e, o];\n}, d = (t, n) => {\n const [r, e] = I(t);\n return e[n];\n}, N = (t) => F()[1][t], F = () => I(window.location.href), m = (t, n, r) => {\n const e = window.location.hash.startsWith(\"#\") ? window.location.hash.substring(1) : window.location.hash, o = P(e, t, n);\n o !== e && (r != null && r.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}, P = (t, n, r) => {\n const [e, o] = H(t);\n let s = !1;\n if (o.hasOwnProperty(n) && r === null || r === void 0 ? (delete o[n], s = !0) : o[n] !== r && (o[n] = r, s = !0), !s)\n return t;\n const a = Object.keys(o);\n a.sort();\n const c = a.map((l, u) => {\n const i = o[l];\n return /^[A-Za-z0-9+/]+={0,2}$/.test(i) && i.length % 4, `${l}=${i}`;\n }).join(\"&\");\n return !e && !c ? \"\" : `${e || \"\"}${c ? \"?\" + c : \"\"}`;\n}, O = (t, n) => {\n let r = t;\n for (; r.startsWith(\"#\"); )\n r = r.substring(1);\n const e = r.indexOf(\"?\"), o = e === -1 ? r : r.substring(0, e), s = {};\n if (e !== -1) {\n const u = r.substring(e + 1);\n u.length > 0 && u.split(\"&\").forEach((i) => {\n if (i.length > 0) {\n const h = i.indexOf(\"=\");\n if (h === -1)\n s[i] = \"\";\n else {\n const g = i.substring(0, h), v = i.substring(h + 1);\n s[g] = v;\n }\n }\n });\n }\n let a = !1;\n for (const [u, i] of Object.entries(n))\n i == null ? s.hasOwnProperty(u) && (delete s[u], a = !0) : s[u] !== i && (s[u] = i, a = !0);\n if (!a)\n return t;\n const c = Object.keys(s);\n c.sort();\n const l = c.map((u) => {\n const i = s[u];\n return /^[A-Za-z0-9+/]+={0,2}$/.test(i) && i.length % 4, `${u}=${i}`;\n }).join(\"&\");\n return !o && !l ? \"\" : `${o || \"\"}${l ? \"?\" + l : \"\"}`;\n}, f = (t, n, r) => {\n const e = t instanceof URL ? t : new URL(t), o = P(e.hash, n, r);\n return e.hash = o, e;\n}, x = (t, n) => {\n const r = t instanceof URL ? t : new URL(t);\n let e = O(r.hash, n);\n return r.hash = e, r;\n}, L = (t, n, r) => {\n const e = t instanceof URL ? t : new URL(t);\n return e.hash = R(e.hash, n, r), e;\n}, W = (t, n) => {\n const r = d(t, n);\n if (r && r !== \"\")\n return b(r);\n}, _ = (t, n) => {\n const [r, e] = H(t), o = e[n];\n if (o && o !== \"\")\n return b(o);\n}, k = (t, n, r) => {\n const e = n ? S(n) : void 0;\n m(t, e, r);\n}, D = (t) => W(window.location.href, t), R = (t, n, r) => {\n const e = r ? S(r) : void 0;\n return P(t, n, e);\n}, A = (t, n, r) => f(t, n, r ? r.toString() : void 0), B = (t, n) => {\n const r = d(t, n);\n return r ? parseFloat(r) : void 0;\n}, J = (t, n, r) => {\n m(t, n != null ? n.toString() : void 0, r);\n}, T = (t) => B(window.location.href, t), q = (t, n, r) => f(t, n, r != null ? r.toString() : void 0), j = (t, n) => {\n const r = d(t, n);\n return r ? parseInt(r) : void 0;\n}, z = (t, n, r) => {\n J(t, n, r);\n}, Z = (t) => j(window.location.href, t), M = (t, n, r) => f(t, n, r ? \"true\" : void 0), $ = (t, n) => d(t, n) === \"true\", G = (t, n, r) => {\n m(t, n ? \"true\" : void 0, r);\n}, K = (t) => $(window.location.href, t), Q = (t, n, r) => f(t, n, r == null ? void 0 : w(r)), C = (t, n) => {\n const r = d(t, n);\n return r && r !== \"\" ? U(r) : void 0;\n}, X = (t, n, r) => {\n const e = n == null ? void 0 : w(n);\n m(t, e, r);\n}, Y = (t) => C(window.location.href, t), tt = (t, n, r) => f(t, n, r == null ? void 0 : encodeURIComponent(r)), E = (t, n) => {\n const r = d(t, n);\n return r && r !== \"\" ? decodeURIComponent(r) : void 0;\n}, nt = (t, n, r) => {\n const e = n == null ? void 0 : encodeURIComponent(n);\n m(t, e, r);\n}, rt = (t) => E(window.location.href, t), et = (t, n) => {\n m(t, void 0, n);\n}, at = (t, n) => f(t, n, void 0);\nexport {\n b as blobFromBase64String,\n S as blobToBase64String,\n O as createHashParamValuesInHashString,\n at as deleteHashParamFromUrl,\n et as deleteHashParamFromWindow,\n N as getHashParamFromWindow,\n d as getHashParamValue,\n C as getHashParamValueBase64DecodedFromUrl,\n Y as getHashParamValueBase64DecodedFromWindow,\n $ as getHashParamValueBooleanFromUrl,\n K as getHashParamValueBooleanFromWindow,\n B as getHashParamValueFloatFromUrl,\n T as getHashParamValueFloatFromWindow,\n j as getHashParamValueIntFromUrl,\n Z as getHashParamValueIntFromWindow,\n _ as getHashParamValueJsonFromHashString,\n W as getHashParamValueJsonFromUrl,\n D as getHashParamValueJsonFromWindow,\n E as getHashParamValueUriDecodedFromUrl,\n rt as getHashParamValueUriDecodedFromWindow,\n F as getHashParamsFromWindow,\n I as getUrlHashParams,\n H as getUrlHashParamsFromHashString,\n m as setHashParamInWindow,\n Q as setHashParamValueBase64EncodedInUrl,\n X as setHashParamValueBase64EncodedInWindow,\n M as setHashParamValueBooleanInUrl,\n G as setHashParamValueBooleanInWindow,\n A as setHashParamValueFloatInUrl,\n J as setHashParamValueFloatInWindow,\n P as setHashParamValueInHashString,\n f as setHashParamValueInUrl,\n q as setHashParamValueIntInUrl,\n z as setHashParamValueIntInWindow,\n R as setHashParamValueJsonInHashString,\n L as setHashParamValueJsonInUrl,\n k as setHashParamValueJsonInWindow,\n tt as setHashParamValueUriEncodedInUrl,\n nt as setHashParamValueUriEncodedInWindow,\n x as setHashParamsInUrl,\n U as stringFromBase64String,\n w 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,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_v2","definition_v1_to_v0_3","definition_v2_to_v1","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","e","c","u","o","h","V","S","w","U","I","H","d","N","F","P","W","D","B","J","T","z","Z","$","G","K","C","X","Y","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","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","t","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","getMetapageDefinitionFromUrl","url","metapageUrl","definition","getMetaframeDefinitionFromUrl","metaframeUrl","urlEncodedDefinition","getHashParamValueJsonFromUrl","isEmptyMetaframeDefinition","MetapageIFrameRpcClient","iframeId","parentId","consoleBackgroundColor","debug","urlBlob","selfThis","_d","metaframeDef","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","metadata","otherMetaframeId","inputPipes","id","iframeClient","outputPipeId","__","targets","inputPipe","targetName","inputPipeId","metaframeInputs","metapageInputs","metaframeValuesNew","isInputs","metaframePipeId","inputOrOutputState","metaframePipedId","inputsMetaframesNew","metaframe","iframe","modified","outputKeys","collectedOutputs","outputKey","hashParamsUpdatePayload","isMetaframeDivider","validateLayout","validated","layout","currentMaxY","allMetaframeIds","renderMetapage","props","_e","onOutputs","rootDiv","processMetapage","disposers","desktopLayoutBlob","metaframesToHide","dividers","lowestYDivider","lowest","dividerY","visibleMetaframeIds","visibleLayoutItems","gridStyle","containerStyle","container","gridContainer","renderedMetaframes","layoutItem","itemStyle","wrapper","maxCol","hiddenContainer","getMetaframeKey","mfk","metapageDefinition"],"mappings":"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","x_google_ignoreList":[2,3,4,5,8,13,14,15,19,20,21,22,23,24]}
|