@shined/reactive
Version:
⚛️ Proxy-driven state library for JavaScript application, Intuitive, Flexible and Written in TypeScript.
1 lines • 60.9 kB
Source Map (JSON)
{"version":3,"sources":["/home/runner/work/reactive/reactive/packages/reactive/dist/chunk-7Y3UI2QQ.cjs","../src/vanilla/ref.ts","../src/utils/react-fast-compare.ts","../src/utils/index.ts","../src/vanilla/snapshot.ts","../src/enhancers/vanilla/with-snapshot.ts","../src/vanilla/subscribe.ts","../src/enhancers/vanilla/with-subscribe.ts","../src/vanilla/proxy.ts","../src/vanilla/create.ts","../src/vanilla/devtools.ts","../src/vanilla/produce.ts","../src/enhancers/vanilla/with-derived.ts"],"names":["Object","defineProperty","exports","value","_nullishCoalesce","lhs","rhsFn","_optionalChain","ops","lastAccessLHS","undefined","i","length","op","fn","args","call","internal_refSet","WeakSet","ref","o","add","isRef","k","has","deepCloneWithRef","initialState","cloned","createObjectFromPrototype","key","isObject","hasMap","Map","hasSet","Set","hasHTMLElementType","HTMLElement","hasArrayBuffer","ArrayBuffer","isView","reactFastCompare","objA","objB","equal","error","message","match","console","warn","keys","Array","isArray","it","size","entries","next","done","get","_","_2","RegExp","source","flags","valueOf","prototype","toString","hasOwnProperty","$$typeof","SNAPSHOT","Symbol","LISTENERS","REACTIVE","isProduction","process","env","NODE_ENV","noop","hasOwn","x","isBoolean","isFunction","target","create","getPrototypeOf","canProxy","iterator","WeakMap","Error","Number","Date","String","numberReg","propertyKeysToPath","path","test","object","defaultValue","shallowEqual","is","keysA","keysLength","deepEqual","snapshot","proxyState","selector","s","getSnapshot","withSnapshot","store","_snapshot","mutate","globalNotifyInSync","setGlobalNotifyInSync","subscribe","callback","notifyInSync","promise","previousState","callbacks","runCallbacks","clear","listener","props","version","currentState","changes","propsPath","previous","current","finalNotifyInSync","Promise","resolve","then","delete","withSubscribe","boundSubscribe","sync","globalVersion","snapshotCache","proxy","initState","parentProps","listeners","propListenerMap","notifyUpdate","nextVersion","getPropListener","prop","set","popPropListener","createSnapshot","receiver","cache","_3","nextSnapshot","Reflect","ownKeys","_4","preventExtensions","baseObject","Proxy","preValue","childListeners","_5","nextValue","_6","success","deleteProperty","_7","_8","_9","createVanilla","_options","restore","options","exclude","clonedState","includes","devtools","ext","window","__REDUX_DEVTOOLS_EXTENSION__","enable","_10","isMutatingStoreByDevtools","infos","join","name","_11","connect","init","debug","type","payload","actions","isAction","hasState","state","newState","JSON","parse","assign","e","_12","_13","_14","stringify","unsubscribe","_previousValue","_updatedAt","toLocaleString","_innerVersion","devtools2","send","snapshot2","getActionType","produce","obj","draftHandler","withDerived","mapFn","derived"],"mappings":"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","sourcesContent":["\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/vanilla/ref.ts\nvar internal_refSet = /* @__PURE__ */ new WeakSet();\nfunction ref(o) {\n internal_refSet.add(o);\n return o;\n}\nfunction isRef(k) {\n return internal_refSet.has(k);\n}\nfunction deepCloneWithRef(initialState) {\n const cloned = createObjectFromPrototype(initialState);\n for (const key in initialState) {\n const value = initialState[key];\n if (isObject(value)) {\n if (isRef(value)) {\n cloned[key] = value;\n } else {\n cloned[key] = deepCloneWithRef(value);\n }\n } else {\n cloned[key] = value;\n }\n }\n return cloned;\n}\n\n// src/utils/react-fast-compare.ts\nvar hasMap = typeof Map === \"function\";\nvar hasSet = typeof Set === \"function\";\nvar hasHTMLElementType = typeof HTMLElement !== \"undefined\";\nvar hasArrayBuffer = typeof ArrayBuffer === \"function\" && !!ArrayBuffer.isView;\nfunction reactFastCompare(objA, objB) {\n try {\n return equal(objA, objB);\n } catch (error) {\n if ((error.message || \"\").match(/stack|recursion/i)) {\n console.warn(\"react-fast-compare cannot handle circular refs\");\n return false;\n }\n throw error;\n }\n}\nfunction equal(objA, objB) {\n if (objA === objB) return true;\n if (objA && objB && typeof objA === \"object\" && typeof objB === \"object\") {\n if (objA.constructor !== objB.constructor) return false;\n let length;\n let i;\n let keys;\n if (Array.isArray(objA)) {\n length = objA.length;\n if (length !== objB.length) return false;\n for (i = length; i-- !== 0; ) if (!equal(objA[i], objB[i])) return false;\n return true;\n }\n let it;\n if (hasMap && objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false;\n it = objA.entries();\n while (!(i = it.next()).done) if (!objB.has(i.value[0])) return false;\n it = objA.entries();\n while (!(i = it.next()).done) if (!equal(i.value[1], objB.get(i.value[0]))) return false;\n return true;\n }\n if (hasSet && objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false;\n it = objA.entries();\n while (!(i = it.next()).done) if (!objB.has(i.value[0])) return false;\n return true;\n }\n if (hasArrayBuffer && ArrayBuffer.isView(objA) && ArrayBuffer.isView(objB)) {\n length = _optionalChain([objA, 'optionalAccess', _ => _.length]);\n if (length !== _optionalChain([objB, 'optionalAccess', _2 => _2.length])) return false;\n for (i = length; i-- !== 0; ) if (objA[i] !== objB[i]) return false;\n return true;\n }\n if (objA.constructor === RegExp) return objA.source === objB.source && objA.flags === objB.flags;\n if (objA.valueOf !== Object.prototype.valueOf && typeof objA.valueOf === \"function\" && typeof objB.valueOf === \"function\")\n return objA.valueOf() === objB.valueOf();\n if (objA.toString !== Object.prototype.toString && typeof objA.toString === \"function\" && typeof objB.toString === \"function\")\n return objA.toString() === objB.toString();\n keys = Object.keys(objA);\n length = keys.length;\n if (length !== Object.keys(objB).length) return false;\n for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(objB, keys[i])) return false;\n if (hasHTMLElementType && objA instanceof HTMLElement) return false;\n for (i = length; i-- !== 0; ) {\n if ((keys[i] === \"_owner\" || keys[i] === \"__v\" || keys[i] === \"__o\") && objA.$$typeof) {\n continue;\n }\n if (!equal(objA[keys[i]], objB[keys[i]])) return false;\n }\n return true;\n }\n return objA !== objA && objB !== objB;\n}\n\n// src/utils/index.ts\nvar SNAPSHOT = Symbol(\"SNAPSHOT\");\nvar LISTENERS = Symbol(\"LISTENERS\");\nvar REACTIVE = Symbol(\"REACTIVE\");\nvar isProduction = process.env.NODE_ENV === \"production\";\nvar noop = () => {\n};\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar isObject = (x) => typeof x === \"object\" && x !== null;\nvar isBoolean = (x) => typeof x === \"boolean\";\nvar isFunction = (x) => typeof x === \"function\";\nfunction createObjectFromPrototype(target) {\n return Array.isArray(target) ? [] : Object.create(Object.getPrototypeOf(target));\n}\nfunction canProxy(x) {\n return isObject(x) && !isRef(x) && (Array.isArray(x) || !(Symbol.iterator in x)) && !(x instanceof WeakMap) && !(x instanceof WeakSet) && !(x instanceof Error) && !(x instanceof Number) && !(x instanceof Date) && !(x instanceof String) && !(x instanceof RegExp) && !(x instanceof ArrayBuffer);\n}\nvar numberReg = /^\\d+$/;\nfunction propertyKeysToPath(keys) {\n let path = \"\";\n const { length } = keys;\n for (let i = 0; i < length; i++) {\n const key = keys[i];\n if (typeof key === \"number\" || typeof key === \"string\" && numberReg.test(key)) {\n path += `[${key}]`;\n } else {\n path += (i === 0 ? \"\" : \".\") + String(key);\n }\n }\n return path;\n}\nfunction get(object, path, defaultValue = void 0) {\n const keys = Array.isArray(path) ? path : [path];\n for (const key of keys) {\n if (!(key in object)) return defaultValue;\n object = object[key];\n }\n return object;\n}\nfunction shallowEqual(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false;\n for (const [key, value] of objA) {\n if (!Object.is(value, objB.get(key))) {\n return false;\n }\n }\n return true;\n }\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false;\n for (const value of objA) {\n if (!objB.has(value)) {\n return false;\n }\n }\n return true;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n const keysLength = keysA.length;\n for (let i = 0; i < keysLength; i++) {\n if (!hasOwn.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\nfunction deepEqual(objA, objB) {\n return reactFastCompare(objA, objB);\n}\n\n// src/vanilla/snapshot.ts\nfunction snapshot(proxyState, selector = (s) => s) {\n return selector(proxyState[SNAPSHOT]);\n}\nvar getSnapshot = snapshot;\n\n// src/enhancers/vanilla/with-snapshot.ts\nfunction withSnapshot(store) {\n const _snapshot = (selector = (s) => s) => {\n return snapshot(store.mutate, selector);\n };\n return {\n ...store,\n snapshot: _snapshot\n };\n}\n\n// src/vanilla/subscribe.ts\nvar globalNotifyInSync = false;\nfunction setGlobalNotifyInSync(value) {\n globalNotifyInSync = value;\n}\nfunction subscribe(proxyState, callback, notifyInSync) {\n let promise;\n let previousState = snapshot(proxyState);\n const callbacks = /* @__PURE__ */ new Set();\n const runCallbacks = () => {\n for (const callback2 of callbacks) {\n callback2();\n }\n callbacks.clear();\n previousState = snapshot(proxyState);\n };\n function listener(props, version) {\n const currentState = snapshot(proxyState);\n const changes = {\n props,\n propsPath: propertyKeysToPath(props),\n previous: get(previousState, props),\n current: get(currentState, props),\n snapshot: currentState\n };\n callbacks.add(() => void callback(changes, version));\n const finalNotifyInSync = isBoolean(notifyInSync) ? notifyInSync : globalNotifyInSync;\n if (finalNotifyInSync) {\n return void runCallbacks();\n }\n if (!promise) {\n promise = Promise.resolve().then(() => {\n promise = void 0;\n runCallbacks();\n });\n }\n }\n ;\n proxyState[LISTENERS].add(listener);\n return () => {\n ;\n proxyState[LISTENERS].delete(listener);\n };\n}\n\n// src/enhancers/vanilla/with-subscribe.ts\nfunction withSubscribe(store) {\n function boundSubscribe(listener, sync, selector = (s) => s) {\n return subscribe(selector(store.mutate), listener, sync);\n }\n return {\n ...store,\n subscribe: boundSubscribe\n };\n}\n\n// src/vanilla/proxy.ts\nvar globalVersion = 1;\nvar snapshotCache = /* @__PURE__ */ new WeakMap();\nfunction proxy(initState, parentProps = []) {\n let version = globalVersion;\n const listeners = /* @__PURE__ */ new Set();\n const propListenerMap = /* @__PURE__ */ new Map();\n const notifyUpdate = (props, nextVersion = ++globalVersion) => {\n if (version !== nextVersion) {\n version = nextVersion;\n for (const callback of listeners) {\n callback(props, version);\n }\n }\n };\n const getPropListener = (prop) => {\n let listener = propListenerMap.get(prop);\n if (!listener) {\n listener = (props) => void notifyUpdate(props);\n propListenerMap.set(prop, listener);\n }\n return listener;\n };\n const popPropListener = (prop) => {\n const listener = propListenerMap.get(prop);\n propListenerMap.delete(prop);\n return listener;\n };\n const createSnapshot = (target, receiver) => {\n const cache = snapshotCache.get(receiver);\n if (_optionalChain([cache, 'optionalAccess', _3 => _3[0]]) === version) return cache[1];\n const nextSnapshot = createObjectFromPrototype(target);\n snapshotCache.set(receiver, [version, nextSnapshot]);\n for (const key of Reflect.ownKeys(target)) {\n if (key === REACTIVE) continue;\n const value = Reflect.get(target, key, receiver);\n if (isRef(value)) {\n nextSnapshot[key] = value;\n } else if (_optionalChain([value, 'optionalAccess', _4 => _4[REACTIVE]])) {\n nextSnapshot[key] = snapshot(value);\n } else {\n nextSnapshot[key] = value;\n }\n }\n Object.preventExtensions(nextSnapshot);\n return nextSnapshot;\n };\n const baseObject = createObjectFromPrototype(initState);\n const proxyState = new Proxy(baseObject, {\n get(target, prop, receiver) {\n if (prop === LISTENERS) {\n return listeners;\n }\n if (prop === SNAPSHOT) {\n return createSnapshot(target, receiver);\n }\n return Reflect.get(target, prop, receiver);\n },\n set(target, prop, value, receiver) {\n const props = [...parentProps, prop];\n const preValue = Reflect.get(target, prop, receiver);\n const childListeners = _optionalChain([preValue, 'optionalAccess', _5 => _5[LISTENERS]]);\n if (childListeners) childListeners.delete(popPropListener(prop));\n if (!isObject(value) && Object.is(preValue, value)) {\n return true;\n }\n let nextValue = value;\n if (_optionalChain([nextValue, 'optionalAccess', _6 => _6[LISTENERS]])) {\n nextValue[LISTENERS].add(getPropListener(prop));\n } else if (canProxy(value)) {\n nextValue = proxy(value, props);\n nextValue[LISTENERS].add(getPropListener(prop));\n }\n const success = Reflect.set(target, prop, nextValue, receiver);\n success && notifyUpdate(props);\n return success;\n },\n deleteProperty(target, prop) {\n const props = [...parentProps, prop];\n const childListeners = _optionalChain([Reflect, 'access', _7 => _7.get, 'call', _8 => _8(target, prop), 'optionalAccess', _9 => _9[LISTENERS]]);\n if (childListeners) childListeners.delete(popPropListener(prop));\n const success = Reflect.deleteProperty(target, prop);\n success && notifyUpdate(props);\n return success;\n }\n });\n for (const key of Reflect.ownKeys(initState)) {\n proxyState[key] = initState[key];\n }\n Reflect.defineProperty(proxyState, REACTIVE, { value: true });\n return proxyState;\n}\n\n// src/vanilla/create.ts\nfunction createVanilla(initState, _options = {}) {\n const proxyState = proxy(initState);\n function restore(options = {}) {\n const { exclude = [] } = options;\n const clonedState = deepCloneWithRef(initState);\n for (const key of Object.keys(clonedState)) {\n if (exclude.includes(key)) continue;\n proxyState[key] = clonedState[key];\n }\n }\n const store = { mutate: proxyState, restore };\n return withSubscribe(withSnapshot(store));\n}\nvar create = createVanilla;\n\n// src/vanilla/devtools.ts\nfunction devtools(store, options) {\n if (isProduction) return noop;\n const ext = window.__REDUX_DEVTOOLS_EXTENSION__;\n const enable = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _10 => _10.enable]), () => ( true));\n let isMutatingStoreByDevtools = false;\n if (!enable) return noop;\n if (!ext) {\n const infos = [\n \"[Warning] to enable devtools, make sure you've installed Redux devtools extension \\u{1F449}\",\n \"https://github.com/reduxjs/redux-devtools#redux-devtools\"\n ];\n console.warn(infos.join(\" \"));\n return noop;\n }\n const name = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _11 => _11.name]), () => ( \"untitled\"));\n const devtools2 = ext.connect(options);\n const initialState = snapshot(store.mutate);\n devtools2.init(initialState);\n devtools2.subscribe((message) => {\n console.debug(\"[reactive] message from devtools: \", message);\n if (message.type !== \"DISPATCH\") return;\n if (!message.payload) return;\n if (message.payload.type === \"RESET\") devtools2.init(initialState);\n if (message.payload.type === \"COMMIT\") devtools2.init(snapshot(store.mutate));\n const actions = [\"ROLLBACK\", \"JUMP_TO_ACTION\"];\n const isAction = actions.includes(message.payload.type);\n const hasState = message.state && message.state !== \"{}\";\n if (isAction && hasState) {\n try {\n isMutatingStoreByDevtools = true;\n const newState = JSON.parse(message.state || \"{}\");\n Object.assign(store.mutate, newState);\n console.debug(\"[reactive] mutate state by devtools: \", newState);\n } catch (e) {\n devtools2.error(_optionalChain([e, 'optionalAccess', _12 => _12.message]) || _optionalChain([e, 'optionalAccess', _13 => _13.toString, 'call', _14 => _14()]) || JSON.stringify(e || \"\"));\n } finally {\n isMutatingStoreByDevtools = false;\n }\n }\n });\n const unsubscribe = subscribe(\n store.mutate,\n (changes, version) => {\n const { propsPath, previous, current, snapshot: snapshot2 } = changes;\n if (isMutatingStoreByDevtools) return;\n const payload = {\n type: `[${canProxy(current) ? \"replace\" : \"set\"}] ${propsPath}`,\n payload: current,\n _previousValue: previous,\n _updatedAt: (/* @__PURE__ */ new Date()).toLocaleString(),\n _innerVersion: version\n };\n devtools2.send(payload, snapshot2);\n console.debug(`[reactive] [${name}] [${getActionType(current)}] ${propsPath}`, current);\n },\n true\n );\n console.debug(`[reactive] [${name}] devtools is enabled`);\n return () => {\n devtools2.unsubscribe();\n unsubscribe();\n console.debug(`[reactive] [${name}] devtools is disabled`);\n };\n}\nfunction getActionType(state) {\n return canProxy(state) ? \"replace\" : \"set\";\n}\n\n// src/vanilla/produce.ts\nfunction produce(obj, draftHandler) {\n let state = proxy(obj);\n draftHandler(state);\n const nextSnapshot = snapshot(state);\n state = null;\n return nextSnapshot;\n}\n\n// src/enhancers/vanilla/with-derived.ts\nfunction withDerived(store, mapFn = (s) => s) {\n return {\n ...store,\n derived: () => mapFn(store.mutate)\n };\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nexports.ref = ref; exports.isRef = isRef; exports.deepCloneWithRef = deepCloneWithRef; exports.isFunction = isFunction; exports.shallowEqual = shallowEqual; exports.deepEqual = deepEqual; exports.snapshot = snapshot; exports.getSnapshot = getSnapshot; exports.withSnapshot = withSnapshot; exports.setGlobalNotifyInSync = setGlobalNotifyInSync; exports.subscribe = subscribe; exports.withSubscribe = withSubscribe; exports.proxy = proxy; exports.createVanilla = createVanilla; exports.create = create; exports.devtools = devtools; exports.produce = produce; exports.withDerived = withDerived;\n","import { createObjectFromPrototype, isObject } from '../utils'\n\nconst internal_refSet = new WeakSet()\n\nexport function ref<T extends object>(o: T): T {\n internal_refSet.add(o)\n return o\n}\n\nexport function isRef<T extends object>(k: T): boolean {\n return internal_refSet.has(k)\n}\n\nexport function deepCloneWithRef<State extends object>(initialState: State): State {\n const cloned: State = createObjectFromPrototype(initialState)\n\n for (const key in initialState) {\n const value = initialState[key as keyof State]\n\n if (isObject(value)) {\n if (isRef(value)) {\n cloned[key as keyof State] = value\n } else {\n cloned[key as keyof State] = deepCloneWithRef(value)\n }\n } else {\n cloned[key as keyof State] = value\n }\n }\n\n return cloned\n}\n","const hasMap = typeof Map === 'function'\nconst hasSet = typeof Set === 'function'\nconst hasHTMLElementType = typeof HTMLElement !== 'undefined'\nconst hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView\n\n/**\n * @description `react-fast-compare` rewritten using TypeScript\n * @from {@link https://github.com/FormidableLabs/react-fast-compare/blob/6f7d8afe02e4480c32f5af16f571367cccd47abc/index.js | react-fast-compare - GitHub}\n */\nexport function reactFastCompare(objA: unknown, objB: unknown) {\n try {\n return equal(objA, objB)\n } catch (error: any) {\n if ((error.message || '').match(/stack|recursion/i)) {\n console.warn('react-fast-compare cannot handle circular refs')\n return false\n }\n\n throw error\n }\n}\n\nfunction equal(objA: any, objB: any) {\n if (objA === objB) return true\n\n if (objA && objB && typeof objA === 'object' && typeof objB === 'object') {\n if (objA.constructor !== objB.constructor) return false\n\n let length\n let i\n let keys\n\n if (Array.isArray(objA)) {\n length = objA.length\n if (length !== objB.length) return false\n for (i = length; i-- !== 0; ) if (!equal(objA[i], objB[i])) return false\n return true\n }\n\n let it\n\n if (hasMap && objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false\n it = objA.entries()\n while (!(i = it.next()).done) if (!objB.has(i.value[0])) return false\n it = objA.entries()\n while (!(i = it.next()).done) if (!equal(i.value[1], objB.get(i.value[0]))) return false\n return true\n }\n\n if (hasSet && objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false\n it = objA.entries()\n while (!(i = it.next()).done) if (!objB.has(i.value[0])) return false\n return true\n }\n\n if (hasArrayBuffer && ArrayBuffer.isView(objA) && ArrayBuffer.isView(objB)) {\n length = (objA as any)?.length as never\n if (length !== (objB as any)?.length) return false\n for (i = length; i-- !== 0; ) if (objA[i] !== objB[i]) return false\n return true\n }\n\n if (objA.constructor === RegExp) return objA.source === objB.source && objA.flags === objB.flags\n\n if (\n objA.valueOf !== Object.prototype.valueOf &&\n typeof objA.valueOf === 'function' &&\n typeof objB.valueOf === 'function'\n )\n return objA.valueOf() === objB.valueOf()\n if (\n objA.toString !== Object.prototype.toString &&\n typeof objA.toString === 'function' &&\n typeof objB.toString === 'function'\n )\n return objA.toString() === objB.toString()\n\n keys = Object.keys(objA)\n length = keys.length\n if (length !== Object.keys(objB).length) return false\n\n for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(objB, keys[i])) return false\n\n if (hasHTMLElementType && objA instanceof HTMLElement) return false\n\n for (i = length; i-- !== 0; ) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && objA.$$typeof) {\n continue\n }\n\n if (!equal(objA[keys[i]], objB[keys[i]])) return false\n }\n\n return true\n }\n\n return objA !== objA && objB !== objB\n}\n","import { isRef } from '../vanilla/ref.js'\nimport { reactFastCompare } from './react-fast-compare.js'\n\nexport type ExpandType<T> = {\n [K in keyof T]: T[K]\n}\n\nexport type DeepExpandType<T> = {\n [K in keyof T]: T[K] extends object ? DeepExpandType<T[K]> : T[K]\n}\n\nexport type AnyFunc = (...args: any[]) => any\n\nexport const SNAPSHOT = Symbol('SNAPSHOT')\nexport const LISTENERS = Symbol('LISTENERS')\nexport const REACTIVE = Symbol('REACTIVE')\n\nexport const isProduction = process.env.NODE_ENV === 'production'\n\nexport const noop = () => {}\nexport const hasOwn = Object.prototype.hasOwnProperty\nexport const isObject = (x: unknown): x is object => typeof x === 'object' && x !== null\nexport const isBoolean = (x: unknown): x is boolean => typeof x === 'boolean'\nexport const isFunction = (x: unknown): x is (...args: any[]) => any => typeof x === 'function'\n\nexport function createObjectFromPrototype<T extends object>(target: T): T {\n return (Array.isArray(target) ? [] : Object.create(Object.getPrototypeOf(target))) as T\n}\n\nexport function canProxy(x: unknown) {\n return (\n isObject(x) &&\n !isRef(x) &&\n (Array.isArray(x) || !(Symbol.iterator in x)) &&\n !(x instanceof WeakMap) &&\n !(x instanceof WeakSet) &&\n !(x instanceof Error) &&\n !(x instanceof Number) &&\n !(x instanceof Date) &&\n !(x instanceof String) &&\n !(x instanceof RegExp) &&\n !(x instanceof ArrayBuffer)\n )\n}\n\nconst numberReg = /^\\d+$/\n\nexport function propertyKeysToPath(keys: PropertyKey[]) {\n let path = ''\n const { length } = keys\n for (let i = 0; i < length; i++) {\n const key = keys[i]\n if (typeof key === 'number' || (typeof key === 'string' && numberReg.test(key))) {\n path += `[${key}]`\n } else {\n path += (i === 0 ? '' : '.') + String(key)\n }\n }\n return path\n}\n\nexport function get(\n object: object,\n path: PropertyKey | PropertyKey[],\n defaultValue: unknown = undefined\n) {\n const keys = Array.isArray(path) ? path : [path]\n for (const key of keys) {\n if (!(key in object)) return defaultValue\n // biome-ignore lint/style/noParameterAssign: internal usage\n object = object[key as never]\n }\n return object\n}\n\nexport function shallowEqual<T>(objA: T, objB: T) {\n if (Object.is(objA, objB)) {\n return true\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false\n }\n\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false\n\n for (const [key, value] of objA) {\n if (!Object.is(value, objB.get(key))) {\n return false\n }\n }\n return true\n }\n\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false\n\n for (const value of objA) {\n if (!objB.has(value)) {\n return false\n }\n }\n\n return true\n }\n\n const keysA = Object.keys(objA)\n\n if (keysA.length !== Object.keys(objB).length) {\n return false\n }\n\n const keysLength = keysA.length\n\n for (let i = 0; i < keysLength; i++) {\n if (\n !hasOwn.call(objB, keysA[i] as string) ||\n !Object.is(objA[keysA[i] as keyof T], objB[keysA[i] as keyof T])\n ) {\n return false\n }\n }\n\n return true\n}\n\nexport function deepEqual<T>(objA: T, objB: T) {\n return reactFastCompare(objA, objB)\n}\n","import { SNAPSHOT } from '../utils/index.js'\n\nimport type { SnapshotSelector } from '../react/use-snapshot.js'\n\n/**\n * Get a snapshot of the store state.\n *\n * @param proxyState The store state.\n *\n * @since 0.2.0\n */\nexport function snapshot<State extends object, StateSlice = State>(\n proxyState: State,\n selector: SnapshotSelector<State, StateSlice> = (s) => s as unknown as StateSlice,\n): StateSlice {\n return selector((proxyState as any)[SNAPSHOT])\n}\n\n/**\n * @deprecated Use `snapshot` instead. Will be removed in the next major version.\n */\nexport const getSnapshot = snapshot\n","import { snapshot } from '../../vanilla/snapshot.js'\n\nimport type { SnapshotSelector } from '../../react/use-snapshot.js'\nimport type { VanillaStore } from '../../vanilla/create.js'\n\nexport interface WithSnapshotContributes<State extends object> {\n /**\n * Get the snapshot of the state.\n */\n snapshot: <StateSlice = State>(selector?: SnapshotSelector<State, StateSlice>) => StateSlice\n}\n\n/**\n * Enhances a store with a `snapshot` method that returns a snapshot of the store's state.\n *\n * @param store - The store to enhance.\n * @returns The enhanced store.\n *\n * @since 0.2.0\n *\n * @example\n *\n * ```tsx\n * const store = withSnapshot(\n * createVanilla({\n * count: 123,\n * info: { name: 'Viki' },\n * }),\n * )\n *\n * // in normal JS/TS\n * console.log(store.snapshot(), store.snapshot((s) => s.count))\n * ```\n */\nexport function withSnapshot<Store extends VanillaStore<object>>(\n store: Store,\n): Store & WithSnapshotContributes<Store['mutate']> {\n const _snapshot = <StateSlice = Store>(\n selector: SnapshotSelector<Store['mutate'], StateSlice> = (s) => s as unknown as StateSlice,\n ) => {\n return snapshot(store.mutate, selector) as StateSlice\n }\n\n return {\n ...store,\n snapshot: _snapshot,\n }\n}\n","import { snapshot } from './snapshot.js'\nimport { LISTENERS, get, isBoolean, propertyKeysToPath } from '../utils/index.js'\n\nimport type { StoreListener } from './proxy.js'\n\nexport interface ChangeItem<State> {\n props: PropertyKey[]\n propsPath: string\n previous: unknown\n current: unknown\n snapshot: State\n}\n\n/**\n * @deprecated Use `SubscribeListener` instead. Will be removed in the next major version.\n */\nexport type SubscribeCallback<State> = SubscribeListener<State>\n\nexport type SubscribeListener<State> = (changes: ChangeItem<State>, version?: number) => void\n\nlet globalNotifyInSync: boolean = false\n\n/**\n * Set the global default `sync` option.\n *\n * when the`sync` option is not set, this value will be used as fallback.\n *\n * set to `true` to notify subscribers in sync by default, or `false` to notify them asynchronously by default.\n *\n * @default false\n *\n * @since 0.3.0\n */\nexport function setGlobalNotifyInSync(value: boolean) {\n globalNotifyInSync = value\n}\n\n/**\n * Subscribe to the store's state changes.\n */\nexport function subscribe<State extends object>(\n proxyState: State,\n callback: SubscribeListener<State>,\n notifyInSync?: boolean\n) {\n let promise: Promise<void> | undefined\n let previousState = snapshot(proxyState)\n const callbacks = new Set<() => void>()\n\n const runCallbacks = () => {\n for (const callback of callbacks) {\n callback()\n }\n callbacks.clear()\n previousState = snapshot(proxyState)\n }\n\n function listener(props: PropertyKey[], version?: number) {\n const currentState = snapshot(proxyState)\n\n const changes = {\n props,\n propsPath: propertyKeysToPath(props),\n previous: get(previousState, props),\n current: get(currentState, props),\n snapshot: currentState,\n }\n\n callbacks.add(() => void callback(changes, version))\n\n const finalNotifyInSync = isBoolean(notifyInSync) ? notifyInSync : globalNotifyInSync\n\n if (finalNotifyInSync) {\n return void runCallbacks()\n }\n\n if (!promise) {\n promise = Promise.resolve().then(() => {\n promise = undefined\n runCallbacks()\n })\n }\n }\n ;((proxyState as any)[LISTENERS] as Set<StoreListener>).add(listener)\n\n return () => {\n ;((proxyState as any)[LISTENERS] as Set<StoreListener>).delete(listener)\n }\n}\n","import { subscribe } from '../../vanilla/subscribe.js'\n\nimport type { SubscribeListener, VanillaStore } from '../../vanilla/index.js'\n\nexport interface WithSubscribeContributes<State extends object> {\n /**\n * Subscribe to the store's state changes.\n *\n * @param listener - The listener to be called when the state changes.\n * @param sync - Whether to call the listener synchronously.\n * @param selector - A selector to select a part of the state to be passed to the listener.\n */\n subscribe: (\n listener: SubscribeListener<State>,\n sync?: boolean,\n selector?: (state: State) => object\n ) => () => void\n}\n\n/**\n * Enhance a store with the `subscribe` method.\n *\n * @param store - The store to be enhanced.\n * @returns The enhanced store.\n *\n * @since 0.2.0\n *\n * @example\n *\n * ```ts\n * import { createVanilla, withSubscribe } from '@reactive-react/core'\n *\n * const store = withSubscribe(createVanilla({ count: 0 }))\n *\n * const unsubscribe = store.subscribe((state) => {\n * console.log(state.count)\n * })\n * ```\n *\n */\nexport function withSubscribe<Store extends VanillaStore<object>>(\n store: Store\n): Store & WithSubscribeContributes<Store['mutate']> {\n function boundSubscribe(\n listener: SubscribeListener<Store['mutate']>,\n sync?: boolean,\n selector: (state: Store['mutate']) => object = (s: Store['mutate']) => s\n ) {\n return subscribe(selector(store.mutate) as Store['mutate'], listener, sync)\n }\n\n return {\n ...store,\n subscribe: boundSubscribe,\n }\n}\n","import { LISTENERS, REACTIVE, SNAPSHOT, canProxy, createObjectFromPrototype, isObject } from '../utils/index.js'\nimport { isRef } from './ref.js'\nimport { snapshot } from './snapshot.js'\n\nlet globalVersion = 1\n\nconst snapshotCache = new WeakMap<object, [version: number, snapshot: unknown]>()\n\nexport type StoreListener = (props: PropertyKey[], version?: number) => void\n\n/**\n * @deprecated use `StoreListener` instead\n */\nexport type Listener = StoreListener\n\nexport function proxy<State extends object>(initState: State, parentProps: PropertyKey[] = []): State {\n let version = globalVersion\n\n // for all changes including nested objects, stored in `proxyState[LISTENERS]`\n const listeners = new Set<StoreListener>()\n\n // only for changes in the current object, stored in function scope\n const propListenerMap = new Map<PropertyKey, StoreListener>()\n\n const notifyUpdate = (props: PropertyKey[], nextVersion = ++globalVersion) => {\n if (version !== nextVersion) {\n version = nextVersion\n for (const callback of listeners) {\n callback(props, version)\n }\n }\n }\n\n const getPropListener = (prop: PropertyKey) => {\n let listener = propListenerMap.get(prop)\n if (!listener) {\n listener = (props: PropertyKey[]) => void notifyUpdate(props)\n propListenerMap.set(prop, listener)\n }\n return listener\n }\n\n const popPropListener = (prop: PropertyKey) => {\n const listener = propListene