@fedify/fedify 1.3.0 → 1.3.2

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.
Files changed (43) hide show
  1. package/CHANGES.md +80 -6
  2. package/esm/deno.js +1 -1
  3. package/esm/federation/collection.js +1 -1
  4. package/esm/federation/handler.js +1 -1
  5. package/esm/federation/inbox.js +1 -0
  6. package/esm/federation/middleware.js +1 -0
  7. package/esm/runtime/docloader.js +12 -1
  8. package/esm/runtime/key.js +3 -3
  9. package/esm/sig/http.js +2 -2
  10. package/esm/sig/ld.js +2 -2
  11. package/esm/sig/proof.js +1 -1
  12. package/esm/vocab/vocab.js +173 -173
  13. package/package.json +1 -1
  14. package/types/deps/jsr.io/@std/encoding/{1.0.5 → 1.0.6}/_validate_binary_like.d.ts.map +1 -1
  15. package/types/deps/jsr.io/@std/encoding/{1.0.5 → 1.0.6}/base64.d.ts.map +1 -1
  16. package/types/deps/jsr.io/@std/encoding/{1.0.5 → 1.0.6}/base64url.d.ts.map +1 -1
  17. package/types/deps/jsr.io/@std/encoding/{1.0.5 → 1.0.6}/hex.d.ts.map +1 -1
  18. package/types/deps/jsr.io/@std/http/{1.0.11 → 1.0.12}/_negotiation/common.d.ts.map +1 -1
  19. package/types/deps/jsr.io/@std/http/{1.0.11 → 1.0.12}/_negotiation/encoding.d.ts.map +1 -1
  20. package/types/deps/jsr.io/@std/http/{1.0.11 → 1.0.12}/_negotiation/language.d.ts.map +1 -1
  21. package/types/deps/jsr.io/@std/http/{1.0.11 → 1.0.12}/_negotiation/media_type.d.ts.map +1 -1
  22. package/types/deps/jsr.io/@std/http/{1.0.11 → 1.0.12}/negotiation.d.ts.map +1 -1
  23. package/types/federation/inbox.d.ts.map +1 -1
  24. package/types/federation/middleware.d.ts.map +1 -1
  25. package/types/runtime/docloader.d.ts.map +1 -1
  26. /package/esm/deps/jsr.io/@std/encoding/{1.0.5 → 1.0.6}/_validate_binary_like.js +0 -0
  27. /package/esm/deps/jsr.io/@std/encoding/{1.0.5 → 1.0.6}/base64.js +0 -0
  28. /package/esm/deps/jsr.io/@std/encoding/{1.0.5 → 1.0.6}/base64url.js +0 -0
  29. /package/esm/deps/jsr.io/@std/encoding/{1.0.5 → 1.0.6}/hex.js +0 -0
  30. /package/esm/deps/jsr.io/@std/http/{1.0.11 → 1.0.12}/_negotiation/common.js +0 -0
  31. /package/esm/deps/jsr.io/@std/http/{1.0.11 → 1.0.12}/_negotiation/encoding.js +0 -0
  32. /package/esm/deps/jsr.io/@std/http/{1.0.11 → 1.0.12}/_negotiation/language.js +0 -0
  33. /package/esm/deps/jsr.io/@std/http/{1.0.11 → 1.0.12}/_negotiation/media_type.js +0 -0
  34. /package/esm/deps/jsr.io/@std/http/{1.0.11 → 1.0.12}/negotiation.js +0 -0
  35. /package/types/deps/jsr.io/@std/encoding/{1.0.5 → 1.0.6}/_validate_binary_like.d.ts +0 -0
  36. /package/types/deps/jsr.io/@std/encoding/{1.0.5 → 1.0.6}/base64.d.ts +0 -0
  37. /package/types/deps/jsr.io/@std/encoding/{1.0.5 → 1.0.6}/base64url.d.ts +0 -0
  38. /package/types/deps/jsr.io/@std/encoding/{1.0.5 → 1.0.6}/hex.d.ts +0 -0
  39. /package/types/deps/jsr.io/@std/http/{1.0.11 → 1.0.12}/_negotiation/common.d.ts +0 -0
  40. /package/types/deps/jsr.io/@std/http/{1.0.11 → 1.0.12}/_negotiation/encoding.d.ts +0 -0
  41. /package/types/deps/jsr.io/@std/http/{1.0.11 → 1.0.12}/_negotiation/language.d.ts +0 -0
  42. /package/types/deps/jsr.io/@std/http/{1.0.11 → 1.0.12}/_negotiation/media_type.d.ts +0 -0
  43. /package/types/deps/jsr.io/@std/http/{1.0.11 → 1.0.12}/negotiation.d.ts +0 -0
