{"version":3,"sources":["../src/index.ts","../src/components/connect.tsx","../src/hooks/useForceUpdate.ts","../src/GsmContext.ts","../src/hooks/useGsmContext.ts","../src/Util/Random.ts","../src/Util/Iterates.ts","../src/components/Provider.tsx","../src/Util/Schedules.ts","../src/StateStore.ts","../src/storage/getStorage.ts","../src/storage/WebStorage.ts","../src/StoreCaching.ts","../src/hooks/useStore.ts","../src/hooks/useGlobal.ts","../src/hooks/useStaticGlobal.ts"],"sourcesContent":["import connect from \"./components/connect\";\r\nimport Provider from \"./components/Provider\";\r\nimport StateStore from \"./StateStore\";\r\nimport { Store } from \"./StateStore\";\r\nimport WebStorage from './storage/WebStorage';\r\n\r\nexport { StoreCaching } from \"./StoreCaching\";\r\nexport { StateStore, Store, Provider, connect };\r\nexport { WebStorage };\r\n\r\nexport * from \"./hooks\";\r\nexport * from \"./types\";\r\n","import { createElement, memo, useCallback, useEffect, useMemo, useRef } from \"react\";\r\nimport useForceUpdate from \"../hooks/useForceUpdate\";\r\nimport useGsmContext from \"../hooks/useGsmContext\";\r\nimport { ConnectOptions, TypedConnector } from \"../types\";\r\nimport { randomString } from \"../Util/Random\";\r\nimport { shallowEqual, stacksDiff, stacksEqual } from \"../Util/Iterates\";\r\n\r\n\r\nconst updateContainer = <T, S, O>(selector: (state: T, ownProps: O) => S, updateCallback: Function, options: ConnectOptions) => {\r\n  return (global: T, reason?: string): S =>\r\n    updateCallback((prevState: T, ownProps: O) => {\r\n\r\n      let nextState;\r\n      try {\r\n        nextState = selector(global, ownProps);\r\n      } catch (err) {\r\n        return;\r\n      }\r\n\r\n      if (global !== undefined) {\r\n\r\n        const isArray = Array.isArray(prevState) || Array.isArray(nextState);\r\n        const shouldUpdate = isArray ?\r\n          !stacksEqual(prevState as Array<any>, nextState as Array<any>) :\r\n          !shallowEqual(prevState, nextState);\r\n\r\n        if (options.debugCallbackPicker) {\r\n          console.debug(\r\n            \"[gsm:connect]\", \"[picking]\", \"->\", options.label,\r\n            \"\\n\", \"reason\", \"=>\", reason,\r\n            ...(isArray ? (\r\n              [\r\n                \"\\n\", \"stacksEqual\", \"=>\", stacksEqual(prevState as Array<any>, nextState as Array<any>),\r\n                \"\\n\", \"stacksDiff\", \"=>\", stacksDiff(prevState as Array<any>, nextState as Array<any>),\r\n                \"\\n\", \"current\", \"=>\", prevState,\r\n                \"\\n\", \"next\", \"=>\", nextState,\r\n                \"\\n\", \"result\", \"=>\", shouldUpdate,\r\n              ]\r\n            ) : [\r\n              \"\\n\", \"next\", \"=>\", nextState,\r\n            ])\r\n          );\r\n        }\r\n\r\n        if (shouldUpdate) {\r\n          if (options.debugCallbackPicked) {\r\n            console.debug(\r\n              \"[gsm:connect]\", \"[picked]\", \"->\", options.label,\r\n              \"\\n\", \"reason\", \"=>\", reason,\r\n              \"\\n\", \"next\", \"=>\", nextState,\r\n            );\r\n          }\r\n          return nextState;\r\n        }\r\n      }\r\n      return prevState;\r\n    });\r\n};\r\n\r\nconst connect = <\r\n  OwnProps extends AnyLiteral,\r\n  TState extends AnyLiteral,\r\n  Selected extends AnyLiteral & OwnProps\r\n>(\r\n  selector: (global: TState, props: OwnProps) => Selected,\r\n  options: ConnectOptions = {}\r\n) => {\r\n\r\n  options = Object.assign({\r\n    nonMemoizedContainer: false,\r\n    label: randomString(5),\r\n    debugCallbackPicker: false,\r\n    debugCallbackPicked: false,\r\n    debugInitialPicker: false,\r\n  } satisfies ConnectOptions, options);\r\n\r\n  return (Component: React.FC<Selected>) => {\r\n\r\n    function TCContainer(props: OwnProps) {\r\n      const { store } = useGsmContext();\r\n\r\n      (options.debugInitialPicker || options.debugCallbackPicker) &&\r\n        console.debug('[gsm:connect]', 'rendering', 'TCContainer', { props });\r\n\r\n      const forceUpdate = useForceUpdate();\r\n      const mappedProps = useRef<ReturnType<typeof selector>>();\r\n      const picker = useCallback(selector, [selector, props]);\r\n\r\n      useMemo(() => {\r\n        let nextState;\r\n        options.debugInitialPicker &&\r\n          console.debug('[gsm:connect:initial_picker]', '->', `${options.label}\\n`, 'start picking')\r\n        try {\r\n          const global = store.getState((e) => e);\r\n          nextState = picker(global, props);\r\n          options.debugInitialPicker &&\r\n            console.debug('[gsm:connect:initial_picker]', '->', `${options.label}\\n`, { mappedProps, global, props, nextState });\r\n        } catch (e) {\r\n          // options.debugInitialPicker &&\r\n            console.error('[gsm:connect:initial_picker]', '->', `${options.label}\\n`, 'thrown an error\\n', e)\r\n          return undefined;\r\n        }\r\n        mappedProps.current = nextState;\r\n      }, [picker, props]);\r\n\r\n      useEffect(() => {\r\n        const updateCallback = (next: AnyFunction) => {\r\n          let nextState;\r\n          options.debugCallbackPicker &&\r\n            console.debug('[gsm:connect:next_picker]', '->', `${options.label}\\n`, 'start picking');\r\n          try {\r\n            nextState = next(mappedProps.current, props);\r\n            options.debugCallbackPicker &&\r\n              console.debug('[gsm:connect:next_picker]', '->', `${options.label}\\n`, { mappedProps, props, nextState });\r\n          } catch (e) {\r\n            // options.debugCallbackPicker &&\r\n              console.error('[gsm:connect:next_picker]', '->', `${options.label}\\n`, 'thrown an error\\n', e);\r\n            return undefined;\r\n          }\r\n          if (nextState != mappedProps.current) {\r\n            mappedProps.current = nextState;\r\n            void forceUpdate(bool => !bool);\r\n          }\r\n        };\r\n        const callback = updateContainer<TState, Selected, OwnProps>(picker, updateCallback, options);\r\n        store.addCallback(callback);\r\n        return () => store.removeCallback(callback);\r\n      }, [forceUpdate, picker, props]);\r\n\r\n      return createElement(Component, {\r\n        ...mappedProps.current,\r\n        ...props,\r\n      } as Selected);\r\n    };\r\n\r\n    return options.nonMemoizedContainer ? TCContainer : memo(TCContainer);\r\n  };\r\n};\r\n\r\nexport default connect as TypedConnector<AnyLiteral>;\r\n","import { useState } from \"react\";\r\n\r\nconst useForceUpdate = () => {\r\n\t// return useReducer(bool => !bool, false)[1];\r\n\treturn useState(false)[1];\r\n};\r\n\r\nexport default useForceUpdate;","import { createContext } from \"react\";\r\nimport { Store } from \"./StateStore\";\r\n\r\nexport interface ReactGSMContextValue<S extends AnyLiteral = any, A = unknown> {\r\n\tstore: Store<S,A>;\r\n}\r\n\r\nexport const ReactGSMContext = createContext<ReactGSMContextValue | null>(null as any);\r\n\r\nexport type ReactGSMContextInstance = typeof ReactGSMContext\r\n\r\nexport default ReactGSMContext;","import ReactGSMContext from \"../GsmContext\";\r\nimport React from \"react\";\r\n\r\n\r\nconst useGsmContext = (context = ReactGSMContext) => {\r\n\tconst contextValue = React.useContext(context);\r\n\treturn contextValue!;\r\n}\r\n\r\nexport default useGsmContext;","export const randomInteger = (min = 0, max = 1) => Math.floor(min + Math.random() * (max + 1 - min));\r\n\r\nexport const randomString = (length: number) => {\r\n\tlet result = '';\r\n\tlet characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n\tlet charactersLength = characters.length;\r\n\tfor (let i = 0; i < length; i++) {\r\n\t\tresult += characters.charAt(Math.floor(Math.random() * charactersLength));\r\n\t}\r\n\treturn result;\r\n};\r\n\r\nexport const generateIdFor = (obj: object) => {\r\n\tlet id;\r\n\r\n\tdo {\r\n\t\tid = String(Math.random()).replace('0.', 'id');\r\n\t} while (obj.hasOwnProperty(id));\r\n\r\n\treturn id;\r\n};","export function pick<T, K extends keyof T>(object: T, keys: K[]) {\r\n  return keys.reduce((result, key) => {\r\n    result[key] = object[key];\r\n    return result;\r\n  }, {} as Pick<T, K>);\r\n}\r\n\r\nexport function omit<T extends object, K extends keyof T>(object: T, keys: K[]): Omit<T, K> {\r\n  const stringKeys = new Set(keys.map(String));\r\n  const savedKeys = Object.keys(object)\r\n    .filter((key) => !stringKeys.has(key)) as Array<Exclude<keyof T, K>>;\r\n\r\n  return pick(object, savedKeys);\r\n}\r\n\r\nexport function arePropsShallowEqual(currentProps: AnyLiteral, newProps: AnyLiteral): boolean {\r\n\r\n\tif (currentProps === newProps) {\r\n\t\treturn true;\r\n\t}\r\n\r\n\tconst currentKeys = Object.keys(currentProps);\r\n\tconst currentKeysLength = currentKeys.length;\r\n\tconst newKeysLength = Object.keys(newProps).length;\r\n\r\n\tif (currentKeysLength !== newKeysLength) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tif (currentKeysLength === 0) {\r\n\t\treturn true;\r\n\t}\r\n\r\n\tfor (let i = 0; i < currentKeysLength; i++) {\r\n\t\tconst prop = currentKeys[i];\r\n\t\tif (currentProps[prop] !== newProps[prop]) return false;\r\n\t}\r\n\r\n\treturn true;\r\n}\r\n\r\nexport function getUnequalProps(currentProps: AnyLiteral, newProps: AnyLiteral) {\r\n\tconst currentKeys = Object.keys(currentProps);\r\n\tconst currentKeysLength = currentKeys.length;\r\n\tconst newKeysLength = Object.keys(newProps).length;\r\n\r\n\tif (currentKeysLength !== newKeysLength) {\r\n\t\treturn ['%LENGTH%'];\r\n\t}\r\n\r\n\treturn currentKeys.reduce((res, prop) => {\r\n\t\tif (currentProps[prop] !== newProps[prop]) {\r\n\t\t\tres.push(`${prop}: ${currentProps[prop]} => ${newProps[prop]}`);\r\n\t\t}\r\n\t\treturn res;\r\n\t}, [] as Array<string>);\r\n}\r\n\r\n\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\n/**\r\n * inlined Object.is polyfill to avoid requiring consumers ship their own\r\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\r\n */\r\nfunction is(x: any, y: any): boolean {\r\n\t// SameValue algorithm\r\n\tif (x === y) { // Steps 1-5, 7-10\r\n\t\t// Steps 6.b-6.e: +0 != -0\r\n\t\t// Added the nonzero y check to make Flow happy, but it is redundant\r\n\t\treturn x !== 0 || y !== 0 || 1 / x === 1 / y;\r\n\t} else {\r\n\t\t// Step 6.a: NaN == NaN\r\n\t\treturn x !== x && y !== y;\r\n\t}\r\n}\r\n\r\n/**\r\n * Performs equality by iterating through keys on an object and returning false\r\n * when any key has values which are not strictly equal between the arguments.\r\n * Returns true when the values of all keys are strictly equal.\r\n */\r\nexport function shallowEqual(objA: AnyLiteral | any, objB: AnyLiteral | any): boolean {\r\n\tif (is(objA, objB)) {\r\n\t\treturn true;\r\n\t}\r\n\r\n\tif (typeof objA !== 'object' || objA === null ||\r\n\t\ttypeof objB !== 'object' || objB === null) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tconst keysA = Object.keys(objA);\r\n\tconst keysB = Object.keys(objB);\r\n\r\n\tif (keysA.length !== keysB.length) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\t// Test for A's keys different from B.\r\n\tfor (let i = 0; i < keysA.length; i++) {\r\n\t\tif (\r\n\t\t\t!hasOwnProperty.call(objB, keysA[i]) ||\r\n\t\t\t!is(objA[keysA[i]], objB[keysA[i]])\r\n\t\t) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\treturn true;\r\n}\r\n\r\nexport const getObjectDiff = (obj1: AnyLiteral, obj2: AnyLiteral) => {\r\n\tconst combinedObject = { ...obj1, ...obj2 };\r\n\treturn Object.entries(combinedObject).reduce((acc, [key, value]) => {\r\n\t\tif (\r\n\t\t\t!Object.values(obj1).includes(value) ||\r\n\t\t\t!Object.values(obj2).includes(value)\r\n\t\t) acc[key] = value;\r\n\t\treturn acc;\r\n\t}, {} as AnyLiteral);\r\n};\r\n\r\nexport function compareObjects(original:AnyLiteral, copy:AnyLiteral) {\r\n\tfor (let [k, v] of Object.entries(original)) {\r\n\t\tif (typeof v === \"object\" && v !== null) {\r\n\t\t\tcompareObjects(v, copy?.[k]);\r\n\t\t} else {\r\n\t\t\tif (Object.is(v, copy?.[k])) delete copy?.[k];\r\n\t\t}\r\n\t}\r\n\treturn copy;\r\n}\r\n\r\nexport const stacksEqual = <T>(a1: Array<T>, a2: Array<T>) => a1 === a2 || (\r\n\ta1 !== null && a2 !== null &&\r\n\tArray.isArray(a1) && Array.isArray(a2) &&\r\n\ta1.length === a2.length &&\r\n\ta1.map((val, idx) => shallowEqual(val, a2[idx])).every(e => e)\r\n);\r\n\r\nexport const stacksDiff = <T>(arr1: Array<T>, arr2: Array<T>) =>\r\n\tarr1 !== null && arr2 !== null &&\r\n\tArray.isArray(arr1) && Array.isArray(arr2) &&\r\n\tarr1.length > 0 && arr2.length > 0 &&\r\n\tarr1\r\n\t\t.filter(x => !arr2.includes(x))\r\n\t\t.concat(arr2.filter(x => !arr1.includes(x)));\r\n\r\nexport const validateKeySet = <T extends AnyLiteral, E extends Partial<T>>(srcObj: T, destObj: E): T => {\r\n\tif (srcObj == null) srcObj = {} as T;\r\n\tconst destCopy = Object.assign(destObj);\r\n\tconst keys = Object.keys(srcObj) as (keyof T)[];\r\n\tfor (let i = 0; i < keys.length; i++) {\r\n\t\tconst key = keys[i];\r\n\t\tif (typeof destCopy[key] === 'undefined') {\r\n\t\t\tdestCopy[key] = srcObj[key];\r\n\t\t} else if (\r\n\t\t\ttypeof srcObj[key] === 'object' &&\r\n\t\t\tsrcObj[key] != null &&\r\n\t\t\t// @ts-ignore\r\n\t\t\t!(srcObj[key] instanceof Array)\r\n\t\t) {\r\n\t\t\tdestCopy[key] = validateKeySet(srcObj[key], destCopy[key]);\r\n\t\t}\r\n\t}\r\n\treturn destCopy as T;\r\n}","import React from \"react\";\r\nimport type { ReactNode, Context } from \"react\";\r\nimport ReactGSMContext, { ReactGSMContextValue } from \"../GsmContext\";\r\nimport { Store } from \"../StateStore\";\r\n\r\nexport interface ProviderProps<S extends AnyLiteral, A> {\r\n\tstore: Store<S, A>,\r\n\tcontext?: Context<ReactGSMContextValue | null>,\r\n\tchildren: ReactNode,\r\n}\r\n\r\nconst Provider = <S extends AnyLiteral, A>({\r\n\tstore,\r\n\tcontext,\r\n\tchildren,\r\n}: ProviderProps<S, A>) => {\r\n\r\n\tconst contextValue = React.useMemo(() => {\r\n\t\treturn { store };\r\n\t}, [store]);\r\n\r\n\tconst Context = context || ReactGSMContext;\r\n\r\n\treturn <Context.Provider value={contextValue} children={children} />;\r\n\r\n};\r\n\r\nexport default Provider;","export type Scheduler = typeof requestAnimationFrame | typeof onTickEnd;\r\n\r\nexport function debounce<F extends AnyToVoidFunction>(\r\n\tfn: F,\r\n\tms: number,\r\n\tshouldRunFirst = true,\r\n\tshouldRunLast = true\r\n) {\r\n\tlet waitingTimeout: number | undefined;\r\n\r\n\treturn (...args: Parameters<F>) => {\r\n\t\tif (waitingTimeout) {\r\n\t\t\tclearTimeout(waitingTimeout);\r\n\t\t\twaitingTimeout = undefined;\r\n\t\t} else if (shouldRunFirst) {\r\n\t\t\tfn(...args);\r\n\t\t}\r\n\r\n\t\t// eslint-disable-next-line no-restricted-globals\r\n\t\twaitingTimeout = self.setTimeout(() => {\r\n\t\t\tif (shouldRunLast) {\r\n\t\t\t\tfn(...args);\r\n\t\t\t}\r\n\r\n\t\t\twaitingTimeout = undefined;\r\n\t\t}, ms);\r\n\t};\r\n}\r\n\r\nexport function throttle<F extends AnyToVoidFunction>(\r\n\tfn: F,\r\n\tms: number = 500,\r\n\tshouldRunFirst = true\r\n) {\r\n\tlet interval: number | undefined;\r\n\tlet isPending: boolean;\r\n\tlet args: Parameters<F>;\r\n\r\n\treturn (..._args: Parameters<F>) => {\r\n\t\tisPending = true;\r\n\t\targs = _args;\r\n\r\n\t\tif (!interval) {\r\n\t\t\tif (shouldRunFirst) {\r\n\t\t\t\tisPending = false;\r\n\t\t\t\tfn(...args);\r\n\t\t\t}\r\n\r\n\t\t\t// eslint-disable-next-line no-restricted-globals\r\n\t\t\tinterval = self.setInterval(() => {\r\n\t\t\t\tif (!isPending) {\r\n\t\t\t\t\t// eslint-disable-next-line no-restricted-globals\r\n\t\t\t\t\tself.clearInterval(interval);\r\n\t\t\t\t\tinterval = undefined;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tisPending = false;\r\n\t\t\t\tfn(...args);\r\n\t\t\t}, ms);\r\n\t\t}\r\n\t};\r\n}\r\n\r\n\r\n\r\nexport function throttleWithTickEnd<F extends AnyToVoidFunction>(fn: F) {\r\n  return throttleWith(onTickEnd, fn);\r\n}\r\n\r\nexport function throttleWith<F extends AnyToVoidFunction>(schedulerFn: Scheduler, fn: F) {\r\n  let waiting = false;\r\n  let args: Parameters<F>;\r\n\r\n  return (..._args: Parameters<F>) => {\r\n    args = _args;\r\n\r\n    if (!waiting) {\r\n      waiting = true;\r\n\r\n      schedulerFn(() => {\r\n        waiting = false;\r\n        fn(...args);\r\n      });\r\n    }\r\n  };\r\n}\r\n\r\n\r\nlet onTickEndCallbacks: NoneToVoidFunction[] | undefined;\r\n\r\nexport function onTickEnd(callback: NoneToVoidFunction) {\r\n  if (!onTickEndCallbacks) {\r\n    onTickEndCallbacks = [callback];\r\n\r\n    Promise.resolve().then(() => {\r\n      const currentCallbacks = onTickEndCallbacks!;\r\n      onTickEndCallbacks = undefined;\r\n      currentCallbacks.forEach((cb) => cb());\r\n    });\r\n  } else {\r\n    onTickEndCallbacks.push(callback);\r\n  }\r\n}","import { shallowEqual } from \"./Util/Iterates\";\r\nimport { generateIdFor } from \"./Util/Random\";\r\nimport { throttleWithTickEnd } from \"./Util/Schedules\";\r\nimport { ActionOptions } from \"./types\";\r\n\r\nexport default function StateStore<TState = AnyLiteral, ActionPayloads = Record<string, any>>(\r\n\tinitialState?: TState | undefined,\r\n\tdebugMode?: boolean,\r\n) {\r\n\r\n\ttype ActionNames = keyof ActionPayloads;\r\n\ttype Actions = {\r\n\t\t[ActionName in ActionNames]:\r\n\t\t(undefined extends ActionPayloads[ActionName] ? (\r\n\t\t\t(payload?: ActionPayloads[ActionName], options?: ActionOptions) => void\r\n\t\t) : (\r\n\t\t\t\t(payload: ActionPayloads[ActionName], options?: ActionOptions) => void\r\n\t\t\t))\r\n\t};\r\n\ttype ActionPayload<ActionName extends ActionNames> = ActionPayloads[ActionName];\r\n\ttype ActionHandler<ActionName extends ActionNames> = (\r\n\t\tglobal: TState,\r\n\t\tactions: Actions,\r\n\t\tpayload: ActionPayload<ActionName>,\r\n\t) => TState | void | Promise<void>;\r\n\ttype ActionHandlers = {\r\n\t\t[ActionName in ActionNames]: ActionHandler<ActionName>[];\r\n\t};\r\n\r\n\ttype Container = {\r\n\t\tselector: (state: TState, ownProps?: AnyLiteral) => Partial<TState>;\r\n\t\townProps?: AnyLiteral | undefined;\r\n\t\tmappedProps?: AnyLiteral | undefined;\r\n\t\tcallback: (mappedProps: AnyLiteral, reason?: string) => void;\r\n\t\tdebug?: AnyLiteral | string;\r\n\t};\r\n\ttype Containers = Map<string, Container>;\r\n\r\n\tlet currentState: TState | undefined = initialState;\r\n\tlet reducers: ActionHandlers = {} as ActionHandlers;\r\n\tlet actions: Actions = {} as Actions;\r\n\tlet containers: Containers = new Map();\r\n\r\n\tconst setState: (state: TState, options?: ActionOptions) => TState = (state, options) => {\r\n\t\tif (typeof state === \"object\" && state !== currentState) {\r\n\t\t\tcurrentState = state;\r\n\t\t\tdebugMode && console.debug(\"[StateStore]\", \"[setState]\", \"\\noptions:\", options, \"\\nstate:\", state);\r\n\t\t\tif (!options?.silent) { // if silent -> no callbacks\r\n\t\t\t\tif (options?.forceSync) {\r\n\t\t\t\t\trunCallbacks(options?.reason);\r\n\t\t\t\t} else {\r\n\t\t\t\t\trunCallbacksThrottled(options?.reason);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn currentState as TState;\r\n\t}\r\n\r\n\tfunction getState<S = Partial<TState>>(selector: (state: TState) => S): S;\r\n\tfunction getState(selector?: undefined): TState;\r\n\tfunction getState<S = Partial<TState>>(selector?: (state: TState) => S): S | TState {\r\n\t\treturn selector ? selector(currentState as TState) : currentState as TState;\r\n\t}\r\n\r\n\tconst updateContainers = (currentState: TState, reason?: string) => {\r\n\t\tfor (const container of containers.values()) {\r\n\t\t\tconst { selector, ownProps, mappedProps, callback } = container;\r\n\r\n\t\t\tlet newMappedProps;\r\n\r\n\t\t\ttry {\r\n\t\t\t\tnewMappedProps = selector(currentState, ownProps);\r\n\t\t\t} catch (err) {\r\n\t\t\t\tdebugMode && console.error(\">> GSTATE\", \"CONTAINER\\n\", \"UPDATE\",\r\n\t\t\t\t\t\"Чёт наебнулось, но всем как-то похуй, да?\\n\",\r\n\t\t\t\t\t\"Может трейс глянешь хоть:\\n\", err);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (Object.keys(newMappedProps).length && !shallowEqual(mappedProps, newMappedProps)) {\r\n\t\t\t\tcontainer.mappedProps = newMappedProps;\r\n\t\t\t\tcallback(container.mappedProps, reason); // pass reason of update\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\r\n\ttype StoreCallback = (global: TState, reason?: string) => void;\r\n\r\n\tconst callbacks: StoreCallback[] = [updateContainers];\r\n\tconst addCallback = (cb: StoreCallback) => {\r\n\t\tif (typeof cb === \"function\") {\r\n\t\t\tcallbacks.push(cb);\r\n\t\t}\r\n\t};\r\n\tconst removeCallback = (cb: StoreCallback) => {\r\n\t\tconst index = callbacks.indexOf(cb);\r\n\t\tif (index !== -1) {\r\n\t\t\tcallbacks.splice(index, 1);\r\n\t\t}\r\n\t};\r\n\tconst runCallbacks = (reason?: string) => {\r\n\t\treason = reason || '@ss_no_reason';\r\n\t\tcallbacks.forEach((cb) => cb(currentState as TState, reason)); // skip check cause we already checked while adding it\r\n\t};\r\n\r\n\tconst runCallbacksThrottled = throttleWithTickEnd(runCallbacks);\r\n\r\n\r\n\r\n\tconst onDispatch = <T extends ActionNames>(name: T, payload?: ActionPayload<T>, options?: ActionOptions) => {\r\n\t\tif (Array.isArray(reducers[name])) { // if reducers for this name exists\r\n\t\t\treducers[name].forEach((reducer) => {\r\n\t\t\t\tconst response = reducer(currentState as TState, actions, payload as ActionPayload<T>);\r\n\t\t\t\tif (!response || typeof (response as Promise<void>).then === \"function\") {\r\n\t\t\t\t\treturn response;\r\n\t\t\t\t}\r\n\t\t\t\toptions = {\r\n\t\t\t\t\t...options,\r\n\t\t\t\t\treason: '@dispatch:' + name.toString() + (options?.reason ? ('->' + options?.reason) : ''),\r\n\t\t\t\t};\r\n\t\t\t\tsetState(response as TState, options);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tconst addReducer = <T extends ActionNames>(name: T, reducer: ActionHandler<T>) => {\r\n\t\tif (!reducers[name]) { // if no reducers for this name\r\n\t\t\treducers[name] = [];\r\n\t\t\tactions[name] = (payload?: ActionPayload<T>, options?: ActionOptions) => // add dispatch action\r\n\t\t\t\tonDispatch(name, payload, options);\r\n\t\t}\r\n\t\treducers[name].push(reducer);\r\n\t};\r\n\r\n\tconst removeReducer: (name: keyof ActionPayloads, reducer: AnyFunction) => void = (name, reducer) => {\r\n\t\tif (!reducers[name]) return;\r\n\t\tconst index = reducers[name].indexOf(reducer);\r\n\t\tif (index !== -1) {\r\n\t\t\treducers[name].splice(index, 1);\r\n\t\t}\r\n\t};\r\n\r\n\tconst getDispatch = () => actions as Actions;\r\n\r\n\r\n\tconst withState = (\r\n\t\tselector: (state: TState, ownProps?: AnyLiteral) => Partial<TState>,\r\n\t\tdebug?: AnyLiteral | undefined\r\n\t) => {\r\n\t\treturn (callback: Container['callback']) => {\r\n\t\t\tconst id = generateIdFor(containers);\r\n\t\t\tlet container = containers.get(id);\r\n\t\t\tif (!container) {\r\n\t\t\t\tcontainer = {\r\n\t\t\t\t\tselector,\r\n\t\t\t\t\tcallback,\r\n\t\t\t\t\tmappedProps: undefined,\r\n\t\t\t\t\tdebug: debug || id,\r\n\t\t\t\t};\r\n\t\t\t\tcontainers.set(id, container);\r\n\t\t\t}\r\n\t\t\tif (!container.mappedProps) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tcontainer.mappedProps = selector(currentState as TState);\r\n\t\t\t\t} catch (err) {\r\n\t\t\t\t\tdebug && console.error(\">> GSTATE\", \"CONTAINER\\n\", \"INITIAL UPDATE\",\r\n\t\t\t\t\t\t\"Чёт наебнулось в первый раз, но всем как-то похуй, да?\\n\",\r\n\t\t\t\t\t\t\"Может трейс глянешь хоть:\\n\", err);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tcallback(container.mappedProps, '@initial_update');\r\n\t\t\treturn () => {\r\n\t\t\t\tdebug && console.debug(\"[withState]\", \"{GC}\", \"container\", \"->\", id);\r\n\t\t\t\tcontainers.delete(id);\r\n\t\t\t};\r\n\t\t};\r\n\t};\r\n\r\n\treturn {\r\n\t\tsetState,\r\n\t\tgetState,\r\n\t\taddCallback,\r\n\t\tremoveCallback,\r\n\t\taddReducer,\r\n\t\tremoveReducer,\r\n\t\tgetDispatch,\r\n\t\twithState,\r\n\t};\r\n};\r\n\r\nexport type Store<T, A> = ReturnType<typeof StateStore<T, A>>;","import { Storage } from \"../types\";\r\n\r\nfunction noop() {}\r\nconst noopStorage = {\r\n  getItem: noop,\r\n  setItem: noop,\r\n  removeItem: noop,\r\n  keys: [],\r\n  getAllKeys: noop,\r\n}\r\n\r\nfunction hasStorage(storageType: string) {\r\n  if (typeof self !== 'object' || !(storageType in self)) {\r\n    return false\r\n  }\r\n\r\n  try {\r\n    const storage = (self as unknown as { [key: string]: Storage})[storageType] as unknown as Storage\r\n    const testKey = `redux-persist ${storageType} test`\r\n    storage.setItem(testKey, 'test')\r\n    storage.getItem(testKey)\r\n    storage.removeItem(testKey)\r\n  } catch (e) {\r\n    if (process.env.NODE_ENV !== 'production')\r\n      console.warn(\r\n        `redux-persist ${storageType} test failed, persistence will be disabled.`\r\n      )\r\n    return false\r\n  }\r\n  return true\r\n}\r\n\r\nexport default function getStorage(type: string): Storage {\r\n  const storageType = `${type}Storage`\r\n  if (hasStorage(storageType)) return (self as unknown as { [key: string]: Storage })[storageType]\r\n  else {\r\n    if (process.env.NODE_ENV !== 'production') {\r\n      console.error(\r\n        `redux-persist failed to create sync storage. falling back to noop storage.`\r\n      )\r\n    }\r\n    return noopStorage\r\n  }\r\n}","import getStorage from \"./getStorage\"\r\n\r\nexport default function createWebStorage(type: string = 'local'): any {\r\n  const storage = getStorage(type)\r\n  return {\r\n    getItem: (key: string): Promise<string> => {\r\n      return new Promise((resolve) => {\r\n        resolve(storage.getItem(key))\r\n      })\r\n    },\r\n    setItem: (key: string, item: string): Promise<void> => {\r\n      return new Promise((resolve) => {\r\n        resolve(storage.setItem(key, item))\r\n      })\r\n    },\r\n    removeItem: (key: string): Promise<void> => {\r\n      return new Promise((resolve) => {\r\n        resolve(storage.removeItem(key))\r\n      })\r\n    },\r\n  }\r\n}","import { throttle } from \"./Util/Schedules\";\r\nimport { Store } from \"./StateStore\";\r\n\r\nimport { CachingOptions, Storage } from \"./types\";\r\nimport { validateKeySet } from \"./Util/Iterates\";\r\n\r\nexport const StoreCaching = <T extends AnyLiteral, A extends AnyLiteral>(\r\n\tstore: Store<T, A>,\r\n\tstorage: Storage,\r\n\tcache_key: string = \"tjmc.global.state\",\r\n\treduceGlobal: (global: T) => Partial<T> | AnyLiteral,\r\n\toptions?: Partial<CachingOptions>\r\n) => {\r\n\r\n\tif (typeof store != \"object\") throw new Error(\"Caching store in not instance of StateStore\");\r\n\r\n\tconst opts: CachingOptions = Object.assign<CachingOptions, Partial<CachingOptions>>({\r\n\t\tshouldRunFirstUpdateCacheThrottle: false,\r\n\t\tupdateCacheThrottle: 500,\r\n\t\tskipValidateKeySetOnReadCache: false,\r\n\t}, options || {});\r\n\r\n\tconst STATE_CACHE_KEY = cache_key;\r\n\r\n\tconst updateCacheThrottled = throttle(() => updateCache(), opts.updateCacheThrottle, opts.shouldRunFirstUpdateCacheThrottle);\r\n\tlet isCaching = false;\r\n\r\n\tconst setupCaching = () => {\r\n\t\tisCaching = true;\r\n\t\tstore.addCallback(updateCacheThrottled);\r\n\t};\r\n\r\n\tconst clearCaching = () => {\r\n\t\tisCaching = false;\r\n\t\tstore.removeCallback(updateCacheThrottled);\r\n\t};\r\n\r\n\tconst resetCache = async () => {\r\n\t\tawait storage.removeItem(STATE_CACHE_KEY);\r\n\t\tif (!isCaching) return;\r\n\t\tclearCaching();\r\n\t};\r\n\r\n\tconst loadCache = async (initialState: T) => {\r\n\t\tsetupCaching();\r\n\t\treturn await readCache(initialState);\r\n\t};\r\n\r\n\tconst readCache = async (initialState: T) => {\r\n\t\tconst json = await storage.getItem(STATE_CACHE_KEY);\r\n\t\tconst cached = json ? JSON.parse(json) : {};\r\n\t\tconst newState = opts.skipValidateKeySetOnReadCache ?\r\n\t\t\tObject.assign(initialState, cached) :\r\n\t\t\tvalidateKeySet<T, Partial<T>>(initialState, cached);\r\n\t\treturn { ...newState };\r\n\t};\r\n\r\n\tconst updateCache = () => {\r\n\t\tif (!isCaching) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet reducedGlobal = {};\r\n\t\ttry {\r\n\t\t\tconst global = store.getState(e => e);\r\n\t\t\treducedGlobal = reduceGlobal(global);\r\n\t\t} catch (e) {\r\n\t\t\tconsole.warn(\"[StoreCaching]\", e, reducedGlobal);\r\n\t\t}\r\n\t\ttry {\r\n\t\t\tconst json = JSON.stringify(reducedGlobal);\r\n\t\t\tstorage.setItem(STATE_CACHE_KEY, json);\r\n\t\t} catch (e) {\r\n\t\t\tconsole.warn(\"[StoreCaching]\", e, reducedGlobal);\r\n\t\t}\r\n\t};\r\n\r\n\treturn { loadCache, resetCache };\r\n\r\n};","import { Store } from \"../StateStore\";\r\nimport useGsmContext from \"./useGsmContext\";\r\n\r\nconst useStore = <S extends AnyLiteral, Action>() => {\r\n\tconst { store } = useGsmContext();\r\n\treturn store as Store<S, Action>;\r\n}\r\n\r\nexport default useStore;","import React, { useCallback, useEffect, useMemo, useRef } from \"react\";\r\nimport { shallowEqual, stacksDiff, stacksEqual } from \"../Util/Iterates\";\r\nimport { randomString } from \"../Util/Random\";\r\n\r\nimport type { PickOptions, TypedUseSelectorHook } from \"../types\";\r\nimport useForceUpdate from \"./useForceUpdate\";\r\nimport useGsmContext from \"./useGsmContext\";\r\n\r\nconst updateContainer = <T, S>(selector: (state: T) => S, updateCallback: Function, options: PickOptions) => {\r\n\treturn (global: T, reason?: string): S =>\r\n\t\tupdateCallback((prevState: T) => {\r\n\r\n\t\t\tlet nextState;\r\n\t\t\ttry {\r\n\t\t\t\tnextState = selector(global as T);\r\n\t\t\t} catch (err) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (global !== undefined) {\r\n\r\n\t\t\t\tconst isArray = Array.isArray(prevState) || Array.isArray(nextState);\r\n\t\t\t\tconst shouldUpdate = isArray ?\r\n\t\t\t\t\t!stacksEqual(prevState as Array<any>, nextState as Array<any>) :\r\n\t\t\t\t\t!shallowEqual(prevState, nextState);\r\n\r\n\t\t\t\tif (options.debugPicker) {\r\n\t\t\t\t\t// prettier-ignore\r\n\t\t\t\t\tconsole.debug(\r\n\t\t\t\t\t\t\"[gsm:useGlobal]\", \"[picking]\", \"->\", options.label,\r\n\t\t\t\t\t\t\"\\n\", \"reason\", \"=>\", reason,\r\n\t\t\t\t\t\t...(isArray ? (\r\n\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\"\\n\", \"stacksEqual\", \"=>\", stacksEqual(prevState as Array<any>, nextState as Array<any>),\r\n\t\t\t\t\t\t\t\t\"\\n\", \"stacksDiff\", \"=>\", stacksDiff(prevState as Array<any>, nextState as Array<any>),\r\n\t\t\t\t\t\t\t\t\"\\n\", \"current\", \"=>\", prevState,\r\n\t\t\t\t\t\t\t\t\"\\n\", \"next\", \"=>\", nextState,\r\n\t\t\t\t\t\t\t\t\"\\n\", \"result\", \"=>\", shouldUpdate,\r\n\t\t\t\t\t\t\t]\r\n\t\t\t\t\t\t) : [\r\n\t\t\t\t\t\t\t\"\\n\", \"next\", \"=>\", nextState,\r\n\t\t\t\t\t\t])\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\t// !arePropsShallowEqual(prevState, nextState)\r\n\t\t\t\t\tshouldUpdate\r\n\t\t\t\t) {\r\n\t\t\t\t\tif (options.debugPicked) {\r\n\t\t\t\t\t\t// prettier-ignore\r\n\t\t\t\t\t\tconsole.debug(\r\n\t\t\t\t\t\t\t\"[gsm:useGlobal]\", \"[picked]\", \"->\", options.label,\r\n\t\t\t\t\t\t\t\"\\n\", \"reason\", \"=>\", reason,\r\n\t\t\t\t\t\t\t\"\\n\", \"next\", \"=>\", nextState,\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn nextState;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn prevState;\r\n\t\t});\r\n};\r\n\r\nconst useGlobal: TypedUseSelectorHook<AnyLiteral> = <TState = AnyLiteral, Selected = Partial<TState>>(\r\n\tselector: (state: TState) => Selected,\r\n\tinputs: React.DependencyList = [],\r\n\toptions: PickOptions = {}\r\n): Selected => {\r\n\r\n\tconst { store } = useGsmContext();\r\n\r\n\toptions = useMemo(() => Object.assign({ debugPicker: false, debugPicked: false, label: randomString(5) }, options), [options]);\r\n\r\n\tconst forceUpdate = useForceUpdate();\r\n\tconst mappedProps = useRef<ReturnType<typeof selector>>();\r\n\tconst picker = useCallback(selector, [selector, ...inputs]);\r\n\r\n\tuseMemo(() => {\r\n\t\tlet nextState;\r\n\t\ttry {\r\n\t\t\tnextState = store.getState(picker);\r\n\t\t} catch (e) {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t\tmappedProps.current = nextState;\r\n\t}, [picker]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst updateCallback = (next: AnyFunction | AnyLiteral) => {\r\n\t\t\tlet nextState;\r\n\t\t\ttry {\r\n\t\t\t\tif (typeof next == 'function') {\r\n\t\t\t\t\tnextState = next(mappedProps.current);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnextState = next;\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {\r\n\t\t\t\treturn undefined;\r\n\t\t\t}\r\n\t\t\tif (nextState != mappedProps.current) {\r\n\t\t\t\tmappedProps.current = nextState;\r\n\t\t\t\tvoid forceUpdate(bool => !bool);\r\n\t\t\t}\r\n\t\t};\r\n\t\tconst callback = updateContainer<TState, Selected>(picker, updateCallback, options);\r\n\t\tstore.addCallback(callback);\r\n\t\treturn () => store.removeCallback(callback);\r\n\t}, [forceUpdate, picker, options]);\r\n\r\n\treturn mappedProps.current as Selected;\r\n};\r\n\r\nexport default useGlobal;","import type { TypedUseStaticHook } from \"../types\";\r\n\r\nimport { useCallback, useMemo, useRef } from \"react\";\r\nimport useGsmContext from \"./useGsmContext\";\r\n\r\n/**\r\n * Provides static selector without hooking to global store\r\n *\r\n * Useful for picking static state and creating state triggers with dependency\r\n *\r\n * @param selector Global state mapper function\r\n * @param inputs Peer dependency list\r\n * @returns Selected state\r\n */\r\nconst useStaticGlobal: TypedUseStaticHook<AnyLiteral> = <TState = AnyLiteral, Selected = Partial<TState>>(\r\n  selector: (state: TState) => Selected,\r\n  inputs: React.DependencyList = []\r\n) => {\r\n  const { store } = useGsmContext();\r\n  const mappedProps = useRef<ReturnType<typeof selector>>();\r\n  const picker = useCallback(selector, [selector, ...inputs]);\r\n\r\n  useMemo(() => {\r\n    let nextState;\r\n    try {\r\n      nextState = store.getState(picker);\r\n    } catch (e) {\r\n      return undefined;\r\n    }\r\n    mappedProps.current = nextState;\r\n  }, [picker]);\r\n\r\n  return mappedProps.current as Selected;\r\n};\r\n\r\nexport default useStaticGlobal;\r\n"],"mappings":"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","names":["import_react","import_react","import_react","React","import_react","React","currentState","import_react","updateContainer","import_react"]}