@agentshouse/mdruntime 0.1.0-cc7bd7a53214e → 0.1.0-cf28918c2bf91
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/AGENTS.md +0 -8
- package/dist/connection.d.ts +3 -3
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +22 -37
- package/dist/conversation.d.ts +0 -1
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +0 -12
- package/dist/host.d.ts +1 -7
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +21 -32
- package/dist/observation.d.ts +0 -2
- package/dist/observation.d.ts.map +1 -1
- package/dist/observation.js +14 -24
- package/dist/query.d.ts +2 -7
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +3 -4
- package/dist/read-side.d.ts +0 -4
- package/dist/read-side.d.ts.map +1 -1
- package/dist/read-side.js +10 -16
- package/dist/room-draft.d.ts +0 -3
- package/dist/room-draft.d.ts.map +1 -1
- package/dist/room-draft.js +4 -6
- package/dist/wire.d.ts +4 -50
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +45 -50
- package/package.json +1 -1
- package/dist/reach.d.ts +0 -40
- package/dist/reach.d.ts.map +0 -1
- package/dist/reach.js +0 -278
package/AGENTS.md
CHANGED
|
@@ -12,14 +12,6 @@ the reported persistence answer, reauthorization, conversation, the chat draft,
|
|
|
12
12
|
and Presentation State. Sync Status, the Service Mode, the storage-loss
|
|
13
13
|
statement and the deployment facts are observations only.
|
|
14
14
|
|
|
15
|
-
The host attaches each port with its reach, and every member and observation
|
|
16
|
-
answers within it: a Room outside it answers as one the replica does not hold, a
|
|
17
|
-
Room reached for single Documents shows only those Documents, the Types of the
|
|
18
|
-
models that govern them and no attachments, and without conversations the
|
|
19
|
-
conversation members, the chat draft and the conversation observation hold none.
|
|
20
|
-
A change of the reach reaches every open observation as its new value, a query
|
|
21
|
-
keeping every unchanged Document the same object.
|
|
22
|
-
|
|
23
15
|
Every `observe` resolves, once its first value has arrived, to a handle:
|
|
24
16
|
`current()` is the latest complete value, `subscribe(listener)` hears each later
|
|
25
17
|
value whole and returns its unsubscribe, and `close()` ends the observation.
|
package/dist/connection.d.ts
CHANGED
|
@@ -10,7 +10,6 @@ import { type SaveRefusal } from './save.js';
|
|
|
10
10
|
import { type RoomDraft, type RoomDraftWrite } from './room-draft.js';
|
|
11
11
|
import { type SyncStatus } from './status.js';
|
|
12
12
|
import { type RuntimeShell } from './durability.js';
|
|
13
|
-
import { type NarrowedView, type PortReach, type RuntimeView } from './reach.js';
|
|
14
13
|
export type AppTypedSelection = {
|
|
15
14
|
roots: readonly string[];
|
|
16
15
|
attachedModel: import('./model.js').ModelIdentity | null;
|
|
@@ -107,9 +106,10 @@ export type MdRuntime = {
|
|
|
107
106
|
reauthorize(): Promise<void>;
|
|
108
107
|
};
|
|
109
108
|
export type RuntimeTopic = 'rooms' | 'connection-refusal' | 'storage-loss' | 'sync-status' | 'service-mode' | 'query' | 'queue' | 'room-drafts' | 'presentation' | 'conversation';
|
|
110
|
-
export type ComposedRuntime =
|
|
109
|
+
export type ComposedRuntime = {
|
|
110
|
+
md: MdRuntime;
|
|
111
111
|
stop(): Promise<void>;
|
|
112
|
-
|
|
112
|
+
watch(topic: RuntimeTopic, input: readonly unknown[], deliver: (message: unknown) => void): () => void;
|
|
113
113
|
};
|
|
114
114
|
export declare function composeRuntime(options: MdRuntimeOptions): ComposedRuntime;
|
|
115
115
|
//# sourceMappingURL=connection.d.ts.map
|
package/dist/connection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|
package/dist/connection.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { verify } from '@agentshouse/mdmodel';
|
|
2
2
|
import { cached, modelTypes, NO_MODEL, sameModel, } from './model.js';
|
|
3
|
-
import {
|
|
3
|
+
import { opened } from './observation.js';
|
|
4
4
|
import { filterOf, identityOf, planOf, } from './query.js';
|
|
5
5
|
import { createReadSide } from './read-side.js';
|
|
6
6
|
import { createSearchIndex, searchPlanOf, } from './search.js';
|
|
@@ -20,7 +20,6 @@ import { roomDraftRevision } from './identity.js';
|
|
|
20
20
|
import { beneath, normalize } from './paths.js';
|
|
21
21
|
import { openRuntimeStore, } from './store.js';
|
|
22
22
|
import { unconfirmed } from './transfer.js';
|
|
23
|
-
import { governs, holds, narrowed, planReach, } from './reach.js';
|
|
24
23
|
// Discovery repeats each minute so a Room the stream stopped serving stays unrefreshed no longer.
|
|
25
24
|
const DEFAULT_DISCOVERY_INTERVAL_MS = 60_000;
|
|
26
25
|
const EMPTY_SCHEMA = { verdict: 'accept', model: { types: {} } };
|
|
@@ -235,14 +234,11 @@ export function composeRuntime(options) {
|
|
|
235
234
|
function listed() {
|
|
236
235
|
return structuredClone([...rooms.values()]);
|
|
237
236
|
}
|
|
238
|
-
function roomFacts(
|
|
239
|
-
const held = [...rooms.values()]
|
|
240
|
-
.filter((room) => holds(reach, room.locator))
|
|
241
|
-
.map((room) => {
|
|
242
|
-
const governed = governs(reach, room);
|
|
237
|
+
function roomFacts() {
|
|
238
|
+
const held = [...rooms.values()].map((room) => {
|
|
243
239
|
const attached = [
|
|
244
|
-
|
|
245
|
-
...(
|
|
240
|
+
modelOf(room.locator),
|
|
241
|
+
...(room.typedSelection === null ? [] : [modelOf(room.locator, 'typed-selection')]),
|
|
246
242
|
];
|
|
247
243
|
return {
|
|
248
244
|
locator: room.locator,
|
|
@@ -1883,20 +1879,7 @@ export function composeRuntime(options) {
|
|
|
1883
1879
|
notifyReady();
|
|
1884
1880
|
});
|
|
1885
1881
|
void enqueue();
|
|
1886
|
-
function
|
|
1887
|
-
return planOf(input, roomFacts(reach), planReach(reach));
|
|
1888
|
-
}
|
|
1889
|
-
function watchPlan(plan, deliver) {
|
|
1890
|
-
return readSide.watch(plan, identityOf(plan), deliver);
|
|
1891
|
-
}
|
|
1892
|
-
async function searched(input, reach) {
|
|
1893
|
-
const plan = searchPlanOf(input);
|
|
1894
|
-
const selected = plan.documents === undefined && reach === null
|
|
1895
|
-
? null
|
|
1896
|
-
: (await readSide.query(filterOf(plan.documents ?? {}, roomFacts(reach), planReach(reach)))).documents;
|
|
1897
|
-
return searchIndex.search(reach === null || reach.conversations ? plan : { ...plan, conversations: [] }, selected);
|
|
1898
|
-
}
|
|
1899
|
-
const watch = (topic, input, deliver) => {
|
|
1882
|
+
function watch(topic, input, deliver) {
|
|
1900
1883
|
if (topic === 'room-drafts') {
|
|
1901
1884
|
const listener = { notify: deliver, ready: false };
|
|
1902
1885
|
roomDraftListeners.add(listener);
|
|
@@ -1979,8 +1962,9 @@ export function composeRuntime(options) {
|
|
|
1979
1962
|
queueSubscriptions.delete(queue);
|
|
1980
1963
|
};
|
|
1981
1964
|
}
|
|
1982
|
-
|
|
1983
|
-
|
|
1965
|
+
const plan = planOf(input[0], roomFacts());
|
|
1966
|
+
return readSide.watch(plan, identityOf(plan), deliver);
|
|
1967
|
+
}
|
|
1984
1968
|
const md = {
|
|
1985
1969
|
loaded() {
|
|
1986
1970
|
return openLocal().then(() => undefined);
|
|
@@ -1988,8 +1972,15 @@ export function composeRuntime(options) {
|
|
|
1988
1972
|
rooms() {
|
|
1989
1973
|
return listed();
|
|
1990
1974
|
},
|
|
1991
|
-
query: ((input) => readSide.query(
|
|
1992
|
-
search
|
|
1975
|
+
query: ((input) => readSide.query(planOf(input, roomFacts()))),
|
|
1976
|
+
async search(input) {
|
|
1977
|
+
const plan = searchPlanOf(input);
|
|
1978
|
+
const selected = plan.documents === undefined
|
|
1979
|
+
? null
|
|
1980
|
+
: (await readSide.query(filterOf(plan.documents, roomFacts())))
|
|
1981
|
+
.documents;
|
|
1982
|
+
return searchIndex.search(plan, selected);
|
|
1983
|
+
},
|
|
1993
1984
|
types(locator) {
|
|
1994
1985
|
return {
|
|
1995
1986
|
collection: modelTypes(modelOf(locator)),
|
|
@@ -2096,7 +2087,9 @@ export function composeRuntime(options) {
|
|
|
2096
2087
|
persistence() {
|
|
2097
2088
|
return options.shell.persistentStorage;
|
|
2098
2089
|
},
|
|
2099
|
-
observe:
|
|
2090
|
+
observe: ((topic, ...input) => opened((deliver) => watch(topic, input, (message) => {
|
|
2091
|
+
deliver(structuredClone(message));
|
|
2092
|
+
}), topic === 'query')),
|
|
2100
2093
|
async reauthorize() {
|
|
2101
2094
|
if (refusal === null || !refusal.reauthorizationOffered)
|
|
2102
2095
|
return;
|
|
@@ -2108,13 +2101,5 @@ export function composeRuntime(options) {
|
|
|
2108
2101
|
await enqueue();
|
|
2109
2102
|
},
|
|
2110
2103
|
};
|
|
2111
|
-
|
|
2112
|
-
md,
|
|
2113
|
-
watch,
|
|
2114
|
-
plan: planned,
|
|
2115
|
-
query: (plan) => readSide.query(plan),
|
|
2116
|
-
watchPlan,
|
|
2117
|
-
search: searched,
|
|
2118
|
-
};
|
|
2119
|
-
return { md, stop, watch, within: (reach) => narrowed(reachable, reach) };
|
|
2104
|
+
return { md, stop, watch };
|
|
2120
2105
|
}
|
package/dist/conversation.d.ts
CHANGED
|
@@ -74,6 +74,5 @@ export type ConversationStore = {
|
|
|
74
74
|
message(conversation: string, identity: string): SearchedMessage | null;
|
|
75
75
|
close(): void;
|
|
76
76
|
};
|
|
77
|
-
export declare function unheldView(conversation: string): ConversationView;
|
|
78
77
|
export declare function createConversationStore(deps: ConversationDependencies): ConversationStore;
|
|
79
78
|
//# sourceMappingURL=conversation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../src/conversation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../src/conversation.ts"],"names":[],"mappings":"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"}
|
package/dist/conversation.js
CHANGED
|
@@ -7,18 +7,6 @@ const QUIET = {
|
|
|
7
7
|
commands: [],
|
|
8
8
|
options: [],
|
|
9
9
|
};
|
|
10
|
-
export function unheldView(conversation) {
|
|
11
|
-
return {
|
|
12
|
-
conversation,
|
|
13
|
-
messages: [],
|
|
14
|
-
turn: null,
|
|
15
|
-
questions: [],
|
|
16
|
-
process: null,
|
|
17
|
-
commands: [],
|
|
18
|
-
options: [],
|
|
19
|
-
chatDraft: null,
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
10
|
function startedTurn(turn, operation) {
|
|
23
11
|
if (operation.op === 'context') {
|
|
24
12
|
return { turn, parts: [], context: { used: operation.used, window: operation.window } };
|
package/dist/host.d.ts
CHANGED
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
import { type MdRuntimeOptions } from './connection.js';
|
|
2
|
-
import type { PortReach } from './reach.js';
|
|
3
2
|
import { type RuntimePort } from './wire.js';
|
|
4
3
|
export type MdRuntimeHostOptions = MdRuntimeOptions & {
|
|
5
4
|
deploymentFacts?: unknown;
|
|
6
5
|
};
|
|
7
|
-
export type AttachedPort = {
|
|
8
|
-
detach(): void;
|
|
9
|
-
narrow(reach: PortReach): void;
|
|
10
|
-
};
|
|
11
6
|
export type MdRuntimeHost = {
|
|
12
|
-
attach(port: RuntimePort, app: string, release?: string
|
|
7
|
+
attach(port: RuntimePort, app: string, release?: string): () => void;
|
|
13
8
|
endAuthorization(): Promise<void>;
|
|
14
9
|
stop(): Promise<void>;
|
|
15
10
|
};
|
|
16
11
|
export declare function serveMdRuntime(options: MdRuntimeHostOptions): MdRuntimeHost;
|
|
17
|
-
export type { PortReach, ReachedDocument } from './reach.js';
|
|
18
12
|
export type { RuntimePort } from './wire.js';
|
|
19
13
|
//# sourceMappingURL=host.d.ts.map
|
package/dist/host.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAML,KAAK,WAAW,EAIjB,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;IACrE,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB,CAAC;AA0EF,wBAAgB,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAwG3E;AAED,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/host.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { composeRuntime, } from './connection.js';
|
|
2
2
|
import { removeRuntimeStore } from './store.js';
|
|
3
|
-
import { AUTHORIZATION_ENDED, carried, envelope, PROTOCOL_MISMATCH, request,
|
|
4
|
-
const NARROWED = new Set(['within', 'whole']);
|
|
3
|
+
import { AUTHORIZATION_ENDED, carried, envelope, PROTOCOL_MISMATCH, request, } from './wire.js';
|
|
5
4
|
function answered(md, app, writtenBy, member, input) {
|
|
6
5
|
switch (member) {
|
|
7
6
|
case 'rooms':
|
|
@@ -72,19 +71,18 @@ export function serveMdRuntime(options) {
|
|
|
72
71
|
if (options.signal?.aborted === true)
|
|
73
72
|
close();
|
|
74
73
|
const runtime = composeRuntime({ ...options, signal: closing.signal });
|
|
75
|
-
const { md } = runtime;
|
|
74
|
+
const { md, watch } = runtime;
|
|
76
75
|
const attachments = new Map();
|
|
77
76
|
let authorized = true;
|
|
78
77
|
const watchFacts = (deliver) => {
|
|
79
78
|
deliver(structuredClone(deploymentFacts));
|
|
80
79
|
return () => { };
|
|
81
80
|
};
|
|
82
|
-
function attach(port, app, release
|
|
81
|
+
function attach(port, app, release) {
|
|
83
82
|
if (!authorized)
|
|
84
83
|
throw new Error(AUTHORIZATION_ENDED);
|
|
85
84
|
const writtenBy = release === undefined ? undefined : { app, release };
|
|
86
|
-
const
|
|
87
|
-
const observations = new Map();
|
|
85
|
+
const subscriptions = new Map();
|
|
88
86
|
let serving = true;
|
|
89
87
|
const send = (message) => {
|
|
90
88
|
port.postMessage(envelope(message));
|
|
@@ -93,40 +91,37 @@ export function serveMdRuntime(options) {
|
|
|
93
91
|
if (!serving)
|
|
94
92
|
return;
|
|
95
93
|
serving = false;
|
|
96
|
-
for (const end of
|
|
94
|
+
for (const end of subscriptions.values())
|
|
97
95
|
end();
|
|
98
|
-
|
|
96
|
+
subscriptions.clear();
|
|
99
97
|
attachments.delete(detach);
|
|
100
98
|
};
|
|
101
|
-
const observe = (id, topic, input) => {
|
|
102
|
-
let resolved = false;
|
|
103
|
-
const deliver = (value) => {
|
|
104
|
-
if (!serving)
|
|
105
|
-
return;
|
|
106
|
-
send(resolved ? { kind: 'event', id, value } : { kind: 'result', id, value });
|
|
107
|
-
resolved = true;
|
|
108
|
-
};
|
|
109
|
-
observations.set(id, topic === 'deployment-facts'
|
|
110
|
-
? watchFacts(deliver)
|
|
111
|
-
: (NARROWED.has(WIRE_REACH.topics[topic]) ? view : runtime).watch(topic, topic === 'presentation' ? [app] : input, deliver));
|
|
112
|
-
};
|
|
113
99
|
const serve = async (message) => {
|
|
114
100
|
if (message.kind === 'hello')
|
|
115
101
|
return;
|
|
116
102
|
if (message.kind === 'stop') {
|
|
117
|
-
|
|
118
|
-
|
|
103
|
+
subscriptions.get(message.id)?.();
|
|
104
|
+
subscriptions.delete(message.id);
|
|
119
105
|
return;
|
|
120
106
|
}
|
|
121
107
|
try {
|
|
122
108
|
if (message.kind !== 'observe' || message.topic !== 'room-drafts')
|
|
123
109
|
await md.loaded();
|
|
124
110
|
if (message.kind === 'observe') {
|
|
125
|
-
|
|
126
|
-
|
|
111
|
+
const { id, topic } = message;
|
|
112
|
+
let resolved = false;
|
|
113
|
+
const deliver = (value) => {
|
|
114
|
+
if (!serving)
|
|
115
|
+
return;
|
|
116
|
+
send(resolved ? { kind: 'event', id, value } : { kind: 'result', id, value });
|
|
117
|
+
resolved = true;
|
|
118
|
+
};
|
|
119
|
+
subscriptions.set(id, topic === 'deployment-facts'
|
|
120
|
+
? watchFacts(deliver)
|
|
121
|
+
: watch(topic, topic === 'presentation' ? [app] : message.input, deliver));
|
|
127
122
|
return;
|
|
128
123
|
}
|
|
129
|
-
const value = await answered(
|
|
124
|
+
const value = await answered(md, app, writtenBy, message.member, message.input);
|
|
130
125
|
if (serving)
|
|
131
126
|
send({ kind: 'result', id: message.id, value });
|
|
132
127
|
}
|
|
@@ -159,13 +154,7 @@ export function serveMdRuntime(options) {
|
|
|
159
154
|
port.addEventListener('close', detach);
|
|
160
155
|
port.start();
|
|
161
156
|
attachments.set(detach, send);
|
|
162
|
-
return
|
|
163
|
-
detach,
|
|
164
|
-
narrow(next) {
|
|
165
|
-
if (serving)
|
|
166
|
-
view.narrow(next);
|
|
167
|
-
},
|
|
168
|
-
};
|
|
157
|
+
return detach;
|
|
169
158
|
}
|
|
170
159
|
return {
|
|
171
160
|
attach,
|
package/dist/observation.d.ts
CHANGED
|
@@ -20,8 +20,6 @@ export type Observed = {
|
|
|
20
20
|
end(): void;
|
|
21
21
|
};
|
|
22
22
|
export declare function rowsOf(result: QueryResult): readonly (QueryDocument | QueryGroup)[];
|
|
23
|
-
export declare function applied(keyed: KeyedResult, change: QueryChange): KeyedResult;
|
|
24
23
|
export declare function observed(first: unknown, stop: () => void, keyed: boolean): Observed;
|
|
25
24
|
export declare function opened(watch: (deliver: (message: unknown) => void) => () => void, keyed: boolean): Promise<Observation<unknown>>;
|
|
26
|
-
export declare function observing<Topic extends string>(watch: (topic: Topic, input: readonly unknown[], deliver: (message: unknown) => void) => () => void): (topic: Topic, ...input: unknown[]) => Promise<Observation<unknown>>;
|
|
27
25
|
//# sourceMappingURL=observation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../src/observation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,OAAO,IAAI,CAAC,CAAC;IACb,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACpD,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAErC,MAAM,MAAM,WAAW,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC;IACpE,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,GAAG,IAAI,IAAI,CAAC;CACb,CAAC;AAEF,wBAAgB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,aAAa,GAAG,UAAU,CAAC,EAAE,CAEnF;
|
|
1
|
+
{"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../src/observation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,OAAO,IAAI,CAAC,CAAC;IACb,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACpD,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAErC,MAAM,MAAM,WAAW,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC;IACpE,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,GAAG,IAAI,IAAI,CAAC;CACb,CAAC;AAEF,wBAAgB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,aAAa,GAAG,UAAU,CAAC,EAAE,CAEnF;AA0BD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,QAAQ,CAkCnF;AAED,wBAAgB,MAAM,CACpB,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KAAK,MAAM,IAAI,EAC1D,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAiB/B"}
|
package/dist/observation.js
CHANGED
|
@@ -1,29 +1,24 @@
|
|
|
1
1
|
export function rowsOf(result) {
|
|
2
2
|
return 'groups' in result ? result.groups : result.documents;
|
|
3
3
|
}
|
|
4
|
-
export function applied(keyed, change) {
|
|
5
|
-
const rows = rowsOf(keyed.result);
|
|
6
|
-
const byKey = new Map(keyed.keys.map((key, index) => [key, rows[index]]));
|
|
7
|
-
for (const key of change.removed)
|
|
8
|
-
byKey.delete(key);
|
|
9
|
-
for (const [key, row] of change.changed)
|
|
10
|
-
byKey.set(key, row);
|
|
11
|
-
const keys = change.order ?? keyed.keys.filter((key) => byKey.has(key));
|
|
12
|
-
const next = keys.map((key) => byKey.get(key));
|
|
13
|
-
return {
|
|
14
|
-
result: 'groups' in keyed.result
|
|
15
|
-
? { groups: next }
|
|
16
|
-
: { documents: next },
|
|
17
|
-
keys,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
4
|
function keyedResult(first) {
|
|
21
|
-
|
|
5
|
+
const grouped = 'groups' in first.result;
|
|
6
|
+
const rows = rowsOf(first.result);
|
|
7
|
+
const byKey = new Map(first.keys.map((key, index) => [key, rows[index]]));
|
|
8
|
+
let keys = first.keys;
|
|
22
9
|
return {
|
|
23
10
|
value: first.result,
|
|
24
11
|
next(message) {
|
|
25
|
-
|
|
26
|
-
|
|
12
|
+
const change = message;
|
|
13
|
+
for (const key of change.removed)
|
|
14
|
+
byKey.delete(key);
|
|
15
|
+
for (const [key, row] of change.changed)
|
|
16
|
+
byKey.set(key, row);
|
|
17
|
+
keys = change.order ?? keys.filter((key) => byKey.has(key));
|
|
18
|
+
const next = keys.map((key) => byKey.get(key));
|
|
19
|
+
return grouped
|
|
20
|
+
? { groups: next }
|
|
21
|
+
: { documents: next };
|
|
27
22
|
},
|
|
28
23
|
};
|
|
29
24
|
}
|
|
@@ -88,8 +83,3 @@ export function opened(watch, keyed) {
|
|
|
88
83
|
}
|
|
89
84
|
});
|
|
90
85
|
}
|
|
91
|
-
export function observing(watch) {
|
|
92
|
-
return (topic, ...input) => opened((deliver) => watch(topic, input, (message) => {
|
|
93
|
-
deliver(structuredClone(message));
|
|
94
|
-
}), topic === 'query');
|
|
95
|
-
}
|
package/dist/query.d.ts
CHANGED
|
@@ -186,13 +186,8 @@ export type GroupShape = {
|
|
|
186
186
|
direction: Direction;
|
|
187
187
|
}[];
|
|
188
188
|
};
|
|
189
|
-
export type PlanReach = {
|
|
190
|
-
rooms: readonly string[];
|
|
191
|
-
documents: readonly string[];
|
|
192
|
-
};
|
|
193
189
|
export type Plan = {
|
|
194
190
|
rooms: readonly string[] | null;
|
|
195
|
-
reach: PlanReach | null;
|
|
196
191
|
root: Scope;
|
|
197
192
|
hop: (Scope & {
|
|
198
193
|
field: string;
|
|
@@ -210,9 +205,9 @@ type Entries = Readonly<Record<string, unknown>>;
|
|
|
210
205
|
export declare function invalid(at: string, problem: string): never;
|
|
211
206
|
export declare function plain(value: unknown): value is Entries;
|
|
212
207
|
export declare function known(value: Entries, allowed: readonly string[], at: string): void;
|
|
213
|
-
export declare function planOf(input: unknown, facts: HeldRooms
|
|
208
|
+
export declare function planOf(input: unknown, facts: HeldRooms): Plan;
|
|
214
209
|
export declare function limitOf(input: unknown): number | null;
|
|
215
|
-
export declare function filterOf(input: unknown, facts: HeldRooms
|
|
210
|
+
export declare function filterOf(input: unknown, facts: HeldRooms): Plan;
|
|
216
211
|
export declare function identityOf(plan: Plan): string;
|
|
217
212
|
export {};
|
|
218
213
|
//# sourceMappingURL=query.d.ts.map
|
package/dist/query.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAErD,MAAM,MAAM,SAAS,GACjB,KAAK,GACL;IAAE,GAAG,EAAE,KAAK,CAAA;CAAE,GACd;IAAE,GAAG,EAAE,KAAK,CAAA;CAAE,GACd;IAAE,GAAG,EAAE,SAAS,KAAK,EAAE,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,SAAS,KAAK,EAAE,CAAA;CAAE,GAC1B;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAC;IAAC,GAAG,CAAC,EAAE,KAAK,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,SAAS,KAAK,EAAE,CAAA;CAAE,GAC1B;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEzB,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,CAAC,EAAE,SAAS,KAAK,EAAE,CAAC;IACxB,GAAG,CAAC,EAAE,SAAS,KAAK,EAAE,CAAC;IACvB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,KAAK,EAAE,GAAG,SAAS,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IAAE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,MAAM,GACd,KAAK,GACL;IACE,MAAM,CAAC,EAAE,KAAK,GAAG,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,IAAI,CAAC;CACf,CAAC;AAEN,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AAEvC,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,CAAC;QAAE,EAAE,EAAE,GAAG,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAA;KAAE,GAAG,YAAY,CAAC,EAAE,CAAC;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAChC,OAAO,EAAE,SAAS,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;IACzC,OAAO,CAAC,EAAE,SAAS;QAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;IACnF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;AAEpD,MAAM,MAAM,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAAE,GAAG,EAAE,SAAS,OAAO,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,cAAc,GAAG;IAAE,SAAS,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG;IAAE,MAAM,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,CAAC;AAE5D,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,WAAW,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,cAAc,GAAG,eAAe,GAAG,YAAY,CAAC;AAE/F,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,IAAI,GACZ;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAA;CAAE,GACtC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAA;CAAE,GACvC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAA;CAAE,GACnF;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAA;CAAE,GACvC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtC,MAAM,MAAM,SAAS,GACjB;IAAE,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,GAC9B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAElC,MAAM,MAAM,KAAK,GAAG;IAClB,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,OAAO,GACf;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GACd;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GACd;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GACd;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,KAAK,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACzC,QAAQ,EAAE,KAAK,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,SAAS;QAAE,GAAG,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,YAAY,GAAG;YAAE,SAAS,EAAE,SAAS,CAAA;SAAE,CAAA;KAAE,EAAE,CAAC;CACxF,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,SAAS,OAAO,EAAE,CAAC;IAC5B,OAAO,EAAE,SAAS;QAAE,EAAE,EAAE,OAAO,GAAG,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;CACpE,CAAC;AAEF,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
package/dist/query.js
CHANGED
|
@@ -372,7 +372,7 @@ function groupShape(typed, input) {
|
|
|
372
372
|
});
|
|
373
373
|
return { kind: 'groups', groupBy, orderBy };
|
|
374
374
|
}
|
|
375
|
-
export function planOf(input, facts
|
|
375
|
+
export function planOf(input, facts) {
|
|
376
376
|
if (!plain(input))
|
|
377
377
|
invalid('query', 'expects a query object');
|
|
378
378
|
const grouped = input.groupBy !== undefined;
|
|
@@ -386,7 +386,6 @@ export function planOf(input, facts, reach = null) {
|
|
|
386
386
|
const { typed, ...root } = scope(facts, rooms, input, '');
|
|
387
387
|
return {
|
|
388
388
|
rooms,
|
|
389
|
-
reach,
|
|
390
389
|
root,
|
|
391
390
|
hop: input.hop === undefined ? null : hopOf(facts, rooms, typed, input.hop),
|
|
392
391
|
backlinks: input.backlinks === undefined ? null : backlinksOf(facts, rooms, input.backlinks),
|
|
@@ -402,11 +401,11 @@ export function limitOf(input) {
|
|
|
402
401
|
}
|
|
403
402
|
return input;
|
|
404
403
|
}
|
|
405
|
-
export function filterOf(input, facts
|
|
404
|
+
export function filterOf(input, facts) {
|
|
406
405
|
if (!plain(input))
|
|
407
406
|
invalid('documents', 'expects a filter object');
|
|
408
407
|
known(input, FILTER, '');
|
|
409
|
-
return planOf({ ...input, select: {} }, facts
|
|
408
|
+
return planOf({ ...input, select: {} }, facts);
|
|
410
409
|
}
|
|
411
410
|
function canonical(value) {
|
|
412
411
|
if (Array.isArray(value))
|
package/dist/read-side.d.ts
CHANGED
|
@@ -10,9 +10,5 @@ export type ReadSide = {
|
|
|
10
10
|
document(room: string, path: string): SearchedDocument | null;
|
|
11
11
|
close(): void;
|
|
12
12
|
};
|
|
13
|
-
export declare function reconciled(previous: KeyedResult, next: KeyedResult): {
|
|
14
|
-
keyed: KeyedResult;
|
|
15
|
-
change: QueryChange;
|
|
16
|
-
} | null;
|
|
17
13
|
export declare function createReadSide(): ReadSide;
|
|
18
14
|
//# sourceMappingURL=read-side.d.ts.map
|
package/dist/read-side.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-side.d.ts","sourceRoot":"","sources":["../src/read-side.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAU,KAAK,WAAW,EAAE,KAAK,WAAW,EAAe,MAAM,kBAAkB,CAAC;AAC3F,OAAO,KAAK,EAOV,IAAI,
|
|
1
|
+
{"version":3,"file":"read-side.d.ts","sourceRoot":"","sources":["../src/read-side.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAU,KAAK,WAAW,EAAE,KAAK,WAAW,EAAe,MAAM,kBAAkB,CAAC;AAC3F,OAAO,KAAK,EAOV,IAAI,EAGJ,WAAW,EAIZ,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAqDpD,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACxC,KAAK,CACH,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,KAAK,IAAI,GACpD,MAAM,IAAI,CAAC;IACd,SAAS,IAAI,SAAS,gBAAgB,EAAE,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAC9D,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAySF,wBAAgB,cAAc,IAAI,QAAQ,CA4HzC"}
|
package/dist/read-side.js
CHANGED
|
@@ -50,16 +50,10 @@ function conditioned(condition, row) {
|
|
|
50
50
|
return some(condition.some.map((item) => conditioned(item, row)));
|
|
51
51
|
return tested(condition.test, row.values[condition.field], row.sizes[condition.field], row.fields[condition.field]);
|
|
52
52
|
}
|
|
53
|
-
function
|
|
54
|
-
return reach === null
|
|
55
|
-
? []
|
|
56
|
-
: [or(inArray(room, [...reach.rooms]), inArray(document, [...reach.documents]))];
|
|
57
|
-
}
|
|
58
|
-
function scoped(scope, row, rooms, reach) {
|
|
53
|
+
function scoped(scope, row, rooms) {
|
|
59
54
|
return every([
|
|
60
55
|
eq(row.kind, 'document'),
|
|
61
56
|
...(rooms === null ? [] : [inArray(row.room, [...rooms])]),
|
|
62
|
-
...reached(reach, row.room, row.key),
|
|
63
57
|
...(scope.types === null ? [] : [inArray(row.type, [...scope.types])]),
|
|
64
58
|
...(scope.pathPrefix === null ? [] : [inArray(scope.pathPrefix, row.directories)]),
|
|
65
59
|
...(scope.where === null ? [] : [conditioned(scope.where, row)]),
|
|
@@ -74,25 +68,25 @@ function live(query) {
|
|
|
74
68
|
startSync: true,
|
|
75
69
|
});
|
|
76
70
|
}
|
|
77
|
-
function related(q, rows, scope, field, kept
|
|
71
|
+
function related(q, rows, scope, field, kept) {
|
|
78
72
|
const matched = kept === 'source' ? 'target' : 'source';
|
|
79
73
|
const from = q.from({ r: rows });
|
|
80
74
|
return from
|
|
81
75
|
.where(({ r }) => every([eq(r.kind, 'reference'), ...(field === null ? [] : [eq(r.field, field)])]))
|
|
82
76
|
.innerJoin({ m: rows }, ({ r, m }) => eq(r[matched], m.key))
|
|
83
|
-
.where(({ m }) => scoped(scope, m, null
|
|
77
|
+
.where(({ m }) => scoped(scope, m, null))
|
|
84
78
|
.groupBy(({ r }) => r[kept])
|
|
85
79
|
.select(({ r }) => ({ key: r[kept] }));
|
|
86
80
|
}
|
|
87
81
|
function filtered(q, rows, plan) {
|
|
88
82
|
const from = q.from({ d: rows });
|
|
89
|
-
let query = from.where(({ d }) => scoped(plan.root, d, plan.rooms
|
|
83
|
+
let query = from.where(({ d }) => scoped(plan.root, d, plan.rooms));
|
|
90
84
|
if (plan.hop !== null) {
|
|
91
|
-
const hop = related(q, rows, plan.hop, plan.hop.field, 'source'
|
|
85
|
+
const hop = related(q, rows, plan.hop, plan.hop.field, 'source');
|
|
92
86
|
query = query.innerJoin({ h: hop }, ({ d, h }) => eq(d.key, h.key));
|
|
93
87
|
}
|
|
94
88
|
if (plan.backlinks !== null) {
|
|
95
|
-
const backlinks = related(q, rows, plan.backlinks, plan.backlinks.field, 'target'
|
|
89
|
+
const backlinks = related(q, rows, plan.backlinks, plan.backlinks.field, 'target');
|
|
96
90
|
query = query.innerJoin({ k: backlinks }, ({ d, k }) => eq(d.key, k.key));
|
|
97
91
|
}
|
|
98
92
|
return query;
|
|
@@ -123,14 +117,14 @@ function documents(q, rows, plan, shape) {
|
|
|
123
117
|
...(Array.isArray(shape.sections) ? named('section', shape.sections, b.sections) : {}),
|
|
124
118
|
...(shape.preamble ? { preamble: b.preamble } : {}),
|
|
125
119
|
...(shape.markdown ? { markdown: b.markdown } : {}),
|
|
126
|
-
...(shape.backlinks ? { backlinks: toArray(backlinked(q, rows, d
|
|
120
|
+
...(shape.backlinks ? { backlinks: toArray(backlinked(q, rows, d)) } : {}),
|
|
127
121
|
...(shape.change ? { change: d.change } : {}),
|
|
128
122
|
}));
|
|
129
123
|
}
|
|
130
|
-
function backlinked(q, rows, document
|
|
124
|
+
function backlinked(q, rows, document) {
|
|
131
125
|
const from = q.from({ r: rows });
|
|
132
126
|
return from
|
|
133
|
-
.where(({ r }) =>
|
|
127
|
+
.where(({ r }) => eq(r.target, document.key))
|
|
134
128
|
.orderBy(({ r }) => r.path, { stringSort: 'lexical' })
|
|
135
129
|
.orderBy(({ r }) => r.field, { stringSort: 'lexical' })
|
|
136
130
|
.select(({ r }) => ({ path: r.path, type: r.type, field: r.field }));
|
|
@@ -220,7 +214,7 @@ function keyedOf(plan, entries) {
|
|
|
220
214
|
keys: bounded.map(([key]) => key),
|
|
221
215
|
};
|
|
222
216
|
}
|
|
223
|
-
|
|
217
|
+
function reconciled(previous, next) {
|
|
224
218
|
const before = rowsOf(previous.result);
|
|
225
219
|
const held = new Map(previous.keys.map((key, index) => [key, before[index]]));
|
|
226
220
|
const changed = [];
|
package/dist/room-draft.d.ts
CHANGED
|
@@ -116,9 +116,6 @@ export declare function equalValue(left: unknown, right: unknown): boolean;
|
|
|
116
116
|
export declare function underneath(parts: HeldParts, path: string, visible: VisibleLayer | undefined): ChangedUnderneath;
|
|
117
117
|
export declare function changedParts(path: string, report: ChangedUnderneath): readonly ChangedPart[];
|
|
118
118
|
export declare function returnedInto(existing: HeldParts | undefined, returned: HeldParts): HeldParts;
|
|
119
|
-
export declare function moveTarget(move: {
|
|
120
|
-
readonly to: string;
|
|
121
|
-
}): string;
|
|
122
119
|
export declare function changesOf(path: string, parts: HeldParts): {
|
|
123
120
|
changes: readonly Change[];
|
|
124
121
|
bases: readonly Precondition[];
|
package/dist/room-draft.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room-draft.d.ts","sourceRoot":"","sources":["../src/room-draft.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"room-draft.d.ts","sourceRoot":"","sources":["../src/room-draft.ts"],"names":[],"mappings":"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"}
|
package/dist/room-draft.js
CHANGED
|
@@ -288,10 +288,6 @@ export function returnedInto(existing, returned) {
|
|
|
288
288
|
next.removal = removal;
|
|
289
289
|
return next;
|
|
290
290
|
}
|
|
291
|
-
export function moveTarget(move) {
|
|
292
|
-
const to = normalize(move.to);
|
|
293
|
-
return to === null || to === '' ? move.to : to;
|
|
294
|
-
}
|
|
295
291
|
export function changesOf(path, parts) {
|
|
296
292
|
const changes = [];
|
|
297
293
|
const bases = [];
|
|
@@ -321,8 +317,10 @@ export function changesOf(path, parts) {
|
|
|
321
317
|
if (parts.markdown !== undefined) {
|
|
322
318
|
changes.push({ kind: 'replace', path, content: parts.markdown.value });
|
|
323
319
|
}
|
|
324
|
-
if (parts.move !== undefined)
|
|
325
|
-
|
|
320
|
+
if (parts.move !== undefined) {
|
|
321
|
+
const to = normalize(parts.move.to);
|
|
322
|
+
changes.push({ kind: 'move', path, to: to === null || to === '' ? parts.move.to : to });
|
|
323
|
+
}
|
|
326
324
|
if (parts.removal !== undefined)
|
|
327
325
|
changes.push({ kind: 'remove', path });
|
|
328
326
|
return { changes, bases };
|
package/dist/wire.d.ts
CHANGED
|
@@ -8,56 +8,10 @@ export type RuntimePort = {
|
|
|
8
8
|
}) => void): void;
|
|
9
9
|
start(): void;
|
|
10
10
|
};
|
|
11
|
-
|
|
12
|
-
declare const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
readonly search: 'within';
|
|
16
|
-
readonly types: 'within';
|
|
17
|
-
readonly save: 'within';
|
|
18
|
-
readonly history: 'within';
|
|
19
|
-
readonly call: 'actions';
|
|
20
|
-
readonly reached: 'within';
|
|
21
|
-
readonly log: 'whole';
|
|
22
|
-
readonly persistence: 'runtime';
|
|
23
|
-
readonly reauthorize: 'runtime';
|
|
24
|
-
readonly 'roomDraft.list': 'within';
|
|
25
|
-
readonly 'roomDraft.read': 'within';
|
|
26
|
-
readonly 'roomDraft.write': 'within';
|
|
27
|
-
readonly 'roomDraft.discard': 'within';
|
|
28
|
-
readonly 'presentation.read': 'app';
|
|
29
|
-
readonly 'presentation.write': 'app';
|
|
30
|
-
readonly 'conversation.list': 'within';
|
|
31
|
-
readonly 'conversation.read': 'within';
|
|
32
|
-
readonly 'conversation.create': 'within';
|
|
33
|
-
readonly 'conversation.send': 'within';
|
|
34
|
-
readonly 'conversation.answer': 'within';
|
|
35
|
-
readonly 'conversation.interrupt': 'within';
|
|
36
|
-
readonly 'conversation.kill': 'within';
|
|
37
|
-
readonly 'conversation.cancel': 'within';
|
|
38
|
-
readonly 'conversation.delete': 'within';
|
|
39
|
-
readonly 'chatDraft.write': 'within';
|
|
40
|
-
readonly 'chatDraft.discard': 'within';
|
|
41
|
-
};
|
|
42
|
-
declare const TOPICS: {
|
|
43
|
-
readonly rooms: 'within';
|
|
44
|
-
readonly 'connection-refusal': 'runtime';
|
|
45
|
-
readonly 'storage-loss': 'runtime';
|
|
46
|
-
readonly 'deployment-facts': 'runtime';
|
|
47
|
-
readonly 'sync-status': 'within';
|
|
48
|
-
readonly 'service-mode': 'runtime';
|
|
49
|
-
readonly query: 'within';
|
|
50
|
-
readonly queue: 'within';
|
|
51
|
-
readonly 'room-drafts': 'within';
|
|
52
|
-
readonly presentation: 'app';
|
|
53
|
-
readonly conversation: 'within';
|
|
54
|
-
};
|
|
55
|
-
export declare const WIRE_REACH: {
|
|
56
|
-
readonly members: Readonly<Record<string, WireReach>>;
|
|
57
|
-
readonly topics: Readonly<Record<string, WireReach>>;
|
|
58
|
-
};
|
|
59
|
-
export type WireMember = keyof typeof MEMBERS;
|
|
60
|
-
export type WireTopic = keyof typeof TOPICS;
|
|
11
|
+
declare const MEMBERS: readonly ['rooms', 'query', 'search', 'types', 'save', 'history', 'call', 'reached', 'log', 'persistence', 'reauthorize', 'roomDraft.list', 'roomDraft.read', 'roomDraft.write', 'roomDraft.discard', 'presentation.read', 'presentation.write', 'conversation.list', 'conversation.read', 'conversation.create', 'conversation.send', 'conversation.answer', 'conversation.interrupt', 'conversation.kill', 'conversation.cancel', 'conversation.delete', 'chatDraft.write', 'chatDraft.discard'];
|
|
12
|
+
declare const TOPICS: readonly ['rooms', 'connection-refusal', 'storage-loss', 'deployment-facts', 'sync-status', 'service-mode', 'query', 'queue', 'room-drafts', 'presentation', 'conversation'];
|
|
13
|
+
export type WireMember = (typeof MEMBERS)[number];
|
|
14
|
+
export type WireTopic = (typeof TOPICS)[number];
|
|
61
15
|
export type WireRequest = {
|
|
62
16
|
kind: 'hello';
|
|
63
17
|
} | {
|
package/dist/wire.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,eAAO,MAAM,iBAAiB,EAAE,iBAI/B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACjG,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"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"}
|
package/dist/wire.js
CHANGED
|
@@ -4,50 +4,49 @@ export const PROTOCOL_MISMATCH = {
|
|
|
4
4
|
reauthorizationOffered: false,
|
|
5
5
|
refusal: null,
|
|
6
6
|
};
|
|
7
|
-
const MEMBERS =
|
|
8
|
-
rooms
|
|
9
|
-
query
|
|
10
|
-
search
|
|
11
|
-
types
|
|
12
|
-
save
|
|
13
|
-
history
|
|
14
|
-
call
|
|
15
|
-
reached
|
|
16
|
-
log
|
|
17
|
-
persistence
|
|
18
|
-
reauthorize
|
|
19
|
-
'roomDraft.list'
|
|
20
|
-
'roomDraft.read'
|
|
21
|
-
'roomDraft.write'
|
|
22
|
-
'roomDraft.discard'
|
|
23
|
-
'presentation.read'
|
|
24
|
-
'presentation.write'
|
|
25
|
-
'conversation.list'
|
|
26
|
-
'conversation.read'
|
|
27
|
-
'conversation.create'
|
|
28
|
-
'conversation.send'
|
|
29
|
-
'conversation.answer'
|
|
30
|
-
'conversation.interrupt'
|
|
31
|
-
'conversation.kill'
|
|
32
|
-
'conversation.cancel'
|
|
33
|
-
'conversation.delete'
|
|
34
|
-
'chatDraft.write'
|
|
35
|
-
'chatDraft.discard'
|
|
36
|
-
|
|
37
|
-
const TOPICS =
|
|
38
|
-
rooms
|
|
39
|
-
'connection-refusal'
|
|
40
|
-
'storage-loss'
|
|
41
|
-
'deployment-facts'
|
|
42
|
-
'sync-status'
|
|
43
|
-
'service-mode'
|
|
44
|
-
query
|
|
45
|
-
queue
|
|
46
|
-
'room-drafts'
|
|
47
|
-
presentation
|
|
48
|
-
conversation
|
|
49
|
-
|
|
50
|
-
export const WIRE_REACH = { members: MEMBERS, topics: TOPICS };
|
|
7
|
+
const MEMBERS = [
|
|
8
|
+
'rooms',
|
|
9
|
+
'query',
|
|
10
|
+
'search',
|
|
11
|
+
'types',
|
|
12
|
+
'save',
|
|
13
|
+
'history',
|
|
14
|
+
'call',
|
|
15
|
+
'reached',
|
|
16
|
+
'log',
|
|
17
|
+
'persistence',
|
|
18
|
+
'reauthorize',
|
|
19
|
+
'roomDraft.list',
|
|
20
|
+
'roomDraft.read',
|
|
21
|
+
'roomDraft.write',
|
|
22
|
+
'roomDraft.discard',
|
|
23
|
+
'presentation.read',
|
|
24
|
+
'presentation.write',
|
|
25
|
+
'conversation.list',
|
|
26
|
+
'conversation.read',
|
|
27
|
+
'conversation.create',
|
|
28
|
+
'conversation.send',
|
|
29
|
+
'conversation.answer',
|
|
30
|
+
'conversation.interrupt',
|
|
31
|
+
'conversation.kill',
|
|
32
|
+
'conversation.cancel',
|
|
33
|
+
'conversation.delete',
|
|
34
|
+
'chatDraft.write',
|
|
35
|
+
'chatDraft.discard',
|
|
36
|
+
];
|
|
37
|
+
const TOPICS = [
|
|
38
|
+
'rooms',
|
|
39
|
+
'connection-refusal',
|
|
40
|
+
'storage-loss',
|
|
41
|
+
'deployment-facts',
|
|
42
|
+
'sync-status',
|
|
43
|
+
'service-mode',
|
|
44
|
+
'query',
|
|
45
|
+
'queue',
|
|
46
|
+
'room-drafts',
|
|
47
|
+
'presentation',
|
|
48
|
+
'conversation',
|
|
49
|
+
];
|
|
51
50
|
export const AUTHORIZATION_ENDED = 'the host authorization ended';
|
|
52
51
|
export const PORT_CLOSED = 'the port closed';
|
|
53
52
|
export function envelope(message) {
|
|
@@ -78,9 +77,7 @@ export function request(message) {
|
|
|
78
77
|
return { kind: 'stop', id: shape.id };
|
|
79
78
|
if (!Array.isArray(record.input))
|
|
80
79
|
return null;
|
|
81
|
-
if (shape.kind === 'call' &&
|
|
82
|
-
typeof record.member === 'string' &&
|
|
83
|
-
Object.hasOwn(MEMBERS, record.member)) {
|
|
80
|
+
if (shape.kind === 'call' && MEMBERS.includes(record.member)) {
|
|
84
81
|
return {
|
|
85
82
|
kind: 'call',
|
|
86
83
|
id: shape.id,
|
|
@@ -88,9 +85,7 @@ export function request(message) {
|
|
|
88
85
|
input: record.input,
|
|
89
86
|
};
|
|
90
87
|
}
|
|
91
|
-
if (shape.kind === 'observe' &&
|
|
92
|
-
typeof record.topic === 'string' &&
|
|
93
|
-
Object.hasOwn(TOPICS, record.topic)) {
|
|
88
|
+
if (shape.kind === 'observe' && TOPICS.includes(record.topic)) {
|
|
94
89
|
return {
|
|
95
90
|
kind: 'observe',
|
|
96
91
|
id: shape.id,
|
package/package.json
CHANGED
package/dist/reach.d.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { MdRuntime, RuntimeTopic } from './connection.js';
|
|
2
|
-
import type { Plan, PlanReach, QueryResult } from './query.js';
|
|
3
|
-
import type { SearchResult } from './search.js';
|
|
4
|
-
export type ReachedDocument = {
|
|
5
|
-
readonly room: string;
|
|
6
|
-
readonly path: string;
|
|
7
|
-
};
|
|
8
|
-
export type PortReach = {
|
|
9
|
-
readonly rooms: readonly string[];
|
|
10
|
-
readonly documents: readonly ReachedDocument[];
|
|
11
|
-
readonly conversations: boolean;
|
|
12
|
-
};
|
|
13
|
-
export type Deliver = (message: unknown) => void;
|
|
14
|
-
export type Watch = (topic: RuntimeTopic, input: readonly unknown[], deliver: Deliver) => () => void;
|
|
15
|
-
export type RuntimeView = {
|
|
16
|
-
md: MdRuntime;
|
|
17
|
-
watch: Watch;
|
|
18
|
-
};
|
|
19
|
-
export type NarrowedView = RuntimeView & {
|
|
20
|
-
narrow(reach: PortReach | null): void;
|
|
21
|
-
};
|
|
22
|
-
export type Reachable = RuntimeView & {
|
|
23
|
-
plan(input: unknown, reach: PortReach | null): Plan;
|
|
24
|
-
query(plan: Plan): Promise<QueryResult>;
|
|
25
|
-
watchPlan(plan: Plan, deliver: (message: unknown) => void): () => void;
|
|
26
|
-
search(input: unknown, reach: PortReach | null): Promise<SearchResult>;
|
|
27
|
-
};
|
|
28
|
-
export declare function holds(reach: PortReach | null, room: string): boolean;
|
|
29
|
-
export declare function governs(reach: PortReach | null, room: {
|
|
30
|
-
readonly locator: string;
|
|
31
|
-
readonly typedSelection: {
|
|
32
|
-
roots: readonly string[];
|
|
33
|
-
} | null;
|
|
34
|
-
}): {
|
|
35
|
-
readonly collection: boolean;
|
|
36
|
-
readonly selection: boolean;
|
|
37
|
-
};
|
|
38
|
-
export declare function planReach(reach: PortReach | null): PlanReach | null;
|
|
39
|
-
export declare function narrowed(runtime: Reachable, given: PortReach | null): NarrowedView;
|
|
40
|
-
//# sourceMappingURL=reach.d.ts.map
|
package/dist/reach.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reach.d.ts","sourceRoot":"","sources":["../src/reach.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,SAAS,EAAa,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAM/F,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/E,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAC;IAC/C,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAEjD,MAAM,MAAM,KAAK,GAAG,CAClB,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,SAAS,OAAO,EAAE,EACzB,OAAO,EAAE,OAAO,KACb,MAAM,IAAI,CAAC;AAEhB,MAAM,MAAM,WAAW,GAAG;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG;IAAE,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAAA;CAAE,CAAC;AAEnF,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG;IACpC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;IACpD,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACxC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACvE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACxE,CAAC;AA2BF,wBAAgB,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAMpE;AAMD,wBAAgB,OAAO,CACrB,KAAK,EAAE,SAAS,GAAG,IAAI,EACvB,IAAI,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,cAAc,EAAE;QAAE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,GAC/F;IAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAU/D;AAcD,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CASnE;AA4FD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,YAAY,CAyJlF"}
|
package/dist/reach.js
DELETED
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
import { unheldView } from './conversation.js';
|
|
2
|
-
import { modelTypes, NO_MODEL } from './model.js';
|
|
3
|
-
import { applied, observing } from './observation.js';
|
|
4
|
-
import { beneath } from './paths.js';
|
|
5
|
-
import { reconciled } from './read-side.js';
|
|
6
|
-
import { moveTarget, readParts } from './room-draft.js';
|
|
7
|
-
import { documentKey } from './rows.js';
|
|
8
|
-
const UNHELD_TYPES = { collection: modelTypes(NO_MODEL), typedSelection: null };
|
|
9
|
-
const UNDECLARED = { kind: 'undeclared' };
|
|
10
|
-
function undeclared() {
|
|
11
|
-
return Promise.resolve(UNDECLARED);
|
|
12
|
-
}
|
|
13
|
-
const NO_CONVERSATION = {
|
|
14
|
-
list: () => Promise.resolve([]),
|
|
15
|
-
read: (conversation) => Promise.resolve(unheldView(conversation)),
|
|
16
|
-
create: undeclared,
|
|
17
|
-
send: undeclared,
|
|
18
|
-
answer: undeclared,
|
|
19
|
-
interrupt: undeclared,
|
|
20
|
-
kill: undeclared,
|
|
21
|
-
cancel: undeclared,
|
|
22
|
-
delete: undeclared,
|
|
23
|
-
};
|
|
24
|
-
const NO_CHAT_DRAFT = {
|
|
25
|
-
write: () => Promise.resolve(),
|
|
26
|
-
discard: () => Promise.resolve(),
|
|
27
|
-
};
|
|
28
|
-
export function holds(reach, room) {
|
|
29
|
-
return (reach === null ||
|
|
30
|
-
reach.rooms.includes(room) ||
|
|
31
|
-
reach.documents.some((document) => document.room === room));
|
|
32
|
-
}
|
|
33
|
-
function wholly(reach, room) {
|
|
34
|
-
return reach === null || reach.rooms.includes(room);
|
|
35
|
-
}
|
|
36
|
-
export function governs(reach, room) {
|
|
37
|
-
if (wholly(reach, room.locator)) {
|
|
38
|
-
return { collection: true, selection: room.typedSelection !== null };
|
|
39
|
-
}
|
|
40
|
-
const selected = (path) => room.typedSelection?.roots.some((root) => beneath(root, path)) ?? false;
|
|
41
|
-
const paths = reach.documents
|
|
42
|
-
.filter((document) => document.room === room.locator)
|
|
43
|
-
.map(({ path }) => path);
|
|
44
|
-
return { collection: paths.some((path) => !selected(path)), selection: paths.some(selected) };
|
|
45
|
-
}
|
|
46
|
-
function covers(reach, room, path) {
|
|
47
|
-
return (reach === null ||
|
|
48
|
-
reach.rooms.includes(room) ||
|
|
49
|
-
reach.documents.some((document) => document.room === room && document.path === path));
|
|
50
|
-
}
|
|
51
|
-
function conversing(reach) {
|
|
52
|
-
return reach === null || reach.conversations;
|
|
53
|
-
}
|
|
54
|
-
export function planReach(reach) {
|
|
55
|
-
return reach === null
|
|
56
|
-
? null
|
|
57
|
-
: {
|
|
58
|
-
rooms: [...new Set(reach.rooms)].sort(),
|
|
59
|
-
documents: [
|
|
60
|
-
...new Set(reach.documents.map(({ room, path }) => documentKey(room, path))),
|
|
61
|
-
].sort(),
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
function roomsWithin(reach, rooms) {
|
|
65
|
-
if (reach === null)
|
|
66
|
-
return rooms;
|
|
67
|
-
return rooms
|
|
68
|
-
.filter((room) => holds(reach, room.locator))
|
|
69
|
-
.map((room) => {
|
|
70
|
-
if (wholly(reach, room.locator))
|
|
71
|
-
return room;
|
|
72
|
-
const governed = governs(reach, room);
|
|
73
|
-
return {
|
|
74
|
-
...room,
|
|
75
|
-
attachedModel: governed.collection ? room.attachedModel : null,
|
|
76
|
-
model: governed.collection ? room.model : modelTypes(NO_MODEL),
|
|
77
|
-
typedSelection: governed.selection ? room.typedSelection : null,
|
|
78
|
-
roomVersion: null,
|
|
79
|
-
attachments: [],
|
|
80
|
-
};
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
function typesWithin(reach, room, types) {
|
|
84
|
-
if (room === undefined)
|
|
85
|
-
return structuredClone(UNHELD_TYPES);
|
|
86
|
-
const governed = governs(reach, room);
|
|
87
|
-
return {
|
|
88
|
-
collection: governed.collection ? types.collection : modelTypes(NO_MODEL),
|
|
89
|
-
typedSelection: governed.selection ? types.typedSelection : null,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
function moves(reach, room, move) {
|
|
93
|
-
return move === undefined || covers(reach, room, moveTarget(move));
|
|
94
|
-
}
|
|
95
|
-
function draftWithin(reach, draft) {
|
|
96
|
-
return covers(reach, draft.room, draft.path) && moves(reach, draft.room, draft.parts.move);
|
|
97
|
-
}
|
|
98
|
-
function draftsWithin(reach, drafts) {
|
|
99
|
-
return drafts.filter((draft) => draftWithin(reach, draft));
|
|
100
|
-
}
|
|
101
|
-
function shownDraft(reach, draft) {
|
|
102
|
-
return draft !== null && draftWithin(reach, draft) ? draft : null;
|
|
103
|
-
}
|
|
104
|
-
function writeWithin(reach, write) {
|
|
105
|
-
return write.outcome === 'written'
|
|
106
|
-
? { outcome: 'written', roomDraft: shownDraft(reach, write.roomDraft) }
|
|
107
|
-
: { outcome: 'stale', current: shownDraft(reach, write.current) };
|
|
108
|
-
}
|
|
109
|
-
function savedWithin(reach, room, result) {
|
|
110
|
-
if (reach === null || result.outcome === 'saved')
|
|
111
|
-
return result;
|
|
112
|
-
const { file, location, referrers, ...refusal } = result;
|
|
113
|
-
const hidden = file !== undefined && !covers(reach, room, file);
|
|
114
|
-
return {
|
|
115
|
-
...refusal,
|
|
116
|
-
...(file === undefined || hidden ? {} : { file }),
|
|
117
|
-
...(location === undefined || hidden ? {} : { location }),
|
|
118
|
-
...(referrers === undefined
|
|
119
|
-
? {}
|
|
120
|
-
: { referrers: referrers.filter((path) => covers(reach, room, path)) }),
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
function statusWithin(reach, status) {
|
|
124
|
-
return {
|
|
125
|
-
...status,
|
|
126
|
-
attentionRequired: status.attentionRequired.filter((entry) => covers(reach, entry.room, entry.path)),
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
function queueWithin(reach, room, entries) {
|
|
130
|
-
return entries.filter(({ batch }) => batch.changes.every((change) => covers(reach, room, change.path) &&
|
|
131
|
-
(change.kind !== 'move' || covers(reach, room, change.to))));
|
|
132
|
-
}
|
|
133
|
-
function unreached(room) {
|
|
134
|
-
return new Error(`No Local Replica for ${room}`);
|
|
135
|
-
}
|
|
136
|
-
export function narrowed(runtime, given) {
|
|
137
|
-
const { md, watch } = runtime;
|
|
138
|
-
let reach = given;
|
|
139
|
-
const open = new Set();
|
|
140
|
-
function following(begin) {
|
|
141
|
-
let stop = begin();
|
|
142
|
-
const restart = () => {
|
|
143
|
-
stop();
|
|
144
|
-
stop = begin();
|
|
145
|
-
};
|
|
146
|
-
open.add(restart);
|
|
147
|
-
return () => {
|
|
148
|
-
open.delete(restart);
|
|
149
|
-
stop();
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
const within = (topic, input, deliver) => {
|
|
153
|
-
if (topic === 'rooms') {
|
|
154
|
-
return following(() => watch(topic, input, (rooms) => deliver(roomsWithin(reach, rooms))));
|
|
155
|
-
}
|
|
156
|
-
if (topic === 'sync-status') {
|
|
157
|
-
return following(() => watch(topic, input, (status) => deliver(statusWithin(reach, status))));
|
|
158
|
-
}
|
|
159
|
-
if (topic === 'room-drafts') {
|
|
160
|
-
return following(() => watch(topic, input, (drafts) => deliver(draftsWithin(reach, drafts))));
|
|
161
|
-
}
|
|
162
|
-
if (topic === 'queue') {
|
|
163
|
-
const room = input[0];
|
|
164
|
-
return following(() => {
|
|
165
|
-
if (!holds(reach, room)) {
|
|
166
|
-
deliver([]);
|
|
167
|
-
return () => { };
|
|
168
|
-
}
|
|
169
|
-
return watch(topic, input, (entries) => deliver(queueWithin(reach, room, entries)));
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
if (topic === 'query') {
|
|
173
|
-
const plan = runtime.plan(input[0], reach);
|
|
174
|
-
let held = null;
|
|
175
|
-
return following(() => {
|
|
176
|
-
let first = true;
|
|
177
|
-
return runtime.watchPlan({ ...plan, reach: planReach(reach) }, (message) => {
|
|
178
|
-
if (!first) {
|
|
179
|
-
held = applied(held, message);
|
|
180
|
-
deliver(message);
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
first = false;
|
|
184
|
-
if (held === null) {
|
|
185
|
-
held = message;
|
|
186
|
-
deliver(message);
|
|
187
|
-
return;
|
|
188
|
-
}
|
|
189
|
-
const next = reconciled(held, message);
|
|
190
|
-
if (next === null)
|
|
191
|
-
return;
|
|
192
|
-
held = next.keyed;
|
|
193
|
-
deliver(next.change);
|
|
194
|
-
});
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
if (topic === 'conversation') {
|
|
198
|
-
return following(() => {
|
|
199
|
-
if (conversing(reach))
|
|
200
|
-
return watch(topic, input, deliver);
|
|
201
|
-
deliver(unheldView(input[0]));
|
|
202
|
-
return () => { };
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
return watch(topic, input, deliver);
|
|
206
|
-
};
|
|
207
|
-
const conversation = () => (conversing(reach) ? md.conversation : NO_CONVERSATION);
|
|
208
|
-
const chatDraft = () => (conversing(reach) ? md.chatDraft : NO_CHAT_DRAFT);
|
|
209
|
-
const view = {
|
|
210
|
-
...md,
|
|
211
|
-
rooms: () => roomsWithin(reach, md.rooms()),
|
|
212
|
-
query: ((input) => runtime.query(runtime.plan(input, reach))),
|
|
213
|
-
search: (input) => runtime.search(input, reach),
|
|
214
|
-
types(room) {
|
|
215
|
-
if (wholly(reach, room))
|
|
216
|
-
return md.types(room);
|
|
217
|
-
if (!holds(reach, room))
|
|
218
|
-
return structuredClone(UNHELD_TYPES);
|
|
219
|
-
const listed = md.rooms().find(({ locator }) => locator === room);
|
|
220
|
-
return typesWithin(reach, listed, md.types(room));
|
|
221
|
-
},
|
|
222
|
-
async save(room, roomDrafts, writtenBy) {
|
|
223
|
-
if (!holds(reach, room))
|
|
224
|
-
throw unreached(room);
|
|
225
|
-
const outside = roomDrafts.find(({ path }) => !covers(reach, room, path) ||
|
|
226
|
-
!moves(reach, room, md.roomDraft.read(room, path)?.parts.move));
|
|
227
|
-
if (outside !== undefined)
|
|
228
|
-
return { outcome: 'refused', rule: 'stale', file: outside.path };
|
|
229
|
-
return savedWithin(reach, room, await md.save(room, roomDrafts, writtenBy));
|
|
230
|
-
},
|
|
231
|
-
history: (room, path, query) => covers(reach, room, path)
|
|
232
|
-
? md.history(room, path, query)
|
|
233
|
-
: Promise.resolve({ kind: 'room-not-readable', locator: room }),
|
|
234
|
-
reached: (room, roomVersion, path) => (path === undefined ? wholly(reach, room) : covers(reach, room, path)) &&
|
|
235
|
-
md.reached(room, roomVersion, path),
|
|
236
|
-
log: () => (reach === null ? md.log() : ''),
|
|
237
|
-
roomDraft: {
|
|
238
|
-
list: () => md.roomDraft.list().then((drafts) => draftsWithin(reach, drafts)),
|
|
239
|
-
read: (room, path) => covers(reach, room, path) ? shownDraft(reach, md.roomDraft.read(room, path)) : null,
|
|
240
|
-
async write(room, path, revision, parts) {
|
|
241
|
-
if (!covers(reach, room, path) || !moves(reach, room, readParts(parts).move)) {
|
|
242
|
-
throw unreached(room);
|
|
243
|
-
}
|
|
244
|
-
return writeWithin(reach, await md.roomDraft.write(room, path, revision, parts));
|
|
245
|
-
},
|
|
246
|
-
async discard(room, path, revision) {
|
|
247
|
-
if (!covers(reach, room, path))
|
|
248
|
-
return { outcome: 'stale', current: null };
|
|
249
|
-
return writeWithin(reach, await md.roomDraft.discard(room, path, revision));
|
|
250
|
-
},
|
|
251
|
-
},
|
|
252
|
-
conversation: {
|
|
253
|
-
list: () => conversation().list(),
|
|
254
|
-
read: (id, options) => conversation().read(id, options),
|
|
255
|
-
create: (input) => conversation().create(input),
|
|
256
|
-
send: (id) => conversation().send(id),
|
|
257
|
-
answer: (id, answer) => conversation().answer(id, answer),
|
|
258
|
-
interrupt: (id) => conversation().interrupt(id),
|
|
259
|
-
kill: (id) => conversation().kill(id),
|
|
260
|
-
cancel: (id, turn) => conversation().cancel(id, turn),
|
|
261
|
-
delete: (id) => conversation().delete(id),
|
|
262
|
-
},
|
|
263
|
-
chatDraft: {
|
|
264
|
-
write: (id, draft) => chatDraft().write(id, draft),
|
|
265
|
-
discard: (id) => chatDraft().discard(id),
|
|
266
|
-
},
|
|
267
|
-
observe: observing(within),
|
|
268
|
-
};
|
|
269
|
-
return {
|
|
270
|
-
md: view,
|
|
271
|
-
watch: within,
|
|
272
|
-
narrow(next) {
|
|
273
|
-
reach = next;
|
|
274
|
-
for (const restart of [...open])
|
|
275
|
-
restart();
|
|
276
|
-
},
|
|
277
|
-
};
|
|
278
|
-
}
|