@fedify/fedify 1.2.4 → 1.2.6
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 +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
|