@fedify/fedify 1.1.4 → 1.1.6
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGES.md +232 -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.1.6
|
7
|
+
-------------
|
8
|
+
|
9
|
+
Released on November 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.1.5
|
64
|
+
-------------
|
65
|
+
|
66
|
+
Released on December 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.1.4
|
7
83
|
-------------
|
8
84
|
|
@@ -149,6 +225,82 @@ Released on October 20, 2024.
|
|
149
225
|
[#150]: https://github.com/dahlia/fedify/issues/150
|
150
226
|
|
151
227
|
|
228
|
+
Version 1.0.10
|
229
|
+
--------------
|
230
|
+
|
231
|
+
Released on December 19, 2024.
|
232
|
+
|
233
|
+
- Fix a bug where `Actor`'s `inbox` and `outbox` properties had not been
|
234
|
+
able to be set to an `OrderedCollectionPage` object, even though it is
|
235
|
+
a subtype of `OrderedCollection` according to Activity Vocabulary
|
236
|
+
specification. [[#165]]
|
237
|
+
|
238
|
+
- The type of `Application()` constructor's `inbox` and `outbox` options
|
239
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
240
|
+
(was `OrderedCollection | null | undefined`).
|
241
|
+
- The type of `Application.clone()` method's `inbox` and `outbox` options
|
242
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
243
|
+
(was `OrderedCollection | null | undefined`).
|
244
|
+
- The return type of `Application.getInbox()` and
|
245
|
+
`Application.getOutbox()` methods is now `OrderedCollection |
|
246
|
+
OrderedCollectionPage | null` (was `OrderedCollection | null`).
|
247
|
+
- The type of `Group()` constructor's `inbox` and `outbox` options is
|
248
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
249
|
+
`OrderedCollection | null | undefined`).
|
250
|
+
- The type of `Group.clone()` method's `inbox` and `outbox` options is
|
251
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
252
|
+
`OrderedCollection | null | undefined`).
|
253
|
+
- The return type of `Group.getInbox()` and `Group.getOutbox()` methods
|
254
|
+
is now `OrderedCollection | OrderedCollectionPage | null` (was
|
255
|
+
`OrderedCollection | null`).
|
256
|
+
- The type of `Organization()` constructor's `inbox` and `outbox` options
|
257
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
258
|
+
(was `OrderedCollection | null | undefined`).
|
259
|
+
- The type of `Organization.clone()` method's `inbox` and `outbox` options
|
260
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
261
|
+
(was `OrderedCollection | null | undefined`).
|
262
|
+
- The return type of `Organization.getInbox()` and
|
263
|
+
`Organization.getOutbox()` methods is now `OrderedCollection |
|
264
|
+
OrderedCollectionPage | null` (was `OrderedCollection | null`).
|
265
|
+
- The type of `Person()` constructor's `inbox` and `outbox` options is
|
266
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
267
|
+
`OrderedCollection | null | undefined`).
|
268
|
+
- The type of `Person.clone()` method's `inbox` and `outbox` options is
|
269
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
270
|
+
`OrderedCollection | null | undefined`).
|
271
|
+
- The return type of `Person.getInbox()` and `Person.getOutbox()` methods
|
272
|
+
is now `OrderedCollection | OrderedCollectionPage | null` (was
|
273
|
+
`OrderedCollection | null`).
|
274
|
+
- The type of `Service()` constructor's `inbox` and `outbox` options is
|
275
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
276
|
+
`OrderedCollection | null | undefined`).
|
277
|
+
- The type of `Service.clone()` method's `inbox` and `outbox` options is
|
278
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
279
|
+
`OrderedCollection | null | undefined`).
|
280
|
+
- The return type of `Service.getInbox()` and `Service.getOutbox()`
|
281
|
+
methods is now `OrderedCollection | OrderedCollectionPage | null` (was
|
282
|
+
`OrderedCollection | null`).
|
283
|
+
|
284
|
+
|
285
|
+
Version 1.0.9
|
286
|
+
-------------
|
287
|
+
|
288
|
+
Released on December 14, 2024.
|
289
|
+
|
290
|
+
- Suppressed a `TypeError` with a message <q>unusable</q> due to Node.js's
|
291
|
+
mysterious behavior. [[#159]]
|
292
|
+
|
293
|
+
- The `verifyRequest()` function no longer throws a `TypeError`
|
294
|
+
when a given `Request` object's body is already consumed or locked.
|
295
|
+
Instead, it logs an error message to the `["fedify", "sig", "http"]`
|
296
|
+
logger category and returns `null`.
|
297
|
+
- The `Federation.fetch()` method no longer throws a `TypeError`
|
298
|
+
when a given `Request` object's body is already consumed or locked.
|
299
|
+
Instead, it logs an error message to the `["fedify", "federation",
|
300
|
+
"inbox"]` logger category and responds with a `500 Internal Server
|
301
|
+
Error`.
|
302
|
+
|
303
|
+
|
152
304
|
Version 1.0.8
|
153
305
|
-------------
|
154
306
|
|
@@ -414,6 +566,86 @@ Released on September 26, 2024.
|
|
414
566
|
[#137]: https://github.com/dahlia/fedify/issues/137
|
415
567
|
|
416
568
|
|
569
|
+
Version 0.15.8
|
570
|
+
--------------
|
571
|
+
|
572
|
+
Released on November 159, 2024.
|
573
|
+
|
574
|
+
- Fix a bug where `Actor`'s `inbox` and `outbox` properties had not been
|
575
|
+
able to be set to an `OrderedCollectionPage` object, even though it is
|
576
|
+
a subtype of `OrderedCollection` according to Activity Vocabulary
|
577
|
+
specification. [[#165]]
|
578
|
+
|
579
|
+
- The type of `Application()` constructor's `inbox` and `outbox` options
|
580
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
581
|
+
(was `OrderedCollection | null | undefined`).
|
582
|
+
- The type of `Application.clone()` method's `inbox` and `outbox` options
|
583
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
584
|
+
(was `OrderedCollection | null | undefined`).
|
585
|
+
- The return type of `Application.getInbox()` and
|
586
|
+
`Application.getOutbox()` methods is now `OrderedCollection |
|
587
|
+
OrderedCollectionPage | null` (was `OrderedCollection | null`).
|
588
|
+
- The type of `Group()` constructor's `inbox` and `outbox` options is
|
589
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
590
|
+
`OrderedCollection | null | undefined`).
|
591
|
+
- The type of `Group.clone()` method's `inbox` and `outbox` options is
|
592
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
593
|
+
`OrderedCollection | null | undefined`).
|
594
|
+
- The return type of `Group.getInbox()` and `Group.getOutbox()` methods
|
595
|
+
is now `OrderedCollection | OrderedCollectionPage | null` (was
|
596
|
+
`OrderedCollection | null`).
|
597
|
+
- The type of `Organization()` constructor's `inbox` and `outbox` options
|
598
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
599
|
+
(was `OrderedCollection | null | undefined`).
|
600
|
+
- The type of `Organization.clone()` method's `inbox` and `outbox` options
|
601
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
602
|
+
(was `OrderedCollection | null | undefined`).
|
603
|
+
- The return type of `Organization.getInbox()` and
|
604
|
+
`Organization.getOutbox()` methods is now `OrderedCollection |
|
605
|
+
OrderedCollectionPage | null` (was `OrderedCollection | null`).
|
606
|
+
- The type of `Person()` constructor's `inbox` and `outbox` options is
|
607
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
608
|
+
`OrderedCollection | null | undefined`).
|
609
|
+
- The type of `Person.clone()` method's `inbox` and `outbox` options is
|
610
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
611
|
+
`OrderedCollection | null | undefined`).
|
612
|
+
- The return type of `Person.getInbox()` and `Person.getOutbox()` methods
|
613
|
+
is now `OrderedCollection | OrderedCollectionPage | null` (was
|
614
|
+
`OrderedCollection | null`).
|
615
|
+
- The type of `Service()` constructor's `inbox` and `outbox` options is
|
616
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
617
|
+
`OrderedCollection | null | undefined`).
|
618
|
+
- The type of `Service.clone()` method's `inbox` and `outbox` options is
|
619
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
620
|
+
`OrderedCollection | null | undefined`).
|
621
|
+
- The return type of `Service.getInbox()` and `Service.getOutbox()`
|
622
|
+
methods is now `OrderedCollection | OrderedCollectionPage | null` (was
|
623
|
+
`OrderedCollection | null`).
|
624
|
+
|
625
|
+
[#165]: https://github.com/dahlia/fedify/issues/165
|
626
|
+
|
627
|
+
|
628
|
+
Version 0.15.7
|
629
|
+
--------------
|
630
|
+
|
631
|
+
Released on November 14, 2024.
|
632
|
+
|
633
|
+
- Suppressed a `TypeError` with a message <q>unusable</q> due to Node.js's
|
634
|
+
mysterious behavior. [[#159]]
|
635
|
+
|
636
|
+
- The `verifyRequest()` function no longer throws a `TypeError`
|
637
|
+
when a given `Request` object's body is already consumed or locked.
|
638
|
+
Instead, it logs an error message to the `["fedify", "sig", "http"]`
|
639
|
+
logger category and returns `null`.
|
640
|
+
- The `Federation.fetch()` method no longer throws a `TypeError`
|
641
|
+
when a given `Request` object's body is already consumed or locked.
|
642
|
+
Instead, it logs an error message to the `["fedify", "federation",
|
643
|
+
"inbox"]` logger category and responds with a `500 Internal Server
|
644
|
+
Error`.
|
645
|
+
|
646
|
+
[#159]: https://github.com/dahlia/fedify/issues/159
|
647
|
+
|
648
|
+
|
417
649
|
Version 0.15.6
|
418
650
|
--------------
|
419
651
|
|
@@ -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, { identifier, context, inboxContextFa
|
|
188
188
|
return await onNotFound(request);
|
189
189
|
}
|
190
190
|
}
|
191
|
+
if (request.bodyUsed) {
|
192
|
+
logger.error("Request body has already been read.", { identifier });
|
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.", { identifier });
|
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
|
+
}
|
@@ -105,6 +105,7 @@ properties:
|
|
105
105
|
and dropping any activities already seen.
|
106
106
|
range:
|
107
107
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
108
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
108
109
|
|
109
110
|
- singularName: outbox
|
110
111
|
functional: true
|
@@ -123,6 +124,7 @@ properties:
|
|
123
124
|
implementing and deploying the server.
|
124
125
|
range:
|
125
126
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
127
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
126
128
|
|
127
129
|
- singularName: following
|
128
130
|
functional: true
|
package/esm/vocab/group.yaml
CHANGED
@@ -105,6 +105,7 @@ properties:
|
|
105
105
|
and dropping any activities already seen.
|
106
106
|
range:
|
107
107
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
108
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
108
109
|
|
109
110
|
- singularName: outbox
|
110
111
|
functional: true
|
@@ -123,6 +124,7 @@ properties:
|
|
123
124
|
implementing and deploying the server.
|
124
125
|
range:
|
125
126
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
127
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
126
128
|
|
127
129
|
- singularName: following
|
128
130
|
functional: true
|
@@ -105,6 +105,7 @@ properties:
|
|
105
105
|
and dropping any activities already seen.
|
106
106
|
range:
|
107
107
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
108
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
108
109
|
|
109
110
|
- singularName: outbox
|
110
111
|
functional: true
|
@@ -123,6 +124,7 @@ properties:
|
|
123
124
|
implementing and deploying the server.
|
124
125
|
range:
|
125
126
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
127
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
126
128
|
|
127
129
|
- singularName: following
|
128
130
|
functional: true
|
package/esm/vocab/person.yaml
CHANGED
@@ -105,6 +105,7 @@ properties:
|
|
105
105
|
and dropping any activities already seen.
|
106
106
|
range:
|
107
107
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
108
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
108
109
|
|
109
110
|
- singularName: outbox
|
110
111
|
functional: true
|
@@ -123,6 +124,7 @@ properties:
|
|
123
124
|
implementing and deploying the server.
|
124
125
|
range:
|
125
126
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
127
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
126
128
|
|
127
129
|
- singularName: following
|
128
130
|
functional: true
|
package/esm/vocab/service.yaml
CHANGED
@@ -105,6 +105,7 @@ properties:
|
|
105
105
|
and dropping any activities already seen.
|
106
106
|
range:
|
107
107
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
108
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
108
109
|
|
109
110
|
- singularName: outbox
|
110
111
|
functional: true
|
@@ -123,6 +124,7 @@ properties:
|
|
123
124
|
implementing and deploying the server.
|
124
125
|
range:
|
125
126
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
127
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
126
128
|
|
127
129
|
- singularName: following
|
128
130
|
functional: true
|