agl 40.6.0 → 41.0.1

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.
Files changed (90) hide show
  1. package/changelog.md +40 -0
  2. package/dist_serve/bundle.js +3514 -3357
  3. package/dist_serve/bundle.js.map +2 -2
  4. package/dist_serve/bundle.js.third-party-notices.json +58 -32
  5. package/dist_serve/bundle.js.third-party-notices.txt +108 -33
  6. package/dist_ts/00_commitinfo_data.js +1 -1
  7. package/dist_ts/aglapi/aglapisurface.document.js +64 -37
  8. package/dist_ts/classes.controller.d.ts +8 -0
  9. package/dist_ts/classes.controller.js +110 -22
  10. package/dist_ts/classes.controllereventdelivery.d.ts +72 -0
  11. package/dist_ts/classes.controllereventdelivery.js +233 -0
  12. package/dist_ts/classes.flexmodels.public.js +4 -1
  13. package/dist_ts/classes.flexprojectionreader.d.ts +6 -0
  14. package/dist_ts/classes.flexprojectionreader.js +29 -5
  15. package/dist_ts/classes.flexservice.d.ts +2 -1
  16. package/dist_ts/classes.flexservice.js +34 -6
  17. package/dist_ts/classes.flexstore.d.ts +41 -4
  18. package/dist_ts/classes.flexstore.js +266 -203
  19. package/dist_ts/classes.mcpreexec.js +4 -4
  20. package/dist_ts/classes.ticketnotifier.js +4 -2
  21. package/dist_ts/classes.ticketstore.d.ts +50 -2
  22. package/dist_ts/classes.ticketstore.js +195 -78
  23. package/dist_ts/classes.workercallers.d.ts +2 -0
  24. package/dist_ts/classes.workercallers.js +11 -8
  25. package/dist_ts/driver/classes.drivereventrelay.d.ts +13 -1
  26. package/dist_ts/driver/classes.drivereventrelay.js +99 -6
  27. package/dist_ts/driver/functions.driverinstructions.d.ts +1 -1
  28. package/dist_ts/driver/functions.driverinstructions.js +1 -1
  29. package/dist_ts/driver/functions.drivertools.d.ts +11 -2
  30. package/dist_ts/driver/functions.drivertools.js +19 -9
  31. package/dist_ts/fleet/classes.boardpump.d.ts +8 -2
  32. package/dist_ts/fleet/classes.boardpump.js +38 -20
  33. package/dist_ts/fleet/classes.ticketeffects.d.ts +17 -2
  34. package/dist_ts/fleet/classes.ticketeffects.js +16 -10
  35. package/dist_ts/fleet/classes.workers.d.ts +4 -0
  36. package/dist_ts/fleet/classes.workers.js +37 -17
  37. package/dist_ts/fleet/functions.workervalidation.js +2 -2
  38. package/dist_ts/functions.flexprivatesnapshot.d.ts +102 -0
  39. package/dist_ts/functions.flexprivatesnapshot.js +461 -0
  40. package/dist_ts/functions.mcptickettools.d.ts +3 -0
  41. package/dist_ts/functions.mcptickettools.js +2 -2
  42. package/dist_ts/functions.ticketcli.d.ts +1 -1
  43. package/dist_ts/functions.ticketcli.js +8 -4
  44. package/dist_ts/functions.ticketvalidation.d.ts +3 -0
  45. package/dist_ts/functions.ticketvalidation.js +7 -4
  46. package/dist_ts/functions.workerprocessproof.d.ts +12 -3
  47. package/dist_ts/functions.workerprocessproof.js +17 -6
  48. package/dist_ts/interfaces.flexipc.d.ts +21 -2
  49. package/dist_ts/interfaces.flexipc.js +33 -16
  50. package/dist_ts_interfaces/fleetworkers.d.ts +6 -0
  51. package/dist_ts_interfaces/interfaces.d.ts +1 -1
  52. package/dist_ts_interfaces/interfaces.js +1 -1
  53. package/dist_ts_interfaces/requests.tickets.d.ts +8 -12
  54. package/dist_ts_interfaces/tickets.d.ts +37 -9
  55. package/dist_ts_interfaces/tickets.js +7 -1
  56. package/package.json +7 -7
  57. package/readme.md +62 -15
  58. package/ts/00_commitinfo_data.ts +1 -1
  59. package/ts/aglapi/aglapisurface.document.ts +63 -36
  60. package/ts/classes.controller.ts +132 -32
  61. package/ts/classes.controllereventdelivery.ts +289 -0
  62. package/ts/classes.flexmodels.public.ts +10 -0
  63. package/ts/classes.flexprojectionreader.ts +30 -3
  64. package/ts/classes.flexservice.ts +33 -5
  65. package/ts/classes.flexstore.ts +381 -246
  66. package/ts/classes.mcpreexec.ts +3 -3
  67. package/ts/classes.ticketnotifier.ts +3 -1
  68. package/ts/classes.ticketstore.ts +201 -75
  69. package/ts/classes.workercallers.ts +12 -7
  70. package/ts/driver/classes.drivereventrelay.ts +89 -4
  71. package/ts/driver/functions.driverinstructions.ts +1 -1
  72. package/ts/driver/functions.drivertools.ts +22 -8
  73. package/ts/fleet/classes.boardpump.ts +51 -19
  74. package/ts/fleet/classes.ticketeffects.ts +25 -11
  75. package/ts/fleet/classes.workers.ts +28 -16
  76. package/ts/fleet/functions.workervalidation.ts +1 -1
  77. package/ts/functions.flexprivatesnapshot.ts +601 -0
  78. package/ts/functions.mcptickettools.ts +1 -1
  79. package/ts/functions.ticketcli.ts +7 -3
  80. package/ts/functions.ticketvalidation.ts +7 -3
  81. package/ts/functions.workerprocessproof.ts +17 -3
  82. package/ts/interfaces.flexipc.ts +50 -21
  83. package/ts_interfaces/fleetworkers.ts +6 -0
  84. package/ts_interfaces/interfaces.ts +1 -1
  85. package/ts_interfaces/requests.tickets.ts +9 -6
  86. package/ts_interfaces/tickets.ts +32 -1
  87. package/ts_web/00_commitinfo_data.ts +1 -1
  88. package/ts_web/elements.harnesscontrollerapp.ts +19 -8
  89. package/ts_web/elements.ticketboard.ts +16 -4
  90. package/ts_web/settings.general.ts +10 -4
