atom.io 0.46.4 → 0.46.6

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 (46) hide show
  1. package/dist/realtime/index.d.ts +7 -6
  2. package/dist/realtime/index.d.ts.map +1 -1
  3. package/dist/realtime/index.js +19 -10
  4. package/dist/realtime/index.js.map +1 -1
  5. package/dist/realtime-client/index.d.ts +13 -13
  6. package/dist/realtime-client/index.d.ts.map +1 -1
  7. package/dist/realtime-client/index.js +10 -3
  8. package/dist/realtime-client/index.js.map +1 -1
  9. package/dist/realtime-react/index.d.ts +12 -3
  10. package/dist/realtime-react/index.d.ts.map +1 -1
  11. package/dist/realtime-react/index.js +26 -3
  12. package/dist/realtime-react/index.js.map +1 -1
  13. package/dist/realtime-server/index.d.ts +50 -42
  14. package/dist/realtime-server/index.d.ts.map +1 -1
  15. package/dist/realtime-server/index.js +132 -101
  16. package/dist/realtime-server/index.js.map +1 -1
  17. package/dist/realtime-testing/index.js +2 -2
  18. package/dist/realtime-testing/index.js.map +1 -1
  19. package/package.json +20 -19
  20. package/src/realtime/realtime-continuity.ts +2 -2
  21. package/src/realtime/shared-room-store.ts +38 -17
  22. package/src/realtime/socket-interface.ts +1 -1
  23. package/src/realtime-client/continuity/register-and-attempt-confirmed-update.ts +3 -1
  24. package/src/realtime-client/continuity/use-conceal-state.ts +2 -1
  25. package/src/realtime-client/pull-atom-family-member.ts +1 -1
  26. package/src/realtime-client/pull-atom.ts +1 -1
  27. package/src/realtime-client/pull-mutable-atom-family-member.ts +1 -1
  28. package/src/realtime-client/pull-mutable-atom.ts +1 -1
  29. package/src/realtime-client/pull-selector-family-member.ts +1 -1
  30. package/src/realtime-client/pull-selector-roots.ts +1 -1
  31. package/src/realtime-client/pull-selector.ts +1 -1
  32. package/src/realtime-client/push-state.ts +1 -1
  33. package/src/realtime-client/realtime-client-stores/client-main-store.ts +16 -3
  34. package/src/realtime-client/sync-continuity.ts +1 -2
  35. package/src/realtime-react/use-realtime-rooms.ts +54 -6
  36. package/src/realtime-server/continuity/provide-outcomes.ts +1 -1
  37. package/src/realtime-server/ipc-sockets/parent-socket.ts +11 -15
  38. package/src/realtime-server/provide-rooms.ts +64 -16
  39. package/src/realtime-server/realtime-family-provider.ts +51 -35
  40. package/src/realtime-server/realtime-mutable-family-provider.ts +50 -34
  41. package/src/realtime-server/realtime-mutable-provider.ts +4 -4
  42. package/src/realtime-server/realtime-state-provider.ts +7 -7
  43. package/src/realtime-server/realtime-state-receiver.ts +2 -2
  44. package/src/realtime-server/server-config.ts +20 -13
  45. package/src/realtime-server/server-socket-state.ts +3 -3
  46. package/src/realtime-testing/setup-realtime-test.tsx +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["RealtimeContext: React.Context<RealtimeReactStore>","RealtimeProvider: React.FC<{\n\tchildren: React.ReactNode\n\tsocket: Socket | null\n}>"],"sources":["../../src/realtime-react/realtime-context.tsx","../../src/realtime-react/use-realtime-service.ts","../../src/realtime-react/use-pull-atom.ts","../../src/realtime-react/use-pull-atom-family-member.ts","../../src/realtime-react/use-pull-mutable-atom.ts","../../src/realtime-react/use-pull-mutable-family-member.ts","../../src/realtime-react/use-pull-selector.ts","../../src/realtime-react/use-pull-selector-family-member.ts","../../src/realtime-react/use-push.ts","../../src/realtime-react/use-realtime-rooms.ts","../../src/realtime-react/use-sync-continuity.ts"],"sourcesContent":["import { useI } from \"atom.io/react\"\nimport * as RTC from \"atom.io/realtime-client\"\nimport * as React from \"react\"\nimport type { Socket } from \"socket.io-client\"\n\nexport type RealtimeServiceCounter = {\n\tconsumerCount: number\n\tdispose: () => void\n}\n\nexport type RealtimeReactStore = {\n\tsocket: Socket | null\n\tservices: Map<string, RealtimeServiceCounter> | null\n}\n\nexport const RealtimeContext: React.Context<RealtimeReactStore> =\n\tReact.createContext({\n\t\tsocket: null,\n\t\tservices: null,\n\t})\n\nexport const RealtimeProvider: React.FC<{\n\tchildren: React.ReactNode\n\tsocket: Socket | null\n}> = ({ children, socket }) => {\n\tconst services = React.useRef(\n\t\tnew Map<string, RealtimeServiceCounter>(),\n\t).current\n\tconst setMySocketKey = useI(RTC.mySocketKeyAtom)\n\tReact.useEffect(() => {\n\t\tsetMySocketKey(socket?.id ? `socket::${socket.id}` : undefined)\n\t\tsocket?.on(`connect`, () => {\n\t\t\tsetMySocketKey(socket?.id ? `socket::${socket.id}` : undefined)\n\t\t})\n\t\tsocket?.on(`disconnect`, () => {\n\t\t\tsetMySocketKey(undefined)\n\t\t})\n\t}, [socket, setMySocketKey])\n\treturn (\n\t\t<RealtimeContext.Provider value={{ socket, services }}>\n\t\t\t{children}\n\t\t</RealtimeContext.Provider>\n\t)\n}\n","import { useSingleEffect } from \"atom.io/react\"\nimport * as React from \"react\"\nimport type { Socket } from \"socket.io-client\"\n\nimport { RealtimeContext } from \"./realtime-context\"\n\nexport function useRealtimeService(\n\tkey: string,\n\tcreate: (socket: Socket) => () => void,\n): void {\n\tconst { socket, services } = React.useContext(RealtimeContext)\n\tuseSingleEffect(() => {\n\t\tlet service = services?.get(key)\n\t\tif (service) {\n\t\t\t++service.consumerCount\n\t\t} else if (socket) {\n\t\t\tconst dispose = create(socket)\n\t\t\tservice = { consumerCount: 1, dispose }\n\t\t\tservices?.set(key, service)\n\t\t}\n\t\treturn () => {\n\t\t\tif (service) {\n\t\t\t\t--service.consumerCount\n\t\t\t\tif (service.consumerCount === 0) {\n\t\t\t\t\tservice.dispose?.()\n\t\t\t\t\tservices?.delete(key)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [socket, key])\n}\n","import type * as AtomIO from \"atom.io\"\nimport type { Json } from \"atom.io/json\"\nimport { StoreContext, useO } from \"atom.io/react\"\nimport * as RTC from \"atom.io/realtime-client\"\nimport * as React from \"react\"\n\nimport { useRealtimeService } from \"./use-realtime-service\"\n\nexport function usePullAtom<J extends Json.Serializable>(\n\ttoken: AtomIO.RegularAtomToken<J>,\n): AtomIO.ViewOf<J> {\n\tconst store = React.useContext(StoreContext)\n\tuseRealtimeService(`pull:${token.key}`, (socket) =>\n\t\tRTC.pullAtom(store, socket, token),\n\t)\n\treturn useO(token)\n}\n","import type * as AtomIO from \"atom.io\"\nimport { findInStore } from \"atom.io/internal\"\nimport type { Canonical, Json } from \"atom.io/json\"\nimport { StoreContext, useO } from \"atom.io/react\"\nimport * as RTC from \"atom.io/realtime-client\"\nimport * as React from \"react\"\n\nimport { useRealtimeService } from \"./use-realtime-service\"\n\nexport function usePullAtomFamilyMember<\n\tJ extends Json.Serializable,\n\tK extends Canonical,\n>(\n\tfamily: AtomIO.RegularAtomFamilyToken<J, K>,\n\tsubKey: NoInfer<K>,\n): AtomIO.ViewOf<J> {\n\tconst store = React.useContext(StoreContext)\n\tconst token = findInStore(store, family, subKey)\n\tuseRealtimeService(`pull:${token.key}`, (socket) =>\n\t\tRTC.pullAtomFamilyMember(store, socket, family, subKey),\n\t)\n\treturn useO(token)\n}\n","import type * as AtomIO from \"atom.io\"\nimport type { Transceiver } from \"atom.io/internal\"\nimport { StoreContext, useO } from \"atom.io/react\"\nimport * as RTC from \"atom.io/realtime-client\"\nimport * as React from \"react\"\n\nimport { useRealtimeService } from \"./use-realtime-service\"\n\nexport function usePullMutable<T extends Transceiver<any, any, any>>(\n\ttoken: AtomIO.MutableAtomToken<T>,\n): T {\n\tconst store = React.useContext(StoreContext)\n\tuseRealtimeService(`pull:${token.key}`, (socket) =>\n\t\tRTC.pullMutableAtom(store, socket, token),\n\t)\n\treturn useO(token)\n}\n","import type * as AtomIO from \"atom.io\"\nimport type { Transceiver } from \"atom.io/internal\"\nimport { findInStore } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport { StoreContext, useO } from \"atom.io/react\"\nimport * as RTC from \"atom.io/realtime-client\"\nimport * as React from \"react\"\n\nimport { useRealtimeService } from \"./use-realtime-service\"\n\nexport function usePullMutableAtomFamilyMember<\n\tT extends Transceiver<any, any, any>,\n\tK extends Canonical,\n>(familyToken: AtomIO.MutableAtomFamilyToken<T, K>, key: NoInfer<K>): T {\n\tconst store = React.useContext(StoreContext)\n\tconst token = findInStore(store, familyToken, key)\n\tuseRealtimeService(`pull:${token.key}`, (socket) =>\n\t\tRTC.pullMutableAtomFamilyMember(store, socket, familyToken, key),\n\t)\n\treturn useO(token)\n}\n","import type * as AtomIO from \"atom.io\"\nimport type { Json } from \"atom.io/json\"\nimport { StoreContext, useO } from \"atom.io/react\"\nimport * as RTC from \"atom.io/realtime-client\"\nimport * as React from \"react\"\n\nimport { useRealtimeService } from \"./use-realtime-service\"\n\nexport function usePullSelector<J extends Json.Serializable>(\n\ttoken: AtomIO.SelectorToken<J>,\n): AtomIO.ViewOf<J> {\n\tconst store = React.useContext(StoreContext)\n\tuseRealtimeService(`pull:${token.key}`, (socket) =>\n\t\tRTC.pullSelector(store, socket, token),\n\t)\n\treturn useO(token)\n}\n","import type * as AtomIO from \"atom.io\"\nimport { findInStore } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport { StoreContext, useO } from \"atom.io/react\"\nimport * as RTC from \"atom.io/realtime-client\"\nimport * as React from \"react\"\n\nimport { useRealtimeService } from \"./use-realtime-service\"\n\nexport function usePullSelectorFamilyMember<T, K extends Canonical>(\n\tfamilyToken: AtomIO.SelectorFamilyToken<T, K>,\n\tkey: NoInfer<K>,\n): AtomIO.ViewOf<T> {\n\tconst store = React.useContext(StoreContext)\n\tconst token = findInStore(store, familyToken, key)\n\tuseRealtimeService(`pull:${token.key}`, (socket) =>\n\t\tRTC.pullSelectorFamilyMember(store, socket, familyToken, key),\n\t)\n\treturn useO(token)\n}\n","import type * as AtomIO from \"atom.io\"\nimport type { Json } from \"atom.io/json\"\nimport { StoreContext, useI, useO } from \"atom.io/react\"\nimport * as RT from \"atom.io/realtime\"\nimport * as RTC from \"atom.io/realtime-client\"\nimport * as React from \"react\"\n\nimport { useRealtimeService } from \"./use-realtime-service\"\n\nexport function usePush<J extends Json.Serializable>(\n\ttoken: AtomIO.WritableToken<J>,\n): (<New extends J>(next: New | ((old: J) => New)) => void) | null {\n\tconst store = React.useContext(StoreContext)\n\tuseRealtimeService(`push:${token.key}`, (socket) =>\n\t\tRTC.pushState(store, socket, token),\n\t)\n\tconst mutex = useO(RT.mutexAtoms, token.key)\n\tconst setter = useI(token)\n\n\treturn mutex ? setter : null\n}\n","import type { RoomSocketInterface } from \"atom.io/realtime\"\nimport * as React from \"react\"\nimport type { Socket } from \"socket.io-client\"\n\nimport { RealtimeContext } from \"./realtime-context\"\n\nexport function useRealtimeRooms<RoomNames extends string>(): Socket<\n\t{},\n\tRoomSocketInterface<RoomNames>\n> {\n\tconst { socket } = React.useContext(RealtimeContext)\n\treturn socket as Socket<{}, RoomSocketInterface<RoomNames>>\n}\n","import { StoreContext } from \"atom.io/react\"\nimport type { ContinuityToken } from \"atom.io/realtime\"\nimport { syncContinuity } from \"atom.io/realtime-client\"\nimport * as React from \"react\"\n\nimport { useRealtimeService } from \"./use-realtime-service\"\n\nexport function useSyncContinuity(token: ContinuityToken): void {\n\tconst store = React.useContext(StoreContext)\n\tuseRealtimeService(`tx-sync:${token.key}`, (socket) => {\n\t\treturn syncContinuity(store, socket, token)\n\t})\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["RealtimeContext: React.Context<RealtimeReactStore>","RealtimeProvider: React.FC<{\n\tchildren: React.ReactNode\n\tsocket: Socket | null\n}>","myRoomKey: RoomKey | undefined","roomKey"],"sources":["../../src/realtime-react/realtime-context.tsx","../../src/realtime-react/use-realtime-service.ts","../../src/realtime-react/use-pull-atom.ts","../../src/realtime-react/use-pull-atom-family-member.ts","../../src/realtime-react/use-pull-mutable-atom.ts","../../src/realtime-react/use-pull-mutable-family-member.ts","../../src/realtime-react/use-pull-selector.ts","../../src/realtime-react/use-pull-selector-family-member.ts","../../src/realtime-react/use-push.ts","../../src/realtime-react/use-realtime-rooms.ts","../../src/realtime-react/use-sync-continuity.ts"],"sourcesContent":["import { useI } from \"atom.io/react\"\nimport * as RTC from \"atom.io/realtime-client\"\nimport * as React from \"react\"\nimport type { Socket } from \"socket.io-client\"\n\nexport type RealtimeServiceCounter = {\n\tconsumerCount: number\n\tdispose: () => void\n}\n\nexport type RealtimeReactStore = {\n\tsocket: Socket | null\n\tservices: Map<string, RealtimeServiceCounter> | null\n}\n\nexport const RealtimeContext: React.Context<RealtimeReactStore> =\n\tReact.createContext({\n\t\tsocket: null,\n\t\tservices: null,\n\t})\n\nexport const RealtimeProvider: React.FC<{\n\tchildren: React.ReactNode\n\tsocket: Socket | null\n}> = ({ children, socket }) => {\n\tconst services = React.useRef(\n\t\tnew Map<string, RealtimeServiceCounter>(),\n\t).current\n\tconst setMySocketKey = useI(RTC.mySocketKeyAtom)\n\tReact.useEffect(() => {\n\t\tsetMySocketKey(socket?.id ? `socket::${socket.id}` : undefined)\n\t\tsocket?.on(`connect`, () => {\n\t\t\tsetMySocketKey(socket?.id ? `socket::${socket.id}` : undefined)\n\t\t})\n\t\tsocket?.on(`disconnect`, () => {\n\t\t\tsetMySocketKey(undefined)\n\t\t})\n\t}, [socket, setMySocketKey])\n\treturn (\n\t\t<RealtimeContext.Provider value={{ socket, services }}>\n\t\t\t{children}\n\t\t</RealtimeContext.Provider>\n\t)\n}\n","import { useSingleEffect } from \"atom.io/react\"\nimport * as React from \"react\"\nimport type { Socket } from \"socket.io-client\"\n\nimport { RealtimeContext } from \"./realtime-context\"\n\nexport function useRealtimeService(\n\tkey: string,\n\tcreate: (socket: Socket) => () => void,\n): void {\n\tconst { socket, services } = React.useContext(RealtimeContext)\n\tuseSingleEffect(() => {\n\t\tlet service = services?.get(key)\n\t\tif (service) {\n\t\t\t++service.consumerCount\n\t\t} else if (socket) {\n\t\t\tconst dispose = create(socket)\n\t\t\tservice = { consumerCount: 1, dispose }\n\t\t\tservices?.set(key, service)\n\t\t}\n\t\treturn () => {\n\t\t\tif (service) {\n\t\t\t\t--service.consumerCount\n\t\t\t\tif (service.consumerCount === 0) {\n\t\t\t\t\tservice.dispose?.()\n\t\t\t\t\tservices?.delete(key)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [socket, key])\n}\n","import type * as AtomIO from \"atom.io\"\nimport type { Json } from \"atom.io/json\"\nimport { StoreContext, useO } from \"atom.io/react\"\nimport * as RTC from \"atom.io/realtime-client\"\nimport * as React from \"react\"\n\nimport { useRealtimeService } from \"./use-realtime-service\"\n\nexport function usePullAtom<J extends Json.Serializable>(\n\ttoken: AtomIO.RegularAtomToken<J>,\n): AtomIO.ViewOf<J> {\n\tconst store = React.useContext(StoreContext)\n\tuseRealtimeService(`pull:${token.key}`, (socket) =>\n\t\tRTC.pullAtom(store, socket, token),\n\t)\n\treturn useO(token)\n}\n","import type * as AtomIO from \"atom.io\"\nimport { findInStore } from \"atom.io/internal\"\nimport type { Canonical, Json } from \"atom.io/json\"\nimport { StoreContext, useO } from \"atom.io/react\"\nimport * as RTC from \"atom.io/realtime-client\"\nimport * as React from \"react\"\n\nimport { useRealtimeService } from \"./use-realtime-service\"\n\nexport function usePullAtomFamilyMember<\n\tJ extends Json.Serializable,\n\tK extends Canonical,\n>(\n\tfamily: AtomIO.RegularAtomFamilyToken<J, K>,\n\tsubKey: NoInfer<K>,\n): AtomIO.ViewOf<J> {\n\tconst store = React.useContext(StoreContext)\n\tconst token = findInStore(store, family, subKey)\n\tuseRealtimeService(`pull:${token.key}`, (socket) =>\n\t\tRTC.pullAtomFamilyMember(store, socket, family, subKey),\n\t)\n\treturn useO(token)\n}\n","import type * as AtomIO from \"atom.io\"\nimport type { Transceiver } from \"atom.io/internal\"\nimport { StoreContext, useO } from \"atom.io/react\"\nimport * as RTC from \"atom.io/realtime-client\"\nimport * as React from \"react\"\n\nimport { useRealtimeService } from \"./use-realtime-service\"\n\nexport function usePullMutable<T extends Transceiver<any, any, any>>(\n\ttoken: AtomIO.MutableAtomToken<T>,\n): T {\n\tconst store = React.useContext(StoreContext)\n\tuseRealtimeService(`pull:${token.key}`, (socket) =>\n\t\tRTC.pullMutableAtom(store, socket, token),\n\t)\n\treturn useO(token)\n}\n","import type * as AtomIO from \"atom.io\"\nimport type { Transceiver } from \"atom.io/internal\"\nimport { findInStore } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport { StoreContext, useO } from \"atom.io/react\"\nimport * as RTC from \"atom.io/realtime-client\"\nimport * as React from \"react\"\n\nimport { useRealtimeService } from \"./use-realtime-service\"\n\nexport function usePullMutableAtomFamilyMember<\n\tT extends Transceiver<any, any, any>,\n\tK extends Canonical,\n>(familyToken: AtomIO.MutableAtomFamilyToken<T, K>, key: NoInfer<K>): T {\n\tconst store = React.useContext(StoreContext)\n\tconst token = findInStore(store, familyToken, key)\n\tuseRealtimeService(`pull:${token.key}`, (socket) =>\n\t\tRTC.pullMutableAtomFamilyMember(store, socket, familyToken, key),\n\t)\n\treturn useO(token)\n}\n","import type * as AtomIO from \"atom.io\"\nimport type { Json } from \"atom.io/json\"\nimport { StoreContext, useO } from \"atom.io/react\"\nimport * as RTC from \"atom.io/realtime-client\"\nimport * as React from \"react\"\n\nimport { useRealtimeService } from \"./use-realtime-service\"\n\nexport function usePullSelector<J extends Json.Serializable>(\n\ttoken: AtomIO.SelectorToken<J>,\n): AtomIO.ViewOf<J> {\n\tconst store = React.useContext(StoreContext)\n\tuseRealtimeService(`pull:${token.key}`, (socket) =>\n\t\tRTC.pullSelector(store, socket, token),\n\t)\n\treturn useO(token)\n}\n","import type * as AtomIO from \"atom.io\"\nimport { findInStore } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport { StoreContext, useO } from \"atom.io/react\"\nimport * as RTC from \"atom.io/realtime-client\"\nimport * as React from \"react\"\n\nimport { useRealtimeService } from \"./use-realtime-service\"\n\nexport function usePullSelectorFamilyMember<T, K extends Canonical>(\n\tfamilyToken: AtomIO.SelectorFamilyToken<T, K>,\n\tkey: NoInfer<K>,\n): AtomIO.ViewOf<T> {\n\tconst store = React.useContext(StoreContext)\n\tconst token = findInStore(store, familyToken, key)\n\tuseRealtimeService(`pull:${token.key}`, (socket) =>\n\t\tRTC.pullSelectorFamilyMember(store, socket, familyToken, key),\n\t)\n\treturn useO(token)\n}\n","import type * as AtomIO from \"atom.io\"\nimport type { Json } from \"atom.io/json\"\nimport { StoreContext, useI, useO } from \"atom.io/react\"\nimport * as RT from \"atom.io/realtime\"\nimport * as RTC from \"atom.io/realtime-client\"\nimport * as React from \"react\"\n\nimport { useRealtimeService } from \"./use-realtime-service\"\n\nexport function usePush<J extends Json.Serializable>(\n\ttoken: AtomIO.WritableToken<J>,\n): (<New extends J>(next: New | ((old: J) => New)) => void) | null {\n\tconst store = React.useContext(StoreContext)\n\tuseRealtimeService(`push:${token.key}`, (socket) =>\n\t\tRTC.pushState(store, socket, token),\n\t)\n\tconst mutex = useO(RT.mutexAtoms, token.key)\n\tconst setter = useI(token)\n\n\treturn mutex ? setter : null\n}\n","import type { MutableAtomToken } from \"atom.io\"\nimport { findInStore, getInternalRelationsFromStore } from \"atom.io/internal\"\nimport { StoreContext, useO } from \"atom.io/react\"\nimport type { RoomKey, RoomSocketInterface, UserKey } from \"atom.io/realtime\"\nimport { ownersOfRooms, roomKeysAtom, usersInRooms } from \"atom.io/realtime\"\nimport type { UList } from \"atom.io/transceivers/u-list\"\nimport * as React from \"react\"\nimport type { Socket } from \"socket.io-client\"\n\nimport { RealtimeContext } from \"./realtime-context\"\nimport { usePullMutable } from \"./use-pull-mutable-atom\"\nimport { usePullMutableAtomFamilyMember } from \"./use-pull-mutable-family-member\"\n\nexport type RealtimeRoomsTools = {\n\tsocket: Socket<{}, RoomSocketInterface<string>>\n\tmyRoomKey: RoomKey | undefined\n\tmyMutualsAtom: MutableAtomToken<UList<UserKey>>\n\tmyOwnedRoomsAtom: MutableAtomToken<UList<RoomKey>>\n\tallRoomKeysAtom: MutableAtomToken<UList<RoomKey>>\n}\nexport function useRealtimeRooms<RoomNames extends string>(\n\tuserKey: UserKey,\n): RealtimeRoomsTools {\n\tconst store = React.useContext(StoreContext)\n\tconst { socket } = React.useContext(RealtimeContext)\n\tusePullMutable(roomKeysAtom)\n\n\tconst [userKeysFamily, roomKeysFamily] = getInternalRelationsFromStore(\n\t\tstore,\n\t\tusersInRooms,\n\t\t`split`,\n\t)\n\n\tusePullMutableAtomFamilyMember(roomKeysFamily, userKey)\n\tconst myJoinedRoomKeys = useO(roomKeysFamily, userKey)\n\tlet myRoomKey: RoomKey | undefined\n\tfor (const roomKey of myJoinedRoomKeys) {\n\t\tmyRoomKey = roomKey\n\t\tbreak\n\t}\n\n\tconst roomKey = myRoomKey ?? `room::$_NONE_$`\n\tconst myMutualsAtom = findInStore(store, userKeysFamily, roomKey)\n\tusePullMutableAtomFamilyMember(userKeysFamily, roomKey)\n\n\tconst [ownedRoomsFamily] = getInternalRelationsFromStore(\n\t\tstore,\n\t\townersOfRooms,\n\t\t`split`,\n\t)\n\tconst myOwnedRoomsAtom = findInStore(store, ownedRoomsFamily, userKey)\n\tusePullMutableAtomFamilyMember(ownedRoomsFamily, userKey)\n\n\treturn {\n\t\tsocket: socket as Socket<{}, RoomSocketInterface<RoomNames>>,\n\t\tmyRoomKey,\n\t\tallRoomKeysAtom: roomKeysAtom,\n\t\tmyMutualsAtom,\n\t\tmyOwnedRoomsAtom,\n\t}\n}\n","import { StoreContext } from \"atom.io/react\"\nimport type { ContinuityToken } from \"atom.io/realtime\"\nimport { syncContinuity } from \"atom.io/realtime-client\"\nimport * as React from \"react\"\n\nimport { useRealtimeService } from \"./use-realtime-service\"\n\nexport function useSyncContinuity(token: ContinuityToken): void {\n\tconst store = React.useContext(StoreContext)\n\tuseRealtimeService(`tx-sync:${token.key}`, (socket) => {\n\t\treturn syncContinuity(store, socket, token)\n\t})\n}\n"],"mappings":"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"}
