@agentshouse/mdruntime 0.1.0-cf04ede9fb796 → 0.1.0-cf08ada271a7f
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 +8 -8
- package/dist/acceptance.d.ts +0 -3
- package/dist/acceptance.d.ts.map +1 -1
- package/dist/acceptance.js +51 -131
- package/dist/actions.js +2 -2
- package/dist/adapter.d.ts +16 -44
- package/dist/adapter.d.ts.map +1 -1
- package/dist/bootstrap.d.ts +1 -1
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +6 -19
- package/dist/change-set.d.ts +4 -0
- package/dist/change-set.d.ts.map +1 -1
- package/dist/change-set.js +6 -0
- package/dist/change.d.ts.map +1 -1
- package/dist/change.js +4 -2
- package/dist/client.d.ts +3 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +6 -4
- package/dist/collection.d.ts +22 -4
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +12 -2
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +15 -21
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +13 -13
- package/dist/conversation-live.d.ts +3 -4
- package/dist/conversation-live.d.ts.map +1 -1
- package/dist/conversation-live.js +2 -3
- package/dist/conversation.d.ts +4 -6
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +43 -71
- package/dist/declaration.d.ts +10 -0
- package/dist/declaration.d.ts.map +1 -0
- package/dist/declaration.js +24 -0
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +5 -3
- package/dist/expectation.d.ts +4 -2
- package/dist/expectation.d.ts.map +1 -1
- package/dist/expectation.js +33 -11
- package/dist/failure.d.ts +1 -0
- package/dist/failure.d.ts.map +1 -1
- package/dist/failure.js +3 -0
- package/dist/host.d.ts +17 -2
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +16 -4
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/install.d.ts +0 -1
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +46 -59
- package/dist/job.d.ts +1 -29
- package/dist/job.d.ts.map +1 -1
- package/dist/job.js +2 -49
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +9 -6
- package/dist/listing.d.ts +4 -4
- package/dist/listing.d.ts.map +1 -1
- package/dist/listing.js +15 -22
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +3 -3
- package/dist/locks.d.ts.map +1 -1
- package/dist/locks.js +2 -1
- package/dist/lost.d.ts.map +1 -1
- package/dist/lost.js +3 -3
- package/dist/media.d.ts +1 -1
- package/dist/media.d.ts.map +1 -1
- package/dist/media.js +3 -3
- package/dist/memory.d.ts +4 -2
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +8 -6
- package/dist/messages.d.ts +0 -3
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +9 -29
- package/dist/model.d.ts +0 -1
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +0 -5
- package/dist/models.d.ts +4 -8
- package/dist/models.d.ts.map +1 -1
- package/dist/models.js +101 -126
- package/dist/observation.d.ts.map +1 -1
- package/dist/observation.js +12 -17
- package/dist/opened.js +3 -3
- package/dist/opening.d.ts.map +1 -1
- package/dist/opening.js +6 -4
- package/dist/overlay.d.ts +2 -1
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +32 -21
- package/dist/parts.d.ts +3 -52
- package/dist/parts.d.ts.map +1 -1
- package/dist/parts.js +15 -120
- package/dist/preparation.d.ts.map +1 -1
- package/dist/preparation.js +12 -5
- package/dist/queries.js +1 -1
- package/dist/query.d.ts +0 -1
- package/dist/query.d.ts.map +1 -1
- package/dist/questions.js +1 -1
- package/dist/queue.d.ts +39 -0
- package/dist/queue.d.ts.map +1 -0
- package/dist/queue.js +455 -0
- package/dist/reach.d.ts.map +1 -1
- package/dist/reach.js +5 -4
- package/dist/react.d.ts +4 -0
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +10 -1
- package/dist/reads.d.ts.map +1 -1
- package/dist/reads.js +4 -1
- package/dist/refresh.js +2 -2
- package/dist/refusal.d.ts.map +1 -1
- package/dist/refusal.js +3 -2
- package/dist/replica.d.ts +5 -11
- package/dist/replica.d.ts.map +1 -1
- package/dist/replica.js +13 -15
- package/dist/room-draft.d.ts +4 -6
- package/dist/room-draft.d.ts.map +1 -1
- package/dist/room-draft.js +36 -52
- package/dist/room-drafts.d.ts.map +1 -1
- package/dist/room-drafts.js +17 -16
- package/dist/rows.d.ts.map +1 -1
- package/dist/rows.js +3 -4
- package/dist/runtime.d.ts +5 -16
- package/dist/runtime.d.ts.map +1 -1
- package/dist/save.d.ts +41 -90
- package/dist/save.d.ts.map +1 -1
- package/dist/save.js +233 -116
- package/dist/saves.d.ts +2 -40
- package/dist/saves.d.ts.map +1 -1
- package/dist/saves.js +102 -697
- package/dist/seed.d.ts.map +1 -1
- package/dist/seed.js +0 -1
- package/dist/shared.d.ts +0 -5
- package/dist/shared.d.ts.map +1 -1
- package/dist/shared.js +4 -90
- package/dist/shown.d.ts +2 -1
- package/dist/shown.d.ts.map +1 -1
- package/dist/shown.js +15 -11
- package/dist/socket/rooms.d.ts +1 -4
- package/dist/socket/rooms.d.ts.map +1 -1
- package/dist/socket/session.d.ts +0 -1
- package/dist/socket/session.d.ts.map +1 -1
- package/dist/socket.d.ts +0 -1
- package/dist/socket.d.ts.map +1 -1
- package/dist/socket.js +2 -2
- package/dist/source.d.ts.map +1 -1
- package/dist/source.js +5 -4
- package/dist/store/records.d.ts +1 -3
- package/dist/store/records.d.ts.map +1 -1
- package/dist/store/records.js +2 -5
- package/dist/store/space.d.ts +1 -1
- package/dist/store/space.d.ts.map +1 -1
- package/dist/store/space.js +0 -2
- package/dist/store/watchers.js +1 -2
- package/dist/store.d.ts +1 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +1 -1
- package/dist/stored.d.ts +1 -1
- package/dist/stored.d.ts.map +1 -1
- package/dist/stored.js +6 -6
- package/dist/surface.d.ts.map +1 -1
- package/dist/surface.js +4 -3
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +25 -27
- package/dist/tables.d.ts +0 -5
- package/dist/tables.d.ts.map +1 -1
- package/dist/tables.js +8 -11
- package/dist/tallies.js +5 -5
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +2 -2
- package/dist/wire.d.ts +4 -4
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +3 -3
- package/package.json +3 -2
package/dist/index.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
export { heldFacts } from './conversation-row.js';
|
|
2
|
+
export { writeRule } from './declaration.js';
|
|
2
3
|
export { CHAT_MESSAGE_TYPE, CHAT_TYPE, keptFile, keptLines } from './chat-types.js';
|
|
3
4
|
export { FIGURES_DAY_MS } from './figures.js';
|
|
4
5
|
export { departure } from './change.js';
|
|
6
|
+
export { definitionsIn, selected } from './collection.js';
|
|
5
7
|
export { lineEnded, partsAfter, partsChanges } from './room-draft.js';
|
|
6
8
|
export { cutName, nameFrom, transliterated } from './name.js';
|
|
7
9
|
export { HISTORY_CONVERSATIONS, SESSION_STARTED } from './conversation.js';
|
|
8
10
|
export { contextFigure } from './context.js';
|
|
9
|
-
export {
|
|
11
|
+
export { sessionEnded } from './job.js';
|
|
10
12
|
export { changeBatchIdentity } from './identity.js';
|
|
11
13
|
export { paced, ROW_WEIGHT, stepped } from './turn.js';
|
|
12
|
-
export { authoredAt } from './paths.js';
|
|
14
|
+
export { authoredAt, covered } from './paths.js';
|
|
13
15
|
export { untilAnswered } from './recovery.js';
|
|
14
16
|
export { entriesIn, patching, sortedKeys } from './shared.js';
|
|
15
17
|
export { attempts, identities, intentOf, } from './attempt.js';
|
package/dist/install.d.ts
CHANGED
|
@@ -39,7 +39,6 @@ export declare function sweep({ store, socket, journal }: Runtime): void;
|
|
|
39
39
|
export declare function forgetInstall(store: Store, locator: string): void;
|
|
40
40
|
export declare function caughtUpTo(runtime: Runtime, locator: string): void;
|
|
41
41
|
export declare function catching(store: Store, locator: string): void;
|
|
42
|
-
export declare function confirmedAgain(store: Store, locator: string): void;
|
|
43
42
|
export declare function standingAt(store: Store, locator: string, held: Pick<ReplicaRecord, 'key'> | undefined): Standing;
|
|
44
43
|
export declare function showing(system: Runtime, locator: string, roomVersion: string, held: string | undefined): void;
|
|
45
44
|
export declare function olderThan(system: Runtime, locator: string, roomVersion: string, held: string | undefined): boolean;
|
package/dist/install.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,cAAc,EACd,QAAQ,EACR,gBAAgB,EAEjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAkC,KAAK,KAAK,EAAgB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|
package/dist/install.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { attachedModel } from './attached-model.js';
|
|
2
2
|
import { bootstrapRoom } from './bootstrap.js';
|
|
3
3
|
import { refusedForSpace } from './durability.js';
|
|
4
|
+
import { uncaught } from './failure.js';
|
|
4
5
|
import { name, usable } from './listing.js';
|
|
5
6
|
import { NO_MODEL } from './model.js';
|
|
7
|
+
import { settle } from './queue.js';
|
|
6
8
|
import { advancement } from './refresh.js';
|
|
7
|
-
import { recoverReads
|
|
9
|
+
import { recoverReads } from './shown.js';
|
|
8
10
|
import { NO_INSTALL, } from './store.js';
|
|
9
11
|
import { unconfirmed } from './transfer.js';
|
|
10
12
|
import { ROW_WEIGHT, yielded } from './turn.js';
|
|
@@ -130,8 +132,9 @@ export function sweep({ store, socket, journal }) {
|
|
|
130
132
|
await yielded();
|
|
131
133
|
}
|
|
132
134
|
}
|
|
133
|
-
catch {
|
|
135
|
+
catch (error) {
|
|
134
136
|
journal.record('erasure failed');
|
|
137
|
+
uncaught(error);
|
|
135
138
|
}
|
|
136
139
|
finally {
|
|
137
140
|
store.device.set({ sweeping: false });
|
|
@@ -150,12 +153,6 @@ export function caughtUpTo(runtime, locator) {
|
|
|
150
153
|
export function catching(store, locator) {
|
|
151
154
|
store.installs.change(locator, (held) => ({ ...held, catching: true }));
|
|
152
155
|
}
|
|
153
|
-
export function confirmedAgain(store, locator) {
|
|
154
|
-
store.installs.change(locator, (held) => ({
|
|
155
|
-
...held,
|
|
156
|
-
confirmations: held.confirmations + 1,
|
|
157
|
-
}));
|
|
158
|
-
}
|
|
159
156
|
export function standingAt(store, locator, held) {
|
|
160
157
|
return { key: held?.key ?? null, confirmed: store.installs.of(locator).confirmations };
|
|
161
158
|
}
|
|
@@ -382,8 +379,6 @@ function staging(runtime, local, liveness, unheld) {
|
|
|
382
379
|
transfer: held,
|
|
383
380
|
underived: owed,
|
|
384
381
|
}));
|
|
385
|
-
if (before.transfer === null)
|
|
386
|
-
recoverReads(runtime);
|
|
387
382
|
installing(runtime, locator);
|
|
388
383
|
recoverReads(runtime);
|
|
389
384
|
if (owed < store.deriveBytes())
|
|
@@ -396,7 +391,9 @@ function staging(runtime, local, liveness, unheld) {
|
|
|
396
391
|
if (!liveness())
|
|
397
392
|
return null;
|
|
398
393
|
const prior = unheld === undefined ? await store.record(locator) : undefined;
|
|
399
|
-
const published = prior !== undefined && prior.replica.selection === record.selection
|
|
394
|
+
const published = prior !== undefined && prior.declaration.replica.selection === record.selection
|
|
395
|
+
? prior.key
|
|
396
|
+
: null;
|
|
400
397
|
const kept = unheld?.staged ?? (await local.held()).staged.has(locator);
|
|
401
398
|
if (published === null && !kept)
|
|
402
399
|
return { record: null, staged: new Set() };
|
|
@@ -481,21 +478,22 @@ export async function pullBootstrap(runtime, authorized, room, local, liveness,
|
|
|
481
478
|
}
|
|
482
479
|
export function publish(runtime, local, room, reached, landing, live) {
|
|
483
480
|
const { store } = runtime;
|
|
484
|
-
|
|
481
|
+
let published = true;
|
|
482
|
+
const landed = settle(runtime, [room.locator], async (held) => {
|
|
485
483
|
if (!live()) {
|
|
486
484
|
caughtUpTo(runtime, room.locator);
|
|
487
|
-
return
|
|
485
|
+
return [];
|
|
488
486
|
}
|
|
489
|
-
const
|
|
490
|
-
const prior = work.replica;
|
|
487
|
+
const prior = held.get(room.locator)?.replica;
|
|
491
488
|
if (!standsAt(store, room.locator, prior?.record, landing.from)) {
|
|
489
|
+
published = false;
|
|
492
490
|
if (landing.kind === 'refreshed') {
|
|
493
491
|
await local.unrefresh(reached.key);
|
|
494
|
-
return
|
|
492
|
+
return [];
|
|
495
493
|
}
|
|
496
494
|
caughtUpTo(runtime, room.locator);
|
|
497
495
|
await abandoned(runtime, local, room.locator);
|
|
498
|
-
return
|
|
496
|
+
return [];
|
|
499
497
|
}
|
|
500
498
|
const record = landing.kind === 'refreshed' && prior !== undefined
|
|
501
499
|
? {
|
|
@@ -504,51 +502,40 @@ export function publish(runtime, local, room, reached, landing, live) {
|
|
|
504
502
|
...(landing.remodelled ? { model: reached.model } : {}),
|
|
505
503
|
}
|
|
506
504
|
: reached;
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
}
|
|
515
|
-
: {
|
|
516
|
-
room: true,
|
|
517
|
-
view: landing.refreshed ? 'refreshed' : 'confirmed',
|
|
518
|
-
commit: {
|
|
505
|
+
return [
|
|
506
|
+
{
|
|
507
|
+
locator: room.locator,
|
|
508
|
+
record,
|
|
509
|
+
installed: landing.kind === 'refreshed'
|
|
510
|
+
? { refreshed: true }
|
|
511
|
+
: {
|
|
519
512
|
published: { from: prior?.record.key ?? null },
|
|
520
513
|
...(landing.refreshed ? { refreshed: true } : {}),
|
|
521
514
|
},
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
await runtime.unpair(local);
|
|
547
|
-
void statusShown(runtime);
|
|
548
|
-
if (landing.kind === 'bootstrapped' && work.queue.length > 0) {
|
|
549
|
-
runtime.submitLater(room.locator);
|
|
550
|
-
}
|
|
551
|
-
return true;
|
|
515
|
+
after() {
|
|
516
|
+
if (landing.kind === 'bootstrapped') {
|
|
517
|
+
runtime.socket.rooms.readied(room.locator);
|
|
518
|
+
store.installs.change(room.locator, (held) => ({
|
|
519
|
+
...transferGone(held),
|
|
520
|
+
highest: null,
|
|
521
|
+
beyondHorizon: false,
|
|
522
|
+
startedOver: null,
|
|
523
|
+
catching: false,
|
|
524
|
+
}));
|
|
525
|
+
runtime.socket.rooms.stand(room.locator, { unheldModel: null });
|
|
526
|
+
if (prior !== undefined && prior.record.key !== record.key)
|
|
527
|
+
sweep(runtime);
|
|
528
|
+
void name(runtime, room.locator);
|
|
529
|
+
}
|
|
530
|
+
usable(runtime, room);
|
|
531
|
+
},
|
|
532
|
+
},
|
|
533
|
+
];
|
|
534
|
+
}).then(() => published, (error) => {
|
|
535
|
+
if (!refusedForSpace(error))
|
|
536
|
+
throw error;
|
|
537
|
+
caughtUpTo(runtime, room.locator);
|
|
538
|
+
return published;
|
|
552
539
|
});
|
|
553
540
|
return landing.kind === 'refreshed'
|
|
554
541
|
? landed
|
package/dist/job.d.ts
CHANGED
|
@@ -1,33 +1,5 @@
|
|
|
1
|
-
type Job = {
|
|
2
|
-
readonly label: string;
|
|
3
|
-
readonly kind: 'started' | 'scheduled' | 'ended';
|
|
4
|
-
readonly state: string;
|
|
5
|
-
readonly next: string | null;
|
|
6
|
-
};
|
|
7
1
|
export type RunningJob = {
|
|
8
2
|
readonly name: string;
|
|
9
|
-
readonly running_since: string;
|
|
10
|
-
};
|
|
11
|
-
export type JobMarker = {
|
|
12
|
-
readonly said: string;
|
|
13
|
-
readonly at: string;
|
|
14
|
-
};
|
|
15
|
-
export type OpenJob<At = string | null> = {
|
|
16
|
-
readonly name: string;
|
|
17
|
-
readonly started: At;
|
|
18
3
|
};
|
|
19
|
-
export declare function
|
|
20
|
-
export declare function closeLast(open: {
|
|
21
|
-
readonly key: string;
|
|
22
|
-
}[], key: string): void;
|
|
23
|
-
export declare function markerMoved<Kept extends {
|
|
24
|
-
readonly key: string;
|
|
25
|
-
}>(open: Kept[], said: string, opened: (job: Job, key: string) => Kept | null): void;
|
|
26
|
-
export declare function openJobs<At>(markers: readonly {
|
|
27
|
-
readonly said: string;
|
|
28
|
-
readonly at: At;
|
|
29
|
-
}[]): readonly OpenJob<At>[];
|
|
30
|
-
export declare function jobsRunning(jobs: readonly RunningJob[], now: number): string[];
|
|
31
|
-
export declare function sessionEnded(jobs: readonly RunningJob[], now: number): string;
|
|
32
|
-
export {};
|
|
4
|
+
export declare function sessionEnded(jobs: readonly RunningJob[]): string;
|
|
33
5
|
//# sourceMappingURL=job.d.ts.map
|
package/dist/job.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../src/job.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../src/job.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAIF,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAIhE"}
|
package/dist/job.js
CHANGED
|
@@ -1,54 +1,7 @@
|
|
|
1
|
-
const NEXT_RUN = 'next run ';
|
|
2
|
-
const MINUTE = 60_000;
|
|
3
1
|
const ENDED = 'Session ended.';
|
|
4
|
-
export function
|
|
5
|
-
const at = said.lastIndexOf(': ');
|
|
6
|
-
const label = at === -1 ? said : said.slice(0, at);
|
|
7
|
-
const state = at === -1 ? '' : said.slice(at + 2);
|
|
8
|
-
if (state === 'running')
|
|
9
|
-
return { label, kind: 'started', state, next: null };
|
|
10
|
-
if (state === 'scheduled')
|
|
11
|
-
return { label, kind: 'scheduled', state, next: null };
|
|
12
|
-
return state.startsWith(NEXT_RUN)
|
|
13
|
-
? { label, kind: 'scheduled', state, next: state.slice(NEXT_RUN.length) }
|
|
14
|
-
: { label, kind: 'ended', state, next: null };
|
|
15
|
-
}
|
|
16
|
-
export function closeLast(open, key) {
|
|
17
|
-
const at = open.map((one) => one.key).lastIndexOf(key);
|
|
18
|
-
if (at !== -1)
|
|
19
|
-
open.splice(at, 1);
|
|
20
|
-
}
|
|
21
|
-
export function markerMoved(open, said, opened) {
|
|
22
|
-
const job = jobOf(said);
|
|
23
|
-
const started = `job\u0000${job.label}`;
|
|
24
|
-
const schedule = `schedule\u0000${job.label}`;
|
|
25
|
-
if (job.kind === 'ended')
|
|
26
|
-
closeLast(open, started);
|
|
27
|
-
if (job.kind !== 'started')
|
|
28
|
-
closeLast(open, schedule);
|
|
29
|
-
if (job.kind === 'ended')
|
|
30
|
-
return;
|
|
31
|
-
const kept = opened(job, job.kind === 'started' ? started : schedule);
|
|
32
|
-
if (kept !== null)
|
|
33
|
-
open.push(kept);
|
|
34
|
-
}
|
|
35
|
-
export function openJobs(markers) {
|
|
36
|
-
const open = [];
|
|
37
|
-
for (const { said, at } of markers) {
|
|
38
|
-
markerMoved(open, said, (job, key) => job.kind === 'started' ? { key, name: job.label, started: at } : null);
|
|
39
|
-
}
|
|
40
|
-
return open.map(({ name, started }) => ({ name, started }));
|
|
41
|
-
}
|
|
42
|
-
export function jobsRunning(jobs, now) {
|
|
43
|
-
return jobs.map((job) => {
|
|
44
|
-
const since = Date.parse(job.running_since);
|
|
45
|
-
const ran = Number.isNaN(since) ? 0 : Math.floor((now - since) / MINUTE);
|
|
46
|
-
return ran >= 1 ? `${job.name} (${ran} min)` : job.name;
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
export function sessionEnded(jobs, now) {
|
|
2
|
+
export function sessionEnded(jobs) {
|
|
50
3
|
if (jobs.length === 0)
|
|
51
4
|
return ENDED;
|
|
52
5
|
const counted = jobs.length === 1 ? '1 background job' : `${jobs.length} background jobs`;
|
|
53
|
-
return `${ENDED} ${counted} stopped: ${
|
|
6
|
+
return `${ENDED} ${counted} stopped: ${jobs.map(({ name }) => name).join(', ')}`;
|
|
54
7
|
}
|
package/dist/lifecycle.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAyN5C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,QAOhD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,QAS1C;AAED,wBAAgB,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,OAAO,QAQ9F;AAED,wBAAsB,IAAI,CAAC,OAAO,EAAE,OAAO,iBAS1C;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,QAyCtE"}
|
package/dist/lifecycle.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { submitAll } from './acceptance.js';
|
|
2
1
|
import { catchUpConversations, receiveConversationEvent, reconcileConversations, } from './conversation.js';
|
|
2
|
+
import { declared } from './declaration.js';
|
|
3
|
+
import { uncaught } from './failure.js';
|
|
3
4
|
import { catching, replaced } from './install.js';
|
|
4
5
|
import { connectionLost } from './locks.js';
|
|
5
6
|
import { fenceLive } from './lost.js';
|
|
6
7
|
import { cachedModels, revoked, settleModels } from './models.js';
|
|
7
8
|
import { refuse } from './refusal.js';
|
|
8
|
-
import { moveTo, recoverReads, rest, SERVICE_MODE_TOPIC, show, transferring } from './shown.js';
|
|
9
|
+
import { moveTo, recoverReads, rest, SERVICE_MODE_TOPIC, show, submissionDue, transferring, } from './shown.js';
|
|
9
10
|
import { applyRoom, changeAuthority, countAuthorityChange, finishOpening, loadRoom, OPENING_LANE, reload, resynchronize, sync, } from './sync.js';
|
|
10
11
|
const CONVERSATION_LANE = 'conversations';
|
|
11
12
|
function closing(runtime, opened) {
|
|
@@ -112,11 +113,12 @@ function caughtUpRooms(runtime, expired) {
|
|
|
112
113
|
if (progress.reachable) {
|
|
113
114
|
const stored = await held;
|
|
114
115
|
const owed = await reloading;
|
|
115
|
-
await settleModels(runtime, socket.rooms
|
|
116
|
+
await settleModels(runtime, new Map(socket.rooms
|
|
116
117
|
.discoveredRooms()
|
|
117
118
|
.filter((room) => stored.has(room.locator) &&
|
|
118
119
|
!expired.includes(room.locator) &&
|
|
119
|
-
!owed.includes(room.locator))
|
|
120
|
+
!owed.includes(room.locator))
|
|
121
|
+
.map((room) => [room.locator, declared(room)])), 'current', local);
|
|
120
122
|
}
|
|
121
123
|
}
|
|
122
124
|
catch {
|
|
@@ -145,7 +147,7 @@ function signalled(runtime, mode) {
|
|
|
145
147
|
store.tell(SERVICE_MODE_TOPIC, mode);
|
|
146
148
|
}
|
|
147
149
|
if (releasing)
|
|
148
|
-
|
|
150
|
+
void submissionDue(runtime);
|
|
149
151
|
}
|
|
150
152
|
async function runCurrency(runtime, live) {
|
|
151
153
|
const { socket, conversations } = runtime;
|
|
@@ -260,8 +262,9 @@ export function start(runtime, signal) {
|
|
|
260
262
|
if ((await local.facts()).capabilities.length > 0)
|
|
261
263
|
socket.readyFromStore();
|
|
262
264
|
})
|
|
263
|
-
.catch(() => {
|
|
265
|
+
.catch((error) => {
|
|
264
266
|
socket.readyFromStore();
|
|
267
|
+
uncaught(error);
|
|
265
268
|
});
|
|
266
269
|
if (!socket.streamed)
|
|
267
270
|
void sync(runtime, 'unstreamed', null);
|
package/dist/listing.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import type { HeldRooms } from '@agentshouse/mdmodel';
|
|
2
|
-
import type { DiscoveredRoom, HeldRoom, OperationScopes, ProviderRefusal, ReplicaAdmission } from './adapter.js';
|
|
2
|
+
import type { DiscoveredRoom, HeldRoom, OperationScopes, ProviderRefusal, ReplicaAdmission, RoomDeclaration } from './adapter.js';
|
|
3
3
|
import type { Composition } from './collection.js';
|
|
4
4
|
import { type ModelState, type TypesResult } from './model.js';
|
|
5
5
|
import { type PortReach } from './reach.js';
|
|
6
6
|
import type { ReplicaRecord } from './replica.js';
|
|
7
7
|
import type { Runtime } from './runtime.js';
|
|
8
|
-
import type { RoomDeclaration } from './socket.js';
|
|
9
8
|
import type { Stored } from './store.js';
|
|
10
9
|
export type AppTypedSelection = {
|
|
11
10
|
roots: readonly string[];
|
|
@@ -20,6 +19,7 @@ export type AppRoom = {
|
|
|
20
19
|
model: TypesResult;
|
|
21
20
|
typedSelection: AppTypedSelection | null;
|
|
22
21
|
providerOwnedPaths: readonly string[];
|
|
22
|
+
authoredPaths: readonly string[];
|
|
23
23
|
roomVersion: string | null;
|
|
24
24
|
documents: number;
|
|
25
25
|
synchronizationAvailable: boolean;
|
|
@@ -42,9 +42,9 @@ export declare function patchedListing(runtime: Runtime, changed: ReadonlySet<st
|
|
|
42
42
|
export declare function listingNow(runtime: Runtime): Promise<Listing>;
|
|
43
43
|
export declare function shownRooms(runtime: Runtime, listing: Listing): readonly AppRoom[];
|
|
44
44
|
export declare function roomFacts(runtime: Runtime, reach?: PortReach | null): Promise<HeldRooms>;
|
|
45
|
-
export declare function list({ store, socket }: Runtime,
|
|
45
|
+
export declare function list({ store, socket }: Runtime, locator: string, declaration: RoomDeclaration, synchronizationAvailable: boolean): void;
|
|
46
46
|
export declare function listHeld({ store, socket }: Runtime, locator: string): void;
|
|
47
|
-
export declare function admitted({ socket }: Runtime,
|
|
47
|
+
export declare function admitted({ socket }: Runtime, locator: string, declaration: RoomDeclaration): boolean;
|
|
48
48
|
export declare function readable(runtime: Runtime, room: DiscoveredRoom): void;
|
|
49
49
|
export declare function usable(runtime: Runtime, room: DiscoveredRoom): void;
|
|
50
50
|
export declare function heldRooms({ store }: Runtime, listed: readonly DiscoveredRoom[]): Promise<HeldRoom[]>;
|
package/dist/listing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listing.d.ts","sourceRoot":"","sources":["../src/listing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EACV,cAAc,EACd,QAAQ,EACR,eAAe,EACf,eAAe,EACf,gBAAgB,
|
|
1
|
+
{"version":3,"file":"listing.d.ts","sourceRoot":"","sources":["../src/listing.ts"],"names":[],"mappings":"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"}
|
package/dist/listing.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { declared } from './declaration.js';
|
|
1
2
|
import { modelTypes, NO_MODEL } from './model.js';
|
|
2
3
|
import { governs, holds } from './reach.js';
|
|
3
4
|
export function modelIn({ socket }, locator, stored) {
|
|
@@ -13,7 +14,10 @@ export function compositionFor(runtime, record) {
|
|
|
13
14
|
}
|
|
14
15
|
export function declarationOf({ socket }, locator, stored) {
|
|
15
16
|
const held = socket.rooms.declared(locator);
|
|
16
|
-
const
|
|
17
|
+
const discovered = socket.rooms.discovered(locator);
|
|
18
|
+
const room = stored?.record.declaration ??
|
|
19
|
+
held?.room ??
|
|
20
|
+
(discovered === undefined ? undefined : declared(discovered));
|
|
17
21
|
return room === undefined ? undefined : { room, available: held?.available ?? true };
|
|
18
22
|
}
|
|
19
23
|
export function listedLocators({ store, socket }, held) {
|
|
@@ -33,7 +37,7 @@ function listedRoom(runtime, locator, stored) {
|
|
|
33
37
|
if (declaration === undefined)
|
|
34
38
|
return undefined;
|
|
35
39
|
const { room, available } = declaration;
|
|
36
|
-
const selection = room.typedSelection
|
|
40
|
+
const selection = room.typedSelection;
|
|
37
41
|
return {
|
|
38
42
|
name: room.name,
|
|
39
43
|
locator,
|
|
@@ -45,6 +49,7 @@ function listedRoom(runtime, locator, stored) {
|
|
|
45
49
|
? null
|
|
46
50
|
: { roots: selection.roots, model: modelTypes(selectionModel(runtime)) },
|
|
47
51
|
providerOwnedPaths: room.providerOwnedPaths,
|
|
52
|
+
authoredPaths: room.authoredPaths,
|
|
48
53
|
roomVersion: stored?.record.roomVersion ?? null,
|
|
49
54
|
synchronizationAvailable: available,
|
|
50
55
|
refusal: runtime.socket.rooms.standing(locator).refusal,
|
|
@@ -113,34 +118,22 @@ export async function roomFacts(runtime, reach = null) {
|
|
|
113
118
|
});
|
|
114
119
|
return { listed: socket.session.now().roomsListed, rooms };
|
|
115
120
|
}
|
|
116
|
-
export function list({ store, socket },
|
|
117
|
-
if (store.fences.has(
|
|
121
|
+
export function list({ store, socket }, locator, declaration, synchronizationAvailable) {
|
|
122
|
+
if (store.fences.has(locator))
|
|
118
123
|
return;
|
|
119
|
-
socket.rooms.declare(
|
|
120
|
-
room: {
|
|
121
|
-
name: room.name,
|
|
122
|
-
locator: room.locator,
|
|
123
|
-
handle: room.handle,
|
|
124
|
-
operations: room.operations,
|
|
125
|
-
replica: room.replica,
|
|
126
|
-
typedSelection: room.typedSelection ?? null,
|
|
127
|
-
providerOwnedPaths: room.providerOwnedPaths,
|
|
128
|
-
authoredPaths: room.authoredPaths,
|
|
129
|
-
},
|
|
130
|
-
available: synchronizationAvailable,
|
|
131
|
-
});
|
|
124
|
+
socket.rooms.declare(locator, { room: declaration, available: synchronizationAvailable });
|
|
132
125
|
}
|
|
133
126
|
export function listHeld({ store, socket }, locator) {
|
|
134
127
|
if (store.fences.has(locator))
|
|
135
128
|
return;
|
|
136
129
|
socket.rooms.declare(locator, { room: null, available: false });
|
|
137
130
|
}
|
|
138
|
-
export function admitted({ socket },
|
|
139
|
-
return
|
|
131
|
+
export function admitted({ socket }, locator, declaration) {
|
|
132
|
+
return declaration.replica.admission === 'admitted' && !socket.rooms.standing(locator).unreadable;
|
|
140
133
|
}
|
|
141
134
|
export function readable(runtime, room) {
|
|
142
135
|
runtime.socket.rooms.stand(room.locator, { unreadable: false });
|
|
143
|
-
list(runtime, room, true);
|
|
136
|
+
list(runtime, room.locator, declared(room), true);
|
|
144
137
|
}
|
|
145
138
|
export function usable(runtime, room) {
|
|
146
139
|
const { rooms } = runtime.socket;
|
|
@@ -148,7 +141,7 @@ export function usable(runtime, room) {
|
|
|
148
141
|
if (rooms.standing(room.locator).unreadable) {
|
|
149
142
|
rooms.stand(room.locator, { unreadable: false, refusal: null });
|
|
150
143
|
}
|
|
151
|
-
list(runtime, room, true);
|
|
144
|
+
list(runtime, room.locator, declared(room), true);
|
|
152
145
|
}
|
|
153
146
|
export async function heldRooms({ store }, listed) {
|
|
154
147
|
const stored = await store.rooms(listed.map((room) => room.locator));
|
|
@@ -159,7 +152,7 @@ export async function heldRooms({ store }, listed) {
|
|
|
159
152
|
? [{ locator: room.locator, roomVersion: null }]
|
|
160
153
|
: [];
|
|
161
154
|
}
|
|
162
|
-
if (record.replica.selection !== room.replica.selection)
|
|
155
|
+
if (record.declaration.replica.selection !== room.replica.selection)
|
|
163
156
|
return [];
|
|
164
157
|
return [{ locator: room.locator, roomVersion: record.roomVersion }];
|
|
165
158
|
});
|
package/dist/live.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,KAAK,GAAG;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,GAAG,aAAa,CAAC;AAE7F,MAAM,MAAM,GAAG,GAAG,WAAW,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAE5E,KAAK,QAAQ,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;AAchD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IAC9B,OAAO,IAAI,IAAI,CAAC;IAChB,KAAK,CACH,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,EACzB,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,IAAI,GACX,MAAM,IAAI,CAAC;IACd,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAmCF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CA2HxF"}
|
package/dist/live.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { changeOf, digestOf, } from './observation.js';
|
|
2
|
+
import { uncaught } from './failure.js';
|
|
2
3
|
import { roomOfKey } from './rows.js';
|
|
3
4
|
function narrowed(plan) {
|
|
4
5
|
return (plan.paths !== null &&
|
|
@@ -76,7 +77,6 @@ export function createLiveQueries(run, holding) {
|
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
79
|
catch (error) {
|
|
79
|
-
entry.dirty = false;
|
|
80
80
|
const unanswered = [...entry.fresh.values()];
|
|
81
81
|
entry.fresh.clear();
|
|
82
82
|
for (const failed of unanswered)
|
|
@@ -113,8 +113,8 @@ export function createLiveQueries(run, holding) {
|
|
|
113
113
|
}
|
|
114
114
|
} while (recoverAgain && !closed);
|
|
115
115
|
}
|
|
116
|
-
catch {
|
|
117
|
-
|
|
116
|
+
catch (error) {
|
|
117
|
+
uncaught(error);
|
|
118
118
|
}
|
|
119
119
|
finally {
|
|
120
120
|
recovering = false;
|
package/dist/locks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locks.d.ts","sourceRoot":"","sources":["../src/locks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"locks.d.ts","sourceRoot":"","sources":["../src/locks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAa5C,wBAAsB,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAK1F;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAW9E;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,iBAMzE;AAED,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,cAAc,EAAE,QAOlF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAU9C;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAE7E"}
|
package/dist/locks.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { uncaught } from './failure.js';
|
|
1
2
|
import { emitRooms, LOCKS_TOPIC } from './shown.js';
|
|
2
3
|
async function offlineModes({ store, socket }) {
|
|
3
4
|
const modes = new Map();
|
|
@@ -53,7 +54,7 @@ export function connectionLost(runtime) {
|
|
|
53
54
|
void lockedRooms(runtime).then((before) => {
|
|
54
55
|
socket.rooms.standAll({ confirmed: false });
|
|
55
56
|
return relocked(runtime, before);
|
|
56
|
-
},
|
|
57
|
+
}, uncaught);
|
|
57
58
|
});
|
|
58
59
|
}
|
|
59
60
|
export function watchLocks({ store }, notify) {
|
package/dist/lost.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lost.d.ts","sourceRoot":"","sources":["../src/lost.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"lost.d.ts","sourceRoot":"","sources":["../src/lost.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAW5C,wBAAsB,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,iBAIhF;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,QAOtE;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,iBAoC5E"}
|
package/dist/lost.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { changeSet, mergeChangeSets } from './change-set.js';
|
|
2
2
|
import { ERASE_BATCH, forgetInstall } from './install.js';
|
|
3
|
-
import {
|
|
3
|
+
import { unpair } from './queue.js';
|
|
4
|
+
import { recoverReads } from './shown.js';
|
|
4
5
|
import { yielded } from './turn.js';
|
|
5
6
|
function forget({ store, socket }, locator) {
|
|
6
7
|
forgetInstall(store, locator);
|
|
@@ -54,8 +55,7 @@ export async function loseRooms(runtime, locators) {
|
|
|
54
55
|
drafts: held.filter((draft) => draft.locator === locator).map(({ path }) => path),
|
|
55
56
|
}))));
|
|
56
57
|
recoverReads(runtime);
|
|
57
|
-
statusShown(runtime);
|
|
58
58
|
}
|
|
59
|
-
await
|
|
59
|
+
await unpair(runtime);
|
|
60
60
|
await eraseFenced(runtime, fresh);
|
|
61
61
|
}
|
package/dist/media.d.ts
CHANGED
|
@@ -3,6 +3,6 @@ import { type ShownAnswer } from './outcome.js';
|
|
|
3
3
|
export declare const ROOM_MEDIA = "room-media";
|
|
4
4
|
type Show = (room: string, path: string, revision?: string) => Promise<ShownAnswer>;
|
|
5
5
|
export declare function shownBy(show: Show, client: MdRuntimeClient): MdRuntimeClient;
|
|
6
|
-
export declare function defineRoomMedia(client: Promise<MdRuntimeClient> | MdRuntimeClient
|
|
6
|
+
export declare function defineRoomMedia(client: Promise<MdRuntimeClient> | MdRuntimeClient): void;
|
|
7
7
|
export {};
|
|
8
8
|
//# sourceMappingURL=media.d.ts.map
|
package/dist/media.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3D,eAAO,MAAM,UAAU,eAAe,CAAC;AAwBvC,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAIpF,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,GAAG,eAAe,CAG5E;AAsBD,wBAAgB,eAAe,
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3D,eAAO,MAAM,UAAU,eAAe,CAAC;AAwBvC,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAIpF,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,GAAG,eAAe,CAG5E;AAsBD,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,GAAG,IAAI,CA0LxF"}
|
package/dist/media.js
CHANGED
|
@@ -37,8 +37,8 @@ function drawnFor(mediaType) {
|
|
|
37
37
|
return 'audio';
|
|
38
38
|
return null;
|
|
39
39
|
}
|
|
40
|
-
export function defineRoomMedia(client
|
|
41
|
-
if (
|
|
40
|
+
export function defineRoomMedia(client) {
|
|
41
|
+
if (customElements.get(ROOM_MEDIA) !== undefined)
|
|
42
42
|
return;
|
|
43
43
|
const connected = Promise.resolve(client);
|
|
44
44
|
class RoomMedia extends HTMLElement {
|
|
@@ -214,5 +214,5 @@ export function defineRoomMedia(client, registry = customElements) {
|
|
|
214
214
|
void this.#load();
|
|
215
215
|
}
|
|
216
216
|
}
|
|
217
|
-
|
|
217
|
+
customElements.define(ROOM_MEDIA, RoomMedia);
|
|
218
218
|
}
|