atom.io 0.46.0 → 0.46.2
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.
- package/dist/introspection/index.d.ts.map +1 -1
- package/dist/realtime/index.d.ts +6 -3
- package/dist/realtime/index.d.ts.map +1 -1
- package/dist/realtime/index.js +9 -1
- package/dist/realtime/index.js.map +1 -1
- package/dist/realtime-server/index.d.ts +73 -50
- package/dist/realtime-server/index.d.ts.map +1 -1
- package/dist/realtime-server/index.js +222 -182
- package/dist/realtime-server/index.js.map +1 -1
- package/dist/realtime-testing/index.d.ts +1 -2
- package/dist/realtime-testing/index.d.ts.map +1 -1
- package/dist/realtime-testing/index.js +31 -53
- package/dist/realtime-testing/index.js.map +1 -1
- package/package.json +1 -1
- package/src/realtime/cast-socket.ts +1 -0
- package/src/realtime/shared-room-store.ts +15 -0
- package/src/realtime/socket-interface.ts +5 -1
- package/src/realtime-server/index.ts +3 -2
- package/src/realtime-server/ipc-sockets/custom-socket.ts +18 -2
- package/src/realtime-server/ipc-sockets/parent-socket.ts +1 -1
- package/src/realtime-server/{realtime-server-stores/provide-rooms.ts → provide-rooms.ts} +32 -57
- package/src/realtime-server/realtime-state-provider.ts +5 -3
- package/src/realtime-server/realtime-state-receiver.ts +19 -3
- package/src/realtime-server/server-config.ts +113 -1
- package/src/realtime-server/{realtime-server-stores/server-user-store.ts → server-socket-state.ts} +1 -8
- package/src/realtime-testing/setup-realtime-test.tsx +38 -83
- package/src/realtime-server/realtime-server-stores/index.ts +0 -3
- package/src/realtime-server/realtime-server-stores/provide-identity.ts +0 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["primitiveRefinery: Refinery<{\n\tnumber: (input: unknown) => input is number\n\tstring: (input: unknown) => input is string\n\tboolean: (input: unknown) => input is boolean\n\tnull: (input: unknown) => input is null\n}>","jsonTreeRefinery: Refinery<{\n\tobject: (input: unknown) => input is Json.Tree.Object\n\tarray: (input: unknown) => input is Json.Tree.Array\n}>","jsonRefinery: Refinery<{\n\tobject: (input: unknown) => input is Json.Tree.Object\n\tarray: (input: unknown) => input is Json.Tree.Array\n\tnumber: (input: unknown) => input is number\n\tstring: (input: unknown) => input is string\n\tboolean: (input: unknown) => input is boolean\n\tnull: (input: unknown) => input is null\n}>","prettyJson: Differ<\n\t{\n\t\tnumber: (input: unknown) => input is number\n\t\tstring: (input: unknown) => input is string\n\t\tboolean: (input: unknown) => input is boolean\n\t\tnull: (input: unknown) => input is null\n\t},\n\t{\n\t\tobject: (input: unknown) => input is Json.Tree.Object\n\t\tarray: (input: unknown) => input is Json.Tree.Array\n\t}\n>"],"sources":["../../src/introspection/attach-atom-index.ts","../../src/introspection/attach-selector-index.ts","../../src/introspection/attach-introspection-states.ts","../../src/introspection/auditor.ts","../../src/introspection/refinery.ts","../../src/introspection/differ.ts","../../src/introspection/sprawl.ts","../../src/introspection/index.ts"],"sourcesContent":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["primitiveRefinery: Refinery<{\n\tnumber: (input: unknown) => input is number\n\tstring: (input: unknown) => input is string\n\tboolean: (input: unknown) => input is boolean\n\tnull: (input: unknown) => input is null\n}>","jsonTreeRefinery: Refinery<{\n\tobject: (input: unknown) => input is Json.Tree.Object\n\tarray: (input: unknown) => input is Json.Tree.Array\n}>","jsonRefinery: Refinery<{\n\tobject: (input: unknown) => input is Json.Tree.Object\n\tarray: (input: unknown) => input is Json.Tree.Array\n\tnumber: (input: unknown) => input is number\n\tstring: (input: unknown) => input is string\n\tboolean: (input: unknown) => input is boolean\n\tnull: (input: unknown) => input is null\n}>","prettyJson: Differ<\n\t{\n\t\tnumber: (input: unknown) => input is number\n\t\tstring: (input: unknown) => input is string\n\t\tboolean: (input: unknown) => input is boolean\n\t\tnull: (input: unknown) => input is null\n\t},\n\t{\n\t\tobject: (input: unknown) => input is Json.Tree.Object\n\t\tarray: (input: unknown) => input is Json.Tree.Array\n\t}\n>"],"sources":["../../src/introspection/attach-atom-index.ts","../../src/introspection/attach-selector-index.ts","../../src/introspection/attach-introspection-states.ts","../../src/introspection/auditor.ts","../../src/introspection/refinery.ts","../../src/introspection/differ.ts","../../src/introspection/sprawl.ts","../../src/introspection/index.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/realtime/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AtomFamilyToken, AtomToken, JoinToken, Loadable, MutableAtomToken, ReadableFamilyToken, ReadableToken, ReadonlyPureSelectorFamilyToken, TokenType, TransactionToken } from "atom.io";
|
|
1
|
+
import { AtomFamilyToken, AtomToken, JoinToken, Loadable, MutableAtomToken, PureSelectorFamilyToken, ReadableFamilyToken, ReadableToken, ReadonlyPureSelectorFamilyToken, TokenType, TransactionToken } from "atom.io";
|
|
2
2
|
import { Canonical, Json } from "atom.io/json";
|
|
3
3
|
import { UList } from "atom.io/transceivers/u-list";
|
|
4
4
|
import { Socket as Socket$1 } from "atom.io/realtime";
|
|
@@ -12,10 +12,11 @@ type EventsMap = {
|
|
|
12
12
|
type ParticularEventListener<ListenEvents extends EventsMap = EventsMap> = <E extends string & keyof ListenEvents>(event: E, listener: ListenEvents[E]) => void;
|
|
13
13
|
type AllEventsListener<ListenEvents extends EventsMap = EventsMap> = <E extends string & keyof ListenEvents>(event: E, ...args: Parameters<ListenEvents[E]>) => void;
|
|
14
14
|
type EventEmitter<EmitEvents extends EventsMap = EventsMap> = <E extends string & keyof EmitEvents>(event: E, ...args: Parameters<EmitEvents[E]>) => void;
|
|
15
|
-
type TypedSocket<ListenEvents extends EventsMap = EventsMap, EmitEvents extends EventsMap =
|
|
15
|
+
type TypedSocket<ListenEvents extends EventsMap = EventsMap, EmitEvents extends EventsMap = never> = {
|
|
16
16
|
id: string | undefined;
|
|
17
17
|
on: ParticularEventListener<ListenEvents>;
|
|
18
18
|
onAny: (listener: AllEventsListener<ListenEvents>) => void;
|
|
19
|
+
onAnyOutgoing: (listener: AllEventsListener<EmitEvents>) => void;
|
|
19
20
|
off: ParticularEventListener<ListenEvents>;
|
|
20
21
|
offAny: (listener: AllEventsListener<ListenEvents>) => void;
|
|
21
22
|
emit: EventEmitter<EmitEvents>;
|
|
@@ -24,6 +25,7 @@ type Socket = {
|
|
|
24
25
|
id: string | undefined;
|
|
25
26
|
on: (event: string, listener: (...args: Json.Serializable[]) => void) => void;
|
|
26
27
|
onAny: (listener: (event: string, ...args: Json.Serializable[]) => void) => void;
|
|
28
|
+
onAnyOutgoing: (listener: (event: string, ...args: Json.Serializable[]) => void) => void;
|
|
27
29
|
off: (event: string, listener: (...args: Json.Serializable[]) => void) => void;
|
|
28
30
|
offAny: (listener: (event: string, ...args: Json.Serializable[]) => void) => void;
|
|
29
31
|
emit: (event: string, ...args: Json.Serializable[]) => void;
|
|
@@ -154,8 +156,9 @@ type UserInRoomMeta = {
|
|
|
154
156
|
};
|
|
155
157
|
declare const DEFAULT_USER_IN_ROOM_META: UserInRoomMeta;
|
|
156
158
|
declare const usersInRooms: JoinToken<`room`, RoomKey, `user`, UserKey, `1:n`>;
|
|
159
|
+
declare const visibleUsersInRoomsSelector: PureSelectorFamilyToken<(RoomKey | UserKey)[], UserKey>;
|
|
157
160
|
declare const ownersOfRooms: JoinToken<`user`, UserKey, `room`, RoomKey, `1:n`>;
|
|
158
161
|
declare const usersInMyRoomView: ReadonlyPureSelectorFamilyToken<MutableAtomToken<UList<RoomKey>>[], UserKey>;
|
|
159
162
|
//#endregion
|
|
160
|
-
export { AllEventsListener, ContinuityOptions, ContinuityToken, DEFAULT_USER_IN_ROOM_META, EventEmitter, EventListener, EventsMap, InvariantMap, Loaded, ParticularEventListener, PerspectiveToken, RoomKey, RoomSocketInterface, Socket, SocketGuard, SocketKey, SocketListeners, StandardSchemaV1, SyncGroup, TypedSocket, UserInRoomMeta, UserKey, castSocket, continuity, employSocket, isRoomKey, isSocketKey, isUserKey, mutexAtoms, ownersOfRooms, roomKeysAtom, usersInMyRoomView, usersInRooms };
|
|
163
|
+
export { AllEventsListener, ContinuityOptions, ContinuityToken, DEFAULT_USER_IN_ROOM_META, EventEmitter, EventListener, EventsMap, InvariantMap, Loaded, ParticularEventListener, PerspectiveToken, RoomKey, RoomSocketInterface, Socket, SocketGuard, SocketKey, SocketListeners, StandardSchemaV1, SyncGroup, TypedSocket, UserInRoomMeta, UserKey, castSocket, continuity, employSocket, isRoomKey, isSocketKey, isUserKey, mutexAtoms, ownersOfRooms, roomKeysAtom, usersInMyRoomView, usersInRooms, visibleUsersInRoomsSelector };
|
|
161
164
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["mutexAtoms: AtomFamilyToken<boolean, Canonical>","roomKeysAtom: MutableAtomToken<UList<RoomKey>>","DEFAULT_USER_IN_ROOM_META: UserInRoomMeta","usersInRooms: JoinToken<`room`, RoomKey, `user`, UserKey, `1:n`>","ownersOfRooms: JoinToken<`user`, UserKey, `room`, RoomKey, `1:n`>","usersInMyRoomView: ReadonlyPureSelectorFamilyToken<\n\tMutableAtomToken<UList<RoomKey>>[],\n\tUserKey\n>"],"sources":["../../src/realtime/socket-interface.ts","../../src/realtime/standard-schema.ts","../../src/realtime/cast-socket.ts","../../src/realtime/employ-socket.ts","../../src/realtime/mutex-store.ts","../../src/realtime/realtime-key-types.ts","../../src/realtime/realtime-continuity.ts","../../src/realtime/shared-room-store.ts"],"sourcesContent":[],"mappings":";;;;;;;KAEY,aAAA,aAA0B,IAAA,CAAK;KAE/B,SAAA;mBACM;;KAGN,6CAA6C,YAAY,uCAC1C,qBAClB,aACG,aAAa;KAGb,uCAAuC,YAAY,uCACrC,qBAElB,YACE,WAAW,aAAa;AAhBtB,KAmBA,YAnBA,CAAA,mBAmBgC,SAnBD,GAmBa,SAnBb,CAAA,GAAA,CAAA,UAAA,MAAA,GAAA,MAoBjB,UApBiB,CAAA,CAAA,KAAA,EAsBnC,CAtBmC,EAAA,GAAA,IAAA,EAuBjC,UAvBiC,CAuBtB,UAvBsB,CAuBX,CAvBW,CAAA,CAAA,EAAA,GAAA,IAAA;AAE/B,KAwBA,WAxBA,CAIZ,qBAqBsB,SArBV,GAqBsB,SArBtB,EAA6C,mBAsBrC,SAtBqC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["mutexAtoms: AtomFamilyToken<boolean, Canonical>","roomKeysAtom: MutableAtomToken<UList<RoomKey>>","DEFAULT_USER_IN_ROOM_META: UserInRoomMeta","usersInRooms: JoinToken<`room`, RoomKey, `user`, UserKey, `1:n`>","visibleUsersInRoomsSelector: PureSelectorFamilyToken<\n\t(RoomKey | UserKey)[],\n\tUserKey\n>","ownersOfRooms: JoinToken<`user`, UserKey, `room`, RoomKey, `1:n`>","usersInMyRoomView: ReadonlyPureSelectorFamilyToken<\n\tMutableAtomToken<UList<RoomKey>>[],\n\tUserKey\n>"],"sources":["../../src/realtime/socket-interface.ts","../../src/realtime/standard-schema.ts","../../src/realtime/cast-socket.ts","../../src/realtime/employ-socket.ts","../../src/realtime/mutex-store.ts","../../src/realtime/realtime-key-types.ts","../../src/realtime/realtime-continuity.ts","../../src/realtime/shared-room-store.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/realtime/index.js
CHANGED
|
@@ -28,6 +28,7 @@ function castSocket(socket, guard, logError) {
|
|
|
28
28
|
});
|
|
29
29
|
});
|
|
30
30
|
},
|
|
31
|
+
onAnyOutgoing: socket.onAnyOutgoing.bind(socket),
|
|
31
32
|
off: socket.off.bind(socket),
|
|
32
33
|
offAny: socket.offAny.bind(socket),
|
|
33
34
|
emit: socket.emit.bind(socket)
|
|
@@ -140,6 +141,13 @@ const usersInRooms = join({
|
|
|
140
141
|
isAType: isRoomKey,
|
|
141
142
|
isBType: isUserKey
|
|
142
143
|
});
|
|
144
|
+
const visibleUsersInRoomsSelector = selectorFamily({
|
|
145
|
+
key: `selfList`,
|
|
146
|
+
get: (userKey) => ({ get }) => {
|
|
147
|
+
const [, roomsOfUsersAtoms] = getInternalRelations(usersInRooms, `split`);
|
|
148
|
+
return [userKey, ...get(roomsOfUsersAtoms, userKey)];
|
|
149
|
+
}
|
|
150
|
+
});
|
|
143
151
|
const ownersOfRooms = join({
|
|
144
152
|
key: `ownersOfRooms`,
|
|
145
153
|
between: [`user`, `room`],
|
|
@@ -156,5 +164,5 @@ const usersInMyRoomView = selectorFamily({
|
|
|
156
164
|
});
|
|
157
165
|
|
|
158
166
|
//#endregion
|
|
159
|
-
export { DEFAULT_USER_IN_ROOM_META, InvariantMap, SyncGroup, castSocket, continuity, employSocket, isRoomKey, isSocketKey, isUserKey, mutexAtoms, ownersOfRooms, roomKeysAtom, usersInMyRoomView, usersInRooms };
|
|
167
|
+
export { DEFAULT_USER_IN_ROOM_META, InvariantMap, SyncGroup, castSocket, continuity, employSocket, isRoomKey, isSocketKey, isUserKey, mutexAtoms, ownersOfRooms, roomKeysAtom, usersInMyRoomView, usersInRooms, visibleUsersInRoomsSelector };
|
|
160
168
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["mutexAtoms: AtomFamilyToken<boolean, Canonical>","roomKeysAtom: MutableAtomToken<UList<RoomKey>>","DEFAULT_USER_IN_ROOM_META: UserInRoomMeta","usersInRooms: JoinToken<`room`, RoomKey, `user`, UserKey, `1:n`>","ownersOfRooms: JoinToken<`user`, UserKey, `room`, RoomKey, `1:n`>","usersInMyRoomView: ReadonlyPureSelectorFamilyToken<\n\tMutableAtomToken<UList<RoomKey>>[],\n\tUserKey\n>"],"sources":["../../src/realtime/cast-socket.ts","../../src/realtime/employ-socket.ts","../../src/realtime/mutex-store.ts","../../src/realtime/realtime-continuity.ts","../../src/realtime/realtime-key-types.ts","../../src/realtime/shared-room-store.ts"],"sourcesContent":["import type { Loadable } from \"atom.io\"\nimport type { Json } from \"atom.io/json\"\n\nimport type { EventsMap, Socket, TypedSocket } from \"./socket-interface\"\nimport type { StandardSchemaV1 } from \"./standard-schema\"\n\nexport type SocketListeners<T extends TypedSocket> =\n\tT extends TypedSocket<infer ListenEvents> ? ListenEvents : never\n\nexport type SocketGuard<L extends EventsMap> = {\n\t[K in keyof L]: StandardSchemaV1<Json.Array, Parameters<L[K]>>\n}\n\nexport type Loaded<L extends Loadable<any>> =\n\tL extends Loadable<infer T> ? T : never\n\nfunction onLoad<L extends Loadable<any>>(\n\tloadable: L,\n\tfn: (loaded: Loaded<L>) => any,\n): void {\n\tif (loadable instanceof Promise) {\n\t\tvoid loadable.then(fn)\n\t} else {\n\t\tfn(loadable as Loaded<L>)\n\t}\n}\n\nexport function castSocket<T extends TypedSocket>(\n\tsocket: Socket,\n\tguard: SocketGuard<SocketListeners<T>> | `TRUST`,\n\tlogError?: (error: unknown) => void,\n): T {\n\tif (guard === `TRUST`) {\n\t\treturn socket as T\n\t}\n\tconst guardedSocket: Socket = {\n\t\tid: socket.id,\n\t\ton: (event, listener) => {\n\t\t\tconst schema = guard[event] as StandardSchemaV1<Json.Array, Json.Array>\n\t\t\tsocket.on(event, (...args) => {\n\t\t\t\tconst loadableResult = schema[`~standard`].validate(args)\n\t\t\t\tonLoad(loadableResult, (result) => {\n\t\t\t\t\tif (result.issues) {\n\t\t\t\t\t\tlogError?.(result.issues)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlistener(...result.value)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t},\n\t\tonAny: (listener) => {\n\t\t\tsocket.onAny((event, ...args) => {\n\t\t\t\tconst schema = guard[event] as StandardSchemaV1<unknown, Json.Array>\n\t\t\t\tconst loadableResult = schema[`~standard`].validate(args)\n\t\t\t\tonLoad(loadableResult, (result) => {\n\t\t\t\t\tif (result.issues) {\n\t\t\t\t\t\tlogError?.(result.issues)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlistener(event, ...result.value)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t},\n\t\toff: socket.off.bind(socket),\n\t\toffAny: socket.offAny.bind(socket),\n\t\temit: socket.emit.bind(socket),\n\t}\n\treturn guardedSocket as T\n}\n","import type { Socket } from \"atom.io/realtime\"\nimport type { Events } from \"atom.io/realtime-server\"\n\nexport function employSocket<I extends Events, K extends string & keyof I>(\n\tsocket: Socket,\n\tevent: K,\n\thandleEvent: (...data: I[K]) => void,\n): () => void {\n\tsocket.on(event, handleEvent)\n\tconst retireSocket = () => {\n\t\tsocket.off(event, handleEvent)\n\t}\n\treturn retireSocket\n}\n","import type { AtomFamilyToken } from \"atom.io\"\nimport { atomFamily } from \"atom.io\"\nimport type { Canonical } from \"atom.io/json\"\n\nexport const mutexAtoms: AtomFamilyToken<boolean, Canonical> = atomFamily({\n\tkey: `mutex`,\n\tdefault: false,\n})\n","import type {\n\tAtomFamilyToken,\n\tAtomToken,\n\tReadableFamilyToken,\n\tReadableToken,\n\tTokenType,\n\tTransactionToken,\n} from \"atom.io\"\nimport {\n\tassignTransactionToContinuity,\n\tIMPLICIT,\n\tsetEpochNumberOfContinuity,\n} from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\n\nimport type { UserKey } from \"./realtime-key-types\"\n\n/* eslint-disable no-console */\n\nexport class InvariantMap<K, V> extends Map<K, V> implements ReadonlyMap<K, V> {\n\tpublic set(key: K, value: V): this {\n\t\tif (this.has(key)) {\n\t\t\tconsole.warn(`Tried to set a key that already exists in an InvariantMap`, {\n\t\t\t\tkey,\n\t\t\t\tvalue,\n\t\t\t})\n\t\t\treturn this\n\t\t}\n\t\treturn super.set(key, value)\n\t}\n}\n\nexport type PerspectiveToken<F extends AtomFamilyToken<any>> = {\n\ttype: `realtime_perspective`\n\tresourceAtoms: F\n\tviewAtoms: ReadableFamilyToken<ReadableToken<TokenType<F>>[], UserKey>\n}\n\nexport type ContinuityToken = {\n\treadonly type: `continuity`\n\treadonly key: string\n\treadonly globals: AtomToken<any>[]\n\treadonly actions: TransactionToken<any>[]\n\treadonly perspectives: PerspectiveToken<AtomFamilyToken<any, Canonical>>[]\n}\n\nexport class SyncGroup {\n\tpublic type = `continuity` as const\n\n\tprotected globals: AtomToken<any>[] = []\n\tprotected actions: TransactionToken<any>[] = []\n\tprotected perspectives: PerspectiveToken<any>[] = []\n\tprotected readonly key: string\n\n\tprotected constructor(key: string) {\n\t\tthis.key = key\n\t}\n\n\tpublic static existing: InvariantMap<string, ContinuityToken> =\n\t\tnew InvariantMap()\n\tpublic static create(\n\t\tkey: string,\n\t\tbuilder: (group: SyncGroup) => SyncGroup,\n\t): ContinuityToken {\n\t\tconst group = new SyncGroup(key)\n\t\tconst { type, globals, actions, perspectives } = builder(group)\n\t\tconst token = { type, key, globals, actions, perspectives }\n\t\tSyncGroup.existing.set(key, token)\n\t\treturn token\n\t}\n\n\tpublic add(...atoms: AtomToken<any>[]): SyncGroup\n\tpublic add(...args: TransactionToken<any>[]): SyncGroup\n\tpublic add<\n\t\tF extends AtomFamilyToken<any>,\n\t\tT extends F extends AtomFamilyToken<infer U> ? U : never,\n\t>(\n\t\tfamily: AtomFamilyToken<T, any>,\n\t\tindex: ReadableFamilyToken<Iterable<AtomToken<T>>, string>,\n\t): SyncGroup\n\tpublic add(\n\t\t...args:\n\t\t\t| readonly AtomToken<any>[]\n\t\t\t| readonly TransactionToken<any>[]\n\t\t\t| [AtomFamilyToken<any, any>, ReadableFamilyToken<Iterable<any>, string>]\n\t): this {\n\t\tconst zeroth = args[0]\n\t\tswitch (zeroth.type) {\n\t\t\tcase `atom`:\n\t\t\tcase `mutable_atom`:\n\t\t\t\tthis.globals.push(...(args as AtomToken<any>[]))\n\t\t\t\tbreak\n\t\t\tcase `transaction`:\n\t\t\t\tthis.actions.push(...(args as TransactionToken<any>[]))\n\t\t\t\tbreak\n\t\t\tcase `atom_family`:\n\t\t\tcase `mutable_atom_family`:\n\t\t\t\t{\n\t\t\t\t\tconst [family, index] = args as [\n\t\t\t\t\t\tAtomFamilyToken<any, any>,\n\t\t\t\t\t\tReadableFamilyToken<ReadableToken<any>[], UserKey>,\n\t\t\t\t\t]\n\t\t\t\t\tthis.perspectives.push({\n\t\t\t\t\t\ttype: `realtime_perspective`,\n\t\t\t\t\t\tresourceAtoms: family,\n\t\t\t\t\t\tviewAtoms: index,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t}\n\n\t\treturn this\n\t}\n}\n\nexport type ContinuityOptions = {\n\tkey: string\n\tconfig: (group: SyncGroup) => SyncGroup\n}\n\nexport function continuity(options: ContinuityOptions): ContinuityToken {\n\tconst { key, config } = options\n\tconst token = SyncGroup.create(key, config)\n\tconst { actions } = token\n\tfor (const action of actions) {\n\t\tassignTransactionToContinuity(IMPLICIT.STORE, key, action.key)\n\t}\n\tsetEpochNumberOfContinuity(IMPLICIT.STORE, key, -1)\n\treturn token\n}\n\n// const counterStates = atomFamily<number, { c: string }>({\n// \tkey: `counter`,\n// \tdefault: 0,\n// })\n// const counterIndices = atomFamily<{ c: string }[], string>({\n// \tkey: `counterIndex`,\n// \tdefault: [],\n// })\n// const nameStates = atomFamily<number, { n: string }>({\n// \tkey: `name`,\n// \tdefault: 0,\n// })\n// const nameIndices = atomFamily<{ n: string }[], string>({\n// \tkey: `nameIndex`,\n// \tdefault: [],\n// })\n\n// const counterContinuity = continuity({\n// \tkey: `counter`,\n// \tconfig: (group) =>\n// \t\tgroup\n// \t\t\t.add(counterStates, counterIndices)\n// \t\t\t.add(nameStates, nameIndices)\n// \t\t\t.add(nameStates, nameIndices)\n// \t\t\t.add(nameStates, nameIndices),\n// })\n","export type SocketKey = `socket::${string}`\nexport const isSocketKey = (key: string): key is SocketKey =>\n\tkey.startsWith(`socket::`)\n\nexport type UserKey = `user::${string}`\nexport const isUserKey = (key: string): key is UserKey =>\n\tkey.startsWith(`user::`)\n\nexport type RoomKey = `room::${string}`\nexport const isRoomKey = (key: string): key is RoomKey =>\n\tkey.startsWith(`room::`)\n","import type {\n\tJoinToken,\n\tMutableAtomToken,\n\tReadonlyPureSelectorFamilyToken,\n} from \"atom.io\"\nimport { getInternalRelations, join, mutableAtom, selectorFamily } from \"atom.io\"\nimport { UList } from \"atom.io/transceivers/u-list\"\n\nimport {\n\tisRoomKey,\n\tisUserKey,\n\ttype RoomKey,\n\ttype UserKey,\n} from \"./realtime-key-types\"\n\nexport type RoomSocketInterface<RoomNames extends string> = {\n\tcreateRoom: (roomName: RoomNames) => void\n\tjoinRoom: (roomKey: RoomKey) => void\n\tdeleteRoom: (roomKey: RoomKey) => void\n\tleaveRoom: () => void\n\t// [leaveRoom: `leaveRoom:${string}`]: () => void\n}\n\nexport const roomKeysAtom: MutableAtomToken<UList<RoomKey>> = mutableAtom({\n\tkey: `roomIndex`,\n\tclass: UList,\n})\n\nexport type UserInRoomMeta = {\n\tenteredAtEpoch: number\n}\nexport const DEFAULT_USER_IN_ROOM_META: UserInRoomMeta = {\n\tenteredAtEpoch: 0,\n}\nexport const usersInRooms: JoinToken<`room`, RoomKey, `user`, UserKey, `1:n`> =\n\tjoin({\n\t\tkey: `usersInRooms`,\n\t\tbetween: [`room`, `user`],\n\t\tcardinality: `1:n`,\n\t\tisAType: isRoomKey,\n\t\tisBType: isUserKey,\n\t})\n\nexport const ownersOfRooms: JoinToken<`user`, UserKey, `room`, RoomKey, `1:n`> =\n\tjoin({\n\t\tkey: `ownersOfRooms`,\n\t\tbetween: [`user`, `room`],\n\t\tcardinality: `1:n`,\n\t\tisAType: isUserKey,\n\t\tisBType: isRoomKey,\n\t})\n\nexport const usersInMyRoomView: ReadonlyPureSelectorFamilyToken<\n\tMutableAtomToken<UList<RoomKey>>[],\n\tUserKey\n> = selectorFamily({\n\tkey: `usersInMyRoomView`,\n\tget:\n\t\t(myUsername) =>\n\t\t({ find }) => {\n\t\t\tconst [, roomsOfUsersAtoms] = getInternalRelations(usersInRooms, `split`)\n\t\t\tconst myRoomIndex = find(roomsOfUsersAtoms, myUsername)\n\t\t\treturn [myRoomIndex]\n\t\t},\n})\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["mutexAtoms: AtomFamilyToken<boolean, Canonical>","roomKeysAtom: MutableAtomToken<UList<RoomKey>>","DEFAULT_USER_IN_ROOM_META: UserInRoomMeta","usersInRooms: JoinToken<`room`, RoomKey, `user`, UserKey, `1:n`>","visibleUsersInRoomsSelector: PureSelectorFamilyToken<\n\t(RoomKey | UserKey)[],\n\tUserKey\n>","ownersOfRooms: JoinToken<`user`, UserKey, `room`, RoomKey, `1:n`>","usersInMyRoomView: ReadonlyPureSelectorFamilyToken<\n\tMutableAtomToken<UList<RoomKey>>[],\n\tUserKey\n>"],"sources":["../../src/realtime/cast-socket.ts","../../src/realtime/employ-socket.ts","../../src/realtime/mutex-store.ts","../../src/realtime/realtime-continuity.ts","../../src/realtime/realtime-key-types.ts","../../src/realtime/shared-room-store.ts"],"sourcesContent":["import type { Loadable } from \"atom.io\"\nimport type { Json } from \"atom.io/json\"\n\nimport type { EventsMap, Socket, TypedSocket } from \"./socket-interface\"\nimport type { StandardSchemaV1 } from \"./standard-schema\"\n\nexport type SocketListeners<T extends TypedSocket> =\n\tT extends TypedSocket<infer ListenEvents> ? ListenEvents : never\n\nexport type SocketGuard<L extends EventsMap> = {\n\t[K in keyof L]: StandardSchemaV1<Json.Array, Parameters<L[K]>>\n}\n\nexport type Loaded<L extends Loadable<any>> =\n\tL extends Loadable<infer T> ? T : never\n\nfunction onLoad<L extends Loadable<any>>(\n\tloadable: L,\n\tfn: (loaded: Loaded<L>) => any,\n): void {\n\tif (loadable instanceof Promise) {\n\t\tvoid loadable.then(fn)\n\t} else {\n\t\tfn(loadable as Loaded<L>)\n\t}\n}\n\nexport function castSocket<T extends TypedSocket>(\n\tsocket: Socket,\n\tguard: SocketGuard<SocketListeners<T>> | `TRUST`,\n\tlogError?: (error: unknown) => void,\n): T {\n\tif (guard === `TRUST`) {\n\t\treturn socket as T\n\t}\n\tconst guardedSocket: Socket = {\n\t\tid: socket.id,\n\t\ton: (event, listener) => {\n\t\t\tconst schema = guard[event] as StandardSchemaV1<Json.Array, Json.Array>\n\t\t\tsocket.on(event, (...args) => {\n\t\t\t\tconst loadableResult = schema[`~standard`].validate(args)\n\t\t\t\tonLoad(loadableResult, (result) => {\n\t\t\t\t\tif (result.issues) {\n\t\t\t\t\t\tlogError?.(result.issues)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlistener(...result.value)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t},\n\t\tonAny: (listener) => {\n\t\t\tsocket.onAny((event, ...args) => {\n\t\t\t\tconst schema = guard[event] as StandardSchemaV1<unknown, Json.Array>\n\t\t\t\tconst loadableResult = schema[`~standard`].validate(args)\n\t\t\t\tonLoad(loadableResult, (result) => {\n\t\t\t\t\tif (result.issues) {\n\t\t\t\t\t\tlogError?.(result.issues)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlistener(event, ...result.value)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t},\n\t\tonAnyOutgoing: socket.onAnyOutgoing.bind(socket),\n\t\toff: socket.off.bind(socket),\n\t\toffAny: socket.offAny.bind(socket),\n\t\temit: socket.emit.bind(socket),\n\t}\n\treturn guardedSocket as T\n}\n","import type { Socket } from \"atom.io/realtime\"\nimport type { Events } from \"atom.io/realtime-server\"\n\nexport function employSocket<I extends Events, K extends string & keyof I>(\n\tsocket: Socket,\n\tevent: K,\n\thandleEvent: (...data: I[K]) => void,\n): () => void {\n\tsocket.on(event, handleEvent)\n\tconst retireSocket = () => {\n\t\tsocket.off(event, handleEvent)\n\t}\n\treturn retireSocket\n}\n","import type { AtomFamilyToken } from \"atom.io\"\nimport { atomFamily } from \"atom.io\"\nimport type { Canonical } from \"atom.io/json\"\n\nexport const mutexAtoms: AtomFamilyToken<boolean, Canonical> = atomFamily({\n\tkey: `mutex`,\n\tdefault: false,\n})\n","import type {\n\tAtomFamilyToken,\n\tAtomToken,\n\tReadableFamilyToken,\n\tReadableToken,\n\tTokenType,\n\tTransactionToken,\n} from \"atom.io\"\nimport {\n\tassignTransactionToContinuity,\n\tIMPLICIT,\n\tsetEpochNumberOfContinuity,\n} from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\n\nimport type { UserKey } from \"./realtime-key-types\"\n\n/* eslint-disable no-console */\n\nexport class InvariantMap<K, V> extends Map<K, V> implements ReadonlyMap<K, V> {\n\tpublic set(key: K, value: V): this {\n\t\tif (this.has(key)) {\n\t\t\tconsole.warn(`Tried to set a key that already exists in an InvariantMap`, {\n\t\t\t\tkey,\n\t\t\t\tvalue,\n\t\t\t})\n\t\t\treturn this\n\t\t}\n\t\treturn super.set(key, value)\n\t}\n}\n\nexport type PerspectiveToken<F extends AtomFamilyToken<any>> = {\n\ttype: `realtime_perspective`\n\tresourceAtoms: F\n\tviewAtoms: ReadableFamilyToken<ReadableToken<TokenType<F>>[], UserKey>\n}\n\nexport type ContinuityToken = {\n\treadonly type: `continuity`\n\treadonly key: string\n\treadonly globals: AtomToken<any>[]\n\treadonly actions: TransactionToken<any>[]\n\treadonly perspectives: PerspectiveToken<AtomFamilyToken<any, Canonical>>[]\n}\n\nexport class SyncGroup {\n\tpublic type = `continuity` as const\n\n\tprotected globals: AtomToken<any>[] = []\n\tprotected actions: TransactionToken<any>[] = []\n\tprotected perspectives: PerspectiveToken<any>[] = []\n\tprotected readonly key: string\n\n\tprotected constructor(key: string) {\n\t\tthis.key = key\n\t}\n\n\tpublic static existing: InvariantMap<string, ContinuityToken> =\n\t\tnew InvariantMap()\n\tpublic static create(\n\t\tkey: string,\n\t\tbuilder: (group: SyncGroup) => SyncGroup,\n\t): ContinuityToken {\n\t\tconst group = new SyncGroup(key)\n\t\tconst { type, globals, actions, perspectives } = builder(group)\n\t\tconst token = { type, key, globals, actions, perspectives }\n\t\tSyncGroup.existing.set(key, token)\n\t\treturn token\n\t}\n\n\tpublic add(...atoms: AtomToken<any>[]): SyncGroup\n\tpublic add(...args: TransactionToken<any>[]): SyncGroup\n\tpublic add<\n\t\tF extends AtomFamilyToken<any>,\n\t\tT extends F extends AtomFamilyToken<infer U> ? U : never,\n\t>(\n\t\tfamily: AtomFamilyToken<T, any>,\n\t\tindex: ReadableFamilyToken<Iterable<AtomToken<T>>, string>,\n\t): SyncGroup\n\tpublic add(\n\t\t...args:\n\t\t\t| readonly AtomToken<any>[]\n\t\t\t| readonly TransactionToken<any>[]\n\t\t\t| [AtomFamilyToken<any, any>, ReadableFamilyToken<Iterable<any>, string>]\n\t): this {\n\t\tconst zeroth = args[0]\n\t\tswitch (zeroth.type) {\n\t\t\tcase `atom`:\n\t\t\tcase `mutable_atom`:\n\t\t\t\tthis.globals.push(...(args as AtomToken<any>[]))\n\t\t\t\tbreak\n\t\t\tcase `transaction`:\n\t\t\t\tthis.actions.push(...(args as TransactionToken<any>[]))\n\t\t\t\tbreak\n\t\t\tcase `atom_family`:\n\t\t\tcase `mutable_atom_family`:\n\t\t\t\t{\n\t\t\t\t\tconst [family, index] = args as [\n\t\t\t\t\t\tAtomFamilyToken<any, any>,\n\t\t\t\t\t\tReadableFamilyToken<ReadableToken<any>[], UserKey>,\n\t\t\t\t\t]\n\t\t\t\t\tthis.perspectives.push({\n\t\t\t\t\t\ttype: `realtime_perspective`,\n\t\t\t\t\t\tresourceAtoms: family,\n\t\t\t\t\t\tviewAtoms: index,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t}\n\n\t\treturn this\n\t}\n}\n\nexport type ContinuityOptions = {\n\tkey: string\n\tconfig: (group: SyncGroup) => SyncGroup\n}\n\nexport function continuity(options: ContinuityOptions): ContinuityToken {\n\tconst { key, config } = options\n\tconst token = SyncGroup.create(key, config)\n\tconst { actions } = token\n\tfor (const action of actions) {\n\t\tassignTransactionToContinuity(IMPLICIT.STORE, key, action.key)\n\t}\n\tsetEpochNumberOfContinuity(IMPLICIT.STORE, key, -1)\n\treturn token\n}\n\n// const counterStates = atomFamily<number, { c: string }>({\n// \tkey: `counter`,\n// \tdefault: 0,\n// })\n// const counterIndices = atomFamily<{ c: string }[], string>({\n// \tkey: `counterIndex`,\n// \tdefault: [],\n// })\n// const nameStates = atomFamily<number, { n: string }>({\n// \tkey: `name`,\n// \tdefault: 0,\n// })\n// const nameIndices = atomFamily<{ n: string }[], string>({\n// \tkey: `nameIndex`,\n// \tdefault: [],\n// })\n\n// const counterContinuity = continuity({\n// \tkey: `counter`,\n// \tconfig: (group) =>\n// \t\tgroup\n// \t\t\t.add(counterStates, counterIndices)\n// \t\t\t.add(nameStates, nameIndices)\n// \t\t\t.add(nameStates, nameIndices)\n// \t\t\t.add(nameStates, nameIndices),\n// })\n","export type SocketKey = `socket::${string}`\nexport const isSocketKey = (key: string): key is SocketKey =>\n\tkey.startsWith(`socket::`)\n\nexport type UserKey = `user::${string}`\nexport const isUserKey = (key: string): key is UserKey =>\n\tkey.startsWith(`user::`)\n\nexport type RoomKey = `room::${string}`\nexport const isRoomKey = (key: string): key is RoomKey =>\n\tkey.startsWith(`room::`)\n","import type {\n\tJoinToken,\n\tMutableAtomToken,\n\tPureSelectorFamilyToken,\n\tReadonlyPureSelectorFamilyToken,\n} from \"atom.io\"\nimport { getInternalRelations, join, mutableAtom, selectorFamily } from \"atom.io\"\nimport { UList } from \"atom.io/transceivers/u-list\"\n\nimport {\n\tisRoomKey,\n\tisUserKey,\n\ttype RoomKey,\n\ttype UserKey,\n} from \"./realtime-key-types\"\n\nexport type RoomSocketInterface<RoomNames extends string> = {\n\tcreateRoom: (roomName: RoomNames) => void\n\tjoinRoom: (roomKey: RoomKey) => void\n\tdeleteRoom: (roomKey: RoomKey) => void\n\tleaveRoom: () => void\n\t// [leaveRoom: `leaveRoom:${string}`]: () => void\n}\n\nexport const roomKeysAtom: MutableAtomToken<UList<RoomKey>> = mutableAtom({\n\tkey: `roomIndex`,\n\tclass: UList,\n})\n\nexport type UserInRoomMeta = {\n\tenteredAtEpoch: number\n}\nexport const DEFAULT_USER_IN_ROOM_META: UserInRoomMeta = {\n\tenteredAtEpoch: 0,\n}\nexport const usersInRooms: JoinToken<`room`, RoomKey, `user`, UserKey, `1:n`> =\n\tjoin({\n\t\tkey: `usersInRooms`,\n\t\tbetween: [`room`, `user`],\n\t\tcardinality: `1:n`,\n\t\tisAType: isRoomKey,\n\t\tisBType: isUserKey,\n\t})\n\nexport const visibleUsersInRoomsSelector: PureSelectorFamilyToken<\n\t(RoomKey | UserKey)[],\n\tUserKey\n> = selectorFamily({\n\tkey: `selfList`,\n\tget:\n\t\t(userKey) =>\n\t\t({ get }) => {\n\t\t\tconst [, roomsOfUsersAtoms] = getInternalRelations(usersInRooms, `split`)\n\t\t\tconst rooms = get(roomsOfUsersAtoms, userKey)\n\t\t\treturn [userKey, ...rooms]\n\t\t},\n})\n\nexport const ownersOfRooms: JoinToken<`user`, UserKey, `room`, RoomKey, `1:n`> =\n\tjoin({\n\t\tkey: `ownersOfRooms`,\n\t\tbetween: [`user`, `room`],\n\t\tcardinality: `1:n`,\n\t\tisAType: isUserKey,\n\t\tisBType: isRoomKey,\n\t})\n\nexport const usersInMyRoomView: ReadonlyPureSelectorFamilyToken<\n\tMutableAtomToken<UList<RoomKey>>[],\n\tUserKey\n> = selectorFamily({\n\tkey: `usersInMyRoomView`,\n\tget:\n\t\t(myUsername) =>\n\t\t({ find }) => {\n\t\t\tconst [, roomsOfUsersAtoms] = getInternalRelations(usersInRooms, `split`)\n\t\t\tconst myRoomIndex = find(roomsOfUsersAtoms, myUsername)\n\t\t\treturn [myRoomIndex]\n\t\t},\n})\n"],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { RootStore, Subject, Transceiver } from "atom.io/internal";
|
|
2
2
|
import * as AtomIO from "atom.io";
|
|
3
|
-
import { Hierarchy, JoinToken,
|
|
3
|
+
import { Hierarchy, JoinToken, Loadable, MutableAtomToken, RegularAtomFamilyToken, WritableToken } from "atom.io";
|
|
4
4
|
import { Canonical, Json, stringified } from "atom.io/json";
|
|
5
5
|
import { UList } from "atom.io/transceivers/u-list";
|
|
6
|
-
import { ContinuityToken, RoomKey, RoomSocketInterface, Socket, SocketKey, TypedSocket, UserKey } from "atom.io/realtime";
|
|
6
|
+
import { ContinuityToken, RoomKey, RoomSocketInterface, Socket, SocketKey, StandardSchemaV1, TypedSocket, UserKey } from "atom.io/realtime";
|
|
7
7
|
import { ChildProcessWithoutNullStreams } from "node:child_process";
|
|
8
|
+
import { IncomingHttpHeaders } from "node:http";
|
|
9
|
+
import { Server } from "socket.io";
|
|
8
10
|
import { Readable, Writable } from "node:stream";
|
|
11
|
+
import { ParsedUrlQuery } from "node:querystring";
|
|
9
12
|
|
|
10
13
|
//#region src/realtime-server/continuity/provide-continuity.d.ts
|
|
11
14
|
type ProvideContinuity = (continuity: ContinuityToken, userKey: UserKey) => () => void;
|
|
@@ -23,12 +26,14 @@ interface EventBuffer<E extends Events, K extends string & keyof E = string & ke
|
|
|
23
26
|
declare abstract class CustomSocket<I extends Events, O extends Events> implements Socket {
|
|
24
27
|
protected listeners: Map<keyof O, Set<(...args: Json.Array) => void>>;
|
|
25
28
|
protected globalListeners: Set<(event: string, ...args: Json.Array) => void>;
|
|
29
|
+
protected globalListenersOutgoing: Set<(event: string, ...args: Json.Array) => void>;
|
|
26
30
|
protected handleEvent<K extends string & keyof I>(...args: EventPayload<I, K>): void;
|
|
27
31
|
id: string;
|
|
28
|
-
emit: <Event extends keyof I>(event: Event, ...args: I[Event]) => CustomSocket<I, O>;
|
|
32
|
+
emit: <Event extends string & keyof I>(event: Event, ...args: I[Event]) => CustomSocket<I, O>;
|
|
29
33
|
constructor(emit: <Event extends keyof I>(event: Event, ...args: I[Event]) => CustomSocket<I, O>);
|
|
30
34
|
on<Event extends keyof O>(event: Event, listener: (...args: O[Event]) => void): this;
|
|
31
35
|
onAny(listener: (event: string, ...args: Json.Array) => void): this;
|
|
36
|
+
onAnyOutgoing(listener: (event: string, ...args: Json.Array) => void): this;
|
|
32
37
|
off<Event extends keyof O>(event: Event, listener?: (...args: O[Event]) => void): this;
|
|
33
38
|
offAny(listener: (event: string, ...args: Json.Array) => void): this;
|
|
34
39
|
}
|
|
@@ -90,45 +95,38 @@ declare class ParentSocket<I extends Events & { [id in string as `relay::${id}`]
|
|
|
90
95
|
receiveRelay(attachServices: (socket: SubjectSocket<any, any>, userKey: UserKey) => (() => void) | void): void;
|
|
91
96
|
}
|
|
92
97
|
//#endregion
|
|
93
|
-
//#region src/realtime-server/realtime-family-provider.d.ts
|
|
94
|
-
type FamilyProvider = ReturnType<typeof realtimeAtomFamilyProvider>;
|
|
95
|
-
declare function realtimeAtomFamilyProvider({
|
|
96
|
-
socket,
|
|
97
|
-
userKey,
|
|
98
|
-
store
|
|
99
|
-
}: ServerConfig): <J extends Json.Serializable, K extends Canonical>(family: AtomIO.RegularAtomFamilyToken<J, K>, index: AtomIO.ReadableToken<Iterable<NoInfer<K>>>) => () => void;
|
|
100
|
-
//#endregion
|
|
101
|
-
//#region src/realtime-server/realtime-mutable-family-provider.d.ts
|
|
102
|
-
type MutableFamilyProvider = ReturnType<typeof realtimeMutableFamilyProvider>;
|
|
103
|
-
declare function realtimeMutableFamilyProvider({
|
|
104
|
-
socket,
|
|
105
|
-
userKey,
|
|
106
|
-
store
|
|
107
|
-
}: ServerConfig): <T extends Transceiver<any, any, any>, K extends Canonical>(family: AtomIO.MutableAtomFamilyToken<T, K>, index: AtomIO.ReadableToken<Iterable<NoInfer<K>>>) => () => void;
|
|
108
|
-
//#endregion
|
|
109
|
-
//#region src/realtime-server/realtime-mutable-provider.d.ts
|
|
110
|
-
type MutableProvider = ReturnType<typeof realtimeMutableProvider>;
|
|
111
|
-
declare function realtimeMutableProvider({
|
|
112
|
-
socket,
|
|
113
|
-
userKey,
|
|
114
|
-
store
|
|
115
|
-
}: ServerConfig): <Core extends Transceiver<any, Json.Serializable, Json.Serializable>>(token: AtomIO.MutableAtomToken<Core>) => () => void;
|
|
116
|
-
//#endregion
|
|
117
98
|
//#region src/realtime-server/server-config.d.ts
|
|
118
99
|
type ServerConfig = {
|
|
119
100
|
socket: Socket;
|
|
120
101
|
userKey: UserKey;
|
|
121
102
|
store?: RootStore;
|
|
122
103
|
};
|
|
104
|
+
/** Socket Handshake details--taken from socket.io */
|
|
105
|
+
type Handshake = {
|
|
106
|
+
/** The headers sent as part of the handshake */
|
|
107
|
+
headers: IncomingHttpHeaders;
|
|
108
|
+
/** The date of creation (as string) */
|
|
109
|
+
time: string;
|
|
110
|
+
/** The ip of the client */
|
|
111
|
+
address: string;
|
|
112
|
+
/** Whether the connection is cross-domain */
|
|
113
|
+
xdomain: boolean;
|
|
114
|
+
/** Whether the connection is secure */
|
|
115
|
+
secure: boolean;
|
|
116
|
+
/** The date of creation (as unix timestamp) */
|
|
117
|
+
issued: number;
|
|
118
|
+
/** The request URL string */
|
|
119
|
+
url: string;
|
|
120
|
+
/** The query object */
|
|
121
|
+
query: ParsedUrlQuery;
|
|
122
|
+
/** The auth object */
|
|
123
|
+
auth: {
|
|
124
|
+
[key: string]: any;
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
declare function realtime(server: Server, auth: (handshake: Handshake) => Loadable<Error | UserKey>, onConnect: (config: ServerConfig) => Loadable<() => Loadable<void>>, store?: RootStore): () => Promise<void>;
|
|
123
128
|
//#endregion
|
|
124
|
-
//#region src/realtime-server/
|
|
125
|
-
declare function provideIdentity({
|
|
126
|
-
store,
|
|
127
|
-
socket,
|
|
128
|
-
userKey
|
|
129
|
-
}: ServerConfig): void;
|
|
130
|
-
//#endregion
|
|
131
|
-
//#region src/realtime-server/realtime-server-stores/provide-rooms.d.ts
|
|
129
|
+
//#region src/realtime-server/provide-rooms.d.ts
|
|
132
130
|
type RoomMap = Map<string, ChildSocket<any, any, ChildProcessWithoutNullStreams>>;
|
|
133
131
|
declare global {
|
|
134
132
|
var ATOM_IO_REALTIME_SERVER_ROOMS: RoomMap;
|
|
@@ -180,19 +178,33 @@ declare function provideRooms<RoomNames extends string>({
|
|
|
180
178
|
store,
|
|
181
179
|
socket,
|
|
182
180
|
resolveRoomScript,
|
|
183
|
-
roomNames
|
|
184
|
-
|
|
181
|
+
roomNames,
|
|
182
|
+
userKey
|
|
183
|
+
}: ProvideRoomsConfig<RoomNames> & ServerConfig): () => void;
|
|
185
184
|
//#endregion
|
|
186
|
-
//#region src/realtime-server/realtime-
|
|
187
|
-
type
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
185
|
+
//#region src/realtime-server/realtime-family-provider.d.ts
|
|
186
|
+
type FamilyProvider = ReturnType<typeof realtimeAtomFamilyProvider>;
|
|
187
|
+
declare function realtimeAtomFamilyProvider({
|
|
188
|
+
socket,
|
|
189
|
+
userKey,
|
|
190
|
+
store
|
|
191
|
+
}: ServerConfig): <J extends Json.Serializable, K extends Canonical>(family: AtomIO.RegularAtomFamilyToken<J, K>, index: AtomIO.ReadableToken<Iterable<NoInfer<K>>>) => () => void;
|
|
192
|
+
//#endregion
|
|
193
|
+
//#region src/realtime-server/realtime-mutable-family-provider.d.ts
|
|
194
|
+
type MutableFamilyProvider = ReturnType<typeof realtimeMutableFamilyProvider>;
|
|
195
|
+
declare function realtimeMutableFamilyProvider({
|
|
196
|
+
socket,
|
|
197
|
+
userKey,
|
|
198
|
+
store
|
|
199
|
+
}: ServerConfig): <T extends Transceiver<any, any, any>, K extends Canonical>(family: AtomIO.MutableAtomFamilyToken<T, K>, index: AtomIO.ReadableToken<Iterable<NoInfer<K>>>) => () => void;
|
|
200
|
+
//#endregion
|
|
201
|
+
//#region src/realtime-server/realtime-mutable-provider.d.ts
|
|
202
|
+
type MutableProvider = ReturnType<typeof realtimeMutableProvider>;
|
|
203
|
+
declare function realtimeMutableProvider({
|
|
204
|
+
socket,
|
|
205
|
+
userKey,
|
|
206
|
+
store
|
|
207
|
+
}: ServerConfig): <Core extends Transceiver<any, Json.Serializable, Json.Serializable>>(token: AtomIO.MutableAtomToken<Core>) => () => void;
|
|
196
208
|
//#endregion
|
|
197
209
|
//#region src/realtime-server/realtime-state-provider.d.ts
|
|
198
210
|
type StateProvider = ReturnType<typeof realtimeStateProvider>;
|
|
@@ -200,14 +212,25 @@ declare function realtimeStateProvider({
|
|
|
200
212
|
socket,
|
|
201
213
|
userKey,
|
|
202
214
|
store
|
|
203
|
-
}: ServerConfig): <
|
|
215
|
+
}: ServerConfig): <C extends Json.Serializable, S extends C>(clientToken: AtomIO.WritableToken<C>, serverData?: AtomIO.ReadableToken<S> | S) => () => void;
|
|
204
216
|
//#endregion
|
|
205
217
|
//#region src/realtime-server/realtime-state-receiver.d.ts
|
|
206
218
|
type StateReceiver = ReturnType<typeof realtimeStateReceiver>;
|
|
207
219
|
declare function realtimeStateReceiver({
|
|
208
220
|
socket,
|
|
221
|
+
userKey,
|
|
209
222
|
store
|
|
210
|
-
}: ServerConfig): <S extends Json.Serializable, C extends S>(clientToken: WritableToken<C>, serverToken?: WritableToken<S>) => () => void;
|
|
223
|
+
}: ServerConfig): <S extends Json.Serializable, C extends S>(schema: StandardSchemaV1<unknown, C>, clientToken: WritableToken<C>, serverToken?: WritableToken<S>) => () => void;
|
|
224
|
+
//#endregion
|
|
225
|
+
//#region src/realtime-server/server-socket-state.d.ts
|
|
226
|
+
type SocketSystemHierarchy = Hierarchy<[{
|
|
227
|
+
above: `root`;
|
|
228
|
+
below: [UserKey, SocketKey, RoomKey];
|
|
229
|
+
}]>;
|
|
230
|
+
declare const socketAtoms: RegularAtomFamilyToken<Socket | null, SocketKey>;
|
|
231
|
+
declare const socketKeysAtom: MutableAtomToken<UList<SocketKey>>;
|
|
232
|
+
declare const userKeysAtom: MutableAtomToken<UList<UserKey>>;
|
|
233
|
+
declare const usersOfSockets: JoinToken<`user`, UserKey, `socket`, SocketKey, `1:1`>;
|
|
211
234
|
//#endregion
|
|
212
|
-
export { ChildProcess, ChildSocket, CustomSocket, DestroyRoomConfig, EventBuffer, EventPayload, Events, FamilyProvider, MutableFamilyProvider, MutableProvider, ParentProcess, ParentSocket, ProvideContinuity, ProvideEnterAndExitConfig, ProvideRoomsConfig, ROOMS, RoomMap, ServerConfig, SocketSystemHierarchy, SpawnRoomConfig, StateProvider, StateReceiver, StderrLog, SubjectSocket, destroyRoom, prepareToProvideContinuity, provideEnterAndExit,
|
|
235
|
+
export { ChildProcess, ChildSocket, CustomSocket, DestroyRoomConfig, EventBuffer, EventPayload, Events, FamilyProvider, Handshake, MutableFamilyProvider, MutableProvider, 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 };
|
|
213
236
|
//# 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>"
|
|
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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"}
|