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

Sign up to get free protection for your applications and to get access to all the features.
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"}