@procedures/client 0.15.0 → 0.16.0
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/CHANGELOG.md +91 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/adapters/http/server/handler.d.ts.map +1 -1
- package/dist/adapters/http/server/handler.js +5 -3
- package/dist/adapters/http/server/handler.js.map +1 -1
- package/dist/browser.d.ts +3 -2
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +1 -1
- package/dist/browser.js.map +1 -1
- package/dist/client/errors/registry.d.ts.map +1 -1
- package/dist/client/errors/registry.js +12 -0
- package/dist/client/errors/registry.js.map +1 -1
- package/dist/client/middleware/rate-limit.d.ts +17 -0
- package/dist/client/middleware/rate-limit.d.ts.map +1 -1
- package/dist/client/middleware/rate-limit.js +94 -39
- package/dist/client/middleware/rate-limit.js.map +1 -1
- package/dist/events/index.d.ts +1 -0
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js.map +1 -1
- package/dist/events/publisher.d.ts +50 -5
- package/dist/events/publisher.d.ts.map +1 -1
- package/dist/events/publisher.js +99 -10
- package/dist/events/publisher.js.map +1 -1
- package/dist/events/recheck.d.ts +84 -0
- package/dist/events/recheck.d.ts.map +1 -0
- package/dist/events/recheck.js +135 -0
- package/dist/events/recheck.js.map +1 -0
- package/dist/procedures/collection/changes.d.ts +9 -8
- package/dist/procedures/collection/changes.d.ts.map +1 -1
- package/dist/procedures/collection/changes.js +11 -11
- package/dist/procedures/collection/changes.js.map +1 -1
- package/dist/procedures/collection/index.d.ts +1 -0
- package/dist/procedures/collection/index.d.ts.map +1 -1
- package/dist/procedures/collection/index.js +2 -0
- package/dist/procedures/collection/index.js.map +1 -1
- package/dist/procedures/collection/partition.d.ts +4 -23
- package/dist/procedures/collection/partition.d.ts.map +1 -1
- package/dist/procedures/collection/partition.js +2 -28
- package/dist/procedures/collection/partition.js.map +1 -1
- package/dist/procedures/collection/topic.d.ts +86 -0
- package/dist/procedures/collection/topic.d.ts.map +1 -0
- package/dist/procedures/collection/topic.js +94 -0
- package/dist/procedures/collection/topic.js.map +1 -0
- package/dist/procedures/index.d.ts +1 -1
- package/dist/procedures/index.d.ts.map +1 -1
- package/dist/procedures/index.js +1 -1
- package/dist/procedures/index.js.map +1 -1
- package/dist/protocol.d.ts +1 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +1 -0
- package/dist/protocol.js.map +1 -1
- package/dist/server/host-policy.d.ts +17 -0
- package/dist/server/host-policy.d.ts.map +1 -1
- package/dist/server/host-policy.js +7 -0
- package/dist/server/host-policy.js.map +1 -1
- package/dist/server/limits.d.ts +122 -0
- package/dist/server/limits.d.ts.map +1 -0
- package/dist/server/limits.js +153 -0
- package/dist/server/limits.js.map +1 -0
- package/dist/server/procedure-server.d.ts +35 -3
- package/dist/server/procedure-server.d.ts.map +1 -1
- package/dist/server/procedure-server.js +42 -8
- package/dist/server/procedure-server.js.map +1 -1
- package/dist/server/request-auth.d.ts +5 -1
- package/dist/server/request-auth.d.ts.map +1 -1
- package/dist/server/request-auth.js +19 -2
- package/dist/server/request-auth.js.map +1 -1
- package/package.json +3 -3
- package/src/adapters/http/server/handler.ts +5 -3
- package/src/browser.ts +5 -0
- package/src/client/errors/registry.ts +13 -0
- package/src/client/middleware/rate-limit.ts +116 -41
- package/src/events/index.ts +1 -0
- package/src/events/publisher.ts +121 -12
- package/src/events/recheck.ts +182 -0
- package/src/procedures/collection/changes.ts +12 -11
- package/src/procedures/collection/index.ts +2 -0
- package/src/procedures/collection/partition.ts +5 -27
- package/src/procedures/collection/topic.ts +115 -0
- package/src/procedures/index.ts +1 -0
- package/src/protocol.ts +3 -1
- package/src/server/host-policy.ts +22 -0
- package/src/server/limits.ts +254 -0
- package/src/server/procedure-server.ts +59 -9
- package/src/server/request-auth.ts +19 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../src/client/middleware/rate-limit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../src/client/middleware/rate-limit.ts"],"names":[],"mappings":"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"}
|
package/dist/events/index.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export { DefaultEventBus } from "./bus.js";
|
|
|
32
32
|
export { createEventBus, createTypedEventBus, getGlobalEventBus, resetGlobalEventBus, withEventBusSignal, } from "./bus.js";
|
|
33
33
|
export { EventPublisher, topicMatcher, MAX_SUBSCRIPTION_TOPICS, MAX_TOPIC_LENGTH } from "./publisher.js";
|
|
34
34
|
export type { EventPublisherOptions, TopicRule, TopicCall } from "./publisher.js";
|
|
35
|
+
export type { RightsChange, SubscriptionRecheck } from "./recheck.js";
|
|
35
36
|
export { EVENTS_SUBSCRIBE_PATH, SubscriptionError, remoteEvents, subscribeRemote } from "./remote.js";
|
|
36
37
|
export type { EventItem, EventTransport, RemoteEvent, RemoteEventHandler, RemoteEventsOptions, ResubscribeBackoff, SubscribeInput, SubscribeOptions, Subscription, SubscriptionHooks, } from "./remote.js";
|
|
37
38
|
export { createChannelPrefix, forwardChannel, mergeChannels, filterChannel, mapChannel, debounceChannel, throttleChannel, } from "./bus.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,YAAY,EACV,KAAK,EACL,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,aAAa,EACb,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACzG,YAAY,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtG,YAAY,EACV,SAAS,EACT,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,YAAY,EACV,KAAK,EACL,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,aAAa,EACb,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACzG,YAAY,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAClF,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtG,YAAY,EACV,SAAS,EACT,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/events/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAkBH,iBAAiB;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,oBAAoB;AACpB,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAElB,4FAA4F;AAC5F,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAkBH,iBAAiB;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,oBAAoB;AACpB,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAElB,4FAA4F;AAC5F,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGzG,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AActG,YAAY;AACZ,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,eAAe,GAChB,MAAM,UAAU,CAAC"}
|
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
*
|
|
19
19
|
* - A value with rows (`withRows()`) reaches each subscriber through the output filter of its host
|
|
20
20
|
* (`ctx.admit`): each row passes the filter, and the subscriber gets only the admitted rows.
|
|
21
|
+
* - An open subscription gets the same checks again at a change of the rights (`rightsChanged()`,
|
|
22
|
+
* `recheck.rightsChanges`) and after `recheck.maxAge` (roadmap CLI-44). A refusal ends it.
|
|
21
23
|
*
|
|
22
24
|
* The delivery is at most once. The queue of a subscription holds at most `buffer` events. When
|
|
23
25
|
* it is full, the publisher drops the oldest event, and the next event tells the number of lost
|
|
@@ -26,6 +28,8 @@
|
|
|
26
28
|
import type { AnyProcedure, Capability } from "../procedures/types.js";
|
|
27
29
|
import type { Principal } from "../server/types.js";
|
|
28
30
|
import type { EventBus } from "./types.js";
|
|
31
|
+
import { type Clock } from "../clock.js";
|
|
32
|
+
import { type RightsChange, type SubscriptionRecheck } from "./recheck.js";
|
|
29
33
|
/** The number of topics that one subscription can name. */
|
|
30
34
|
export declare const MAX_SUBSCRIPTION_TOPICS = 64;
|
|
31
35
|
/** The number of characters of a topic name. */
|
|
@@ -58,7 +62,8 @@ export interface EventPublisherOptions {
|
|
|
58
62
|
allow?: ((topic: string, call: TopicCall) => boolean) | undefined;
|
|
59
63
|
/**
|
|
60
64
|
* The number of events that one subscription holds for a slow subscriber. When the queue is
|
|
61
|
-
* full, the publisher drops the oldest event.
|
|
65
|
+
* full, the publisher drops the oldest event. The events that wait for a re-check (roadmap
|
|
66
|
+
* CLI-44) are in the same queue, so a slow check holds at most this number of events too.
|
|
62
67
|
* @default 1024
|
|
63
68
|
*/
|
|
64
69
|
buffer?: number | undefined;
|
|
@@ -71,9 +76,26 @@ export interface EventPublisherOptions {
|
|
|
71
76
|
* collection that the publisher listens to: the collection of `collectionTopicTarget(topic,
|
|
72
77
|
* repository)` with the repository of the host. A function that reads the first part of the
|
|
73
78
|
* topic alone checks `collection:a` for the dotted collection `a.b`.
|
|
74
|
-
* @default the read of the collection of `collectionTopicTarget()`, with the repository of the call
|
|
79
|
+
* @default `collectionTopicReads(topic, repository)`: the read of the collection of `collectionTopicTarget()`, with the repository of the call
|
|
75
80
|
*/
|
|
76
81
|
reads?: ((topic: string) => readonly string[]) | undefined;
|
|
82
|
+
/**
|
|
83
|
+
* The clock of the re-check after `recheck.maxAge` (roadmap CLI-44). A test gives the
|
|
84
|
+
* `fakeClock` of `@mark1russell7/service/testing`. A `ProcedureServer` gives its own clock to the
|
|
85
|
+
* publisher that it makes from its option `events`.
|
|
86
|
+
* @default the clock of the platform
|
|
87
|
+
*/
|
|
88
|
+
clock?: Clock | undefined;
|
|
89
|
+
/**
|
|
90
|
+
* The re-check of the admission of each open subscription (roadmap CLI-44). A right can change
|
|
91
|
+
* after the start of a subscription. The publisher then examines the subscription again with the
|
|
92
|
+
* same checks: the topic rule, the reads, `allow` and the partition. A refusal ends it, for
|
|
93
|
+
* example with `FORBIDDEN`. `maxAge` starts a check after a time on the clock, and
|
|
94
|
+
* `rightsChanges` starts a check at each change from a source of the app. `rightsChanged()` also
|
|
95
|
+
* starts a check.
|
|
96
|
+
* @default no check after the start, other than at a call of `rightsChanged()`
|
|
97
|
+
*/
|
|
98
|
+
recheck?: SubscriptionRecheck | undefined;
|
|
77
99
|
}
|
|
78
100
|
/** This function gives the test of a topic rule. */
|
|
79
101
|
export declare function topicMatcher(rule: TopicRule): (topic: string) => boolean;
|
|
@@ -100,6 +122,8 @@ export declare class EventPublisher {
|
|
|
100
122
|
private readonly defaultReads;
|
|
101
123
|
private readonly buffer;
|
|
102
124
|
private readonly open;
|
|
125
|
+
/** The re-checks of the admission of the open subscriptions (roadmap CLI-44) */
|
|
126
|
+
private readonly rechecks;
|
|
103
127
|
constructor(options: EventPublisherOptions);
|
|
104
128
|
/** This function publishes an event on the bus: each subscription of the topic gets it. */
|
|
105
129
|
publish<T>(topic: string, data: T): void;
|
|
@@ -110,6 +134,15 @@ export declare class EventPublisher {
|
|
|
110
134
|
* A subscriber resubscribes after its backoff. `ProcedureServer.stop()` calls it first.
|
|
111
135
|
*/
|
|
112
136
|
end(): void;
|
|
137
|
+
/**
|
|
138
|
+
* This function tells the publisher that rights changed (roadmap CLI-44). Each open subscription
|
|
139
|
+
* that the change touches gets the checks of its start again: the topic rule, the reads, `allow`
|
|
140
|
+
* and the partition. Its events wait for the check. A refusal ends the subscription with its
|
|
141
|
+
* error, for example `FORBIDDEN`. The promise ends when each check ends, and it does not reject.
|
|
142
|
+
*
|
|
143
|
+
* @param change - The subscriptions that the change touches. Without it, each open subscription gets a check.
|
|
144
|
+
*/
|
|
145
|
+
rightsChanged(change?: RightsChange): Promise<void>;
|
|
113
146
|
/**
|
|
114
147
|
* The topic of the bus for a topic of a subscriber (roadmap CLI-17). A topic of a partitioned
|
|
115
148
|
* collection names the partition that the subscriber asks for, as the input of a procedure does:
|
|
@@ -118,11 +151,23 @@ export declare class EventPublisher {
|
|
|
118
151
|
*/
|
|
119
152
|
private busTopic;
|
|
120
153
|
/**
|
|
121
|
-
* The resources that a subscriber of a topic reads. The default reads
|
|
122
|
-
* topic with the rule of the listener (`collectionTopicTarget`)
|
|
123
|
-
* listener name the same collection.
|
|
154
|
+
* The resources that a subscriber of a topic reads. The default (`collectionTopicReads`) reads
|
|
155
|
+
* the collection of the topic with the rule of the listener (`collectionTopicTarget`) and the
|
|
156
|
+
* repository of the call, so the read check and the listener name the same collection.
|
|
124
157
|
*/
|
|
125
158
|
private readsOf;
|
|
159
|
+
/**
|
|
160
|
+
* The checks of the topics of a call: the topic rule, the reads of the capability and `allow`.
|
|
161
|
+
* A subscription passes them at its start and at each re-check (roadmap CLI-44).
|
|
162
|
+
*/
|
|
163
|
+
private admitTopics;
|
|
164
|
+
/**
|
|
165
|
+
* The admission of an open subscription again (roadmap CLI-44): the checks of its start, and the
|
|
166
|
+
* partition of each topic. A refusal of the resolver throws its error. A topic whose partition
|
|
167
|
+
* changed throws `FORBIDDEN` (reason `partition-not-allowed`), because the listener has the old
|
|
168
|
+
* partition.
|
|
169
|
+
*/
|
|
170
|
+
private readmit;
|
|
126
171
|
/**
|
|
127
172
|
* The stream of one subscription. The publisher examines each topic before it adds a listener:
|
|
128
173
|
* the topic rule, the reads, `allow`, and the partition. A call with one bad topic makes no subscription.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../src/events/publisher.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../src/events/publisher.ts"],"names":[],"mappings":"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"}
|
package/dist/events/publisher.js
CHANGED
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
*
|
|
19
19
|
* - A value with rows (`withRows()`) reaches each subscriber through the output filter of its host
|
|
20
20
|
* (`ctx.admit`): each row passes the filter, and the subscriber gets only the admitted rows.
|
|
21
|
+
* - An open subscription gets the same checks again at a change of the rights (`rightsChanged()`,
|
|
22
|
+
* `recheck.rightsChanges`) and after `recheck.maxAge` (roadmap CLI-44). A refusal ends it.
|
|
21
23
|
*
|
|
22
24
|
* The delivery is at most once. The queue of a subscription holds at most `buffer` events. When
|
|
23
25
|
* it is full, the publisher drops the oldest event, and the next event tells the number of lost
|
|
@@ -32,6 +34,8 @@ import { collectionTopicTarget, partitionOfCall } from "../procedures/collection
|
|
|
32
34
|
import { getGlobalEventBus } from "./bus.js";
|
|
33
35
|
import { EVENTS_SUBSCRIBE_PATH } from "./remote.js";
|
|
34
36
|
import { admittedValue, rowsOf } from "./rows.js";
|
|
37
|
+
import { realClock } from "../clock.js";
|
|
38
|
+
import { SubscriptionRechecks } from "./recheck.js";
|
|
35
39
|
/** The number of topics that one subscription can name. */
|
|
36
40
|
export const MAX_SUBSCRIPTION_TOPICS = 64;
|
|
37
41
|
/** The number of characters of a topic name. */
|
|
@@ -111,6 +115,10 @@ class TopicSubscription {
|
|
|
111
115
|
closed = false;
|
|
112
116
|
failure;
|
|
113
117
|
unsubscribes;
|
|
118
|
+
/** The re-check of the admission that runs (roadmap CLI-44). The events wait for it. */
|
|
119
|
+
recheck;
|
|
120
|
+
/** The functions that run when the subscription ends */
|
|
121
|
+
endListeners = [];
|
|
114
122
|
constructor(bus,
|
|
115
123
|
/** The topics of the subscriber, each with the topic of the bus that it listens to */
|
|
116
124
|
routes, buffer, signal, onClose,
|
|
@@ -141,7 +149,7 @@ class TopicSubscription {
|
|
|
141
149
|
return;
|
|
142
150
|
const event = { type: "event", topic, data, seq: ++this.seq };
|
|
143
151
|
const waiter = this.waiter;
|
|
144
|
-
if (waiter && this.queue.length === 0) {
|
|
152
|
+
if (waiter && this.queue.length === 0 && !this.recheck) {
|
|
145
153
|
this.waiter = undefined;
|
|
146
154
|
waiter.resolve(this.deliver(event));
|
|
147
155
|
return;
|
|
@@ -178,6 +186,9 @@ class TopicSubscription {
|
|
|
178
186
|
this.confirmation = undefined;
|
|
179
187
|
return Promise.resolve({ value: confirmation, done: false });
|
|
180
188
|
}
|
|
189
|
+
// The events wait for a re-check of the admission (roadmap CLI-44)
|
|
190
|
+
if (this.recheck)
|
|
191
|
+
return this.recheck.then(() => this.next());
|
|
181
192
|
const event = this.queue.shift();
|
|
182
193
|
if (event)
|
|
183
194
|
return this.deliver(event);
|
|
@@ -236,8 +247,50 @@ class TopicSubscription {
|
|
|
236
247
|
unsubscribe();
|
|
237
248
|
this.signal?.removeEventListener("abort", this.onAbort);
|
|
238
249
|
this.onClose(this);
|
|
250
|
+
for (const listener of this.endListeners.splice(0))
|
|
251
|
+
listener();
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* This function holds the events until the check ends (roadmap CLI-44). A check that passes gives
|
|
255
|
+
* the held events to the reader. A check that fails ends the subscription with its error, and the
|
|
256
|
+
* held events go. The promise ends when the check ends, and it does not reject.
|
|
257
|
+
*/
|
|
258
|
+
hold(check) {
|
|
259
|
+
if (this.closed)
|
|
260
|
+
return check.then(ignore, ignore);
|
|
261
|
+
const running = check.then(() => {
|
|
262
|
+
if (this.recheck === running)
|
|
263
|
+
this.recheck = undefined;
|
|
264
|
+
this.flush();
|
|
265
|
+
}, (error) => {
|
|
266
|
+
if (this.recheck === running)
|
|
267
|
+
this.recheck = undefined;
|
|
268
|
+
this.queue.length = 0;
|
|
269
|
+
this.fail(error);
|
|
270
|
+
});
|
|
271
|
+
this.recheck = running;
|
|
272
|
+
return running;
|
|
273
|
+
}
|
|
274
|
+
/** This function runs the listener when the subscription ends, or at once after its end. */
|
|
275
|
+
onEnd(listener) {
|
|
276
|
+
if (this.closed)
|
|
277
|
+
listener();
|
|
278
|
+
else
|
|
279
|
+
this.endListeners.push(listener);
|
|
280
|
+
}
|
|
281
|
+
/** This function gives the first held event to a reader that waits, after a check passes. */
|
|
282
|
+
flush() {
|
|
283
|
+
const waiter = this.waiter;
|
|
284
|
+
const event = this.queue[0];
|
|
285
|
+
if (!waiter || !event || this.recheck)
|
|
286
|
+
return;
|
|
287
|
+
this.waiter = undefined;
|
|
288
|
+
this.queue.shift();
|
|
289
|
+
waiter.resolve(this.deliver(event));
|
|
239
290
|
}
|
|
240
291
|
}
|
|
292
|
+
/** This function does nothing: the end of a check of a closed subscription. */
|
|
293
|
+
function ignore() { }
|
|
241
294
|
/**
|
|
242
295
|
* The publisher of the remote events: it serves `events.subscribe` from a bus, under a topic
|
|
243
296
|
* rule. `ProcedureServer` makes one from its option `events`.
|
|
@@ -261,7 +314,10 @@ export class EventPublisher {
|
|
|
261
314
|
defaultReads;
|
|
262
315
|
buffer;
|
|
263
316
|
open = new Set();
|
|
317
|
+
/** The re-checks of the admission of the open subscriptions (roadmap CLI-44) */
|
|
318
|
+
rechecks;
|
|
264
319
|
constructor(options) {
|
|
320
|
+
this.rechecks = new SubscriptionRechecks(options.recheck ?? {}, options.clock ?? realClock);
|
|
265
321
|
this.bus = options.bus ?? getGlobalEventBus();
|
|
266
322
|
this.known = topicMatcher(options.topics);
|
|
267
323
|
this.allow = options.allow;
|
|
@@ -296,6 +352,17 @@ export class EventPublisher {
|
|
|
296
352
|
for (const subscription of [...this.open])
|
|
297
353
|
subscription.fail(stoppedError());
|
|
298
354
|
}
|
|
355
|
+
/**
|
|
356
|
+
* This function tells the publisher that rights changed (roadmap CLI-44). Each open subscription
|
|
357
|
+
* that the change touches gets the checks of its start again: the topic rule, the reads, `allow`
|
|
358
|
+
* and the partition. Its events wait for the check. A refusal ends the subscription with its
|
|
359
|
+
* error, for example `FORBIDDEN`. The promise ends when each check ends, and it does not reject.
|
|
360
|
+
*
|
|
361
|
+
* @param change - The subscriptions that the change touches. Without it, each open subscription gets a check.
|
|
362
|
+
*/
|
|
363
|
+
rightsChanged(change) {
|
|
364
|
+
return this.rechecks.rightsChanged(change);
|
|
365
|
+
}
|
|
299
366
|
/**
|
|
300
367
|
* The topic of the bus for a topic of a subscriber (roadmap CLI-17). A topic of a partitioned
|
|
301
368
|
* collection names the partition that the subscriber asks for, as the input of a procedure does:
|
|
@@ -310,22 +377,20 @@ export class EventPublisher {
|
|
|
310
377
|
return collectionChangeTopic(target.collection, partition);
|
|
311
378
|
}
|
|
312
379
|
/**
|
|
313
|
-
* The resources that a subscriber of a topic reads. The default reads
|
|
314
|
-
* topic with the rule of the listener (`collectionTopicTarget`)
|
|
315
|
-
* listener name the same collection.
|
|
380
|
+
* The resources that a subscriber of a topic reads. The default (`collectionTopicReads`) reads
|
|
381
|
+
* the collection of the topic with the rule of the listener (`collectionTopicTarget`) and the
|
|
382
|
+
* repository of the call, so the read check and the listener name the same collection.
|
|
316
383
|
*/
|
|
317
384
|
readsOf(topic, ctx) {
|
|
318
385
|
if (!this.defaultReads)
|
|
319
386
|
return this.reads(topic);
|
|
320
|
-
|
|
321
|
-
return target ? [`collection:${target.collection}`] : [];
|
|
387
|
+
return collectionTopicReads(topic, ctx.repository);
|
|
322
388
|
}
|
|
323
389
|
/**
|
|
324
|
-
* The
|
|
325
|
-
*
|
|
390
|
+
* The checks of the topics of a call: the topic rule, the reads of the capability and `allow`.
|
|
391
|
+
* A subscription passes them at its start and at each re-check (roadmap CLI-44).
|
|
326
392
|
*/
|
|
327
|
-
|
|
328
|
-
const unique = [...new Set(topics)];
|
|
393
|
+
admitTopics(unique, ctx) {
|
|
329
394
|
for (const topic of unique) {
|
|
330
395
|
if (!this.known(topic))
|
|
331
396
|
throw new TopicNotFoundError(`The host has no topic "${topic}"`);
|
|
@@ -347,11 +412,35 @@ export class EventPublisher {
|
|
|
347
412
|
}
|
|
348
413
|
}
|
|
349
414
|
}
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* The admission of an open subscription again (roadmap CLI-44): the checks of its start, and the
|
|
418
|
+
* partition of each topic. A refusal of the resolver throws its error. A topic whose partition
|
|
419
|
+
* changed throws `FORBIDDEN` (reason `partition-not-allowed`), because the listener has the old
|
|
420
|
+
* partition.
|
|
421
|
+
*/
|
|
422
|
+
async readmit(routes, ctx) {
|
|
423
|
+
this.admitTopics(routes.map(([topic]) => topic), ctx);
|
|
424
|
+
for (const [topic, busTopic] of routes) {
|
|
425
|
+
if ((await this.busTopic(topic, ctx)) !== busTopic) {
|
|
426
|
+
throw new InvocationError("FORBIDDEN", `The partition of the topic "${topic}" changed, so the subscription ends`, ctx.path, "partition-not-allowed");
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* The stream of one subscription. The publisher examines each topic before it adds a listener:
|
|
432
|
+
* the topic rule, the reads, `allow`, and the partition. A call with one bad topic makes no subscription.
|
|
433
|
+
*/
|
|
434
|
+
async subscribe(topics, ctx) {
|
|
435
|
+
const unique = [...new Set(topics)];
|
|
436
|
+
this.admitTopics(unique, ctx);
|
|
350
437
|
const routes = [];
|
|
351
438
|
for (const topic of unique)
|
|
352
439
|
routes.push([topic, await this.busTopic(topic, ctx)]);
|
|
353
440
|
const subscription = new TopicSubscription(this.bus, routes, this.buffer, ctx.signal, (closed) => this.open.delete(closed), ctx.admit, ctx.invocation);
|
|
354
441
|
this.open.add(subscription);
|
|
442
|
+
// The same checks run again at a change of the rights and after the max age (roadmap CLI-44)
|
|
443
|
+
this.rechecks.watch(subscription, ctx.principal, () => this.readmit(routes, ctx));
|
|
355
444
|
return subscription.closeIfAborted();
|
|
356
445
|
}
|
|
357
446
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/events/publisher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAmB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAI/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAuC,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAElD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,gDAAgD;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAkDpC,yFAAyF;AACzF,SAAS,WAAW,CAAC,KAAwB;IAC3C,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAA6B,CAAC;AACnI,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,YAAY,CAAC,IAAe;IAC1C,IAAI,OAAO,IAAI,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,GAAG;YAAE,GAAG,GAAG,IAAI,CAAC;aAC3B,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;;YAC/D,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AACnG,CAAC;AAED,mDAAmD;AACnD,MAAM,kBAAmB,SAAQ,KAAK;IAClB,IAAI,GAAG,oBAAoB,CAAC;IACrC,IAAI,GAAG,iBAAiB,CAAC;IACzB,SAAS,GAAG,KAAK,CAAC;CAC5B;AAED,uGAAuG;AACvG,SAAS,YAAY;IACnB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACjH,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,KAAK,6BAA6B,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAClJ,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAE5D,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CAC5G,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACnD,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;QAC7B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,gEAAgE,CAAC;KACvG,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;QACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QACrF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;KACnH,CAAC;CACH,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,iBAAiB;IAgBF,MAAM;IACN,MAAM;IACN,OAAO;IAEP,KAAK;IAEL,UAAU;IArBrB,YAAY,CAAwB;IAC3B,KAAK,GAAiD,EAAE,CAAC;IAClE,GAAG,GAAG,CAAC,CAAC;IACR,OAAO,GAAG,CAAC,CAAC;IACZ,MAAM,CAEA;IACN,MAAM,GAAG,KAAK,CAAC;IACf,OAAO,CAAU;IACR,YAAY,CAAgB;IAE7C,YACE,GAAa;IACb,sFAAsF;IACtF,MAAiE,EAChD,MAAc,EACd,MAA+B,EAC/B,OAAkD;IACnE,uFAAuF;IACtE,KAAwD;IACzE,mGAAmG;IAClF,UAAmC;sBANnC,MAAM;sBACN,MAAM;uBACN,OAAO;qBAEP,KAAK;0BAEL,UAAU;QAE3B,IAAI,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACnF,mFAAmF;QACnF,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,CACnD,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAC3H,CAAC;QACF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,gFAAgF;IAChF,cAAc;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;YAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAEgB,OAAO,GAAG,GAAS,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAEpD,gEAAgE;IACxD,IAAI,CAAC,KAAa,EAAE,IAAa;QACvC,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,OAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACvE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YACxB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACrC,8EAA8E;YAC9E,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;;OAGG;IACK,OAAO,CAAC,KAA4C;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAA0C,CAAC;QAC9E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAChG,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAA6B,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACtJ,CAAC;IAED,gFAAgF;IACxE,WAAW,CAAC,KAA4C;QAC9D,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,KAAK;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,KAAc,EAAE,OAAO,GAA4B,EAAE;QACxD,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,CAAC;QACD,IAAI,MAAM;YAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;YAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,4DAA4D;IAC5D,KAAK;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,4EAA4E;IACpE,OAAO;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY;YAAE,WAAW,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,cAAc;IACzB,2CAA2C;IAClC,GAAG,CAAW;IACvB,gGAAgG;IACvF,SAAS,CAAe;IAChB,KAAK,CAA6B;IAClC,KAAK,CAAiC;IACtC,KAAK,CAAuC;IAC7D,0FAA0F;IACzE,YAAY,CAAU;IACtB,MAAM,CAAS;IACf,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;IAErD,YAAY,OAA8B;QACxC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,oBAAoB,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,GAAG,eAAe,EAAE;aAC/B,IAAI,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC;aAChC,KAAK,CAAC,cAAc,CAAC;aACrB,MAAM,CAAC,eAAe,CAAC;aACvB,IAAI,CAAC;YACJ,WAAW,EAAE,8GAA8G;YAC3H,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YAC1C,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;SAC5B,CAAC;aACD,OAAO,CAAC,CAAC,KAAK,EAAE,KAAqB,EAAE,GAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAU,CAAC;aAC7G,KAAK,EAAkB,CAAC;IAC7B,CAAC;IAED,2FAA2F;IAC3F,OAAO,CAAI,KAAa,EAAE,IAAO;QAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,wCAAwC;IACxC,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,GAAG;QACD,KAAK,MAAM,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YAAE,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,GAAqB;QACzD,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAClF,OAAO,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACK,OAAO,CAAC,KAAa,EAAE,GAAqB;QAClD,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,SAAS,CAAC,MAAyB,EAAE,GAAqB;QACtE,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,kBAAkB,CAAC,0BAA0B,KAAK,GAAG,CAAC,CAAC;QAC3F,CAAC;QACD,2FAA2F;QAC3F,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACjC,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YACtE,IAAI,OAAO;gBAAE,MAAM,IAAI,eAAe,CAAC,WAAW,EAAE,cAAc,KAAK,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5H,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAc,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACvI,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;oBAC7B,MAAM,IAAI,eAAe,CAAC,WAAW,EAAE,yDAAyD,KAAK,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;gBAC3I,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAqC,EAAE,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,YAAY,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACvJ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5B,OAAO,YAAY,CAAC,cAAc,EAAE,CAAC;IACvC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/events/publisher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAmB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAI/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAuC,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAA+C,MAAM,cAAc,CAAC;AAEjG,2DAA2D;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,gDAAgD;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAoEpC,yFAAyF;AACzF,SAAS,WAAW,CAAC,KAAwB;IAC3C,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAA6B,CAAC;AACnI,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,YAAY,CAAC,IAAe;IAC1C,IAAI,OAAO,IAAI,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,GAAG;YAAE,GAAG,GAAG,IAAI,CAAC;aAC3B,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;;YAC/D,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AACnG,CAAC;AAED,mDAAmD;AACnD,MAAM,kBAAmB,SAAQ,KAAK;IAClB,IAAI,GAAG,oBAAoB,CAAC;IACrC,IAAI,GAAG,iBAAiB,CAAC;IACzB,SAAS,GAAG,KAAK,CAAC;CAC5B;AAED,uGAAuG;AACvG,SAAS,YAAY;IACnB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACjH,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,KAAK,6BAA6B,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAClJ,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAE5D,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CAC5G,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACnD,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;QAC7B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,gEAAgE,CAAC;KACvG,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;QACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QACrF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;KACnH,CAAC;CACH,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,iBAAiB;IAoBF,MAAM;IACN,MAAM;IACN,OAAO;IAEP,KAAK;IAEL,UAAU;IAzBrB,YAAY,CAAwB;IAC3B,KAAK,GAAiD,EAAE,CAAC;IAClE,GAAG,GAAG,CAAC,CAAC;IACR,OAAO,GAAG,CAAC,CAAC;IACZ,MAAM,CAEA;IACN,MAAM,GAAG,KAAK,CAAC;IACf,OAAO,CAAU;IACR,YAAY,CAAgB;IAC7C,wFAAwF;IAChF,OAAO,CAA4B;IAC3C,wDAAwD;IACvC,YAAY,GAAsB,EAAE,CAAC;IAEtD,YACE,GAAa;IACb,sFAAsF;IACtF,MAAiE,EAChD,MAAc,EACd,MAA+B,EAC/B,OAAkD;IACnE,uFAAuF;IACtE,KAAwD;IACzE,mGAAmG;IAClF,UAAmC;sBANnC,MAAM;sBACN,MAAM;uBACN,OAAO;qBAEP,KAAK;0BAEL,UAAU;QAE3B,IAAI,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACnF,mFAAmF;QACnF,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,CACnD,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAC3H,CAAC;QACF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,gFAAgF;IAChF,cAAc;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;YAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAEgB,OAAO,GAAG,GAAS,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAEpD,gEAAgE;IACxD,IAAI,CAAC,KAAa,EAAE,IAAa;QACvC,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,OAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACvE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACvD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YACxB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACrC,8EAA8E;YAC9E,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;;OAGG;IACK,OAAO,CAAC,KAA4C;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAA0C,CAAC;QAC9E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAChG,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAA6B,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACtJ,CAAC;IAED,gFAAgF;IACxE,WAAW,CAAC,KAA4C;QAC9D,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACvC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,mEAAmE;QACnE,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,KAAK;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,KAAc,EAAE,OAAO,GAA4B,EAAE;QACxD,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,CAAC;QACD,IAAI,MAAM;YAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;YAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,4DAA4D;IAC5D,KAAK;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,4EAA4E;IACpE,OAAO;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY;YAAE,WAAW,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,QAAQ,EAAE,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,KAAoB;QACvB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,OAAO,GAAkB,KAAK,CAAC,IAAI,CACvC,GAAG,EAAE;YACH,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;gBAAE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACvD,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;YACjB,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;gBAAE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACvD,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC,CACF,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,4FAA4F;IAC5F,KAAK,CAAC,QAAoB;QACxB,IAAI,IAAI,CAAC,MAAM;YAAE,QAAQ,EAAE,CAAC;;YACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,6FAA6F;IACrF,KAAK;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAC9C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACtC,CAAC;CACF;AAED,+EAA+E;AAC/E,SAAS,MAAM,KAAU,CAAC;AAE1B;;;;;;;;;;GAUG;AACH,MAAM,OAAO,cAAc;IACzB,2CAA2C;IAClC,GAAG,CAAW;IACvB,gGAAgG;IACvF,SAAS,CAAe;IAChB,KAAK,CAA6B;IAClC,KAAK,CAAiC;IACtC,KAAK,CAAuC;IAC7D,0FAA0F;IACzE,YAAY,CAAU;IACtB,MAAM,CAAS;IACf,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;IACrD,gFAAgF;IAC/D,QAAQ,CAAuB;IAEhD,YAAY,OAA8B;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;QAC5F,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,oBAAoB,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,GAAG,eAAe,EAAE;aAC/B,IAAI,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC;aAChC,KAAK,CAAC,cAAc,CAAC;aACrB,MAAM,CAAC,eAAe,CAAC;aACvB,IAAI,CAAC;YACJ,WAAW,EAAE,8GAA8G;YAC3H,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YAC1C,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;SAC5B,CAAC;aACD,OAAO,CAAC,CAAC,KAAK,EAAE,KAAqB,EAAE,GAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAU,CAAC;aAC7G,KAAK,EAAkB,CAAC;IAC7B,CAAC;IAED,2FAA2F;IAC3F,OAAO,CAAI,KAAa,EAAE,IAAO;QAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,wCAAwC;IACxC,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,GAAG;QACD,KAAK,MAAM,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YAAE,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,MAAqB;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,GAAqB;QACzD,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAClF,OAAO,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACK,OAAO,CAAC,KAAa,EAAE,GAAqB;QAClD,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjD,OAAO,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACK,WAAW,CAAC,MAAyB,EAAE,GAAqB;QAClE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,kBAAkB,CAAC,0BAA0B,KAAK,GAAG,CAAC,CAAC;QAC3F,CAAC;QACD,2FAA2F;QAC3F,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACjC,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YACtE,IAAI,OAAO;gBAAE,MAAM,IAAI,eAAe,CAAC,WAAW,EAAE,cAAc,KAAK,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5H,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAc,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACvI,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;oBAC7B,MAAM,IAAI,eAAe,CAAC,WAAW,EAAE,yDAAyD,KAAK,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;gBAC3I,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,OAAO,CAAC,MAAgD,EAAE,GAAqB;QAC3F,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;QACtD,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACnD,MAAM,IAAI,eAAe,CAAC,WAAW,EAAE,+BAA+B,KAAK,qCAAqC,EAAE,GAAG,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;YACvJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,SAAS,CAAC,MAAyB,EAAE,GAAqB;QACtE,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAqC,EAAE,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,YAAY,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACvJ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5B,6FAA6F;QAC7F,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QAClF,OAAO,YAAY,CAAC,cAAc,EAAE,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The re-check of the admission of the open subscriptions (roadmap CLI-44).
|
|
3
|
+
*
|
|
4
|
+
* At the start of a subscription, a publisher examines the rights of the subscriber. It examines
|
|
5
|
+
* the topic rule, the reads of the capability, `allow` and the partition. A right can change
|
|
6
|
+
* later, for example when the app removes a user from a group. Thus the publisher examines each
|
|
7
|
+
* open subscription again:
|
|
8
|
+
*
|
|
9
|
+
* - At a change of the rights. The host uses `rightsChanged()` of the publisher, or the source of
|
|
10
|
+
* the option `recheck.rightsChanges` gives the change to its listener.
|
|
11
|
+
* - After the time `recheck.maxAge` on the clock of the publisher, from the last check.
|
|
12
|
+
*
|
|
13
|
+
* The check is the same function as at the start. While it operates, the events of the
|
|
14
|
+
* subscription wait. A refusal ends the subscription with its error, for example `FORBIDDEN`, and
|
|
15
|
+
* the events that wait go. Without a call of `rightsChanged()` and without the option, nothing
|
|
16
|
+
* changes.
|
|
17
|
+
*/
|
|
18
|
+
import type { Clock } from "../clock.js";
|
|
19
|
+
import { type Duration } from "../duration.js";
|
|
20
|
+
import type { Principal } from "../server/types.js";
|
|
21
|
+
/**
|
|
22
|
+
* The subscriptions that a change of the rights touches: the id of a principal, or a test of the
|
|
23
|
+
* principal of a subscription. A subscription without a principal (a call from this process) has
|
|
24
|
+
* no id, so only a test or a change of each subscription touches it.
|
|
25
|
+
*/
|
|
26
|
+
export type RightsChange = string | ((principal: Principal | undefined) => boolean);
|
|
27
|
+
/** The options of the re-check of the open subscriptions of a publisher (roadmap CLI-44). */
|
|
28
|
+
export interface SubscriptionRecheck {
|
|
29
|
+
/**
|
|
30
|
+
* The longest time from one check of a subscription to the next check, for example `minutes(1)`.
|
|
31
|
+
* The time is on the clock of the publisher. Without it, only a change of the rights starts a
|
|
32
|
+
* check.
|
|
33
|
+
*/
|
|
34
|
+
readonly maxAge?: Duration | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* The source of the changes of the rights of the app. While the publisher has an open
|
|
37
|
+
* subscription, the source has one listener of the publisher. The source gives the function that
|
|
38
|
+
* removes the listener. Each call of the listener is a call of `rightsChanged()`: without a
|
|
39
|
+
* change, each subscription gets a check.
|
|
40
|
+
*/
|
|
41
|
+
readonly rightsChanges?: ((listener: (change?: RightsChange) => void) => () => void) | undefined;
|
|
42
|
+
}
|
|
43
|
+
/** A subscription that the re-checks can hold and watch. */
|
|
44
|
+
export interface RecheckedSubscription {
|
|
45
|
+
/**
|
|
46
|
+
* This function holds the events of the subscription until the check ends. A refusal ends the
|
|
47
|
+
* subscription with its error. The promise ends with the check, and it does not reject.
|
|
48
|
+
*/
|
|
49
|
+
hold(check: Promise<void>): Promise<void>;
|
|
50
|
+
/** This function runs the listener when the subscription ends. */
|
|
51
|
+
onEnd(listener: () => void): void;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The re-checks of the open subscriptions of one publisher (roadmap CLI-44). The publisher gives
|
|
55
|
+
* each new subscription to `watch()`, with the check of its admission.
|
|
56
|
+
*/
|
|
57
|
+
export declare class SubscriptionRechecks {
|
|
58
|
+
private readonly clock;
|
|
59
|
+
private readonly watches;
|
|
60
|
+
private readonly maxAgeMs;
|
|
61
|
+
private readonly source;
|
|
62
|
+
/** The function that removes the listener of the source, while a subscription is open */
|
|
63
|
+
private stopListening;
|
|
64
|
+
constructor(options: SubscriptionRecheck, clock: Clock);
|
|
65
|
+
/** The number of the subscriptions that the re-checks watch. */
|
|
66
|
+
get size(): number;
|
|
67
|
+
/**
|
|
68
|
+
* This function watches a subscription until it ends. A change of the rights of its principal
|
|
69
|
+
* and its max age start the check. The check must throw the refusal.
|
|
70
|
+
*/
|
|
71
|
+
watch(subscription: RecheckedSubscription, principal: Principal | undefined, check: () => Promise<void>): void;
|
|
72
|
+
/**
|
|
73
|
+
* This function starts a check of each watched subscription that the change touches. The
|
|
74
|
+
* promise ends when each check ends.
|
|
75
|
+
*/
|
|
76
|
+
rightsChanged(change?: RightsChange): Promise<void>;
|
|
77
|
+
/** This function stops the watch of a subscription that ended. */
|
|
78
|
+
private unwatch;
|
|
79
|
+
/** This function starts the timer of the max age of a subscription. */
|
|
80
|
+
private startTimer;
|
|
81
|
+
/** This function stops the timer of the max age of a subscription. */
|
|
82
|
+
private stopTimer;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=recheck.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recheck.d.ts","sourceRoot":"","sources":["../../src/events/recheck.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAU,KAAK,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,KAAK,OAAO,CAAC,CAAC;AAEpF,6FAA6F;AAC7F,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,YAAY,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CAClG;AAED,4DAA4D;AAC5D,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,kEAAkE;IAClE,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CACnC;AA2BD;;;GAGG;AACH,qBAAa,oBAAoB;IAS7B,OAAO,CAAC,QAAQ,CAAC,KAAK;IARxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,yFAAyF;IACzF,OAAO,CAAC,aAAa,CAA2B;IAEhD,YACE,OAAO,EAAE,mBAAmB,EACX,KAAK,EAAE,KAAK,EAQ9B;IAED,gEAAgE;IAChE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAwB7G;IAED;;;OAGG;IACH,aAAa,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAMlD;IAED,kEAAkE;IAClE,OAAO,CAAC,OAAO;IASf,uEAAuE;IACvE,OAAO,CAAC,UAAU;IAYlB,sEAAsE;IACtE,OAAO,CAAC,SAAS;CAKlB"}
|