@tamagui/use-store 2.7.7 → 3.0.0-beta.643.1

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.
Files changed (83) hide show
  1. package/dist/cjs/comparators.cjs +27 -30
  2. package/dist/cjs/comparators.native.cjs +45 -0
  3. package/dist/cjs/comparators.native.js +31 -34
  4. package/dist/cjs/comparators.native.js.map +1 -1
  5. package/dist/cjs/configureUseStore.cjs +17 -18
  6. package/dist/cjs/configureUseStore.native.cjs +33 -0
  7. package/dist/cjs/configureUseStore.native.js +17 -17
  8. package/dist/cjs/configureUseStore.native.js.map +1 -1
  9. package/dist/cjs/constants.cjs +19 -20
  10. package/dist/cjs/constants.native.cjs +34 -0
  11. package/dist/cjs/constants.native.js +19 -19
  12. package/dist/cjs/constants.native.js.map +1 -1
  13. package/dist/cjs/decorators.cjs +19 -22
  14. package/dist/cjs/decorators.native.cjs +32 -0
  15. package/dist/cjs/decorators.native.js +19 -21
  16. package/dist/cjs/decorators.native.js.map +1 -1
  17. package/dist/cjs/helpers.cjs +39 -40
  18. package/dist/cjs/helpers.native.cjs +68 -0
  19. package/dist/cjs/helpers.native.js +42 -43
  20. package/dist/cjs/helpers.native.js.map +1 -1
  21. package/dist/cjs/index.cjs +22 -23
  22. package/dist/cjs/index.native.cjs +62 -0
  23. package/dist/cjs/index.native.js +35 -36
  24. package/dist/cjs/index.native.js.map +1 -1
  25. package/dist/cjs/interfaces.cjs +10 -11
  26. package/dist/cjs/interfaces.native.cjs +19 -0
  27. package/dist/cjs/interfaces.native.js +10 -10
  28. package/dist/cjs/interfaces.native.js.map +1 -1
  29. package/dist/cjs/observe.cjs +132 -138
  30. package/dist/cjs/observe.native.cjs +221 -0
  31. package/dist/cjs/observe.native.js +192 -203
  32. package/dist/cjs/observe.native.js.map +1 -1
  33. package/dist/cjs/useStore.cjs +366 -403
  34. package/dist/cjs/useStore.native.cjs +557 -0
  35. package/dist/cjs/useStore.native.js +487 -536
  36. package/dist/cjs/useStore.native.js.map +1 -1
  37. package/dist/cjs/useStoreDebug.cjs +39 -45
  38. package/dist/cjs/useStoreDebug.native.cjs +64 -0
  39. package/dist/cjs/useStoreDebug.native.js +43 -48
  40. package/dist/cjs/useStoreDebug.native.js.map +1 -1
  41. package/dist/esm/comparators.mjs +13 -12
  42. package/dist/esm/comparators.mjs.map +1 -1
  43. package/dist/esm/comparators.native.js +17 -17
  44. package/dist/esm/comparators.native.js.map +1 -1
  45. package/dist/esm/configureUseStore.mjs +2 -1
  46. package/dist/esm/configureUseStore.mjs.map +1 -1
  47. package/dist/esm/configureUseStore.native.js +2 -1
  48. package/dist/esm/configureUseStore.native.js.map +1 -1
  49. package/dist/esm/constants.mjs +4 -3
  50. package/dist/esm/constants.mjs.map +1 -1
  51. package/dist/esm/constants.native.js +4 -3
  52. package/dist/esm/constants.native.js.map +1 -1
  53. package/dist/esm/decorators.mjs +5 -4
  54. package/dist/esm/decorators.mjs.map +1 -1
  55. package/dist/esm/decorators.native.js +5 -4
  56. package/dist/esm/decorators.native.js.map +1 -1
  57. package/dist/esm/helpers.mjs +20 -18
  58. package/dist/esm/helpers.mjs.map +1 -1
  59. package/dist/esm/helpers.native.js +23 -22
  60. package/dist/esm/helpers.native.js.map +1 -1
  61. package/dist/esm/index.js +18 -11
  62. package/dist/esm/index.js.map +1 -1
  63. package/dist/esm/index.mjs +18 -11
  64. package/dist/esm/index.mjs.map +1 -1
  65. package/dist/esm/index.native.js +30 -24
  66. package/dist/esm/index.native.js.map +1 -1
  67. package/dist/esm/interfaces.mjs +0 -2
  68. package/dist/esm/interfaces.native.js +0 -2
  69. package/dist/esm/observe.mjs +115 -113
  70. package/dist/esm/observe.mjs.map +1 -1
  71. package/dist/esm/observe.native.js +175 -179
  72. package/dist/esm/observe.native.js.map +1 -1
  73. package/dist/esm/useStore.mjs +336 -363
  74. package/dist/esm/useStore.mjs.map +1 -1
  75. package/dist/esm/useStore.native.js +457 -497
  76. package/dist/esm/useStore.native.js.map +1 -1
  77. package/dist/esm/useStoreDebug.mjs +20 -18
  78. package/dist/esm/useStoreDebug.mjs.map +1 -1
  79. package/dist/esm/useStoreDebug.native.js +23 -21
  80. package/dist/esm/useStoreDebug.native.js.map +1 -1
  81. package/package.json +3 -3
  82. package/dist/esm/interfaces.mjs.map +0 -1
  83. package/dist/esm/interfaces.native.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","isEqualSubsetShallow","configureOpts","UNWRAP_PROXY","defaultOptions","UNWRAP_STORE_INFO","cache","getStoreDescriptors","getStoreUid","simpleStr","DebugStores","shouldDebug","useCurrentComponent","idFn","_","useStore","StoreKlass","props","options","useStoreFromInfo","getOrCreateStoreInfo","selector","useStoreDebug","debug","createStore","store","useGlobalStore","instance","uid","constructor","info","get","Error","useGlobalStoreSelector","createUseStore","createUseStoreSelector","useStoreSelector","storeAccessTrackers","Set","trackStoresAccess","cb","add","delete","getStore","getStoreInfo","getOrCreateStore","refuseCreation","onCreateListeners","onCreateStore","propsKeyCalculated","avoidCache","has","name","storeInstance","getters","actions","stateKeys","descriptors","key","descriptor","value","keyComparators","listeners","storeInfo","disableTracking","gettersState","getCache","Map","depsToGetter","curGetKeys","isGetting","trackers","version","subscribe","onChanged","triggerUpdate","Number","MAX_SAFE_INTEGER","createProxiedStore","process","env","NODE_ENV","allStores","mount","result","set","forEach","globalThis","emptyObj","selectKeys","obj","keys","length","res","isInReaction","setIsInReaction","val","userSelector","internal","useRef","component","current","tracked","last","lastKeys","curInternal","shouldPrintDebug","getSnapshot","useCallback","curInternal2","isTracking","size","nextKeys","join","snap","isUnchanged","console","storeState","Object","state","useSyncExternalStore","Proxy","target","curVal","Reflect","keyString","setters","logStack","constr","shouldDebug2","didSet","wrappedActions","actionFn","isGetFn","startsWith","useStoreAction","args","apply","proxiedStore","Promise","then","finishAction","hashCode","str","hash","i","charCodeAt","strColor","ogAction","thisArg","isDebugging","LOG_LEVEL","logLevel","curSetters","isTopLevelLogger","logs","id","counter","err","error","color","simpleArgs","map","padStart","key2","item","groupEnd","head","rest","groupCollapsed","trace","name2","log","clear","isTriggering","passThroughKeys","isSubGetter","call","gk","receiver","cur","clearGetterCache","getShouldDebug","waitForEventLoop","setKey","parentGetters","queueMicrotask","_version","_trackers","$$typeof","_listeners","_enableTracking","some","tracker"],"sources":["useStore.mjs"],"sourcesContent":["import React from \"react\";\nimport { isEqualSubsetShallow } from \"./comparators\";\nimport { configureOpts } from \"./configureUseStore\";\nimport { UNWRAP_PROXY, defaultOptions } from \"./constants\";\nimport { UNWRAP_STORE_INFO, cache, getStoreDescriptors, getStoreUid, simpleStr } from \"./helpers\";\nimport { DebugStores, shouldDebug, useCurrentComponent } from \"./useStoreDebug\";\n\nconst idFn = (_) => _;\nfunction useStore(StoreKlass, props, options = defaultOptions) {\n\treturn useStoreFromInfo(getOrCreateStoreInfo(StoreKlass, props, options), options.selector, options);\n}\nfunction useStoreDebug(StoreKlass, props) {\n\treturn useStore(StoreKlass, props, { debug: true });\n}\nfunction createStore(StoreKlass, props, options) {\n\treturn getOrCreateStoreInfo(StoreKlass, props, options)?.store;\n}\nfunction useGlobalStore(instance, debug) {\n\tconst store = instance[UNWRAP_PROXY];\n\tconst uid = getStoreUid(store.constructor, store.props);\n\tconst info = cache.get(uid);\n\tif (!info) throw new Error(`This store not created using createStore()`);\n\treturn useStoreFromInfo(info, void 0, { debug });\n}\nfunction useGlobalStoreSelector(instance, selector, debug) {\n\tconst store = instance[UNWRAP_PROXY];\n\tconst uid = getStoreUid(store.constructor, store.props);\n\tconst info = cache.get(uid);\n\tif (!info) throw new Error(`This store not created using createStore()`);\n\treturn useStoreFromInfo(info, selector, { debug });\n}\nfunction createUseStore(StoreKlass) {\n\treturn (props, options) => useStore(StoreKlass, props, options);\n}\nfunction createUseStoreSelector(StoreKlass, selector) {\n\treturn (props) => {\n\t\treturn useStore(StoreKlass, props, { selector });\n\t};\n}\nfunction useStoreSelector(StoreKlass, selector, props) {\n\treturn useStore(StoreKlass, props, { selector });\n}\nconst storeAccessTrackers = /* @__PURE__ */ new Set();\nfunction trackStoresAccess(cb) {\n\tstoreAccessTrackers.add(cb);\n\treturn () => {\n\t\tstoreAccessTrackers.delete(cb);\n\t};\n}\nfunction getStore(StoreKlass, props) {\n\treturn getStoreInfo(StoreKlass, props)?.store;\n}\nfunction getOrCreateStore(StoreKlass, props) {\n\treturn getOrCreateStoreInfo(StoreKlass, props, { refuseCreation: false })?.store;\n}\nfunction getStoreInfo(StoreKlass, props) {\n\treturn getOrCreateStoreInfo(StoreKlass, props, { refuseCreation: true });\n}\nconst onCreateListeners = /* @__PURE__ */ new Set();\nfunction onCreateStore(cb) {\n\tonCreateListeners.add(cb);\n\treturn () => {\n\t\tonCreateListeners.delete(cb);\n\t};\n}\nfunction getOrCreateStoreInfo(StoreKlass, props, options, propsKeyCalculated) {\n\tif (!StoreKlass) return null;\n\tconst uid = getStoreUid(StoreKlass, propsKeyCalculated ?? props);\n\tif (!options?.avoidCache && cache.has(uid)) return cache.get(uid);\n\tif (options?.refuseCreation) throw new Error(`No store exists (${StoreKlass.name}) with props: ${props}`);\n\tconst storeInstance = new StoreKlass(props);\n\tstoreInstance.props = props;\n\tconst getters = {};\n\tconst actions = {};\n\tconst stateKeys = /* @__PURE__ */ new Set();\n\tconst descriptors = getStoreDescriptors(storeInstance);\n\tfor (const key in descriptors) {\n\t\tconst descriptor = descriptors[key];\n\t\tif (typeof descriptor.value === \"function\") actions[key] = descriptor.value;\n\t\telse if (typeof descriptor.get === \"function\") getters[key] = descriptor.get;\n\t\telse if (key !== \"props\" && key[0] !== \"_\") stateKeys.add(key);\n\t}\n\tconst keyComparators = storeInstance[\"_comparators\"];\n\tconst listeners = /* @__PURE__ */ new Set();\n\tconst storeInfo = {\n\t\tuid,\n\t\tkeyComparators,\n\t\tstoreInstance,\n\t\tgetters,\n\t\tstateKeys,\n\t\tprops,\n\t\tactions,\n\t\tdebug: options?.debug,\n\t\tdisableTracking: false,\n\t\tgettersState: {\n\t\t\tgetCache: /* @__PURE__ */ new Map(),\n\t\t\tdepsToGetter: /* @__PURE__ */ new Map(),\n\t\t\tcurGetKeys: /* @__PURE__ */ new Set(),\n\t\t\tisGetting: false\n\t\t},\n\t\tlisteners,\n\t\ttrackers: /* @__PURE__ */ new Set(),\n\t\tversion: 0,\n\t\tsubscribe: (onChanged) => {\n\t\t\tlisteners.add(onChanged);\n\t\t\treturn () => {\n\t\t\t\tlisteners.delete(onChanged);\n\t\t\t};\n\t\t},\n\t\ttriggerUpdate: () => {\n\t\t\tstoreInfo.version = (storeInfo.version + 1) % Number.MAX_SAFE_INTEGER;\n\t\t\tfor (const cb of listeners) cb();\n\t\t}\n\t};\n\tconst store = createProxiedStore(storeInfo);\n\tif (process.env.NODE_ENV === \"development\") allStores[StoreKlass.name + uid] = store;\n\tstore.mount?.();\n\tstoreInfo.store = store;\n\tconst result = storeInfo;\n\tcache.set(uid, result);\n\tonCreateListeners.forEach((cb) => cb(result));\n\treturn result;\n}\nconst allStores = {};\nif (process.env.NODE_ENV === \"development\") globalThis[\"Store\"] ||= allStores;\nconst emptyObj = {};\nconst selectKeys = (obj, keys) => {\n\tif (!keys.length) return emptyObj;\n\tconst res = {};\n\tfor (const key of keys) res[key] = obj[key];\n\treturn res;\n};\nlet isInReaction = false;\nconst setIsInReaction = (val) => {\n\tisInReaction = val;\n};\nfunction useStoreFromInfo(info, userSelector, options) {\n\tconst store = info?.store;\n\tconst internal = React.useRef(void 0);\n\tconst component = useCurrentComponent();\n\tif (!internal.current) internal.current = {\n\t\tcomponent,\n\t\ttracked: /* @__PURE__ */ new Set(),\n\t\tlast: null,\n\t\tlastKeys: null\n\t};\n\tconst curInternal = internal.current;\n\tconst shouldPrintDebug = options?.debug;\n\tconst getSnapshot = React.useCallback(() => {\n\t\tif (!info || !store) return;\n\t\tconst curInternal2 = internal.current;\n\t\tconst isTracking = curInternal2.tracked.size;\n\t\tconst keys = [...!isTracking ? info.stateKeys : curInternal2.tracked];\n\t\tconst nextKeys = `${info.version}${keys.join(\"\")}${userSelector || \"\"}`;\n\t\tconst lastKeys = curInternal2.lastKeys;\n\t\tif (nextKeys === curInternal2.lastKeys) return curInternal2.last;\n\t\tcurInternal2.lastKeys = nextKeys;\n\t\tlet snap;\n\t\tinfo.disableTracking = true;\n\t\tconst last = curInternal2.last;\n\t\tif (userSelector) snap = userSelector(store);\n\t\telse snap = selectKeys(store, keys);\n\t\tinfo.disableTracking = false;\n\t\tconst isUnchanged = !userSelector && !isTracking && last || typeof last !== \"undefined\" && isEqualSubsetShallow(last, snap, { keyComparators: info.keyComparators });\n\t\tif (shouldPrintDebug) console.info(\"🌑 getSnapshot\", {\n\t\t\tstoreState: selectKeys(store, Object.keys(store)),\n\t\t\tuserSelector,\n\t\t\tinfo,\n\t\t\tisUnchanged,\n\t\t\tcomponent,\n\t\t\tkeys,\n\t\t\tlast,\n\t\t\tsnap,\n\t\t\tcurInternal: curInternal2,\n\t\t\tnextKeys,\n\t\t\tlastKeys\n\t\t});\n\t\tif (isUnchanged) return last;\n\t\tcurInternal2.last = snap;\n\t\treturn snap;\n\t}, [store]);\n\tconst state = React.useSyncExternalStore(info?.subscribe || idFn, getSnapshot, getSnapshot);\n\tif (!info || !store || !state) return state;\n\tif (userSelector) return state;\n\treturn new Proxy(store, { get(target, key) {\n\t\tconst curVal = Reflect.get(target, key);\n\t\tif (isInReaction) return curVal;\n\t\tconst keyString = key;\n\t\tif (info.stateKeys.has(keyString) || keyString in info.getters) {\n\t\t\tif (shouldPrintDebug) console.info(\"👀 tracking\", keyString);\n\t\t\tcurInternal.tracked.add(keyString);\n\t\t}\n\t\tif (Reflect.has(state, key)) return Reflect.get(state, key);\n\t\treturn curVal;\n\t} });\n}\nlet setters = /* @__PURE__ */ new Set();\nconst logStack = /* @__PURE__ */ new Set();\nfunction createProxiedStore(storeInfo) {\n\tconst { actions, storeInstance, getters, gettersState } = storeInfo;\n\tconst { getCache, curGetKeys, depsToGetter } = gettersState;\n\tconst constr = storeInstance.constructor;\n\tconst shouldDebug2 = storeInfo.debug ?? DebugStores.has(constr);\n\tlet didSet = false;\n\tconst wrappedActions = {};\n\tfor (const key in actions) {\n\t\tif (key === \"subscribe\") continue;\n\t\tconst actionFn = actions[key];\n\t\tconst isGetFn = key.startsWith(\"get\");\n\t\twrappedActions[key] = function useStoreAction(...args) {\n\t\t\tlet res;\n\t\t\tif (isGetFn || gettersState.isGetting) return Reflect.apply(actionFn, proxiedStore, args);\n\t\t\tif (process.env.NODE_ENV === \"development\" && shouldDebug2) console.info(\"(debug) startAction\", key);\n\t\t\tres = Reflect.apply(actionFn, proxiedStore, args);\n\t\t\tif (res instanceof Promise) return res.then(finishAction);\n\t\t\tfinishAction();\n\t\t\treturn res;\n\t\t};\n\t\tif (process.env.NODE_ENV === \"development\") {\n\t\t\tlet hashCode = function(str) {\n\t\t\t\tlet hash = 0;\n\t\t\t\tfor (let i = 0; i < str.length; i++) hash = str.charCodeAt(i) + ((hash << 5) - hash);\n\t\t\t\treturn hash;\n\t\t\t}, strColor = function(str) {\n\t\t\t\treturn `hsl(${hashCode(str) % 360}, 90%, 40%)`;\n\t\t\t};\n\t\t\tif (!key.startsWith(\"get\") && !key.startsWith(\"_\") && key !== \"subscribe\") {\n\t\t\t\tconst ogAction = wrappedActions[key];\n\t\t\t\twrappedActions[key] = new Proxy(ogAction, { apply(target, thisArg, args) {\n\t\t\t\t\tconst isDebugging = shouldDebug2 || storeInfo.debug;\n\t\t\t\t\tif (!(process.env.LOG_LEVEL !== \"0\" && (isDebugging || configureOpts.logLevel !== \"error\"))) return Reflect.apply(target, thisArg, args);\n\t\t\t\t\tsetters = /* @__PURE__ */ new Set();\n\t\t\t\t\tconst curSetters = setters;\n\t\t\t\t\tconst isTopLevelLogger = logStack.size == 0;\n\t\t\t\t\tconst logs = /* @__PURE__ */ new Set();\n\t\t\t\t\tlogStack.add(logs);\n\t\t\t\t\tlet res;\n\t\t\t\t\tconst id = counter++;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tres = Reflect.apply(target, thisArg, args);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tconsole.error(\"Error\", err);\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tlogStack.add(\"end\");\n\t\t\t\t\t\tconst name = constr.name;\n\t\t\t\t\t\tconst color = strColor(name);\n\t\t\t\t\t\tconst simpleArgs = args.map(simpleStr);\n\t\t\t\t\t\tlogs.add([\n\t\t\t\t\t\t\t`%c \\u{1F311} ${id} ${name.padStart(isTopLevelLogger ? 8 : 4)}%c.${key}(${simpleArgs.join(\", \")})${isTopLevelLogger && logStack.size > 1 ? ` (+${logStack.size - 1})` : \"\"}`,\n\t\t\t\t\t\t\t`color: ${color};`,\n\t\t\t\t\t\t\t\"color: black;\"\n\t\t\t\t\t\t]);\n\t\t\t\t\t\tif (curSetters.size) curSetters.forEach(({ key: key2, value }) => {\n\t\t\t\t\t\t\tif (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") logs.add([` SET ${key2} ${value}`, value]);\n\t\t\t\t\t\t\telse logs.add([` SET ${key2}`, value]);\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (isTopLevelLogger) {\n\t\t\t\t\t\t\tlet error = null;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tfor (const item of logStack) {\n\t\t\t\t\t\t\t\t\tif (item === \"end\") {\n\t\t\t\t\t\t\t\t\t\tconsole.groupEnd();\n\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconst [head, ...rest] = item;\n\t\t\t\t\t\t\t\t\tif (head) {\n\t\t\t\t\t\t\t\t\t\tconsole.groupCollapsed(...head);\n\t\t\t\t\t\t\t\t\t\tconsole.groupCollapsed(\"...\");\n\t\t\t\t\t\t\t\t\t\tconsole.info(\"args\", args);\n\t\t\t\t\t\t\t\t\t\tconsole.info(\"response\", res);\n\t\t\t\t\t\t\t\t\t\tconsole.groupCollapsed(\"trace\");\n\t\t\t\t\t\t\t\t\t\tconsole.trace();\n\t\t\t\t\t\t\t\t\t\tconsole.groupEnd();\n\t\t\t\t\t\t\t\t\t\tconsole.groupEnd();\n\t\t\t\t\t\t\t\t\t\tfor (const [name2, ...log] of rest) {\n\t\t\t\t\t\t\t\t\t\t\tconsole.groupCollapsed(name2);\n\t\t\t\t\t\t\t\t\t\t\tconsole.info(...log);\n\t\t\t\t\t\t\t\t\t\t\tconsole.groupEnd();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else console.info(\"Weird log\", head, ...rest);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\terror = err;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor (const _ of logStack) console.groupEnd();\n\t\t\t\t\t\t\tif (error) console.error(`error loggin`, error);\n\t\t\t\t\t\t\tlogStack.clear();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn res;\n\t\t\t\t\t}\n\t\t\t\t} });\n\t\t\t}\n\t\t}\n\t}\n\tconst finishAction = (val) => {\n\t\tif (process.env.NODE_ENV === \"development\" && shouldDebug2) console.info(\"(debug) finishAction\", { didSet });\n\t\tif (didSet) {\n\t\t\tstoreInfo.triggerUpdate();\n\t\t\tdidSet = false;\n\t\t}\n\t\treturn val;\n\t};\n\tlet isTriggering = false;\n\tconst proxiedStore = new Proxy(storeInstance, {\n\t\tget(_, key) {\n\t\t\tif (key in wrappedActions) return wrappedActions[key];\n\t\t\tif (key in passThroughKeys) return Reflect.get(storeInstance, key);\n\t\t\tif (key === UNWRAP_PROXY) return storeInstance;\n\t\t\tif (key === UNWRAP_STORE_INFO) return storeInfo;\n\t\t\tif (storeAccessTrackers.size) storeAccessTrackers.forEach((cb) => cb(storeInfo));\n\t\t\tif (typeof key !== \"string\") return Reflect.get(storeInstance, key);\n\t\t\tif (!storeInfo.disableTracking) {\n\t\t\t\tif (gettersState.isGetting) gettersState.curGetKeys.add(key);\n\t\t\t}\n\t\t\tif (key in getters) {\n\t\t\t\tif (getCache.has(key)) return getCache.get(key);\n\t\t\t\tcurGetKeys.clear();\n\t\t\t\tconst isSubGetter = gettersState.isGetting;\n\t\t\t\tgettersState.isGetting = true;\n\t\t\t\tconst res = getters[key].call(proxiedStore);\n\t\t\t\tif (!isSubGetter) gettersState.isGetting = false;\n\t\t\t\tfor (const gk of curGetKeys) {\n\t\t\t\t\tif (!depsToGetter.has(gk)) depsToGetter.set(gk, /* @__PURE__ */ new Set());\n\t\t\t\t\tdepsToGetter.get(gk).add(key);\n\t\t\t\t}\n\t\t\t\tgetCache.set(key, res);\n\t\t\t\treturn res;\n\t\t\t}\n\t\t\treturn Reflect.get(storeInstance, key);\n\t\t},\n\t\tset(target, key, value, receiver) {\n\t\t\tconst cur = Reflect.get(target, key);\n\t\t\tconst res = Reflect.set(target, key, value, receiver);\n\t\t\tif (res && cur !== value) {\n\t\t\t\tif (typeof key === \"string\") {\n\t\t\t\t\tclearGetterCache(key);\n\t\t\t\t\tif (shouldDebug2) {\n\t\t\t\t\t\tsetters.add({\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (getShouldDebug(storeInfo)) console.info(\"(debug) SET\", res, key, value);\n\t\t\t\t\t}\n\t\t\t\t\tif (process.env.NODE_ENV === \"development\" && shouldDebug2) console.info(\"SET...\", {\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (!isTriggering) {\n\t\t\t\t\tisTriggering = true;\n\t\t\t\t\twaitForEventLoop(() => {\n\t\t\t\t\t\tstoreInfo.triggerUpdate();\n\t\t\t\t\t\tisTriggering = false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\t});\n\tfunction clearGetterCache(setKey) {\n\t\tconst parentGetters = depsToGetter.get(setKey);\n\t\tgetCache.delete(setKey);\n\t\tif (!parentGetters) return;\n\t\tfor (const gk of parentGetters) {\n\t\t\tgetCache.delete(gk);\n\t\t\tif (depsToGetter.has(gk)) clearGetterCache(gk);\n\t\t}\n\t}\n\treturn proxiedStore;\n}\nconst waitForEventLoop = process.env.NODE_ENV === \"test\" || false ? (cb) => cb() : queueMicrotask;\nlet counter = 0;\nconst passThroughKeys = {\n\tsubscribe: true,\n\t_version: true,\n\t_trackers: true,\n\t$$typeof: true,\n\t_listeners: true,\n\t_enableTracking: true\n};\nfunction getShouldDebug(storeInfo) {\n\tconst info = { storeInstance: storeInfo.store };\n\treturn [...storeInfo.trackers].some((tracker) => tracker.component && shouldDebug(tracker.component, info));\n}\n\nexport { allStores, createStore, createUseStore, createUseStoreSelector, getOrCreateStore, getStore, getStoreInfo, onCreateStore, setIsInReaction, trackStoresAccess, useGlobalStore, useGlobalStoreSelector, useStore, useStoreDebug, useStoreSelector };"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useStore.js","names":[],"sources":["esm/useStore.js"],"sourcesContent":["import React from \"react\";\nimport { isEqualSubsetShallow } from \"./comparators\";\nimport { configureOpts } from \"./configureUseStore\";\nimport { UNWRAP_PROXY, defaultOptions } from \"./constants\";\nimport { UNWRAP_STORE_INFO, cache, getStoreDescriptors, getStoreUid, simpleStr } from \"./helpers\";\nimport { DebugStores, shouldDebug, useCurrentComponent } from \"./useStoreDebug\";\n\nconst idFn = (_) => _;\nfunction useStore(StoreKlass, props, options = defaultOptions) {\n\treturn useStoreFromInfo(getOrCreateStoreInfo(StoreKlass, props, options), options.selector, options);\n}\nfunction useStoreDebug(StoreKlass, props) {\n\treturn useStore(StoreKlass, props, { debug: true });\n}\nfunction createStore(StoreKlass, props, options) {\n\treturn getOrCreateStoreInfo(StoreKlass, props, options)?.store;\n}\nfunction useGlobalStore(instance, debug) {\n\tconst store = instance[UNWRAP_PROXY];\n\tconst uid = getStoreUid(store.constructor, store.props);\n\tconst info = cache.get(uid);\n\tif (!info) throw new Error(`This store not created using createStore()`);\n\treturn useStoreFromInfo(info, void 0, { debug });\n}\nfunction useGlobalStoreSelector(instance, selector, debug) {\n\tconst store = instance[UNWRAP_PROXY];\n\tconst uid = getStoreUid(store.constructor, store.props);\n\tconst info = cache.get(uid);\n\tif (!info) throw new Error(`This store not created using createStore()`);\n\treturn useStoreFromInfo(info, selector, { debug });\n}\nfunction createUseStore(StoreKlass) {\n\treturn (props, options) => useStore(StoreKlass, props, options);\n}\nfunction createUseStoreSelector(StoreKlass, selector) {\n\treturn (props) => {\n\t\treturn useStore(StoreKlass, props, { selector });\n\t};\n}\nfunction useStoreSelector(StoreKlass, selector, props) {\n\treturn useStore(StoreKlass, props, { selector });\n}\nconst storeAccessTrackers = /* @__PURE__ */ new Set();\nfunction trackStoresAccess(cb) {\n\tstoreAccessTrackers.add(cb);\n\treturn () => {\n\t\tstoreAccessTrackers.delete(cb);\n\t};\n}\nfunction getStore(StoreKlass, props) {\n\treturn getStoreInfo(StoreKlass, props)?.store;\n}\nfunction getOrCreateStore(StoreKlass, props) {\n\treturn getOrCreateStoreInfo(StoreKlass, props, { refuseCreation: false })?.store;\n}\nfunction getStoreInfo(StoreKlass, props) {\n\treturn getOrCreateStoreInfo(StoreKlass, props, { refuseCreation: true });\n}\nconst onCreateListeners = /* @__PURE__ */ new Set();\nfunction onCreateStore(cb) {\n\tonCreateListeners.add(cb);\n\treturn () => {\n\t\tonCreateListeners.delete(cb);\n\t};\n}\nfunction getOrCreateStoreInfo(StoreKlass, props, options, propsKeyCalculated) {\n\tif (!StoreKlass) return null;\n\tconst uid = getStoreUid(StoreKlass, propsKeyCalculated ?? props);\n\tif (!options?.avoidCache && cache.has(uid)) return cache.get(uid);\n\tif (options?.refuseCreation) throw new Error(`No store exists (${StoreKlass.name}) with props: ${props}`);\n\tconst storeInstance = new StoreKlass(props);\n\tstoreInstance.props = props;\n\tconst getters = {};\n\tconst actions = {};\n\tconst stateKeys = /* @__PURE__ */ new Set();\n\tconst descriptors = getStoreDescriptors(storeInstance);\n\tfor (const key in descriptors) {\n\t\tconst descriptor = descriptors[key];\n\t\tif (typeof descriptor.value === \"function\") actions[key] = descriptor.value;\n\t\telse if (typeof descriptor.get === \"function\") getters[key] = descriptor.get;\n\t\telse if (key !== \"props\" && key[0] !== \"_\") stateKeys.add(key);\n\t}\n\tconst keyComparators = storeInstance[\"_comparators\"];\n\tconst listeners = /* @__PURE__ */ new Set();\n\tconst storeInfo = {\n\t\tuid,\n\t\tkeyComparators,\n\t\tstoreInstance,\n\t\tgetters,\n\t\tstateKeys,\n\t\tprops,\n\t\tactions,\n\t\tdebug: options?.debug,\n\t\tdisableTracking: false,\n\t\tgettersState: {\n\t\t\tgetCache: /* @__PURE__ */ new Map(),\n\t\t\tdepsToGetter: /* @__PURE__ */ new Map(),\n\t\t\tcurGetKeys: /* @__PURE__ */ new Set(),\n\t\t\tisGetting: false\n\t\t},\n\t\tlisteners,\n\t\ttrackers: /* @__PURE__ */ new Set(),\n\t\tversion: 0,\n\t\tsubscribe: (onChanged) => {\n\t\t\tlisteners.add(onChanged);\n\t\t\treturn () => {\n\t\t\t\tlisteners.delete(onChanged);\n\t\t\t};\n\t\t},\n\t\ttriggerUpdate: () => {\n\t\t\tstoreInfo.version = (storeInfo.version + 1) % Number.MAX_SAFE_INTEGER;\n\t\t\tfor (const cb of listeners) cb();\n\t\t}\n\t};\n\tconst store = createProxiedStore(storeInfo);\n\tif (process.env.NODE_ENV === \"development\") allStores[StoreKlass.name + uid] = store;\n\tstore.mount?.();\n\tstoreInfo.store = store;\n\tconst result = storeInfo;\n\tcache.set(uid, result);\n\tonCreateListeners.forEach((cb) => cb(result));\n\treturn result;\n}\nconst allStores = {};\nif (process.env.NODE_ENV === \"development\") globalThis[\"Store\"] ||= allStores;\nconst emptyObj = {};\nconst selectKeys = (obj, keys) => {\n\tif (!keys.length) return emptyObj;\n\tconst res = {};\n\tfor (const key of keys) res[key] = obj[key];\n\treturn res;\n};\nlet isInReaction = false;\nconst setIsInReaction = (val) => {\n\tisInReaction = val;\n};\nfunction useStoreFromInfo(info, userSelector, options) {\n\tconst store = info?.store;\n\tconst internal = React.useRef(void 0);\n\tconst component = useCurrentComponent();\n\tif (!internal.current) internal.current = {\n\t\tcomponent,\n\t\ttracked: /* @__PURE__ */ new Set(),\n\t\tlast: null,\n\t\tlastKeys: null\n\t};\n\tconst curInternal = internal.current;\n\tconst shouldPrintDebug = options?.debug;\n\tconst getSnapshot = React.useCallback(() => {\n\t\tif (!info || !store) return;\n\t\tconst curInternal2 = internal.current;\n\t\tconst isTracking = curInternal2.tracked.size;\n\t\tconst keys = [...!isTracking ? info.stateKeys : curInternal2.tracked];\n\t\tconst nextKeys = `${info.version}${keys.join(\"\")}${userSelector || \"\"}`;\n\t\tconst lastKeys = curInternal2.lastKeys;\n\t\tif (nextKeys === curInternal2.lastKeys) return curInternal2.last;\n\t\tcurInternal2.lastKeys = nextKeys;\n\t\tlet snap;\n\t\tinfo.disableTracking = true;\n\t\tconst last = curInternal2.last;\n\t\tif (userSelector) snap = userSelector(store);\n\t\telse snap = selectKeys(store, keys);\n\t\tinfo.disableTracking = false;\n\t\tconst isUnchanged = !userSelector && !isTracking && last || typeof last !== \"undefined\" && isEqualSubsetShallow(last, snap, { keyComparators: info.keyComparators });\n\t\tif (shouldPrintDebug) console.info(\"🌑 getSnapshot\", {\n\t\t\tstoreState: selectKeys(store, Object.keys(store)),\n\t\t\tuserSelector,\n\t\t\tinfo,\n\t\t\tisUnchanged,\n\t\t\tcomponent,\n\t\t\tkeys,\n\t\t\tlast,\n\t\t\tsnap,\n\t\t\tcurInternal: curInternal2,\n\t\t\tnextKeys,\n\t\t\tlastKeys\n\t\t});\n\t\tif (isUnchanged) return last;\n\t\tcurInternal2.last = snap;\n\t\treturn snap;\n\t}, [store]);\n\tconst state = React.useSyncExternalStore(info?.subscribe || idFn, getSnapshot, getSnapshot);\n\tif (!info || !store || !state) return state;\n\tif (userSelector) return state;\n\treturn new Proxy(store, { get(target, key) {\n\t\tconst curVal = Reflect.get(target, key);\n\t\tif (isInReaction) return curVal;\n\t\tconst keyString = key;\n\t\tif (info.stateKeys.has(keyString) || keyString in info.getters) {\n\t\t\tif (shouldPrintDebug) console.info(\"👀 tracking\", keyString);\n\t\t\tcurInternal.tracked.add(keyString);\n\t\t}\n\t\tif (Reflect.has(state, key)) return Reflect.get(state, key);\n\t\treturn curVal;\n\t} });\n}\nlet setters = /* @__PURE__ */ new Set();\nconst logStack = /* @__PURE__ */ new Set();\nfunction createProxiedStore(storeInfo) {\n\tconst { actions, storeInstance, getters, gettersState } = storeInfo;\n\tconst { getCache, curGetKeys, depsToGetter } = gettersState;\n\tconst constr = storeInstance.constructor;\n\tconst shouldDebug2 = storeInfo.debug ?? DebugStores.has(constr);\n\tlet didSet = false;\n\tconst wrappedActions = {};\n\tfor (const key in actions) {\n\t\tif (key === \"subscribe\") continue;\n\t\tconst actionFn = actions[key];\n\t\tconst isGetFn = key.startsWith(\"get\");\n\t\twrappedActions[key] = function useStoreAction(...args) {\n\t\t\tlet res;\n\t\t\tif (isGetFn || gettersState.isGetting) return Reflect.apply(actionFn, proxiedStore, args);\n\t\t\tif (process.env.NODE_ENV === \"development\" && shouldDebug2) console.info(\"(debug) startAction\", key);\n\t\t\tres = Reflect.apply(actionFn, proxiedStore, args);\n\t\t\tif (res instanceof Promise) return res.then(finishAction);\n\t\t\tfinishAction();\n\t\t\treturn res;\n\t\t};\n\t\tif (process.env.NODE_ENV === \"development\") {\n\t\t\tlet hashCode = function(str) {\n\t\t\t\tlet hash = 0;\n\t\t\t\tfor (let i = 0; i < str.length; i++) hash = str.charCodeAt(i) + ((hash << 5) - hash);\n\t\t\t\treturn hash;\n\t\t\t}, strColor = function(str) {\n\t\t\t\treturn `hsl(${hashCode(str) % 360}, 90%, 40%)`;\n\t\t\t};\n\t\t\tif (!key.startsWith(\"get\") && !key.startsWith(\"_\") && key !== \"subscribe\") {\n\t\t\t\tconst ogAction = wrappedActions[key];\n\t\t\t\twrappedActions[key] = new Proxy(ogAction, { apply(target, thisArg, args) {\n\t\t\t\t\tconst isDebugging = shouldDebug2 || storeInfo.debug;\n\t\t\t\t\tif (!(process.env.LOG_LEVEL !== \"0\" && (isDebugging || configureOpts.logLevel !== \"error\"))) return Reflect.apply(target, thisArg, args);\n\t\t\t\t\tsetters = /* @__PURE__ */ new Set();\n\t\t\t\t\tconst curSetters = setters;\n\t\t\t\t\tconst isTopLevelLogger = logStack.size == 0;\n\t\t\t\t\tconst logs = /* @__PURE__ */ new Set();\n\t\t\t\t\tlogStack.add(logs);\n\t\t\t\t\tlet res;\n\t\t\t\t\tconst id = counter++;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tres = Reflect.apply(target, thisArg, args);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tconsole.error(\"Error\", err);\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tlogStack.add(\"end\");\n\t\t\t\t\t\tconst name = constr.name;\n\t\t\t\t\t\tconst color = strColor(name);\n\t\t\t\t\t\tconst simpleArgs = args.map(simpleStr);\n\t\t\t\t\t\tlogs.add([\n\t\t\t\t\t\t\t`%c \\u{1F311} ${id} ${name.padStart(isTopLevelLogger ? 8 : 4)}%c.${key}(${simpleArgs.join(\", \")})${isTopLevelLogger && logStack.size > 1 ? ` (+${logStack.size - 1})` : \"\"}`,\n\t\t\t\t\t\t\t`color: ${color};`,\n\t\t\t\t\t\t\t\"color: black;\"\n\t\t\t\t\t\t]);\n\t\t\t\t\t\tif (curSetters.size) curSetters.forEach(({ key: key2, value }) => {\n\t\t\t\t\t\t\tif (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") logs.add([` SET ${key2} ${value}`, value]);\n\t\t\t\t\t\t\telse logs.add([` SET ${key2}`, value]);\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (isTopLevelLogger) {\n\t\t\t\t\t\t\tlet error = null;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tfor (const item of logStack) {\n\t\t\t\t\t\t\t\t\tif (item === \"end\") {\n\t\t\t\t\t\t\t\t\t\tconsole.groupEnd();\n\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconst [head, ...rest] = item;\n\t\t\t\t\t\t\t\t\tif (head) {\n\t\t\t\t\t\t\t\t\t\tconsole.groupCollapsed(...head);\n\t\t\t\t\t\t\t\t\t\tconsole.groupCollapsed(\"...\");\n\t\t\t\t\t\t\t\t\t\tconsole.info(\"args\", args);\n\t\t\t\t\t\t\t\t\t\tconsole.info(\"response\", res);\n\t\t\t\t\t\t\t\t\t\tconsole.groupCollapsed(\"trace\");\n\t\t\t\t\t\t\t\t\t\tconsole.trace();\n\t\t\t\t\t\t\t\t\t\tconsole.groupEnd();\n\t\t\t\t\t\t\t\t\t\tconsole.groupEnd();\n\t\t\t\t\t\t\t\t\t\tfor (const [name2, ...log] of rest) {\n\t\t\t\t\t\t\t\t\t\t\tconsole.groupCollapsed(name2);\n\t\t\t\t\t\t\t\t\t\t\tconsole.info(...log);\n\t\t\t\t\t\t\t\t\t\t\tconsole.groupEnd();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else console.info(\"Weird log\", head, ...rest);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\terror = err;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tfor (const _ of logStack) console.groupEnd();\n\t\t\t\t\t\t\tif (error) console.error(`error loggin`, error);\n\t\t\t\t\t\t\tlogStack.clear();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn res;\n\t\t\t\t\t}\n\t\t\t\t} });\n\t\t\t}\n\t\t}\n\t}\n\tconst finishAction = (val) => {\n\t\tif (process.env.NODE_ENV === \"development\" && shouldDebug2) console.info(\"(debug) finishAction\", { didSet });\n\t\tif (didSet) {\n\t\t\tstoreInfo.triggerUpdate();\n\t\t\tdidSet = false;\n\t\t}\n\t\treturn val;\n\t};\n\tlet isTriggering = false;\n\tconst proxiedStore = new Proxy(storeInstance, {\n\t\tget(_, key) {\n\t\t\tif (key in wrappedActions) return wrappedActions[key];\n\t\t\tif (key in passThroughKeys) return Reflect.get(storeInstance, key);\n\t\t\tif (key === UNWRAP_PROXY) return storeInstance;\n\t\t\tif (key === UNWRAP_STORE_INFO) return storeInfo;\n\t\t\tif (storeAccessTrackers.size) storeAccessTrackers.forEach((cb) => cb(storeInfo));\n\t\t\tif (typeof key !== \"string\") return Reflect.get(storeInstance, key);\n\t\t\tif (!storeInfo.disableTracking) {\n\t\t\t\tif (gettersState.isGetting) gettersState.curGetKeys.add(key);\n\t\t\t}\n\t\t\tif (key in getters) {\n\t\t\t\tif (getCache.has(key)) return getCache.get(key);\n\t\t\t\tcurGetKeys.clear();\n\t\t\t\tconst isSubGetter = gettersState.isGetting;\n\t\t\t\tgettersState.isGetting = true;\n\t\t\t\tconst res = getters[key].call(proxiedStore);\n\t\t\t\tif (!isSubGetter) gettersState.isGetting = false;\n\t\t\t\tfor (const gk of curGetKeys) {\n\t\t\t\t\tif (!depsToGetter.has(gk)) depsToGetter.set(gk, /* @__PURE__ */ new Set());\n\t\t\t\t\tdepsToGetter.get(gk).add(key);\n\t\t\t\t}\n\t\t\t\tgetCache.set(key, res);\n\t\t\t\treturn res;\n\t\t\t}\n\t\t\treturn Reflect.get(storeInstance, key);\n\t\t},\n\t\tset(target, key, value, receiver) {\n\t\t\tconst cur = Reflect.get(target, key);\n\t\t\tconst res = Reflect.set(target, key, value, receiver);\n\t\t\tif (res && cur !== value) {\n\t\t\t\tif (typeof key === \"string\") {\n\t\t\t\t\tclearGetterCache(key);\n\t\t\t\t\tif (shouldDebug2) {\n\t\t\t\t\t\tsetters.add({\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (getShouldDebug(storeInfo)) console.info(\"(debug) SET\", res, key, value);\n\t\t\t\t\t}\n\t\t\t\t\tif (process.env.NODE_ENV === \"development\" && shouldDebug2) console.info(\"SET...\", {\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (!isTriggering) {\n\t\t\t\t\tisTriggering = true;\n\t\t\t\t\twaitForEventLoop(() => {\n\t\t\t\t\t\tstoreInfo.triggerUpdate();\n\t\t\t\t\t\tisTriggering = false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn res;\n\t\t}\n\t});\n\tfunction clearGetterCache(setKey) {\n\t\tconst parentGetters = depsToGetter.get(setKey);\n\t\tgetCache.delete(setKey);\n\t\tif (!parentGetters) return;\n\t\tfor (const gk of parentGetters) {\n\t\t\tgetCache.delete(gk);\n\t\t\tif (depsToGetter.has(gk)) clearGetterCache(gk);\n\t\t}\n\t}\n\treturn proxiedStore;\n}\nconst waitForEventLoop = process.env.NODE_ENV === \"test\" || false ? (cb) => cb() : queueMicrotask;\nlet counter = 0;\nconst passThroughKeys = {\n\tsubscribe: true,\n\t_version: true,\n\t_trackers: true,\n\t$$typeof: true,\n\t_listeners: true,\n\t_enableTracking: true\n};\nfunction getShouldDebug(storeInfo) {\n\tconst info = { storeInstance: storeInfo.store };\n\treturn [...storeInfo.trackers].some((tracker) => tracker.component && shouldDebug(tracker.component, info));\n}\n\nexport { allStores, createStore, createUseStore, createUseStoreSelector, getOrCreateStore, getStore, getStoreInfo, onCreateStore, setIsInReaction, trackStoresAccess, useGlobalStore, useGlobalStoreSelector, useStore, useStoreDebug, useStoreSelector };"],"mappings":";;;;;;;;AAOA,MAAM,QAAQ,MAAM;AACpB,SAAS,SAAS,YAAY,OAAO,UAAU,gBAAgB;CAC9D,OAAO,iBAAiB,qBAAqB,YAAY,OAAO,OAAO,GAAG,QAAQ,UAAU,OAAO;AACpG;AACA,SAAS,cAAc,YAAY,OAAO;CACzC,OAAO,SAAS,YAAY,OAAO,EAAE,OAAO,KAAK,CAAC;AACnD;AACA,SAAS,YAAY,YAAY,OAAO,SAAS;CAChD,OAAO,qBAAqB,YAAY,OAAO,OAAO,GAAG;AAC1D;AACA,SAAS,eAAe,UAAU,OAAO;CACxC,MAAM,QAAQ,SAAS;CACvB,MAAM,MAAM,YAAY,MAAM,aAAa,MAAM,KAAK;CACtD,MAAM,OAAO,MAAM,IAAI,GAAG;CAC1B,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,4CAA4C;CACvE,OAAO,iBAAiB,MAAM,KAAK,GAAG,EAAE,MAAM,CAAC;AAChD;AACA,SAAS,uBAAuB,UAAU,UAAU,OAAO;CAC1D,MAAM,QAAQ,SAAS;CACvB,MAAM,MAAM,YAAY,MAAM,aAAa,MAAM,KAAK;CACtD,MAAM,OAAO,MAAM,IAAI,GAAG;CAC1B,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,4CAA4C;CACvE,OAAO,iBAAiB,MAAM,UAAU,EAAE,MAAM,CAAC;AAClD;AACA,SAAS,eAAe,YAAY;CACnC,QAAQ,OAAO,YAAY,SAAS,YAAY,OAAO,OAAO;AAC/D;AACA,SAAS,uBAAuB,YAAY,UAAU;CACrD,QAAQ,UAAU;EACjB,OAAO,SAAS,YAAY,OAAO,EAAE,SAAS,CAAC;CAChD;AACD;AACA,SAAS,iBAAiB,YAAY,UAAU,OAAO;CACtD,OAAO,SAAS,YAAY,OAAO,EAAE,SAAS,CAAC;AAChD;AACA,MAAM,sCAAsC,IAAI,IAAI;AACpD,SAAS,kBAAkB,IAAI;CAC9B,oBAAoB,IAAI,EAAE;CAC1B,aAAa;EACZ,oBAAoB,OAAO,EAAE;CAC9B;AACD;AACA,SAAS,SAAS,YAAY,OAAO;CACpC,OAAO,aAAa,YAAY,KAAK,GAAG;AACzC;AACA,SAAS,iBAAiB,YAAY,OAAO;CAC5C,OAAO,qBAAqB,YAAY,OAAO,EAAE,gBAAgB,MAAM,CAAC,GAAG;AAC5E;AACA,SAAS,aAAa,YAAY,OAAO;CACxC,OAAO,qBAAqB,YAAY,OAAO,EAAE,gBAAgB,KAAK,CAAC;AACxE;AACA,MAAM,oCAAoC,IAAI,IAAI;AAClD,SAAS,cAAc,IAAI;CAC1B,kBAAkB,IAAI,EAAE;CACxB,aAAa;EACZ,kBAAkB,OAAO,EAAE;CAC5B;AACD;AACA,SAAS,qBAAqB,YAAY,OAAO,SAAS,oBAAoB;CAC7E,IAAI,CAAC,YAAY,OAAO;CACxB,MAAM,MAAM,YAAY,YAAY,sBAAsB,KAAK;CAC/D,IAAI,CAAC,SAAS,cAAc,MAAM,IAAI,GAAG,GAAG,OAAO,MAAM,IAAI,GAAG;CAChE,IAAI,SAAS,gBAAgB,MAAM,IAAI,MAAM,oBAAoB,WAAW,KAAK,gBAAgB,OAAO;CACxG,MAAM,gBAAgB,IAAI,WAAW,KAAK;CAC1C,cAAc,QAAQ;CACtB,MAAM,UAAU,CAAC;CACjB,MAAM,UAAU,CAAC;CACjB,MAAM,4BAA4B,IAAI,IAAI;CAC1C,MAAM,cAAc,oBAAoB,aAAa;CACrD,KAAK,MAAM,OAAO,aAAa;EAC9B,MAAM,aAAa,YAAY;EAC/B,IAAI,OAAO,WAAW,UAAU,YAAY,QAAQ,OAAO,WAAW;OACjE,IAAI,OAAO,WAAW,QAAQ,YAAY,QAAQ,OAAO,WAAW;OACpE,IAAI,QAAQ,WAAW,IAAI,OAAO,KAAK,UAAU,IAAI,GAAG;CAC9D;CACA,MAAM,iBAAiB,cAAc;CACrC,MAAM,4BAA4B,IAAI,IAAI;CAC1C,MAAM,YAAY;EACjB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAO,SAAS;EAChB,iBAAiB;EACjB,cAAc;GACb,0BAA0B,IAAI,IAAI;GAClC,8BAA8B,IAAI,IAAI;GACtC,4BAA4B,IAAI,IAAI;GACpC,WAAW;EACZ;EACA;EACA,0BAA0B,IAAI,IAAI;EAClC,SAAS;EACT,YAAY,cAAc;GACzB,UAAU,IAAI,SAAS;GACvB,aAAa;IACZ,UAAU,OAAO,SAAS;GAC3B;EACD;EACA,qBAAqB;GACpB,UAAU,WAAW,UAAU,UAAU,KAAK,OAAO;GACrD,KAAK,MAAM,MAAM,WAAW,GAAG;EAChC;CACD;CACA,MAAM,QAAQ,mBAAmB,SAAS;CAC1C,IAAI,QAAQ,IAAI,aAAa,eAAe,UAAU,WAAW,OAAO,OAAO;CAC/E,MAAM,QAAQ;CACd,UAAU,QAAQ;CAClB,MAAM,SAAS;CACf,MAAM,IAAI,KAAK,MAAM;CACrB,kBAAkB,SAAS,OAAO,GAAG,MAAM,CAAC;CAC5C,OAAO;AACR;AACA,MAAM,YAAY,CAAC;AACnB,IAAI,QAAQ,IAAI,aAAa,eAAe,WAAW,aAAa;AACpE,MAAM,WAAW,CAAC;AAClB,MAAM,cAAc,KAAK,SAAS;CACjC,IAAI,CAAC,KAAK,QAAQ,OAAO;CACzB,MAAM,MAAM,CAAC;CACb,KAAK,MAAM,OAAO,MAAM,IAAI,OAAO,IAAI;CACvC,OAAO;AACR;AACA,IAAI,eAAe;AACnB,MAAM,mBAAmB,QAAQ;CAChC,eAAe;AAChB;AACA,SAAS,iBAAiB,MAAM,cAAc,SAAS;CACtD,MAAM,QAAQ,MAAM;CACpB,MAAM,WAAW,MAAM,OAAO,KAAK,CAAC;CACpC,MAAM,YAAY,oBAAoB;CACtC,IAAI,CAAC,SAAS,SAAS,SAAS,UAAU;EACzC;EACA,yBAAyB,IAAI,IAAI;EACjC,MAAM;EACN,UAAU;CACX;CACA,MAAM,cAAc,SAAS;CAC7B,MAAM,mBAAmB,SAAS;CAClC,MAAM,cAAc,MAAM,kBAAkB;EAC3C,IAAI,CAAC,QAAQ,CAAC,OAAO;EACrB,MAAM,eAAe,SAAS;EAC9B,MAAM,aAAa,aAAa,QAAQ;EACxC,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,YAAY,aAAa,OAAO;EACpE,MAAM,WAAW,GAAG,KAAK,UAAU,KAAK,KAAK,EAAE,IAAI,gBAAgB;EACnE,MAAM,WAAW,aAAa;EAC9B,IAAI,aAAa,aAAa,UAAU,OAAO,aAAa;EAC5D,aAAa,WAAW;EACxB,IAAI;EACJ,KAAK,kBAAkB;EACvB,MAAM,OAAO,aAAa;EAC1B,IAAI,cAAc,OAAO,aAAa,KAAK;OACtC,OAAO,WAAW,OAAO,IAAI;EAClC,KAAK,kBAAkB;EACvB,MAAM,cAAc,CAAC,gBAAgB,CAAC,cAAc,QAAQ,OAAO,SAAS,eAAe,qBAAqB,MAAM,MAAM,EAAE,gBAAgB,KAAK,eAAe,CAAC;EACnK,IAAI,kBAAkB,QAAQ,KAAK,kBAAkB;GACpD,YAAY,WAAW,OAAO,OAAO,KAAK,KAAK,CAAC;GAChD;GACA;GACA;GACA;GACA;GACA;GACA;GACA,aAAa;GACb;GACA;EACD,CAAC;EACD,IAAI,aAAa,OAAO;EACxB,aAAa,OAAO;EACpB,OAAO;CACR,GAAG,CAAC,KAAK,CAAC;CACV,MAAM,QAAQ,MAAM,qBAAqB,MAAM,aAAa,MAAM,aAAa,WAAW;CAC1F,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,OAAO;CACtC,IAAI,cAAc,OAAO;CACzB,OAAO,IAAI,MAAM,OAAO,EAAE,IAAI,QAAQ,KAAK;EAC1C,MAAM,SAAS,QAAQ,IAAI,QAAQ,GAAG;EACtC,IAAI,cAAc,OAAO;EACzB,MAAM,YAAY;EAClB,IAAI,KAAK,UAAU,IAAI,SAAS,KAAK,aAAa,KAAK,SAAS;GAC/D,IAAI,kBAAkB,QAAQ,KAAK,eAAe,SAAS;GAC3D,YAAY,QAAQ,IAAI,SAAS;EAClC;EACA,IAAI,QAAQ,IAAI,OAAO,GAAG,GAAG,OAAO,QAAQ,IAAI,OAAO,GAAG;EAC1D,OAAO;CACR,EAAE,CAAC;AACJ;AACA,IAAI,0BAA0B,IAAI,IAAI;AACtC,MAAM,2BAA2B,IAAI,IAAI;AACzC,SAAS,mBAAmB,WAAW;CACtC,MAAM,EAAE,SAAS,eAAe,SAAS,iBAAiB;CAC1D,MAAM,EAAE,UAAU,YAAY,iBAAiB;CAC/C,MAAM,SAAS,cAAc;CAC7B,MAAM,eAAe,UAAU,SAAS,YAAY,IAAI,MAAM;CAC9D,IAAI,SAAS;CACb,MAAM,iBAAiB,CAAC;CACxB,KAAK,MAAM,OAAO,SAAS;EAC1B,IAAI,QAAQ,aAAa;EACzB,MAAM,WAAW,QAAQ;EACzB,MAAM,UAAU,IAAI,WAAW,KAAK;EACpC,eAAe,OAAO,SAAS,eAAe,GAAG,MAAM;GACtD,IAAI;GACJ,IAAI,WAAW,aAAa,WAAW,OAAO,QAAQ,MAAM,UAAU,cAAc,IAAI;GACxF,IAAI,QAAQ,IAAI,aAAa,iBAAiB,cAAc,QAAQ,KAAK,uBAAuB,GAAG;GACnG,MAAM,QAAQ,MAAM,UAAU,cAAc,IAAI;GAChD,IAAI,eAAe,SAAS,OAAO,IAAI,KAAK,YAAY;GACxD,aAAa;GACb,OAAO;EACR;EACA,IAAI,QAAQ,IAAI,aAAa,eAAe;GAC3C,IAAI,WAAW,SAAS,KAAK;IAC5B,IAAI,OAAO;IACX,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,OAAO,IAAI,WAAW,CAAC,MAAM,QAAQ,KAAK;IAC/E,OAAO;GACR,GAAG,WAAW,SAAS,KAAK;IAC3B,OAAO,OAAO,SAAS,GAAG,IAAI,IAAI;GACnC;GACA,IAAI,CAAC,IAAI,WAAW,KAAK,KAAK,CAAC,IAAI,WAAW,GAAG,KAAK,QAAQ,aAAa;IAC1E,MAAM,WAAW,eAAe;IAChC,eAAe,OAAO,IAAI,MAAM,UAAU,EAAE,MAAM,QAAQ,SAAS,MAAM;KACxE,MAAM,cAAc,gBAAgB,UAAU;KAC9C,IAAI,EAAE,QAAQ,IAAI,cAAc,QAAQ,eAAe,cAAc,aAAa,WAAW,OAAO,QAAQ,MAAM,QAAQ,SAAS,IAAI;KACvI,0BAA0B,IAAI,IAAI;KAClC,MAAM,aAAa;KACnB,MAAM,mBAAmB,SAAS,QAAQ;KAC1C,MAAM,uBAAuB,IAAI,IAAI;KACrC,SAAS,IAAI,IAAI;KACjB,IAAI;KACJ,MAAM,KAAK;KACX,IAAI;MACH,MAAM,QAAQ,MAAM,QAAQ,SAAS,IAAI;KAC1C,SAAS,KAAK;MACb,QAAQ,MAAM,SAAS,GAAG;MAC1B,MAAM;KACP,UAAU;MACT,SAAS,IAAI,KAAK;MAClB,MAAM,OAAO,OAAO;MACpB,MAAM,QAAQ,SAAS,IAAI;MAC3B,MAAM,aAAa,KAAK,IAAI,SAAS;MACrC,KAAK,IAAI;OACR,gBAAgB,GAAG,GAAG,KAAK,SAAS,mBAAmB,IAAI,CAAC,EAAE,KAAK,IAAI,GAAG,WAAW,KAAK,IAAI,EAAE,GAAG,oBAAoB,SAAS,OAAO,IAAI,MAAM,SAAS,OAAO,EAAE,KAAK;OACxK,UAAU,MAAM;OAChB;MACD,CAAC;MACD,IAAI,WAAW,MAAM,WAAW,SAAS,EAAE,KAAK,MAAM,YAAY;OACjE,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,YAAY,OAAO,UAAU,WAAW,KAAK,IAAI,CAAC,QAAQ,KAAK,GAAG,SAAS,KAAK,CAAC;YAC9H,KAAK,IAAI,CAAC,QAAQ,QAAQ,KAAK,CAAC;MACtC,CAAC;MACD,IAAI,kBAAkB;OACrB,IAAI,QAAQ;OACZ,IAAI;QACH,KAAK,MAAM,QAAQ,UAAU;SAC5B,IAAI,SAAS,OAAO;UACnB,QAAQ,SAAS;UACjB;SACD;SACA,MAAM,CAAC,MAAM,GAAG,QAAQ;SACxB,IAAI,MAAM;UACT,QAAQ,eAAe,GAAG,IAAI;UAC9B,QAAQ,eAAe,KAAK;UAC5B,QAAQ,KAAK,QAAQ,IAAI;UACzB,QAAQ,KAAK,YAAY,GAAG;UAC5B,QAAQ,eAAe,OAAO;UAC9B,QAAQ,MAAM;UACd,QAAQ,SAAS;UACjB,QAAQ,SAAS;UACjB,KAAK,MAAM,CAAC,OAAO,GAAG,QAAQ,MAAM;WACnC,QAAQ,eAAe,KAAK;WAC5B,QAAQ,KAAK,GAAG,GAAG;WACnB,QAAQ,SAAS;UAClB;SACD,OAAO,QAAQ,KAAK,aAAa,MAAM,GAAG,IAAI;QAC/C;OACD,SAAS,KAAK;QACb,QAAQ;OACT;OACA,KAAK,MAAM,KAAK,UAAU,QAAQ,SAAS;OAC3C,IAAI,OAAO,QAAQ,MAAM,gBAAgB,KAAK;OAC9C,SAAS,MAAM;MAChB;MACA,OAAO;KACR;IACD,EAAE,CAAC;GACJ;EACD;CACD;CACA,MAAM,gBAAgB,QAAQ;EAC7B,IAAI,QAAQ,IAAI,aAAa,iBAAiB,cAAc,QAAQ,KAAK,wBAAwB,EAAE,OAAO,CAAC;EAC3G,IAAI,QAAQ;GACX,UAAU,cAAc;GACxB,SAAS;EACV;EACA,OAAO;CACR;CACA,IAAI,eAAe;CACnB,MAAM,eAAe,IAAI,MAAM,eAAe;EAC7C,IAAI,GAAG,KAAK;GACX,IAAI,OAAO,gBAAgB,OAAO,eAAe;GACjD,IAAI,OAAO,iBAAiB,OAAO,QAAQ,IAAI,eAAe,GAAG;GACjE,IAAI,QAAQ,cAAc,OAAO;GACjC,IAAI,QAAQ,mBAAmB,OAAO;GACtC,IAAI,oBAAoB,MAAM,oBAAoB,SAAS,OAAO,GAAG,SAAS,CAAC;GAC/E,IAAI,OAAO,QAAQ,UAAU,OAAO,QAAQ,IAAI,eAAe,GAAG;GAClE,IAAI,CAAC,UAAU,iBAAiB;IAC/B,IAAI,aAAa,WAAW,aAAa,WAAW,IAAI,GAAG;GAC5D;GACA,IAAI,OAAO,SAAS;IACnB,IAAI,SAAS,IAAI,GAAG,GAAG,OAAO,SAAS,IAAI,GAAG;IAC9C,WAAW,MAAM;IACjB,MAAM,cAAc,aAAa;IACjC,aAAa,YAAY;IACzB,MAAM,MAAM,QAAQ,KAAK,KAAK,YAAY;IAC1C,IAAI,CAAC,aAAa,aAAa,YAAY;IAC3C,KAAK,MAAM,MAAM,YAAY;KAC5B,IAAI,CAAC,aAAa,IAAI,EAAE,GAAG,aAAa,IAAI,oBAAoB,IAAI,IAAI,CAAC;KACzE,aAAa,IAAI,EAAE,EAAE,IAAI,GAAG;IAC7B;IACA,SAAS,IAAI,KAAK,GAAG;IACrB,OAAO;GACR;GACA,OAAO,QAAQ,IAAI,eAAe,GAAG;EACtC;EACA,IAAI,QAAQ,KAAK,OAAO,UAAU;GACjC,MAAM,MAAM,QAAQ,IAAI,QAAQ,GAAG;GACnC,MAAM,MAAM,QAAQ,IAAI,QAAQ,KAAK,OAAO,QAAQ;GACpD,IAAI,OAAO,QAAQ,OAAO;IACzB,IAAI,OAAO,QAAQ,UAAU;KAC5B,iBAAiB,GAAG;KACpB,IAAI,cAAc;MACjB,QAAQ,IAAI;OACX;OACA;MACD,CAAC;MACD,IAAI,eAAe,SAAS,GAAG,QAAQ,KAAK,eAAe,KAAK,KAAK,KAAK;KAC3E;KACA,IAAI,QAAQ,IAAI,aAAa,iBAAiB,cAAc,QAAQ,KAAK,UAAU;MAClF;MACA;KACD,CAAC;IACF;IACA,IAAI,CAAC,cAAc;KAClB,eAAe;KACf,uBAAuB;MACtB,UAAU,cAAc;MACxB,eAAe;KAChB,CAAC;IACF;GACD;GACA,OAAO;EACR;CACD,CAAC;CACD,SAAS,iBAAiB,QAAQ;EACjC,MAAM,gBAAgB,aAAa,IAAI,MAAM;EAC7C,SAAS,OAAO,MAAM;EACtB,IAAI,CAAC,eAAe;EACpB,KAAK,MAAM,MAAM,eAAe;GAC/B,SAAS,OAAO,EAAE;GAClB,IAAI,aAAa,IAAI,EAAE,GAAG,iBAAiB,EAAE;EAC9C;CACD;CACA,OAAO;AACR;AACA,MAAM,mBAAmB,QAAQ,IAAI,aAAa,UAAU,SAAS,OAAO,GAAG,IAAI;AACnF,IAAI,UAAU;AACd,MAAM,kBAAkB;CACvB,WAAW;CACX,UAAU;CACV,WAAW;CACX,UAAU;CACV,YAAY;CACZ,iBAAiB;AAClB;AACA,SAAS,eAAe,WAAW;CAClC,MAAM,OAAO,EAAE,eAAe,UAAU,MAAM;CAC9C,OAAO,CAAC,GAAG,UAAU,QAAQ,EAAE,MAAM,YAAY,QAAQ,aAAa,YAAY,QAAQ,WAAW,IAAI,CAAC;AAC3G"}