@fedify/fedify 1.2.4 → 1.2.6
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGES.md +308 -0
- package/esm/federation/handler.js +15 -1
- package/esm/runtime/key.js +1 -1
- package/esm/sig/http.js +9 -1
- package/esm/testing/fixtures/example.com/orderedcollectionpage +24 -0
- package/esm/vocab/application.yaml +2 -0
- package/esm/vocab/group.yaml +2 -0
- package/esm/vocab/organization.yaml +2 -0
- package/esm/vocab/person.yaml +2 -0
- package/esm/vocab/service.yaml +2 -0
- package/esm/vocab/vocab.js +450 -110
- package/package.json +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/concat.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/copy.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/ends_with.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/equals.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/includes_needle.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/index_of_needle.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/last_index_of_needle.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/mod.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/repeat.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/starts_with.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/http/1.0.10/_negotiation/common.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/http/1.0.10/_negotiation/encoding.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/http/1.0.10/_negotiation/language.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/http/1.0.10/_negotiation/media_type.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/http/1.0.10/negotiation.d.ts.map +1 -0
- package/types/federation/handler.d.ts.map +1 -1
- package/types/sig/http.d.ts.map +1 -1
- package/types/vocab/vocab.d.ts +30 -30
- package/types/vocab/vocab.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/http/1.0.9/_negotiation/common.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/http/1.0.9/_negotiation/encoding.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/http/1.0.9/_negotiation/language.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/http/1.0.9/_negotiation/media_type.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/http/1.0.9/negotiation.d.ts.map +0 -1
- /package/esm/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/concat.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/copy.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/ends_with.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/equals.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/includes_needle.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/index_of_needle.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/last_index_of_needle.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/mod.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/repeat.js +0 -0
- /package/esm/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/starts_with.js +0 -0
- /package/esm/deps/jsr.io/@std/http/{1.0.9 → 1.0.10}/_negotiation/common.js +0 -0
- /package/esm/deps/jsr.io/@std/http/{1.0.9 → 1.0.10}/_negotiation/encoding.js +0 -0
- /package/esm/deps/jsr.io/@std/http/{1.0.9 → 1.0.10}/_negotiation/language.js +0 -0
- /package/esm/deps/jsr.io/@std/http/{1.0.9 → 1.0.10}/_negotiation/media_type.js +0 -0
- /package/esm/deps/jsr.io/@std/http/{1.0.9 → 1.0.10}/negotiation.js +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/concat.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/copy.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/ends_with.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/equals.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/includes_needle.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/index_of_needle.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/last_index_of_needle.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/mod.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/repeat.d.ts +0 -0
- /package/types/deps/jsr.io/@std/bytes/{1.0.3 → 1.0.4}/starts_with.d.ts +0 -0
- /package/types/deps/jsr.io/@std/http/{1.0.9 → 1.0.10}/_negotiation/common.d.ts +0 -0
- /package/types/deps/jsr.io/@std/http/{1.0.9 → 1.0.10}/_negotiation/encoding.d.ts +0 -0
- /package/types/deps/jsr.io/@std/http/{1.0.9 → 1.0.10}/_negotiation/language.d.ts +0 -0
- /package/types/deps/jsr.io/@std/http/{1.0.9 → 1.0.10}/_negotiation/media_type.d.ts +0 -0
- /package/types/deps/jsr.io/@std/http/{1.0.9 → 1.0.10}/negotiation.d.ts +0 -0
package/CHANGES.md
CHANGED
@@ -3,6 +3,82 @@
|
|
3
3
|
Fedify changelog
|
4
4
|
================
|
5
5
|
|
6
|
+
Version 1.2.6
|
7
|
+
-------------
|
8
|
+
|
9
|
+
Released on December 19, 2024.
|
10
|
+
|
11
|
+
- Fix a bug where `Actor`'s `inbox` and `outbox` properties had not been
|
12
|
+
able to be set to an `OrderedCollectionPage` object, even though it is
|
13
|
+
a subtype of `OrderedCollection` according to Activity Vocabulary
|
14
|
+
specification. [[#165]]
|
15
|
+
|
16
|
+
- The type of `Application()` constructor's `inbox` and `outbox` options
|
17
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
18
|
+
(was `OrderedCollection | null | undefined`).
|
19
|
+
- The type of `Application.clone()` method's `inbox` and `outbox` options
|
20
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
21
|
+
(was `OrderedCollection | null | undefined`).
|
22
|
+
- The return type of `Application.getInbox()` and
|
23
|
+
`Application.getOutbox()` methods is now `OrderedCollection |
|
24
|
+
OrderedCollectionPage | null` (was `OrderedCollection | null`).
|
25
|
+
- The type of `Group()` constructor's `inbox` and `outbox` options is
|
26
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
27
|
+
`OrderedCollection | null | undefined`).
|
28
|
+
- The type of `Group.clone()` method's `inbox` and `outbox` options is
|
29
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
30
|
+
`OrderedCollection | null | undefined`).
|
31
|
+
- The return type of `Group.getInbox()` and `Group.getOutbox()` methods
|
32
|
+
is now `OrderedCollection | OrderedCollectionPage | null` (was
|
33
|
+
`OrderedCollection | null`).
|
34
|
+
- The type of `Organization()` constructor's `inbox` and `outbox` options
|
35
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
36
|
+
(was `OrderedCollection | null | undefined`).
|
37
|
+
- The type of `Organization.clone()` method's `inbox` and `outbox` options
|
38
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
39
|
+
(was `OrderedCollection | null | undefined`).
|
40
|
+
- The return type of `Organization.getInbox()` and
|
41
|
+
`Organization.getOutbox()` methods is now `OrderedCollection |
|
42
|
+
OrderedCollectionPage | null` (was `OrderedCollection | null`).
|
43
|
+
- The type of `Person()` constructor's `inbox` and `outbox` options is
|
44
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
45
|
+
`OrderedCollection | null | undefined`).
|
46
|
+
- The type of `Person.clone()` method's `inbox` and `outbox` options is
|
47
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
48
|
+
`OrderedCollection | null | undefined`).
|
49
|
+
- The return type of `Person.getInbox()` and `Person.getOutbox()` methods
|
50
|
+
is now `OrderedCollection | OrderedCollectionPage | null` (was
|
51
|
+
`OrderedCollection | null`).
|
52
|
+
- The type of `Service()` constructor's `inbox` and `outbox` options is
|
53
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
54
|
+
`OrderedCollection | null | undefined`).
|
55
|
+
- The type of `Service.clone()` method's `inbox` and `outbox` options is
|
56
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
57
|
+
`OrderedCollection | null | undefined`).
|
58
|
+
- The return type of `Service.getInbox()` and `Service.getOutbox()`
|
59
|
+
methods is now `OrderedCollection | OrderedCollectionPage | null` (was
|
60
|
+
`OrderedCollection | null`).
|
61
|
+
|
62
|
+
|
63
|
+
Version 1.2.5
|
64
|
+
-------------
|
65
|
+
|
66
|
+
Released on November 14, 2024.
|
67
|
+
|
68
|
+
- Suppressed a `TypeError` with a message <q>unusable</q> due to Node.js's
|
69
|
+
mysterious behavior. [[#159]]
|
70
|
+
|
71
|
+
- The `verifyRequest()` function no longer throws a `TypeError`
|
72
|
+
when a given `Request` object's body is already consumed or locked.
|
73
|
+
Instead, it logs an error message to the `["fedify", "sig", "http"]`
|
74
|
+
logger category and returns `null`.
|
75
|
+
- The `Federation.fetch()` method no longer throws a `TypeError`
|
76
|
+
when a given `Request` object's body is already consumed or locked.
|
77
|
+
Instead, it logs an error message to the `["fedify", "federation",
|
78
|
+
"inbox"]` logger category and responds with a `500 Internal Server
|
79
|
+
Error`.
|
80
|
+
|
81
|
+
|
6
82
|
Version 1.2.4
|
7
83
|
-------------
|
8
84
|
|
@@ -108,6 +184,82 @@ Released on October 31, 2024.
|
|
108
184
|
[#118]: https://github.com/dahlia/fedify/issues/118
|
109
185
|
|
110
186
|
|
187
|
+
Version 1.1.6
|
188
|
+
-------------
|
189
|
+
|
190
|
+
Released on November 19, 2024.
|
191
|
+
|
192
|
+
- Fix a bug where `Actor`'s `inbox` and `outbox` properties had not been
|
193
|
+
able to be set to an `OrderedCollectionPage` object, even though it is
|
194
|
+
a subtype of `OrderedCollection` according to Activity Vocabulary
|
195
|
+
specification. [[#165]]
|
196
|
+
|
197
|
+
- The type of `Application()` constructor's `inbox` and `outbox` options
|
198
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
199
|
+
(was `OrderedCollection | null | undefined`).
|
200
|
+
- The type of `Application.clone()` method's `inbox` and `outbox` options
|
201
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
202
|
+
(was `OrderedCollection | null | undefined`).
|
203
|
+
- The return type of `Application.getInbox()` and
|
204
|
+
`Application.getOutbox()` methods is now `OrderedCollection |
|
205
|
+
OrderedCollectionPage | null` (was `OrderedCollection | null`).
|
206
|
+
- The type of `Group()` constructor's `inbox` and `outbox` options is
|
207
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
208
|
+
`OrderedCollection | null | undefined`).
|
209
|
+
- The type of `Group.clone()` method's `inbox` and `outbox` options is
|
210
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
211
|
+
`OrderedCollection | null | undefined`).
|
212
|
+
- The return type of `Group.getInbox()` and `Group.getOutbox()` methods
|
213
|
+
is now `OrderedCollection | OrderedCollectionPage | null` (was
|
214
|
+
`OrderedCollection | null`).
|
215
|
+
- The type of `Organization()` constructor's `inbox` and `outbox` options
|
216
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
217
|
+
(was `OrderedCollection | null | undefined`).
|
218
|
+
- The type of `Organization.clone()` method's `inbox` and `outbox` options
|
219
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
220
|
+
(was `OrderedCollection | null | undefined`).
|
221
|
+
- The return type of `Organization.getInbox()` and
|
222
|
+
`Organization.getOutbox()` methods is now `OrderedCollection |
|
223
|
+
OrderedCollectionPage | null` (was `OrderedCollection | null`).
|
224
|
+
- The type of `Person()` constructor's `inbox` and `outbox` options is
|
225
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
226
|
+
`OrderedCollection | null | undefined`).
|
227
|
+
- The type of `Person.clone()` method's `inbox` and `outbox` options is
|
228
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
229
|
+
`OrderedCollection | null | undefined`).
|
230
|
+
- The return type of `Person.getInbox()` and `Person.getOutbox()` methods
|
231
|
+
is now `OrderedCollection | OrderedCollectionPage | null` (was
|
232
|
+
`OrderedCollection | null`).
|
233
|
+
- The type of `Service()` constructor's `inbox` and `outbox` options is
|
234
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
235
|
+
`OrderedCollection | null | undefined`).
|
236
|
+
- The type of `Service.clone()` method's `inbox` and `outbox` options is
|
237
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
238
|
+
`OrderedCollection | null | undefined`).
|
239
|
+
- The return type of `Service.getInbox()` and `Service.getOutbox()`
|
240
|
+
methods is now `OrderedCollection | OrderedCollectionPage | null` (was
|
241
|
+
`OrderedCollection | null`).
|
242
|
+
|
243
|
+
|
244
|
+
Version 1.1.5
|
245
|
+
-------------
|
246
|
+
|
247
|
+
Released on December 14, 2024.
|
248
|
+
|
249
|
+
- Suppressed a `TypeError` with a message <q>unusable</q> due to Node.js's
|
250
|
+
mysterious behavior. [[#159]]
|
251
|
+
|
252
|
+
- The `verifyRequest()` function no longer throws a `TypeError`
|
253
|
+
when a given `Request` object's body is already consumed or locked.
|
254
|
+
Instead, it logs an error message to the `["fedify", "sig", "http"]`
|
255
|
+
logger category and returns `null`.
|
256
|
+
- The `Federation.fetch()` method no longer throws a `TypeError`
|
257
|
+
when a given `Request` object's body is already consumed or locked.
|
258
|
+
Instead, it logs an error message to the `["fedify", "federation",
|
259
|
+
"inbox"]` logger category and responds with a `500 Internal Server
|
260
|
+
Error`.
|
261
|
+
|
262
|
+
|
111
263
|
Version 1.1.4
|
112
264
|
-------------
|
113
265
|
|
@@ -254,6 +406,82 @@ Released on October 20, 2024.
|
|
254
406
|
[#150]: https://github.com/dahlia/fedify/issues/150
|
255
407
|
|
256
408
|
|
409
|
+
Version 1.0.10
|
410
|
+
--------------
|
411
|
+
|
412
|
+
Released on December 19, 2024.
|
413
|
+
|
414
|
+
- Fix a bug where `Actor`'s `inbox` and `outbox` properties had not been
|
415
|
+
able to be set to an `OrderedCollectionPage` object, even though it is
|
416
|
+
a subtype of `OrderedCollection` according to Activity Vocabulary
|
417
|
+
specification. [[#165]]
|
418
|
+
|
419
|
+
- The type of `Application()` constructor's `inbox` and `outbox` options
|
420
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
421
|
+
(was `OrderedCollection | null | undefined`).
|
422
|
+
- The type of `Application.clone()` method's `inbox` and `outbox` options
|
423
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
424
|
+
(was `OrderedCollection | null | undefined`).
|
425
|
+
- The return type of `Application.getInbox()` and
|
426
|
+
`Application.getOutbox()` methods is now `OrderedCollection |
|
427
|
+
OrderedCollectionPage | null` (was `OrderedCollection | null`).
|
428
|
+
- The type of `Group()` constructor's `inbox` and `outbox` options is
|
429
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
430
|
+
`OrderedCollection | null | undefined`).
|
431
|
+
- The type of `Group.clone()` method's `inbox` and `outbox` options is
|
432
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
433
|
+
`OrderedCollection | null | undefined`).
|
434
|
+
- The return type of `Group.getInbox()` and `Group.getOutbox()` methods
|
435
|
+
is now `OrderedCollection | OrderedCollectionPage | null` (was
|
436
|
+
`OrderedCollection | null`).
|
437
|
+
- The type of `Organization()` constructor's `inbox` and `outbox` options
|
438
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
439
|
+
(was `OrderedCollection | null | undefined`).
|
440
|
+
- The type of `Organization.clone()` method's `inbox` and `outbox` options
|
441
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
442
|
+
(was `OrderedCollection | null | undefined`).
|
443
|
+
- The return type of `Organization.getInbox()` and
|
444
|
+
`Organization.getOutbox()` methods is now `OrderedCollection |
|
445
|
+
OrderedCollectionPage | null` (was `OrderedCollection | null`).
|
446
|
+
- The type of `Person()` constructor's `inbox` and `outbox` options is
|
447
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
448
|
+
`OrderedCollection | null | undefined`).
|
449
|
+
- The type of `Person.clone()` method's `inbox` and `outbox` options is
|
450
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
451
|
+
`OrderedCollection | null | undefined`).
|
452
|
+
- The return type of `Person.getInbox()` and `Person.getOutbox()` methods
|
453
|
+
is now `OrderedCollection | OrderedCollectionPage | null` (was
|
454
|
+
`OrderedCollection | null`).
|
455
|
+
- The type of `Service()` constructor's `inbox` and `outbox` options is
|
456
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
457
|
+
`OrderedCollection | null | undefined`).
|
458
|
+
- The type of `Service.clone()` method's `inbox` and `outbox` options is
|
459
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
460
|
+
`OrderedCollection | null | undefined`).
|
461
|
+
- The return type of `Service.getInbox()` and `Service.getOutbox()`
|
462
|
+
methods is now `OrderedCollection | OrderedCollectionPage | null` (was
|
463
|
+
`OrderedCollection | null`).
|
464
|
+
|
465
|
+
|
466
|
+
Version 1.0.9
|
467
|
+
-------------
|
468
|
+
|
469
|
+
Released on December 14, 2024.
|
470
|
+
|
471
|
+
- Suppressed a `TypeError` with a message <q>unusable</q> due to Node.js's
|
472
|
+
mysterious behavior. [[#159]]
|
473
|
+
|
474
|
+
- The `verifyRequest()` function no longer throws a `TypeError`
|
475
|
+
when a given `Request` object's body is already consumed or locked.
|
476
|
+
Instead, it logs an error message to the `["fedify", "sig", "http"]`
|
477
|
+
logger category and returns `null`.
|
478
|
+
- The `Federation.fetch()` method no longer throws a `TypeError`
|
479
|
+
when a given `Request` object's body is already consumed or locked.
|
480
|
+
Instead, it logs an error message to the `["fedify", "federation",
|
481
|
+
"inbox"]` logger category and responds with a `500 Internal Server
|
482
|
+
Error`.
|
483
|
+
|
484
|
+
|
257
485
|
Version 1.0.8
|
258
486
|
-------------
|
259
487
|
|
@@ -519,6 +747,86 @@ Released on September 26, 2024.
|
|
519
747
|
[#137]: https://github.com/dahlia/fedify/issues/137
|
520
748
|
|
521
749
|
|
750
|
+
Version 0.15.8
|
751
|
+
--------------
|
752
|
+
|
753
|
+
Released on November 159, 2024.
|
754
|
+
|
755
|
+
- Fix a bug where `Actor`'s `inbox` and `outbox` properties had not been
|
756
|
+
able to be set to an `OrderedCollectionPage` object, even though it is
|
757
|
+
a subtype of `OrderedCollection` according to Activity Vocabulary
|
758
|
+
specification. [[#165]]
|
759
|
+
|
760
|
+
- The type of `Application()` constructor's `inbox` and `outbox` options
|
761
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
762
|
+
(was `OrderedCollection | null | undefined`).
|
763
|
+
- The type of `Application.clone()` method's `inbox` and `outbox` options
|
764
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
765
|
+
(was `OrderedCollection | null | undefined`).
|
766
|
+
- The return type of `Application.getInbox()` and
|
767
|
+
`Application.getOutbox()` methods is now `OrderedCollection |
|
768
|
+
OrderedCollectionPage | null` (was `OrderedCollection | null`).
|
769
|
+
- The type of `Group()` constructor's `inbox` and `outbox` options is
|
770
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
771
|
+
`OrderedCollection | null | undefined`).
|
772
|
+
- The type of `Group.clone()` method's `inbox` and `outbox` options is
|
773
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
774
|
+
`OrderedCollection | null | undefined`).
|
775
|
+
- The return type of `Group.getInbox()` and `Group.getOutbox()` methods
|
776
|
+
is now `OrderedCollection | OrderedCollectionPage | null` (was
|
777
|
+
`OrderedCollection | null`).
|
778
|
+
- The type of `Organization()` constructor's `inbox` and `outbox` options
|
779
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
780
|
+
(was `OrderedCollection | null | undefined`).
|
781
|
+
- The type of `Organization.clone()` method's `inbox` and `outbox` options
|
782
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
783
|
+
(was `OrderedCollection | null | undefined`).
|
784
|
+
- The return type of `Organization.getInbox()` and
|
785
|
+
`Organization.getOutbox()` methods is now `OrderedCollection |
|
786
|
+
OrderedCollectionPage | null` (was `OrderedCollection | null`).
|
787
|
+
- The type of `Person()` constructor's `inbox` and `outbox` options is
|
788
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
789
|
+
`OrderedCollection | null | undefined`).
|
790
|
+
- The type of `Person.clone()` method's `inbox` and `outbox` options is
|
791
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
792
|
+
`OrderedCollection | null | undefined`).
|
793
|
+
- The return type of `Person.getInbox()` and `Person.getOutbox()` methods
|
794
|
+
is now `OrderedCollection | OrderedCollectionPage | null` (was
|
795
|
+
`OrderedCollection | null`).
|
796
|
+
- The type of `Service()` constructor's `inbox` and `outbox` options is
|
797
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
798
|
+
`OrderedCollection | null | undefined`).
|
799
|
+
- The type of `Service.clone()` method's `inbox` and `outbox` options is
|
800
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
801
|
+
`OrderedCollection | null | undefined`).
|
802
|
+
- The return type of `Service.getInbox()` and `Service.getOutbox()`
|
803
|
+
methods is now `OrderedCollection | OrderedCollectionPage | null` (was
|
804
|
+
`OrderedCollection | null`).
|
805
|
+
|
806
|
+
[#165]: https://github.com/dahlia/fedify/issues/165
|
807
|
+
|
808
|
+
|
809
|
+
Version 0.15.7
|
810
|
+
--------------
|
811
|
+
|
812
|
+
Released on November 14, 2024.
|
813
|
+
|
814
|
+
- Suppressed a `TypeError` with a message <q>unusable</q> due to Node.js's
|
815
|
+
mysterious behavior. [[#159]]
|
816
|
+
|
817
|
+
- The `verifyRequest()` function no longer throws a `TypeError`
|
818
|
+
when a given `Request` object's body is already consumed or locked.
|
819
|
+
Instead, it logs an error message to the `["fedify", "sig", "http"]`
|
820
|
+
logger category and returns `null`.
|
821
|
+
- The `Federation.fetch()` method no longer throws a `TypeError`
|
822
|
+
when a given `Request` object's body is already consumed or locked.
|
823
|
+
Instead, it logs an error message to the `["fedify", "federation",
|
824
|
+
"inbox"]` logger category and responds with a `500 Internal Server
|
825
|
+
Error`.
|
826
|
+
|
827
|
+
[#159]: https://github.com/dahlia/fedify/issues/159
|
828
|
+
|
829
|
+
|
522
830
|
Version 0.15.6
|
523
831
|
--------------
|
524
832
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import * as dntShim from "../_dnt.shims.js";
|
2
2
|
import { getLogger } from "@logtape/logtape";
|
3
|
-
import { accepts } from "../deps/jsr.io/@std/http/1.0.
|
3
|
+
import { accepts } from "../deps/jsr.io/@std/http/1.0.10/negotiation.js";
|
4
4
|
import { verifyRequest } from "../sig/http.js";
|
5
5
|
import { detachSignature, verifyJsonLd } from "../sig/ld.js";
|
6
6
|
import { doesActorOwnKey } from "../sig/owner.js";
|
@@ -188,6 +188,20 @@ export async function handleInbox(request, { recipient, context, inboxContextFac
|
|
188
188
|
return await onNotFound(request);
|
189
189
|
}
|
190
190
|
}
|
191
|
+
if (request.bodyUsed) {
|
192
|
+
logger.error("Request body has already been read.", { recipient });
|
193
|
+
return new Response("Internal server error.", {
|
194
|
+
status: 500,
|
195
|
+
headers: { "Content-Type": "text/plain; charset=utf-8" },
|
196
|
+
});
|
197
|
+
}
|
198
|
+
else if (request.body?.locked) {
|
199
|
+
logger.error("Request body is locked.", { recipient });
|
200
|
+
return new Response("Internal server error.", {
|
201
|
+
status: 500,
|
202
|
+
headers: { "Content-Type": "text/plain; charset=utf-8" },
|
203
|
+
});
|
204
|
+
}
|
191
205
|
let json;
|
192
206
|
try {
|
193
207
|
json = await request.clone().json();
|
package/esm/runtime/key.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import * as dntShim from "../_dnt.shims.js";
|
2
2
|
import { createPublicKey } from "node:crypto";
|
3
|
-
import { concat } from "../deps/jsr.io/@std/bytes/1.0.
|
3
|
+
import { concat } from "../deps/jsr.io/@std/bytes/1.0.4/concat.js";
|
4
4
|
import { decodeBase64, encodeBase64 } from "../deps/jsr.io/@std/encoding/1.0.5/base64.js";
|
5
5
|
import { decodeBase64Url } from "../deps/jsr.io/@std/encoding/1.0.5/base64url.js";
|
6
6
|
import { decodeHex } from "../deps/jsr.io/@std/encoding/1.0.5/hex.js";
|
package/esm/sig/http.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import * as dntShim from "../_dnt.shims.js";
|
2
2
|
import { getLogger } from "@logtape/logtape";
|
3
|
-
import { equals } from "../deps/jsr.io/@std/bytes/1.0.
|
3
|
+
import { equals } from "../deps/jsr.io/@std/bytes/1.0.4/mod.js";
|
4
4
|
import { decodeBase64, encodeBase64 } from "../deps/jsr.io/@std/encoding/1.0.5/base64.js";
|
5
5
|
import { CryptographicKey } from "../vocab/vocab.js";
|
6
6
|
import { fetchKey, validateCryptoKey } from "./key.js";
|
@@ -69,6 +69,14 @@ const supportedHashAlgorithms = {
|
|
69
69
|
*/
|
70
70
|
export async function verifyRequest(request, { documentLoader, contextLoader, timeWindow, currentTime, keyCache } = {}) {
|
71
71
|
const logger = getLogger(["fedify", "sig", "http"]);
|
72
|
+
if (request.bodyUsed) {
|
73
|
+
logger.error("Failed to verify; the request body is already consumed.", { url: request.url });
|
74
|
+
return null;
|
75
|
+
}
|
76
|
+
else if (request.body?.locked) {
|
77
|
+
logger.error("Failed to verify; the request body is locked.", { url: request.url });
|
78
|
+
return null;
|
79
|
+
}
|
72
80
|
const originalRequest = request;
|
73
81
|
request = request.clone();
|
74
82
|
const dateHeader = request.headers.get("Date");
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{
|
2
|
+
"@context": "https://www.w3.org/ns/activitystreams",
|
3
|
+
"id": "https://example.com/orderedcollectionpage",
|
4
|
+
"type": "OrderedCollectionPage",
|
5
|
+
"partOf": "https://example.com/orderedcollectionpage",
|
6
|
+
"totalItems": 1,
|
7
|
+
"orderedItems": [
|
8
|
+
{
|
9
|
+
"id": "https://example.com/activities/1",
|
10
|
+
"type": "Create",
|
11
|
+
"published": "2024-11-19T15:24:56Z",
|
12
|
+
"actor": "https://example.com/users/1",
|
13
|
+
"to": "https://www.w3.org/ns/activitystreams#Public",
|
14
|
+
"object": {
|
15
|
+
"id": "https://example.com/notes/1",
|
16
|
+
"type": "Note",
|
17
|
+
"content": "This is a simple note",
|
18
|
+
"attributedTo": "https://example.com/users/1",
|
19
|
+
"to": "https://www.w3.org/ns/activitystreams#Public",
|
20
|
+
"published": "2024-11-19T15:24:56Z"
|
21
|
+
}
|
22
|
+
}
|
23
|
+
]
|
24
|
+
}
|
@@ -106,6 +106,7 @@ properties:
|
|
106
106
|
and dropping any activities already seen.
|
107
107
|
range:
|
108
108
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
109
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
109
110
|
|
110
111
|
- singularName: outbox
|
111
112
|
functional: true
|
@@ -124,6 +125,7 @@ properties:
|
|
124
125
|
implementing and deploying the server.
|
125
126
|
range:
|
126
127
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
128
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
127
129
|
|
128
130
|
- singularName: following
|
129
131
|
functional: true
|
package/esm/vocab/group.yaml
CHANGED
@@ -106,6 +106,7 @@ properties:
|
|
106
106
|
and dropping any activities already seen.
|
107
107
|
range:
|
108
108
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
109
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
109
110
|
|
110
111
|
- singularName: outbox
|
111
112
|
functional: true
|
@@ -124,6 +125,7 @@ properties:
|
|
124
125
|
implementing and deploying the server.
|
125
126
|
range:
|
126
127
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
128
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
127
129
|
|
128
130
|
- singularName: following
|
129
131
|
functional: true
|
@@ -106,6 +106,7 @@ properties:
|
|
106
106
|
and dropping any activities already seen.
|
107
107
|
range:
|
108
108
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
109
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
109
110
|
|
110
111
|
- singularName: outbox
|
111
112
|
functional: true
|
@@ -124,6 +125,7 @@ properties:
|
|
124
125
|
implementing and deploying the server.
|
125
126
|
range:
|
126
127
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
128
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
127
129
|
|
128
130
|
- singularName: following
|
129
131
|
functional: true
|
package/esm/vocab/person.yaml
CHANGED
@@ -106,6 +106,7 @@ properties:
|
|
106
106
|
and dropping any activities already seen.
|
107
107
|
range:
|
108
108
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
109
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
109
110
|
|
110
111
|
- singularName: outbox
|
111
112
|
functional: true
|
@@ -124,6 +125,7 @@ properties:
|
|
124
125
|
implementing and deploying the server.
|
125
126
|
range:
|
126
127
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
128
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
127
129
|
|
128
130
|
- singularName: following
|
129
131
|
functional: true
|
package/esm/vocab/service.yaml
CHANGED
@@ -106,6 +106,7 @@ properties:
|
|
106
106
|
and dropping any activities already seen.
|
107
107
|
range:
|
108
108
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
109
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
109
110
|
|
110
111
|
- singularName: outbox
|
111
112
|
functional: true
|
@@ -124,6 +125,7 @@ properties:
|
|
124
125
|
implementing and deploying the server.
|
125
126
|
range:
|
126
127
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
128
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
127
129
|
|
128
130
|
- singularName: following
|
129
131
|
functional: true
|