package/CHANGES.md CHANGED
@@ -3,6 +3,24 @@
3
3
  Fedify changelog
4
4
  ================
5
5
 
6
+ Version 1.3.2
7
+ -------------
8
+
9
+ Released on December 18, 2024.
10
+
11
+ - Fixed the default document loader to handle the `Link` header with
12
+ incorrect syntax. [[#196]]
13
+
14
+
15
+ Version 1.3.1
16
+ -------------
17
+
18
+ Released on December 11, 2024.
19
+
20
+ - Fixed idempotence check in inbox listeners to ensure activities for
21
+ different origins are processed correctly.
22
+
23
+
6
24
  Version 1.3.0
7
25
  -------------
8
26
 
@@ -120,6 +138,24 @@ Released on November 30, 2024.
120
138
  [#193]: https://github.com/dahlia/fedify/issues/193
121
139
 
122
140
 
141
+ Version 1.2.10
142
+ --------------
143
+
144
+ Released on December 18, 2024.
145
+
146
+ - Fixed the default document loader to handle the `Link` header with
147
+ incorrect syntax. [[#196]]
148
+
149
+
150
+ Version 1.2.9
151
+ -------------
152
+
153
+ Released on December 11, 2024.
154
+
155
+ - Fixed idempotence check in inbox listeners to ensure activities for
156
+ different origins are processed correctly.
157
+
158
+
123
159
  Version 1.2.8
124
160
  -------------
125
161
 
@@ -139,7 +175,7 @@ Released on November 23, 2024.
139
175
  Version 1.2.7
140
176
  -------------
141
177
 
142
- Released on December 22, 2024.
178
+ Released on November 22, 2024.
143
179
 
144
180
  - Fixed a bug where `lookupWebFinger()` function had thrown a `TypeError`
145
181
  when the *.well-known/webfinger* redirects to a relative URI. [[#166]]
@@ -148,7 +184,7 @@ Released on December 22, 2024.
148
184
  Version 1.2.6
149
185
  -------------
150
186
 
151
- Released on December 19, 2024.
187
+ Released on November 19, 2024.
152
188
 
153
189
  - Fix a bug where `Actor`'s `inbox` and `outbox` properties had not been
154
190
  able to be set to an `OrderedCollectionPage` object, even though it is
@@ -326,6 +362,24 @@ Released on October 31, 2024.
326
362
  [#118]: https://github.com/dahlia/fedify/issues/118
327
363
 
328
364
 
365
+ Version 1.1.10
366
+ --------------
367
+
368
+ Released on December 18, 2024.
369
+
370
+ - Fixed the default document loader to handle the `Link` header with
371
+ incorrect syntax. [[#196]]
372
+
373
+
374
+ Version 1.1.9
375
+ -------------
376
+
377
+ Released on December 11, 2024.
378
+
379
+ - Fixed idempotence check in inbox listeners to ensure activities for
380
+ different origins are processed correctly.
381
+
382
+
329
383
  Version 1.1.8
330
384
  -------------
331
385
 
@@ -411,7 +465,7 @@ Released on November 19, 2024.
411
465
  Version 1.1.5
412
466
  -------------
413
467
 
414
- Released on December 14, 2024.
468
+ Released on November 14, 2024.
415
469
 
416
470
  - Suppressed a `TypeError` with a message <q>unusable</q> due to Node.js's
417
471
  mysterious behavior. [[#159]]
@@ -573,10 +627,30 @@ Released on October 20, 2024.
573
627
  [#150]: https://github.com/dahlia/fedify/issues/150
574
628
 
575
629
 
630
+ Version 1.0.13
631
+ --------------
632
+
633
+ Released on December 18, 2024.
634
+
635
+ - Fixed the default document loader to handle the `Link` header with
636
+ incorrect syntax. [[#196]]
637
+
638
+ [#196]: https://github.com/dahlia/fedify/issues/196
639
+
640
+
641
+ Version 1.0.12
642
+ --------------
643
+
644
+ Released on December 11, 2024.
645
+
646
+ - Fixed idempotence check in inbox listeners to ensure activities for
647
+ different origins are processed correctly.
648
+
649
+
576
650
  Version 1.0.11
577
651
  --------------
578
652
 
579
- Released on December 22, 2024.
653
+ Released on November 22, 2024.
580
654
 
581
655
  - Fixed a bug where `lookupWebFinger()` function had thrown a `TypeError`
582
656
  when the *.well-known/webfinger* redirects to a relative URI. [[#166]]
@@ -585,7 +659,7 @@ Released on December 22, 2024.
585
659
  Version 1.0.10
586
660
  --------------
587
661
 
588
- Released on December 19, 2024.
662
+ Released on November 19, 2024.
589
663
 
590
664
  - Fix a bug where `Actor`'s `inbox` and `outbox` properties had not been
591
665
  able to be set to an `OrderedCollectionPage` object, even though it is
@@ -642,7 +716,7 @@ Released on December 19, 2024.
642
716
  Version 1.0.9
643
717
  -------------
644
718
 
645
- Released on December 14, 2024.
719
+ Released on November 14, 2024.
646
720
 
647
721
  - Suppressed a `TypeError` with a message <q>unusable</q> due to Node.js's
648
722
  mysterious behavior. [[#159]]
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "@fedify/fedify",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "license": "MIT",
5
5
  "exports": {
6
6
  ".": "./mod.ts",
@@ -1,5 +1,5 @@
1
1
  import * as dntShim from "../_dnt.shims.js";
2
- import { encodeHex } from "../deps/jsr.io/@std/encoding/1.0.5/hex.js";
2
+ import { encodeHex } from "../deps/jsr.io/@std/encoding/1.0.6/hex.js";
3
3
  /**
4
4
  * Calculates the [partial follower collection digest][1].
5
5
  *
@@ -1,6 +1,6 @@
1
1
  import { getLogger } from "@logtape/logtape";
2
2
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
3
- import { accepts } from "../deps/jsr.io/@std/http/1.0.11/negotiation.js";
3
+ import { accepts } from "../deps/jsr.io/@std/http/1.0.12/negotiation.js";
4
4
  import metadata from "../deno.js";
5
5
  import { verifyRequest } from "../sig/http.js";
6
6
  import { detachSignature, verifyJsonLd } from "../sig/ld.js";
@@ -44,6 +44,7 @@ export async function routeActivity({ context: ctx, json, activity, recipient, i
44
44
  const logger = getLogger(["fedify", "federation", "inbox"]);
45
45
  const cacheKey = activity.id == null ? null : [
46
46
  ...kvPrefixes.activityIdempotence,
47
+ ctx.origin,
47
48
  activity.id.href,
48
49
  ];
49
50
  if (cacheKey != null) {
@@ -315,6 +315,7 @@ export class FederationImpl {
315
315
  }
316
316
  const cacheKey = activity.id == null ? null : [
317
317
  ...this.kvPrefixes.activityIdempotence,
318
+ context.origin,
318
319
  activity.id.href,
319
320
  ];
320
321
  if (cacheKey != null) {
@@ -66,7 +66,18 @@ async function getRemoteDocument(url, response, fetch) {
66
66
  const linkHeader = response.headers.get("Link");
67
67
  let contextUrl = null;
68
68
  if (linkHeader != null) {
69
- const link = new HTTPHeaderLink(linkHeader);
69
+ let link;
70
+ try {
71
+ link = new HTTPHeaderLink(linkHeader);
72
+ }
73
+ catch (e) {
74
+ if (e instanceof SyntaxError) {
75
+ link = new HTTPHeaderLink();
76
+ }
77
+ else {
78
+ throw e;
79
+ }
80
+ }
70
81
  if (jsonLd) {
71
82
  const entries = link.getByRel("http://www.w3.org/ns/json-ld#context");
72
83
  for (const [uri, params] of entries) {
@@ -1,9 +1,9 @@
1
1
  import * as dntShim from "../_dnt.shims.js";
2
2
  import { createPublicKey } from "node:crypto";
3
3
  import { concat } from "../deps/jsr.io/@std/bytes/1.0.4/concat.js";
4
- import { decodeBase64, encodeBase64 } from "../deps/jsr.io/@std/encoding/1.0.5/base64.js";
5
- import { decodeBase64Url } from "../deps/jsr.io/@std/encoding/1.0.5/base64url.js";
6
- import { decodeHex } from "../deps/jsr.io/@std/encoding/1.0.5/hex.js";
4
+ import { decodeBase64, encodeBase64 } from "../deps/jsr.io/@std/encoding/1.0.6/base64.js";
5
+ import { decodeBase64Url } from "../deps/jsr.io/@std/encoding/1.0.6/base64url.js";
6
+ import { decodeHex } from "../deps/jsr.io/@std/encoding/1.0.6/hex.js";
7
7
  import { Integer, Sequence } from "asn1js";
8
8
  import { decode, encode } from "multibase";
9
9
  import { addPrefix, getCodeFromData, rmPrefix } from "multicodec";
package/esm/sig/http.js CHANGED
@@ -3,8 +3,8 @@ import { getLogger } from "@logtape/logtape";
3
3
  import { SpanStatusCode, trace, } from "@opentelemetry/api";
4
4
  import { ATTR_HTTP_REQUEST_HEADER, ATTR_HTTP_REQUEST_METHOD, ATTR_URL_FULL, } from "@opentelemetry/semantic-conventions";
5
5
  import { equals } from "../deps/jsr.io/@std/bytes/1.0.4/mod.js";
6
- import { decodeBase64, encodeBase64 } from "../deps/jsr.io/@std/encoding/1.0.5/base64.js";
7
- import { encodeHex } from "../deps/jsr.io/@std/encoding/1.0.5/hex.js";
6
+ import { decodeBase64, encodeBase64 } from "../deps/jsr.io/@std/encoding/1.0.6/base64.js";
7
+ import { encodeHex } from "../deps/jsr.io/@std/encoding/1.0.6/hex.js";
8
8
  import metadata from "../deno.js";
9
9
  import { CryptographicKey } from "../vocab/vocab.js";
10
10
  import { fetchKey, validateCryptoKey } from "./key.js";
package/esm/sig/ld.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as dntShim from "../_dnt.shims.js";
2
2
  import { getLogger } from "@logtape/logtape";
3
3
  import { SpanStatusCode, trace } from "@opentelemetry/api";
4
- import { decodeBase64, encodeBase64 } from "../deps/jsr.io/@std/encoding/1.0.5/base64.js";
5
- import { encodeHex } from "../deps/jsr.io/@std/encoding/1.0.5/hex.js";
4
+ import { decodeBase64, encodeBase64 } from "../deps/jsr.io/@std/encoding/1.0.6/base64.js";
5
+ import { encodeHex } from "../deps/jsr.io/@std/encoding/1.0.6/hex.js";
6
6
  // @ts-ignore TS7016
7
7
  import jsonld from "jsonld";
8
8
  import metadata from "../deno.js";
package/esm/sig/proof.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as dntShim from "../_dnt.shims.js";
2
2
  import { getLogger } from "@logtape/logtape";
3
3
  import { SpanStatusCode, trace } from "@opentelemetry/api";
4
- import { encodeHex } from "../deps/jsr.io/@std/encoding/1.0.5/hex.js";
4
+ import { encodeHex } from "../deps/jsr.io/@std/encoding/1.0.6/hex.js";
5
5
  // @ts-ignore: json-canon is not typed
6
6
  import serialize from "json-canon";
7
7
  import metadata from "../deno.js";