atom.io 0.44.3 → 0.44.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { AsJSON, RootStore, Transceiver } from "atom.io/internal";
2
- import { Loadable, MutableAtomFamilyToken, MutableAtomToken, ReadableFamilyToken, ReadableToken, TimelineToken, WritableFamilyToken, WritableToken } from "atom.io";
2
+ import { Loadable, MutableAtomFamilyToken, MutableAtomToken, ReadableFamilyToken, ReadableToken, RegularAtomToken, TimelineToken, WritableFamilyToken, WritableToken } from "atom.io";
3
3
  import { Canonical } from "atom.io/json";
4
4
 
5
5
  //#region src/react/store-context.d.ts
@@ -9,6 +9,11 @@ declare const StoreProvider: React.FC<{
9
9
  store?: RootStore;
10
10
  }>;
11
11
  //#endregion
12
+ //#region src/react/use-atomic-ref.d.ts
13
+ declare function useAtomicRef<T, R extends {
14
+ current: T | null;
15
+ }>(token: RegularAtomToken<T | null>, useRef: <TT>(initialValue: TT | null) => R): R;
16
+ //#endregion
12
17
  //#region src/react/use-i.d.ts
13
18
  declare function useI<T>(token: WritableToken<T, any, any>): <New extends T>(next: New | ((old: T) => New)) => void;
14
19
  declare function useI<T, K extends Canonical>(token: WritableFamilyToken<T, K, any>, key: NoInfer<K>): <New extends T>(next: New | ((old: T) => New)) => void;
@@ -50,5 +55,5 @@ type TimelineMeta = {
50
55
  };
51
56
  declare function useTL(token: TimelineToken<any>): TimelineMeta;
52
57
  //#endregion
53
- export { StoreContext, StoreProvider, TimelineMeta, useI, useJSON, useLoadable, useO, useTL };
58
+ export { StoreContext, StoreProvider, TimelineMeta, useAtomicRef, useI, useJSON, useLoadable, useO, useTL };
54
59
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["StoreContext: React.Context<RootStore>","StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: RootStore\n}>"],"sources":["../../src/react/store-context.tsx","../../src/react/use-i.ts","../../src/react/use-json.ts","../../src/react/use-loadable.ts","../../src/react/use-o.ts","../../src/react/use-tl.ts"],"sourcesContent":[],"mappings":";;;;;cAIaA,cAAc,KAAA,CAAM,QAAQ;cAI5BC,eAAe,KAAA,CAAM;YACvB,KAAA,CAAM;UACR;AANT,CAAA,CAAA;;;iBCIgB,eACR,cAAc,4BACN,SAAS,aAAa,MAAM;iBAE5B,QDRhB,UCQkC,SDRO,CAIzC,CAAA,KAAaA,ECKL,mBDLKA,CCKe,CDLfA,ECKkB,CDLlBA,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,ECMP,ODNOA,CCMC,CDNDA,CAAAA,CAAAA,EAAAA,CAAAA,YCOG,CDPHA,CAAAA,CAAAA,IAAAA,ECOY,GDPZA,GAAAA,CAAAA,CAAAA,GAAAA,ECOyB,CDPzBA,EAAAA,GCO+B,GDP/BA,CAAAA,EAAAA,GAAAA,IAAAA;;;iBECG,kBAAkB,mCAC1B,iBAAiB,KACtB,OAAO;iBAEM,QFThB,UEUW,WFV8B,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA,EAIzC,UEOW,SFPEA,CACF,CAAA,KAAM,EEOR,sBFPQ,CEOe,CFPf,EEOkB,CFPlB,CAAA,EAAA,GAAA,EEO2B,CFP3B,CAAA,EEO+B,MFP/B,CEOsC,CFPtC,CAAA;;;iBGFD,eHHhB,CAAA,CAIA,CAAA,KAAaA,EGAL,aHAKA,CGAS,QHATA,CGAkB,CHAlBA,CAAAA,EAAAA,GAAAA,EGA2B,CHA3BA,CAAAA,CAAAA,EAAAA,SAAAA,GAAAA;EACF,OAAM,EAAA,OAAA;EACR,KAAA,EGDiC,CHCjC,GGDqC,CHCrC;CAFmB;AAAM,iBGGlB,WHHkB,cGGO,aFHzC,CAAA,KAAgB,EEIR,mBFJQ,CEIY,QFJZ,CEIqB,CFJrB,CAAA,EEIyB,CFJzB,EEI4B,CFJ5B,CAAA,EAAA,GAAA,EEKV,OFLU,CEKF,CFLE,CAAA,CAAA,EAAA,SAAA,GAAA;EACM,OAAA,EAAA,OAAA;EAAd,KAAA,EEKkC,CFLlC,GEKsC,CFLtC;CACQ;AAAS,iBEMT,WFNS,CAAa,CAAA,EAAM,UEMH,CFNG,EAAA,CAAA,CAE5C,CAAA,KAAgB,EEKR,aFLQ,CEKM,QFLN,CEKe,CFLf,CAAA,EAAA,GAAA,EEKwB,CFLxB,CAAA,EAAA,QAAA,EEML,CFNK,CAAA,EAAA;EAAkB,OAAA,EAAA,OAAA;EACN,KAAA,EEME,CFNF;EAAG,KAAA,CAAA,EEMU,CFNV;CAAvB;AACM,iBEOE,WFPF,CAAR,CAAA,EACU,UEMyB,SFNzB,EAAS,UEMqC,CFNrC,EAAa,CAAA,CAAM,CAAA,KAAA,EEOpC,mBFPoC,CEOhB,QFPgB,CEOP,CFPO,CAAA,EEOH,CFPG,EEOA,CFPA,CAAA,EAAA,GAAA,EEQtC,OFRsC,CEQ9B,CFR8B,CAAA,EAAA,QAAA,EESjC,CFTiC,CAAA,EAAA;EAAA,OAAA,EAAA,OAAA;SEUd;UAAW;;;;iBCjBzB,kBJJhB,CAAA,KAAaD,EII6B,aJJD,CIIe,CJJf,EAAA,GAAA,EIIuB,CJJvB,CAAA,CAAA,EII4B,CJJ5B,GIIgC,CJJhC;AAI5BC,iBIEG,IJFHA,CACF,CAAA,EACF,UIAyB,SJAzB,EAFmB,IAAA,KAAM,CAAA,CAAA,KAAA,EIG1B,mBJH0B,CIGN,CJHM,EIGH,CJHG,EIGA,CJHA,CAAA,EAAA,GAAA,EII5B,OJJ4B,CIIpB,CJJoB,CAAA,CAAA,EIK/B,CJL+B,GIK3B,CJL2B;;;KKDtB,YAAA;;;;ELHZ,IAAaD,EAAAA,GAAAA,GAAAA,IAAAA;AAIb,CAAA;AACiB,iBKKD,KAAA,CLLC,KAAA,EKKY,aLLZ,CAAA,GAAA,CAAA,CAAA,EKKiC,YLLjC"}
1
+ {"version":3,"file":"index.d.ts","names":["StoreContext: React.Context<RootStore>","StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: RootStore\n}>"],"sources":["../../src/react/store-context.tsx","../../src/react/use-atomic-ref.ts","../../src/react/use-i.ts","../../src/react/use-json.ts","../../src/react/use-loadable.ts","../../src/react/use-o.ts","../../src/react/use-tl.ts"],"sourcesContent":[],"mappings":";;;;;cAIaA,cAAc,KAAA,CAAM,QAAQ;cAI5BC,eAAe,KAAA,CAAM;YACvB,KAAA,CAAM;UACR;AANT,CAAA,CAAA;;;iBCAgB;WAAqC;ADArD,CAAA,CAIA,CAAA,KAAaA,ECHL,gBDGKA,CCHY,CDGZA,GAAAA,IAAAA,CAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EAAAA,CAAAA,CAAAA,YAAAA,ECFe,EDEfA,GAAAA,IAAAA,EAAAA,GCF6B,CDE7BA,CAAAA,ECDV,CDCUA;;;iBEAG,eACR,cAAc,4BACN,SAAS,aAAa,MAAM;iBAE5B,QFRhB,UEQkC,SFRO,CAIzC,CAAA,KAAaA,EEKL,mBFLKA,CEKe,CFLfA,EEKkB,CFLlBA,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,EEMP,OFNOA,CEMC,CFNDA,CAAAA,CAAAA,EAAAA,CAAAA,YEOG,CFPHA,CAAAA,CAAAA,IAAAA,EEOY,GFPZA,GAAAA,CAAAA,CAAAA,GAAAA,EEOyB,CFPzBA,EAAAA,GEO+B,GFP/BA,CAAAA,EAAAA,GAAAA,IAAAA;;;iBGCG,kBAAkB,mCAC1B,iBAAiB,KACtB,OAAO;iBAEM,QHThB,UGUW,WHV8B,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA,EAIzC,UGOW,SHPEA,CACF,CAAA,KAAM,EGOR,sBHPQ,CGOe,CHPf,EGOkB,CHPlB,CAAA,EAAA,GAAA,EGO2B,CHP3B,CAAA,EGO+B,MHP/B,CGOsC,CHPtC,CAAA;;;iBIFD,eJHhB,CAAA,CAIA,CAAA,KAAaA,EIAL,aJAKA,CIAS,QJATA,CIAkB,CJAlBA,CAAAA,EAAAA,GAAAA,EIA2B,CJA3BA,CAAAA,CAAAA,EAAAA,SAAAA,GAAAA;EACF,OAAM,EAAA,OAAA;EACR,KAAA,EIDiC,CJCjC,GIDqC,CJCrC;CAFmB;AAAM,iBIGlB,WJHkB,cIGO,aHPzC,CAAA,KAAgB,EGQR,mBHRQ,CGQY,QHRZ,CGQqB,CHRrB,CAAA,EGQyB,CHRzB,EGQ4B,CHR5B,CAAA,EAAA,GAAA,EGSV,OHTU,CGSF,CHTE,CAAA,CAAA,EAAA,SAAA,GAAA;EAAqC,OAAA,EAAA,OAAA;EAC5B,KAAA,EGSiB,CHTjB,GGSqB,CHTrB;CAAjB;AACoB,iBGUZ,WHVY,CAAc,CAAA,EACvC,UGSsC,CHTtC,EAAA,CAAA,SGUK,cAAc,SAAS,SAAS,cAC7B;;SACmB;EFX9B,KAAgB,CAAA,EEWyB,CFXzB;CACM;AAAd,iBEYQ,WFZR,CACQ,CAAA,EAAS,UEWgB,SFXhB,EAAa,UEWwB,CFXxB,EAAM,CAAA,CAAA,CAAA,KAAA,EEYpC,mBFZoC,CEYhB,QFZgB,CEYP,CFZO,CAAA,EEYH,CFZG,EEYA,CFZA,CAAA,EAAA,GAAA,EEatC,OFbsC,CEa9B,CFb8B,CAAA,EAAA,QAAA,EEcjC,CFdiC,CAAA,EAAA;EAE5C,OAAgB,EAAA,OAAA;EAAkB,KAAA,EEaJ,CFbI;EACN,KAAA,CAAA,EEYa,CFZb;CAAG;;;iBGLf,kBLJhB,CAAA,KAAaD,EKI6B,aLJD,CKIe,CLJf,EAAA,GAAA,EKIuB,CLJvB,CAAA,CAAA,EKI4B,CLJ5B,GKIgC,CLJhC;AAI5BC,iBKEG,ILFHA,CACF,CAAA,EACF,UKAyB,SLAzB,EAFmB,IAAA,KAAM,CAAA,CAAA,KAAA,EKG1B,mBLH0B,CKGN,CLHM,EKGH,CLHG,EKGA,CLHA,CAAA,EAAA,GAAA,EKI5B,OLJ4B,CKIpB,CLJoB,CAAA,CAAA,EKK/B,CLL+B,GKK3B,CLL2B;;;KMDtB,YAAA;;;;ENHZ,IAAaD,EAAAA,GAAAA,GAAAA,IAAAA;AAIb,CAAA;AACiB,iBMKD,KAAA,CNLC,KAAA,EMKY,aNLZ,CAAA,GAAA,CAAA,CAAA,EMKiC,YNLjC"}
@@ -1,6 +1,6 @@
1
1
  import { IMPLICIT, findInStore, getFromStore, getJsonToken, setIntoStore, subscribeToState, subscribeToTimeline, withdraw } from "atom.io/internal";
