@fedify/fedify 0.11.0-dev.237 → 0.11.0-dev.239
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/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":"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
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/federation/context.ts"],"names":[],"mappings":"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"}
|