@@ -0,0 +1,72 @@
1
+ import type { IControllerEvent } from '../dist_ts_interfaces/interfaces.js';
2
+ /** One authenticated browser connection that receives controller events. */
3
+ export interface IControllerEventViewer {
4
+ peerId: string;
5
+ /** Sends one event; resolves on the browser's acknowledgement, rejects on its timeout or a closed connection. */
6
+ send(eventArg: IControllerEvent): Promise<void>;
7
+ }
8
+ export interface IControllerEventDeliveryLimits {
9
+ /** Events one viewer may have waiting before its queue collapses into a resync. */
10
+ events: number;
11
+ /** Serialized bytes one viewer may have waiting before its queue collapses into a resync. */
12
+ bytes: number;
13
+ /** The largest live message delta a merge in a viewer's queue may produce. */
14
+ mergedDeltaBytes: number;
15
+ }
16
+ export interface IControllerEventDeliveryOptions {
17
+ /** The connections that receive events now; read once per batch of pushed events. */
18
+ viewers(): Promise<IControllerEventViewer[]>;
19
+ /** Events with one key carry the same state, so in a collapsed queue the newest replaces the older ones. */
20
+ eventKey(eventArg: IControllerEvent): string;
21
+ /** Merges a contiguous live message delta into the delta queued just before it, or refuses with `undefined`. */
22
+ mergeDelta(previousArg: IControllerEvent, eventArg: IControllerEvent): IControllerEvent | undefined;
23
+ limits: IControllerEventDeliveryLimits;
24
+ }
25
+ /**
26
+ * Delivers controller events to every viewer through its own bounded, ordered queue, so a viewer that acknowledges
27
+ * slowly or never delays only itself. Each viewer has at most one event in flight and receives events in push order.
28
+ *
29
+ * A viewer whose queue passes its limits is resynchronized alone, with the existing Flex queue's collapse rules:
30
+ * the queue keeps the newest event of each state key (statuses, barriers, feed and ticket revisions, settings),
31
+ * drops live tool, reasoning and text content, and ends with `sessions.changed` for each harness whose live content
32
+ * it dropped, which makes the browser re-read the conversations and the open session (live snapshots included).
33
+ * The viewer's own revision checks catch any delta that no longer fits. Should a collapsed queue still hold more
34
+ * than its event limit, each session's states fold into their harness's `sessions.changed` too, so what remains is
35
+ * one event per harness and per project or global state. The queue stays collapsed until it drains.
36
+ */
37
+ export declare class ControllerEventDelivery {
38
+ private readonly options;
39
+ private readonly queues;
40
+ private readonly fanOutQueue;
41
+ private fanOutTask?;
42
+ private sequence;
43
+ private generation;
44
+ constructor(options: IControllerEventDeliveryOptions);
45
+ /**
46
+ * Queues one event for every current viewer, in push order. Resolves once each viewer's queue holds it; it never
47
+ * waits for an acknowledgement.
48
+ */
49
+ push(eventArg: IControllerEvent): Promise<void>;
50
+ /** The events waiting for one viewer, in send order (the one in flight excluded). */
51
+ waiting(peerIdArg: string): IControllerEvent[];
52
+ /** How many times the queue of a connected viewer collapsed into a resync. */
53
+ collapseCount(peerIdArg: string): number;
54
+ /** Drops every waiting event and waits for the sends in flight; later pushes start fresh queues. */
55
+ stop(): Promise<void>;
56
+ private startFanOut;
57
+ private fanOut;
58
+ private enqueue;
59
+ private collapse;
60
+ /** Adds an event to a collapsed queue: the newest of its state, or a resync of its harness for live content. */
61
+ private absorb;
62
+ /**
63
+ * A collapsed queue that still holds more states than its limit keeps only what is not about one session: each
64
+ * session's states become their harness's `sessions.changed`, whose re-read covers the open session and the list.
65
+ */
66
+ private foldSessions;
67
+ private resyncHarness;
68
+ /** Puts an event last under its key, replacing an older one with that key. */
69
+ private place;
70
+ private startSending;
71
+ private send;
72
+ }
@@ -0,0 +1,233 @@
1
+ const isLiveEvent = (eventArg) => Boolean(eventArg.toolExecution
2
+ || eventArg.reasoningUpdate
3
+ || eventArg.reasoningDelta
4
+ || eventArg.textUpdate
5
+ || eventArg.textDelta);
6
+ /** The live stream content in one event, which only a delta's own successor or a re-read can replace. */
7
+ const isMessageDelta = (eventArg) => Boolean(eventArg.reasoningDelta || eventArg.textDelta);
8
+ /**
9
+ * Delivers controller events to every viewer through its own bounded, ordered queue, so a viewer that acknowledges
10
+ * slowly or never delays only itself. Each viewer has at most one event in flight and receives events in push order.
11
+ *
12
+ * A viewer whose queue passes its limits is resynchronized alone, with the existing Flex queue's collapse rules:
13
+ * the queue keeps the newest event of each state key (statuses, barriers, feed and ticket revisions, settings),
14
+ * drops live tool, reasoning and text content, and ends with `sessions.changed` for each harness whose live content
15
+ * it dropped, which makes the browser re-read the conversations and the open session (live snapshots included).
16
+ * The viewer's own revision checks catch any delta that no longer fits. Should a collapsed queue still hold more
17
+ * than its event limit, each session's states fold into their harness's `sessions.changed` too, so what remains is
18
+ * one event per harness and per project or global state. The queue stays collapsed until it drains.
19
+ */
20
+ export class ControllerEventDelivery {
21
+ options;
22
+ queues = new Map();
23
+ fanOutQueue = [];
24
+ fanOutTask;
25
+ sequence = 0;
26
+ generation = 0;
27
+ constructor(options) {
28
+ this.options = options;
29
+ }
30
+ /**
31
+ * Queues one event for every current viewer, in push order. Resolves once each viewer's queue holds it; it never
32
+ * waits for an acknowledgement.
33
+ */
34
+ push(eventArg) {
35
+ const item = {
36
+ event: eventArg,
37
+ bytes: Buffer.byteLength(JSON.stringify(eventArg), 'utf8'),
38
+ };
39
+ return new Promise((resolve) => {
40
+ this.fanOutQueue.push({ item, delivered: resolve });
41
+ this.startFanOut();
42
+ });
43
+ }
44
+ /** The events waiting for one viewer, in send order (the one in flight excluded). */
45
+ waiting(peerIdArg) {
46
+ return [...(this.queues.get(peerIdArg)?.events.values() ?? [])].map((itemArg) => itemArg.event);
47
+ }
48
+ /** How many times the queue of a connected viewer collapsed into a resync. */
49
+ collapseCount(peerIdArg) {
50
+ return this.queues.get(peerIdArg)?.collapses ?? 0;
51
+ }
52
+ /** Drops every waiting event and waits for the sends in flight; later pushes start fresh queues. */
53
+ async stop() {
54
+ this.generation += 1;
55
+ const sending = [];
56
+ for (const queue of this.queues.values()) {
57
+ queue.removed = true;
58
+ queue.events.clear();
59
+ queue.bytes = 0;
60
+ if (queue.sending)
61
+ sending.push(queue.sending);
62
+ }
63
+ this.queues.clear();
64
+ if (this.fanOutTask)
65
+ sending.push(this.fanOutTask);
66
+ await Promise.allSettled(sending);
67
+ }
68
+ startFanOut() {
69
+ if (this.fanOutTask)
70
+ return;
71
+ const task = this.fanOut().finally(() => {
72
+ if (this.fanOutTask === task)
73
+ this.fanOutTask = undefined;
74
+ if (this.fanOutQueue.length > 0)
75
+ this.startFanOut();
76
+ });
77
+ this.fanOutTask = task;
78
+ }
79
+ async fanOut() {
80
+ while (this.fanOutQueue.length > 0) {
81
+ const batch = this.fanOutQueue.splice(0);
82
+ const generation = this.generation;
83
+ let viewers = [];
84
+ try {
85
+ viewers = await this.options.viewers();
86
+ }
87
+ catch {
88
+ // No viewer can be named now; the events reach none, as a push without connections.
89
+ }
90
+ if (generation === this.generation) {
91
+ const current = new Set(viewers.map((viewerArg) => viewerArg.peerId));
92
+ for (const [peerId, queue] of this.queues) {
93
+ if (current.has(peerId))
94
+ continue;
95
+ queue.removed = true;
96
+ queue.events.clear();
97
+ queue.bytes = 0;
98
+ this.queues.delete(peerId);
99
+ }
100
+ for (const viewer of viewers) {
101
+ let queue = this.queues.get(viewer.peerId);
102
+ if (!queue) {
103
+ queue = { viewer, events: new Map(), bytes: 0, collapsed: false, removed: false, collapses: 0 };
104
+ this.queues.set(viewer.peerId, queue);
105
+ }
106
+ queue.viewer = viewer;
107
+ for (const pending of batch)
108
+ this.enqueue(queue, pending.item);
109
+ this.startSending(queue);
110
+ }
111
+ }
112
+ for (const pending of batch)
113
+ pending.delivered();
114
+ }
115
+ }
116
+ enqueue(queueArg, itemArg) {
117
+ if (queueArg.collapsed) {
118
+ this.absorb(queueArg, itemArg);
119
+ return;
120
+ }
121
+ if (isMessageDelta(itemArg.event) && queueArg.tailKey !== undefined) {
122
+ const tailKey = queueArg.tailKey;
123
+ const tail = queueArg.events.get(tailKey);
124
+ if (tail !== undefined
125
+ && isMessageDelta(tail.event)
126
+ && tail.bytes + itemArg.bytes <= this.options.limits.mergedDeltaBytes) {
127
+ const merged = this.options.mergeDelta(tail.event, itemArg.event);
128
+ if (merged) {
129
+ queueArg.events.set(tailKey, { event: merged, bytes: tail.bytes + itemArg.bytes });
130
+ queueArg.bytes += itemArg.bytes;
131
+ if (queueArg.bytes > this.options.limits.bytes)
132
+ this.collapse(queueArg);
133
+ return;
134
+ }
135
+ }
136
+ }
137
+ if (queueArg.events.size + 1 > this.options.limits.events
138
+ || queueArg.bytes + itemArg.bytes > this.options.limits.bytes) {
139
+ this.collapse(queueArg);
140
+ this.absorb(queueArg, itemArg);
141
+ return;
142
+ }
143
+ this.sequence += 1;
144
+ queueArg.tailKey = `#${this.sequence}`;
145
+ queueArg.events.set(queueArg.tailKey, itemArg);
146
+ queueArg.bytes += itemArg.bytes;
147
+ }
148
+ collapse(queueArg) {
149
+ const dropped = [...queueArg.events.values()];
150
+ queueArg.events.clear();
151
+ queueArg.tailKey = undefined;
152
+ queueArg.bytes = 0;
153
+ queueArg.collapsed = true;
154
+ queueArg.collapses += 1;
155
+ for (const item of dropped)
156
+ this.absorb(queueArg, item);
157
+ }
158
+ /** Adds an event to a collapsed queue: the newest of its state, or a resync of its harness for live content. */
159
+ absorb(queueArg, itemArg) {
160
+ if (isLiveEvent(itemArg.event)) {
161
+ this.resyncHarness(queueArg, itemArg.event);
162
+ }
163
+ else {
164
+ this.place(queueArg, `state\0${this.options.eventKey(itemArg.event)}`, itemArg);
165
+ }
166
+ if (queueArg.events.size > this.options.limits.events)
167
+ this.foldSessions(queueArg);
168
+ }
169
+ /**
170
+ * A collapsed queue that still holds more states than its limit keeps only what is not about one session: each
171
+ * session's states become their harness's `sessions.changed`, whose re-read covers the open session and the list.
172
+ */
173
+ foldSessions(queueArg) {
174
+ for (const [key, item] of [...queueArg.events]) {
175
+ if (!key.startsWith('state\0') || item.event.sessionId === undefined)
176
+ continue;
177
+ queueArg.events.delete(key);
178
+ queueArg.bytes -= item.bytes;
179
+ this.resyncHarness(queueArg, item.event);
180
+ }
181
+ }
182
+ resyncHarness(queueArg, eventArg) {
183
+ const harnessId = eventArg.harnessId;
184
+ const event = {
185
+ type: 'sessions.changed',
186
+ ...(harnessId === undefined ? {} : { harnessId }),
187
+ timestamp: eventArg.timestamp,
188
+ };
189
+ this.place(queueArg, `resync\0${harnessId ?? ''}`, { event, bytes: Buffer.byteLength(JSON.stringify(event), 'utf8') });
190
+ }
191
+ /** Puts an event last under its key, replacing an older one with that key. */
192
+ place(queueArg, keyArg, itemArg) {
193
+ const replaced = queueArg.events.get(keyArg);
194
+ if (replaced) {
195
+ queueArg.events.delete(keyArg);
196
+ queueArg.bytes -= replaced.bytes;
197
+ }
198
+ queueArg.events.set(keyArg, itemArg);
199
+ queueArg.bytes += itemArg.bytes;
200
+ }
201
+ startSending(queueArg) {
202
+ if (queueArg.sending || queueArg.events.size === 0)
203
+ return;
204
+ const task = this.send(queueArg).finally(() => {
205
+ if (queueArg.sending === task)
206
+ queueArg.sending = undefined;
207
+ if (!queueArg.removed && queueArg.events.size > 0)
208
+ this.startSending(queueArg);
209
+ });
210
+ queueArg.sending = task;
211
+ }
212
+ async send(queueArg) {
213
+ while (!queueArg.removed) {
214
+ const next = queueArg.events.entries().next().value;
215
+ if (!next)
216
+ return;
217
+ queueArg.events.delete(next[0]);
218
+ queueArg.bytes -= next[1].bytes;
219
+ if (queueArg.tailKey === next[0])
220
+ queueArg.tailKey = undefined;
221
+ if (queueArg.events.size === 0)
222
+ queueArg.collapsed = false;
223
+ try {
224
+ await queueArg.viewer.send(next[1].event);
225
+ }
226
+ catch {
227
+ // As before: a viewer that does not acknowledge in time misses nothing it already received, and a closed
228
+ // connection leaves the viewer set at the next push.
229
+ }
230
+ }
231
+ }
232
+ }
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jb250cm9sbGVyZXZlbnRkZWxpdmVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2NsYXNzZXMuY29udHJvbGxlcmV2ZW50ZGVsaXZlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0RBLE1BQU0sV0FBVyxHQUFHLENBQUMsUUFBMEIsRUFBVyxFQUFFLENBQUMsT0FBTyxDQUNsRSxRQUFRLENBQUMsYUFBYTtPQUNuQixRQUFRLENBQUMsZUFBZTtPQUN4QixRQUFRLENBQUMsY0FBYztPQUN2QixRQUFRLENBQUMsVUFBVTtPQUNuQixRQUFRLENBQUMsU0FBUyxDQUN0QixDQUFDO0FBRUYseUdBQXlHO0FBQ3pHLE1BQU0sY0FBYyxHQUFHLENBQUMsUUFBMEIsRUFBVyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRXZIOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQU9MLE9BQU87SUFObkIsTUFBTSxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO0lBQ3pDLFdBQVcsR0FBcUIsRUFBRSxDQUFDO0lBQzVDLFVBQVUsQ0FBaUI7SUFDM0IsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNiLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFFdkIsWUFBNkIsT0FBd0M7dUJBQXhDLE9BQU87SUFBb0MsQ0FBQztJQUV6RTs7O09BR0c7SUFDSSxJQUFJLENBQUMsUUFBMEI7UUFDcEMsTUFBTSxJQUFJLEdBQTJCO1lBQ25DLEtBQUssRUFBRSxRQUFRO1lBQ2YsS0FBSyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLENBQUM7U0FDM0QsQ0FBQztRQUNGLE9BQU8sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFD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
@@ -579,6 +579,9 @@ let FlexPublicSessionRecordModel = (() => {
579
579
  let _classDecorators = [plugins.nosqldb.compoundIndex({
580
580
  name: 'flex_public_session_scope_purge',
581
581
  key: { controllerId: 1, scopeId: 1, id: 1 },
582
+ }), plugins.nosqldb.compoundIndex({
583
+ name: 'flex_public_session_lookup',
584
+ key: { controllerId: 1, scopeId: 1, 'session.sessionId': 1 },
582
585
  }), plugins.nosqldb.managed({ collectionName: flexPublicSessionsCollectionName })];
583
586
  let _classDescriptor;
584
587
  let _classExtraInitializers = [];
@@ -1076,4 +1079,4 @@ export const initFlexPublicModels = async () => {
1076
1079
  await FlexProjectionSourceModel.init();
1077
1080
  await FlexProjectionMessageRecordModel.init();
1078
1081
  };
1079
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5mbGV4bW9kZWxzLnB1YmxpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2NsYXNzZXMuZmxleG1vZGVscy5wdWJsaWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsR0FDcEIsTUFBTSx5QkFBeUIsQ0FBQztBQUtqQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUM7QUFDM0MsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDO0FBQzNDLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQzVELE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFDNUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztBQUNuRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7QUF5S3RDLE1BQU0sYUFBYSxHQUFHLGlCQUFpQixDQUFDO0FBQ3hDLE1BQU0sa0JBQWtCLEdBQUcsc0JBQXNCLENBQUM7QUFFbEQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUFpQixFQUFFLGVBQXVCLEVBQXNCLEVBQUUsQ0FDekYsT0FBTyxRQUFRLEtBQUssUUFBUTtPQUN6QixRQUFRLENBQUMsTUFBTSxHQUFHLENBQUM7T0FDbkIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksZUFBZSxDQUFDO0FBRTVELE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxRQUFpQixFQUFzQixFQUFFLENBQ3JFLE1BQU0sQ0FBQyxhQUFh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
1082
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5mbGV4bW9kZWxzLnB1YmxpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2NsYXNzZXMuZmxleG1vZGVscy5wdWJsaWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsR0FDcEIsTUFBTSx5QkFBeUIsQ0FBQztBQUtqQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUM7QUFDM0MsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDO0FBQzNDLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQzVELE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFDNUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztBQUNuRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7QUF5S3RDLE1BQU0sYUFBYSxHQUFHLGlCQUFpQixDQUFDO0FBQ3hDLE1BQU0sa0JBQWtCLEdBQUcsc0JBQXNCLENBQUM7QUFFbEQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUFpQixFQUFFLGVBQXVCLEVBQXNCLEVBQUUsQ0FDekYsT0FBTyxRQUFRLEtBQUssUUFBUTtPQUN6QixRQUFRLENBQUMsTUFBTSxHQUFHLENBQUM7T0FDbkIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksZUFBZSxDQUFDO0FBRTVELE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxRQUFpQixFQUFzQixFQUFFLENBQ3JFLE1BQU0sQ0FBQyxhQUFh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
@@ -78,6 +78,12 @@ export declare class FlexProjectionReader {
78
78
  private loadHead;
79
79
  private loadCandidate;
80
80
  private loadSessionRecords;
81
+ /**
82
+ * The record the selected publication lists for one session: looked up through the session
83
+ * index among the records the publication lists, so it reads that session's records only, and
84
+ * proven against its manifest.
85
+ */
86
+ private loadSessionRecord;
81
87
  /**
82
88
  * The transcript the selected publication names for a session, proven by its id; a session
83
89
  * without messages has none.