rumious 0.0.2 → 0.0.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/render/context.js","../src/component/component.js","../src/dom/element.js","../src/utils/checker.js","../src/render/directives.js","../src/jsx/index.js","../src/component/element.js","../src/component/render.js","../src/render/index.js","../src/app/index.js","../src/state/reactive.js","../src/state/reducer.js","../node_modules/mutative/dist/mutative.esm.mjs","../src/state/produce.js","../src/state/state.js","../src/state/watcher.js"],"sourcesContent":["export class RumiousRenderContext{\n constructor(target){\n this.target = target;\n }\n \n find(name){\n return this.target[name];\n }\n \n get(name){\n return this.target[name];\n }\n}","import {RumiousRenderContext} from '../render/context.js';\n\nexport class RumiousComponent {\n constructor() {\n this.element = null;\n this.props = {};\n this.renderContext = new RumiousRenderContext(this);\n this.renderer = null;\n this.wrapped = null;\n }\n\n prepare(element, props, wrapped = {}, renderer = null) {\n this.element = element;\n this.props = props;\n this.renderer = renderer;\n this.wrapped = wrapped;\n }\n\n template() {\n return {};\n }\n\n requestRender() {\n let template = this.template();\n let fragment = this.renderer(template, document.createDocumentFragment(), this.renderContext);\n this.element.appendChild(fragment);\n this.onRender();\n }\n\n async requestCleanUp() {\n if (this.element) {\n let cloned = this.element.cloneNode(true);\n this.element.replaceWith(cloned);\n this.element = cloned;\n\n while (this.element.firstChild) {\n this.element.removeChild(this.element.firstChild);\n }\n }\n }\n\n onInit() {}\n onCreate() {}\n onRender() {}\n onUpdate() {}\n onDestroy() {}\n}\n\nexport function isComponent(component){\n return Object.getPrototypeOf(component) === RumiousComponent;\n}","export class RumiousElement {\n constructor(type, props, children = []) {\n this.type = type;\n this.props = props;\n this.children = children;\n }\n}\n\nexport class RumiousElementList{\n constructor(list){\n this.type = \"ELEMENT_LIST\"\n this.children = list\n }\n \n forEach(callback ){\n this.children.forEach(callback)\n }\n}\n","export function isCamelCase(str) {\n const camelCaseRegex = /^[a-zA-Z]+([A-Z][a-z]*)*$/;\n return camelCaseRegex.test(str);\n}\n\nexport function isFunction(object) {\n return typeof object === 'function';\n}","import { isFunction } from '../utils/checker.js';\n\nexport class RumiousDirective {\n constructor(type, name, value) {\n this.type = type;\n this.name = name;\n this.value = value;\n }\n\n init() {\n console.warn(\"Directive haven't handler !\");\n }\n}\n\nexport class RumiousEventBindingDirective extends RumiousDirective {\n async init(dom, renderContext) {\n let fn = null;\n\n const getHandler = (value) => {\n if (!renderContext.find(value)) {\n console.warn(`Missing event handler for event: ${this.name}`);\n return null;\n }\n const handler = renderContext.get(value);\n if (!isFunction(handler)) {\n throw `${value} is not a function!`;\n }\n return handler.bind(renderContext.target);\n };\n\n if (this.value.type === \"string\") {\n fn = getHandler(this.value.value);\n } else if (this.value.type === \"expression\") {\n fn = this.value.value;\n if (!isFunction(fn)) {\n throw \"Event handler requires a function!\";\n }\n } else if (this.value.type === \"dynamic_value\") {\n fn = getHandler(this.value.value.objectName);\n }\n\n if (fn) {\n dom.addEventListener(this.name, fn);\n }\n }\n}\n\nexport class RumiousPropsBindingDirective extends RumiousDirective {\n async init(dom, renderContext) {\n let fn = null;\n\n if (this.value.type === \"expression\") {\n\n } else if (this.value.type === \"dynamic_value\") {\n let currentStateValue = this.value.evaluator?.(renderContext.target)\n let currentState = renderContext.find(this.value.value.objectName);\n if (!currentState) {\n throw \"Invalid props value: Directive bind: require a RumiousState Object !\"\n } else {\n currentState.reactor.addBinding(() => {\n let currentStateValue = this.value.evaluator?.(renderContext.target)\n this.bindAttr(dom,currentStateValue);\n })\n }\n\n this.bindAttr(dom,currentStateValue);\n }\n }\n \n normalizeValue(value){\n if(typeof value === \"object\"){\n return value.toString?.() ?? \"\"\n }\n return value;\n }\n \n async bindAttr(dom,value) {\n switch(this.name){\n case \"html\":\n dom.innerHTML = this.normalizeValue(value);\n break;\n \n \n }\n }\n}\n\n\nconst directives = {\n on(event, value) {\n return new RumiousEventBindingDirective(\"on\", event, value);\n },\n bind(attr, value) {\n return new RumiousPropsBindingDirective(\"bind\", attr, value);\n }\n};\n\n\nexport function registerDirective(type, name, value) {\n return directives[type]?.(name, value);\n}","import { isComponent } from '../component/component.js';\nimport {RumiousElement,RumiousElementList} from '../dom/element.js';\nimport {registerDirective} from '../render/directives.js';\n\n\n\nfunction createDirective(type,name,value) {\n return registerDirective(type,name,value)\n}\n\nfunction createElement(type, props, ...children) {\n if (isComponent(type)) {\n return createComponent(type, props, children);\n }\n\n if (type === createFragment) {\n return createFragment(...children);\n }\n\n return new RumiousElement(type, props || {}, normalizeChildren(children));\n}\n\nfunction createTextElement(text) {\n return new RumiousElement(\"TEXT_ELEMENT\", { nodeValue: text }, []);\n}\n\nfunction createComponent(type, props, children) {\n return new RumiousElement(\"COMPONENT\", { component: type, ...props },new RumiousElementList(normalizeChildren(children)));\n}\n\nfunction createFragment(...children) {\n return new RumiousElement(\"FRAGMENT\", {}, normalizeChildren(children));\n}\n\nfunction normalizeChildren(children) {\n return children.map(child => (typeof child === \"object\" ? child : createTextElement(child)));\n}\n\nwindow.RUMIOUS_JSX_SUPPORT = {\n createElement,\n createFragment,\n createDirective\n};","export class RumiousComponentElement extends HTMLElement{\n constructor(){\n super();\n this.instance = null;\n }\n \n init(componentConstructor,props,wrapped={},renderer){\n this.instance = new componentConstructor();\n this.instance.prepare(this,props,wrapped,renderer);\n this.instance.onInit()\n }\n \n connectedCallback(){\n this.instance.onCreate();\n this.instance.requestRender();\n }\n \n \n disconnectCallback(){\n this.instance.onDestroy()\n this.instance.requestCleanUp()\n }\n}\n\nexport function createComponentElement(){\n return document.createElement(\"a-component\");\n}\n\nwindow.customElements.define(\"a-component\",RumiousComponentElement);","import { createComponentElement } from './element.js';\n\nexport function renderComponent(componentConstructor, props, wrapped, renderer) {\n const componentElement = createComponentElement();\n componentElement.init(componentConstructor, props,wrapped, renderer);\n return componentElement;\n}\n","import { isCamelCase } from '../utils/checker.js';\nimport { renderComponent } from '../component/render.js';\nimport { isComponent } from '../component/component.js';\nimport { RumiousDirective } from './directives.js';\n\nfunction handleComponentElement(element, container, render) {\n const dom = renderComponent(element.props.component, element.props, element.children, render);\n container.appendChild(dom);\n return container;\n}\n\nfunction handleFragmentOrElementList(element, container, renderContext) {\n element.children.forEach(child => render(child, container, renderContext));\n return container;\n}\n\nfunction handleTextElement(element) {\n return document.createTextNode(element.props.nodeValue);\n}\n\nfunction handleRegularElement(element, renderContext) {\n const dom = document.createElement(element.type);\n Object.entries(element.props || {}).forEach(([name, propValue]) => {\n if (name.startsWith(\"on\") && isCamelCase(name)) {\n dom.addEventListener(name.substring(2).toLowerCase(), propValue);\n } else {\n setElementProps(dom, name, propValue,renderContext);\n }\n });\n return dom;\n}\n\nfunction handleDirective(dom,directive,renderContext){\n directive.init(dom,renderContext);\n}\n\nfunction setElementProps(dom, name, propValue,renderContext) {\n if (dom.nodeType === Node.TEXT_NODE) {\n dom.nodeValue = propValue;\n } else if (propValue instanceof RumiousDirective) {\n handleDirective(dom,propValue,renderContext);\n } else {\n dom.setAttribute(name, propValue);\n }\n}\n\nexport function render(element, container, renderContext = {}) {\n if (!element) return container;\n\n let dom;\n\n if (element.type === \"COMPONENT\") {\n return handleComponentElement(element, container, render);\n }\n\n if (element.type === \"FRAGMENT\" || element.type === \"ELEMENT_LIST\") {\n return handleFragmentOrElementList(element, container, renderContext);\n }\n\n if (element.type === \"TEXT_ELEMENT\") {\n dom = handleTextElement(element);\n } else {\n dom = handleRegularElement(element, renderContext);\n }\n\n element.children.forEach(child => render(child, dom, renderContext));\n container.appendChild(dom);\n return container;\n}","import { RumiousRenderContext } from '../render/context.js';\nimport { render } from '../render/index.js';\n\nexport class RumiousApp {\n constructor(root = document.createElement(\"span\"), configs = {}) {\n this.root = root;\n this.configs = configs;\n this.renderContext = new RumiousRenderContext(this);\n }\n\n render(element) {\n render(element, this.root, this.renderContext);\n }\n\n}","export class RumiousReactor {\n constructor(target = null, bindings = []) {\n this.target = target;\n this.bindings = bindings;\n }\n\n react() {\n this.bindings.forEach((callback) => callback());\n }\n\n addBinding(fn) {\n this.bindings.push(fn);\n }\n}","export class RumiousReducer{\n constructor(state,path=\"\",fn){\n this.state = state;\n this.path = path;\n this.fn = fn;\n }\n \n trigger(...args){\n let value = this.fn(...args);\n this.state.set(this.path,value);\n }\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}\nfunction isBaseSetInstance(obj) {\n return Object.getPrototypeOf(obj) === Set.prototype;\n}\nfunction isBaseMapInstance(obj) {\n return Object.getPrototypeOf(obj) === Map.prototype;\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 if (!isBaseSetInstance(original)) {\n const SubClass = Object.getPrototypeOf(original).constructor;\n return new SubClass(original.values());\n }\n return Set.prototype.difference\n ? Set.prototype.difference.call(original, new Set())\n : new Set(original.values());\n }\n else if (original instanceof Map) {\n if (!isBaseMapInstance(original)) {\n const SubClass = Object.getPrototypeOf(original).constructor;\n return new SubClass(original);\n }\n return new Map(original);\n }\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 const iterable = Array.from(target.entries()).map(([k, v]) => [\n k,\n deepClone(v),\n ]);\n if (!isBaseMapInstance(target)) {\n const SubClass = Object.getPrototypeOf(target).constructor;\n return new SubClass(iterable);\n }\n return new Map(iterable);\n }\n if (target instanceof Set) {\n const iterable = Array.from(target).map(deepClone);\n if (!isBaseSetInstance(target)) {\n const SubClass = Object.getPrototypeOf(target).constructor;\n return new SubClass(iterable);\n }\n return new Set(iterable);\n }\n const copy = Object.create(Object.getPrototypeOf(target));\n for (const key in target)\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};\nif (Set.prototype.difference) {\n // for compatibility with new Set methods\n // https://github.com/tc39/proposal-set-methods\n // And `https://github.com/tc39/proposal-set-methods/blob/main/details.md#symbolspecies` has some details about the `@@species` symbol.\n // So we can't use SubSet instance constructor to get the constructor of the SubSet instance.\n Object.assign(setHandler, {\n intersection(other) {\n return Set.prototype.intersection.call(new Set(this.values()), other);\n },\n union(other) {\n return Set.prototype.union.call(new Set(this.values()), other);\n },\n difference(other) {\n return Set.prototype.difference.call(new Set(this.values()), other);\n },\n symmetricDifference(other) {\n return Set.prototype.symmetricDifference.call(new Set(this.values()), other);\n },\n isSubsetOf(other) {\n return Set.prototype.isSubsetOf.call(new Set(this.values()), other);\n },\n isSupersetOf(other) {\n return Set.prototype.isSupersetOf.call(new Set(this.values()), other);\n },\n isDisjointFrom(other) {\n return Set.prototype.isDisjointFrom.call(new Set(this.values()), other);\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 var _a;\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 ? !isBaseMapInstance(target)\n ? new (Object.getPrototypeOf(target).constructor)(target)\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 if (type === 3 /* DraftType.Set */) {\n const value = (_a = proxyDraft === null || proxyDraft === void 0 ? void 0 : proxyDraft.original) !== null && _a !== void 0 ? _a : currentValue;\n return !isBaseSetInstance(value)\n ? new (Object.getPrototypeOf(value).constructor)(currentValue)\n : new Set(currentValue);\n }\n return currentValue;\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/**\n * Cast a value to an Mutable type value.\n */\nfunction castMutable(draft) {\n return draft;\n}\n\nexport { apply, castDraft, castImmutable, castMutable, create, current, isDraft, isDraftable, makeCreator, markSimpleObject, original, rawReturn, unsafe };\n//# sourceMappingURL=mutative.esm.mjs.map\n","import { create } from 'mutative';\n\nexport function produceState(state, fn) {\n state.set(create(state.get(), fn));\n}","import { RumiousReactor } from './reactive.js';\nimport { RumiousReducer } from './reducer.js';\nimport { produceState } from './produce.js';\n\nconst ROOT_STATE = Symbol('ROOT_STATE');\n\nexport class RumiousState {\n constructor(target, reactor = null) {\n this.value = target;\n this.reactor = reactor ?? new RumiousReactor(this, []);\n }\n\n produce(recipe) {\n return produceState(this, recipe);\n }\n\n\n reducer(...args) {\n let computedObj;\n if (args.length === 1) {\n computedObj = new RumiousReducer(this, \"\", args[0])\n } else {\n computedObj = new RumiousReducer(this, args[0], args[1])\n }\n return computedObj.trigger.bind(computedObj);\n }\n\n setObjectByPath(path = \"\", value) {\n if (path.length == 0) {\n this.value = value;\n return;\n }\n \n if (typeof path !== 'string' || !path) {\n throw new Error('Invalid path');\n }\n\n let keys = path.split('.');\n let obj = this.value;\n\n for (let i = 0; i < keys.length - 1; i++) {\n let key = keys[i];\n if (!(key in obj)) {\n obj[key] = {};\n }\n obj = obj[key];\n }\n\n obj[keys[keys.length - 1]] = value;\n }\n\n set(...args) {\n if (args.length === 1) {\n this.value = args[0];\n } else {\n let path = args[0];\n let value = args[1];\n this.setObjectByPath(path, value);\n }\n\n this.reactor.react();\n }\n\n get() {\n return this.value;\n }\n}\n\nexport function createState(value) {\n return new RumiousState(value);\n}\n\nexport function isState(obj) {\n return obj instanceof RumiousState;\n}","export function watcher(state, callback){\n state.reactor.addBinding(callback);\n}"],"names":["RumiousRenderContext","target","_classCallCheck","_createClass","key","value","find","name","get","RumiousComponent","element","props","renderContext","renderer","wrapped","prepare","arguments","length","undefined","template","requestRender","fragment","document","createDocumentFragment","appendChild","onRender","_requestCleanUp","_asyncToGenerator","_regeneratorRuntime","mark","_callee","cloned","wrap","_callee$","_context","prev","next","cloneNode","replaceWith","firstChild","removeChild","stop","requestCleanUp","apply","onInit","onCreate","onUpdate","onDestroy","isComponent","component","Object","getPrototypeOf","RumiousElement","type","children","RumiousElementList","list","forEach","callback","isCamelCase","str","camelCaseRegex","test","isFunction","object","RumiousDirective","init","console","warn","RumiousEventBindingDirective","_RumiousDirective","_callSuper","_inherits","_init","dom","_this","fn","getHandler","concat","handler","bind","objectName","addEventListener","_x","_x2","RumiousPropsBindingDirective","_RumiousDirective2","_init2","_callee2","_this2","_this$value$evaluator","_this$value","currentStateValue","currentState","_callee2$","_context2","evaluator","call","reactor","addBinding","_this2$value$evaluato","_this2$value","bindAttr","_x3","_x4","normalizeValue","_typeof","_value$toString","_value$toString2","toString","_bindAttr","_callee3","_callee3$","_context3","t0","innerHTML","abrupt","_x5","_x6","directives","on","event","attr","registerDirective","_directives$type","createDirective","createElement","_len","Array","_key","createComponent","createFragment","normalizeChildren","createTextElement","text","nodeValue","_objectSpread","_len2","_key2","map","child","window","RUMIOUS_JSX_SUPPORT","RumiousComponentElement","_HTMLElement","instance","componentConstructor","connectedCallback","disconnectCallback","_wrapNativeSuper","HTMLElement","createComponentElement","customElements","define","renderComponent","componentElement","handleComponentElement","container","render","handleFragmentOrElementList","handleTextElement","createTextNode","handleRegularElement","entries","_ref","_ref2","_slicedToArray","propValue","startsWith","substring","toLowerCase","setElementProps","handleDirective","directive","nodeType","Node","TEXT_NODE","setAttribute","RumiousApp","root","configs","RumiousReactor","bindings","react","push","RumiousReducer","state","path","trigger","set","Operation","Remove","Replace","Add","produceState","create","RumiousState","produce","recipe","reducer","computedObj","setObjectByPath","Error","keys","split","obj","i","createState","isState","watcher"],"mappings":"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","x_google_ignoreList":[12]}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/render/context.js","../src/component/component.js","../src/dom/element.js","../src/utils/checker.js","../src/render/directives.js","../src/jsx/index.js","../src/component/element.js","../src/render/index.js","../src/component/render.js","../src/app/index.js","../src/state/reactive.js","../src/state/reducer.js","../node_modules/mutative/dist/mutative.esm.mjs","../src/state/state.js","../src/state/produce.js","../src/state/watcher.js","../src/ref/ref.js","../src/ref/childrens.js","../src/ref/component.js","../src/context/context.js"],"sourcesContent":null,"names":["RumiousRenderContext","constructor","target","this","find","name","get","RumiousComponent","element","props","renderContext","renderer","wrapped","prepare","template","requestRender","fragment","document","createDocumentFragment","appendChild","onRender","requestCleanUp","cloned","cloneNode","replaceWith","firstChild","removeChild","onInit","onCreate","onUpdate","onDestroy","isComponent","component","Object","getPrototypeOf","RumiousElement","type","children","RumiousElementList","list","forEach","callback","isFunction","object","RumiousDirective","value","init","console","warn","RumiousEventBindingDirective","dom","fn","getHandler","handler","bind","objectName","addEventListener","RumiousPropsBindingDirective","currentState","reactor","addBinding","currentStateValue","bindAttr","evaluator","normalizeValue","toString","innerHTML","RumiousRefDirective","ref","set","RumiousChildrensRefDirective","directives","on","event","attr","_","childsRef","createFragment","normalizeChildren","map","child","nodeValue","window","RUMIOUS_JSX_SUPPORT","createElement","createComponent","createDirective","registerDirective","RumiousComponentElement","HTMLElement","super","instance","cleanUp","setRef","componentConstructor","connectedCallback","forwardRef","disconnectCallback","createComponentElement","customElements","define","static","HTMLUnknownElement","handleComponentElement","container","render","componentElement","tag","renderComponent","entries","propValue","handleDirective","handleRegularElement","startsWith","test","substring","toLowerCase","nodeType","Node","TEXT_NODE","setAttribute","setElementProps","directive","handleFragmentOrElementList","createTextNode","handleTextElement","RumiousApp","root","configs","RumiousReactor","bindings","react","removeBinding","i","length","splice","push","RumiousReducer","state","path","trigger","args","Operation","PROXY_DRAFT","Symbol","for","RAW_RETURN_SYMBOL","iteratorSymbol","iterator","dataTypes","mutable","immutable","internal","has","key","Map","prototype","hasOwnProperty","call","getDescriptor","Reflect","descriptor","getOwnPropertyDescriptor","isBaseSetInstance","obj","Set","isBaseMapInstance","latest","proxyDraft","_a","copy","undefined","original","isDraft","getProxyDraft","getValue","isDraftable","options","markResult","Array","isArray","mark","getPath","parentCopy","parent","isSet","from","setMap","keys","indexOf","size","reverse","base","index","getType","Error","join","resolvePath","e","peek","isEqual","x","y","revokeProxy","finalities","revoke","pop","escapePath","pathAsArray","concat","_item","item","replace","propIsEnum","propertyIsEnumerable","shallowCopy","SubClass","values","difference","create","ownKeys","desc","enumerable","configurable","writable","defineProperty","strictCopy","enablePatches","enableAutoFreeze","getOwnPropertySymbols","ensureShallowCopy","deepClone","iterable","k","v","cloneIfNeeded","markChanged","assignedMap","operated","throwFrozenError","deepFreeze","subKey","updatedValues","stack","WeakMap","slice","isFrozen","clear","delete","add","freeze","iter","entry","handleValue","handledSet","updatedValue","finalizeAssigned","finalizeSetValue","finalizePatches","generatePatches","patches","inversePatches","finalized","basePath","markFinalization","callbacks","draft","proxyState","assignedValue","originalValue","op","generatePatchesFromAssigned","arrayLengthAssignment","generateArrayPatches","unshift","generateSetPatches","checkReadable","ignoreCheckDraftable","mapHandler","source","thisArg","_value","_key","_b","strict","createDraft","parentDraft","next","result","done","mapHandlerKeys","getNextIterator","isValuesIterator","currentDraft","proxy","setHandler","valueProxyDraft","assign","intersection","other","union","symmetricDifference","isSubsetOf","isSupersetOf","isDisjointFrom","setHandlerKeys","draftsCache","WeakSet","proxyHandler","receiver","includes","handle","Number","subProxyDraft","isInteger","String","current","currentProxyDraft","setPrototypeOf","deleteProperty","createDraftOptions","Proxy","revocable","oldProxyDraft","finalizeDraft","returnedValue","hasReturnedValue","finalize","handleReturnValue","rootDraft","useRawReturn","isRoot","isContainDraft","currentValue","arr","getCurrent","newValue","arg0","arg1","arg2","_c","mutate","arg","types","_options","baseState","finalizedState","finalizedPatches","finalizedInversePatches","draftify","error","returnValue","rawReturnValue","returnedProxyDraft","Promise","then","RumiousState","produce","recipe","reducer","computedObj","setObjectByPath","split","createState","isState","watch","unwatch","RumiousElementRef","html","h","query","q","querySelectorAll","text","textContent","off","removeEventListener","remove","addChild","createElementRef","RumiousChildrensRef","idx","createChildrensRef","RumiousComponentRef","createComponentRef","RUMIOUS_CONTEXTS","RumiousContext","data","events","listener","filter","l","emit","createContext","globalName"],"mappings":"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","x_google_ignoreList":[12]}