@@ -83,7 +83,7 @@ declare class ParentSocket<I extends Events & { [id in string as `relay::${id}`]
83
83
  protected incompleteData: string;
84
84
  protected unprocessedEvents: string[];
85
85
  protected relays: Map<string, SubjectSocket<any, any>>;
86
- protected relayServices: ((socket: SubjectSocket<any, any>, userKey: UserKey) => (() => void) | void)[];
86
+ protected initRelay: (socket: SubjectSocket<any, any>, userKey: UserKey) => (() => void) | void;
87
87
  proc: P;
88
88
  id: string;
89
89
  protected log(...args: StderrLog): void;
@@ -96,37 +96,6 @@ declare class ParentSocket<I extends Events & { [id in string as `relay::${id}`]
96
96
  receiveRelay(attachServices: (socket: SubjectSocket<any, any>, userKey: UserKey) => (() => void) | void): void;
97
97
  }
98
98
  //#endregion
99
- //#region src/realtime-server/server-config.d.ts
100
- type ServerConfig = {
101
- socket: Socket;
102
- userKey: UserKey;
103
- store?: RootStore;
104
- };
105
- /** Socket Handshake details--taken from socket.io */
106
- type Handshake = {
107
- /** The headers sent as part of the handshake */
108
- headers: IncomingHttpHeaders;
109
- /** The date of creation (as string) */
110
- time: string;
111
- /** The ip of the client */
112
- address: string;
113
- /** Whether the connection is cross-domain */
114
- xdomain: boolean;
115
- /** Whether the connection is secure */
116
- secure: boolean;
117
- /** The date of creation (as unix timestamp) */
118
- issued: number;
119
- /** The request URL string */
120
- url: string;
121
- /** The query object */
122
- query: ParsedUrlQuery;
123
- /** The auth object */
124
- auth: {
125
- [key: string]: any;
126
- };
127
- };
128
- declare function realtime(server: Server, auth: (handshake: Handshake) => Loadable<Error | UserKey>, onConnect: (config: ServerConfig) => Loadable<() => Loadable<void>>, store?: RootStore): () => Promise<void>;
129
- //#endregion
130
99
  //#region src/realtime-server/provide-rooms.d.ts
131
100
  type RoomMap = Map<string, ChildSocket<any, any, ChildProcessWithoutNullStreams>>;
132
101
  declare global {
@@ -174,6 +143,9 @@ type ProvideRoomsConfig<RoomNames extends string> = {
174
143
  resolveRoomScript: (path: RoomNames) => [string, string[]];
175
144
  roomNames: RoomNames[];
176
145
  roomTimeLimit?: number;
146
+ userKey: UserKey;
147
+ store: RootStore;
148
+ socket: Socket;
177
149
  };
178
150
  declare function provideRooms<RoomNames extends string>({
179
151
  store,
@@ -181,29 +153,29 @@ declare function provideRooms<RoomNames extends string>({
181
153
  resolveRoomScript,
182
154
  roomNames,
183
155
  userKey
184
- }: ProvideRoomsConfig<RoomNames> & ServerConfig): () => void;
156
+ }: ProvideRoomsConfig<RoomNames>): () => void;
185
157
  //#endregion
186
158
  //#region src/realtime-server/realtime-family-provider.d.ts
187
159
  type FamilyProvider = ReturnType<typeof realtimeAtomFamilyProvider>;
188
160
  declare function realtimeAtomFamilyProvider({
189
161
  socket,
190
- userKey,
162
+ consumer,
191
163
  store
192
- }: ServerConfig): <J extends Json.Serializable, K extends Canonical>(family: AtomIO.RegularAtomFamilyToken<J, K>, index: AtomIO.ReadableToken<Iterable<NoInfer<K>>>) => () => void;
164
+ }: ServerConfig): <J extends Json.Serializable, K extends Canonical>(family: AtomIO.RegularAtomFamilyToken<J, K>, index: AtomIO.ReadableToken<Iterable<NoInfer<K>>> | Iterable<NoInfer<K>>) => () => void;
193
165
  //#endregion
