@fedify/fedify 0.10.0-dev.218 → 0.10.0-dev.219
Sign up to get free protection for your applications and to get access to all the features.
package/CHANGES.md
CHANGED
@@ -106,6 +106,15 @@ To be released.
|
|
106
106
|
- The `Context.sendActivity()` method's first parameter now accepts
|
107
107
|
`SenderKeyPair[]` as well.
|
108
108
|
|
109
|
+
- In the future, `Federation` class will become an interface.
|
110
|
+
For the forward compatibility, the following changes are made:
|
111
|
+
|
112
|
+
- Added `createFederation()` function.
|
113
|
+
- Added `CreateFederationOptions` interface.
|
114
|
+
- Deprecated `new Federation()` constructor. Use `createFederation()`
|
115
|
+
function instead.
|
116
|
+
- Deprecated `FederationParameters` interface.
|
117
|
+
|
109
118
|
- Added `Arrive` class to Activity Vocabulary API.
|
110
119
|
[[#65], [#68] by Randy Wressell]
|
111
120
|
|
@@ -718,3 +727,5 @@ Version 0.1.0
|
|
718
727
|
-------------
|
719
728
|
|
720
729
|
Initial release. Released on March 8, 2024.
|
730
|
+
|
731
|
+
<!-- cSpell: ignore Wressell -->
|
@@ -11,6 +11,20 @@ import { buildCollectionSynchronizationHeader } from "./collection.js";
|
|
11
11
|
import { handleActor, handleCollection, handleInbox, handleObject, } from "./handler.js";
|
12
12
|
import { Router, RouterError } from "./router.js";
|
13
13
|
import { extractInboxes, sendActivity } from "./send.js";
|
14
|
+
const invokedByCreateFederation = Symbol("invokedByCreateFederation");
|
15
|
+
/**
|
16
|
+
* Create a new {@link Federation} instance.
|
17
|
+
* @param parameters Parameters for initializing the instance.
|
18
|
+
* @returns A new {@link Federation} instance.
|
19
|
+
* @since 0.10.0
|
20
|
+
*/
|
21
|
+
export function createFederation(options) {
|
22
|
+
return new Federation({
|
23
|
+
...options,
|
24
|
+
// @ts-ignore: This is a private symbol.
|
25
|
+
[invokedByCreateFederation]: true,
|
26
|
+
});
|
27
|
+
}
|
14
28
|
/**
|
15
29
|
* An object that registers federation-related business logic and dispatches
|
16
30
|
* requests to the appropriate handlers.
|
@@ -43,17 +57,24 @@ export class Federation {
|
|
43
57
|
/**
|
44
58
|
* Create a new {@link Federation} instance.
|
45
59
|
* @param parameters Parameters for initializing the instance.
|
60
|
+
* @deprecated Use {@link createFederation} method instead.
|
46
61
|
*/
|
47
|
-
constructor(
|
48
|
-
|
62
|
+
constructor(options) {
|
63
|
+
const logger = getLogger(["fedify", "federation"]);
|
64
|
+
// @ts-ignore: This is a private symbol.
|
65
|
+
if (!options[invokedByCreateFederation]) {
|
66
|
+
logger.warn("The Federation constructor is deprecated. Use the createFederation()" +
|
67
|
+
"function instead.");
|
68
|
+
}
|
69
|
+
this.#kv = options.kv;
|
49
70
|
this.#kvPrefixes = {
|
50
71
|
...({
|
51
72
|
activityIdempotence: ["_fedify", "activityIdempotence"],
|
52
73
|
remoteDocument: ["_fedify", "remoteDocument"],
|
53
74
|
}),
|
54
|
-
...(kvPrefixes ?? {}),
|
75
|
+
...(options.kvPrefixes ?? {}),
|
55
76
|
};
|
56
|
-
this.#queue = queue;
|
77
|
+
this.#queue = options.queue;
|
57
78
|
this.#queueStarted = false;
|
58
79
|
this.#router = new Router();
|
59
80
|
this.#router.add("/.well-known/webfinger", "webfinger");
|
@@ -61,25 +82,25 @@ export class Federation {
|
|
61
82
|
this.#inboxListeners = new Map();
|
62
83
|
this.#objectCallbacks = {};
|
63
84
|
this.#objectTypeIds = {};
|
64
|
-
this.#documentLoader = documentLoader ?? kvCache({
|
85
|
+
this.#documentLoader = options.documentLoader ?? kvCache({
|
65
86
|
loader: fetchDocumentLoader,
|
66
|
-
kv: kv,
|
87
|
+
kv: options.kv,
|
67
88
|
prefix: this.#kvPrefixes.remoteDocument,
|
68
89
|
});
|
69
|
-
this.#contextLoader = contextLoader ?? this.#documentLoader;
|
90
|
+
this.#contextLoader = options.contextLoader ?? this.#documentLoader;
|
70
91
|
this.#authenticatedDocumentLoaderFactory =
|
71
|
-
authenticatedDocumentLoaderFactory ??
|
92
|
+
options.authenticatedDocumentLoaderFactory ??
|
72
93
|
getAuthenticatedDocumentLoader;
|
73
|
-
this.#onOutboxError = onOutboxError;
|
74
|
-
this.#treatHttps = treatHttps ?? false;
|
75
|
-
if (treatHttps) {
|
76
|
-
|
94
|
+
this.#onOutboxError = options.onOutboxError;
|
95
|
+
this.#treatHttps = options.treatHttps ?? false;
|
96
|
+
if (options.treatHttps) {
|
97
|
+
logger.warn("The treatHttps option is deprecated and will be removed in " +
|
77
98
|
"a future release. Instead, use the x-forwarded-fetch library" +
|
78
99
|
" to recognize the X-Forwarded-Host and X-Forwarded-Proto " +
|
79
100
|
"headers. See also: <https://github.com/dahlia/x-forwarded-fetch>.");
|
80
101
|
}
|
81
|
-
this.#signatureTimeWindow = signatureTimeWindow ?? { minutes: 1 };
|
82
|
-
this.#backoffSchedule = backoffSchedule ?? [
|
102
|
+
this.#signatureTimeWindow = options.signatureTimeWindow ?? { minutes: 1 };
|
103
|
+
this.#backoffSchedule = options.backoffSchedule ?? [
|
83
104
|
3000,
|
84
105
|
15000,
|
85
106
|
60000,
|
package/package.json
CHANGED
@@ -10,9 +10,10 @@ import type { KvKey, KvStore } from "./kv.js";
|
|
10
10
|
import type { MessageQueue } from "./mq.js";
|
11
11
|
import { type SenderKeyPair } from "./send.js";
|
12
12
|
/**
|
13
|
-
*
|
13
|
+
* Options for {@link createFederation} function.
|
14
|
+
* @since 0.10.0
|
14
15
|
*/
|
15
|
-
export interface
|
16
|
+
export interface CreateFederationOptions {
|
16
17
|
/**
|
17
18
|
* The key-value store used for caching, outbox queues, and inbox idempotence.
|
18
19
|
*/
|
@@ -26,7 +27,6 @@ export interface FederationParameters {
|
|
26
27
|
* The message queue for sending activities to recipients' inboxes.
|
27
28
|
* If not provided, activities will not be queued and will be sent
|
28
29
|
* immediately.
|
29
|
-
* @since 0.5.0
|
30
30
|
*/
|
31
31
|
queue?: MessageQueue;
|
32
32
|
/**
|
@@ -37,31 +37,56 @@ export interface FederationParameters {
|
|
37
37
|
/**
|
38
38
|
* A custom JSON-LD context loader. By default, this uses the same loader
|
39
39
|
* as the document loader.
|
40
|
-
* @since 0.8.0
|
41
40
|
*/
|
42
41
|
contextLoader?: DocumentLoader;
|
43
42
|
/**
|
44
43
|
* A factory function that creates an authenticated document loader for a
|
45
44
|
* given identity. This is used for fetching documents that require
|
46
45
|
* authentication.
|
47
|
-
*
|
48
|
-
* @since 0.4.0
|
49
46
|
*/
|
50
47
|
authenticatedDocumentLoaderFactory?: AuthenticatedDocumentLoaderFactory;
|
51
48
|
/**
|
52
|
-
*
|
53
|
-
*
|
54
|
-
*
|
55
|
-
*
|
56
|
-
* Note that this option is deprecated and will be removed in a future
|
57
|
-
* release. Instead, use the [x-forwarded-fetch] library to recognize
|
58
|
-
* the `X-Forwarded-Host` and `X-Forwarded-Proto` headers.
|
49
|
+
* A callback that handles errors during outbox processing. Note that this
|
50
|
+
* callback can be called multiple times for the same activity, because
|
51
|
+
* the delivery is retried according to the backoff schedule until it
|
52
|
+
* succeeds or reaches the maximum retry count.
|
59
53
|
*
|
60
|
-
*
|
54
|
+
* If any errors are thrown in this callback, they are ignored.
|
55
|
+
*/
|
56
|
+
onOutboxError?: OutboxErrorHandler;
|
57
|
+
/**
|
58
|
+
* The time window for verifying the signature of incoming requests. If the
|
59
|
+
* request is older or newer than this window, it is rejected. By default,
|
60
|
+
* the window is a minute.
|
61
|
+
*/
|
62
|
+
signatureTimeWindow?: dntShim.Temporal.DurationLike;
|
63
|
+
}
|
64
|
+
/**
|
65
|
+
* Parameters for initializing a {@link Federation} instance.
|
66
|
+
* @deprecated
|
67
|
+
*/
|
68
|
+
export interface FederationParameters extends CreateFederationOptions {
|
69
|
+
/**
|
70
|
+
* The message queue for sending activities to recipients' inboxes.
|
71
|
+
* If not provided, activities will not be queued and will be sent
|
72
|
+
* immediately.
|
73
|
+
* @since 0.5.0
|
74
|
+
*/
|
75
|
+
queue?: MessageQueue;
|
76
|
+
/**
|
77
|
+
* A custom JSON-LD context loader. By default, this uses the same loader
|
78
|
+
* as the document loader.
|
79
|
+
* @since 0.8.0
|
80
|
+
*/
|
81
|
+
contextLoader?: DocumentLoader;
|
82
|
+
/**
|
83
|
+
* A factory function that creates an authenticated document loader for a
|
84
|
+
* given identity. This is used for fetching documents that require
|
85
|
+
* authentication.
|
61
86
|
*
|
62
|
-
* @
|
87
|
+
* @since 0.4.0
|
63
88
|
*/
|
64
|
-
|
89
|
+
authenticatedDocumentLoaderFactory?: AuthenticatedDocumentLoaderFactory;
|
65
90
|
/**
|
66
91
|
* A callback that handles errors during outbox processing. Note that this
|
67
92
|
* callback can be called multiple times for the same activity, because
|
@@ -77,10 +102,22 @@ export interface FederationParameters {
|
|
77
102
|
* The time window for verifying the signature of incoming requests. If the
|
78
103
|
* request is older or newer than this window, it is rejected. By default,
|
79
104
|
* the window is a minute.
|
80
|
-
*
|
81
|
-
* @since 0.9.0
|
82
105
|
*/
|
83
106
|
signatureTimeWindow?: dntShim.Temporal.DurationLike;
|
107
|
+
/**
|
108
|
+
* Whether to treat HTTP requests as HTTPS. This is useful for testing and
|
109
|
+
* local development. However, it must be disabled in production.
|
110
|
+
* Turned off by default.
|
111
|
+
*
|
112
|
+
* Note that this option is deprecated and will be removed in a future
|
113
|
+
* release. Instead, use the [x-forwarded-fetch] library to recognize
|
114
|
+
* the `X-Forwarded-Host` and `X-Forwarded-Proto` headers.
|
115
|
+
*
|
116
|
+
* [x-forwarded-fetch]: https://github.com/dahlia/x-forwarded-fetch
|
117
|
+
*
|
118
|
+
* @deprecated
|
119
|
+
*/
|
120
|
+
treatHttps?: boolean;
|
84
121
|
backoffSchedule?: dntShim.Temporal.Duration[];
|
85
122
|
}
|
86
123
|
/**
|
@@ -98,6 +135,13 @@ export interface FederationKvPrefixes {
|
|
98
135
|
*/
|
99
136
|
remoteDocument: KvKey;
|
100
137
|
}
|
138
|
+
/**
|
139
|
+
* Create a new {@link Federation} instance.
|
140
|
+
* @param parameters Parameters for initializing the instance.
|
141
|
+
* @returns A new {@link Federation} instance.
|
142
|
+
* @since 0.10.0
|
143
|
+
*/
|
144
|
+
export declare function createFederation<TContextData>(options: CreateFederationOptions): Federation<TContextData>;
|
101
145
|
/**
|
102
146
|
* An object that registers federation-related business logic and dispatches
|
103
147
|
* requests to the appropriate handlers.
|
@@ -110,8 +154,9 @@ export declare class Federation<TContextData> {
|
|
110
154
|
/**
|
111
155
|
* Create a new {@link Federation} instance.
|
112
156
|
* @param parameters Parameters for initializing the instance.
|
157
|
+
* @deprecated Use {@link createFederation} method instead.
|
113
158
|
*/
|
114
|
-
constructor(
|
159
|
+
constructor(options: FederationParameters);
|
115
160
|
/**
|
116
161
|
* Create a new context.
|
117
162
|
* @param baseUrl The base URL of the server. The `pathname` remains root,
|
@@ -407,7 +452,7 @@ export interface FederationFetchOptions<TContextData> {
|
|
407
452
|
* Additional settings for the actor dispatcher.
|
408
453
|
*
|
409
454
|
* ``` typescript
|
410
|
-
* const federation =
|
455
|
+
* const federation = createFederation<void>({ ... });
|
411
456
|
* federation.setActorDispatcher("/users/{handle}", async (ctx, handle, key) => {
|
412
457
|
* ...
|
413
458
|
* })
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/federation/middleware.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,cAAc,EAIpB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACL,QAAQ,EAGR,KAAK,MAAM,EACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAEV,OAAO,EAEP,cAAc,EACd,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAQtB,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,EAAgC,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAE7E
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/federation/middleware.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,cAAc,EAIpB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACL,QAAQ,EAGR,KAAK,MAAM,EACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAEV,OAAO,EAEP,cAAc,EACd,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAQtB,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,EAAgC,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAE7E;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,EAAE,EAAE,OAAO,CAAC;IAEZ;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE3C;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;;OAGG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAE/B;;;;OAIG;IACH,kCAAkC,CAAC,EAAE,kCAAkC,CAAC;IAExE;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,kBAAkB,CAAC;IAEnC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;CACrD;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,uBAAuB;IACnE;;;;;OAKG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB;;;;OAIG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAE/B;;;;;;OAMG;IACH,kCAAkC,CAAC,EAAE,kCAAkC,CAAC;IAExE;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,kBAAkB,CAAC;IAEnC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAEpD;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAIrB,eAAe,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,mBAAmB,EAAE,KAAK,CAAC;IAE3B;;;OAGG;IACH,cAAc,EAAE,KAAK,CAAC;CACvB;AAID;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAC3C,OAAO,EAAE,uBAAuB,GAC/B,UAAU,CAAC,YAAY,CAAC,CAM1B;AAED;;;;;;GAMG;AACH,qBAAa,UAAU,CAAC,YAAY;;IA8BlC;;;;OAIG;gBACS,OAAO,EAAE,oBAAoB;IAyIzC;;;;;;OAMG;IACH,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAE7E;;;;;OAKG;IACH,aAAa,CACX,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,YAAY,GACxB,cAAc,CAAC,YAAY,CAAC;IA6E/B;;;;;;;;;OASG;IACH,qBAAqB,CACnB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC;IAc9C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,kBAAkB,CAChB,IAAI,EAAE,GAAG,MAAM,WAAW,MAAM,EAAE,EAClC,UAAU,EAAE,eAAe,CAAC,YAAY,CAAC,GACxC,oBAAoB,CAAC,YAAY,CAAC;IAuJrC;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAE/D,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,IAAI,EACF,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,EACrI,UAAU,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,GAC1D,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC;IAEvD;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAE/D,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,IAAI,EACF,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,EACjH,UAAU,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,GAC1D,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC;IAEvD;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAE/D,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,IAAI,EACF,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,EAC7F,UAAU,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,GAC1D,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC;IAEvD;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAE/D,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,IAAI,EACF,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,EACzE,UAAU,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,GAC1D,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC;IAEvD;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAE/D,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,IAAI,EAAE,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,EACzD,UAAU,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,GAC1D,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC;IAEvD;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAE/D,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,IAAI,EAAE,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,EACrC,UAAU,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,GAC1D,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC;IAiCvD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,mBAAmB,CACjB,IAAI,EAAE,GAAG,MAAM,WAAW,MAAM,EAAE,EAClC,UAAU,EAAE,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,GAC7D,yBAAyB,CAAC,YAAY,EAAE,IAAI,CAAC;IAmChD;;;;;;;;;;OAUG;IACH,sBAAsB,CACpB,IAAI,EAAE,GAAG,MAAM,WAAW,MAAM,EAAE,EAClC,UAAU,EAAE,oBAAoB,CAAC,KAAK,GAAG,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,GAChE,yBAAyB,CAAC,YAAY,EAAE,IAAI,CAAC;IAmChD;;;;;;;;;;OAUG;IACH,sBAAsB,CACpB,IAAI,EAAE,GAAG,MAAM,WAAW,MAAM,EAAE,EAClC,UAAU,EAAE,oBAAoB,CAC9B,SAAS,EACT,YAAY,EACZ,GAAG,CACJ,GACA,yBAAyB,CAAC,YAAY,EAAE,GAAG,CAAC;IAuC/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,iBAAiB,CACf,SAAS,EAAE,GAAG,MAAM,WAAW,MAAM,EAAE,EACvC,eAAe,CAAC,EAAE,MAAM,GACvB,mBAAmB,CAAC,YAAY,CAAC;IAyCpC;;;;;;;;;OASG;IACG,YAAY,CAChB,IAAI,EAAE,aAAa,EAAE,EACrB,UAAU,EAAE,SAAS,GAAG,SAAS,EAAE,EACnC,QAAQ,EAAE,QAAQ,EAClB,EAAE,iBAAiB,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,GAC/D,2BAAgC,GACjC,OAAO,CAAC,IAAI,CAAC;IAkGhB;;;;;;;;;;;OAWG;IACG,KAAK,CACT,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,sBAAsB,CAAC,YAAY,CAAC,GAC5C,OAAO,CAAC,QAAQ,CAAC;CA0JrB;AAuiBD;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB,CAAC,YAAY;IAClD;;OAEG;IACH,WAAW,EAAE,YAAY,CAAC;IAE1B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEhE;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAErE;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACrE;AAQD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB,CAAC,YAAY;IAChD;;;;;OAKG;IACH,qBAAqB,CACnB,UAAU,EAAE,uBAAuB,CAAC,YAAY,CAAC,GAChD,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEtC;;;;;;;OAOG;IACH,oBAAoB,CAClB,UAAU,EAAE,sBAAsB,CAAC,YAAY,CAAC,GAC/C,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEtC;;;;;OAKG;IACH,SAAS,CACP,SAAS,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAC1C,oBAAoB,CAAC,YAAY,CAAC,CAAC;CACvC;AAQD;;GAEG;AACH,MAAM,WAAW,qBAAqB,CACpC,YAAY,EACZ,OAAO,SAAS,MAAM,EACtB,MAAM,SAAS,MAAM;IAErB;;;;;OAKG;IACH,SAAS,CACP,SAAS,EAAE,wBAAwB,CAAC,YAAY,EAAE,MAAM,CAAC,GACxD,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;CACzD;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB,CAAC,YAAY,EAAE,OAAO;IAC9D;;;;OAIG;IACH,UAAU,CACR,OAAO,EAAE,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,GAChD,yBAAyB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEpD;;;;OAIG;IACH,cAAc,CACZ,MAAM,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,GAC9C,yBAAyB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEpD;;;;OAIG;IACH,aAAa,CACX,MAAM,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,GAC9C,yBAAyB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEpD;;;;;OAKG;IACH,SAAS,CACP,SAAS,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAC1C,yBAAyB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,YAAY;IAC/C;;;;;;OAMG;IACH,EAAE,CAAC,SAAS,SAAS,QAAQ,EAE3B,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,SAAS,EACvC,QAAQ,EAAE,aAAa,CAAC,YAAY,EAAE,SAAS,CAAC,GAC/C,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAErC;;;;;;OAMG;IACH,OAAO,CACL,OAAO,EAAE,iBAAiB,CAAC,YAAY,CAAC,GACvC,mBAAmB,CAAC,YAAY,CAAC,CAAC;CACtC;AAED,UAAU,2BAA4B,SAAQ,mBAAmB;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
|