2
- import { redo, undo } from "atom.io";
3
- import { createContext, useContext, useId, useRef, useSyncExternalStore } from "react";
2
+ import { redo, setState, undo } from "atom.io";
3
+ import { createContext, useContext, useEffect, useId, useRef, useSyncExternalStore } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  import { StoreContext as StoreContext$1, useO as useO$1 } from "atom.io/react";
6
6
 
@@ -11,6 +11,16 @@ const StoreProvider = ({ children, store = IMPLICIT.STORE }) => /* @__PURE__ */
11
11
  children
12
12
  });
13
13
 
14
+ //#endregion
15
+ //#region src/react/use-atomic-ref.ts
16
+ function useAtomicRef(token, useRef$1) {
17
+ const ref = useRef$1(null);
18
+ useEffect(() => {
19
+ setState(token, ref.current);
20
+ }, [token]);
21
+ return ref;
22
+ }
23
+
14
24
  //#endregion
15
25
  //#region src/react/parse-state-overloads.ts
16
26
  function parseStateOverloads(store, ...rest) {
@@ -158,5 +168,5 @@ function useTL(token) {
158
168
  }
159
169
 
160
170
  //#endregion
161
- export { StoreContext, StoreProvider, useI, useJSON, useLoadable, useO, useTL };
171
+ export { StoreContext, StoreProvider, useAtomicRef, useI, useJSON, useLoadable, useO, useTL };
162
172
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["StoreContext: React.Context<RootStore>","StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: RootStore\n}>","token: ReadableToken<any, any, any>","setter: React.RefObject<\n\t\t(<New extends T>(next: New | ((old: T) => New)) => void) | null\n\t>","StoreContext","value: unknown","state: ReadableState<any, any>","fallback: unknown","key: Canonical","useO"],"sources":["../../src/react/store-context.tsx","../../src/react/parse-state-overloads.ts","../../src/react/use-i.ts","../../src/react/use-o.ts","../../src/react/use-json.ts","../../src/react/use-loadable.ts","../../src/react/use-tl.ts"],"sourcesContent":["import type { RootStore } from \"atom.io/internal\"\nimport { IMPLICIT } from \"atom.io/internal\"\nimport { createContext } from \"react\"\n\nexport const StoreContext: React.Context<RootStore> = createContext(\n\tIMPLICIT.STORE,\n)\n\nexport const StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: RootStore\n}> = ({ children, store = IMPLICIT.STORE }) => (\n\t<StoreContext.Provider value={store}>{children}</StoreContext.Provider>\n)\n","import type {\n\tReadableFamilyToken,\n\tReadableToken,\n\tWritableFamilyToken,\n\tWritableToken,\n} from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport { findInStore } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\n\nexport function parseStateOverloads<T, K extends Canonical, Key extends K, E>(\n\tstore: Store,\n\t...rest: [WritableFamilyToken<T, K, E>, Key] | [WritableToken<T, any, E>]\n): WritableToken<T, Key, E>\n\nexport function parseStateOverloads<T, K extends Canonical, Key extends K, E>(\n\tstore: Store,\n\t...rest: [ReadableFamilyToken<T, K, E>, Key] | [ReadableToken<T, any, E>]\n): ReadableToken<T, Key, E>\n\nexport function parseStateOverloads<T, K extends Canonical, Key extends K, E>(\n\tstore: Store,\n\t...rest: [ReadableFamilyToken<T, K, E>, Key] | [ReadableToken<T, any, E>]\n): ReadableToken<T, Key, E> {\n\tlet token: ReadableToken<any, any, any>\n\tif (rest.length === 2) {\n\t\tconst family = rest[0]\n\t\tconst key = rest[1]\n\n\t\ttoken = findInStore(store, family, key)\n\t} else {\n\t\ttoken = rest[0]\n\t}\n\treturn token\n}\n","import type { WritableFamilyToken, WritableToken } from \"atom.io\"\nimport { setIntoStore } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport { useContext, useRef } from \"react\"\n\nimport { parseStateOverloads } from \"./parse-state-overloads\"\nimport { StoreContext } from \"./store-context\"\n\nexport function useI<T>(\n\ttoken: WritableToken<T, any, any>,\n): <New extends T>(next: New | ((old: T) => New)) => void\n\nexport function useI<T, K extends Canonical>(\n\ttoken: WritableFamilyToken<T, K, any>,\n\tkey: NoInfer<K>,\n): <New extends T>(next: New | ((old: T) => New)) => void\n\nexport function useI<T, K extends Canonical>(\n\t...params:\n\t\t| [WritableFamilyToken<T, K, any>, NoInfer<K>]\n\t\t| [WritableToken<T, any, any>]\n): <New extends T>(next: New | ((old: T) => New)) => void {\n\tconst store = useContext(StoreContext)\n\tconst token = parseStateOverloads(store, ...params)\n\tconst setter: React.RefObject<\n\t\t(<New extends T>(next: New | ((old: T) => New)) => void) | null\n\t> = useRef(null)\n\tsetter.current ??= (next) => {\n\t\tsetIntoStore(store, token, next)\n\t}\n\treturn setter.current\n}\n","import type { ReadableFamilyToken, ReadableToken } from \"atom.io\"\nimport { getFromStore, subscribeToState } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport { useContext, useId, useSyncExternalStore } from \"react\"\n\nimport { parseStateOverloads } from \"./parse-state-overloads\"\nimport { StoreContext } from \"./store-context\"\n\nexport function useO<T, E = never>(token: ReadableToken<T, any, E>): E | T\n\nexport function useO<T, K extends Canonical, E = never>(\n\ttoken: ReadableFamilyToken<T, K, E>,\n\tkey: NoInfer<K>,\n): E | T\n\nexport function useO<T, K extends Canonical, E = never>(\n\t...params:\n\t\t| [ReadableFamilyToken<T, K, E>, NoInfer<K>]\n\t\t| [ReadableToken<T, any, E>]\n): E | T {\n\tconst store = useContext(StoreContext)\n\tconst token = parseStateOverloads(store, ...params)\n\tconst id = useId()\n\treturn useSyncExternalStore<E | T>(\n\t\t(dispatch) => subscribeToState(store, token, `use-o:${id}`, dispatch),\n\t\t() => getFromStore(store, token),\n\t\t() => getFromStore(store, token),\n\t)\n}\n","import type { MutableAtomFamilyToken, MutableAtomToken } from \"atom.io\"\nimport type { AsJSON, Transceiver } from \"atom.io/internal\"\nimport { findInStore, getJsonToken } from \"atom.io/internal\"\nimport type { Canonical, Json } from \"atom.io/json\"\nimport { useContext } from \"react\"\n\nimport { StoreContext } from \"./store-context\"\nimport { useO } from \"./use-o\"\n\nexport function useJSON<T extends Transceiver<any, any, any>>(\n\ttoken: MutableAtomToken<T>,\n): AsJSON<T>\n\nexport function useJSON<\n\tT extends Transceiver<any, any, any>,\n\tK extends Canonical,\n>(token: MutableAtomFamilyToken<T, K>, key: K): AsJSON<T>\n\nexport function useJSON(\n\ttoken: MutableAtomFamilyToken<any, any> | MutableAtomToken<any>,\n\tkey?: Canonical,\n): Json.Serializable {\n\tconst store = useContext(StoreContext)\n\tconst stateToken: MutableAtomToken<any> =\n\t\ttoken.type === `mutable_atom_family` ? findInStore(store, token, key) : token\n\tconst jsonToken = getJsonToken(store, stateToken)\n\treturn useO(jsonToken)\n}\n","/** biome-ignore-all lint/correctness/useHookAtTopLevel: params are used in an invariant way */\nimport type { Loadable, ReadableFamilyToken, ReadableToken } from \"atom.io\"\nimport { findInStore, type ReadableState, withdraw } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport { StoreContext, useO } from \"atom.io/react\"\nimport { useContext, useRef } from \"react\"\n\nexport function useLoadable<T, E>(\n\ttoken: ReadableToken<Loadable<T>, any, E>,\n): `LOADING` | { loading: boolean; value: E | T }\n\nexport function useLoadable<T, K extends Canonical, E>(\n\ttoken: ReadableFamilyToken<Loadable<T>, K, E>,\n\tkey: NoInfer<K>,\n): `LOADING` | { loading: boolean; value: E | T }\n\nexport function useLoadable<T, F extends T, E>(\n\ttoken: ReadableToken<Loadable<T>, any, E>,\n\tfallback: F,\n): { loading: boolean; value: T; error?: E }\n\nexport function useLoadable<T, K extends Canonical, F extends T, E>(\n\ttoken: ReadableFamilyToken<Loadable<T>, K, E>,\n\tkey: NoInfer<K>,\n\tfallback: F,\n): { loading: boolean; value: T; error?: E }\n\nexport function useLoadable(\n\t...params:\n\t\t| readonly [ReadableFamilyToken<any, Canonical, any>, Canonical, unknown]\n\t\t| readonly [ReadableFamilyToken<any, Canonical, any>, Canonical]\n\t\t| readonly [ReadableToken<any, any, any>, unknown]\n\t\t| readonly [ReadableToken<any, any, any>]\n): `LOADING` | { loading: boolean; value: unknown; error?: unknown } {\n\tconst store = useContext(StoreContext)\n\n\tlet value: unknown\n\tlet state: ReadableState<any, any>\n\tlet fallback: unknown\n\n\tconst [token] = params\n\tlet key: Canonical\n\tswitch (token.type) {\n\t\tcase `atom`:\n\t\tcase `mutable_atom`:\n\t\tcase `readonly_held_selector`:\n\t\tcase `readonly_pure_selector`:\n\t\tcase `writable_held_selector`:\n\t\tcase `writable_pure_selector`:\n\t\t\tvalue = useO(token)\n\t\t\tstate = withdraw(store, token)\n\t\t\tfallback = params[1]\n\t\t\tbreak\n\t\tcase `atom_family`:\n\t\tcase `mutable_atom_family`:\n\t\tcase `readonly_held_selector_family`:\n\t\tcase `readonly_pure_selector_family`:\n\t\tcase `writable_held_selector_family`:\n\t\tcase `writable_pure_selector_family`:\n\t\t\tkey = params[1] as Canonical\n\t\t\tvalue = useO(token, key)\n\t\t\tstate = withdraw(store, findInStore(store, token, key))\n\t\t\tfallback = params[2]\n\t}\n\n\tconst hasFallback = fallback !== undefined\n\tconst isErr = `catch` in state && state.catch.some((E) => value instanceof E)\n\n\tconst wrapperRef = useRef<{\n\t\tloading: boolean\n\t\tvalue: unknown\n\t\terror?: unknown\n\t}>({ loading: false, value: null as unknown })\n\tconst lastLoadedRef = useRef(\n\t\tfallback ?? (value instanceof Promise ? `LOADING` : value),\n\t)\n\n\tconst { current: lastLoaded } = lastLoadedRef\n\tlet { current: wrapper } = wrapperRef\n\n\tconst wasErr =\n\t\t`catch` in state && state.catch.some((E) => lastLoaded instanceof E)\n\n\tif (value instanceof Promise) {\n\t\tif (lastLoaded === `LOADING`) {\n\t\t\treturn `LOADING`\n\t\t}\n\t\tif (wasErr && hasFallback) {\n\t\t\twrapper = wrapperRef.current = {\n\t\t\t\tloading: true,\n\t\t\t\tvalue: fallback,\n\t\t\t\terror: lastLoaded,\n\t\t\t}\n\t\t} else {\n\t\t\twrapper = wrapperRef.current = { loading: true, value: lastLoaded }\n\t\t}\n\t} else {\n\t\tlastLoadedRef.current = value\n\t\tif (wrapper.loading === true) {\n\t\t\tif (isErr && hasFallback) {\n\t\t\t\twrapper = wrapperRef.current = {\n\t\t\t\t\tloading: false,\n\t\t\t\t\tvalue: fallback,\n\t\t\t\t\terror: value,\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twrapper = wrapperRef.current = { loading: false, value: value }\n\t\t\t}\n\t\t} else {\n\t\t\tif (isErr && hasFallback) {\n\t\t\t\twrapper.loading = false\n\t\t\t\twrapper.value = fallback\n\t\t\t\twrapper.error = value\n\t\t\t} else {\n\t\t\t\twrapper.loading = false\n\t\t\t\twrapper.value = value\n\t\t\t\tdelete wrapper.error\n\t\t\t}\n\t\t}\n\t}\n\n\treturn wrapper\n}\n","import type { TimelineToken } from \"atom.io\"\nimport { redo, undo } from \"atom.io\"\nimport { subscribeToTimeline, withdraw } from \"atom.io/internal\"\nimport { useContext, useId, useRef, useSyncExternalStore } from \"react\"\n\nimport { StoreContext } from \"./store-context\"\n\nexport type TimelineMeta = {\n\tat: number\n\tlength: number\n\tundo: () => void\n\tredo: () => void\n}\n\nexport function useTL(token: TimelineToken<any>): TimelineMeta {\n\tconst store = useContext(StoreContext)\n\tconst id = useId()\n\tconst timeline = withdraw(store, token)\n\tconst tokenRef = useRef(token)\n\tconst rebuildMeta = () => {\n\t\treturn {\n\t\t\tat: timeline.at,\n\t\t\tlength: timeline.history.length,\n\t\t\tundo: () => {\n\t\t\t\tundo(token)\n\t\t\t},\n\t\t\tredo: () => {\n\t\t\t\tredo(token)\n\t\t\t},\n\t\t}\n\t}\n\tconst meta = useRef<TimelineMeta>(rebuildMeta())\n\tconst retrieve = () => {\n\t\tif (\n\t\t\tmeta.current.at !== timeline?.at ||\n\t\t\tmeta.current.length !== timeline?.history.length ||\n\t\t\ttokenRef.current !== token\n\t\t) {\n\t\t\ttokenRef.current = token\n\t\t\tmeta.current = rebuildMeta()\n\t\t}\n\t\treturn meta.current\n\t}\n\treturn useSyncExternalStore<TimelineMeta>(\n\t\t(dispatch) => subscribeToTimeline(store, token, `use-tl:${id}`, dispatch),\n\t\tretrieve,\n\t\tretrieve,\n\t)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["StoreContext: React.Context<RootStore>","StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: RootStore\n}>","useRef","token: ReadableToken<any, any, any>","setter: React.RefObject<\n\t\t(<New extends T>(next: New | ((old: T) => New)) => void) | null\n\t>","StoreContext","value: unknown","state: ReadableState<any, any>","fallback: unknown","key: Canonical","useO"],"sources":["../../src/react/store-context.tsx","../../src/react/use-atomic-ref.ts","../../src/react/parse-state-overloads.ts","../../src/react/use-i.ts","../../src/react/use-o.ts","../../src/react/use-json.ts","../../src/react/use-loadable.ts","../../src/react/use-tl.ts"],"sourcesContent":["import type { RootStore } from \"atom.io/internal\"\nimport { IMPLICIT } from \"atom.io/internal\"\nimport { createContext } from \"react\"\n\nexport const StoreContext: React.Context<RootStore> = createContext(\n\tIMPLICIT.STORE,\n)\n\nexport const StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: RootStore\n}> = ({ children, store = IMPLICIT.STORE }) => (\n\t<StoreContext.Provider value={store}>{children}</StoreContext.Provider>\n)\n","import type { RegularAtomToken } from \"atom.io\"\nimport { setState } from \"atom.io\"\nimport { useEffect } from \"react\"\n\nexport function useAtomicRef<T, R extends { current: T | null }>(\n\ttoken: RegularAtomToken<T | null>,\n\tuseRef: <TT>(initialValue: TT | null) => R,\n): R {\n\tconst ref = useRef(null)\n\tuseEffect(() => {\n\t\tsetState(token, ref.current)\n\t}, [token])\n\treturn ref\n}\n","import type {\n\tReadableFamilyToken,\n\tReadableToken,\n\tWritableFamilyToken,\n\tWritableToken,\n} from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport { findInStore } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\n\nexport function parseStateOverloads<T, K extends Canonical, Key extends K, E>(\n\tstore: Store,\n\t...rest: [WritableFamilyToken<T, K, E>, Key] | [WritableToken<T, any, E>]\n): WritableToken<T, Key, E>\n\nexport function parseStateOverloads<T, K extends Canonical, Key extends K, E>(\n\tstore: Store,\n\t...rest: [ReadableFamilyToken<T, K, E>, Key] | [ReadableToken<T, any, E>]\n): ReadableToken<T, Key, E>\n\nexport function parseStateOverloads<T, K extends Canonical, Key extends K, E>(\n\tstore: Store,\n\t...rest: [ReadableFamilyToken<T, K, E>, Key] | [ReadableToken<T, any, E>]\n): ReadableToken<T, Key, E> {\n\tlet token: ReadableToken<any, any, any>\n\tif (rest.length === 2) {\n\t\tconst family = rest[0]\n\t\tconst key = rest[1]\n\n\t\ttoken = findInStore(store, family, key)\n\t} else {\n\t\ttoken = rest[0]\n\t}\n\treturn token\n}\n","import type { WritableFamilyToken, WritableToken } from \"atom.io\"\nimport { setIntoStore } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport { useContext, useRef } from \"react\"\n\nimport { parseStateOverloads } from \"./parse-state-overloads\"\nimport { StoreContext } from \"./store-context\"\n\nexport function useI<T>(\n\ttoken: WritableToken<T, any, any>,\n): <New extends T>(next: New | ((old: T) => New)) => void\n\nexport function useI<T, K extends Canonical>(\n\ttoken: WritableFamilyToken<T, K, any>,\n\tkey: NoInfer<K>,\n): <New extends T>(next: New | ((old: T) => New)) => void\n\nexport function useI<T, K extends Canonical>(\n\t...params:\n\t\t| [WritableFamilyToken<T, K, any>, NoInfer<K>]\n\t\t| [WritableToken<T, any, any>]\n): <New extends T>(next: New | ((old: T) => New)) => void {\n\tconst store = useContext(StoreContext)\n\tconst token = parseStateOverloads(store, ...params)\n\tconst setter: React.RefObject<\n\t\t(<New extends T>(next: New | ((old: T) => New)) => void) | null\n\t> = useRef(null)\n\tsetter.current ??= (next) => {\n\t\tsetIntoStore(store, token, next)\n\t}\n\treturn setter.current\n}\n","import type { ReadableFamilyToken, ReadableToken } from \"atom.io\"\nimport { getFromStore, subscribeToState } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport { useContext, useId, useSyncExternalStore } from \"react\"\n\nimport { parseStateOverloads } from \"./parse-state-overloads\"\nimport { StoreContext } from \"./store-context\"\n\nexport function useO<T, E = never>(token: ReadableToken<T, any, E>): E | T\n\nexport function useO<T, K extends Canonical, E = never>(\n\ttoken: ReadableFamilyToken<T, K, E>,\n\tkey: NoInfer<K>,\n): E | T\n\nexport function useO<T, K extends Canonical, E = never>(\n\t...params:\n\t\t| [ReadableFamilyToken<T, K, E>, NoInfer<K>]\n\t\t| [ReadableToken<T, any, E>]\n): E | T {\n\tconst store = useContext(StoreContext)\n\tconst token = parseStateOverloads(store, ...params)\n\tconst id = useId()\n\treturn useSyncExternalStore<E | T>(\n\t\t(dispatch) => subscribeToState(store, token, `use-o:${id}`, dispatch),\n\t\t() => getFromStore(store, token),\n\t\t() => getFromStore(store, token),\n\t)\n}\n","import type { MutableAtomFamilyToken, MutableAtomToken } from \"atom.io\"\nimport type { AsJSON, Transceiver } from \"atom.io/internal\"\nimport { findInStore, getJsonToken } from \"atom.io/internal\"\nimport type { Canonical, Json } from \"atom.io/json\"\nimport { useContext } from \"react\"\n\nimport { StoreContext } from \"./store-context\"\nimport { useO } from \"./use-o\"\n\nexport function useJSON<T extends Transceiver<any, any, any>>(\n\ttoken: MutableAtomToken<T>,\n): AsJSON<T>\n\nexport function useJSON<\n\tT extends Transceiver<any, any, any>,\n\tK extends Canonical,\n>(token: MutableAtomFamilyToken<T, K>, key: K): AsJSON<T>\n\nexport function useJSON(\n\ttoken: MutableAtomFamilyToken<any, any> | MutableAtomToken<any>,\n\tkey?: Canonical,\n): Json.Serializable {\n\tconst store = useContext(StoreContext)\n\tconst stateToken: MutableAtomToken<any> =\n\t\ttoken.type === `mutable_atom_family` ? findInStore(store, token, key) : token\n\tconst jsonToken = getJsonToken(store, stateToken)\n\treturn useO(jsonToken)\n}\n","/** biome-ignore-all lint/correctness/useHookAtTopLevel: params are used in an invariant way */\nimport type { Loadable, ReadableFamilyToken, ReadableToken } from \"atom.io\"\nimport { findInStore, type ReadableState, withdraw } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport { StoreContext, useO } from \"atom.io/react\"\nimport { useContext, useRef } from \"react\"\n\nexport function useLoadable<T, E>(\n\ttoken: ReadableToken<Loadable<T>, any, E>,\n): `LOADING` | { loading: boolean; value: E | T }\n\nexport function useLoadable<T, K extends Canonical, E>(\n\ttoken: ReadableFamilyToken<Loadable<T>, K, E>,\n\tkey: NoInfer<K>,\n): `LOADING` | { loading: boolean; value: E | T }\n\nexport function useLoadable<T, F extends T, E>(\n\ttoken: ReadableToken<Loadable<T>, any, E>,\n\tfallback: F,\n): { loading: boolean; value: T; error?: E }\n\nexport function useLoadable<T, K extends Canonical, F extends T, E>(\n\ttoken: ReadableFamilyToken<Loadable<T>, K, E>,\n\tkey: NoInfer<K>,\n\tfallback: F,\n): { loading: boolean; value: T; error?: E }\n\nexport function useLoadable(\n\t...params:\n\t\t| readonly [ReadableFamilyToken<any, Canonical, any>, Canonical, unknown]\n\t\t| readonly [ReadableFamilyToken<any, Canonical, any>, Canonical]\n\t\t| readonly [ReadableToken<any, any, any>, unknown]\n\t\t| readonly [ReadableToken<any, any, any>]\n): `LOADING` | { loading: boolean; value: unknown; error?: unknown } {\n\tconst store = useContext(StoreContext)\n\n\tlet value: unknown\n\tlet state: ReadableState<any, any>\n\tlet fallback: unknown\n\n\tconst [token] = params\n\tlet key: Canonical\n\tswitch (token.type) {\n\t\tcase `atom`:\n\t\tcase `mutable_atom`:\n\t\tcase `readonly_held_selector`:\n\t\tcase `readonly_pure_selector`:\n\t\tcase `writable_held_selector`:\n\t\tcase `writable_pure_selector`:\n\t\t\tvalue = useO(token)\n\t\t\tstate = withdraw(store, token)\n\t\t\tfallback = params[1]\n\t\t\tbreak\n\t\tcase `atom_family`:\n\t\tcase `mutable_atom_family`:\n\t\tcase `readonly_held_selector_family`:\n\t\tcase `readonly_pure_selector_family`:\n\t\tcase `writable_held_selector_family`:\n\t\tcase `writable_pure_selector_family`:\n\t\t\tkey = params[1] as Canonical\n\t\t\tvalue = useO(token, key)\n\t\t\tstate = withdraw(store, findInStore(store, token, key))\n\t\t\tfallback = params[2]\n\t}\n\n\tconst hasFallback = fallback !== undefined\n\tconst isErr = `catch` in state && state.catch.some((E) => value instanceof E)\n\n\tconst wrapperRef = useRef<{\n\t\tloading: boolean\n\t\tvalue: unknown\n\t\terror?: unknown\n\t}>({ loading: false, value: null as unknown })\n\tconst lastLoadedRef = useRef(\n\t\tfallback ?? (value instanceof Promise ? `LOADING` : value),\n\t)\n\n\tconst { current: lastLoaded } = lastLoadedRef\n\tlet { current: wrapper } = wrapperRef\n\n\tconst wasErr =\n\t\t`catch` in state && state.catch.some((E) => lastLoaded instanceof E)\n\n\tif (value instanceof Promise) {\n\t\tif (lastLoaded === `LOADING`) {\n\t\t\treturn `LOADING`\n\t\t}\n\t\tif (wasErr && hasFallback) {\n\t\t\twrapper = wrapperRef.current = {\n\t\t\t\tloading: true,\n\t\t\t\tvalue: fallback,\n\t\t\t\terror: lastLoaded,\n\t\t\t}\n\t\t} else {\n\t\t\twrapper = wrapperRef.current = { loading: true, value: lastLoaded }\n\t\t}\n\t} else {\n\t\tlastLoadedRef.current = value\n\t\tif (wrapper.loading === true) {\n\t\t\tif (isErr && hasFallback) {\n\t\t\t\twrapper = wrapperRef.current = {\n\t\t\t\t\tloading: false,\n\t\t\t\t\tvalue: fallback,\n\t\t\t\t\terror: value,\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twrapper = wrapperRef.current = { loading: false, value: value }\n\t\t\t}\n\t\t} else {\n\t\t\tif (isErr && hasFallback) {\n\t\t\t\twrapper.loading = false\n\t\t\t\twrapper.value = fallback\n\t\t\t\twrapper.error = value\n\t\t\t} else {\n\t\t\t\twrapper.loading = false\n\t\t\t\twrapper.value = value\n\t\t\t\tdelete wrapper.error\n\t\t\t}\n\t\t}\n\t}\n\n\treturn wrapper\n}\n","import type { TimelineToken } from \"atom.io\"\nimport { redo, undo } from \"atom.io\"\nimport { subscribeToTimeline, withdraw } from \"atom.io/internal\"\nimport { useContext, useId, useRef, useSyncExternalStore } from \"react\"\n\nimport { StoreContext } from \"./store-context\"\n\nexport type TimelineMeta = {\n\tat: number\n\tlength: number\n\tundo: () => void\n\tredo: () => void\n}\n\nexport function useTL(token: TimelineToken<any>): TimelineMeta {\n\tconst store = useContext(StoreContext)\n\tconst id = useId()\n\tconst timeline = withdraw(store, token)\n\tconst tokenRef = useRef(token)\n\tconst rebuildMeta = () => {\n\t\treturn {\n\t\t\tat: timeline.at,\n\t\t\tlength: timeline.history.length,\n\t\t\tundo: () => {\n\t\t\t\tundo(token)\n\t\t\t},\n\t\t\tredo: () => {\n\t\t\t\tredo(token)\n\t\t\t},\n\t\t}\n\t}\n\tconst meta = useRef<TimelineMeta>(rebuildMeta())\n\tconst retrieve = () => {\n\t\tif (\n\t\t\tmeta.current.at !== timeline?.at ||\n\t\t\tmeta.current.length !== timeline?.history.length ||\n\t\t\ttokenRef.current !== token\n\t\t) {\n\t\t\ttokenRef.current = token\n\t\t\tmeta.current = rebuildMeta()\n\t\t}\n\t\treturn meta.current\n\t}\n\treturn useSyncExternalStore<TimelineMeta>(\n\t\t(dispatch) => subscribeToTimeline(store, token, `use-tl:${id}`, dispatch),\n\t\tretrieve,\n\t\tretrieve,\n\t)\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["AtomIODevtools: React.FC<{ hideByDefault?: boolean }>","ElasticInput: ForwardRefExoticComponent<\n\tDetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> & {\n\t\twidthPadding?: number\n\t}\n>","VALID_NON_NUMBER_INTERPRETATIONS: Readonly<\n\tRecord<ValidNonNumber, number | null>\n>","DEFAULT_NUMBER_CONSTRAINTS: NumberConstraints","NumberInput: FC<NumberInputProps>","TextInput: FC<TextInputProps>","DefaultFallback: FC<FallbackProps>","DEFAULT_JSON_EDITOR_COMPONENTS: JsonEditorComponents","SubEditors: Record<\n\tkeyof JsonTypes,\n\tFC<JsonEditorProps_INTERNAL<any>>\n>"],"sources":["../../src/react-devtools/AtomIODevtools.tsx","../../src/react-devtools/elastic-input/ElasticInput.tsx","../../src/react-devtools/elastic-input/NumberInput.tsx","../../src/react-devtools/elastic-input/TextInput.tsx","../../src/react-devtools/error-boundary/DefaultFallback.tsx","../../src/react-devtools/error-boundary/ReactErrorBoundary.tsx","../../src/react-devtools/json-editor/default-components.tsx","../../src/react-devtools/json-editor/json-editor-internal.tsx","../../src/react-devtools/json-editor/developer-interface.tsx","../../src/react-devtools/json-editor/editors-by-type/utilities/cast-to-json.ts","../../src/react-devtools/json-editor/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":["AtomIODevtools: React.FC<{ hideByDefault?: boolean }>","ElasticInput: ForwardRefExoticComponent<\n\tDetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> & {\n\t\twidthPadding?: number\n\t}\n>","VALID_NON_NUMBER_INTERPRETATIONS: Readonly<\n\tRecord<ValidNonNumber, number | null>\n>","DEFAULT_NUMBER_CONSTRAINTS: NumberConstraints","NumberInput: FC<NumberInputProps>","TextInput: FC<TextInputProps>","DefaultFallback: FC<FallbackProps>","DEFAULT_JSON_EDITOR_COMPONENTS: JsonEditorComponents","SubEditors: Record<\n\tkeyof JsonTypes,\n\tFC<JsonEditorProps_INTERNAL<any>>\n>"],"sources":["../../src/react-devtools/AtomIODevtools.tsx","../../src/react-devtools/elastic-input/ElasticInput.tsx","../../src/react-devtools/elastic-input/NumberInput.tsx","../../src/react-devtools/elastic-input/TextInput.tsx","../../src/react-devtools/error-boundary/DefaultFallback.tsx","../../src/react-devtools/error-boundary/ReactErrorBoundary.tsx","../../src/react-devtools/json-editor/default-components.tsx","../../src/react-devtools/json-editor/json-editor-internal.tsx","../../src/react-devtools/json-editor/developer-interface.tsx","../../src/react-devtools/json-editor/editors-by-type/utilities/cast-to-json.ts","../../src/react-devtools/json-editor/index.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["mutexAtoms: AtomFamilyToken<boolean, Canonical>","usersInThisRoomIndex: MutableAtomToken<UList<string>>","roomIndex: MutableAtomToken<UList<string>>","DEFAULT_USER_IN_ROOM_META: UserInRoomMeta","usersInRooms: JoinToken<`room`, string, `user`, string, `1:n`>","usersInMyRoomView: ReadonlyPureSelectorFamilyToken<\n\tMutableAtomToken<UList<string>>[],\n\tstring\n>"],"sources":["../../src/realtime/employ-socket.ts","../../src/realtime/mutex-store.ts","../../src/realtime/realtime-continuity.ts","../../src/realtime/shared-room-store.ts","../../src/realtime/socket-interface.ts"],"sourcesContent":[],"mappings":";;;;;;;iBAGgB,uBAAuB,iCAAiC,WAC/D,iBACD,0BACgB,EAAE;;;cCFbA,YAAY,yBAAyB;;;cCcrC,2BAA2B,IAAI,GAAG,cAAc,YAAY,GAAG;EFf5E,GAAgB,CAAA,GAAA,EEgBC,CFhBD,EAAA,KAAA,EEgBW,CFhBX,CAAA,EAAA,IAAA;;AAAwD,KE4B5D,gBF5B4D,CAAA,UE4BjC,eF5BiC,CAAA,GAAA,CAAA,CAAA,GAAA;EAC/D,IAAA,EAAA,sBAAA;EACD,aAAA,EE4BQ,CF5BR;EACgB,SAAA,EE4BZ,mBF5BY,CE4BQ,aF5BR,CE4BsB,SF5BtB,CE4BgC,CF5BhC,CAAA,CAAA,EAAA,EE4BuC,OF5BvC,CAAA;CAAE;AAAA,KE+Bd,eAAA,GF/Bc;;;oBEkCP;EDpCnB,SAAaA,OAAqC,ECqC/B,gBDrC+B,CAAA,GAAA,CAAA,EAAzB;yBCsCD,iBAAiB,qBAAqB;;cAGjD,SAAA;EA3Bb,IAAa,EAAA,YAAA;EAA+B,UAAA,OAAA,EA8BxB,SA9BwB,CAAA,GAAA,CAAA,EAAA;EAAG,UAAA,OAAA,EA+B3B,gBA/B2B,CAAA,GAAA,CAAA,EAAA;EAA0B,UAAA,YAAA,EAgChD,gBAhCgD,CAAA,GAAA,CAAA,EAAA;EAAG,mBAAA,GAAA,EAAA,MAAA;EAC3D,UAAA,WAAA,CAAA,GAAA,EAAA,MAAA;EAAU,OAAA,QAAA,EAsCF,YAtCE,CAAA,MAAA,EAsCmB,eAtCnB,CAAA;EADa,OAAA,MAAA,CAAA,GAAA,EAAA,MAAA,EAAA,OAAA,EAAA,CAAA,KAAA,EA2CrB,SA3CqB,EAAA,GA2CP,SA3CO,CAAA,EA4CpC,eA5CoC;EAAqB,GAAA,CAAA,GAAA,KAAA,EAoDvC,SApDuC,CAAA,GAAA,CAAA,EAAA,CAAA,EAoDpB,SApDoB;EAAA,GAAA,CAAA,GAAA,IAAA,EAqDxC,gBArDwC,CAAA,GAAA,CAAA,EAAA,CAAA,EAqDd,SArDc;EAa7D,GAAY,CAA2B,UA0C3B,eA1C2B,CAAA,GAAA,CAAA,EAEvB,WAyCJ,CAzCI,SAyCM,eAzCN,CAAA,KAAA,EAAA,CAAA,GAyCiC,CAzCjC,GAAA,KAAA,EACwC,CAAA,MAAA,EA0C9C,eA1C8C,CA0C9B,CA1C8B,EAAA,GAAA,CAAA,EAAA,KAAA,EA2C/C,mBA3C+C,CA2C3B,QA3C2B,CA2ClB,SA3CkB,CA2CR,CA3CQ,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EA4CpD,SA5CoD;;AAAxB,KAgFpB,iBAAA,GAhFoB;EAA+B,GAAA,EAAA,MAAA;EAAnD,MAAA,EAAA,CAAA,KAAA,EAkFK,SAlFL,EAAA,GAkFmB,SAlFnB;CAAA;AAGA,iBAkFI,UAAA,CAlFJ,OAAA,EAkFwB,iBAlFxB,CAAA,EAkF4C,eAlF5C;;;cC7BCC,sBAAsB,iBAAiB;cAOvCC,WAAW,iBAAiB;KAO7B,cAAA;;;AHnBI,cGsBHC,yBHtBG,EGsBwB,cHtBxB;AAAuB,cGyB1BC,YHzB0B,EGyBZ,SHzBY,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,CAAA;AAAiC,cGkC3DC,iBHlC2D,EGkCxC,+BHlCwC,CGmCvE,gBHnCuE,CGmCtD,KHnCsD,CAAA,MAAA,CAAA,CAAA,EAAA,EAAA,MAAA,CAAA;;;KID5D,MAAA;;0CAE6B,IAAA,CAAK;6CAET,IAAA,CAAK;2CAEA,IAAA,CAAK;8CAEV,IAAA,CAAK;EJP1C,IAAgB,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,IAAA,EISgB,IAAA,CAAK,YJTrB,EAAA,EAAA,GAAA,IAAA;CAAuB"}
1
+ {"version":3,"file":"index.d.ts","names":["mutexAtoms: AtomFamilyToken<boolean, Canonical>","usersInThisRoomIndex: MutableAtomToken<UList<string>>","roomIndex: MutableAtomToken<UList<string>>","DEFAULT_USER_IN_ROOM_META: UserInRoomMeta","usersInRooms: JoinToken<`room`, string, `user`, string, `1:n`>","usersInMyRoomView: ReadonlyPureSelectorFamilyToken<\n\tMutableAtomToken<UList<string>>[],\n\tstring\n>"],"sources":["../../src/realtime/employ-socket.ts","../../src/realtime/mutex-store.ts","../../src/realtime/realtime-continuity.ts","../../src/realtime/shared-room-store.ts","../../src/realtime/socket-interface.ts"],"sourcesContent":[],"mappings":";;;;;;;iBAGgB,uBAAuB,iCAAiC,WAC/D,iBACD,0BACgB,EAAE;;;cCFbA,YAAY,yBAAyB;;;cCcrC,2BAA2B,IAAI,GAAG,cAAc,YAAY,GAAG;EFf5E,GAAgB,CAAA,GAAA,EEgBC,CFhBD,EAAA,KAAA,EEgBW,CFhBX,CAAA,EAAA,IAAA;;AAAwD,KE4B5D,gBF5B4D,CAAA,UE4BjC,eF5BiC,CAAA,GAAA,CAAA,CAAA,GAAA;EAC/D,IAAA,EAAA,sBAAA;EACD,aAAA,EE4BQ,CF5BR;EACgB,SAAA,EE4BZ,mBF5BY,CE4BQ,aF5BR,CE4BsB,SF5BtB,CE4BgC,CF5BhC,CAAA,CAAA,EAAA,EE4BuC,OF5BvC,CAAA;CAAE;AAAA,KE+Bd,eAAA,GF/Bc;;;oBEkCP;EDpCnB,SAAaA,OAAqC,ECqC/B,gBDrC+B,CAAA,GAAA,CAAzB,EAAA;yBCsCD,iBAAiB,qBAAqB;;cAGjD,SAAA;EA3Bb,IAAa,EAAA,YAAA;EAA+B,UAAA,OAAA,EA8BxB,SA9BwB,CAAA,GAAA,CAAA,EAAA;EAAG,UAAA,OAAA,EA+B3B,gBA/B2B,CAAA,GAAA,CAAA,EAAA;EAA0B,UAAA,YAAA,EAgChD,gBAhCgD,CAAA,GAAA,CAAA,EAAA;EAAG,mBAAA,GAAA,EAAA,MAAA;EAC3D,UAAA,WAAA,CAAA,GAAA,EAAA,MAAA;EAAU,OAAA,QAAA,EAsCF,YAtCE,CAAA,MAAA,EAsCmB,eAtCnB,CAAA;EADa,OAAA,MAAA,CAAA,GAAA,EAAA,MAAA,EAAA,OAAA,EAAA,CAAA,KAAA,EA2CrB,SA3CqB,EAAA,GA2CP,SA3CO,CAAA,EA4CpC,eA5CoC;EAAqB,GAAA,CAAA,GAAA,KAAA,EAoDvC,SApDuC,CAAA,GAAA,CAAA,EAAA,CAAA,EAoDpB,SApDoB;EAAA,GAAA,CAAA,GAAA,IAAA,EAqDxC,gBArDwC,CAAA,GAAA,CAAA,EAAA,CAAA,EAqDd,SArDc;EAa7D,GAAY,CAA2B,UA0C3B,eA1C2B,CAAA,GAAA,CAAA,EAEvB,WAyCJ,CAzCI,SAyCM,eAzCN,CAAA,KAAA,EAAA,CAAA,GAyCiC,CAzCjC,GAAA,KAAA,EACwC,CAAA,MAAA,EA0C9C,eA1C8C,CA0C9B,CA1C8B,EAAA,GAAA,CAAA,EAAA,KAAA,EA2C/C,mBA3C+C,CA2C3B,QA3C2B,CA2ClB,SA3CkB,CA2CR,CA3CQ,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EA4CpD,SA5CoD;;AAAxB,KAgFpB,iBAAA,GAhFoB;EAA+B,GAAA,EAAA,MAAA;EAAnD,MAAA,EAAA,CAAA,KAAA,EAkFK,SAlFL,EAAA,GAkFmB,SAlFnB;CAAA;AAGA,iBAkFI,UAAA,CAlFJ,OAAA,EAkFwB,iBAlFxB,CAAA,EAkF4C,eAlF5C;;;cC7BCC,sBAAsB,iBAAiB;cAOvCC,WAAW,iBAAiB;KAO7B,cAAA;;;AHnBI,cGsBHC,yBHtBG,EGsBwB,cHtBxB;AAAuB,cGyB1BC,YHzB0B,EGyBZ,SHzBY,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,CAAA;AAAiC,cGkC3DC,iBHlC2D,EGkCxC,+BHlCwC,CGmCvE,gBHnCuE,CGmCtD,KHnCsD,CAAA,MAAA,CAAA,CAAA,EAAA,EAAA,MAAA,CAAA;;;KID5D,MAAA;;0CAE6B,IAAA,CAAK;6CAET,IAAA,CAAK;2CAEA,IAAA,CAAK;8CAEV,IAAA,CAAK;EJP1C,IAAgB,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,IAAA,EISgB,IAAA,CAAK,YJTrB,EAAA,EAAA,GAAA,IAAA;CAAuB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atom.io",
3
- "version": "0.44.3",
3
+ "version": "0.44.4",
4
4
  "description": "Composable and testable reactive data library.",
5
5
  "homepage": "https://atom.io.fyi",
6
6
  "sideEffects": false,
@@ -60,24 +60,21 @@
60
60
  }
