@agentshouse/mdruntime 0.1.0-cd50a4607cb7d → 0.1.0-cd574a610e9c8
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 +226 -117
- 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/authored.d.ts +88 -0
- package/dist/authored.d.ts.map +1 -0
- package/dist/authored.js +345 -0
- 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 +31 -11
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +309 -109
- 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 -88
- 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 +45 -25
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +132 -27
- package/dist/collection.d.ts +32 -21
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +53 -288
- package/dist/column.d.ts +5 -0
- package/dist/column.d.ts.map +1 -0
- package/dist/column.js +9 -0
- 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 -118
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +111 -2975
- 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 +85 -48
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +1095 -688
- 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 +23 -1
- 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 -28
- 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 +27 -4
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +177 -27
- 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 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -3
- 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 +282 -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 +25 -7
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +320 -110
- package/dist/messages.d.ts +58 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +160 -0
- package/dist/model.d.ts +11 -13
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +7 -24
- 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 +40 -10
- package/dist/observation.d.ts.map +1 -1
- package/dist/observation.js +233 -39
- 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 +62 -9
- package/dist/outcome.d.ts.map +1 -1
- package/dist/outcome.js +72 -0
- package/dist/overlay.d.ts +9 -6
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +129 -166
- 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 +27 -186
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +3 -464
- package/dist/{chat/questions.d.ts → questions.d.ts} +6 -7
- package/dist/questions.d.ts.map +1 -0
- package/dist/{chat/questions.js → questions.js} +12 -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 +20 -7
- package/dist/reach.d.ts.map +1 -1
- package/dist/reach.js +360 -98
- package/dist/react.d.ts +22 -5
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +40 -18
- 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 +55 -0
- package/dist/readiness.d.ts.map +1 -0
- package/dist/readiness.js +25 -0
- package/dist/reads.d.ts +39 -0
- package/dist/reads.d.ts.map +1 -0
- package/dist/reads.js +178 -0
- 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 +17 -14
- package/dist/refresh.d.ts.map +1 -1
- package/dist/refresh.js +145 -54
- 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 +50 -33
- package/dist/replica.d.ts.map +1 -1
- package/dist/replica.js +340 -191
- 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 +66 -12
- 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/room-list.d.ts +10 -0
- package/dist/room-list.d.ts.map +1 -0
- package/dist/room-list.js +45 -0
- package/dist/rows.d.ts +32 -29
- package/dist/rows.d.ts.map +1 -1
- package/dist/rows.js +60 -118
- 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 -48
- package/dist/save.d.ts.map +1 -1
- package/dist/save.js +751 -303
- package/dist/saves.d.ts +34 -0
- package/dist/saves.d.ts.map +1 -0
- package/dist/saves.js +437 -0
- package/dist/search.d.ts +15 -77
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +10 -186
- package/dist/seed.d.ts +25 -0
- package/dist/seed.d.ts.map +1 -0
- package/dist/seed.js +145 -0
- 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 +223 -0
- package/dist/store/records.d.ts.map +1 -0
- package/dist/store/records.js +465 -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 -141
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +163 -687
- package/dist/stored.d.ts +167 -0
- package/dist/stored.d.ts.map +1 -0
- package/dist/stored.js +700 -0
- package/dist/surface.d.ts +90 -0
- package/dist/surface.d.ts.map +1 -0
- package/dist/surface.js +225 -0
- package/dist/sync.d.ts +19 -0
- package/dist/sync.d.ts.map +1 -0
- package/dist/sync.js +536 -0
- package/dist/tables.d.ts +376 -0
- package/dist/tables.d.ts.map +1 -0
- package/dist/tables.js +499 -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 +5 -3
- package/dist/turn.d.ts.map +1 -1
- package/dist/turn.js +51 -21
- 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 +11 -0
- package/dist/windows.d.ts.map +1 -0
- package/dist/windows.js +16 -0
- package/dist/wire.d.ts +230 -36
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +77 -33
- package/package.json +19 -19
- package/AGENTS.md +0 -296
- 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/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 -60
- 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 -26
- package/dist/chat/list.d.ts.map +0 -1
- package/dist/chat/list.js +0 -62
- 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 -21
- package/dist/chat/messages.d.ts.map +0 -1
- package/dist/chat/messages.js +0 -151
- 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 -620
- package/dist/chat/question.d.ts +0 -9
- package/dist/chat/question.d.ts.map +0 -1
- package/dist/chat/question.js +0 -80
- 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 -33
- 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 -25
- package/dist/read-side.d.ts.map +0 -1
- package/dist/read-side.js +0 -639
package/dist/outcome.d.ts
CHANGED
|
@@ -1,31 +1,85 @@
|
|
|
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
|
-
|
|
26
|
+
stream: ReadableStream<Uint8Array>;
|
|
27
|
+
byteLength: number;
|
|
28
|
+
mediaType: string;
|
|
29
|
+
} | BinaryRefusal;
|
|
30
|
+
export type HeldBinaryAnswer = KeptBinary | BinaryRefusal;
|
|
31
|
+
export type BinaryLinkAnswer = {
|
|
32
|
+
kind: 'link';
|
|
33
|
+
url: string;
|
|
34
|
+
name: string;
|
|
35
|
+
mediaType: string;
|
|
20
36
|
} | Refused<'rejected'> | Refused<'absent'> | Failure;
|
|
21
|
-
export
|
|
22
|
-
export
|
|
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 ConversationAttachAnswer = {
|
|
44
|
+
kind: 'attached';
|
|
45
|
+
link: string;
|
|
46
|
+
} | Offline | Refused<'rejected'> | Refused<'undeclared'> | Failure;
|
|
47
|
+
export type DownloadAnswer = {
|
|
48
|
+
kind: 'started';
|
|
49
|
+
} | Refused<'rejected'> | Refused<'absent'> | Refused<'blocked'> | Failure;
|
|
50
|
+
export type Resolution = {
|
|
51
|
+
readonly kind: 'document';
|
|
52
|
+
readonly room: string;
|
|
53
|
+
readonly path: string;
|
|
54
|
+
} | {
|
|
55
|
+
readonly kind: 'deleted';
|
|
56
|
+
readonly room: string;
|
|
57
|
+
readonly path: string;
|
|
58
|
+
readonly revision: HistoryRevision;
|
|
59
|
+
} | Refused<'unreadable'> | Refused<'absent'> | Failure;
|
|
60
|
+
export declare const UNREADABLE: Refused<'unreadable'>;
|
|
61
|
+
export declare const LOCKED_UNREADABLE: Refused<'unreadable'>;
|
|
62
|
+
export declare const ABSENT_TARGET: Refused<'absent'>;
|
|
63
|
+
export declare function absentBinary(path: string): Refused<'absent'>;
|
|
64
|
+
export declare function declaredType(blob: Blob): string;
|
|
65
|
+
export declare function blobOf(binary: Extract<BinaryAnswer, {
|
|
66
|
+
kind: 'binary';
|
|
67
|
+
}>): Promise<Blob>;
|
|
68
|
+
export declare function binaryAnswer(result: KeptResult): HeldBinaryAnswer;
|
|
69
|
+
export declare function binaryLinkAnswer(result: BinaryLinkResult, held?: string): BinaryLinkAnswer;
|
|
70
|
+
export declare function attachAnswer(result: AttachResult): AttachAnswer;
|
|
71
|
+
export declare function linkedAnswer(result: AttachResult): ConversationAttachAnswer;
|
|
72
|
+
export declare const ROOM_LOCKED = "room-locked";
|
|
73
|
+
export declare function lockedRoom(locator: string): Refused<'room-locked'> & {
|
|
74
|
+
locator: string;
|
|
75
|
+
};
|
|
23
76
|
export type Offline = {
|
|
24
77
|
readonly kind: 'offline';
|
|
25
78
|
};
|
|
26
79
|
export declare const OFFLINE: Offline;
|
|
80
|
+
export declare function answeredResult(value: unknown): boolean;
|
|
27
81
|
export declare const UNCERTAIN: Failure;
|
|
28
|
-
export declare function undeclared(name: string):
|
|
82
|
+
export declare function undeclared(name: string): Refused<'undeclared'>;
|
|
29
83
|
export declare function failure(result: AdapterFailure): Failure;
|
|
30
84
|
export declare function calledResult(result: ActionResult): CallResult;
|
|
31
85
|
export declare function historyAnswer(result: HistoryResult): HistoryAnswer;
|
|
@@ -39,9 +93,8 @@ export type QueueEntry = {
|
|
|
39
93
|
readonly batch: ChangeBatch;
|
|
40
94
|
} & (Submission | {
|
|
41
95
|
readonly state: 'local';
|
|
42
|
-
} | {
|
|
43
|
-
readonly state: 'accepted';
|
|
44
|
-
readonly roomVersion: string;
|
|
45
96
|
});
|
|
97
|
+
export declare const UNANSWERED: ActionResult;
|
|
98
|
+
export declare function handedOutcome(retries: Retries, attempt: Attempt | undefined, result: ActionResult): CallResult;
|
|
46
99
|
export {};
|
|
47
100
|
//# 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,10 +1,68 @@
|
|
|
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
|
}
|
|
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
|
+
if (result.kind === 'linked')
|
|
48
|
+
return UNCERTAIN;
|
|
49
|
+
return result.kind === 'rejected' ? result : failure(result);
|
|
50
|
+
}
|
|
51
|
+
export function linkedAnswer(result) {
|
|
52
|
+
if (result.kind === 'linked')
|
|
53
|
+
return { kind: 'attached', link: result.link };
|
|
54
|
+
if (result.kind === 'attached')
|
|
55
|
+
return UNCERTAIN;
|
|
56
|
+
return result.kind === 'rejected' ? result : failure(result);
|
|
57
|
+
}
|
|
58
|
+
export const ROOM_LOCKED = 'room-locked';
|
|
59
|
+
export function lockedRoom(locator) {
|
|
60
|
+
return { kind: ROOM_LOCKED, locator, code: ROOM_LOCKED, fields: {}, retryable: true };
|
|
61
|
+
}
|
|
7
62
|
export const OFFLINE = { kind: 'offline' };
|
|
63
|
+
export function answeredResult(value) {
|
|
64
|
+
return typeof value === 'object' && value !== null && !('pending' in value);
|
|
65
|
+
}
|
|
8
66
|
export const UNCERTAIN = {
|
|
9
67
|
kind: 'transport-uncertainty',
|
|
10
68
|
code: 'transport-uncertainty',
|
|
@@ -40,3 +98,17 @@ export function historyAnswer(result) {
|
|
|
40
98
|
? result
|
|
41
99
|
: failure(result);
|
|
42
100
|
}
|
|
101
|
+
export const UNANSWERED = { kind: 'transport-uncertainty' };
|
|
102
|
+
export function handedOutcome(retries, attempt, result) {
|
|
103
|
+
if (attempt !== undefined) {
|
|
104
|
+
const { step, instance } = attempt;
|
|
105
|
+
if (result.kind === 'action')
|
|
106
|
+
retries.succeeded(step, instance);
|
|
107
|
+
else if (result.kind === 'transport-uncertainty')
|
|
108
|
+
retries.uncertain(step, instance, result);
|
|
109
|
+
else if (result.kind === 'rejected' && result.retryable) {
|
|
110
|
+
retries.failed(step, instance, refusalError(result));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return calledResult(result);
|
|
114
|
+
}
|
package/dist/overlay.d.ts
CHANGED
|
@@ -1,7 +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>>;
|
|
7
|
+
fileIds: Readonly<Record<string, string>>;
|
|
8
|
+
created: Readonly<Record<string, string>>;
|
|
5
9
|
changes: Readonly<Record<string, HeadChange>>;
|
|
6
10
|
};
|
|
7
11
|
export type HeldBinary = ({
|
|
@@ -17,11 +21,10 @@ export type Layer = Heads & {
|
|
|
17
21
|
documents: Readonly<Record<string, string>>;
|
|
18
22
|
binaries: Readonly<Record<string, HeldBinary>>;
|
|
19
23
|
};
|
|
20
|
-
export declare function acceptedBinaries(files: Readonly<Record<string, BinaryFile>>):
|
|
24
|
+
export declare function acceptedBinaries(files: Readonly<Record<string, BinaryFile>>): Generator<readonly [string, HeldBinary]>;
|
|
21
25
|
export declare function sameBinary(left: HeldBinary | undefined, right: HeldBinary | undefined): boolean;
|
|
22
26
|
export declare function sameChange(left: HeadChange | undefined, right: HeadChange | undefined): boolean;
|
|
23
|
-
export declare function
|
|
24
|
-
export declare function
|
|
25
|
-
export declare function
|
|
26
|
-
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>;
|
|
27
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];
|
|
@@ -119,29 +135,41 @@ function relocate(staged, from, to) {
|
|
|
119
135
|
}
|
|
120
136
|
function moveHead(heads, from, to) {
|
|
121
137
|
const revision = heads.revisions[from];
|
|
138
|
+
const fileId = heads.fileIds[from];
|
|
139
|
+
const created = heads.created[from];
|
|
122
140
|
const change = heads.changes[from];
|
|
123
141
|
delete heads.revisions[from];
|
|
142
|
+
delete heads.fileIds[from];
|
|
143
|
+
delete heads.created[from];
|
|
124
144
|
delete heads.changes[from];
|
|
145
|
+
delete heads.fileIds[to];
|
|
146
|
+
delete heads.created[to];
|
|
125
147
|
delete heads.changes[to];
|
|
126
148
|
if (revision !== undefined)
|
|
127
149
|
heads.revisions[to] = revision;
|
|
150
|
+
if (fileId !== undefined)
|
|
151
|
+
heads.fileIds[to] = fileId;
|
|
152
|
+
if (created !== undefined)
|
|
153
|
+
heads.created[to] = created;
|
|
128
154
|
if (change !== undefined)
|
|
129
155
|
heads.changes[to] = change;
|
|
130
156
|
}
|
|
131
157
|
function erase(staged, path) {
|
|
132
158
|
delete staged.documents[path];
|
|
133
159
|
delete staged.revisions[path];
|
|
160
|
+
delete staged.fileIds[path];
|
|
161
|
+
delete staged.created[path];
|
|
134
162
|
delete staged.changes[path];
|
|
135
163
|
delete staged.binaries[path];
|
|
136
164
|
}
|
|
137
|
-
function stage(staged, change,
|
|
138
|
-
if (change.kind === 'field' || change.kind === 'section' || change.kind === 'preamble') {
|
|
139
|
-
delete staged.revisions[change.path];
|
|
140
|
-
return edit(staged, change, priors);
|
|
141
|
-
}
|
|
165
|
+
function stage(staged, change, composition) {
|
|
142
166
|
if (change.kind === 'create') {
|
|
143
167
|
staged.documents[change.path] =
|
|
144
|
-
'content' in change
|
|
168
|
+
'content' in change
|
|
169
|
+
? change.content
|
|
170
|
+
: compose(change.path, change.fields, change.sections, composition);
|
|
171
|
+
delete staged.fileIds[change.path];
|
|
172
|
+
delete staged.created[change.path];
|
|
145
173
|
delete staged.changes[change.path];
|
|
146
174
|
return true;
|
|
147
175
|
}
|
|
@@ -169,132 +197,67 @@ function stage(staged, change, priors) {
|
|
|
169
197
|
if (change.kind === 'move') {
|
|
170
198
|
return relocate(staged, change.path, change.to);
|
|
171
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
|
+
}
|
|
172
209
|
erase(staged, change.path);
|
|
173
210
|
return true;
|
|
174
211
|
}
|
|
175
|
-
|
|
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) {
|
|
176
223
|
const staged = {
|
|
177
224
|
documents: drafted(base.documents),
|
|
178
225
|
binaries: drafted(base.binaries),
|
|
179
226
|
revisions: drafted(base.revisions),
|
|
227
|
+
fileIds: drafted(base.fileIds),
|
|
228
|
+
created: drafted(base.created),
|
|
180
229
|
changes: drafted(base.changes),
|
|
181
230
|
};
|
|
182
231
|
for (const batch of queue) {
|
|
183
|
-
const priors = priorsOf(batch.preconditions);
|
|
184
|
-
for (
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
documents: settled(staged.documents),
|
|
191
|
-
binaries: settled(staged.binaries),
|
|
192
|
-
revisions: settled(staged.revisions),
|
|
193
|
-
changes: settled(staged.changes),
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
function pathsOf(batch) {
|
|
197
|
-
return batch.changes.flatMap((change) => change.kind === 'move' ? [change.path, change.to] : [change.path]);
|
|
198
|
-
}
|
|
199
|
-
export function sameLayerText(left, right) {
|
|
200
|
-
return (differing(left.documents, right.documents).size === 0 &&
|
|
201
|
-
differing(left.binaries, right.binaries, sameBinary).size === 0);
|
|
202
|
-
}
|
|
203
|
-
export function changedPaths(left, right) {
|
|
204
|
-
return new Set([
|
|
205
|
-
...differing(left.documents, right.documents),
|
|
206
|
-
...differing(left.revisions, right.revisions),
|
|
207
|
-
...differing(left.changes, right.changes, sameChange),
|
|
208
|
-
...differing(left.binaries, right.binaries, sameBinary),
|
|
209
|
-
]);
|
|
210
|
-
}
|
|
211
|
-
function replayHeads(base, queue) {
|
|
212
|
-
const heads = { revisions: drafted(base.revisions), changes: drafted(base.changes) };
|
|
213
|
-
for (const batch of queue) {
|
|
214
|
-
for (const change of batch.changes) {
|
|
215
|
-
if (change.kind === 'remove') {
|
|
216
|
-
delete heads.revisions[change.path];
|
|
217
|
-
delete heads.changes[change.path];
|
|
218
|
-
}
|
|
219
|
-
else if (change.kind === 'create') {
|
|
220
|
-
delete heads.changes[change.path];
|
|
221
|
-
}
|
|
222
|
-
else if (change.kind === 'replace' ||
|
|
223
|
-
change.kind === 'field' ||
|
|
224
|
-
change.kind === 'section' ||
|
|
225
|
-
change.kind === 'preamble') {
|
|
226
|
-
delete heads.revisions[change.path];
|
|
227
|
-
}
|
|
228
|
-
else if (change.kind === 'binary') {
|
|
229
|
-
delete heads.revisions[change.path];
|
|
230
|
-
delete heads.changes[change.path];
|
|
231
|
-
}
|
|
232
|
-
else if (change.kind === 'move') {
|
|
233
|
-
moveHead(heads, change.path, change.to);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
return { revisions: settled(heads.revisions), changes: settled(heads.changes) };
|
|
238
|
-
}
|
|
239
|
-
export function overlayChanged(base, queue, previousBase, previousQueue, previousVisible) {
|
|
240
|
-
const before = previousQueue.map((batch) => JSON.stringify(batch));
|
|
241
|
-
const after = queue.map((batch) => JSON.stringify(batch));
|
|
242
|
-
if (before.length === after.length &&
|
|
243
|
-
before.every((id, index) => id === after[index]) &&
|
|
244
|
-
sameLayerText(base, previousBase)) {
|
|
245
|
-
return {
|
|
246
|
-
documents: previousVisible.documents,
|
|
247
|
-
binaries: previousVisible.binaries,
|
|
248
|
-
...replayHeads(base, queue),
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
|
-
const affected = new Set(changedPaths(base, previousBase));
|
|
252
|
-
const oldIds = new Set(before);
|
|
253
|
-
const newIds = new Set(after);
|
|
254
|
-
for (const batch of previousQueue) {
|
|
255
|
-
if (!newIds.has(JSON.stringify(batch)))
|
|
256
|
-
for (const path of pathsOf(batch))
|
|
257
|
-
affected.add(path);
|
|
258
|
-
}
|
|
259
|
-
for (const batch of queue) {
|
|
260
|
-
if (!oldIds.has(JSON.stringify(batch)))
|
|
261
|
-
for (const path of pathsOf(batch))
|
|
262
|
-
affected.add(path);
|
|
263
|
-
}
|
|
264
|
-
let expanded = true;
|
|
265
|
-
while (expanded) {
|
|
266
|
-
expanded = false;
|
|
267
|
-
for (const batch of queue) {
|
|
268
|
-
const touched = pathsOf(batch);
|
|
269
|
-
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;
|
|
270
239
|
continue;
|
|
271
|
-
for (const path of touched) {
|
|
272
|
-
if (affected.has(path))
|
|
273
|
-
continue;
|
|
274
|
-
affected.add(path);
|
|
275
|
-
expanded = true;
|
|
276
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;
|
|
277
253
|
}
|
|
278
254
|
}
|
|
279
|
-
const documents = {};
|
|
280
|
-
const revisions = {};
|
|
281
|
-
const changes = {};
|
|
282
|
-
const binaries = {};
|
|
283
|
-
for (const path of affected) {
|
|
284
|
-
if (base.documents[path] !== undefined)
|
|
285
|
-
documents[path] = base.documents[path];
|
|
286
|
-
if (base.revisions[path] !== undefined)
|
|
287
|
-
revisions[path] = base.revisions[path];
|
|
288
|
-
if (base.changes[path] !== undefined)
|
|
289
|
-
changes[path] = base.changes[path];
|
|
290
|
-
if (base.binaries[path] !== undefined)
|
|
291
|
-
binaries[path] = base.binaries[path];
|
|
292
|
-
}
|
|
293
|
-
const staged = overlay({ documents, revisions, changes, binaries }, queue.filter((batch) => pathsOf(batch).some((path) => affected.has(path))));
|
|
294
255
|
return {
|
|
295
|
-
documents:
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
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),
|
|
299
262
|
};
|
|
300
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"}
|