@metapages/metapage 1.8.29 → 1.8.35

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.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 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","g","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","cb","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","getVisibleGridLayoutData","desktopLayoutBlob","metaframesToHide","dividers","lowestYDivider","lowest","dividerY","visibleMetaframeIds","hiddenMetaframeIds","visibleLayoutItems","totalVisibleGridHeight","acc","renderMetapage","props","onOutputs","rootDiv","processMetapage","disposers","gridStyle","containerStyle","container","gridContainer","renderedMetaframes","layoutItem","itemStyle","wrapper","maxCol","hiddenContainer","isMetaframeHidden","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","g","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","cb","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","getVisibleGridLayoutData","desktopLayoutBlob","metaframesToHide","dividers","lowestYDivider","lowest","dividerY","visibleMetaframeIds","hiddenMetaframeIds","visibleLayoutItems","totalVisibleGridHeight","acc","renderMetapage","props","onOutputs","rootDiv","processMetapage","disposers","gridStyle","containerStyle","container","gridContainer","renderedMetaframes","layoutItem","itemStyle","wrapper","maxCol","hiddenContainer","isMetaframeHidden","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]}