@agentshouse/mdruntime 0.1.0-c0136de3edfbe → 0.1.0-c014edb0e9d9b
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/README.md +8 -8
- package/dist/acceptance.d.ts +0 -3
- package/dist/acceptance.d.ts.map +1 -1
- package/dist/acceptance.js +74 -145
- package/dist/act-lanes.d.ts +33 -0
- package/dist/act-lanes.d.ts.map +1 -0
- package/dist/act-lanes.js +177 -0
- package/dist/actions.d.ts +7 -2
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +44 -31
- package/dist/adapter.d.ts +30 -44
- package/dist/adapter.d.ts.map +1 -1
- package/dist/bootstrap.d.ts +1 -1
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +6 -18
- package/dist/change-set.d.ts +4 -0
- package/dist/change-set.d.ts.map +1 -1
- package/dist/change-set.js +6 -0
- package/dist/change.d.ts.map +1 -1
- package/dist/change.js +4 -2
- package/dist/chat-types.d.ts +2 -0
- package/dist/chat-types.d.ts.map +1 -1
- package/dist/chat-types.js +11 -0
- package/dist/client.d.ts +9 -12
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +29 -14
- package/dist/collection.d.ts +22 -4
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +12 -2
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +15 -21
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +30 -17
- package/dist/conversation-live.d.ts +138 -0
- package/dist/conversation-live.d.ts.map +1 -0
- package/dist/conversation-live.js +249 -0
- package/dist/conversation-row.d.ts.map +1 -1
- package/dist/conversation-row.js +7 -1
- package/dist/conversation.d.ts +44 -44
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +904 -1024
- package/dist/declaration.d.ts +10 -0
- package/dist/declaration.d.ts.map +1 -0
- package/dist/declaration.js +24 -0
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +18 -40
- package/dist/durability.d.ts +12 -0
- package/dist/durability.d.ts.map +1 -1
- package/dist/expectation.d.ts +4 -2
- package/dist/expectation.d.ts.map +1 -1
- package/dist/expectation.js +33 -11
- package/dist/failure.d.ts +3 -0
- package/dist/failure.d.ts.map +1 -1
- package/dist/failure.js +6 -0
- package/dist/figures.d.ts +1 -0
- package/dist/figures.d.ts.map +1 -1
- package/dist/figures.js +2 -2
- package/dist/holdings.d.ts +29 -0
- package/dist/holdings.d.ts.map +1 -0
- package/dist/holdings.js +95 -0
- package/dist/host.d.ts +17 -2
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +38 -8
- package/dist/index.d.ts +13 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -3
- package/dist/install.d.ts +1 -3
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +49 -70
- package/dist/lifecycle.d.ts +1 -1
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +42 -30
- package/dist/listing.d.ts +6 -11
- package/dist/listing.d.ts.map +1 -1
- package/dist/listing.js +25 -61
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +3 -3
- package/dist/locks.d.ts +2 -4
- package/dist/locks.d.ts.map +1 -1
- package/dist/locks.js +10 -38
- package/dist/lost.d.ts.map +1 -1
- package/dist/lost.js +10 -21
- package/dist/media.d.ts +1 -1
- package/dist/media.d.ts.map +1 -1
- package/dist/media.js +4 -4
- package/dist/memory.d.ts +4 -2
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +38 -20
- package/dist/messages.d.ts +1 -4
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +14 -32
- package/dist/model.d.ts +0 -1
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +0 -5
- package/dist/models.d.ts +4 -8
- package/dist/models.d.ts.map +1 -1
- package/dist/models.js +97 -134
- package/dist/observation.d.ts.map +1 -1
- package/dist/observation.js +12 -17
- package/dist/opened.d.ts +1 -1
- package/dist/opened.d.ts.map +1 -1
- package/dist/opened.js +5 -5
- package/dist/opening.d.ts.map +1 -1
- package/dist/opening.js +8 -5
- package/dist/outcome.d.ts +6 -1
- package/dist/outcome.d.ts.map +1 -1
- package/dist/outcome.js +15 -0
- package/dist/overlay.d.ts +2 -1
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +32 -21
- package/dist/page-metadata.d.ts +8 -0
- package/dist/page-metadata.d.ts.map +1 -0
- package/dist/page-metadata.js +19 -0
- package/dist/parts.d.ts +3 -51
- package/dist/parts.d.ts.map +1 -1
- package/dist/parts.js +14 -111
- package/dist/paths.d.ts +1 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +22 -0
- package/dist/preparation.d.ts.map +1 -1
- package/dist/preparation.js +22 -15
- package/dist/presence.d.ts +52 -0
- package/dist/presence.d.ts.map +1 -0
- package/dist/presence.js +220 -0
- package/dist/queries.d.ts +1 -1
- package/dist/queries.d.ts.map +1 -1
- package/dist/queries.js +5 -7
- package/dist/query.d.ts +0 -1
- package/dist/query.d.ts.map +1 -1
- package/dist/questions.d.ts +2 -0
- package/dist/questions.d.ts.map +1 -1
- package/dist/questions.js +5 -1
- package/dist/queue.d.ts +40 -0
- package/dist/queue.d.ts.map +1 -0
- package/dist/queue.js +455 -0
- package/dist/reach.d.ts.map +1 -1
- package/dist/reach.js +28 -9
- package/dist/react.d.ts +15 -0
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +15 -1
- package/dist/readiness.d.ts +0 -1
- package/dist/readiness.d.ts.map +1 -1
- package/dist/reads.d.ts +4 -1
- package/dist/reads.d.ts.map +1 -1
- package/dist/reads.js +47 -5
- package/dist/refresh.js +2 -2
- package/dist/refusal.d.ts.map +1 -1
- package/dist/refusal.js +5 -4
- package/dist/replica.d.ts +5 -10
- package/dist/replica.d.ts.map +1 -1
- package/dist/replica.js +15 -16
- package/dist/retried.d.ts +30 -0
- package/dist/retried.d.ts.map +1 -0
- package/dist/retried.js +72 -0
- package/dist/room-draft.d.ts +4 -6
- package/dist/room-draft.d.ts.map +1 -1
- package/dist/room-draft.js +36 -52
- package/dist/room-drafts.d.ts.map +1 -1
- package/dist/room-drafts.js +17 -16
- package/dist/rows.d.ts.map +1 -1
- package/dist/rows.js +3 -4
- package/dist/runtime.d.ts +11 -17
- package/dist/runtime.d.ts.map +1 -1
- package/dist/save.d.ts +41 -86
- package/dist/save.d.ts.map +1 -1
- package/dist/save.js +232 -112
- package/dist/saves.d.ts +2 -40
- package/dist/saves.d.ts.map +1 -1
- package/dist/saves.js +107 -698
- package/dist/seed.d.ts.map +1 -1
- package/dist/seed.js +2 -3
- package/dist/shared.d.ts +1 -6
- package/dist/shared.d.ts.map +1 -1
- package/dist/shared.js +13 -95
- package/dist/shown.d.ts +4 -3
- package/dist/shown.d.ts.map +1 -1
- package/dist/shown.js +29 -33
- package/dist/socket/lanes.d.ts +2 -1
- package/dist/socket/lanes.d.ts.map +1 -1
- package/dist/socket/lanes.js +5 -2
- package/dist/socket/session.d.ts +0 -1
- package/dist/socket/session.d.ts.map +1 -1
- package/dist/socket.d.ts +2 -4
- package/dist/socket.d.ts.map +1 -1
- package/dist/socket.js +4 -8
- package/dist/source.d.ts.map +1 -1
- package/dist/source.js +5 -4
- package/dist/store/records.d.ts +4 -4
- package/dist/store/records.d.ts.map +1 -1
- package/dist/store/records.js +33 -11
- package/dist/store/space.d.ts +1 -1
- package/dist/store/space.d.ts.map +1 -1
- package/dist/store/space.js +0 -2
- package/dist/store/watchers.js +1 -2
- package/dist/store.d.ts +11 -6
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +38 -13
- package/dist/stored.d.ts +1 -1
- package/dist/stored.d.ts.map +1 -1
- package/dist/stored.js +22 -10
- package/dist/surface.d.ts +4 -2
- package/dist/surface.d.ts.map +1 -1
- package/dist/surface.js +20 -14
- package/dist/sync.d.ts +0 -1
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +91 -82
- package/dist/tables.d.ts +13 -8
- package/dist/tables.d.ts.map +1 -1
- package/dist/tables.js +25 -12
- package/dist/tallies.js +5 -5
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +2 -2
- package/dist/wire.d.ts +41 -4
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +13 -3
- package/package.json +3 -2
- package/dist/attempt.d.ts +0 -16
- package/dist/attempt.d.ts.map +0 -1
- package/dist/attempt.js +0 -70
- package/dist/job.d.ts +0 -33
- package/dist/job.d.ts.map +0 -1
- package/dist/job.js +0 -54
- package/dist/socket/rooms.d.ts +0 -43
- package/dist/socket/rooms.d.ts.map +0 -1
- package/dist/socket/rooms.js +0 -90
- package/dist/store/fences.d.ts +0 -16
- package/dist/store/fences.d.ts.map +0 -1
- package/dist/store/fences.js +0 -26
package/dist/seed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../src/seed.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAS,KAAK,WAAW,EAAqB,MAAM,kBAAkB,CAAC;AAC9E,OAAO,KAAK,EAAE,IAAI,EAA4C,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;CACpF,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,CAAC;AAEjG,KAAK,WAAW,GAAG,CACjB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,KAAK,KAAK,EACjD,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KAChC,MAAM,IAAI,CAAC;AA0ChB,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAe5D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../src/seed.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAS,KAAK,WAAW,EAAqB,MAAM,kBAAkB,CAAC;AAC9E,OAAO,KAAK,EAAE,IAAI,EAA4C,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;CACpF,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,CAAC;AAEjG,KAAK,WAAW,GAAG,CACjB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,KAAK,KAAK,EACjD,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KAChC,MAAM,IAAI,CAAC;AA0ChB,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAe5D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAmBtD;AA+BD,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAOxF;AAYD,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAMlE;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,WAAW,GACjB,MAAM,IAAI,CA4BZ"}
|
package/dist/seed.js
CHANGED
|
@@ -62,7 +62,6 @@ export function seededResult(seed) {
|
|
|
62
62
|
generation,
|
|
63
63
|
current: false,
|
|
64
64
|
})),
|
|
65
|
-
indexes: [],
|
|
66
65
|
overlay: [],
|
|
67
66
|
};
|
|
68
67
|
if ('groups' in seed.rows) {
|
|
@@ -83,9 +82,9 @@ function seedRoomHeld({ socket }, room, version, held) {
|
|
|
83
82
|
socket.reads.reached(room, stored.roomVersion, version));
|
|
84
83
|
}
|
|
85
84
|
function seedHeld(runtime, at, held) {
|
|
86
|
-
const { socket } = runtime;
|
|
85
|
+
const { socket, presence } = runtime;
|
|
87
86
|
return Object.entries(at).every(([room, version]) => (socket.session.now().roomsListed &&
|
|
88
|
-
|
|
87
|
+
presence.room(room) === undefined &&
|
|
89
88
|
!held.rooms.has(room)) ||
|
|
90
89
|
seedRoomHeld(runtime, room, version, held));
|
|
91
90
|
}
|
package/dist/shared.d.ts
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
export type Paths<V> = Readonly<Record<string, V>>;
|
|
2
|
+
export declare function guarding<V>(values: Paths<V>, handler: ProxyHandler<Paths<V>>): Paths<V>;
|
|
2
3
|
export declare function entriesIn<V>(map: Paths<V>): Generator<readonly [string, V]>;
|
|
3
4
|
export declare function sortedKeys(map: Paths<unknown>): Generator<number, readonly string[], void>;
|
|
4
5
|
export declare function sorting(keys: Iterable<string>): Generator<number, readonly string[], void>;
|
|
5
|
-
export declare function sharing<V>(map: Paths<V>): Generator<number, Paths<V>, void>;
|
|
6
|
-
export declare function shared<V>(map: Paths<V>): Paths<V>;
|
|
7
|
-
export declare function patched<V>(base: Paths<V>, set: Iterable<readonly [string, V]>, removed?: Iterable<string>): Paths<V>;
|
|
8
6
|
export declare function patching<V>(base: Paths<V>, set: Iterable<readonly [string, V]>, removed?: Iterable<string>): Generator<number, Paths<V>, void>;
|
|
9
|
-
export declare function sizeOf<V>(map: Paths<V>): number;
|
|
10
|
-
export declare function differences<V>(left: Paths<V>, right: Paths<V>, same?: (left: V, right: V) => boolean): Generator<number, ReadonlySet<string>, void>;
|
|
11
|
-
export declare function differing<V>(left: Paths<V>, right: Paths<V>, same?: (left: V, right: V) => boolean): ReadonlySet<string>;
|
|
12
7
|
export declare function drafted<V>(base: Paths<V>): Record<string, V>;
|
|
13
8
|
export declare function settled<V>(draft: Record<string, V>): Paths<V>;
|
|
14
9
|
export declare function settling<V>(draft: Record<string, V>): Generator<number, Paths<V>, void>;
|
package/dist/shared.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AA8LnD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAIvF;AAED,wBAAiB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAQ5E;AAqCD,wBAAiB,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,CAAC,CAE3F;AAED,wBAAiB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,CAAC,CAoB3F;AAED,wBAAiB,QAAQ,CAAC,CAAC,EACzB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EACd,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EACnC,OAAO,GAAE,QAAQ,CAAC,MAAM,CAAM,GAC7B,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAgBnC;AAMD,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAiD5D;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAE7D;AAED,wBAAiB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAUxF"}
|
package/dist/shared.js
CHANGED
|
@@ -100,21 +100,15 @@ function lone(node) {
|
|
|
100
100
|
}
|
|
101
101
|
function taken(node, hash, key, shift) {
|
|
102
102
|
if (isLeaf(node))
|
|
103
|
-
return
|
|
103
|
+
return undefined;
|
|
104
104
|
if (isCollision(node)) {
|
|
105
105
|
const leaves = node.leaves.filter((leaf) => leaf.key !== key);
|
|
106
|
-
if (leaves.length === node.leaves.length)
|
|
107
|
-
return node;
|
|
108
106
|
return leaves.length === 1 ? leaves[0] : { hash: node.hash, leaves };
|
|
109
107
|
}
|
|
110
108
|
const bit = 1 << fragment(hash, shift);
|
|
111
|
-
if ((node.bitmap & bit) === 0)
|
|
112
|
-
return node;
|
|
113
109
|
const at = slot(node.bitmap, bit);
|
|
114
110
|
const child = node.children[at];
|
|
115
111
|
const next = taken(child, hash, key, shift + BITS);
|
|
116
|
-
if (next === child)
|
|
117
|
-
return node;
|
|
118
112
|
if (next === undefined) {
|
|
119
113
|
if (node.children.length === 1)
|
|
120
114
|
return undefined;
|
|
@@ -179,11 +173,18 @@ function facade(root) {
|
|
|
179
173
|
roots.set(map, root);
|
|
180
174
|
return map;
|
|
181
175
|
}
|
|
176
|
+
const guarded = new WeakMap();
|
|
177
|
+
export function guarding(values, handler) {
|
|
178
|
+
const map = new Proxy(values, handler);
|
|
179
|
+
guarded.set(map, values);
|
|
180
|
+
return map;
|
|
181
|
+
}
|
|
182
182
|
export function* entriesIn(map) {
|
|
183
183
|
const root = roots.get(map);
|
|
184
184
|
if (root === undefined) {
|
|
185
|
-
|
|
186
|
-
|
|
185
|
+
const values = guarded.get(map) ?? map;
|
|
186
|
+
for (const key of Object.keys(values))
|
|
187
|
+
yield [key, values[key]];
|
|
187
188
|
return;
|
|
188
189
|
}
|
|
189
190
|
for (const leaf of leavesOf(root.node))
|
|
@@ -194,13 +195,11 @@ function* rooted(map) {
|
|
|
194
195
|
if (held !== undefined)
|
|
195
196
|
return held;
|
|
196
197
|
let node;
|
|
197
|
-
let size = 0;
|
|
198
198
|
for (const [key, value] of entriesIn(map)) {
|
|
199
199
|
node = put(node, { key, hash: hashOf(key), value }, 0);
|
|
200
|
-
size += 1;
|
|
201
200
|
yield ROW_WEIGHT;
|
|
202
201
|
}
|
|
203
|
-
return { node
|
|
202
|
+
return { node };
|
|
204
203
|
}
|
|
205
204
|
const RUN = 1 << 10;
|
|
206
205
|
function* merged(left, right) {
|
|
@@ -244,106 +243,25 @@ export function* sorting(keys) {
|
|
|
244
243
|
}
|
|
245
244
|
return runs[0] ?? [];
|
|
246
245
|
}
|
|
247
|
-
export function* sharing(map) {
|
|
248
|
-
return roots.has(map) ? map : facade(yield* rooted(map));
|
|
249
|
-
}
|
|
250
|
-
export function shared(map) {
|
|
251
|
-
return finished(sharing(map));
|
|
252
|
-
}
|
|
253
|
-
export function patched(base, set, removed = []) {
|
|
254
|
-
return finished(patching(base, set, removed));
|
|
255
|
-
}
|
|
256
246
|
export function* patching(base, set, removed = []) {
|
|
257
247
|
const root = yield* rooted(base);
|
|
258
248
|
let node = root.node;
|
|
259
|
-
let size = root.size;
|
|
260
249
|
for (const key of removed) {
|
|
261
250
|
if (node === undefined)
|
|
262
251
|
break;
|
|
263
|
-
const before = lookup({ node
|
|
252
|
+
const before = lookup({ node }, key);
|
|
264
253
|
if (before === undefined)
|
|
265
254
|
continue;
|
|
266
255
|
node = taken(node, before.hash, key, 0);
|
|
267
|
-
size -= 1;
|
|
268
256
|
yield ROW_WEIGHT;
|
|
269
257
|
}
|
|
270
258
|
for (const [key, value] of set) {
|
|
271
|
-
const before = lookup({ node, size }, key);
|
|
272
259
|
node = put(node, { key, hash: hashOf(key), value }, 0);
|
|
273
|
-
if (before === undefined)
|
|
274
|
-
size += 1;
|
|
275
260
|
yield ROW_WEIGHT;
|
|
276
261
|
}
|
|
277
262
|
if (node === root.node && roots.has(base))
|
|
278
263
|
return base;
|
|
279
|
-
return facade({ node
|
|
280
|
-
}
|
|
281
|
-
export function sizeOf(map) {
|
|
282
|
-
return roots.get(map)?.size ?? Object.keys(map).length;
|
|
283
|
-
}
|
|
284
|
-
function* compared(left, right, same, into) {
|
|
285
|
-
const pending = [[left, right]];
|
|
286
|
-
for (let pair = pending.pop(); pair !== undefined; pair = pending.pop()) {
|
|
287
|
-
const [one, other] = pair;
|
|
288
|
-
if (one === other)
|
|
289
|
-
continue;
|
|
290
|
-
if (one !== undefined &&
|
|
291
|
-
other !== undefined &&
|
|
292
|
-
!isLeaf(one) &&
|
|
293
|
-
!isCollision(one) &&
|
|
294
|
-
!isLeaf(other) &&
|
|
295
|
-
!isCollision(other)) {
|
|
296
|
-
const children = [];
|
|
297
|
-
for (let remaining = one.bitmap | other.bitmap; remaining !== 0; remaining &= remaining - 1) {
|
|
298
|
-
const bit = remaining & -remaining;
|
|
299
|
-
children.push([
|
|
300
|
-
(one.bitmap & bit) === 0 ? undefined : one.children[slot(one.bitmap, bit)],
|
|
301
|
-
(other.bitmap & bit) === 0 ? undefined : other.children[slot(other.bitmap, bit)],
|
|
302
|
-
]);
|
|
303
|
-
}
|
|
304
|
-
pending.push(...children.reverse());
|
|
305
|
-
continue;
|
|
306
|
-
}
|
|
307
|
-
const before = new Map();
|
|
308
|
-
for (const leaf of leavesOf(one)) {
|
|
309
|
-
before.set(leaf.key, leaf.value);
|
|
310
|
-
yield ROW_WEIGHT;
|
|
311
|
-
}
|
|
312
|
-
for (const leaf of leavesOf(other)) {
|
|
313
|
-
const held = before.get(leaf.key);
|
|
314
|
-
before.delete(leaf.key);
|
|
315
|
-
if (held === undefined || !same(held, leaf.value))
|
|
316
|
-
into.add(leaf.key);
|
|
317
|
-
yield ROW_WEIGHT;
|
|
318
|
-
}
|
|
319
|
-
for (const key of before.keys())
|
|
320
|
-
into.add(key);
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
export function* differences(left, right, same = Object.is) {
|
|
324
|
-
const into = new Set();
|
|
325
|
-
if (left === right)
|
|
326
|
-
return into;
|
|
327
|
-
const leftRoot = roots.get(left);
|
|
328
|
-
const rightRoot = roots.get(right);
|
|
329
|
-
if (leftRoot !== undefined && rightRoot !== undefined) {
|
|
330
|
-
yield* compared(leftRoot.node, rightRoot.node, same, into);
|
|
331
|
-
return into;
|
|
332
|
-
}
|
|
333
|
-
for (const [key, value] of entriesIn(left)) {
|
|
334
|
-
if (!Object.hasOwn(right, key) || !same(value, right[key]))
|
|
335
|
-
into.add(key);
|
|
336
|
-
yield ROW_WEIGHT;
|
|
337
|
-
}
|
|
338
|
-
for (const [key] of entriesIn(right)) {
|
|
339
|
-
if (!Object.hasOwn(left, key))
|
|
340
|
-
into.add(key);
|
|
341
|
-
yield ROW_WEIGHT;
|
|
342
|
-
}
|
|
343
|
-
return into;
|
|
344
|
-
}
|
|
345
|
-
export function differing(left, right, same = Object.is) {
|
|
346
|
-
return finished(differences(left, right, same));
|
|
264
|
+
return facade({ node });
|
|
347
265
|
}
|
|
348
266
|
const drafts = new WeakMap();
|
|
349
267
|
const GONE = Symbol('gone');
|
package/dist/shown.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type
|
|
1
|
+
import type { Member } from './adapter.js';
|
|
2
|
+
import { type ChangeSet } from './change-set.js';
|
|
3
3
|
import type { QueueEntry } from './outcome.js';
|
|
4
4
|
import type { Runtime } from './runtime.js';
|
|
5
5
|
import type { Live, Moving } from './socket.js';
|
|
@@ -26,6 +26,7 @@ export declare function transferring({ socket }: Runtime): Moving;
|
|
|
26
26
|
export declare function pendingShown(runtime: Runtime): Promise<void>;
|
|
27
27
|
export declare function entriesOf(runtime: Runtime, locator: string): Promise<readonly QueueEntry[]>;
|
|
28
28
|
export declare function publishChangeSet(runtime: Runtime, set: ChangeSet): Promise<void>;
|
|
29
|
-
export declare function
|
|
29
|
+
export declare function submissionDue(runtime: Runtime, locators?: readonly string[]): Promise<void>;
|
|
30
|
+
export declare function roomUnreadable(runtime: Runtime, locator: string): void;
|
|
30
31
|
export declare function rest(runtime: Runtime, progress: CycleProgress | null, live?: Live): Promise<void>;
|
|
31
32
|
//# sourceMappingURL=shown.d.ts.map
|
package/dist/shown.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shown.d.ts","sourceRoot":"","sources":["../src/shown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"shown.d.ts","sourceRoot":"","sources":["../src/shown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAA8B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAA6B,KAAK,aAAa,EAAmB,MAAM,aAAa,CAAC;AAiB7F,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAO,MAAM,YAAY,gBAAgB,CAAC;AAE1C,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAElD,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAEjD,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAEjD,eAAO,MAAM,YAAY,WAAW,CAAC;AAErC,eAAO,MAAM,eAAe,sBAAsB,CAAC;AAEnD,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAO,MAAM,UAAU,YAAa,MAAM,WAA4B,CAAC;AAqCvE,wBAAgB,YAAY,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,OAAO,QAG7D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAMtF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAI9C;AA6ED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,QAK3C;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,QAGjD;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,QAEnE;AAsBD,wBAAgB,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAepD;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;AAED,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,GAAG,MAAM,CAExD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAK5D;AAYD,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAGjG;AAcD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBhF;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjG;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,QAG/D;AAED,wBAAsB,IAAI,CACxB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,GAAG,IAAI,EAC9B,IAAI,GAAE,IAAqC,iBA6B5C"}
|
package/dist/shown.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { changeSet, mergeChangeSets } from './change-set.js';
|
|
2
|
+
import { conversationsChanged, conversationsLearned } from './conversation.js';
|
|
3
|
+
import { listingNow, patchedListing, shownRooms } from './listing.js';
|
|
2
4
|
import { emitPresentation, publishRoomDrafts } from './room-drafts.js';
|
|
3
5
|
import { same } from './status.js';
|
|
4
6
|
export const ROOMS_TOPIC = 'rooms';
|
|
@@ -11,9 +13,8 @@ export const AUTHORITY_TOPIC = 'authority-changes';
|
|
|
11
13
|
export const LOCKS_TOPIC = 'locks';
|
|
12
14
|
export const queueTopic = (locator) => `queue\u0000${locator}`;
|
|
13
15
|
async function attended({ store, localSaves }) {
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const attentionRequired = held.returned.flatMap((record) => record.returned === null || isFenced(record.locator)
|
|
16
|
+
const held = await store.status();
|
|
17
|
+
const attentionRequired = held.returned.flatMap((record) => record.returned === null
|
|
17
18
|
? []
|
|
18
19
|
: [{ room: record.locator, path: record.path, returned: structuredClone(record.returned) }]);
|
|
19
20
|
attentionRequired.sort((left, right) => {
|
|
@@ -25,25 +26,22 @@ async function attended({ store, localSaves }) {
|
|
|
25
26
|
});
|
|
26
27
|
const changed = new Map();
|
|
27
28
|
if (!localSaves) {
|
|
28
|
-
for (const change of held.unsent)
|
|
29
|
-
|
|
30
|
-
changed.set(`${change.room}\u0000${change.path}`, change);
|
|
31
|
-
}
|
|
29
|
+
for (const change of held.unsent)
|
|
30
|
+
changed.set(`${change.room}\u0000${change.path}`, change);
|
|
32
31
|
}
|
|
33
32
|
const unsent = [...changed]
|
|
34
33
|
.sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0))
|
|
35
34
|
.map(([, change]) => change);
|
|
36
35
|
return {
|
|
37
|
-
queued: !localSaves && held.queued.
|
|
36
|
+
queued: !localSaves && held.queued.length > 0,
|
|
38
37
|
lastCompleted: held.lastCompleted,
|
|
39
38
|
attentionRequired,
|
|
40
39
|
unsent,
|
|
41
|
-
reset: held.resets.reduce((earliest, {
|
|
40
|
+
reset: held.resets.reduce((earliest, { reset }) => (earliest !== null && earliest <= reset ? earliest : reset), null),
|
|
42
41
|
};
|
|
43
42
|
}
|
|
44
43
|
async function queuedWork({ store, localSaves }) {
|
|
45
|
-
|
|
46
|
-
return !localSaves && held.some((locator) => !store.fences.has(locator));
|
|
44
|
+
return !localSaves && (await store.queued()).length > 0;
|
|
47
45
|
}
|
|
48
46
|
export function recoverReads({ liveQueries, figures }) {
|
|
49
47
|
liveQueries.recover();
|
|
@@ -57,7 +55,7 @@ export function emitRooms(runtime, changed) {
|
|
|
57
55
|
: publishRooms(runtime, 'changed', changed);
|
|
58
56
|
}
|
|
59
57
|
export function emitKnownRooms(runtime) {
|
|
60
|
-
runtime.conversations
|
|
58
|
+
conversationsLearned(runtime.conversations);
|
|
61
59
|
if (runtime.store.watching(ROOMS_TOPIC, 'waiting').length === 0)
|
|
62
60
|
return;
|
|
63
61
|
void publishRooms(runtime, 'known');
|
|
@@ -87,9 +85,7 @@ async function deliverRooms(runtime, owed) {
|
|
|
87
85
|
if (patched === null && owed.changed.size > 0)
|
|
88
86
|
owed.all = true;
|
|
89
87
|
if (patched === null && !owed.all && owed.counted.size > 0) {
|
|
90
|
-
const held = await store.covering()
|
|
91
|
-
if (held === null)
|
|
92
|
-
return;
|
|
88
|
+
const held = await store.covering();
|
|
93
89
|
const { roomsShown } = store.device.now();
|
|
94
90
|
owed.all = [...owed.counted].some((locator) => held.rooms.has(locator) &&
|
|
95
91
|
roomsShown?.get(locator)?.documents !== held.rooms.get(locator).documents);
|
|
@@ -100,15 +96,15 @@ async function deliverRooms(runtime, owed) {
|
|
|
100
96
|
else if (waiting().length === 0)
|
|
101
97
|
return;
|
|
102
98
|
}
|
|
103
|
-
const listing = patched ?? (await listingNow(runtime)
|
|
104
|
-
if (
|
|
99
|
+
const listing = patched ?? (await listingNow(runtime));
|
|
100
|
+
if (socket.closed())
|
|
105
101
|
return;
|
|
106
|
-
const value = shownRooms(runtime, listing);
|
|
107
102
|
const { roomsListed, refusal, moving } = socket.session.now();
|
|
108
103
|
const joining = waiting().length > 0 &&
|
|
109
104
|
(roomsListed || listing.size > 0 || refusal !== null || moving.providerUnreachable);
|
|
110
105
|
if (!owed.all && patched === null && !joining)
|
|
111
106
|
return;
|
|
107
|
+
const value = shownRooms(runtime, listing);
|
|
112
108
|
const { roomsShown } = store.device.now();
|
|
113
109
|
const moved = owed.all ||
|
|
114
110
|
patched !== null ||
|
|
@@ -203,10 +199,7 @@ function entryOf({ localSaves }, states, batch) {
|
|
|
203
199
|
return Object.freeze({ batch, ...(state?.submission ?? { state: 'waiting' }) });
|
|
204
200
|
}
|
|
205
201
|
export async function entriesOf(runtime, locator) {
|
|
206
|
-
const {
|
|
207
|
-
if (store.fences.has(locator))
|
|
208
|
-
return [];
|
|
209
|
-
const { queue, states } = await store.work(locator);
|
|
202
|
+
const { queue, states } = await runtime.store.work(locator);
|
|
210
203
|
return queue.map((batch) => entryOf(runtime, states, batch));
|
|
211
204
|
}
|
|
212
205
|
function emitQueue(runtime, locator) {
|
|
@@ -249,23 +242,26 @@ export function publishChangeSet(runtime, set) {
|
|
|
249
242
|
}
|
|
250
243
|
for (const app of set.presentations)
|
|
251
244
|
shownNow.push(emitPresentation(runtime, app));
|
|
252
|
-
conversations
|
|
245
|
+
conversationsChanged(conversations, set);
|
|
253
246
|
return Promise.all(shownNow).then(() => undefined);
|
|
254
247
|
}
|
|
255
|
-
export function
|
|
256
|
-
|
|
257
|
-
|
|
248
|
+
export async function submissionDue(runtime, locators) {
|
|
249
|
+
const { store } = runtime;
|
|
250
|
+
const due = (await store.queued()).filter((locator) => locators === undefined || locators.includes(locator));
|
|
251
|
+
if (due.length === 0)
|
|
252
|
+
return;
|
|
253
|
+
await store.changed(mergeChangeSets(due.map((locator) => changeSet(locator, { due: true }))));
|
|
254
|
+
}
|
|
255
|
+
export function roomUnreadable(runtime, locator) {
|
|
256
|
+
runtime.presence.refused(locator, null);
|
|
258
257
|
emitRooms(runtime);
|
|
259
258
|
}
|
|
260
259
|
export async function rest(runtime, progress, live = () => !runtime.socket.closed()) {
|
|
261
|
-
const { store, socket } = runtime;
|
|
262
|
-
const { session, lanes
|
|
260
|
+
const { store, socket, presence } = runtime;
|
|
261
|
+
const { session, lanes } = socket;
|
|
263
262
|
if (!live())
|
|
264
263
|
return;
|
|
265
|
-
const settled = () => session.now().complete &&
|
|
266
|
-
lanes.roomWork() === 0 &&
|
|
267
|
-
!socket.naming() &&
|
|
268
|
-
rooms.standingWhere(({ stale }) => stale).length === 0;
|
|
264
|
+
const settled = () => session.now().complete && lanes.roomWork() === 0 && !socket.naming() && presence.settled();
|
|
269
265
|
let synced = settled();
|
|
270
266
|
if (synced && !session.now().recorded) {
|
|
271
267
|
const queued = await queuedWork(runtime).catch(() => true);
|
package/dist/socket/lanes.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ type LaneRules = {
|
|
|
3
3
|
generation(): number;
|
|
4
4
|
continuing(): boolean;
|
|
5
5
|
stopping(): boolean;
|
|
6
|
+
failed(locator: string, error: unknown): void;
|
|
6
7
|
};
|
|
7
8
|
export type Lanes = {
|
|
8
9
|
task(lane: string, work: (live: Live) => Promise<void>): Promise<void>;
|
|
@@ -15,6 +16,6 @@ export type Lanes = {
|
|
|
15
16
|
call(operation: string): void;
|
|
16
17
|
called(operation: string): void;
|
|
17
18
|
};
|
|
18
|
-
export declare function createLanes({ generation, continuing, stopping }: LaneRules): Lanes;
|
|
19
|
+
export declare function createLanes({ generation, continuing, stopping, failed }: LaneRules): Lanes;
|
|
19
20
|
export {};
|
|
20
21
|
//# sourceMappingURL=lanes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lanes.d.ts","sourceRoot":"","sources":["../../src/socket/lanes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC;AAIjC,KAAK,SAAS,GAAG;IACf,UAAU,IAAI,MAAM,CAAC;IACrB,UAAU,IAAI,OAAO,CAAC;IACtB,QAAQ,IAAI,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"lanes.d.ts","sourceRoot":"","sources":["../../src/socket/lanes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC;AAIjC,KAAK,SAAS,GAAG;IACf,UAAU,IAAI,MAAM,CAAC;IACrB,UAAU,IAAI,OAAO,CAAC;IACtB,QAAQ,IAAI,OAAO,CAAC;IACpB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,QAAQ,IAAI,MAAM,CAAC;IACnB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAIF,wBAAgB,WAAW,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,GAAG,KAAK,CAkF1F"}
|
package/dist/socket/lanes.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const ROOM_READS = 256;
|
|
2
|
-
export function createLanes({ generation, continuing, stopping }) {
|
|
2
|
+
export function createLanes({ generation, continuing, stopping, failed }) {
|
|
3
3
|
const lanes = new Map();
|
|
4
4
|
const roomLanes = new Map();
|
|
5
5
|
const roomReads = { free: ROOM_READS, waiting: [] };
|
|
@@ -59,7 +59,10 @@ export function createLanes({ generation, continuing, stopping }) {
|
|
|
59
59
|
roomTask(locator, work) {
|
|
60
60
|
if (stopping())
|
|
61
61
|
return Promise.resolve();
|
|
62
|
-
return inRoom(locator, (live) => admittedRead(() => work(live))).catch(() =>
|
|
62
|
+
return inRoom(locator, (live) => admittedRead(() => work(live))).catch((error) => {
|
|
63
|
+
if (!stopping())
|
|
64
|
+
failed(locator, error);
|
|
65
|
+
});
|
|
63
66
|
},
|
|
64
67
|
roomWork: () => roomWork,
|
|
65
68
|
current: () => Promise.all([...lanes.values()]
|
package/dist/socket/session.d.ts
CHANGED
|
@@ -6,7 +6,6 @@ export type RefusalReason = 'missing-required-guarantee' | 'revoked-authorizatio
|
|
|
6
6
|
export type ConnectionRefusalCode = Open<RefusalReason>;
|
|
7
7
|
export type ConnectionRefusal = {
|
|
8
8
|
code: ConnectionRefusalCode;
|
|
9
|
-
retryable: boolean;
|
|
10
9
|
reauthorizationOffered: boolean;
|
|
11
10
|
refusal: ProviderRefusal | null;
|
|
12
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/socket/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,MAAM,aAAa,GAAG,4BAA4B,GAAG,uBAAuB,CAAC;AAEnF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AAExD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/socket/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,MAAM,aAAa,GAAG,4BAA4B,GAAG,uBAAuB,CAAC;AAEnF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AAExD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,sBAAsB,EAAE,OAAO,CAAC;IAChC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;CACzC,CAAC;AAEF,wBAAgB,aAAa,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAqBrF"}
|
package/dist/socket.d.ts
CHANGED
|
@@ -2,13 +2,12 @@ import type { Adapter, Authorization, ConversationEvent, Discovery, HeldRoom, Ro
|
|
|
2
2
|
import type { Reads } from './bootstrap.js';
|
|
3
3
|
import type { Cell } from './cell.js';
|
|
4
4
|
import type { Log } from './log.js';
|
|
5
|
+
import type { Retries } from './retried.js';
|
|
5
6
|
import { type Admission } from './socket/admission.js';
|
|
6
7
|
import { type Answers } from './socket/answers.js';
|
|
7
8
|
import { type Lanes } from './socket/lanes.js';
|
|
8
|
-
import { type Rooms } from './socket/rooms.js';
|
|
9
9
|
import { type Session } from './socket/session.js';
|
|
10
10
|
export type { Live } from './socket/lanes.js';
|
|
11
|
-
export type { Declared, RoomDeclaration } from './socket/rooms.js';
|
|
12
11
|
export type { ConnectionRefusal, ConnectionRefusalCode, Moving, RefusalReason, } from './socket/session.js';
|
|
13
12
|
type SocketEvent = {
|
|
14
13
|
readonly kind: 'opened';
|
|
@@ -28,7 +27,6 @@ export type RuntimeSocket = Admission & Answers & {
|
|
|
28
27
|
readonly reads: Reads;
|
|
29
28
|
readonly streamed: boolean;
|
|
30
29
|
readonly session: Cell<Session>;
|
|
31
|
-
readonly rooms: Rooms;
|
|
32
30
|
readonly lanes: Lanes;
|
|
33
31
|
readonly ready: Promise<void>;
|
|
34
32
|
readonly firstDiscovery: Promise<void>;
|
|
@@ -66,5 +64,5 @@ export type RuntimeSocket = Admission & Answers & {
|
|
|
66
64
|
abortReads(): void;
|
|
67
65
|
stopReads(): void;
|
|
68
66
|
};
|
|
69
|
-
export declare function createSocket(adapter: Adapter, journal: Log, authorization: Authorization | undefined): RuntimeSocket;
|
|
67
|
+
export declare function createSocket(adapter: Adapter, journal: Log, retries: Retries, authorization: Authorization | undefined): RuntimeSocket;
|
|
70
68
|
//# sourceMappingURL=socket.d.ts.map
|
package/dist/socket.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,eAAe,EACf,WAAW,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"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"}
|
package/dist/socket.js
CHANGED
|
@@ -2,14 +2,12 @@ import { createAdmission } from './socket/admission.js';
|
|
|
2
2
|
import { createAnswers } from './socket/answers.js';
|
|
3
3
|
import { createLanes } from './socket/lanes.js';
|
|
4
4
|
import { createReads } from './socket/reads.js';
|
|
5
|
-
import { createRooms } from './socket/rooms.js';
|
|
6
5
|
import { createSession } from './socket/session.js';
|
|
7
|
-
export function createSocket(adapter, journal, authorization) {
|
|
6
|
+
export function createSocket(adapter, journal, retries, authorization) {
|
|
8
7
|
const held = createReads(adapter);
|
|
9
8
|
const admission = createAdmission();
|
|
10
9
|
const answers = createAnswers();
|
|
11
10
|
const session = createSession(authorization);
|
|
12
|
-
const rooms = createRooms();
|
|
13
11
|
let readyFromStore = () => { };
|
|
14
12
|
const ready = new Promise((resolve) => {
|
|
15
13
|
readyFromStore = resolve;
|
|
@@ -69,11 +67,11 @@ export function createSocket(adapter, journal, authorization) {
|
|
|
69
67
|
reads: held.reads,
|
|
70
68
|
streamed: adapter.roomStream !== undefined,
|
|
71
69
|
session,
|
|
72
|
-
rooms,
|
|
73
70
|
lanes: createLanes({
|
|
74
71
|
generation: () => generation,
|
|
75
72
|
continuing,
|
|
76
73
|
stopping: () => session.now().stopping,
|
|
74
|
+
failed: (locator, error) => retries.failed('download', locator, error),
|
|
77
75
|
}),
|
|
78
76
|
ready,
|
|
79
77
|
firstDiscovery,
|
|
@@ -101,7 +99,7 @@ export function createSocket(adapter, journal, authorization) {
|
|
|
101
99
|
},
|
|
102
100
|
observe(listen) {
|
|
103
101
|
const stream = adapter.roomStream;
|
|
104
|
-
if (stream === undefined
|
|
102
|
+
if (stream === undefined)
|
|
105
103
|
return;
|
|
106
104
|
withdrawStream = stream.observe((event) => {
|
|
107
105
|
const { closed, stopping } = session.now();
|
|
@@ -111,7 +109,7 @@ export function createSocket(adapter, journal, authorization) {
|
|
|
111
109
|
},
|
|
112
110
|
observeConversations(listen) {
|
|
113
111
|
const stream = adapter.conversations;
|
|
114
|
-
if (stream === undefined
|
|
112
|
+
if (stream === undefined)
|
|
115
113
|
return;
|
|
116
114
|
withdrawConversations = stream.observe(listen);
|
|
117
115
|
},
|
|
@@ -121,8 +119,6 @@ export function createSocket(adapter, journal, authorization) {
|
|
|
121
119
|
close() {
|
|
122
120
|
session.set({ closed: true });
|
|
123
121
|
notifyDiscovered();
|
|
124
|
-
rooms.unreadied();
|
|
125
|
-
rooms.connectionLive();
|
|
126
122
|
withdrawStream?.();
|
|
127
123
|
withdrawStream = undefined;
|
|
128
124
|
withdrawConversations?.();
|
package/dist/source.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GACnB;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IACtE,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAElF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAoChF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GACnB;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IACtE,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAElF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAoChF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,CA6ClF"}
|
package/dist/source.js
CHANGED
|
@@ -36,15 +36,16 @@ export function sourceOf(value, sender) {
|
|
|
36
36
|
return requestOf(source);
|
|
37
37
|
if (source.kind === 'trigger') {
|
|
38
38
|
const trigger = text(record(source.trigger), 'description');
|
|
39
|
-
const
|
|
40
|
-
const
|
|
41
|
-
|
|
39
|
+
const room = record(source.room);
|
|
40
|
+
const ref = text(room, 'ref');
|
|
41
|
+
const called = text(room, 'name');
|
|
42
|
+
return trigger === null || ref === null || called === null
|
|
42
43
|
? null
|
|
43
44
|
: {
|
|
44
45
|
kind: 'trigger',
|
|
45
46
|
customer: sender === 'customer',
|
|
46
47
|
trigger,
|
|
47
|
-
room: { ref, name:
|
|
48
|
+
room: { ref, name: called },
|
|
48
49
|
};
|
|
49
50
|
}
|
|
50
51
|
if (source.kind === 'conversation') {
|
package/dist/store/records.d.ts
CHANGED
|
@@ -7,7 +7,6 @@ import type { Submission } from '../outcome.js';
|
|
|
7
7
|
import type { RoomDraftRecord, SavedDraft } from '../room-draft.js';
|
|
8
8
|
import type { ModelState, StoredModel } from '../model.js';
|
|
9
9
|
import type { CommittedWrite, ConversationWrite, HeldConversation, HeldRow, HeldEntry, MessageWindow, QueryAnswer, QueryRoom, Referrer, ReplicaOpened, RoomCommit, RuntimeDatabase, StoredEntry, StoredFile, TypedEntry, View } from '../tables.js';
|
|
10
|
-
import type { JobMarker } from '../job.js';
|
|
11
10
|
export type { ConversationWrite, HeldConversation, MessageWindow } from '../tables.js';
|
|
12
11
|
export type TransferRecord = {
|
|
13
12
|
readonly locator: string;
|
|
@@ -126,6 +125,8 @@ export type Facts = {
|
|
|
126
125
|
readonly targets: Readonly<Record<string, TargetRecord>>;
|
|
127
126
|
readonly conversationList: readonly ListedConversation[] | null;
|
|
128
127
|
readonly conversationCursor: string | null;
|
|
128
|
+
readonly chatPins: readonly string[];
|
|
129
|
+
readonly openedTurns: Readonly<Record<string, string>>;
|
|
129
130
|
};
|
|
130
131
|
export type Commit = {
|
|
131
132
|
readonly rooms: readonly RoomCommit[];
|
|
@@ -165,7 +166,7 @@ export type RuntimeStore = {
|
|
|
165
166
|
entries(key: number, view: View, paths: readonly string[]): Promise<readonly HeldEntry[]>;
|
|
166
167
|
typed(key: number, view: View, paths: readonly string[]): Promise<readonly TypedEntry[]>;
|
|
167
168
|
referrers(key: number, view: View, targets: readonly string[]): Promise<readonly Referrer[]>;
|
|
168
|
-
folders(key: number,
|
|
169
|
+
folders(key: number, paths: readonly string[]): Promise<readonly string[]>;
|
|
169
170
|
typedWithin(key: number, view: View, roots: readonly string[], within: boolean): Promise<boolean>;
|
|
170
171
|
stage(record: TransferRecord, composition: Composition, page: StagedPage): Promise<number | null>;
|
|
171
172
|
resume(record: TransferRecord, composition: Composition, parts: readonly string[], published: number | null): Promise<ResumedTransfer | null>;
|
|
@@ -192,7 +193,6 @@ export type RuntimeStore = {
|
|
|
192
193
|
messageCount(conversation: string, phrase?: string | null): Promise<number>;
|
|
193
194
|
turnArrived(conversation: string, turn: string): Promise<boolean>;
|
|
194
195
|
conversationRows(conversations: readonly string[]): Promise<readonly HeldRow[]>;
|
|
195
|
-
jobMarkers(conversation: string): Promise<readonly JobMarker[]>;
|
|
196
196
|
dropConversations(conversations: readonly string[]): Promise<void>;
|
|
197
197
|
chatDrafts(): Promise<readonly ChatDraftRecord[]>;
|
|
198
198
|
chatDraft(conversation: string): Promise<ChatDraftRecord | null>;
|
|
@@ -208,5 +208,5 @@ export type RuntimeStore = {
|
|
|
208
208
|
rememberGeneration(value: string): Promise<void>;
|
|
209
209
|
file(key: string, type: string): Promise<Blob>;
|
|
210
210
|
};
|
|
211
|
-
export declare function openRuntimeStore(
|
|
211
|
+
export declare function openRuntimeStore(database: RuntimeDatabase): RuntimeStore;
|
|
212
212
|
//# sourceMappingURL=records.d.ts.map
|