@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 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 `Federation.setInboxDispatcher()` method. [[#71]]
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/mod.js";
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) {
@@ -130,7 +130,7 @@ properties:
130
130
  range:
131
131
  - "https://www.w3.org/ns/activitystreams#Collection"
132
132
 
133
- - singularName: linked
133
+ - singularName: liked
134
134
  functional: true
135
135
  uri: "https://www.w3.org/ns/activitystreams#liked"
136
136
  description: |
@@ -130,7 +130,7 @@ properties:
130
130
  range:
131
131
  - "https://www.w3.org/ns/activitystreams#Collection"
132
132
 
133
- - singularName: linked
133
+ - singularName: liked
134
134
  functional: true
135
135
  uri: "https://www.w3.org/ns/activitystreams#liked"
136
136
  description: |
@@ -130,7 +130,7 @@ properties:
130
130
  range:
131
131
  - "https://www.w3.org/ns/activitystreams#Collection"
132
132
 
133
- - singularName: linked
133
+ - singularName: liked
134
134
  functional: true
135
135
  uri: "https://www.w3.org/ns/activitystreams#liked"
136
136
  description: |
@@ -130,7 +130,7 @@ properties:
130
130
  range:
131
131
  - "https://www.w3.org/ns/activitystreams#Collection"
132
132
 
133
- - singularName: linked
133
+ - singularName: liked
134
134
  functional: true
135
135
  uri: "https://www.w3.org/ns/activitystreams#liked"
136
136
  description: |
@@ -130,7 +130,7 @@ properties:
130
130
  range:
131
131
  - "https://www.w3.org/ns/activitystreams#Collection"
132
132
 
133
- - singularName: linked
133
+ - singularName: liked
134
134
  functional: true
135
135
  uri: "https://www.w3.org/ns/activitystreams#liked"
136
136
  description: |
@@ -7159,13 +7159,13 @@ export class Application extends Object {
7159
7159
  "Collection | URL" + ".");
7160
7160
  }
7161
7161
  }
7162
- if ("linked" in values && values.linked != null) {
7163
- if (values.linked instanceof Collection || values.linked instanceof URL) {
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.linked];
7165
+ this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
7166
7166
  }
7167
7167
  else {
7168
- throw new TypeError("The linked must be of type " +
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 ("linked" in values && values.linked != null) {
7389
- if (values.linked instanceof Collection || values.linked instanceof URL) {
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.linked];
7391
+ clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
7392
7392
  }
7393
7393
  else {
7394
- throw new TypeError("The linked must be of type " +
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 #fetchLinked(url, options = {}) {
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.getLinked},
7940
+ * {@link Application.getLiked},
7941
7941
  * but returns its `@id` URL instead of the object itself.
7942
7942
  */
7943
- get linkedId() {
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 getLinked(options = {}) {
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.#fetchLinked(v, options);
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.linked = _3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
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 ("linked" in values && values.linked != null) {
12235
- if (values.linked instanceof Collection || values.linked instanceof URL) {
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.linked];
12237
+ this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
12238
12238
  }
12239
12239
  else {
12240
- throw new TypeError("The linked must be of type " +
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 ("linked" in values && values.linked != null) {
12461
- if (values.linked instanceof Collection || values.linked instanceof URL) {
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.linked];
12463
+ clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
12464
12464
  }
12465
12465
  else {
12466
- throw new TypeError("The linked must be of type " +
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 #fetchLinked(url, options = {}) {
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.getLinked},
13012
+ * {@link Group.getLiked},
13013
13013
  * but returns its `@id` URL instead of the object itself.
13014
13014
  */
13015
- get linkedId() {
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 getLinked(options = {}) {
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.#fetchLinked(v, options);
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.linked = _3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
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 ("linked" in values && values.linked != null) {
15647
- if (values.linked instanceof Collection || values.linked instanceof URL) {
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.linked];
15649
+ this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
15650
15650
  }
15651
15651
  else {
15652
- throw new TypeError("The linked must be of type " +
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 ("linked" in values && values.linked != null) {
15873
- if (values.linked instanceof Collection || values.linked instanceof URL) {
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.linked];
15875
+ clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
15876
15876
  }
15877
15877
  else {
15878
- throw new TypeError("The linked must be of type " +
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 #fetchLinked(url, options = {}) {
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.getLinked},
16424
+ * {@link Organization.getLiked},
16425
16425
  * but returns its `@id` URL instead of the object itself.
16426
16426
  */
16427
- get linkedId() {
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 getLinked(options = {}) {
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.#fetchLinked(v, options);
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.linked = _3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
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 ("linked" in values && values.linked != null) {
17397
- if (values.linked instanceof Collection || values.linked instanceof URL) {
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.linked];
17399
+ this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
17400
17400
  }
17401
17401
  else {
17402
- throw new TypeError("The linked must be of type " +
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 ("linked" in values && values.linked != null) {
17623
- if (values.linked instanceof Collection || values.linked instanceof URL) {
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.linked];
17625
+ clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
17626
17626
  }
17627
17627
  else {
17628
- throw new TypeError("The linked must be of type " +
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 #fetchLinked(url, options = {}) {
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.getLinked},
18174
+ * {@link Person.getLiked},
18175
18175
  * but returns its `@id` URL instead of the object itself.
18176
18176
  */
18177
- get linkedId() {
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 getLinked(options = {}) {
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.#fetchLinked(v, options);
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.linked = _3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
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 ("linked" in values && values.linked != null) {
20897
- if (values.linked instanceof Collection || values.linked instanceof URL) {
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.linked];
20899
+ this.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
20900
20900
  }
20901
20901
  else {
20902
- throw new TypeError("The linked must be of type " +
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 ("linked" in values && values.linked != null) {
21123
- if (values.linked instanceof Collection || values.linked instanceof URL) {
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.linked];
21125
+ clone.#_3bgkPwJanyTCoVFM9ovRcus8tKkU = [values.liked];
21126
21126
  }
21127
21127
  else {
21128
- throw new TypeError("The linked must be of type " +
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 #fetchLinked(url, options = {}) {
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.getLinked},
21674
+ * {@link Service.getLiked},
21675
21675
  * but returns its `@id` URL instead of the object itself.
21676
21676
  */
21677
- get linkedId() {
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 getLinked(options = {}) {
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.#fetchLinked(v, options);
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.linked = _3bgkPwJanyTCoVFM9ovRcus8tKkU[0];
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fedify/fedify",
3
- "version": "0.11.0-dev.237+00522be8",
3
+ "version": "0.11.0-dev.239+558eb733",
4
4
  "description": "An ActivityPub server framework",
5
5
  "keywords": [
6
6
  "ActivityPub",
@@ -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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"}