@agentshouse/mdruntime 0.1.0-c4478f1a5ac2a → 0.1.0-c44d5cc00aee5
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 +23 -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 +174 -119
- 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 +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 +32 -1
- package/dist/change.d.ts.map +1 -1
- package/dist/change.js +14 -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 +42 -24
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +133 -27
- package/dist/collection.d.ts +29 -21
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +48 -290
- package/dist/compile.d.ts +18 -0
- package/dist/compile.d.ts.map +1 -0
- package/dist/compile.js +724 -0
- package/dist/connection.d.ts +7 -118
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +109 -2967
- package/dist/context.d.ts +2 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/{chat/context.js → context.js} +1 -4
- package/dist/conversation-live.d.ts +143 -0
- package/dist/conversation-live.d.ts.map +1 -0
- package/dist/conversation-live.js +254 -0
- package/dist/conversation-row.d.ts +33 -0
- package/dist/conversation-row.d.ts.map +1 -0
- package/dist/conversation-row.js +53 -0
- package/dist/conversation.d.ts +78 -47
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +1069 -690
- 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 +197 -0
- package/dist/file.d.ts +2 -19
- package/dist/file.d.ts.map +1 -1
- package/dist/file.js +7 -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 +168 -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 +40 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -3
- package/dist/install.d.ts +54 -0
- package/dist/install.d.ts.map +1 -0
- package/dist/install.js +530 -0
- package/dist/lifecycle.d.ts +7 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/lifecycle.js +277 -0
- package/dist/listing.d.ts +48 -0
- package/dist/listing.d.ts.map +1 -0
- package/dist/listing.js +139 -0
- package/dist/live.d.ts +23 -0
- package/dist/live.d.ts.map +1 -0
- package/dist/live.js +165 -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 +8 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +218 -0
- package/dist/memory.d.ts +23 -7
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +282 -110
- package/dist/messages.d.ts +56 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +158 -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 +19 -3
- package/dist/observation.d.ts.map +1 -1
- package/dist/observation.js +116 -20
- 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 +52 -8
- package/dist/outcome.d.ts.map +1 -1
- package/dist/outcome.js +57 -0
- package/dist/overlay.d.ts +8 -5
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +131 -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 +20 -0
- package/dist/preparation.d.ts.map +1 -0
- package/dist/preparation.js +227 -0
- package/dist/presence.d.ts +52 -0
- package/dist/presence.d.ts.map +1 -0
- package/dist/presence.js +220 -0
- package/dist/queries.d.ts +16 -0
- package/dist/queries.d.ts.map +1 -0
- package/dist/queries.js +282 -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} +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 +450 -0
- package/dist/reach.d.ts +21 -7
- package/dist/reach.d.ts.map +1 -1
- package/dist/reach.js +342 -97
- package/dist/react.d.ts +19 -4
- 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 +49 -0
- package/dist/readiness.d.ts.map +1 -0
- package/dist/readiness.js +27 -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 +338 -189
- 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 +39 -10
- package/dist/room-draft.d.ts.map +1 -1
- package/dist/room-draft.js +194 -118
- package/dist/room-drafts.d.ts +24 -0
- package/dist/room-drafts.d.ts.map +1 -0
- package/dist/room-drafts.js +217 -0
- package/dist/rows.d.ts +31 -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 +791 -274
- package/dist/saves.d.ts +32 -0
- package/dist/saves.d.ts.map +1 -0
- package/dist/saves.js +410 -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 +302 -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 +54 -0
- package/dist/source.d.ts.map +1 -0
- package/dist/source.js +82 -0
- package/dist/status.d.ts +5 -2
- 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 +34 -0
- package/dist/store/readiness.d.ts +10 -0
- package/dist/store/readiness.d.ts.map +1 -0
- package/dist/store/readiness.js +52 -0
- package/dist/store/records.d.ts +214 -0
- package/dist/store/records.d.ts.map +1 -0
- package/dist/store/records.js +438 -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/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 +111 -142
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +159 -687
- package/dist/stored.d.ts +157 -0
- package/dist/stored.d.ts.map +1 -0
- package/dist/stored.js +649 -0
- package/dist/surface.d.ts +88 -0
- package/dist/surface.d.ts.map +1 -0
- package/dist/surface.js +220 -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 +415 -0
- package/dist/tables.d.ts.map +1 -0
- package/dist/tables.js +761 -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 +104 -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 +228 -36
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +75 -33
- package/package.json +19 -19
- package/AGENTS.md +0 -309
- 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/room-draft.js
CHANGED
|
@@ -1,60 +1,69 @@
|
|
|
1
|
-
import { apply, equalValue, frontmatterValue, parse, serialize } from '@agentshouse/mdmodel';
|
|
1
|
+
import { apply, create, equalValue, frontmatterValue, parse, serialize, } from '@agentshouse/mdmodel';
|
|
2
|
+
import { governing } from './collection.js';
|
|
2
3
|
import { runtimeError } from './failure.js';
|
|
3
|
-
import {
|
|
4
|
+
import { sha256 } from './digest.js';
|
|
4
5
|
import { binaryLocalId } from './identity.js';
|
|
5
6
|
import { normalize } from './paths.js';
|
|
6
|
-
export function returnedBy(
|
|
7
|
-
return { kind, code:
|
|
7
|
+
export function returnedBy() {
|
|
8
|
+
return { kind: 'withdrawn', code: 'withdrawn', fields: {}, retryable: false };
|
|
8
9
|
}
|
|
9
10
|
export function staleWrite(current) {
|
|
10
|
-
return { outcome: 'stale',
|
|
11
|
+
return { outcome: 'stale', current };
|
|
11
12
|
}
|
|
12
|
-
function malformed() {
|
|
13
|
-
throw runtimeError('room-draft-malformed');
|
|
13
|
+
function malformed(at, needs) {
|
|
14
|
+
throw runtimeError('room-draft-malformed', at === undefined ? 'room-draft-malformed' : `room-draft-malformed at ${at}: ${needs}`);
|
|
14
15
|
}
|
|
15
16
|
function plain(value) {
|
|
16
17
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
17
18
|
}
|
|
18
|
-
function text(value) {
|
|
19
|
-
return typeof value === 'string' ? value : malformed();
|
|
19
|
+
function text(value, at) {
|
|
20
|
+
return typeof value === 'string' ? value : malformed(at, 'text');
|
|
20
21
|
}
|
|
21
|
-
function optionalText(value) {
|
|
22
|
-
return value === undefined ? undefined : text(value);
|
|
22
|
+
function optionalText(value, at) {
|
|
23
|
+
return value === undefined ? undefined : text(value, at);
|
|
23
24
|
}
|
|
24
|
-
function markdownBase(value) {
|
|
25
|
-
return value === null ? null : optionalText(value);
|
|
25
|
+
function markdownBase(value, at) {
|
|
26
|
+
return value === null ? null : optionalText(value, at);
|
|
26
27
|
}
|
|
27
|
-
function entries(value, each) {
|
|
28
|
+
function entries(value, at, each) {
|
|
28
29
|
if (!plain(value))
|
|
29
|
-
malformed();
|
|
30
|
+
malformed(at, 'an object of named values');
|
|
30
31
|
const read = {};
|
|
31
32
|
for (const [name, item] of Object.entries(value))
|
|
32
|
-
read[name] = each(item);
|
|
33
|
+
read[name] = each(item, `${at}.${name}`);
|
|
33
34
|
return read;
|
|
34
35
|
}
|
|
35
|
-
function
|
|
36
|
+
function frontmatter(item, at) {
|
|
37
|
+
return frontmatterValue(item) ? item : malformed(at, 'a frontmatter value');
|
|
38
|
+
}
|
|
39
|
+
function fieldValue(value, at) {
|
|
36
40
|
if (value === null)
|
|
37
41
|
return null;
|
|
38
42
|
if (!plain(value) || !Object.hasOwn(value, 'value') || !frontmatterValue(value.value)) {
|
|
39
|
-
malformed();
|
|
43
|
+
malformed(at, '{ value } with a frontmatter value, or null where the document lacks it');
|
|
40
44
|
}
|
|
41
45
|
return { value: value.value };
|
|
42
46
|
}
|
|
43
|
-
function textPart(value) {
|
|
47
|
+
function textPart(value, at) {
|
|
44
48
|
if (!plain(value))
|
|
45
|
-
malformed();
|
|
46
|
-
const base = optionalText(value.base);
|
|
47
|
-
return { value: text(value.value), ...(base === undefined ? {} : { base }) };
|
|
49
|
+
malformed(at, '{ value, base }');
|
|
50
|
+
const base = optionalText(value.base, `${at}.base`);
|
|
51
|
+
return { value: text(value.value, `${at}.value`), ...(base === undefined ? {} : { base }) };
|
|
48
52
|
}
|
|
49
|
-
function creationOf(value) {
|
|
53
|
+
function creationOf(value, at) {
|
|
50
54
|
if (!plain(value))
|
|
51
|
-
malformed();
|
|
55
|
+
malformed(at, '{ type, fields, sections }, or { markdown }');
|
|
52
56
|
if (Object.hasOwn(value, 'markdown'))
|
|
53
|
-
return { markdown: text(value.markdown) };
|
|
54
|
-
|
|
55
|
-
|
|
57
|
+
return { markdown: text(value.markdown, `${at}.markdown`) };
|
|
58
|
+
if (typeof value.type !== 'string')
|
|
59
|
+
malformed(`${at}.type`, 'a type name, or markdown in place of type, fields and sections');
|
|
60
|
+
return {
|
|
61
|
+
type: value.type,
|
|
62
|
+
fields: entries(value.fields, `${at}.fields`, frontmatter),
|
|
63
|
+
sections: entries(value.sections, `${at}.sections`, text),
|
|
64
|
+
};
|
|
56
65
|
}
|
|
57
|
-
const PART_NAMES =
|
|
66
|
+
const PART_NAMES = [
|
|
58
67
|
'fields',
|
|
59
68
|
'sections',
|
|
60
69
|
'preamble',
|
|
@@ -63,47 +72,57 @@ const PART_NAMES = new Set([
|
|
|
63
72
|
'move',
|
|
64
73
|
'removal',
|
|
65
74
|
'file',
|
|
66
|
-
]
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
75
|
+
];
|
|
76
|
+
const NAMED_PARTS = `a part named ${PART_NAMES.slice(0, -1).join(', ')} or ${PART_NAMES.slice(-1).join('')}`;
|
|
77
|
+
export function readParts(value, path) {
|
|
78
|
+
if (!plain(value))
|
|
79
|
+
malformed(path, 'an object of parts');
|
|
80
|
+
const unknown = Object.keys(value).find((name) => !PART_NAMES.includes(name));
|
|
81
|
+
if (unknown !== undefined)
|
|
82
|
+
malformed(`${path} ${unknown}`, NAMED_PARTS);
|
|
70
83
|
const parts = {};
|
|
71
84
|
if (value.fields !== undefined) {
|
|
72
|
-
parts.fields = entries(value.fields, (item) => {
|
|
85
|
+
parts.fields = entries(value.fields, `${path} fields`, (item, at) => {
|
|
73
86
|
if (!plain(item) || !Object.hasOwn(item, 'value') || !frontmatterValue(item.value)) {
|
|
74
|
-
malformed();
|
|
87
|
+
malformed(at, '{ value, base } with a frontmatter value');
|
|
75
88
|
}
|
|
76
89
|
return item.base === undefined
|
|
77
90
|
? { value: item.value }
|
|
78
|
-
: { value: item.value, base: fieldValue(item.base) };
|
|
91
|
+
: { value: item.value, base: fieldValue(item.base, `${at}.base`) };
|
|
79
92
|
});
|
|
80
93
|
}
|
|
81
94
|
if (value.sections !== undefined)
|
|
82
|
-
parts.sections = entries(value.sections, textPart);
|
|
95
|
+
parts.sections = entries(value.sections, `${path} sections`, textPart);
|
|
83
96
|
if (value.preamble !== undefined)
|
|
84
|
-
parts.preamble = textPart(value.preamble);
|
|
97
|
+
parts.preamble = textPart(value.preamble, `${path} preamble`);
|
|
85
98
|
if (value.markdown !== undefined)
|
|
86
|
-
parts.markdown = textPart(value.markdown);
|
|
99
|
+
parts.markdown = textPart(value.markdown, `${path} markdown`);
|
|
87
100
|
if (value.creation !== undefined)
|
|
88
|
-
parts.creation = creationOf(value.creation);
|
|
101
|
+
parts.creation = creationOf(value.creation, `${path} creation`);
|
|
89
102
|
if (value.move !== undefined) {
|
|
90
103
|
if (!plain(value.move))
|
|
91
|
-
malformed();
|
|
92
|
-
const base = markdownBase(value.move.base);
|
|
93
|
-
|
|
104
|
+
malformed(`${path} move`, '{ to, room, base }');
|
|
105
|
+
const base = markdownBase(value.move.base, `${path} move.base`);
|
|
106
|
+
const room = optionalText(value.move.room, `${path} move.room`);
|
|
107
|
+
parts.move = {
|
|
108
|
+
to: text(value.move.to, `${path} move.to`),
|
|
109
|
+
...(room === undefined ? {} : { room }),
|
|
110
|
+
...(base === undefined ? {} : { base }),
|
|
111
|
+
};
|
|
94
112
|
}
|
|
95
113
|
if (value.removal !== undefined) {
|
|
96
114
|
if (!plain(value.removal))
|
|
97
|
-
malformed();
|
|
98
|
-
const base = markdownBase(value.removal.base);
|
|
115
|
+
malformed(`${path} removal`, '{ base }');
|
|
116
|
+
const base = markdownBase(value.removal.base, `${path} removal.base`);
|
|
99
117
|
parts.removal = base === undefined ? {} : { base };
|
|
100
118
|
}
|
|
101
119
|
if (value.file !== undefined) {
|
|
102
120
|
if (!plain(value.file) || !(value.file.blob instanceof Blob))
|
|
103
|
-
malformed();
|
|
121
|
+
malformed(`${path} file`, '{ blob, base } with a Blob');
|
|
104
122
|
if (Object.keys(value).length > 1)
|
|
105
123
|
throw runtimeError('room-draft-file-exclusive');
|
|
106
|
-
|
|
124
|
+
const base = markdownBase(value.file.base, `${path} file.base`);
|
|
125
|
+
parts.file = base === undefined ? { blob: value.file.blob } : { blob: value.file.blob, base };
|
|
107
126
|
}
|
|
108
127
|
return parts;
|
|
109
128
|
}
|
|
@@ -120,11 +139,51 @@ function kept(prior, base) {
|
|
|
120
139
|
throw runtimeError('room-draft-base-missing');
|
|
121
140
|
return base;
|
|
122
141
|
}
|
|
142
|
+
function movePart(current, move) {
|
|
143
|
+
return {
|
|
144
|
+
to: move.to,
|
|
145
|
+
...(move.room === undefined ? {} : { room: move.room }),
|
|
146
|
+
base: kept(current, move.base),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
123
149
|
function editsText(parts) {
|
|
124
150
|
return (parts.preamble !== undefined ||
|
|
125
151
|
named(parts.fields).length > 0 ||
|
|
126
152
|
named(parts.sections).length > 0);
|
|
127
153
|
}
|
|
154
|
+
function partNames(parts) {
|
|
155
|
+
const names = [];
|
|
156
|
+
for (const [name, part] of Object.entries(parts)) {
|
|
157
|
+
if (name === 'preamble' || name === 'markdown')
|
|
158
|
+
names.push(name);
|
|
159
|
+
else if ((name === 'fields' || name === 'sections') && plain(part))
|
|
160
|
+
names.push(...Object.keys(part).map((one) => `${name}/${one}`));
|
|
161
|
+
else
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
return names.sort().join('\u0000');
|
|
165
|
+
}
|
|
166
|
+
function withBaseOf(prior, part) {
|
|
167
|
+
return plain(part) && plain(prior) && Object.hasOwn(prior, 'base')
|
|
168
|
+
? { ...part, base: prior.base }
|
|
169
|
+
: part;
|
|
170
|
+
}
|
|
171
|
+
export function gatheredParts(earlier, later) {
|
|
172
|
+
if (!plain(earlier) || !plain(later))
|
|
173
|
+
return null;
|
|
174
|
+
const named = partNames(earlier);
|
|
175
|
+
if (named === null || named !== partNames(later))
|
|
176
|
+
return null;
|
|
177
|
+
return Object.fromEntries(Object.entries(later).map(([name, part]) => [
|
|
178
|
+
name,
|
|
179
|
+
name === 'fields' || name === 'sections'
|
|
180
|
+
? Object.fromEntries(Object.entries(part).map(([one, value]) => [
|
|
181
|
+
one,
|
|
182
|
+
withBaseOf(earlier[name][one], value),
|
|
183
|
+
]))
|
|
184
|
+
: withBaseOf(earlier[name], part),
|
|
185
|
+
]));
|
|
186
|
+
}
|
|
128
187
|
export function held(current, parts, file) {
|
|
129
188
|
if (parts.markdown !== undefined && editsText(parts)) {
|
|
130
189
|
throw runtimeError('room-draft-markdown-exclusive');
|
|
@@ -144,9 +203,7 @@ export function held(current, parts, file) {
|
|
|
144
203
|
}
|
|
145
204
|
return {
|
|
146
205
|
file: current.file,
|
|
147
|
-
...(parts.move === undefined
|
|
148
|
-
? {}
|
|
149
|
-
: { move: { to: parts.move.to, base: kept(current.move, parts.move.base) } }),
|
|
206
|
+
...(parts.move === undefined ? {} : { move: movePart(current.move, parts.move) }),
|
|
150
207
|
...(parts.removal === undefined
|
|
151
208
|
? {}
|
|
152
209
|
: { removal: { base: kept(current.removal, parts.removal.base) } }),
|
|
@@ -181,9 +238,8 @@ export function held(current, parts, file) {
|
|
|
181
238
|
}
|
|
182
239
|
if (parts.creation !== undefined)
|
|
183
240
|
next.creation = parts.creation;
|
|
184
|
-
if (parts.move !== undefined)
|
|
185
|
-
next.move =
|
|
186
|
-
}
|
|
241
|
+
if (parts.move !== undefined)
|
|
242
|
+
next.move = movePart(current?.move, parts.move);
|
|
187
243
|
if (parts.removal !== undefined) {
|
|
188
244
|
next.removal = { base: kept(current?.removal, parts.removal.base) };
|
|
189
245
|
}
|
|
@@ -200,8 +256,10 @@ export function underneath(parts, path, visible) {
|
|
|
200
256
|
const markdown = visible?.documents[path] ?? null;
|
|
201
257
|
const document = visible?.collection.document(path);
|
|
202
258
|
const report = {};
|
|
259
|
+
const unread = document?.type !== undefined &&
|
|
260
|
+
governing(visible.collection.composition, path).status === 'unavailable';
|
|
203
261
|
const fields = {};
|
|
204
|
-
for (const [name, part] of named(parts.fields)) {
|
|
262
|
+
for (const [name, part] of unread ? [] : named(parts.fields)) {
|
|
205
263
|
const current = document !== undefined && Object.hasOwn(document.fields, name)
|
|
206
264
|
? { value: document.fields[name] }
|
|
207
265
|
: null;
|
|
@@ -211,7 +269,7 @@ export function underneath(parts, path, visible) {
|
|
|
211
269
|
if (Object.keys(fields).length > 0)
|
|
212
270
|
report.fields = fields;
|
|
213
271
|
const sections = {};
|
|
214
|
-
for (const [name, part] of named(parts.sections)) {
|
|
272
|
+
for (const [name, part] of unread ? [] : named(parts.sections)) {
|
|
215
273
|
const current = document !== undefined && Object.hasOwn(document.sections, name)
|
|
216
274
|
? document.sections[name]
|
|
217
275
|
: null;
|
|
@@ -221,8 +279,9 @@ export function underneath(parts, path, visible) {
|
|
|
221
279
|
if (Object.keys(sections).length > 0)
|
|
222
280
|
report.sections = sections;
|
|
223
281
|
const preamble = document?.preamble ?? null;
|
|
224
|
-
if (parts.preamble !== undefined && preamble !== parts.preamble.base)
|
|
282
|
+
if (!unread && parts.preamble !== undefined && preamble !== parts.preamble.base) {
|
|
225
283
|
report.preamble = preamble;
|
|
284
|
+
}
|
|
226
285
|
if (parts.markdown !== undefined && markdown !== parts.markdown.base)
|
|
227
286
|
report.markdown = markdown;
|
|
228
287
|
if (parts.creation !== undefined && markdown !== null)
|
|
@@ -240,29 +299,32 @@ export function underneath(parts, path, visible) {
|
|
|
240
299
|
}
|
|
241
300
|
const UNTYPED_MEDIA_TYPE = 'application/octet-stream';
|
|
242
301
|
export async function heldFile(blob, base) {
|
|
243
|
-
const bytes = await blob.arrayBuffer();
|
|
244
302
|
return {
|
|
245
|
-
blob,
|
|
246
303
|
localId: binaryLocalId(),
|
|
247
|
-
|
|
304
|
+
...(blob instanceof File ? { name: blob.name } : {}),
|
|
305
|
+
byteLength: blob.size,
|
|
248
306
|
mediaType: blob.type === '' ? UNTYPED_MEDIA_TYPE : blob.type,
|
|
249
|
-
sha256:
|
|
307
|
+
sha256: await sha256(blob),
|
|
250
308
|
base,
|
|
251
309
|
};
|
|
252
310
|
}
|
|
253
311
|
export function binaryBase(visible, path) {
|
|
254
|
-
|
|
312
|
+
const binary = visible?.binaries[path];
|
|
313
|
+
if (binary === undefined)
|
|
314
|
+
return null;
|
|
315
|
+
return visible?.revisions[path] ?? (binary.state === 'pending' ? binary.localId : null);
|
|
255
316
|
}
|
|
256
|
-
export function changedParts(path,
|
|
317
|
+
export function changedParts(path, parts, visible) {
|
|
318
|
+
const report = underneath(parts, path, visible);
|
|
319
|
+
const made = parts.file?.base === null;
|
|
257
320
|
return [
|
|
258
|
-
...(report.creation === undefined ? [] : [{ path, part: 'creation' }]),
|
|
259
321
|
...named(report.fields).map(([name]) => ({ path, part: 'field', name })),
|
|
260
322
|
...named(report.sections).map(([name]) => ({ path, part: 'section', name })),
|
|
261
323
|
...(report.preamble === undefined ? [] : [{ path, part: 'preamble' }]),
|
|
262
324
|
...(report.markdown === undefined ? [] : [{ path, part: 'markdown' }]),
|
|
263
325
|
...(report.move === undefined ? [] : [{ path, part: 'move' }]),
|
|
264
326
|
...(report.removal === undefined ? [] : [{ path, part: 'removal' }]),
|
|
265
|
-
...(report.file === undefined ? [] : [{ path, part: 'file' }]),
|
|
327
|
+
...(report.file === undefined || made ? [] : [{ path, part: 'file' }]),
|
|
266
328
|
];
|
|
267
329
|
}
|
|
268
330
|
function joined(existing, returned) {
|
|
@@ -272,34 +334,45 @@ function joined(existing, returned) {
|
|
|
272
334
|
merged[name] = part;
|
|
273
335
|
return Object.keys(merged).length === 0 ? undefined : merged;
|
|
274
336
|
}
|
|
275
|
-
function
|
|
337
|
+
export function lineEnded(text) {
|
|
276
338
|
return text === '' || text.endsWith('\n') ? text : `${text}\n`;
|
|
277
339
|
}
|
|
278
|
-
function
|
|
279
|
-
const
|
|
280
|
-
|
|
281
|
-
return malformed();
|
|
282
|
-
let document = opened.document;
|
|
283
|
-
for (const [name, part] of fields) {
|
|
284
|
-
const next = apply(document, { kind: 'field', name, value: part.value, prior: undefined });
|
|
285
|
-
if (next.outcome !== 'applied')
|
|
286
|
-
return malformed();
|
|
287
|
-
document = next.document;
|
|
288
|
-
}
|
|
289
|
-
return serialize(document);
|
|
340
|
+
function written(start, changes, definition) {
|
|
341
|
+
const next = apply(start, changes, definition);
|
|
342
|
+
return next.outcome === 'applied' ? next.document : malformed();
|
|
290
343
|
}
|
|
291
|
-
function
|
|
344
|
+
function empty(definition) {
|
|
345
|
+
const parsed = parse('', '', definition);
|
|
346
|
+
return parsed.ok ? parsed.document : malformed();
|
|
347
|
+
}
|
|
348
|
+
export function partsAfter(markdown, parts, definitions) {
|
|
292
349
|
const fields = named(parts.fields);
|
|
350
|
+
const sections = named(parts.sections);
|
|
351
|
+
if (fields.length === 0 && sections.length === 0 && parts.preamble === undefined)
|
|
352
|
+
return markdown;
|
|
353
|
+
const whole = parse(markdown, '', definitions);
|
|
354
|
+
const type = whole.ok ? whole.document.type : undefined;
|
|
355
|
+
const definition = definitions?.(type);
|
|
356
|
+
if (type !== undefined && definition === undefined)
|
|
357
|
+
return null;
|
|
358
|
+
const valued = fields.length === 0
|
|
359
|
+
? empty(definition)
|
|
360
|
+
: written(create(type, definition), fields.map(([name, part]) => ({
|
|
361
|
+
kind: 'field',
|
|
362
|
+
name,
|
|
363
|
+
value: part.value,
|
|
364
|
+
prior: undefined,
|
|
365
|
+
})), definition);
|
|
366
|
+
const head = parts.preamble === undefined
|
|
367
|
+
? valued
|
|
368
|
+
: written(valued, [{ kind: 'preamble', value: lineEnded(parts.preamble.value), prior: valued.preamble }], definition);
|
|
293
369
|
const pieces = [
|
|
294
|
-
...(fields.length === 0 ? [] : [
|
|
295
|
-
...(
|
|
296
|
-
...named(parts.sections).map(([name, part]) => `## ${name}\n${part.value}`),
|
|
370
|
+
...(fields.length === 0 && parts.preamble === undefined ? [] : [serialize(head)]),
|
|
371
|
+
...sections.map(([name, part]) => serialize(written(empty(definition), [{ kind: 'section', name, value: lineEnded(part.value), prior: undefined }], definition))),
|
|
297
372
|
];
|
|
298
|
-
|
|
299
|
-
return markdown;
|
|
300
|
-
return `${ended(markdown)}\n${pieces.map(ended).join('')}`;
|
|
373
|
+
return `${lineEnded(markdown)}\n${pieces.join('')}`;
|
|
301
374
|
}
|
|
302
|
-
export function returnedInto(existing, returned) {
|
|
375
|
+
export function returnedInto(existing, returned, definitions) {
|
|
303
376
|
if (existing === undefined)
|
|
304
377
|
return returned;
|
|
305
378
|
const next = { ...existing };
|
|
@@ -319,7 +392,9 @@ export function returnedInto(existing, returned) {
|
|
|
319
392
|
delete next.fields;
|
|
320
393
|
delete next.sections;
|
|
321
394
|
delete next.preamble;
|
|
322
|
-
const value =
|
|
395
|
+
const value = partsAfter(whole.value, existing.markdown === undefined ? existing : returned, definitions);
|
|
396
|
+
if (value === null)
|
|
397
|
+
return null;
|
|
323
398
|
next.markdown = { value, base: whole.base };
|
|
324
399
|
}
|
|
325
400
|
const creation = existing.creation ?? returned.creation;
|
|
@@ -340,6 +415,36 @@ export function moveTarget(move) {
|
|
|
340
415
|
const to = normalize(move.to);
|
|
341
416
|
return to === null || to === '' ? move.to : to;
|
|
342
417
|
}
|
|
418
|
+
export function readSavedParts(named) {
|
|
419
|
+
const read = named.map(({ path, parts }) => ({ path, parts: readParts(parts, path) }));
|
|
420
|
+
read.forEach(({ path }, at) => {
|
|
421
|
+
if (path === '' || normalize(path) !== path)
|
|
422
|
+
malformed(path, 'a path inside the Room, such as notes/a.md');
|
|
423
|
+
if (read.findIndex((one) => one.path === path) !== at)
|
|
424
|
+
malformed(path, 'each path once in one save');
|
|
425
|
+
});
|
|
426
|
+
return read;
|
|
427
|
+
}
|
|
428
|
+
export function partsChanges(named) {
|
|
429
|
+
const changes = [];
|
|
430
|
+
const preconditions = [];
|
|
431
|
+
for (const { path, parts } of readSavedParts(named)) {
|
|
432
|
+
const parted = held(undefined, parts);
|
|
433
|
+
const made = changesOf(path, parted);
|
|
434
|
+
changes.push(...made.changes);
|
|
435
|
+
preconditions.push(...made.bases);
|
|
436
|
+
for (const change of made.changes) {
|
|
437
|
+
if (change.kind === 'create')
|
|
438
|
+
preconditions.push({ kind: 'absent', path });
|
|
439
|
+
if (change.kind === 'move')
|
|
440
|
+
preconditions.push({ kind: 'absent', path: change.to });
|
|
441
|
+
}
|
|
442
|
+
const revision = parted.markdown?.base ?? parted.move?.base ?? parted.removal?.base;
|
|
443
|
+
if (typeof revision === 'string')
|
|
444
|
+
preconditions.push({ kind: 'revision', path, revision });
|
|
445
|
+
}
|
|
446
|
+
return { changes, preconditions };
|
|
447
|
+
}
|
|
343
448
|
export function changesOf(path, parts) {
|
|
344
449
|
const changes = [];
|
|
345
450
|
const bases = [];
|
|
@@ -359,23 +464,23 @@ export function changesOf(path, parts) {
|
|
|
359
464
|
bases.push({ kind: 'field', path, name, value: part.base?.value });
|
|
360
465
|
}
|
|
361
466
|
for (const [name, part] of named(parts.sections)) {
|
|
362
|
-
changes.push({ kind: 'section', path, name, value: part.value });
|
|
467
|
+
changes.push({ kind: 'section', path, name, value: lineEnded(part.value) });
|
|
363
468
|
bases.push({ kind: 'section', path, name, value: part.base });
|
|
364
469
|
}
|
|
365
470
|
if (parts.preamble !== undefined) {
|
|
366
|
-
changes.push({ kind: 'preamble', path, value: parts.preamble.value });
|
|
471
|
+
changes.push({ kind: 'preamble', path, value: lineEnded(parts.preamble.value) });
|
|
367
472
|
bases.push({ kind: 'preamble', path, value: parts.preamble.base });
|
|
368
473
|
}
|
|
369
474
|
if (parts.markdown !== undefined) {
|
|
370
475
|
changes.push({ kind: 'replace', path, content: parts.markdown.value });
|
|
371
476
|
}
|
|
372
477
|
if (parts.file !== undefined && parts.removal === undefined) {
|
|
373
|
-
const { base, ...file } = parts.file;
|
|
478
|
+
const { base, name: _name, ...file } = parts.file;
|
|
374
479
|
const at = parts.move === undefined ? path : moveTarget(parts.move);
|
|
375
480
|
if (base !== null && at !== path)
|
|
376
481
|
changes.push({ kind: 'move', path, to: at });
|
|
377
482
|
changes.push({ kind: 'binary', path: at, ...file });
|
|
378
|
-
if (base === null
|
|
483
|
+
if (base === null)
|
|
379
484
|
bases.push({ kind: 'absent', path: at });
|
|
380
485
|
return { changes, bases };
|
|
381
486
|
}
|
|
@@ -387,35 +492,6 @@ export function changesOf(path, parts) {
|
|
|
387
492
|
changes.push({ kind: 'remove', path });
|
|
388
493
|
return { changes, bases };
|
|
389
494
|
}
|
|
390
|
-
function rebased(before, after) {
|
|
391
|
-
return before === undefined ? after : { ...after, base: before.base };
|
|
392
|
-
}
|
|
393
|
-
function rebasedAll(before, after) {
|
|
394
|
-
return {
|
|
395
|
-
...before,
|
|
396
|
-
...Object.fromEntries(Object.entries(after).map(([name, part]) => [name, rebased(before?.[name], part)])),
|
|
397
|
-
};
|
|
398
|
-
}
|
|
399
|
-
export function joinedDraft(carried, saved) {
|
|
400
|
-
const draft = saved.find((item) => item.path === carried.path);
|
|
401
|
-
if (draft === undefined)
|
|
402
|
-
return carried;
|
|
403
|
-
const held = carried.parts;
|
|
404
|
-
const next = draft.parts;
|
|
405
|
-
return {
|
|
406
|
-
path: carried.path,
|
|
407
|
-
parts: {
|
|
408
|
-
...held,
|
|
409
|
-
...next,
|
|
410
|
-
...(next.fields === undefined ? {} : { fields: rebasedAll(held.fields, next.fields) }),
|
|
411
|
-
...(next.sections === undefined
|
|
412
|
-
? {}
|
|
413
|
-
: { sections: rebasedAll(held.sections, next.sections) }),
|
|
414
|
-
...(next.preamble === undefined ? {} : { preamble: rebased(held.preamble, next.preamble) }),
|
|
415
|
-
...(next.markdown === undefined ? {} : { markdown: rebased(held.markdown, next.markdown) }),
|
|
416
|
-
},
|
|
417
|
-
};
|
|
418
|
-
}
|
|
419
495
|
export function withdrawnDrafts(drafts, changes) {
|
|
420
496
|
return drafts.flatMap((draft) => {
|
|
421
497
|
const file = draft.parts.file;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type ChangeSet } from './change-set.js';
|
|
2
|
+
import { type VisibleLayer } from './replica.js';
|
|
3
|
+
import { type RoomDraft, type RoomDraftWrite } from './room-draft.js';
|
|
4
|
+
import type { Runtime } from './runtime.js';
|
|
5
|
+
import type { Store } from './store.js';
|
|
6
|
+
export type RoomDraftSurface = {
|
|
7
|
+
list(): Promise<readonly RoomDraft[]>;
|
|
8
|
+
read(room: string, path: string): Promise<RoomDraft | null>;
|
|
9
|
+
write(room: string, path: string, revision: string | null, parts: unknown, next?: string): Promise<RoomDraftWrite>;
|
|
10
|
+
discard(room: string, path: string, revision: string): Promise<RoomDraftWrite>;
|
|
11
|
+
};
|
|
12
|
+
export type PresentationSurface = {
|
|
13
|
+
read(app: string): Promise<unknown>;
|
|
14
|
+
write(app: string, value: unknown): Promise<void>;
|
|
15
|
+
edit(app: string, members: Readonly<Record<string, unknown>>): Promise<void>;
|
|
16
|
+
};
|
|
17
|
+
export declare function visibleOf(store: Store, locator: string, paths: readonly string[]): Promise<VisibleLayer | undefined>;
|
|
18
|
+
export declare function publishRoomDrafts({ store, socket }: Runtime, waitingOnly: boolean, touched?: ChangeSet['documents'] | null): Promise<void>;
|
|
19
|
+
export declare function emitPresentation({ store, socket }: Runtime, app: string): Promise<void>;
|
|
20
|
+
export declare function roomDraftSurface(runtime: Runtime): RoomDraftSurface;
|
|
21
|
+
export declare function presentationSurface(runtime: Runtime): PresentationSurface;
|
|
22
|
+
export declare function watchRoomDrafts({ store, socket }: Runtime, deliver: (value: unknown) => void): () => void;
|
|
23
|
+
export declare function watchPresentation({ store, socket }: Runtime, app: string, deliver: (value: unknown) => void): () => void;
|
|
24
|
+
//# sourceMappingURL=room-drafts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"room-drafts.d.ts","sourceRoot":"","sources":["../src/room-drafts.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK5D,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAQL,KAAK,SAAS,EAEd,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,IAAI,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC5D,KAAK,CACH,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,KAAK,EAAE,OAAO,EACd,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAChF,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9E,CAAC;AAMF,wBAAsB,SAAS,CAC7B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAMnC;AA0CD,wBAAgB,iBAAiB,CAC/B,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAC1B,WAAW,EAAE,OAAO,EACpB,OAAO,GAAE,SAAS,CAAC,WAAW,CAAC,GAAG,IAAW,GAC5C,OAAO,CAAC,IAAI,CAAC,CAuBf;AAOD,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUvF;AAoDD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,CAkDnE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,mBAAmB,CA8BzE;AAED,wBAAgB,eAAe,CAC7B,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAChC,MAAM,IAAI,CAiBZ;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAC1B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAChC,MAAM,IAAI,CASZ"}
|