61
61
  },
62
62
  "devDependencies": {
63
- "@eslint/core": "0.17.0",
64
- "@storybook/addon-docs": "10.0.5",
65
- "@storybook/addon-onboarding": "10.0.5",
66
- "@storybook/react-vite": "10.0.5",
63
+ "@storybook/addon-docs": "10.0.6",
64
+ "@storybook/addon-onboarding": "10.0.6",
65
+ "@storybook/react-vite": "10.0.6",
67
66
  "@testing-library/react": "16.3.0",
68
- "@types/bun": "npm:bun-types@1.3.1",
69
67
  "@types/eslint": "9.6.1",
70
68
  "@types/estree": "1.0.8",
71
69
  "@types/http-proxy": "1.17.17",
72
- "@types/npmlog": "7.0.0",
73
70
  "@types/react": "19.2.2",
74
71
  "@types/tmp": "0.2.6",
75
- "@typescript-eslint/parser": "8.46.3",
76
- "@typescript-eslint/rule-tester": "8.46.3",
77
- "@typescript-eslint/utils": "8.46.3",
78
- "@typescript/native-preview": "7.0.0-dev.20251105.1",
79
- "@vitest/coverage-v8": "4.0.7",
80
- "@vitest/ui": "4.0.7",
72
+ "@typescript-eslint/parser": "8.46.4",
73
+ "@typescript-eslint/rule-tester": "8.46.4",
74
+ "@typescript-eslint/utils": "8.46.4",
75
+ "@typescript/native-preview": "7.0.0-dev.20251110.1",
76
+ "@vitest/coverage-v8": "4.0.8",
77
+ "@vitest/ui": "4.0.8",
81
78
  "arktype": "2.1.25",
82
79
  "concurrently": "9.2.1",
83
80
  "drizzle-kit": "0.31.6",
@@ -86,24 +83,22 @@
86
83
  "happy-dom": "20.0.10",
87
84
  "http-proxy": "1.18.1",
88
85
  "motion": "12.23.24",
89
- "npmlog": "7.0.1",
90
- "nyc": "17.1.0",
91
86
  "postgres": "3.4.7",
92
87
  "preact": "10.27.2",
93
88
  "react": "19.2.0",
94
89
  "react-dom": "19.2.0",
95
90
  "react-router-dom": "7.9.5",
96
- "recoverage": "0.1.12",
91
+ "recoverage": "0.1.13",
97
92
  "socket.io": "4.8.1",
98
93
  "socket.io-client": "4.8.1",
99
- "storybook": "10.0.5",
94
+ "storybook": "10.0.6",
100
95
  "tmp": "0.2.5",
101
- "tsdown": "0.16.0",
102
- "typescript": "5.9.3",
103
- "vite": "7.2.0",
96
+ "tsdown": "0.16.1",
97
+ "vite": "7.2.2",
104
98
  "vite-tsconfig-paths": "5.1.4",
105
- "vitest": "4.0.7",
106
- "break-check": "0.6.20"
99
+ "vitest": "4.0.8",
100
+ "break-check": "0.6.23",
101
+ "takua": "0.1.1"
107
102
  },
108
103
  "main": "./dist/main/index.js",
109
104
  "files": [
@@ -1,4 +1,5 @@
1
1
  export * from "./store-context"
2
+ export * from "./use-atomic-ref"
2
3
  export * from "./use-i"
3
4
  export * from "./use-json"
4
5
  export * from "./use-loadable"
@@ -0,0 +1,14 @@
1
+ import type { RegularAtomToken } from "atom.io"
2
+ import { setState } from "atom.io"
3
+ import { useEffect } from "react"
4
+
5
+ export function useAtomicRef<T, R extends { current: T | null }>(
6
+ token: RegularAtomToken<T | null>,
7
+ useRef: <TT>(initialValue: TT | null) => R,
8
+ ): R {
9
+ const ref = useRef(null)
10
+ useEffect(() => {
11
+ setState(token, ref.current)
12
+ }, [token])
13
+ return ref
14
+ }