194
166
  //#region src/realtime-server/realtime-mutable-family-provider.d.ts
195
167
  type MutableFamilyProvider = ReturnType<typeof realtimeMutableFamilyProvider>;
196
168
  declare function realtimeMutableFamilyProvider({
197
169
  socket,
198
- userKey,
170
+ consumer,
199
171
  store
200
- }: ServerConfig): <T extends Transceiver<any, any, any>, K extends Canonical>(family: AtomIO.MutableAtomFamilyToken<T, K>, index: AtomIO.ReadableToken<Iterable<NoInfer<K>>>) => () => void;
172
+ }: ServerConfig): <T extends Transceiver<any, any, any>, K extends Canonical>(family: AtomIO.MutableAtomFamilyToken<T, K>, index: AtomIO.ReadableToken<Iterable<NoInfer<K>>> | Iterable<NoInfer<K>>) => () => void;
201
173
  //#endregion
202
174
  //#region src/realtime-server/realtime-mutable-provider.d.ts
203
175
  type MutableProvider = ReturnType<typeof realtimeMutableProvider>;
204
176
  declare function realtimeMutableProvider({
205
177
  socket,
206
- userKey,
178
+ consumer,
207
179
  store
208
180
  }: ServerConfig): <Core extends Transceiver<any, Json.Serializable, Json.Serializable>>(token: AtomIO.MutableAtomToken<Core>) => () => void;
