@fedify/fedify 0.11.0-dev.237 → 0.11.0-dev.239
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGES.md +9 -1
- package/esm/federation/middleware.js +66 -1
- package/esm/vocab/application.yaml +1 -1
- package/esm/vocab/group.yaml +1 -1
- package/esm/vocab/organization.yaml +1 -1
- package/esm/vocab/person.yaml +1 -1
- package/esm/vocab/service.yaml +1 -1
- package/esm/vocab/vocab.js +70 -70
- package/package.json +1 -1
- package/types/federation/context.d.ts +16 -0
- package/types/federation/context.d.ts.map +1 -1
- package/types/federation/middleware.d.ts +14 -1
- package/types/federation/middleware.d.ts.map +1 -1
- package/types/testing/context.d.ts.map +1 -1
- package/types/vocab/vocab.d.ts +25 -25
- package/types/vocab/vocab.d.ts.map +1 -1
package/CHANGES.md
CHANGED
@@ -13,7 +13,14 @@ To be released.
|
|
13
13
|
- Added `suppressError` option to dereferencing accessors of Activity
|
14
14
|
Vocabulary classes.
|
15
15
|
|
16
|
-
- Added
|
16
|
+
- Added more collection dispatchers. [[#78]]
|
17
|
+
|
18
|
+
- Added `Federation.setInboxDispatcher()` method. [[#71]]
|
19
|
+
- Added `Federation.setLikedDispatcher()` method.
|
20
|
+
- Added `Context.getLikedUri()` method.
|
21
|
+
- Added `{ type: "liked"; handle: string }` case to `ParseUriResult` type.
|
22
|
+
- Renamed `linked` property (which was a typo) to `liked` in
|
23
|
+
`Application`, `Group`, `Organization`, `Person`, and `Service` classes.
|
17
24
|
|
18
25
|
- Frequently used JSON-LD contexts are now preloaded. [[74]]
|
19
26
|
|
@@ -44,6 +51,7 @@ To be released.
|
|
44
51
|
[#71]: https://github.com/dahlia/fedify/issues/71
|
45
52
|
[#74]: https://github.com/dahlia/fedify/issues/74
|
46
53
|
[#76]: https://github.com/dahlia/fedify/pull/76
|
54
|
+
[#78]: https://github.com/dahlia/fedify/issues/78
|
47
55
|
[#79]: https://github.com/dahlia/fedify/issues/79
|
48
56
|
|
49
57
|
|
@@ -5,7 +5,7 @@ import { fetchDocumentLoader, getAuthenticatedDocumentLoader, kvCache, } from ".
|
|
5
5
|
import { verifyRequest } from "../sig/http.js";
|
6
6
|
import { exportJwk, importJwk, validateCryptoKey } from "../sig/key.js";
|
7
7
|
import { getKeyOwner } from "../sig/owner.js";
|
8
|
-
import { Activity, CryptographicKey, Multikey, } from "../vocab/
|
8
|
+
import { Activity, CryptographicKey, Multikey, } from "../vocab/vocab.js";
|
9
9
|
import { handleWebFinger } from "../webfinger/handler.js";
|
10
10
|
import { buildCollectionSynchronizationHeader } from "./collection.js";
|
11
11
|
import { handleActor, handleCollection, handleInbox, handleObject, } from "./handler.js";
|
@@ -47,6 +47,7 @@ export class Federation {
|
|
47
47
|
#outboxCallbacks;
|
48
48
|
#followingCallbacks;
|
49
49
|
#followersCallbacks;
|
50
|
+
#likedCallbacks;
|
50
51
|
#inboxListeners;
|
51
52
|
#inboxErrorHandler;
|
52
53
|
#sharedInboxKeyDispatcher;
|
@@ -600,6 +601,50 @@ export class Federation {
|
|
600
601
|
};
|
601
602
|
return setters;
|
602
603
|
}
|
604
|
+
/**
|
605
|
+
* Registers a liked collection dispatcher.
|
606
|
+
* @param path The URI path pattern for the liked collection. The syntax
|
607
|
+
* is based on URI Template
|
608
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)). The path
|
609
|
+
* must have one variable: `{handle}`.
|
610
|
+
* @param dispatcher A liked collection callback to register.
|
611
|
+
* @returns An object with methods to set other liked collection
|
612
|
+
* callbacks.
|
613
|
+
* @throws {@link RouterError} Thrown if the path pattern is invalid.
|
614
|
+
* @since 0.11.0
|
615
|
+
*/
|
616
|
+
setLikedDispatcher(path, dispatcher) {
|
617
|
+
if (this.#router.has("liked")) {
|
618
|
+
throw new RouterError("Liked collection dispatcher already set.");
|
619
|
+
}
|
620
|
+
const variables = this.#router.add(path, "liked");
|
621
|
+
if (variables.size !== 1 || !variables.has("handle")) {
|
622
|
+
throw new RouterError("Path for liked collection dispatcher must have one variable: {handle}");
|
623
|
+
}
|
624
|
+
const callbacks = {
|
625
|
+
dispatcher,
|
626
|
+
};
|
627
|
+
this.#likedCallbacks = callbacks;
|
628
|
+
const setters = {
|
629
|
+
setCounter(counter) {
|
630
|
+
callbacks.counter = counter;
|
631
|
+
return setters;
|
632
|
+
},
|
633
|
+
setFirstCursor(cursor) {
|
634
|
+
callbacks.firstCursor = cursor;
|
635
|
+
return setters;
|
636
|
+
},
|
637
|
+
setLastCursor(cursor) {
|
638
|
+
callbacks.lastCursor = cursor;
|
639
|
+
return setters;
|
640
|
+
},
|
641
|
+
authorize(predicate) {
|
642
|
+
callbacks.authorizePredicate = predicate;
|
643
|
+
return setters;
|
644
|
+
},
|
645
|
+
};
|
646
|
+
return setters;
|
647
|
+
}
|
603
648
|
/**
|
604
649
|
* Assigns the URL path for the inbox and starts setting inbox listeners.
|
605
650
|
*
|
@@ -926,6 +971,16 @@ export class Federation {
|
|
926
971
|
onNotAcceptable,
|
927
972
|
});
|
928
973
|
}
|
974
|
+
case "liked":
|
975
|
+
return await handleCollection(request, {
|
976
|
+
name: "liked",
|
977
|
+
handle: route.values.handle,
|
978
|
+
context,
|
979
|
+
collectionCallbacks: this.#likedCallbacks,
|
980
|
+
onUnauthorized,
|
981
|
+
onNotFound,
|
982
|
+
onNotAcceptable,
|
983
|
+
});
|
929
984
|
default: {
|
930
985
|
const response = onNotFound(request);
|
931
986
|
return response instanceof Promise ? await response : response;
|
@@ -1024,6 +1079,13 @@ class ContextImpl {
|
|
1024
1079
|
}
|
1025
1080
|
return new URL(path, this.#url);
|
1026
1081
|
}
|
1082
|
+
getLikedUri(handle) {
|
1083
|
+
const path = this.#router.build("liked", { handle });
|
1084
|
+
if (path == null) {
|
1085
|
+
throw new RouterError("No liked collection path registered.");
|
1086
|
+
}
|
1087
|
+
return new URL(path, this.#url);
|
1088
|
+
}
|
1027
1089
|
parseUri(uri) {
|
1028
1090
|
if (uri.origin !== this.#url.origin)
|
1029
1091
|
return null;
|
@@ -1057,6 +1119,9 @@ class ContextImpl {
|
|
1057
1119
|
else if (route.name === "followers") {
|
1058
1120
|
return { type: "followers", handle: route.values.handle };
|
1059
1121
|
}
|
1122
|
+
else if (route.name === "liked") {
|
1123
|
+
return { type: "liked", handle: route.values.handle };
|
1124
|
+
}
|
1060
1125
|
return null;
|
1061
1126
|
}
|
1062
1127
|
getHandleFromActorUri(actorUri) {
|
package/esm/vocab/group.yaml
CHANGED
package/esm/vocab/person.yaml
CHANGED
package/esm/vocab/service.yaml
CHANGED
package/esm/vocab/vocab.js
CHANGED
@@ -7159,13 +7159,13 @@ export class Application extends Object {
|
|
7159
7159
|
"Collection | URL" + ".");
|
7160
7160
|
}
|
7161
7161
|
}
|
7162
|
-
if ("
|
7163
|
-
if (values.
|
7162
|
+
if ("liked" in values && values.liked != null) {
|
7163
|
+
if (values.liked instanceof Collection || values.liked instanceof URL) {
|
7164
7164
|
// @ts-ignore: type is checked above.
|
7165
|
-
this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.
|
7165
|
+
this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
|
7166
7166
|
}
|
7167
7167
|
else {
|
7168
|
-
throw new TypeError("The
|
7168
|
+
throw new TypeError("The liked must be of type " +
|
7169
7169
|
"Collection | URL" + ".");
|
7170
7170
|
}
|
7171
7171
|
}
|
@@ -7385,13 +7385,13 @@ export class Application extends Object {
|
|
7385
7385
|
}
|
7386
7386
|
}
|
7387
7387
|
clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU;
|
7388
|
-
if ("
|
7389
|
-
if (values.
|
7388
|
+
if ("liked" in values && values.liked != null) {
|
7389
|
+
if (values.liked instanceof Collection || values.liked instanceof URL) {
|
7390
7390
|
// @ts-ignore: type is checked above.
|
7391
|
-
clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.
|
7391
|
+
clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
|
7392
7392
|
}
|
7393
7393
|
else {
|
7394
|
-
throw new TypeError("The
|
7394
|
+
throw new TypeError("The liked must be of type " +
|
7395
7395
|
"Collection | URL" + ".");
|
7396
7396
|
}
|
7397
7397
|
}
|
@@ -7908,7 +7908,7 @@ export class Application extends Object {
|
|
7908
7908
|
}
|
7909
7909
|
return v;
|
7910
7910
|
}
|
7911
|
-
async #
|
7911
|
+
async #fetchLiked(url, options = {}) {
|
7912
7912
|
const documentLoader = options.documentLoader ?? this._documentLoader ??
|
7913
7913
|
fetchDocumentLoader;
|
7914
7914
|
const contextLoader = options.contextLoader ?? this._contextLoader ??
|
@@ -7937,10 +7937,10 @@ export class Application extends Object {
|
|
7937
7937
|
}
|
7938
7938
|
/**
|
7939
7939
|
* Similar to
|
7940
|
-
* {@link Application.
|
7940
|
+
* {@link Application.getLiked},
|
7941
7941
|
* but returns its `@id` URL instead of the object itself.
|
7942
7942
|
*/
|
7943
|
-
get
|
7943
|
+
get likedId() {
|
7944
7944
|
if (this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU.length < 1)
|
7945
7945
|
return null;
|
7946
7946
|
const v = this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
|
@@ -7955,12 +7955,12 @@ export class Application extends Object {
|
|
7955
7955
|
* a {@link Collection} and MAY be filtered on privileges of an authenticated
|
7956
7956
|
* user or as appropriate when no authentication is given.
|
7957
7957
|
*/
|
7958
|
-
async
|
7958
|
+
async getLiked(options = {}) {
|
7959
7959
|
if (this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU.length < 1)
|
7960
7960
|
return null;
|
7961
7961
|
const v = this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
|
7962
7962
|
if (v instanceof URL) {
|
7963
|
-
const fetched = await this.#
|
7963
|
+
const fetched = await this.#fetchLiked(v, options);
|
7964
7964
|
if (fetched == null)
|
7965
7965
|
return null;
|
7966
7966
|
this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU[0] = fetched;
|
@@ -8552,7 +8552,7 @@ export class Application extends Object {
|
|
8552
8552
|
}
|
8553
8553
|
: v);
|
8554
8554
|
if (_3bgkPwJanyTCoVFM9ovRcus8tKkU.length == 1) {
|
8555
|
-
proxy.
|
8555
|
+
proxy.liked = _3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
|
8556
8556
|
}
|
8557
8557
|
const _3sG2Hdwn9qzKGu9mpYkqakAMUkH9 = this.#_3sG2Hdwn9qzKGu9mpYkqakAMUkH9
|
8558
8558
|
// deno-lint-ignore no-explicit-any
|
@@ -12231,13 +12231,13 @@ export class Group extends Object {
|
|
12231
12231
|
"Collection | URL" + ".");
|
12232
12232
|
}
|
12233
12233
|
}
|
12234
|
-
if ("
|
12235
|
-
if (values.
|
12234
|
+
if ("liked" in values && values.liked != null) {
|
12235
|
+
if (values.liked instanceof Collection || values.liked instanceof URL) {
|
12236
12236
|
// @ts-ignore: type is checked above.
|
12237
|
-
this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.
|
12237
|
+
this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
|
12238
12238
|
}
|
12239
12239
|
else {
|
12240
|
-
throw new TypeError("The
|
12240
|
+
throw new TypeError("The liked must be of type " +
|
12241
12241
|
"Collection | URL" + ".");
|
12242
12242
|
}
|
12243
12243
|
}
|
@@ -12457,13 +12457,13 @@ export class Group extends Object {
|
|
12457
12457
|
}
|
12458
12458
|
}
|
12459
12459
|
clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU;
|
12460
|
-
if ("
|
12461
|
-
if (values.
|
12460
|
+
if ("liked" in values && values.liked != null) {
|
12461
|
+
if (values.liked instanceof Collection || values.liked instanceof URL) {
|
12462
12462
|
// @ts-ignore: type is checked above.
|
12463
|
-
clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.
|
12463
|
+
clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
|
12464
12464
|
}
|
12465
12465
|
else {
|
12466
|
-
throw new TypeError("The
|
12466
|
+
throw new TypeError("The liked must be of type " +
|
12467
12467
|
"Collection | URL" + ".");
|
12468
12468
|
}
|
12469
12469
|
}
|
@@ -12980,7 +12980,7 @@ export class Group extends Object {
|
|
12980
12980
|
}
|
12981
12981
|
return v;
|
12982
12982
|
}
|
12983
|
-
async #
|
12983
|
+
async #fetchLiked(url, options = {}) {
|
12984
12984
|
const documentLoader = options.documentLoader ?? this._documentLoader ??
|
12985
12985
|
fetchDocumentLoader;
|
12986
12986
|
const contextLoader = options.contextLoader ?? this._contextLoader ??
|
@@ -13009,10 +13009,10 @@ export class Group extends Object {
|
|
13009
13009
|
}
|
13010
13010
|
/**
|
13011
13011
|
* Similar to
|
13012
|
-
* {@link Group.
|
13012
|
+
* {@link Group.getLiked},
|
13013
13013
|
* but returns its `@id` URL instead of the object itself.
|
13014
13014
|
*/
|
13015
|
-
get
|
13015
|
+
get likedId() {
|
13016
13016
|
if (this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU.length < 1)
|
13017
13017
|
return null;
|
13018
13018
|
const v = this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
|
@@ -13027,12 +13027,12 @@ export class Group extends Object {
|
|
13027
13027
|
* a {@link Collection} and MAY be filtered on privileges of an authenticated
|
13028
13028
|
* user or as appropriate when no authentication is given.
|
13029
13029
|
*/
|
13030
|
-
async
|
13030
|
+
async getLiked(options = {}) {
|
13031
13031
|
if (this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU.length < 1)
|
13032
13032
|
return null;
|
13033
13033
|
const v = this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
|
13034
13034
|
if (v instanceof URL) {
|
13035
|
-
const fetched = await this.#
|
13035
|
+
const fetched = await this.#fetchLiked(v, options);
|
13036
13036
|
if (fetched == null)
|
13037
13037
|
return null;
|
13038
13038
|
this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU[0] = fetched;
|
@@ -13624,7 +13624,7 @@ export class Group extends Object {
|
|
13624
13624
|
}
|
13625
13625
|
: v);
|
13626
13626
|
if (_3bgkPwJanyTCoVFM9ovRcus8tKkU.length == 1) {
|
13627
|
-
proxy.
|
13627
|
+
proxy.liked = _3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
|
13628
13628
|
}
|
13629
13629
|
const _3sG2Hdwn9qzKGu9mpYkqakAMUkH9 = this.#_3sG2Hdwn9qzKGu9mpYkqakAMUkH9
|
13630
13630
|
// deno-lint-ignore no-explicit-any
|
@@ -15643,13 +15643,13 @@ export class Organization extends Object {
|
|
15643
15643
|
"Collection | URL" + ".");
|
15644
15644
|
}
|
15645
15645
|
}
|
15646
|
-
if ("
|
15647
|
-
if (values.
|
15646
|
+
if ("liked" in values && values.liked != null) {
|
15647
|
+
if (values.liked instanceof Collection || values.liked instanceof URL) {
|
15648
15648
|
// @ts-ignore: type is checked above.
|
15649
|
-
this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.
|
15649
|
+
this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
|
15650
15650
|
}
|
15651
15651
|
else {
|
15652
|
-
throw new TypeError("The
|
15652
|
+
throw new TypeError("The liked must be of type " +
|
15653
15653
|
"Collection | URL" + ".");
|
15654
15654
|
}
|
15655
15655
|
}
|
@@ -15869,13 +15869,13 @@ export class Organization extends Object {
|
|
15869
15869
|
}
|
15870
15870
|
}
|
15871
15871
|
clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU;
|
15872
|
-
if ("
|
15873
|
-
if (values.
|
15872
|
+
if ("liked" in values && values.liked != null) {
|
15873
|
+
if (values.liked instanceof Collection || values.liked instanceof URL) {
|
15874
15874
|
// @ts-ignore: type is checked above.
|
15875
|
-
clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.
|
15875
|
+
clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
|
15876
15876
|
}
|
15877
15877
|
else {
|
15878
|
-
throw new TypeError("The
|
15878
|
+
throw new TypeError("The liked must be of type " +
|
15879
15879
|
"Collection | URL" + ".");
|
15880
15880
|
}
|
15881
15881
|
}
|
@@ -16392,7 +16392,7 @@ export class Organization extends Object {
|
|
16392
16392
|
}
|
16393
16393
|
return v;
|
16394
16394
|
}
|
16395
|
-
async #
|
16395
|
+
async #fetchLiked(url, options = {}) {
|
16396
16396
|
const documentLoader = options.documentLoader ?? this._documentLoader ??
|
16397
16397
|
fetchDocumentLoader;
|
16398
16398
|
const contextLoader = options.contextLoader ?? this._contextLoader ??
|
@@ -16421,10 +16421,10 @@ export class Organization extends Object {
|
|
16421
16421
|
}
|
16422
16422
|
/**
|
16423
16423
|
* Similar to
|
16424
|
-
* {@link Organization.
|
16424
|
+
* {@link Organization.getLiked},
|
16425
16425
|
* but returns its `@id` URL instead of the object itself.
|
16426
16426
|
*/
|
16427
|
-
get
|
16427
|
+
get likedId() {
|
16428
16428
|
if (this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU.length < 1)
|
16429
16429
|
return null;
|
16430
16430
|
const v = this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
|
@@ -16439,12 +16439,12 @@ export class Organization extends Object {
|
|
16439
16439
|
* a {@link Collection} and MAY be filtered on privileges of an authenticated
|
16440
16440
|
* user or as appropriate when no authentication is given.
|
16441
16441
|
*/
|
16442
|
-
async
|
16442
|
+
async getLiked(options = {}) {
|
16443
16443
|
if (this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU.length < 1)
|
16444
16444
|
return null;
|
16445
16445
|
const v = this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
|
16446
16446
|
if (v instanceof URL) {
|
16447
|
-
const fetched = await this.#
|
16447
|
+
const fetched = await this.#fetchLiked(v, options);
|
16448
16448
|
if (fetched == null)
|
16449
16449
|
return null;
|
16450
16450
|
this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU[0] = fetched;
|
@@ -17036,7 +17036,7 @@ export class Organization extends Object {
|
|
17036
17036
|
}
|
17037
17037
|
: v);
|
17038
17038
|
if (_3bgkPwJanyTCoVFM9ovRcus8tKkU.length == 1) {
|
17039
|
-
proxy.
|
17039
|
+
proxy.liked = _3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
|
17040
17040
|
}
|
17041
17041
|
const _3sG2Hdwn9qzKGu9mpYkqakAMUkH9 = this.#_3sG2Hdwn9qzKGu9mpYkqakAMUkH9
|
17042
17042
|
// deno-lint-ignore no-explicit-any
|
@@ -17393,13 +17393,13 @@ export class Person extends Object {
|
|
17393
17393
|
"Collection | URL" + ".");
|
17394
17394
|
}
|
17395
17395
|
}
|
17396
|
-
if ("
|
17397
|
-
if (values.
|
17396
|
+
if ("liked" in values && values.liked != null) {
|
17397
|
+
if (values.liked instanceof Collection || values.liked instanceof URL) {
|
17398
17398
|
// @ts-ignore: type is checked above.
|
17399
|
-
this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.
|
17399
|
+
this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
|
17400
17400
|
}
|
17401
17401
|
else {
|
17402
|
-
throw new TypeError("The
|
17402
|
+
throw new TypeError("The liked must be of type " +
|
17403
17403
|
"Collection | URL" + ".");
|
17404
17404
|
}
|
17405
17405
|
}
|
@@ -17619,13 +17619,13 @@ export class Person extends Object {
|
|
17619
17619
|
}
|
17620
17620
|
}
|
17621
17621
|
clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU;
|
17622
|
-
if ("
|
17623
|
-
if (values.
|
17622
|
+
if ("liked" in values && values.liked != null) {
|
17623
|
+
if (values.liked instanceof Collection || values.liked instanceof URL) {
|
17624
17624
|
// @ts-ignore: type is checked above.
|
17625
|
-
clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.
|
17625
|
+
clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
|
17626
17626
|
}
|
17627
17627
|
else {
|
17628
|
-
throw new TypeError("The
|
17628
|
+
throw new TypeError("The liked must be of type " +
|
17629
17629
|
"Collection | URL" + ".");
|
17630
17630
|
}
|
17631
17631
|
}
|
@@ -18142,7 +18142,7 @@ export class Person extends Object {
|
|
18142
18142
|
}
|
18143
18143
|
return v;
|
18144
18144
|
}
|
18145
|
-
async #
|
18145
|
+
async #fetchLiked(url, options = {}) {
|
18146
18146
|
const documentLoader = options.documentLoader ?? this._documentLoader ??
|
18147
18147
|
fetchDocumentLoader;
|
18148
18148
|
const contextLoader = options.contextLoader ?? this._contextLoader ??
|
@@ -18171,10 +18171,10 @@ export class Person extends Object {
|
|
18171
18171
|
}
|
18172
18172
|
/**
|
18173
18173
|
* Similar to
|
18174
|
-
* {@link Person.
|
18174
|
+
* {@link Person.getLiked},
|
18175
18175
|
* but returns its `@id` URL instead of the object itself.
|
18176
18176
|
*/
|
18177
|
-
get
|
18177
|
+
get likedId() {
|
18178
18178
|
if (this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU.length < 1)
|
18179
18179
|
return null;
|
18180
18180
|
const v = this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
|
@@ -18189,12 +18189,12 @@ export class Person extends Object {
|
|
18189
18189
|
* a {@link Collection} and MAY be filtered on privileges of an authenticated
|
18190
18190
|
* user or as appropriate when no authentication is given.
|
18191
18191
|
*/
|
18192
|
-
async
|
18192
|
+
async getLiked(options = {}) {
|
18193
18193
|
if (this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU.length < 1)
|
18194
18194
|
return null;
|
18195
18195
|
const v = this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
|
18196
18196
|
if (v instanceof URL) {
|
18197
|
-
const fetched = await this.#
|
18197
|
+
const fetched = await this.#fetchLiked(v, options);
|
18198
18198
|
if (fetched == null)
|
18199
18199
|
return null;
|
18200
18200
|
this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU[0] = fetched;
|
@@ -18786,7 +18786,7 @@ export class Person extends Object {
|
|
18786
18786
|
}
|
18787
18787
|
: v);
|
18788
18788
|
if (_3bgkPwJanyTCoVFM9ovRcus8tKkU.length == 1) {
|
18789
|
-
proxy.
|
18789
|
+
proxy.liked = _3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
|
18790
18790
|
}
|
18791
18791
|
const _3sG2Hdwn9qzKGu9mpYkqakAMUkH9 = this.#_3sG2Hdwn9qzKGu9mpYkqakAMUkH9
|
18792
18792
|
// deno-lint-ignore no-explicit-any
|
@@ -20893,13 +20893,13 @@ export class Service extends Object {
|
|
20893
20893
|
"Collection | URL" + ".");
|
20894
20894
|
}
|
20895
20895
|
}
|
20896
|
-
if ("
|
20897
|
-
if (values.
|
20896
|
+
if ("liked" in values && values.liked != null) {
|
20897
|
+
if (values.liked instanceof Collection || values.liked instanceof URL) {
|
20898
20898
|
// @ts-ignore: type is checked above.
|
20899
|
-
this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.
|
20899
|
+
this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
|
20900
20900
|
}
|
20901
20901
|
else {
|
20902
|
-
throw new TypeError("The
|
20902
|
+
throw new TypeError("The liked must be of type " +
|
20903
20903
|
"Collection | URL" + ".");
|
20904
20904
|
}
|
20905
20905
|
}
|
@@ -21119,13 +21119,13 @@ export class Service extends Object {
|
|
21119
21119
|
}
|
21120
21120
|
}
|
21121
21121
|
clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU;
|
21122
|
-
if ("
|
21123
|
-
if (values.
|
21122
|
+
if ("liked" in values && values.liked != null) {
|
21123
|
+
if (values.liked instanceof Collection || values.liked instanceof URL) {
|
21124
21124
|
// @ts-ignore: type is checked above.
|
21125
|
-
clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.
|
21125
|
+
clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
|
21126
21126
|
}
|
21127
21127
|
else {
|
21128
|
-
throw new TypeError("The
|
21128
|
+
throw new TypeError("The liked must be of type " +
|
21129
21129
|
"Collection | URL" + ".");
|
21130
21130
|
}
|
21131
21131
|
}
|
@@ -21642,7 +21642,7 @@ export class Service extends Object {
|
|
21642
21642
|
}
|
21643
21643
|
return v;
|
21644
21644
|
}
|
21645
|
-
async #
|
21645
|
+
async #fetchLiked(url, options = {}) {
|
21646
21646
|
const documentLoader = options.documentLoader ?? this._documentLoader ??
|
21647
21647
|
fetchDocumentLoader;
|
21648
21648
|
const contextLoader = options.contextLoader ?? this._contextLoader ??
|
@@ -21671,10 +21671,10 @@ export class Service extends Object {
|
|
21671
21671
|
}
|
21672
21672
|
/**
|
21673
21673
|
* Similar to
|
21674
|
-
* {@link Service.
|
21674
|
+
* {@link Service.getLiked},
|
21675
21675
|
* but returns its `@id` URL instead of the object itself.
|
21676
21676
|
*/
|
21677
|
-
get
|
21677
|
+
get likedId() {
|
21678
21678
|
if (this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU.length < 1)
|
21679
21679
|
return null;
|
21680
21680
|
const v = this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
|
@@ -21689,12 +21689,12 @@ export class Service extends Object {
|
|
21689
21689
|
* a {@link Collection} and MAY be filtered on privileges of an authenticated
|
21690
21690
|
* user or as appropriate when no authentication is given.
|
21691
21691
|
*/
|
21692
|
-
async
|
21692
|
+
async getLiked(options = {}) {
|
21693
21693
|
if (this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU.length < 1)
|
21694
21694
|
return null;
|
21695
21695
|
const v = this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
|
21696
21696
|
if (v instanceof URL) {
|
21697
|
-
const fetched = await this.#
|
21697
|
+
const fetched = await this.#fetchLiked(v, options);
|
21698
21698
|
if (fetched == null)
|
21699
21699
|
return null;
|
21700
21700
|
this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU[0] = fetched;
|
@@ -22286,7 +22286,7 @@ export class Service extends Object {
|
|
22286
22286
|
}
|
22287
22287
|
: v);
|
22288
22288
|
if (_3bgkPwJanyTCoVFM9ovRcus8tKkU.length == 1) {
|
22289
|
-
proxy.
|
22289
|
+
proxy.liked = _3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
|
22290
22290
|
}
|
22291
22291
|
const _3sG2Hdwn9qzKGu9mpYkqakAMUkH9 = this.#_3sG2Hdwn9qzKGu9mpYkqakAMUkH9
|
22292
22292
|
// deno-lint-ignore no-explicit-any
|
package/package.json
CHANGED
@@ -81,6 +81,14 @@ export interface Context<TContextData> {
|
|
81
81
|
* @throws {RouterError} If no followers collection is available.
|
82
82
|
*/
|
83
83
|
getFollowersUri(handle: string): URL;
|
84
|
+
/**
|
85
|
+
* Builds the URI of an actor's liked collection with the given handle.
|
86
|
+
* @param handle The actor's handle.
|
87
|
+
* @returns The actor's liked collection URI.
|
88
|
+
* @throws {RouterError} If no liked collection is available.
|
89
|
+
* @since 0.11.0
|
90
|
+
*/
|
91
|
+
getLikedUri(handle: string): URL;
|
84
92
|
/**
|
85
93
|
* Determines the type of the URI and extracts the associated data.
|
86
94
|
* @param uri The URI to parse.
|
@@ -281,6 +289,14 @@ export type ParseUriResult =
|
|
281
289
|
| {
|
282
290
|
type: "followers";
|
283
291
|
handle: string;
|
292
|
+
}
|
293
|
+
/**
|
294
|
+
* The case of a liked collection URI.
|
295
|
+
* @since 0.11.0
|
296
|
+
*/
|
297
|
+
| {
|
298
|
+
type: "liked";
|
299
|
+
handle: string;
|
284
300
|
};
|
285
301
|
/**
|
286
302
|
* Options for {@link Context.sendActivity} method and
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/federation/context.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EACV,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACP,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,OAAO,CAAC,YAAY;IACnC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IAEvC;;;;;OAKG;IACH,cAAc,IAAI,GAAG,CAAC;IAEtB;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAEjC;;;;;;;;OAQG;IACH,YAAY,CAAC,OAAO,SAAS,MAAM,EAEjC,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,GAAG,CAAC;IAEP;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAElC;;;;OAIG;IACH,WAAW,IAAI,GAAG,CAAC;IAEnB;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAEjC;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAErC;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAErC;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc,GAAG,IAAI,CAAC;IAE1C;;;;;OAKG;IACH,qBAAqB,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC;IAEpD;;;;;OAKG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAE1D;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAE9D;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEzE;;;;;;;;;OASG;IACH,iBAAiB,CACf,QAAQ,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAA;KAAE,GACtD,cAAc,CAAC;IAElB;;;;;;OAMG;IACH,YAAY,CACV,MAAM,EAAE,aAAa,GAAG,aAAa,EAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC5D,UAAU,EAAE,SAAS,GAAG,SAAS,EAAE,EACnC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,YAAY,CAAE,SAAQ,OAAO,CAAC,YAAY,CAAC;IACzE;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAElB;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAEhD;;;;;;;;;OASG;IACH,SAAS,CAAC,OAAO,SAAS,MAAM,EAE9B,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAE3B;;;;;;;;;;;OAWG;IACH,YAAY,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAEjD;;;;;;;;;;;;OAYG;IACH,iBAAiB,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAE3C;;;;;;OAMG;IACH,YAAY,CACV,MAAM,EAAE,aAAa,GAAG,aAAa,EAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC5D,UAAU,EAAE,SAAS,GAAG,SAAS,EAAE,EACnC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;OAQG;IACH,YAAY,CACV,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC1B,UAAU,EAAE,WAAW,EACvB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc;AACxB;;GAEG;AACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACnC;;GAEG;GACD;IACA,IAAI,EAAE,QAAQ,CAAC;IAEf,KAAK,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,CAAC;IAC1D,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AACD;;;GAGG;GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;AACpC;;GAEG;GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACpC;;GAEG;GACD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACvC;;GAEG;GACD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/federation/context.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EACV,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACP,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,OAAO,CAAC,YAAY;IACnC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IAEvC;;;;;OAKG;IACH,cAAc,IAAI,GAAG,CAAC;IAEtB;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAEjC;;;;;;;;OAQG;IACH,YAAY,CAAC,OAAO,SAAS,MAAM,EAEjC,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,GAAG,CAAC;IAEP;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAElC;;;;OAIG;IACH,WAAW,IAAI,GAAG,CAAC;IAEnB;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAEjC;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAErC;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAErC;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAEjC;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc,GAAG,IAAI,CAAC;IAE1C;;;;;OAKG;IACH,qBAAqB,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC;IAEpD;;;;;OAKG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAE1D;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAE9D;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEzE;;;;;;;;;OASG;IACH,iBAAiB,CACf,QAAQ,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAA;KAAE,GACtD,cAAc,CAAC;IAElB;;;;;;OAMG;IACH,YAAY,CACV,MAAM,EAAE,aAAa,GAAG,aAAa,EAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC5D,UAAU,EAAE,SAAS,GAAG,SAAS,EAAE,EACnC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,YAAY,CAAE,SAAQ,OAAO,CAAC,YAAY,CAAC;IACzE;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAElB;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAEhD;;;;;;;;;OASG;IACH,SAAS,CAAC,OAAO,SAAS,MAAM,EAE9B,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAE3B;;;;;;;;;;;OAWG;IACH,YAAY,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAEjD;;;;;;;;;;;;OAYG;IACH,iBAAiB,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAE3C;;;;;;OAMG;IACH,YAAY,CACV,MAAM,EAAE,aAAa,GAAG,aAAa,EAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC5D,UAAU,EAAE,SAAS,GAAG,SAAS,EAAE,EACnC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;OAQG;IACH,YAAY,CACV,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC1B,UAAU,EAAE,WAAW,EACvB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc;AACxB;;GAEG;AACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACnC;;GAEG;GACD;IACA,IAAI,EAAE,QAAQ,CAAC;IAEf,KAAK,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,CAAC;IAC1D,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AACD;;;GAGG;GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;AACpC;;GAEG;GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACpC;;GAEG;GACD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACvC;;GAEG;GACD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACvC;;;GAGG;GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,OAAO,CAAC,aAAa;IACzD;;OAEG;IACH,KAAK,EAAE,GAAG,CAAC;IAEX;;OAEG;IACH,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;CACpB"}
|