@agentshouse/mdruntime 0.1.0-cedb03eaa48b6 → 0.1.0-cedd665dffa4c
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 +24 -19
- package/dist/acceptance.d.ts +3 -0
- package/dist/acceptance.d.ts.map +1 -0
- package/dist/acceptance.js +299 -0
- package/dist/act-lanes.d.ts +30 -0
- package/dist/act-lanes.d.ts.map +1 -0
- package/dist/act-lanes.js +225 -0
- package/dist/actions.d.ts +26 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +302 -0
- package/dist/adapter.d.ts +173 -125
- package/dist/adapter.d.ts.map +1 -1
- package/dist/attached-model.d.ts +6 -10
- package/dist/attached-model.d.ts.map +1 -1
- package/dist/attached-model.js +35 -41
- package/dist/binary.d.ts +0 -5
- package/dist/binary.d.ts.map +1 -1
- package/dist/binary.js +1 -1
- package/dist/bootstrap.d.ts +30 -11
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +309 -113
- package/dist/cell.d.ts +6 -0
- package/dist/cell.d.ts.map +1 -0
- package/dist/cell.js +9 -0
- package/dist/chain.d.ts +12 -0
- package/dist/chain.d.ts.map +1 -0
- package/dist/chain.js +64 -0
- package/dist/change-set.d.ts +13 -16
- package/dist/change-set.d.ts.map +1 -1
- package/dist/change-set.js +17 -89
- package/dist/change.d.ts +36 -1
- package/dist/change.d.ts.map +1 -1
- package/dist/change.js +17 -3
- package/dist/chat-types.d.ts +3 -0
- package/dist/chat-types.d.ts.map +1 -0
- package/dist/chat-types.js +11 -0
- package/dist/client.d.ts +37 -26
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +113 -23
- package/dist/collection.d.ts +32 -21
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +53 -318
- package/dist/compile.d.ts +18 -0
- package/dist/compile.d.ts.map +1 -0
- package/dist/compile.js +723 -0
- package/dist/connection.d.ts +7 -137
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +110 -3602
- package/dist/context.d.ts +2 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/{chat/context.js → context.js} +2 -5
- package/dist/conversation-live.d.ts +150 -0
- package/dist/conversation-live.d.ts.map +1 -0
- package/dist/conversation-live.js +259 -0
- package/dist/conversation-row.d.ts +40 -0
- package/dist/conversation-row.d.ts.map +1 -0
- package/dist/conversation-row.js +66 -0
- package/dist/conversation.d.ts +75 -49
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +1029 -806
- package/dist/declaration.d.ts +10 -0
- package/dist/declaration.d.ts.map +1 -0
- package/dist/declaration.js +24 -0
- package/dist/digest.d.ts +7 -0
- package/dist/digest.d.ts.map +1 -0
- package/dist/digest.js +113 -0
- package/dist/discovery.d.ts +10 -0
- package/dist/discovery.d.ts.map +1 -0
- package/dist/discovery.js +150 -0
- package/dist/durability.d.ts +20 -4
- package/dist/durability.d.ts.map +1 -1
- package/dist/durability.js +9 -0
- package/dist/entry.d.ts +5 -2
- package/dist/entry.d.ts.map +1 -1
- package/dist/entry.js +33 -29
- package/dist/expectation.d.ts +26 -13
- package/dist/expectation.d.ts.map +1 -1
- package/dist/expectation.js +72 -19
- 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 +49 -0
- package/dist/figures.d.ts.map +1 -0
- package/dist/figures.js +199 -0
- package/dist/file.d.ts +2 -19
- package/dist/file.d.ts.map +1 -1
- package/dist/file.js +8 -122
- 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 +21 -8
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +119 -51
- package/dist/identity.d.ts +0 -2
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +0 -6
- package/dist/index.d.ts +41 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -4
- package/dist/install.d.ts +60 -0
- package/dist/install.d.ts.map +1 -0
- package/dist/install.js +537 -0
- package/dist/lifecycle.d.ts +7 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/lifecycle.js +278 -0
- package/dist/listing.d.ts +52 -0
- package/dist/listing.d.ts.map +1 -0
- package/dist/listing.js +152 -0
- package/dist/live.d.ts +25 -0
- package/dist/live.d.ts.map +1 -0
- package/dist/live.js +206 -0
- package/dist/loaded.d.ts +5 -0
- package/dist/loaded.d.ts.map +1 -0
- package/dist/loaded.js +40 -0
- package/dist/locks.d.ts +7 -0
- package/dist/locks.d.ts.map +1 -0
- package/dist/locks.js +32 -0
- package/dist/lost.d.ts +5 -0
- package/dist/lost.d.ts.map +1 -0
- package/dist/lost.js +49 -0
- package/dist/media.d.ts +13 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +269 -0
- package/dist/memory.d.ts +19 -7
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +281 -118
- package/dist/messages.d.ts +58 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +162 -0
- package/dist/model.d.ts +8 -11
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +6 -23
- package/dist/models.d.ts +10 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +153 -0
- package/dist/name.d.ts +4 -0
- package/dist/name.d.ts.map +1 -0
- package/dist/name.js +122 -0
- package/dist/observation.d.ts +38 -10
- package/dist/observation.d.ts.map +1 -1
- package/dist/observation.js +232 -44
- package/dist/opened.d.ts +22 -0
- package/dist/opened.d.ts.map +1 -0
- package/dist/opened.js +107 -0
- package/dist/opening.d.ts +4 -0
- package/dist/opening.d.ts.map +1 -0
- package/dist/opening.js +53 -0
- package/dist/outcome.d.ts +51 -9
- package/dist/outcome.d.ts.map +1 -1
- package/dist/outcome.js +62 -2
- package/dist/overlay.d.ts +8 -6
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +121 -182
- 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 +4 -0
- package/dist/parts.d.ts.map +1 -0
- package/dist/parts.js +13 -0
- package/dist/paths.d.ts +2 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +26 -0
- package/dist/preparation.d.ts +41 -0
- package/dist/preparation.d.ts.map +1 -0
- package/dist/preparation.js +314 -0
- package/dist/presence.d.ts +58 -0
- package/dist/presence.d.ts.map +1 -0
- package/dist/presence.js +231 -0
- package/dist/queries.d.ts +16 -0
- package/dist/queries.d.ts.map +1 -0
- package/dist/queries.js +308 -0
- package/dist/query.d.ts +21 -207
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +3 -493
- package/dist/{chat/questions.d.ts → questions.d.ts} +5 -7
- package/dist/questions.d.ts.map +1 -0
- package/dist/{chat/questions.js → questions.js} +11 -7
- package/dist/queue.d.ts +40 -0
- package/dist/queue.d.ts.map +1 -0
- package/dist/queue.js +480 -0
- package/dist/reach.d.ts +21 -11
- package/dist/reach.d.ts.map +1 -1
- package/dist/reach.js +342 -112
- package/dist/react.d.ts +17 -3
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +33 -1
- package/dist/{chat/read.d.ts → read.d.ts} +2 -0
- package/dist/read.d.ts.map +1 -0
- package/dist/{chat/read.js → read.js} +4 -0
- package/dist/readiness.d.ts +22 -20
- package/dist/readiness.d.ts.map +1 -1
- package/dist/readiness.js +5 -13
- package/dist/reads.d.ts +38 -10
- package/dist/reads.d.ts.map +1 -1
- package/dist/reads.js +163 -83
- package/dist/recovery.d.ts +5 -2
- package/dist/recovery.d.ts.map +1 -1
- package/dist/recovery.js +65 -8
- package/dist/refresh.d.ts +18 -15
- package/dist/refresh.d.ts.map +1 -1
- package/dist/refresh.js +145 -60
- package/dist/refusal.d.ts +5 -0
- package/dist/refusal.d.ts.map +1 -0
- package/dist/refusal.js +55 -0
- package/dist/replica.d.ts +49 -36
- package/dist/replica.d.ts.map +1 -1
- package/dist/replica.js +322 -198
- 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 +55 -13
- package/dist/room-draft.d.ts.map +1 -1
- package/dist/room-draft.js +416 -122
- package/dist/room-drafts.d.ts +24 -0
- package/dist/room-drafts.d.ts.map +1 -0
- package/dist/room-drafts.js +220 -0
- package/dist/rows.d.ts +32 -31
- package/dist/rows.d.ts.map +1 -1
- package/dist/rows.js +59 -124
- package/dist/runtime.d.ts +34 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +1 -0
- package/dist/save.d.ts +43 -49
- package/dist/save.d.ts.map +1 -1
- package/dist/save.js +736 -302
- package/dist/saves.d.ts +32 -0
- package/dist/saves.d.ts.map +1 -0
- package/dist/saves.js +426 -0
- package/dist/search.d.ts +12 -95
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +10 -266
- package/dist/seed.d.ts +11 -2
- package/dist/seed.d.ts.map +1 -1
- package/dist/seed.js +71 -1
- package/dist/shared.d.ts +6 -7
- package/dist/shared.d.ts.map +1 -1
- package/dist/shared.js +75 -104
- package/dist/shown.d.ts +33 -0
- package/dist/shown.d.ts.map +1 -0
- package/dist/shown.js +309 -0
- package/dist/socket/admission.d.ts +7 -0
- package/dist/socket/admission.d.ts.map +1 -0
- package/dist/socket/admission.js +39 -0
- package/dist/socket/answers.d.ts +6 -0
- package/dist/socket/answers.d.ts.map +1 -0
- package/dist/socket/answers.js +20 -0
- package/dist/socket/lanes.d.ts +28 -0
- package/dist/socket/lanes.d.ts.map +1 -0
- package/dist/socket/lanes.js +103 -0
- package/dist/socket/reads.d.ts +10 -0
- package/dist/socket/reads.d.ts.map +1 -0
- package/dist/socket/reads.js +31 -0
- package/dist/socket/session.d.ts +38 -0
- package/dist/socket/session.d.ts.map +1 -0
- package/dist/socket/session.js +23 -0
- package/dist/socket.d.ts +67 -0
- package/dist/socket.d.ts.map +1 -0
- package/dist/socket.js +164 -0
- package/dist/source.d.ts +59 -0
- package/dist/source.d.ts.map +1 -0
- package/dist/source.js +93 -0
- package/dist/status.d.ts +4 -5
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +3 -7
- package/dist/store/installs.d.ts +30 -0
- package/dist/store/installs.d.ts.map +1 -0
- package/dist/store/installs.js +40 -0
- package/dist/store/readiness.d.ts +11 -0
- package/dist/store/readiness.d.ts.map +1 -0
- package/dist/store/readiness.js +68 -0
- package/dist/store/records.d.ts +217 -0
- package/dist/store/records.d.ts.map +1 -0
- package/dist/store/records.js +464 -0
- package/dist/store/room-held.d.ts +8 -0
- package/dist/store/room-held.d.ts.map +1 -0
- package/dist/store/room-held.js +17 -0
- package/dist/store/rooms-shown.d.ts +8 -0
- package/dist/store/rooms-shown.d.ts.map +1 -0
- package/dist/store/rooms-shown.js +13 -0
- package/dist/store/space.d.ts +11 -0
- package/dist/store/space.d.ts.map +1 -0
- package/dist/store/space.js +41 -0
- package/dist/store/watchers.d.ts +17 -0
- package/dist/store/watchers.d.ts.map +1 -0
- package/dist/store/watchers.js +56 -0
- package/dist/store/writes.d.ts +24 -0
- package/dist/store/writes.d.ts.map +1 -0
- package/dist/store/writes.js +125 -0
- package/dist/store.d.ts +114 -163
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +163 -750
- package/dist/stored.d.ts +167 -0
- package/dist/stored.d.ts.map +1 -0
- package/dist/stored.js +703 -0
- package/dist/surface.d.ts +89 -0
- package/dist/surface.d.ts.map +1 -0
- package/dist/surface.js +222 -0
- package/dist/sync.d.ts +19 -0
- package/dist/sync.d.ts.map +1 -0
- package/dist/sync.js +535 -0
- package/dist/tables.d.ts +419 -0
- package/dist/tables.d.ts.map +1 -0
- package/dist/tables.js +758 -0
- package/dist/tallies.d.ts +18 -0
- package/dist/tallies.d.ts.map +1 -0
- package/dist/tallies.js +128 -0
- package/dist/transfer.d.ts +0 -5
- package/dist/transfer.d.ts.map +1 -1
- package/dist/turn.d.ts +4 -2
- package/dist/turn.d.ts.map +1 -1
- package/dist/turn.js +46 -22
- package/dist/validation.d.ts +29 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +98 -0
- package/dist/windows.d.ts +1 -16
- package/dist/windows.d.ts.map +1 -1
- package/dist/windows.js +2 -79
- package/dist/wire.d.ts +74 -9
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +26 -6
- package/package.json +19 -19
- package/AGENTS.md +0 -305
- package/dist/attempt.d.ts +0 -16
- package/dist/attempt.d.ts.map +0 -1
- package/dist/attempt.js +0 -70
- package/dist/chat/acts.d.ts +0 -33
- package/dist/chat/acts.d.ts.map +0 -1
- package/dist/chat/acts.js +0 -36
- package/dist/chat/context.d.ts +0 -3
- package/dist/chat/context.d.ts.map +0 -1
- package/dist/chat/earlier.d.ts +0 -10
- package/dist/chat/earlier.d.ts.map +0 -1
- package/dist/chat/earlier.js +0 -54
- package/dist/chat/input.d.ts +0 -9
- package/dist/chat/input.d.ts.map +0 -1
- package/dist/chat/input.js +0 -99
- package/dist/chat/kit.d.ts +0 -61
- package/dist/chat/kit.d.ts.map +0 -1
- package/dist/chat/kit.js +0 -123
- package/dist/chat/lasting.d.ts +0 -6
- package/dist/chat/lasting.d.ts.map +0 -1
- package/dist/chat/lasting.js +0 -19
- package/dist/chat/list.d.ts +0 -27
- package/dist/chat/list.d.ts.map +0 -1
- package/dist/chat/list.js +0 -99
- package/dist/chat/markdown.d.ts +0 -20
- package/dist/chat/markdown.d.ts.map +0 -1
- package/dist/chat/markdown.js +0 -188
- package/dist/chat/message.d.ts +0 -6
- package/dist/chat/message.d.ts.map +0 -1
- package/dist/chat/message.js +0 -192
- package/dist/chat/messages.d.ts +0 -22
- package/dist/chat/messages.d.ts.map +0 -1
- package/dist/chat/messages.js +0 -155
- package/dist/chat/name.d.ts +0 -6
- package/dist/chat/name.d.ts.map +0 -1
- package/dist/chat/name.js +0 -37
- package/dist/chat/opened.d.ts +0 -11
- package/dist/chat/opened.d.ts.map +0 -1
- package/dist/chat/opened.js +0 -17
- package/dist/chat/overlay.d.ts +0 -31
- package/dist/chat/overlay.d.ts.map +0 -1
- package/dist/chat/overlay.js +0 -97
- package/dist/chat/parts.d.ts +0 -57
- package/dist/chat/parts.d.ts.map +0 -1
- package/dist/chat/parts.js +0 -119
- package/dist/chat/process.d.ts +0 -20
- package/dist/chat/process.d.ts.map +0 -1
- package/dist/chat/process.js +0 -32
- package/dist/chat/provider.d.ts +0 -63
- package/dist/chat/provider.d.ts.map +0 -1
- package/dist/chat/provider.js +0 -628
- package/dist/chat/question.d.ts +0 -9
- package/dist/chat/question.d.ts.map +0 -1
- package/dist/chat/question.js +0 -69
- package/dist/chat/questions.d.ts.map +0 -1
- package/dist/chat/read.d.ts.map +0 -1
- package/dist/chat/ready.d.ts +0 -34
- package/dist/chat/ready.d.ts.map +0 -1
- package/dist/chat/ready.js +0 -91
- package/dist/chat/style.d.ts +0 -4
- package/dist/chat/style.d.ts.map +0 -1
- package/dist/chat/style.js +0 -302
- package/dist/chat.d.ts +0 -14
- package/dist/chat.d.ts.map +0 -1
- package/dist/chat.js +0 -8
- package/dist/fence.d.ts +0 -6
- package/dist/fence.d.ts.map +0 -1
- package/dist/fence.js +0 -10
- package/dist/log.d.ts +0 -5
- package/dist/log.d.ts.map +0 -1
- package/dist/log.js +0 -14
- package/dist/read-side.d.ts +0 -27
- package/dist/read-side.d.ts.map +0 -1
- package/dist/read-side.js +0 -824
package/dist/outcome.d.ts
CHANGED
|
@@ -1,35 +1,78 @@
|
|
|
1
|
-
import type { ActionResult, AdapterFailure,
|
|
1
|
+
import type { ActionResult, AdapterFailure, AttachResult, BinaryLinkResult, HistoryResult, HistoryRevision, ProviderRefusal, RoomVersionAt, ScopedRefusal } from './adapter.js';
|
|
2
2
|
import type { ChangeBatch } from './change.js';
|
|
3
|
+
import type { Attempt, Retries } from './retried.js';
|
|
4
|
+
import type { KeptBinary, KeptResult } from './opened.js';
|
|
3
5
|
type Refused<Kind extends string> = ProviderRefusal & {
|
|
4
6
|
kind: Kind;
|
|
5
7
|
};
|
|
6
8
|
export type Failure = Refused<'transport-uncertainty'> | Refused<'revoked-authorization'> | (Refused<'room-not-readable'> & {
|
|
7
9
|
locator: string;
|
|
10
|
+
}) | (Refused<'room-locked'> & {
|
|
11
|
+
locator: string;
|
|
8
12
|
}) | ScopedRefusal;
|
|
9
13
|
export type CallResult = {
|
|
10
14
|
kind: 'action';
|
|
11
15
|
result: unknown;
|
|
12
16
|
at?: RoomVersionAt;
|
|
13
|
-
} | Refused<'rejected'>
|
|
17
|
+
} | (Refused<'rejected'> & {
|
|
18
|
+
reset?: string;
|
|
19
|
+
}) | Refused<'undeclared'> | Failure;
|
|
14
20
|
export type HistoryAnswer = Exclude<HistoryResult, {
|
|
15
21
|
kind: Failure['kind'];
|
|
16
22
|
}> | Failure;
|
|
23
|
+
type BinaryRefusal = Refused<'rejected'> | Refused<'absent'> | Failure;
|
|
17
24
|
export type BinaryAnswer = {
|
|
18
25
|
kind: 'binary';
|
|
19
|
-
|
|
20
|
-
|
|
26
|
+
stream: ReadableStream<Uint8Array>;
|
|
27
|
+
byteLength: number;
|
|
28
|
+
mediaType: string;
|
|
29
|
+
} | BinaryRefusal;
|
|
30
|
+
export type HeldBinaryAnswer = KeptBinary | BinaryRefusal;
|
|
21
31
|
export type BinaryLinkAnswer = {
|
|
22
32
|
kind: 'link';
|
|
23
33
|
url: string;
|
|
24
34
|
name: string;
|
|
35
|
+
mediaType: string;
|
|
25
36
|
} | Refused<'rejected'> | Refused<'absent'> | Failure;
|
|
37
|
+
export type HeldShownAnswer = KeptBinary | BinaryLinkAnswer;
|
|
38
|
+
export type ShownAnswer = BinaryAnswer | BinaryLinkAnswer;
|
|
39
|
+
export type AttachAnswer = {
|
|
40
|
+
kind: 'attached';
|
|
41
|
+
path: string;
|
|
42
|
+
} | Offline | Refused<'rejected'> | Failure;
|
|
43
|
+
export type DownloadAnswer = {
|
|
44
|
+
kind: 'started';
|
|
45
|
+
} | Refused<'rejected'> | Refused<'absent'> | Refused<'blocked'> | Failure;
|
|
46
|
+
export type Resolution = {
|
|
47
|
+
readonly kind: 'document';
|
|
48
|
+
readonly room: string;
|
|
49
|
+
readonly path: string;
|
|
50
|
+
} | {
|
|
51
|
+
readonly kind: 'deleted';
|
|
52
|
+
readonly room: string;
|
|
53
|
+
readonly path: string;
|
|
54
|
+
readonly revision: HistoryRevision;
|
|
55
|
+
} | Refused<'unreadable'> | Refused<'absent'> | Failure;
|
|
56
|
+
export declare const UNREADABLE: Refused<'unreadable'>;
|
|
57
|
+
export declare const LOCKED_UNREADABLE: Refused<'unreadable'>;
|
|
58
|
+
export declare const ABSENT_TARGET: Refused<'absent'>;
|
|
26
59
|
export declare function absentBinary(path: string): Refused<'absent'>;
|
|
27
|
-
export declare function
|
|
28
|
-
export declare function
|
|
60
|
+
export declare function declaredType(blob: Blob): string;
|
|
61
|
+
export declare function blobOf(binary: Extract<BinaryAnswer, {
|
|
62
|
+
kind: 'binary';
|
|
63
|
+
}>): Promise<Blob>;
|
|
64
|
+
export declare function binaryAnswer(result: KeptResult): HeldBinaryAnswer;
|
|
65
|
+
export declare function binaryLinkAnswer(result: BinaryLinkResult, held?: string): BinaryLinkAnswer;
|
|
66
|
+
export declare function attachAnswer(result: AttachResult): AttachAnswer;
|
|
67
|
+
export declare const ROOM_LOCKED = "room-locked";
|
|
68
|
+
export declare function lockedRoom(locator: string): Refused<'room-locked'> & {
|
|
69
|
+
locator: string;
|
|
70
|
+
};
|
|
29
71
|
export type Offline = {
|
|
30
72
|
readonly kind: 'offline';
|
|
31
73
|
};
|
|
32
74
|
export declare const OFFLINE: Offline;
|
|
75
|
+
export declare function answeredResult(value: unknown): boolean;
|
|
33
76
|
export declare const UNCERTAIN: Failure;
|
|
34
77
|
export declare function undeclared(name: string): CallResult;
|
|
35
78
|
export declare function failure(result: AdapterFailure): Failure;
|
|
@@ -45,9 +88,8 @@ export type QueueEntry = {
|
|
|
45
88
|
readonly batch: ChangeBatch;
|
|
46
89
|
} & (Submission | {
|
|
47
90
|
readonly state: 'local';
|
|
48
|
-
} | {
|
|
49
|
-
readonly state: 'accepted';
|
|
50
|
-
readonly roomVersion: string;
|
|
51
91
|
});
|
|
92
|
+
export declare const UNANSWERED: ActionResult;
|
|
93
|
+
export declare function handedOutcome(retries: Retries, attempt: Attempt | undefined, result: ActionResult): CallResult;
|
|
52
94
|
export {};
|
|
53
95
|
//# sourceMappingURL=outcome.d.ts.map
|
package/dist/outcome.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outcome.d.ts","sourceRoot":"","sources":["../src/outcome.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"outcome.d.ts","sourceRoot":"","sources":["../src/outcome.ts"],"names":[],"mappings":"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"}
|
package/dist/outcome.js
CHANGED
|
@@ -1,13 +1,59 @@
|
|
|
1
|
+
import { MEDIA_TYPES } from '@agentshouse/mdmodel';
|
|
2
|
+
import { refusalError } from './failure.js';
|
|
3
|
+
export const UNREADABLE = {
|
|
4
|
+
kind: 'unreadable',
|
|
5
|
+
code: 'room-not-readable',
|
|
6
|
+
fields: {},
|
|
7
|
+
retryable: false,
|
|
8
|
+
};
|
|
9
|
+
export const LOCKED_UNREADABLE = {
|
|
10
|
+
kind: 'unreadable',
|
|
11
|
+
code: 'room-locked',
|
|
12
|
+
fields: {},
|
|
13
|
+
retryable: true,
|
|
14
|
+
};
|
|
15
|
+
export const ABSENT_TARGET = {
|
|
16
|
+
kind: 'absent',
|
|
17
|
+
code: 'reference-absent',
|
|
18
|
+
fields: {},
|
|
19
|
+
retryable: false,
|
|
20
|
+
};
|
|
1
21
|
export function absentBinary(path) {
|
|
2
22
|
return { kind: 'absent', code: 'binary-file-absent', fields: { path }, retryable: false };
|
|
3
23
|
}
|
|
24
|
+
export function declaredType(blob) {
|
|
25
|
+
return blob.type === '' ? MEDIA_TYPES.octetStream : blob.type;
|
|
26
|
+
}
|
|
27
|
+
export function blobOf(binary) {
|
|
28
|
+
return new Response(binary.stream, { headers: { 'content-type': binary.mediaType } }).blob();
|
|
29
|
+
}
|
|
4
30
|
export function binaryAnswer(result) {
|
|
5
31
|
return result.kind === 'binary' || result.kind === 'rejected' ? result : failure(result);
|
|
6
32
|
}
|
|
7
|
-
export function binaryLinkAnswer(result) {
|
|
8
|
-
|
|
33
|
+
export function binaryLinkAnswer(result, held) {
|
|
34
|
+
if (result.kind === 'link') {
|
|
35
|
+
return {
|
|
36
|
+
kind: 'link',
|
|
37
|
+
url: result.url,
|
|
38
|
+
name: result.name,
|
|
39
|
+
mediaType: result.mediaType ?? held ?? MEDIA_TYPES.octetStream,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return result.kind === 'rejected' ? result : failure(result);
|
|
43
|
+
}
|
|
44
|
+
export function attachAnswer(result) {
|
|
45
|
+
if (result.kind === 'attached')
|
|
46
|
+
return { kind: 'attached', path: result.path };
|
|
47
|
+
return result.kind === 'rejected' ? result : failure(result);
|
|
48
|
+
}
|
|
49
|
+
export const ROOM_LOCKED = 'room-locked';
|
|
50
|
+
export function lockedRoom(locator) {
|
|
51
|
+
return { kind: ROOM_LOCKED, locator, code: ROOM_LOCKED, fields: {}, retryable: true };
|
|
9
52
|
}
|
|
10
53
|
export const OFFLINE = { kind: 'offline' };
|
|
54
|
+
export function answeredResult(value) {
|
|
55
|
+
return typeof value === 'object' && value !== null && !('pending' in value);
|
|
56
|
+
}
|
|
11
57
|
export const UNCERTAIN = {
|
|
12
58
|
kind: 'transport-uncertainty',
|
|
13
59
|
code: 'transport-uncertainty',
|
|
@@ -43,3 +89,17 @@ export function historyAnswer(result) {
|
|
|
43
89
|
? result
|
|
44
90
|
: failure(result);
|
|
45
91
|
}
|
|
92
|
+
export const UNANSWERED = { kind: 'transport-uncertainty' };
|
|
93
|
+
export function handedOutcome(retries, attempt, result) {
|
|
94
|
+
if (attempt !== undefined) {
|
|
95
|
+
const { step, instance } = attempt;
|
|
96
|
+
if (result.kind === 'action')
|
|
97
|
+
retries.succeeded(step, instance);
|
|
98
|
+
else if (result.kind === 'transport-uncertainty')
|
|
99
|
+
retries.uncertain(step, instance, result);
|
|
100
|
+
else if (result.kind === 'rejected' && result.retryable) {
|
|
101
|
+
retries.failed(step, instance, refusalError(result));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return calledResult(result);
|
|
105
|
+
}
|
package/dist/overlay.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import { type ApplyResult } from '@agentshouse/mdmodel';
|
|
1
2
|
import type { BinaryFile, HeadChange } from './adapter.js';
|
|
2
|
-
import type
|
|
3
|
+
import { type Composition } from './collection.js';
|
|
4
|
+
import { type ChangeBatch } from './change.js';
|
|
3
5
|
export type Heads = {
|
|
4
6
|
revisions: Readonly<Record<string, string>>;
|
|
5
7
|
fileIds: Readonly<Record<string, string>>;
|
|
8
|
+
created: Readonly<Record<string, string>>;
|
|
6
9
|
changes: Readonly<Record<string, HeadChange>>;
|
|
7
10
|
};
|
|
8
11
|
export type HeldBinary = ({
|
|
@@ -18,11 +21,10 @@ export type Layer = Heads & {
|
|
|
18
21
|
documents: Readonly<Record<string, string>>;
|
|
19
22
|
binaries: Readonly<Record<string, HeldBinary>>;
|
|
20
23
|
};
|
|
21
|
-
export declare function acceptedBinaries(files: Readonly<Record<string, BinaryFile>>):
|
|
24
|
+
export declare function acceptedBinaries(files: Readonly<Record<string, BinaryFile>>): Generator<readonly [string, HeldBinary]>;
|
|
22
25
|
export declare function sameBinary(left: HeldBinary | undefined, right: HeldBinary | undefined): boolean;
|
|
23
26
|
export declare function sameChange(left: HeadChange | undefined, right: HeadChange | undefined): boolean;
|
|
24
|
-
export declare function
|
|
25
|
-
export declare function
|
|
26
|
-
export declare function
|
|
27
|
-
export declare function overlayChanged(base: Layer, queue: readonly ChangeBatch[], previousBase: Layer, previousQueue: readonly ChangeBatch[], previousVisible: Layer): Layer;
|
|
27
|
+
export declare function composed(path: string, fields: Readonly<Record<string, unknown>>, sections: Readonly<Record<string, string>>, composition: Composition): ApplyResult;
|
|
28
|
+
export declare function compose(path: string, fields: Readonly<Record<string, unknown>>, sections: Readonly<Record<string, string>>, composition: Composition): string;
|
|
29
|
+
export declare function overlaying(base: Layer, queue: readonly ChangeBatch[], composition: Composition, unapplied?: () => void): Generator<number, Layer, void>;
|
|
28
30
|
//# sourceMappingURL=overlay.d.ts.map
|
package/dist/overlay.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,WAAW,EAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAGL,KAAK,WAAW,EAGjB,MAAM,aAAa,CAAC;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5C,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,UAAU,GAClB,CAAC;IAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG,UAAU,CAAC,GAC7C;IACE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEN,MAAM,MAAM,KAAK,GAAG,KAAK,GAAG;IAC1B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;CAChD,CAAC;AAEF,wBAAiB,gBAAgB,CAC/B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAC1C,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAE1C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAW/F;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAQ/F;AA+CD,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACzC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC1C,WAAW,EAAE,WAAW,GACvB,WAAW,CAqBb;AAED,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACzC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC1C,WAAW,EAAE,WAAW,GACvB,MAAM,CAIR;AA8ID,wBAAiB,UAAU,CACzB,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,SAAS,WAAW,EAAE,EAC7B,WAAW,EAAE,WAAW,EACxB,SAAS,CAAC,EAAE,MAAM,IAAI,GACrB,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAsChC"}
|
package/dist/overlay.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import { apply, parse, serialize } from '@agentshouse/mdmodel';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { apply, create, documentValue, parse, serialize, TYPE_FIELD, } from '@agentshouse/mdmodel';
|
|
2
|
+
import { definitionsAt } from './collection.js';
|
|
3
|
+
import { isPart, } from './change.js';
|
|
4
|
+
import { drafted, entriesIn, settling } from './shared.js';
|
|
5
|
+
import { ROW_WEIGHT } from './turn.js';
|
|
6
|
+
export function* acceptedBinaries(files) {
|
|
7
|
+
for (const [path, file] of entriesIn(files))
|
|
8
|
+
yield [path, { state: 'accepted', ...file }];
|
|
5
9
|
}
|
|
6
10
|
export function sameBinary(left, right) {
|
|
7
11
|
if (left === undefined || right === undefined)
|
|
@@ -11,7 +15,7 @@ export function sameBinary(left, right) {
|
|
|
11
15
|
left.mediaType === right.mediaType &&
|
|
12
16
|
left.sha256 === right.sha256 &&
|
|
13
17
|
(left.state === 'accepted'
|
|
14
|
-
? right.state === 'accepted'
|
|
18
|
+
? right.state === 'accepted'
|
|
15
19
|
: right.state === 'pending' && left.localId === right.localId));
|
|
16
20
|
}
|
|
17
21
|
export function sameChange(left, right) {
|
|
@@ -22,11 +26,10 @@ export function sameChange(left, right) {
|
|
|
22
26
|
left.author?.id === right.author?.id &&
|
|
23
27
|
left.author?.name === right.author?.name);
|
|
24
28
|
}
|
|
25
|
-
const EMPTY_FRONTMATTER = '---\n---\n';
|
|
26
29
|
function at(path, name) {
|
|
27
30
|
return `${path} ${name}`;
|
|
28
31
|
}
|
|
29
|
-
function priorsOf(preconditions) {
|
|
32
|
+
function* priorsOf(preconditions) {
|
|
30
33
|
const fields = new Map();
|
|
31
34
|
const sections = new Map();
|
|
32
35
|
const preambles = new Map();
|
|
@@ -40,6 +43,7 @@ function priorsOf(preconditions) {
|
|
|
40
43
|
if (precondition.kind === 'preamble') {
|
|
41
44
|
preambles.set(precondition.path, precondition.value);
|
|
42
45
|
}
|
|
46
|
+
yield ROW_WEIGHT;
|
|
43
47
|
}
|
|
44
48
|
return {
|
|
45
49
|
field: (path, name) => fields.get(at(path, name)),
|
|
@@ -47,59 +51,71 @@ function priorsOf(preconditions) {
|
|
|
47
51
|
preamble: (path) => preambles.get(path) ?? '',
|
|
48
52
|
};
|
|
49
53
|
}
|
|
50
|
-
function
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
54
|
+
export function composed(path, fields, sections, composition) {
|
|
55
|
+
const declared = fields[TYPE_FIELD];
|
|
56
|
+
const type = typeof declared === 'string' && declared !== '' ? declared : undefined;
|
|
57
|
+
const definition = definitionsAt(composition, path)(type);
|
|
58
|
+
return apply(create(type, definition), [
|
|
59
|
+
...Object.entries(fields).flatMap(([name, value]) => (name !== TYPE_FIELD || type === undefined) && documentValue(value)
|
|
60
|
+
? [{ kind: 'field', name, value, prior: undefined }]
|
|
61
|
+
: []),
|
|
62
|
+
...Object.entries(sections).map(([name, value]) => ({
|
|
63
|
+
kind: 'section',
|
|
64
|
+
name,
|
|
65
|
+
value,
|
|
66
|
+
prior: undefined,
|
|
67
|
+
})),
|
|
68
|
+
], definition);
|
|
69
|
+
}
|
|
70
|
+
export function compose(path, fields, sections, composition) {
|
|
71
|
+
const next = composed(path, fields, sections, composition);
|
|
72
|
+
if (next.outcome !== 'applied')
|
|
73
|
+
throw new Error(`the creation of ${path} writes no document`);
|
|
74
|
+
return serialize(next.document);
|
|
65
75
|
}
|
|
66
|
-
function edited(
|
|
67
|
-
if (change.kind === 'field')
|
|
68
|
-
return
|
|
76
|
+
function edited(change, priors) {
|
|
77
|
+
if (change.kind === 'field')
|
|
78
|
+
return {
|
|
69
79
|
kind: 'field',
|
|
70
80
|
name: change.name,
|
|
71
81
|
value: change.value,
|
|
72
82
|
prior: priors.field(change.path, change.name),
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
kind: 'preamble',
|
|
78
|
-
value: change.value,
|
|
79
|
-
prior: priors.preamble(change.path),
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
if (change.kind !== 'section')
|
|
83
|
-
return null;
|
|
84
|
-
return apply(document, {
|
|
83
|
+
};
|
|
84
|
+
if (change.kind === 'preamble')
|
|
85
|
+
return { kind: 'preamble', value: change.value, prior: priors.preamble(change.path) };
|
|
86
|
+
return {
|
|
85
87
|
kind: 'section',
|
|
86
88
|
name: change.name,
|
|
87
89
|
value: change.value,
|
|
88
90
|
prior: priors.section(change.path, change.name),
|
|
89
|
-
}
|
|
91
|
+
};
|
|
90
92
|
}
|
|
91
|
-
function edit(staged,
|
|
92
|
-
const
|
|
93
|
+
function edit(staged, changes, priors, composition) {
|
|
94
|
+
const path = changes[0].path;
|
|
95
|
+
delete staged.revisions[path];
|
|
96
|
+
const text = staged.documents[path];
|
|
93
97
|
if (text === undefined)
|
|
94
|
-
return
|
|
95
|
-
const
|
|
98
|
+
return changes.length;
|
|
99
|
+
const definitions = definitionsAt(composition, path);
|
|
100
|
+
const parsed = parse(text, path, definitions);
|
|
96
101
|
if (!parsed.ok)
|
|
97
|
-
return
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
102
|
+
return changes.length;
|
|
103
|
+
const definition = definitions(parsed.document.type);
|
|
104
|
+
const wanted = changes.map((change) => edited(change, priors));
|
|
105
|
+
const first = apply(parsed.document, wanted, definition);
|
|
106
|
+
if (first.outcome === 'refuse')
|
|
107
|
+
return changes.length;
|
|
108
|
+
if (first.outcome === 'applied') {
|
|
109
|
+
staged.documents[path] = serialize(first.document);
|
|
110
|
+
return 0;
|
|
111
|
+
}
|
|
112
|
+
const stale = new Set(first.stale);
|
|
113
|
+
const kept = wanted.filter((_, at) => !stale.has(at));
|
|
114
|
+
const rest = apply(parsed.document, kept, definition);
|
|
115
|
+
if (rest.outcome !== 'applied')
|
|
116
|
+
return changes.length;
|
|
117
|
+
staged.documents[path] = serialize(rest.document);
|
|
118
|
+
return first.stale.length;
|
|
103
119
|
}
|
|
104
120
|
function relocate(staged, from, to) {
|
|
105
121
|
const text = staged.documents[from];
|
|
@@ -120,16 +136,21 @@ function relocate(staged, from, to) {
|
|
|
120
136
|
function moveHead(heads, from, to) {
|
|
121
137
|
const revision = heads.revisions[from];
|
|
122
138
|
const fileId = heads.fileIds[from];
|
|
139
|
+
const created = heads.created[from];
|
|
123
140
|
const change = heads.changes[from];
|
|
124
141
|
delete heads.revisions[from];
|
|
125
142
|
delete heads.fileIds[from];
|
|
143
|
+
delete heads.created[from];
|
|
126
144
|
delete heads.changes[from];
|
|
127
145
|
delete heads.fileIds[to];
|
|
146
|
+
delete heads.created[to];
|
|
128
147
|
delete heads.changes[to];
|
|
129
148
|
if (revision !== undefined)
|
|
130
149
|
heads.revisions[to] = revision;
|
|
131
150
|
if (fileId !== undefined)
|
|
132
151
|
heads.fileIds[to] = fileId;
|
|
152
|
+
if (created !== undefined)
|
|
153
|
+
heads.created[to] = created;
|
|
133
154
|
if (change !== undefined)
|
|
134
155
|
heads.changes[to] = change;
|
|
135
156
|
}
|
|
@@ -137,18 +158,18 @@ function erase(staged, path) {
|
|
|
137
158
|
delete staged.documents[path];
|
|
138
159
|
delete staged.revisions[path];
|
|
139
160
|
delete staged.fileIds[path];
|
|
161
|
+
delete staged.created[path];
|
|
140
162
|
delete staged.changes[path];
|
|
141
163
|
delete staged.binaries[path];
|
|
142
164
|
}
|
|
143
|
-
function stage(staged, change,
|
|
144
|
-
if (change.kind === 'field' || change.kind === 'section' || change.kind === 'preamble') {
|
|
145
|
-
delete staged.revisions[change.path];
|
|
146
|
-
return edit(staged, change, priors);
|
|
147
|
-
}
|
|
165
|
+
function stage(staged, change, composition) {
|
|
148
166
|
if (change.kind === 'create') {
|
|
149
167
|
staged.documents[change.path] =
|
|
150
|
-
'content' in change
|
|
168
|
+
'content' in change
|
|
169
|
+
? change.content
|
|
170
|
+
: compose(change.path, change.fields, change.sections, composition);
|
|
151
171
|
delete staged.fileIds[change.path];
|
|
172
|
+
delete staged.created[change.path];
|
|
152
173
|
delete staged.changes[change.path];
|
|
153
174
|
return true;
|
|
154
175
|
}
|
|
@@ -176,149 +197,67 @@ function stage(staged, change, priors) {
|
|
|
176
197
|
if (change.kind === 'move') {
|
|
177
198
|
return relocate(staged, change.path, change.to);
|
|
178
199
|
}
|
|
200
|
+
if (change.kind === 'arrival') {
|
|
201
|
+
erase(staged, change.path);
|
|
202
|
+
if ('content' in change)
|
|
203
|
+
staged.documents[change.path] = change.content;
|
|
204
|
+
else
|
|
205
|
+
staged.binaries[change.path] = { state: 'accepted', ...change.binary };
|
|
206
|
+
arrive(staged, change);
|
|
207
|
+
return true;
|
|
208
|
+
}
|
|
179
209
|
erase(staged, change.path);
|
|
180
210
|
return true;
|
|
181
211
|
}
|
|
182
|
-
|
|
212
|
+
function arrive(heads, change) {
|
|
213
|
+
if (change.revision !== undefined)
|
|
214
|
+
heads.revisions[change.path] = change.revision;
|
|
215
|
+
if (change.fileId !== undefined)
|
|
216
|
+
heads.fileIds[change.path] = change.fileId;
|
|
217
|
+
if (change.created !== undefined)
|
|
218
|
+
heads.created[change.path] = change.created;
|
|
219
|
+
if (change.change !== undefined)
|
|
220
|
+
heads.changes[change.path] = change.change;
|
|
221
|
+
}
|
|
222
|
+
export function* overlaying(base, queue, composition, unapplied) {
|
|
183
223
|
const staged = {
|
|
184
224
|
documents: drafted(base.documents),
|
|
185
225
|
binaries: drafted(base.binaries),
|
|
186
226
|
revisions: drafted(base.revisions),
|
|
187
227
|
fileIds: drafted(base.fileIds),
|
|
228
|
+
created: drafted(base.created),
|
|
188
229
|
changes: drafted(base.changes),
|
|
189
230
|
};
|
|
190
231
|
for (const batch of queue) {
|
|
191
|
-
const priors = priorsOf(batch.preconditions);
|
|
192
|
-
for (
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
documents: settled(staged.documents),
|
|
199
|
-
binaries: settled(staged.binaries),
|
|
200
|
-
revisions: settled(staged.revisions),
|
|
201
|
-
fileIds: settled(staged.fileIds),
|
|
202
|
-
changes: settled(staged.changes),
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
function pathsOf(batch) {
|
|
206
|
-
return batch.changes.flatMap((change) => change.kind === 'move' ? [change.path, change.to] : [change.path]);
|
|
207
|
-
}
|
|
208
|
-
export function sameLayerText(left, right) {
|
|
209
|
-
return (differing(left.documents, right.documents).size === 0 &&
|
|
210
|
-
differing(left.binaries, right.binaries, sameBinary).size === 0);
|
|
211
|
-
}
|
|
212
|
-
export function changedPaths(left, right) {
|
|
213
|
-
return new Set([
|
|
214
|
-
...differing(left.documents, right.documents),
|
|
215
|
-
...differing(left.revisions, right.revisions),
|
|
216
|
-
...differing(left.fileIds, right.fileIds),
|
|
217
|
-
...differing(left.changes, right.changes, sameChange),
|
|
218
|
-
...differing(left.binaries, right.binaries, sameBinary),
|
|
219
|
-
]);
|
|
220
|
-
}
|
|
221
|
-
function replayHeads(base, queue) {
|
|
222
|
-
const heads = {
|
|
223
|
-
revisions: drafted(base.revisions),
|
|
224
|
-
fileIds: drafted(base.fileIds),
|
|
225
|
-
changes: drafted(base.changes),
|
|
226
|
-
};
|
|
227
|
-
for (const batch of queue) {
|
|
228
|
-
for (const change of batch.changes) {
|
|
229
|
-
if (change.kind === 'remove') {
|
|
230
|
-
delete heads.revisions[change.path];
|
|
231
|
-
delete heads.fileIds[change.path];
|
|
232
|
-
delete heads.changes[change.path];
|
|
233
|
-
}
|
|
234
|
-
else if (change.kind === 'create') {
|
|
235
|
-
delete heads.fileIds[change.path];
|
|
236
|
-
delete heads.changes[change.path];
|
|
237
|
-
}
|
|
238
|
-
else if (change.kind === 'replace' ||
|
|
239
|
-
change.kind === 'field' ||
|
|
240
|
-
change.kind === 'section' ||
|
|
241
|
-
change.kind === 'preamble') {
|
|
242
|
-
delete heads.revisions[change.path];
|
|
243
|
-
}
|
|
244
|
-
else if (change.kind === 'binary') {
|
|
245
|
-
delete heads.revisions[change.path];
|
|
246
|
-
delete heads.changes[change.path];
|
|
247
|
-
}
|
|
248
|
-
else if (change.kind === 'move') {
|
|
249
|
-
moveHead(heads, change.path, change.to);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
return {
|
|
254
|
-
revisions: settled(heads.revisions),
|
|
255
|
-
fileIds: settled(heads.fileIds),
|
|
256
|
-
changes: settled(heads.changes),
|
|
257
|
-
};
|
|
258
|
-
}
|
|
259
|
-
export function overlayChanged(base, queue, previousBase, previousQueue, previousVisible) {
|
|
260
|
-
const before = previousQueue.map((batch) => JSON.stringify(batch));
|
|
261
|
-
const after = queue.map((batch) => JSON.stringify(batch));
|
|
262
|
-
if (before.length === after.length &&
|
|
263
|
-
before.every((id, index) => id === after[index]) &&
|
|
264
|
-
sameLayerText(base, previousBase)) {
|
|
265
|
-
return {
|
|
266
|
-
documents: previousVisible.documents,
|
|
267
|
-
binaries: previousVisible.binaries,
|
|
268
|
-
...replayHeads(base, queue),
|
|
269
|
-
};
|
|
270
|
-
}
|
|
271
|
-
const affected = new Set(changedPaths(base, previousBase));
|
|
272
|
-
const oldIds = new Set(before);
|
|
273
|
-
const newIds = new Set(after);
|
|
274
|
-
for (const batch of previousQueue) {
|
|
275
|
-
if (!newIds.has(JSON.stringify(batch)))
|
|
276
|
-
for (const path of pathsOf(batch))
|
|
277
|
-
affected.add(path);
|
|
278
|
-
}
|
|
279
|
-
for (const batch of queue) {
|
|
280
|
-
if (!oldIds.has(JSON.stringify(batch)))
|
|
281
|
-
for (const path of pathsOf(batch))
|
|
282
|
-
affected.add(path);
|
|
283
|
-
}
|
|
284
|
-
let expanded = true;
|
|
285
|
-
while (expanded) {
|
|
286
|
-
expanded = false;
|
|
287
|
-
for (const batch of queue) {
|
|
288
|
-
const touched = pathsOf(batch);
|
|
289
|
-
if (!touched.some((path) => affected.has(path)))
|
|
232
|
+
const priors = yield* priorsOf(batch.preconditions);
|
|
233
|
+
for (let index = 0; index < batch.changes.length; index += 1) {
|
|
234
|
+
const change = batch.changes[index];
|
|
235
|
+
if (!isPart(change)) {
|
|
236
|
+
if (!stage(staged, change, composition))
|
|
237
|
+
unapplied?.();
|
|
238
|
+
yield ROW_WEIGHT;
|
|
290
239
|
continue;
|
|
291
|
-
for (const path of touched) {
|
|
292
|
-
if (affected.has(path))
|
|
293
|
-
continue;
|
|
294
|
-
affected.add(path);
|
|
295
|
-
expanded = true;
|
|
296
240
|
}
|
|
241
|
+
const run = [change];
|
|
242
|
+
while (index + 1 < batch.changes.length) {
|
|
243
|
+
const next = batch.changes[index + 1];
|
|
244
|
+
if (!isPart(next) || next.path !== change.path)
|
|
245
|
+
break;
|
|
246
|
+
run.push(next);
|
|
247
|
+
index += 1;
|
|
248
|
+
}
|
|
249
|
+
const text = staged.documents[change.path] ?? '';
|
|
250
|
+
for (let left = edit(staged, run, priors, composition); left > 0; left -= 1)
|
|
251
|
+
unapplied?.();
|
|
252
|
+
yield ROW_WEIGHT + text.length;
|
|
297
253
|
}
|
|
298
254
|
}
|
|
299
|
-
const documents = {};
|
|
300
|
-
const revisions = {};
|
|
301
|
-
const fileIds = {};
|
|
302
|
-
const changes = {};
|
|
303
|
-
const binaries = {};
|
|
304
|
-
for (const path of affected) {
|
|
305
|
-
if (base.documents[path] !== undefined)
|
|
306
|
-
documents[path] = base.documents[path];
|
|
307
|
-
if (base.revisions[path] !== undefined)
|
|
308
|
-
revisions[path] = base.revisions[path];
|
|
309
|
-
if (base.fileIds[path] !== undefined)
|
|
310
|
-
fileIds[path] = base.fileIds[path];
|
|
311
|
-
if (base.changes[path] !== undefined)
|
|
312
|
-
changes[path] = base.changes[path];
|
|
313
|
-
if (base.binaries[path] !== undefined)
|
|
314
|
-
binaries[path] = base.binaries[path];
|
|
315
|
-
}
|
|
316
|
-
const staged = overlay({ documents, revisions, fileIds, changes, binaries }, queue.filter((batch) => pathsOf(batch).some((path) => affected.has(path))));
|
|
317
255
|
return {
|
|
318
|
-
documents:
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
256
|
+
documents: yield* settling(staged.documents),
|
|
257
|
+
binaries: yield* settling(staged.binaries),
|
|
258
|
+
revisions: yield* settling(staged.revisions),
|
|
259
|
+
fileIds: yield* settling(staged.fileIds),
|
|
260
|
+
created: yield* settling(staged.created),
|
|
261
|
+
changes: yield* settling(staged.changes),
|
|
323
262
|
};
|
|
324
263
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const PAGE_METADATA_WORDS: {
|
|
2
|
+
readonly heading: 'Page metadata';
|
|
3
|
+
readonly app: 'App';
|
|
4
|
+
readonly address: 'Address';
|
|
5
|
+
readonly queries: 'Local Queries';
|
|
6
|
+
};
|
|
7
|
+
export declare function pageMetadataBlock(app: string, address: string, queries: readonly unknown[]): string;
|
|
8
|
+
//# sourceMappingURL=page-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-metadata.d.ts","sourceRoot":"","sources":["../src/page-metadata.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB;aAC9B,OAAO,EAAE,eAAe;aACxB,GAAG,EAAE,KAAK;aACV,OAAO,EAAE,SAAS;aAClB,OAAO,EAAE,eAAe;CAChB,CAAC;AAIX,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,SAAS,OAAO,EAAE,GAC1B,MAAM,CAUR"}
|