@fedify/fedify 1.3.0-dev.487 → 1.3.0-dev.492

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
@@ -33,6 +33,22 @@ To be released.
33
33
  [#162]: https://github.com/dahlia/fedify/issues/162
34
34
 
35
35
 
36
+ Version 1.2.4
37
+ -------------
38
+
39
+ Released on November 12, 2024.
40
+
41
+ - Fixed a bug where default document loaders had thrown a `TypeError`
42
+ with a message <q>Body is unusable: Body has already been read</q> or
43
+ <q>Body already consumed</q> when the content type of the response was
44
+ an HTML document and there's no link to a JSON-LD document.
45
+
46
+ - Fixed a bug where `verifySignature()` and `verifyJsonLd()` functions
47
+ sometimes had thrown a `jsonld.ValidationError` error. Now such errors
48
+ are caught and logged as warnings, and the signature to verify is considered
49
+ as invalid.
50
+
51
+
36
52
  Version 1.2.3
37
53
  -------------
38
54
 
@@ -122,6 +138,22 @@ Released on October 31, 2024.
122
138
  [#118]: https://github.com/dahlia/fedify/issues/118
123
139
 
124
140
 
141
+ Version 1.1.4
142
+ -------------
143
+
144
+ Released on November 12, 2024.
145
+
146
+ - Fixed a bug where default document loaders had thrown a `TypeError`
147
+ with a message <q>Body is unusable: Body has already been read</q> or
148
+ <q>Body already consumed</q> when the content type of the response was
149
+ an HTML document and there's no link to a JSON-LD document.
150
+
151
+ - Fixed a bug where `verifySignature()` and `verifyJsonLd()` functions
152
+ sometimes had thrown a `jsonld.ValidationError` error. Now such errors
153
+ are caught and logged as warnings, and the signature to verify is considered
154
+ as invalid.
155
+
156
+
125
157
  Version 1.1.3
126
158
  -------------
127
159
 
@@ -252,6 +284,22 @@ Released on October 20, 2024.
252
284
  [#150]: https://github.com/dahlia/fedify/issues/150
253
285
 
254
286
 
287
+ Version 1.0.8
288
+ -------------
289
+
290
+ Released on November 12, 2024.
291
+
292
+ - Fixed a bug where default document loaders had thrown a `TypeError`
293
+ with a message <q>Body is unusable: Body has already been read</q> or
294
+ <q>Body already consumed</q> when the content type of the response was
295
+ an HTML document and there's no link to a JSON-LD document.
296
+
297
+ - Fixed a bug where `verifySignature()` and `verifyJsonLd()` functions
298
+ sometimes had thrown a `jsonld.ValidationError` error. Now such errors
299
+ are caught and logged as warnings, and the signature to verify is considered
300
+ as invalid.
301
+
302
+
255
303
  Version 1.0.7
256
304
  -------------
257
305
 
@@ -501,6 +549,17 @@ Released on September 26, 2024.
501
549
  [#137]: https://github.com/dahlia/fedify/issues/137
502
550
 
503
551
 
552
+ Version 0.15.6
553
+ --------------
554
+
555
+ Released on November 12, 2024.
556
+
557
+ - Fixed a bug where default document loaders had thrown a `TypeError`
558
+ with a message <q>Body is unusable: Body has already been read</q> or
559
+ <q>Body already consumed</q> when the content type of the response was
560
+ an HTML document and there's no link to a JSON-LD document.
561
+
562
+
504
563
  Version 0.15.5
505
564
  --------------
506
565
 
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "@fedify/fedify",
3
- "version": "1.3.0-dev.487+599b5a7b",
3
+ "version": "1.3.0-dev.492+450a6939",
4
4
  "license": "MIT",
5
5
  "exports": {
6
6
  ".": "./mod.ts",
@@ -91,6 +91,7 @@ async function getRemoteDocument(url, response, fetch) {
91
91
  }
92
92
  }
93
93
  }
94
+ let document;
94
95
  if (!jsonLd &&
95
96
  (contentType === "text/html" || contentType?.startsWith("text/html;") ||
96
97
  contentType === "application/xhtml+xml" ||
@@ -118,17 +119,17 @@ async function getRemoteDocument(url, response, fetch) {
118
119
  return await fetch(new URL(attribs.href, docUrl).href);
119
120
  }
120
121
  }
122
+ document = JSON.parse(html);
123
+ }
124
+ else {
125
+ document = await response.json();
121
126
  }
122
127
  logger.debug("Fetched document: {status} {url} {headers}", {
123
128
  status: response.status,
124
129
  url: documentUrl,
125
130
  headers: Object.fromEntries(response.headers.entries()),
126
131
  });
127
- return {
128
- contextUrl,
129
- document: await response.json(),
130
- documentUrl,
131
- };
132
+ return { contextUrl, document, documentUrl };
132
133
  }
133
134
  /**
134
135
  * Creates a JSON-LD document loader that utilizes the browser's `fetch` API.
package/esm/sig/ld.js CHANGED
@@ -139,10 +139,24 @@ export async function verifySignature(jsonLd, options = {}) {
139
139
  delete sigOpts.type;
140
140
  delete sigOpts.id;
141
141
  delete sigOpts.signatureValue;
142
- const sigOptsHash = await hashJsonLd(sigOpts, options.contextLoader);
142
+ let sigOptsHash;
143
+ try {
144
+ sigOptsHash = await hashJsonLd(sigOpts, options.contextLoader);
145
+ }
146
+ catch (error) {
147
+ logger.warn("Failed to verify; failed to hash the signature options: {signatureOptions}\n{error}", { signatureOptions: sigOpts, error });
148
+ return null;
149
+ }
143
150
  const document = { ...jsonLd };
144
151
  delete document.signature;
145
- const docHash = await hashJsonLd(document, options.contextLoader);
152
+ let docHash;
153
+ try {
154
+ docHash = await hashJsonLd(document, options.contextLoader);
155
+ }
156
+ catch (error) {
157
+ logger.warn("Failed to verify; failed to hash the document: {document}\n{error}", { document, error });
158
+ return null;
159
+ }
146
160
  const encoder = new TextEncoder();
147
161
  const message = sigOptsHash + docHash;
148
162
  const messageBytes = encoder.encode(message);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fedify/fedify",
3
- "version": "1.3.0-dev.487+599b5a7b",
3
+ "version": "1.3.0-dev.492+450a6939",
4
4
  "description": "An ActivityPub server framework",
5
5
  "keywords": [
6
6
  "ActivityPub",
@@ -1 +1 @@
1
- {"version":3,"file":"ld.d.ts","sourceRoot":"","sources":["../../src/sig/ld.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAM5C,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAY,gBAAgB,EAAU,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAY,KAAK,QAAQ,EAAqB,MAAM,UAAU,CAAC;AAItE;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,EAAE,8BAA8B,CAAC;IAC5C,IAAI,EAAE,kBAAkB,CAAC;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,SAAS,GACnB;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,CAO1B;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAE/B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;CACpC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,CAAC,SAAS,EAC7B,KAAK,EAAE,GAAG,EACV,EAAE,aAAa,EAAE,OAAO,EAAE,GAAE,sBAA2B,GACtD,OAAO,CAAC,SAAS,CAAC,CAyBpB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,sBAAsB;CAChE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,CAAC,SAAS,EAC7B,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC,CAGnC;AAED,UAAU,YAAY;IACpB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,YAAY,CAYpE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAKxD;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;OAEG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA4ElC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;CAClE;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,OAAO,CAAC,CAsBlB"}
1
+ {"version":3,"file":"ld.d.ts","sourceRoot":"","sources":["../../src/sig/ld.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAM5C,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAY,gBAAgB,EAAU,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAY,KAAK,QAAQ,EAAqB,MAAM,UAAU,CAAC;AAItE;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,EAAE,8BAA8B,CAAC;IAC5C,IAAI,EAAE,kBAAkB,CAAC;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,SAAS,GACnB;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,CAO1B;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAE/B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;CACpC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,CAAC,SAAS,EAC7B,KAAK,EAAE,GAAG,EACV,EAAE,aAAa,EAAE,OAAO,EAAE,GAAE,sBAA2B,GACtD,OAAO,CAAC,SAAS,CAAC,CAyBpB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,sBAAsB;CAChE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,CAAC,SAAS,EAC7B,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC,CAGnC;AAED,UAAU,YAAY;IACpB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,YAAY,CAYpE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAKxD;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;OAEG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA8FlC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;CAClE;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,OAAO,CAAC,CAsBlB"}