@fedify/fedify 1.0.29 → 1.0.30

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
@@ -3,6 +3,18 @@
3
3
  Fedify changelog
4
4
  ================
5
5
 
6
+ Version 1.0.30
7
+ --------------
8
+
9
+ Released on September 17, 2025.
10
+
11
+ - Improved the AT Protocol URI workaround to handle all DID methods and
12
+ edge cases. The fix now properly percent-encodes any authority component
13
+ in `at://` URIs, supporting `did:web`, `did:key`, and other DID methods
14
+ beyond just `did:plc`. Also handles URIs without path components
15
+ correctly. [[#436]]
16
+
17
+
6
18
  Version 1.0.29
7
19
  --------------
8
20
 
@@ -4820,8 +4820,14 @@ export class Object {
4820
4820
  const decoded = typeof v === "object" && "@id" in v &&
4821
4821
  typeof v["@id"] === "string" &&
4822
4822
  v["@id"] !== "" && v["@id"] !== "/"
4823
- ? v["@id"].startsWith("at://did:plc:")
4824
- ? new URL("at://did%3Aplc%3A" + v["@id"].slice(13))
4823
+ ? v["@id"].startsWith("at://")
4824
+ ? new URL("at://" +
4825
+ encodeURIComponent(v["@id"].includes("/", 5)
4826
+ ? v["@id"].slice(5, v["@id"].indexOf("/", 5))
4827
+ : v["@id"].slice(5)) +
4828
+ (v["@id"].includes("/", 5)
4829
+ ? v["@id"].slice(v["@id"].indexOf("/", 5))
4830
+ : ""))
4825
4831
  : new URL(v["@id"])
4826
4832
  : typeof v === "object" && "@type" in v &&
4827
4833
  Array.isArray(v["@type"]) &&
@@ -16770,8 +16776,14 @@ export class Endpoints {
16770
16776
  : _2JCYDbSxEHCCLdBYed33cCETfGyR_proxyUrl__array) {
16771
16777
  if (v == null)
16772
16778
  continue;
16773
- _2JCYDbSxEHCCLdBYed33cCETfGyR_proxyUrl.push(v["@id"].startsWith("at://did:plc:")
16774
- ? new URL("at://did%3Aplc%3A" + v["@id"].slice(13))
16779
+ _2JCYDbSxEHCCLdBYed33cCETfGyR_proxyUrl.push(v["@id"].startsWith("at://")
16780
+ ? new URL("at://" +
16781
+ encodeURIComponent(v["@id"].includes("/", 5)
16782
+ ? v["@id"].slice(5, v["@id"].indexOf("/", 5))
16783
+ : v["@id"].slice(5)) +
16784
+ (v["@id"].includes("/", 5)
16785
+ ? v["@id"].slice(v["@id"].indexOf("/", 5))
16786
+ : ""))
16775
16787
  : new URL(v["@id"]));
16776
16788
  }
16777
16789
  instance.#_2JCYDbSxEHCCLdBYed33cCETfGyR_proxyUrl =
@@ -16789,8 +16801,14 @@ export class Endpoints {
16789
16801
  : _25S6UmgzDead8hxL5sQFezZTAusd_oauthAuthorizationEndpoint__array) {
16790
16802
  if (v == null)
16791
16803
  continue;
16792
- _25S6UmgzDead8hxL5sQFezZTAusd_oauthAuthorizationEndpoint.push(v["@id"].startsWith("at://did:plc:")
16793
- ? new URL("at://did%3Aplc%3A" + v["@id"].slice(13))
16804
+ _25S6UmgzDead8hxL5sQFezZTAusd_oauthAuthorizationEndpoint.push(v["@id"].startsWith("at://")
16805
+ ? new URL("at://" +
16806
+ encodeURIComponent(v["@id"].includes("/", 5)
16807
+ ? v["@id"].slice(5, v["@id"].indexOf("/", 5))
16808
+ : v["@id"].slice(5)) +
16809
+ (v["@id"].includes("/", 5)
16810
+ ? v["@id"].slice(v["@id"].indexOf("/", 5))
16811
+ : ""))
16794
16812
  : new URL(v["@id"]));
16795
16813
  }
16796
16814
  instance.#_25S6UmgzDead8hxL5sQFezZTAusd_oauthAuthorizationEndpoint =
@@ -16805,8 +16823,14 @@ export class Endpoints {
16805
16823
  : _iAMxqrSba7yBCRB1FZ5kEVdKEZ3_oauthTokenEndpoint__array) {
16806
16824
  if (v == null)
16807
16825
  continue;
16808
- _iAMxqrSba7yBCRB1FZ5kEVdKEZ3_oauthTokenEndpoint.push(v["@id"].startsWith("at://did:plc:")
16809
- ? new URL("at://did%3Aplc%3A" + v["@id"].slice(13))
16826
+ _iAMxqrSba7yBCRB1FZ5kEVdKEZ3_oauthTokenEndpoint.push(v["@id"].startsWith("at://")
16827
+ ? new URL("at://" +
16828
+ encodeURIComponent(v["@id"].includes("/", 5)
16829
+ ? v["@id"].slice(5, v["@id"].indexOf("/", 5))
16830
+ : v["@id"].slice(5)) +
16831
+ (v["@id"].includes("/", 5)
16832
+ ? v["@id"].slice(v["@id"].indexOf("/", 5))
16833
+ : ""))
16810
16834
  : new URL(v["@id"]));
16811
16835
  }
16812
16836
  instance.#_iAMxqrSba7yBCRB1FZ5kEVdKEZ3_oauthTokenEndpoint =
@@ -16821,8 +16845,14 @@ export class Endpoints {
16821
16845
  : _8Bx9qN8oU7Bpt2xi6khaxWp1gMr_provideClientKey__array) {
16822
16846
  if (v == null)
16823
16847
  continue;
16824
- _8Bx9qN8oU7Bpt2xi6khaxWp1gMr_provideClientKey.push(v["@id"].startsWith("at://did:plc:")
16825
- ? new URL("at://did%3Aplc%3A" + v["@id"].slice(13))
16848
+ _8Bx9qN8oU7Bpt2xi6khaxWp1gMr_provideClientKey.push(v["@id"].startsWith("at://")
16849
+ ? new URL("at://" +
16850
+ encodeURIComponent(v["@id"].includes("/", 5)
16851
+ ? v["@id"].slice(5, v["@id"].indexOf("/", 5))
16852
+ : v["@id"].slice(5)) +
16853
+ (v["@id"].includes("/", 5)
16854
+ ? v["@id"].slice(v["@id"].indexOf("/", 5))
16855
+ : ""))
16826
16856
  : new URL(v["@id"]));
16827
16857
  }
16828
16858
  instance.#_8Bx9qN8oU7Bpt2xi6khaxWp1gMr_provideClientKey =
@@ -16837,8 +16867,14 @@ export class Endpoints {
16837
16867
  : _3dU7PMVQZJpsCpo2F4RQXxBXdPmS_signClientKey__array) {
16838
16868
  if (v == null)
16839
16869
  continue;
16840
- _3dU7PMVQZJpsCpo2F4RQXxBXdPmS_signClientKey.push(v["@id"].startsWith("at://did:plc:")
16841
- ? new URL("at://did%3Aplc%3A" + v["@id"].slice(13))
16870
+ _3dU7PMVQZJpsCpo2F4RQXxBXdPmS_signClientKey.push(v["@id"].startsWith("at://")
16871
+ ? new URL("at://" +
16872
+ encodeURIComponent(v["@id"].includes("/", 5)
16873
+ ? v["@id"].slice(5, v["@id"].indexOf("/", 5))
16874
+ : v["@id"].slice(5)) +
16875
+ (v["@id"].includes("/", 5)
16876
+ ? v["@id"].slice(v["@id"].indexOf("/", 5))
16877
+ : ""))
16842
16878
  : new URL(v["@id"]));
16843
16879
  }
16844
16880
  instance.#_3dU7PMVQZJpsCpo2F4RQXxBXdPmS_signClientKey =
@@ -16853,8 +16889,14 @@ export class Endpoints {
16853
16889
  : _3JprUSDLVqqX4dwHRi37qGZZCRCc_sharedInbox__array) {
16854
16890
  if (v == null)
16855
16891
  continue;
16856
- _3JprUSDLVqqX4dwHRi37qGZZCRCc_sharedInbox.push(v["@id"].startsWith("at://did:plc:")
16857
- ? new URL("at://did%3Aplc%3A" + v["@id"].slice(13))
16892
+ _3JprUSDLVqqX4dwHRi37qGZZCRCc_sharedInbox.push(v["@id"].startsWith("at://")
16893
+ ? new URL("at://" +
16894
+ encodeURIComponent(v["@id"].includes("/", 5)
16895
+ ? v["@id"].slice(5, v["@id"].indexOf("/", 5))
16896
+ : v["@id"].slice(5)) +
16897
+ (v["@id"].includes("/", 5)
16898
+ ? v["@id"].slice(v["@id"].indexOf("/", 5))
16899
+ : ""))
16858
16900
  : new URL(v["@id"]));
16859
16901
  }
16860
16902
  instance.#_3JprUSDLVqqX4dwHRi37qGZZCRCc_sharedInbox =
@@ -21078,8 +21120,14 @@ export class Link {
21078
21120
  : _pVjLsybKQdmkjuU7MHjiVmNnuj7_href__array) {
21079
21121
  if (v == null)
21080
21122
  continue;
21081
- _pVjLsybKQdmkjuU7MHjiVmNnuj7_href.push(v["@id"].startsWith("at://did:plc:")
21082
- ? new URL("at://did%3Aplc%3A" + v["@id"].slice(13))
21123
+ _pVjLsybKQdmkjuU7MHjiVmNnuj7_href.push(v["@id"].startsWith("at://")
21124
+ ? new URL("at://" +
21125
+ encodeURIComponent(v["@id"].includes("/", 5)
21126
+ ? v["@id"].slice(5, v["@id"].indexOf("/", 5))
21127
+ : v["@id"].slice(5)) +
21128
+ (v["@id"].includes("/", 5)
21129
+ ? v["@id"].slice(v["@id"].indexOf("/", 5))
21130
+ : ""))
21083
21131
  : new URL(v["@id"]));
21084
21132
  }
21085
21133
  instance.#_pVjLsybKQdmkjuU7MHjiVmNnuj7_href =
@@ -30737,8 +30785,14 @@ export class Place extends Object {
30737
30785
  : typeof v === "object" && "@id" in v &&
30738
30786
  typeof v["@id"] === "string" &&
30739
30787
  v["@id"] !== "" && v["@id"] !== "/"
30740
- ? v["@id"].startsWith("at://did:plc:")
30741
- ? new URL("at://did%3Aplc%3A" + v["@id"].slice(13))
30788
+ ? v["@id"].startsWith("at://")
30789
+ ? new URL("at://" +
30790
+ encodeURIComponent(v["@id"].includes("/", 5)
30791
+ ? v["@id"].slice(5, v["@id"].indexOf("/", 5))
30792
+ : v["@id"].slice(5)) +
30793
+ (v["@id"].includes("/", 5)
30794
+ ? v["@id"].slice(v["@id"].indexOf("/", 5))
30795
+ : ""))
30742
30796
  : new URL(v["@id"])
30743
30797
  : undefined;
30744
30798
  if (typeof decoded === "undefined")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fedify/fedify",
3
- "version": "1.0.29",
3
+ "version": "1.0.30",
4
4
  "description": "An ActivityPub server framework",
5
5
  "keywords": [
6
6
  "ActivityPub",