@agentshouse/mdruntime 0.1.0-c967d1ca66fee → 0.1.0-c97456d63baba
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +257 -227
- package/README.md +11 -1
- package/dist/acquisition.d.ts +14 -0
- package/dist/acquisition.d.ts.map +1 -0
- package/dist/acquisition.js +24 -0
- package/dist/adapter.d.ts +69 -20
- package/dist/adapter.d.ts.map +1 -1
- package/dist/attempt.d.ts +16 -0
- package/dist/attempt.d.ts.map +1 -0
- package/dist/attempt.js +70 -0
- package/dist/binary.d.ts +23 -0
- package/dist/binary.d.ts.map +1 -0
- package/dist/binary.js +8 -0
- package/dist/bootstrap.d.ts +2 -2
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +33 -14
- package/dist/change-set.d.ts +2 -0
- package/dist/change-set.d.ts.map +1 -1
- package/dist/change-set.js +39 -13
- package/dist/change.d.ts +11 -0
- package/dist/change.d.ts.map +1 -1
- package/dist/change.js +26 -1
- package/dist/chat/acts.d.ts +33 -0
- package/dist/chat/acts.d.ts.map +1 -0
- package/dist/chat/acts.js +36 -0
- package/dist/chat/context.d.ts +3 -0
- package/dist/chat/context.d.ts.map +1 -0
- package/dist/chat/context.js +10 -0
- package/dist/chat/input.d.ts +9 -0
- package/dist/chat/input.d.ts.map +1 -0
- package/dist/chat/input.js +99 -0
- package/dist/chat/kit.d.ts +61 -0
- package/dist/chat/kit.d.ts.map +1 -0
- package/dist/chat/kit.js +123 -0
- package/dist/chat/lasting.d.ts +6 -0
- package/dist/chat/lasting.d.ts.map +1 -0
- package/dist/chat/lasting.js +19 -0
- package/dist/chat/list.d.ts +27 -0
- package/dist/chat/list.d.ts.map +1 -0
- package/dist/chat/list.js +63 -0
- package/dist/chat/markdown.d.ts +20 -0
- package/dist/chat/markdown.d.ts.map +1 -0
- package/dist/chat/markdown.js +188 -0
- package/dist/chat/message.d.ts +6 -0
- package/dist/chat/message.d.ts.map +1 -0
- package/dist/chat/message.js +192 -0
- package/dist/chat/messages.d.ts +22 -0
- package/dist/chat/messages.d.ts.map +1 -0
- package/dist/chat/messages.js +155 -0
- package/dist/chat/name.d.ts +6 -0
- package/dist/chat/name.d.ts.map +1 -0
- package/dist/chat/name.js +37 -0
- package/dist/chat/opened.d.ts +11 -0
- package/dist/chat/opened.d.ts.map +1 -0
- package/dist/chat/opened.js +17 -0
- package/dist/chat/overlay.d.ts +31 -0
- package/dist/chat/overlay.d.ts.map +1 -0
- package/dist/chat/overlay.js +97 -0
- package/dist/chat/parts.d.ts +57 -0
- package/dist/chat/parts.d.ts.map +1 -0
- package/dist/chat/parts.js +119 -0
- package/dist/chat/process.d.ts +20 -0
- package/dist/chat/process.d.ts.map +1 -0
- package/dist/chat/process.js +32 -0
- package/dist/chat/provider.d.ts +63 -0
- package/dist/chat/provider.d.ts.map +1 -0
- package/dist/chat/provider.js +629 -0
- package/dist/chat/question.d.ts +9 -0
- package/dist/chat/question.d.ts.map +1 -0
- package/dist/chat/question.js +80 -0
- package/dist/chat/questions.d.ts +31 -0
- package/dist/chat/questions.d.ts.map +1 -0
- package/dist/chat/questions.js +111 -0
- package/dist/chat/read.d.ts +5 -0
- package/dist/chat/read.d.ts.map +1 -0
- package/dist/chat/read.js +13 -0
- package/dist/chat/ready.d.ts +34 -0
- package/dist/chat/ready.d.ts.map +1 -0
- package/dist/chat/ready.js +91 -0
- package/dist/chat/style.d.ts +4 -0
- package/dist/chat/style.d.ts.map +1 -0
- package/dist/chat/style.js +302 -0
- package/dist/chat.d.ts +14 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +8 -0
- package/dist/client.d.ts +21 -10
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +14 -2
- package/dist/collection.d.ts +17 -3
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +230 -19
- package/dist/connection.d.ts +32 -12
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +1482 -351
- package/dist/conversation.d.ts +23 -9
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +372 -142
- package/dist/durability.d.ts +7 -1
- package/dist/durability.d.ts.map +1 -1
- package/dist/entry.d.ts +17 -0
- package/dist/entry.d.ts.map +1 -0
- package/dist/entry.js +156 -0
- package/dist/expectation.d.ts +21 -0
- package/dist/expectation.d.ts.map +1 -0
- package/dist/expectation.js +70 -0
- package/dist/fence.d.ts +6 -0
- package/dist/fence.d.ts.map +1 -0
- package/dist/fence.js +10 -0
- package/dist/host.d.ts +13 -3
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +48 -11
- package/dist/identity.d.ts +4 -0
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +12 -0
- package/dist/index.d.ts +13 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/memory.d.ts +5 -3
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +47 -13
- package/dist/model.d.ts +4 -2
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +10 -1
- package/dist/observation.d.ts +5 -2
- package/dist/observation.d.ts.map +1 -1
- package/dist/observation.js +22 -11
- package/dist/outcome.d.ts +11 -1
- package/dist/outcome.d.ts.map +1 -1
- package/dist/outcome.js +7 -0
- package/dist/overlay.d.ts +14 -2
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +75 -62
- package/dist/query.d.ts +31 -3
- package/dist/query.d.ts.map +1 -1
- package/dist/reach.d.ts +8 -2
- package/dist/reach.d.ts.map +1 -1
- package/dist/reach.js +42 -8
- package/dist/react.d.ts +7 -4
- package/dist/react.d.ts.map +1 -1
- package/dist/read-side.d.ts +13 -6
- package/dist/read-side.d.ts.map +1 -1
- package/dist/read-side.js +291 -85
- package/dist/readiness.d.ts +53 -0
- package/dist/readiness.d.ts.map +1 -0
- package/dist/readiness.js +33 -0
- package/dist/recovery.d.ts +25 -0
- package/dist/recovery.d.ts.map +1 -0
- package/dist/recovery.js +197 -0
- package/dist/refresh.d.ts.map +1 -1
- package/dist/refresh.js +21 -25
- package/dist/replica.d.ts +6 -3
- package/dist/replica.d.ts.map +1 -1
- package/dist/replica.js +78 -45
- package/dist/room-draft.d.ts +20 -3
- package/dist/room-draft.d.ts.map +1 -1
- package/dist/room-draft.js +119 -1
- package/dist/rows.d.ts +6 -13
- package/dist/rows.d.ts.map +1 -1
- package/dist/rows.js +5 -13
- package/dist/save.d.ts +28 -0
- package/dist/save.d.ts.map +1 -1
- package/dist/save.js +343 -29
- package/dist/search.d.ts +28 -6
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +108 -45
- package/dist/shared.d.ts +11 -0
- package/dist/shared.d.ts.map +1 -0
- package/dist/shared.js +368 -0
- package/dist/status.d.ts +4 -0
- package/dist/status.d.ts.map +1 -1
- package/dist/store.d.ts +55 -21
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +424 -206
- package/dist/turn.d.ts +7 -0
- package/dist/turn.d.ts.map +1 -0
- package/dist/turn.js +45 -0
- package/dist/wire.d.ts +137 -30
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +49 -29
- package/package.json +26 -14
- package/dist/attachment.d.ts +0 -3
- package/dist/attachment.d.ts.map +0 -1
- package/dist/attachment.js +0 -8
package/dist/recovery.js
ADDED
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
// A first retry waits about a second, so a passing failure clears before the next attempt.
|
|
2
|
+
const FIRST_MS = 1_000;
|
|
3
|
+
// Waits stop doubling at half a minute, so work resumes soon after a long failure ends.
|
|
4
|
+
const CEILING_MS = 30_000;
|
|
5
|
+
const ATTEMPTS = 8;
|
|
6
|
+
export function retryDelay(tries, firstMs = FIRST_MS, ceilingMs = CEILING_MS) {
|
|
7
|
+
const ceiling = Math.min(ceilingMs, firstMs * 2 ** tries);
|
|
8
|
+
return ceiling / 2 + (Math.random() * ceiling) / 2;
|
|
9
|
+
}
|
|
10
|
+
function owner(backoff, inFlight, release = () => { }) {
|
|
11
|
+
const intents = new Map();
|
|
12
|
+
const children = new Set();
|
|
13
|
+
const running = new Set();
|
|
14
|
+
const queued = [];
|
|
15
|
+
let free = inFlight;
|
|
16
|
+
let retired = false;
|
|
17
|
+
function finish(key, intent, done) {
|
|
18
|
+
if (intents.get(key) === intent)
|
|
19
|
+
intents.delete(key);
|
|
20
|
+
if (intent.timer !== null)
|
|
21
|
+
clearTimeout(intent.timer);
|
|
22
|
+
intent.timer = null;
|
|
23
|
+
intent.end(done);
|
|
24
|
+
}
|
|
25
|
+
function wait(key, intent, at, guided) {
|
|
26
|
+
if (intent.timer !== null)
|
|
27
|
+
clearTimeout(intent.timer);
|
|
28
|
+
intent.due = at;
|
|
29
|
+
intent.guided = guided;
|
|
30
|
+
intent.timer = setTimeout(() => {
|
|
31
|
+
intent.timer = null;
|
|
32
|
+
launch(key, intent);
|
|
33
|
+
}, Math.max(0, at - Date.now()));
|
|
34
|
+
}
|
|
35
|
+
function launch(key, intent) {
|
|
36
|
+
intent.due = null;
|
|
37
|
+
intent.guided = false;
|
|
38
|
+
const controller = new AbortController();
|
|
39
|
+
intent.controller = controller;
|
|
40
|
+
const run = start(key, intent, controller);
|
|
41
|
+
running.add(run);
|
|
42
|
+
void run.finally(() => running.delete(run));
|
|
43
|
+
}
|
|
44
|
+
async function start(key, intent, controller) {
|
|
45
|
+
while (free === 0)
|
|
46
|
+
await new Promise((admit) => queued.push(admit));
|
|
47
|
+
if (controller.signal.aborted) {
|
|
48
|
+
queued.shift()?.();
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
free -= 1;
|
|
52
|
+
const abandoned = new Promise((resolve) => {
|
|
53
|
+
controller.signal.addEventListener('abort', () => resolve(null), { once: true });
|
|
54
|
+
});
|
|
55
|
+
let result;
|
|
56
|
+
try {
|
|
57
|
+
result = await Promise.race([intent.run(controller.signal), abandoned]);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
result = 'again';
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
free += 1;
|
|
64
|
+
queued.shift()?.();
|
|
65
|
+
}
|
|
66
|
+
if (result === null || controller.signal.aborted || intents.get(key) !== intent)
|
|
67
|
+
return;
|
|
68
|
+
intent.controller = null;
|
|
69
|
+
const again = intent.again;
|
|
70
|
+
intent.again = null;
|
|
71
|
+
if (result === 'done') {
|
|
72
|
+
intent.tries = 0;
|
|
73
|
+
if (again === null)
|
|
74
|
+
finish(key, intent, true);
|
|
75
|
+
else if (again === 'now')
|
|
76
|
+
launch(key, intent);
|
|
77
|
+
else
|
|
78
|
+
wait(key, intent, again, true);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
intent.tries += 1;
|
|
82
|
+
if (intent.tries >= backoff.attempts) {
|
|
83
|
+
finish(key, intent, false);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (result === 'again') {
|
|
87
|
+
const delay = retryDelay(intent.tries - 1, backoff.firstMs, backoff.ceilingMs);
|
|
88
|
+
wait(key, intent, Date.now() + delay, false);
|
|
89
|
+
}
|
|
90
|
+
else
|
|
91
|
+
wait(key, intent, result.at, true);
|
|
92
|
+
}
|
|
93
|
+
const recovery = {
|
|
94
|
+
attempt(key, run, options = {}) {
|
|
95
|
+
if (retired)
|
|
96
|
+
return Promise.resolve(false);
|
|
97
|
+
const held = intents.get(key);
|
|
98
|
+
if (held !== undefined) {
|
|
99
|
+
held.run = run;
|
|
100
|
+
if (held.controller !== null) {
|
|
101
|
+
const at = options.at;
|
|
102
|
+
held.again =
|
|
103
|
+
at === undefined || held.again === 'now'
|
|
104
|
+
? 'now'
|
|
105
|
+
: Math.min(at, held.again ?? Number.POSITIVE_INFINITY);
|
|
106
|
+
}
|
|
107
|
+
else if (held.due !== null && held.due <= Date.now()) {
|
|
108
|
+
if (held.timer !== null)
|
|
109
|
+
clearTimeout(held.timer);
|
|
110
|
+
held.timer = null;
|
|
111
|
+
launch(key, held);
|
|
112
|
+
}
|
|
113
|
+
else if (options.at !== undefined && (held.due === null || options.at < held.due)) {
|
|
114
|
+
wait(key, held, options.at, true);
|
|
115
|
+
}
|
|
116
|
+
return held.ended;
|
|
117
|
+
}
|
|
118
|
+
let end = () => { };
|
|
119
|
+
const ended = new Promise((resolve) => {
|
|
120
|
+
end = resolve;
|
|
121
|
+
});
|
|
122
|
+
const intent = {
|
|
123
|
+
run,
|
|
124
|
+
tries: 0,
|
|
125
|
+
timer: null,
|
|
126
|
+
due: null,
|
|
127
|
+
guided: false,
|
|
128
|
+
controller: null,
|
|
129
|
+
again: null,
|
|
130
|
+
ended,
|
|
131
|
+
end,
|
|
132
|
+
};
|
|
133
|
+
intents.set(key, intent);
|
|
134
|
+
if (options.at !== undefined)
|
|
135
|
+
wait(key, intent, options.at, true);
|
|
136
|
+
else if (options.again === true) {
|
|
137
|
+
intent.tries = 1;
|
|
138
|
+
wait(key, intent, Date.now() + retryDelay(0, backoff.firstMs, backoff.ceilingMs), false);
|
|
139
|
+
}
|
|
140
|
+
else
|
|
141
|
+
launch(key, intent);
|
|
142
|
+
return ended;
|
|
143
|
+
},
|
|
144
|
+
pending(key) {
|
|
145
|
+
const intent = intents.get(key);
|
|
146
|
+
return intent !== undefined && intent.controller === null;
|
|
147
|
+
},
|
|
148
|
+
resume() {
|
|
149
|
+
if (retired)
|
|
150
|
+
return;
|
|
151
|
+
for (const [key, intent] of [...intents]) {
|
|
152
|
+
if (intent.guided && intent.due !== null && intent.due > Date.now())
|
|
153
|
+
continue;
|
|
154
|
+
if (intent.timer !== null)
|
|
155
|
+
clearTimeout(intent.timer);
|
|
156
|
+
intent.timer = null;
|
|
157
|
+
intent.controller?.abort();
|
|
158
|
+
intent.again = null;
|
|
159
|
+
intent.tries = 0;
|
|
160
|
+
launch(key, intent);
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
cancel(key) {
|
|
164
|
+
const intent = intents.get(key);
|
|
165
|
+
if (intent === undefined)
|
|
166
|
+
return;
|
|
167
|
+
intent.controller?.abort();
|
|
168
|
+
finish(key, intent, false);
|
|
169
|
+
},
|
|
170
|
+
scope(bound = Infinity) {
|
|
171
|
+
const child = owner(backoff, bound, () => children.delete(child));
|
|
172
|
+
if (retired)
|
|
173
|
+
void child.retire();
|
|
174
|
+
else
|
|
175
|
+
children.add(child);
|
|
176
|
+
return child;
|
|
177
|
+
},
|
|
178
|
+
async retire() {
|
|
179
|
+
retired = true;
|
|
180
|
+
release();
|
|
181
|
+
for (const [key, intent] of [...intents]) {
|
|
182
|
+
intent.controller?.abort();
|
|
183
|
+
finish(key, intent, false);
|
|
184
|
+
}
|
|
185
|
+
await Promise.all([...children].map((child) => child.retire()));
|
|
186
|
+
await Promise.all(running);
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
return recovery;
|
|
190
|
+
}
|
|
191
|
+
export function createRecovery(options = {}) {
|
|
192
|
+
return owner({
|
|
193
|
+
firstMs: options.firstMs ?? FIRST_MS,
|
|
194
|
+
ceilingMs: options.ceilingMs ?? CEILING_MS,
|
|
195
|
+
attempts: options.attempts ?? ATTEMPTS,
|
|
196
|
+
}, options.inFlight ?? Infinity);
|
|
197
|
+
}
|
package/dist/refresh.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../src/refresh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,aAAa,
|
|
1
|
+
{"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../src/refresh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,aAAa,EAEb,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAe,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B,gBAAgB,GAChB,WAAW,GACX,cAAc,CAAC;AAEnB,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,cAAc,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B,gBAAgB,GAChB,WAAW,GACX,OAAO,GACP,cAAc,CAAC;AAEnB,wBAAsB,WAAW,CAC/B,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,OAAO,GACxB,OAAO,CAAC,WAAW,CAAC,CAwEtB;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,OAAO,GACxB,OAAO,CAAC,cAAc,CAAC,CAKzB"}
|
package/dist/refresh.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { acceptedBinaries } from './overlay.js';
|
|
2
2
|
import { readStaged } from './replica.js';
|
|
3
|
+
import { drafted, settled } from './shared.js';
|
|
3
4
|
import { unconfirmed } from './transfer.js';
|
|
4
5
|
export async function advancement(adapter, authorization, held, remodel, continuing) {
|
|
5
6
|
const locator = held.locator;
|
|
@@ -16,36 +17,32 @@ export async function advancement(adapter, authorization, held, remodel, continu
|
|
|
16
17
|
collection: held.model,
|
|
17
18
|
selection: held.selectionModel,
|
|
18
19
|
});
|
|
19
|
-
const documents =
|
|
20
|
-
const revisions =
|
|
21
|
-
const changes =
|
|
22
|
-
const written =
|
|
23
|
-
const
|
|
24
|
-
const attachments = [];
|
|
20
|
+
const documents = drafted(held.documents);
|
|
21
|
+
const revisions = drafted(held.revisions);
|
|
22
|
+
const changes = drafted(held.changes);
|
|
23
|
+
const written = drafted(held.written);
|
|
24
|
+
const binaries = drafted(held.binaries);
|
|
25
25
|
const stage = (page) => {
|
|
26
|
-
if (page.attachments !== undefined)
|
|
27
|
-
attachments.push(page.attachments);
|
|
28
|
-
Object.assign(documents, page.documents);
|
|
29
|
-
Object.assign(revisions, page.revisions);
|
|
30
26
|
for (const path of Object.keys(page.documents)) {
|
|
31
|
-
|
|
27
|
+
delete binaries[path];
|
|
32
28
|
delete changes[path];
|
|
33
29
|
written[path] = roomVersion;
|
|
34
30
|
}
|
|
35
|
-
for (const
|
|
36
|
-
delete documents[
|
|
37
|
-
delete
|
|
38
|
-
delete
|
|
39
|
-
delete written[target];
|
|
40
|
-
binaryTargets.add(target);
|
|
31
|
+
for (const path of Object.keys(page.binaryFiles)) {
|
|
32
|
+
delete documents[path];
|
|
33
|
+
delete changes[path];
|
|
34
|
+
delete written[path];
|
|
41
35
|
}
|
|
36
|
+
Object.assign(documents, page.documents);
|
|
37
|
+
Object.assign(binaries, acceptedBinaries(page.binaryFiles));
|
|
38
|
+
Object.assign(revisions, page.revisions);
|
|
42
39
|
Object.assign(changes, page.changes);
|
|
43
40
|
for (const path of page.removals) {
|
|
44
41
|
delete documents[path];
|
|
45
42
|
delete revisions[path];
|
|
46
43
|
delete changes[path];
|
|
47
44
|
delete written[path];
|
|
48
|
-
|
|
45
|
+
delete binaries[path];
|
|
49
46
|
}
|
|
50
47
|
};
|
|
51
48
|
stage(first);
|
|
@@ -75,12 +72,11 @@ export async function advancement(adapter, authorization, held, remodel, continu
|
|
|
75
72
|
model: models.collection,
|
|
76
73
|
selectionModel: models.selection,
|
|
77
74
|
roomVersion,
|
|
78
|
-
documents,
|
|
79
|
-
|
|
80
|
-
revisions,
|
|
81
|
-
changes,
|
|
82
|
-
written,
|
|
83
|
-
attachments: attachments.length === 0 ? held.attachments : declaredAttachments(attachments),
|
|
75
|
+
documents: settled(documents),
|
|
76
|
+
binaries: settled(binaries),
|
|
77
|
+
revisions: settled(revisions),
|
|
78
|
+
changes: settled(changes),
|
|
79
|
+
written: settled(written),
|
|
84
80
|
},
|
|
85
81
|
};
|
|
86
82
|
}
|
package/dist/replica.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type ChangeBatch } from './change.js';
|
|
2
2
|
import { type Collection, type Composition } from './collection.js';
|
|
3
3
|
import { type Layer } from './overlay.js';
|
|
4
|
-
import type {
|
|
4
|
+
import type { MutationResult } from './adapter.js';
|
|
5
5
|
import type { ReplicaRecord } from './store.js';
|
|
6
6
|
import type { Refused } from './transfer.js';
|
|
7
7
|
export type ConfirmedLayer = {
|
|
@@ -31,11 +31,14 @@ type ReplayStep = {
|
|
|
31
31
|
export declare function compositionOf(record: ReplicaRecord): Composition;
|
|
32
32
|
export declare function confirmedOf(record: ReplicaRecord, previous?: ConfirmedLayer): ConfirmedLayer;
|
|
33
33
|
export declare function sameMembership(record: ReplicaRecord, other: ReplicaRecord): boolean;
|
|
34
|
-
export declare function readStaged(
|
|
34
|
+
export declare function readStaged(staged: ReplicaRecord, previous?: ConfirmedLayer): Staged;
|
|
35
35
|
export declare function readReclassified(record: ReplicaRecord, previous: ConfirmedLayer): Staged | {
|
|
36
36
|
kind: 'deferred';
|
|
37
37
|
};
|
|
38
|
-
|
|
38
|
+
type Accepted = Extract<MutationResult, {
|
|
39
|
+
kind: 'accepted';
|
|
40
|
+
}>;
|
|
41
|
+
export declare function applyReturned(confirmed: ConfirmedLayer, submitted: ChangeBatch, accepted: Accepted, roomVersion: string, writtenAt: string): Staged;
|
|
39
42
|
export declare function replicaOf(confirmed: ConfirmedLayer, queue: readonly ChangeBatch[], previous?: Replica): Replica;
|
|
40
43
|
export declare function landed(batch: ChangeBatch, confirmed: ConfirmedLayer, current?: Readonly<Record<string, string>>): boolean;
|
|
41
44
|
export declare function withdrawals(confirmed: ConfirmedLayer, queue: readonly ChangeBatch[], withdrawable: (batch: ChangeBatch) => boolean, local: boolean): readonly ChangeBatch[];
|
package/dist/replica.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replica.d.ts","sourceRoot":"","sources":["../src/replica.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"replica.d.ts","sourceRoot":"","sources":["../src/replica.ts"],"names":[],"mappings":"AACA,OAAO,EAAmC,KAAK,WAAW,EAAqB,MAAM,aAAa,CAAC;AACnG,OAAO,EAKL,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAML,KAAK,KAAK,EACX,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG;IACjC,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,cAAc,CAAA;CAAE,GAAG,OAAO,CAAC;AAE7E,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,EAAE,cAAc,CAAC;IAC1B,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9B,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;CAC/B,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,CAQhE;AAiBD,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,cAAc,CAM5F;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAKnF;AAYD,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,CA6BnF;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,cAAc,GACvB,MAAM,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAW/B;AAoBD,KAAK,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAAC;AAE9D,wBAAgB,aAAa,CAC3B,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,CA+BR;AAgDD,wBAAgB,SAAS,CACvB,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,SAAS,WAAW,EAAE,EAC7B,QAAQ,CAAC,EAAE,OAAO,GACjB,OAAO,CA8BT;AA0ED,wBAAgB,MAAM,CACpB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,cAAc,EACzB,OAAO,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,GAC7C,OAAO,CAoBT;AAED,wBAAgB,WAAW,CACzB,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,SAAS,WAAW,EAAE,EAC7B,YAAY,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,EAC7C,KAAK,EAAE,OAAO,GACb,SAAS,WAAW,EAAE,CA2BxB"}
|
package/dist/replica.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { equalValue, parse } from '@agentshouse/mdmodel';
|
|
2
|
-
import { immutable } from './change.js';
|
|
3
|
-
import { collectionOf, unreadable, validateCollection, } from './collection.js';
|
|
4
|
-
import { overlay, overlayChanged, sameLayerText } from './overlay.js';
|
|
2
|
+
import { immutable, landing } from './change.js';
|
|
3
|
+
import { changedCleanly, collectionOf, unreadable, validateCollection, } from './collection.js';
|
|
4
|
+
import { acceptedBinaries, overlay, overlayChanged, sameLayerText, } from './overlay.js';
|
|
5
5
|
import { providerRewritten } from './save.js';
|
|
6
|
-
import {
|
|
6
|
+
import { drafted, patched, settled, shared } from './shared.js';
|
|
7
7
|
export function compositionOf(record) {
|
|
8
8
|
return {
|
|
9
9
|
model: record.model,
|
|
@@ -12,24 +12,47 @@ export function compositionOf(record) {
|
|
|
12
12
|
: { roots: record.typedSelection.roots, model: record.selectionModel },
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
|
+
function held(record) {
|
|
16
|
+
const documents = shared(record.documents);
|
|
17
|
+
const binaries = shared(record.binaries);
|
|
18
|
+
const revisions = shared(record.revisions);
|
|
19
|
+
const changes = shared(record.changes);
|
|
20
|
+
const written = shared(record.written);
|
|
21
|
+
return documents === record.documents &&
|
|
22
|
+
binaries === record.binaries &&
|
|
23
|
+
revisions === record.revisions &&
|
|
24
|
+
changes === record.changes &&
|
|
25
|
+
written === record.written
|
|
26
|
+
? record
|
|
27
|
+
: { ...record, documents, binaries, revisions, changes, written };
|
|
28
|
+
}
|
|
15
29
|
export function confirmedOf(record, previous) {
|
|
30
|
+
const kept = held(record);
|
|
16
31
|
return {
|
|
17
|
-
record,
|
|
18
|
-
collection: collectionOf(
|
|
32
|
+
record: kept,
|
|
33
|
+
collection: collectionOf(kept.documents, compositionOf(kept), previous?.collection),
|
|
19
34
|
};
|
|
20
35
|
}
|
|
21
36
|
export function sameMembership(record, other) {
|
|
22
37
|
return (JSON.stringify(record.typedSelection?.roots ?? null) ===
|
|
23
38
|
JSON.stringify(other.typedSelection?.roots ?? null));
|
|
24
39
|
}
|
|
25
|
-
|
|
40
|
+
function cleanly(record, previous) {
|
|
41
|
+
if (previous === undefined)
|
|
42
|
+
return false;
|
|
43
|
+
const before = previous.record;
|
|
44
|
+
return changedCleanly({ text: record.documents, binaries: record.binaries }, { text: before.documents, binaries: before.binaries, composition: compositionOf(before) }, compositionOf(record));
|
|
45
|
+
}
|
|
46
|
+
export function readStaged(staged, previous) {
|
|
47
|
+
const record = held(staged);
|
|
26
48
|
const textChanged = previous === undefined || !sameLayerText(record, previous.record);
|
|
27
49
|
const modeled = record.model.status !== 'unavailable' || record.selectionModel.status !== 'unavailable';
|
|
28
50
|
if (modeled &&
|
|
29
51
|
(textChanged ||
|
|
30
52
|
record.model !== previous?.record.model ||
|
|
31
|
-
record.selectionModel !== previous?.record.selectionModel)
|
|
32
|
-
|
|
53
|
+
record.selectionModel !== previous?.record.selectionModel) &&
|
|
54
|
+
!cleanly(record, previous)) {
|
|
55
|
+
const verdict = validateCollection(record.documents, Object.keys(record.binaries), compositionOf(record));
|
|
33
56
|
if (verdict.verdict === 'refuse' && verdict.rule !== 'model-unavailable') {
|
|
34
57
|
return { kind: 'refused', refusal: verdict };
|
|
35
58
|
}
|
|
@@ -47,22 +70,39 @@ export function readStaged(record, previous) {
|
|
|
47
70
|
return { kind: 'staged', confirmed: confirmedOf(record, previous) };
|
|
48
71
|
}
|
|
49
72
|
export function readReclassified(record, previous) {
|
|
50
|
-
const verdict = validateCollection(record.documents, record.
|
|
73
|
+
const verdict = validateCollection(record.documents, Object.keys(record.binaries), compositionOf(record));
|
|
51
74
|
if (verdict.verdict !== 'refuse')
|
|
52
75
|
return { kind: 'staged', confirmed: confirmedOf(record, previous) };
|
|
53
76
|
return verdict.rule === 'model-unavailable'
|
|
54
77
|
? { kind: 'deferred' }
|
|
55
78
|
: { kind: 'refused', refusal: verdict };
|
|
56
79
|
}
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
80
|
+
function returnedBinaries(held, submitted, accepted) {
|
|
81
|
+
const binaries = drafted(held);
|
|
82
|
+
for (const change of submitted.changes) {
|
|
83
|
+
if (change.kind !== 'move')
|
|
84
|
+
continue;
|
|
85
|
+
const moved = binaries[change.path];
|
|
86
|
+
if (moved === undefined || accepted.revisions[change.to] === undefined)
|
|
87
|
+
continue;
|
|
88
|
+
binaries[change.to] = moved;
|
|
89
|
+
delete binaries[change.path];
|
|
90
|
+
}
|
|
91
|
+
Object.assign(binaries, acceptedBinaries(accepted.binaryFiles ?? {}));
|
|
92
|
+
for (const path of accepted.removals)
|
|
93
|
+
delete binaries[path];
|
|
94
|
+
return settled(binaries);
|
|
95
|
+
}
|
|
96
|
+
export function applyReturned(confirmed, submitted, accepted, roomVersion, writtenAt) {
|
|
97
|
+
const { documents, revisions, changes, removals } = accepted;
|
|
98
|
+
const nextDocuments = drafted(confirmed.record.documents);
|
|
99
|
+
const nextRevisions = drafted(confirmed.record.revisions);
|
|
100
|
+
const nextChanges = drafted(confirmed.record.changes);
|
|
101
|
+
const nextWritten = drafted(confirmed.record.written);
|
|
102
|
+
Object.assign(nextDocuments, documents);
|
|
103
|
+
Object.assign(nextRevisions, revisions);
|
|
104
|
+
for (const path of Object.keys(documents))
|
|
105
|
+
nextWritten[path] = writtenAt;
|
|
66
106
|
for (const [path, revision] of Object.entries(revisions)) {
|
|
67
107
|
if (confirmed.record.revisions[path] !== revision)
|
|
68
108
|
delete nextChanges[path];
|
|
@@ -73,19 +113,15 @@ export function applyReturned(confirmed, documents, revisions, changes, removals
|
|
|
73
113
|
delete nextRevisions[path];
|
|
74
114
|
delete nextChanges[path];
|
|
75
115
|
delete nextWritten[path];
|
|
76
|
-
binaryTargets.delete(path);
|
|
77
116
|
}
|
|
78
117
|
return readStaged({
|
|
79
118
|
...confirmed.record,
|
|
80
119
|
roomVersion,
|
|
81
|
-
documents: nextDocuments,
|
|
82
|
-
revisions: nextRevisions,
|
|
83
|
-
changes: nextChanges,
|
|
84
|
-
written: nextWritten,
|
|
85
|
-
|
|
86
|
-
attachments: attachments === undefined
|
|
87
|
-
? confirmed.record.attachments
|
|
88
|
-
: declaredAttachments([attachments]),
|
|
120
|
+
documents: settled(nextDocuments),
|
|
121
|
+
revisions: settled(nextRevisions),
|
|
122
|
+
changes: settled(nextChanges),
|
|
123
|
+
written: settled(nextWritten),
|
|
124
|
+
binaries: returnedBinaries(confirmed.record.binaries, submitted, accepted),
|
|
89
125
|
}, confirmed);
|
|
90
126
|
}
|
|
91
127
|
function predicted(confirmed, batches, previous) {
|
|
@@ -135,7 +171,7 @@ export function replicaOf(confirmed, queue, previous) {
|
|
|
135
171
|
queue: batches,
|
|
136
172
|
visible: {
|
|
137
173
|
documents: confirmed.record.documents,
|
|
138
|
-
|
|
174
|
+
binaries: confirmed.record.binaries,
|
|
139
175
|
revisions: confirmed.record.revisions,
|
|
140
176
|
changes: confirmed.record.changes,
|
|
141
177
|
collection: confirmed.collection,
|
|
@@ -155,7 +191,7 @@ export function replicaOf(confirmed, queue, previous) {
|
|
|
155
191
|
};
|
|
156
192
|
}
|
|
157
193
|
function present(layer, path) {
|
|
158
|
-
return layer.documents[path] !== undefined || layer.
|
|
194
|
+
return layer.documents[path] !== undefined || layer.binaries[path] !== undefined;
|
|
159
195
|
}
|
|
160
196
|
function holds(layer, preconditions) {
|
|
161
197
|
const parsed = new Map();
|
|
@@ -222,31 +258,28 @@ function effects(change) {
|
|
|
222
258
|
{ kind: 'present', path: change.to },
|
|
223
259
|
];
|
|
224
260
|
}
|
|
261
|
+
if (change.kind === 'binary')
|
|
262
|
+
return [{ kind: 'present', path }];
|
|
225
263
|
return [{ kind: 'absent', path }];
|
|
226
264
|
}
|
|
227
|
-
function after(changes, index, path) {
|
|
228
|
-
let at = path;
|
|
229
|
-
for (const change of changes.slice(index + 1)) {
|
|
230
|
-
if (change.path !== at)
|
|
231
|
-
continue;
|
|
232
|
-
if (change.kind === 'remove')
|
|
233
|
-
return null;
|
|
234
|
-
if (change.kind === 'move')
|
|
235
|
-
at = change.to;
|
|
236
|
-
}
|
|
237
|
-
return at;
|
|
238
|
-
}
|
|
239
265
|
export function landed(batch, confirmed, current = {}) {
|
|
240
|
-
const layer = {
|
|
266
|
+
const layer = {
|
|
267
|
+
...confirmed.record,
|
|
268
|
+
documents: patched(confirmed.record.documents, Object.entries(current)),
|
|
269
|
+
};
|
|
241
270
|
return batch.changes.every((change, index) => {
|
|
242
271
|
if (change.kind === 'replace' || (change.kind === 'create' && 'content' in change)) {
|
|
243
|
-
const at =
|
|
272
|
+
const at = landing(batch.changes, index, change.path);
|
|
244
273
|
return at === null || layer.documents[at] === change.content;
|
|
245
274
|
}
|
|
275
|
+
if (change.kind === 'binary') {
|
|
276
|
+
const at = landing(batch.changes, index, change.path);
|
|
277
|
+
return at === null || layer.binaries[at]?.sha256 === change.sha256;
|
|
278
|
+
}
|
|
246
279
|
return effects(change).every((effect) => {
|
|
247
280
|
if (effect.kind === 'absent')
|
|
248
281
|
return holds(layer, [effect]);
|
|
249
|
-
const at =
|
|
282
|
+
const at = landing(batch.changes, index, effect.path);
|
|
250
283
|
return at === null || holds(layer, [{ ...effect, path: at }]);
|
|
251
284
|
});
|
|
252
285
|
});
|
package/dist/room-draft.d.ts
CHANGED
|
@@ -37,6 +37,17 @@ export type RoomDraftParts = {
|
|
|
37
37
|
readonly removal?: {
|
|
38
38
|
readonly base?: string | null;
|
|
39
39
|
};
|
|
40
|
+
readonly file?: {
|
|
41
|
+
readonly blob: Blob;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
export type HeldFile = {
|
|
45
|
+
readonly blob: Blob;
|
|
46
|
+
readonly localId: string;
|
|
47
|
+
readonly byteLength: number;
|
|
48
|
+
readonly mediaType: string;
|
|
49
|
+
readonly sha256: string;
|
|
50
|
+
readonly base: string | null;
|
|
40
51
|
};
|
|
41
52
|
type HeldParts = {
|
|
42
53
|
readonly fields?: Readonly<Record<string, {
|
|
@@ -63,6 +74,7 @@ type HeldParts = {
|
|
|
63
74
|
readonly removal?: {
|
|
64
75
|
readonly base: string | null;
|
|
65
76
|
};
|
|
77
|
+
readonly file?: HeldFile;
|
|
66
78
|
};
|
|
67
79
|
type ChangedUnderneath = {
|
|
68
80
|
readonly fields?: Readonly<Record<string, FieldValue>>;
|
|
@@ -72,9 +84,10 @@ type ChangedUnderneath = {
|
|
|
72
84
|
readonly creation?: string;
|
|
73
85
|
readonly move?: string | null;
|
|
74
86
|
readonly removal?: string | null;
|
|
87
|
+
readonly file?: string | null;
|
|
75
88
|
};
|
|
76
89
|
export type ReturnReason = ProviderRefusal & {
|
|
77
|
-
readonly kind: 'conflicted' | 'rejected' | 'expired' | 'withdrawn'
|
|
90
|
+
readonly kind: Open<'conflicted' | 'rejected' | 'expired' | 'withdrawn'>;
|
|
78
91
|
};
|
|
79
92
|
export declare function returnedBy(kind: 'expired' | 'withdrawn'): ReturnReason;
|
|
80
93
|
export type RoomDraft = {
|
|
@@ -97,7 +110,7 @@ export type RoomDraftWrite = {
|
|
|
97
110
|
export declare function staleWrite(current: RoomDraft | null): RoomDraftWrite;
|
|
98
111
|
export type ChangedPart = {
|
|
99
112
|
readonly path: string;
|
|
100
|
-
readonly part: Open<'field' | 'section' | 'preamble' | 'markdown' | 'creation' | 'move' | 'removal'>;
|
|
113
|
+
readonly part: Open<'field' | 'section' | 'preamble' | 'markdown' | 'creation' | 'move' | 'removal' | 'file'>;
|
|
101
114
|
readonly name?: string;
|
|
102
115
|
};
|
|
103
116
|
export type RoomDraftRecord = {
|
|
@@ -112,8 +125,10 @@ export type SavedDraft = {
|
|
|
112
125
|
readonly parts: HeldParts;
|
|
113
126
|
};
|
|
114
127
|
export declare function readParts(value: unknown): RoomDraftParts;
|
|
115
|
-
export declare function held(current: HeldParts | undefined, parts: RoomDraftParts): HeldParts;
|
|
128
|
+
export declare function held(current: HeldParts | undefined, parts: RoomDraftParts, file?: HeldFile): HeldParts;
|
|
116
129
|
export declare function underneath(parts: HeldParts, path: string, visible: VisibleLayer | undefined): ChangedUnderneath;
|
|
130
|
+
export declare function heldFile(blob: Blob, base: string | null): Promise<HeldFile>;
|
|
131
|
+
export declare function binaryBase(visible: VisibleLayer | undefined, path: string): string | null;
|
|
117
132
|
export declare function changedParts(path: string, report: ChangedUnderneath): readonly ChangedPart[];
|
|
118
133
|
export declare function returnedInto(existing: HeldParts | undefined, returned: HeldParts): HeldParts;
|
|
119
134
|
export declare function moveTarget(move: {
|
|
@@ -123,5 +138,7 @@ export declare function changesOf(path: string, parts: HeldParts): {
|
|
|
123
138
|
changes: readonly Change[];
|
|
124
139
|
bases: readonly Precondition[];
|
|
125
140
|
};
|
|
141
|
+
export declare function joinedDraft(carried: SavedDraft, saved: readonly SavedDraft[]): SavedDraft;
|
|
142
|
+
export declare function withdrawnDrafts(drafts: readonly SavedDraft[], changes: readonly Change[]): readonly SavedDraft[];
|
|
126
143
|
export {};
|
|
127
144
|
//# sourceMappingURL=room-draft.d.ts.map
|
package/dist/room-draft.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room-draft.d.ts","sourceRoot":"","sources":["../src/room-draft.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"room-draft.d.ts","sourceRoot":"","sources":["../src/room-draft.ts"],"names":[],"mappings":"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"}
|