209
181
  //#endregion
@@ -211,7 +183,7 @@ declare function realtimeMutableProvider({
211
183
  type StateProvider = ReturnType<typeof realtimeStateProvider>;
212
184
  declare function realtimeStateProvider({
213
185
  socket,
214
- userKey,
186
+ consumer,
215
187
  store
216
188
  }: ServerConfig): <C extends Json.Serializable, S extends C>(clientToken: AtomIO.WritableToken<C>, serverData?: AtomIO.ReadableToken<S> | S) => () => void;
217
189
  //#endregion
@@ -219,10 +191,46 @@ declare function realtimeStateProvider({
219
191
  type StateReceiver = ReturnType<typeof realtimeStateReceiver>;
220
192
  declare function realtimeStateReceiver({
221
193
  socket,
222
- userKey,
194
+ consumer,
223
195
  store
224
196
  }: ServerConfig): <S extends Json.Serializable, C extends S>(schema: StandardSchemaV1<unknown, C>, clientToken: WritableToken<C>, serverToken?: WritableToken<S>) => () => void;
225
197
  //#endregion
198
+ //#region src/realtime-server/server-config.d.ts
199
+ type ServerConfig = {
200
+ socket: Socket;
201
+ consumer: RoomKey | UserKey;
202
+ store?: RootStore;
203
+ };
204
+ type UserServerConfig = {
205
+ socket: Socket;
206
+ consumer: UserKey;
207
+ store?: RootStore;
208
+ };
209
+ /** Socket Handshake details--taken from socket.io */
210
+ type Handshake = {
211
+ /** The headers sent as part of the handshake */
212
+ headers: IncomingHttpHeaders;
213
+ /** The date of creation (as string) */
214
+ time: string;
215
+ /** The ip of the client */
216
+ address: string;
217
+ /** Whether the connection is cross-domain */
218
+ xdomain: boolean;
219
+ /** Whether the connection is secure */
220
+ secure: boolean;
221
+ /** The date of creation (as unix timestamp) */
222
+ issued: number;
223
+ /** The request URL string */
224
+ url: string;
225
+ /** The query object */
226
+ query: ParsedUrlQuery;
227
+ /** The auth object */
228
+ auth: {
229
+ [key: string]: any;
230
+ };
231
+ };
232
+ declare function realtime(server: Server, auth: (handshake: Handshake) => Loadable<Error | UserKey>, onConnect: (config: UserServerConfig) => Loadable<() => Loadable<void>>, store?: RootStore): () => Promise<void>;
233
+ //#endregion
226
234
  //#region src/realtime-server/server-socket-state.d.ts
227
235
  type SocketSystemHierarchy = Hierarchy<[{
228
236
  above: `root`;
@@ -230,8 +238,8 @@ type SocketSystemHierarchy = Hierarchy<[{
230
238
  }]>;
231
239
  declare const socketAtoms: RegularAtomFamilyToken<Socket | null, SocketKey>;
232
240
  declare const socketKeysAtom: MutableAtomToken<UList<SocketKey>>;
233
- declare const userKeysAtom: MutableAtomToken<UList<UserKey>>;
241
+ declare const onlineUsersAtom: MutableAtomToken<UList<UserKey>>;
234
242
  declare const usersOfSockets: JoinToken<`user`, UserKey, `socket`, SocketKey, `1:1`>;
235
243
  //#endregion
236
- export { ChildProcess, ChildSocket, CustomSocket, DestroyRoomConfig, EventBuffer, EventPayload, Events, FamilyProvider, Handshake, MutableFamilyProvider, MutableProvider, PROOF_OF_LIFE_SIGNAL, ParentProcess, ParentSocket, ProvideContinuity, ProvideEnterAndExitConfig, ProvideRoomsConfig, ROOMS, RoomMap, ServerConfig, SocketSystemHierarchy, SpawnRoomConfig, StateProvider, StateReceiver, StderrLog, SubjectSocket, destroyRoom, prepareToProvideContinuity, provideEnterAndExit, provideRooms, realtime, realtimeAtomFamilyProvider, realtimeMutableFamilyProvider, realtimeMutableProvider, realtimeStateProvider, realtimeStateReceiver, roomMeta, socketAtoms, socketKeysAtom, spawnRoom, userKeysAtom, usersOfSockets };
244
+ export { ChildProcess, ChildSocket, CustomSocket, DestroyRoomConfig, EventBuffer, EventPayload, Events, FamilyProvider, Handshake, MutableFamilyProvider, MutableProvider, PROOF_OF_LIFE_SIGNAL, ParentProcess, ParentSocket, ProvideContinuity, ProvideEnterAndExitConfig, ProvideRoomsConfig, ROOMS, RoomMap, ServerConfig, SocketSystemHierarchy, SpawnRoomConfig, StateProvider, StateReceiver, StderrLog, SubjectSocket, UserServerConfig, destroyRoom, onlineUsersAtom, prepareToProvideContinuity, provideEnterAndExit, provideRooms, realtime, realtimeAtomFamilyProvider, realtimeMutableFamilyProvider, realtimeMutableProvider, realtimeStateProvider, realtimeStateReceiver, roomMeta, socketAtoms, socketKeysAtom, spawnRoom, usersOfSockets };
237
245
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["ATOM_IO_REALTIME_SERVER_ROOMS: RoomMap","ROOMS: RoomMap","roomMeta: { count: number }","socketAtoms: RegularAtomFamilyToken<Socket | null, SocketKey>","socketKeysAtom: MutableAtomToken<UList<SocketKey>>","userKeysAtom: MutableAtomToken<UList<UserKey>>","usersOfSockets: JoinToken<\n\t`user`,\n\tUserKey,\n\t`socket`,\n\tSocketKey,\n\t`1:1`\n>"],"sources":["../../src/realtime-server/continuity/provide-continuity.ts","../../src/realtime-server/ipc-sockets/custom-socket.ts","../../src/realtime-server/ipc-sockets/child-socket.ts","../../src/realtime-server/ipc-sockets/parent-socket.ts","../../src/realtime-server/server-config.ts","../../src/realtime-server/provide-rooms.ts","../../src/realtime-server/realtime-family-provider.ts","../../src/realtime-server/realtime-mutable-family-provider.ts","../../src/realtime-server/realtime-mutable-provider.ts","../../src/realtime-server/realtime-state-provider.ts","../../src/realtime-server/realtime-state-receiver.ts","../../src/realtime-server/server-socket-state.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":["ATOM_IO_REALTIME_SERVER_ROOMS: RoomMap","ROOMS: RoomMap","roomMeta: { count: number }","socketAtoms: RegularAtomFamilyToken<Socket | null, SocketKey>","socketKeysAtom: MutableAtomToken<UList<SocketKey>>","onlineUsersAtom: MutableAtomToken<UList<UserKey>>","usersOfSockets: JoinToken<\n\t`user`,\n\tUserKey,\n\t`socket`,\n\tSocketKey,\n\t`1:1`\n>"],"sources":["../../src/realtime-server/continuity/provide-continuity.ts","../../src/realtime-server/ipc-sockets/custom-socket.ts","../../src/realtime-server/ipc-sockets/child-socket.ts","../../src/realtime-server/ipc-sockets/parent-socket.ts","../../src/realtime-server/provide-rooms.ts","../../src/realtime-server/realtime-family-provider.ts","../../src/realtime-server/realtime-mutable-family-provider.ts","../../src/realtime-server/realtime-mutable-provider.ts","../../src/realtime-server/realtime-state-provider.ts","../../src/realtime-server/realtime-state-receiver.ts","../../src/realtime-server/server-config.ts","../../src/realtime-server/server-socket-state.ts"],"sourcesContent":[],"mappings":"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"}