@fedify/fedify 1.1.0-dev.446 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGES.md +39 -1
- package/esm/federation/middleware.js +1 -1
- package/esm/sig/http.js +2 -1
- package/esm/vocab/application.yaml +20 -0
- package/esm/vocab/group.yaml +20 -0
- package/esm/vocab/organization.yaml +20 -0
- package/esm/vocab/person.yaml +20 -0
- package/esm/vocab/service.yaml +20 -0
- package/esm/vocab/vocab.js +1258 -73
- package/package.json +1 -1
- package/types/federation/handler.d.ts +1 -1
- package/types/federation/handler.d.ts.map +1 -1
- package/types/federation/middleware.d.ts +4 -4
- package/types/federation/middleware.d.ts.map +1 -1
- package/types/sig/http.d.ts +2 -2
- package/types/sig/http.d.ts.map +1 -1
- package/types/vocab/vocab.d.ts +75 -0
- package/types/vocab/vocab.d.ts.map +1 -1
package/CHANGES.md
CHANGED
@@ -6,7 +6,7 @@ Fedify changelog
|
|
6
6
|
Version 1.1.0
|
7
7
|
-------------
|
8
8
|
|
9
|
-
|
9
|
+
Released on October 20, 2024.
|
10
10
|
|
11
11
|
- Added utility functions for traversing remote collections. [[#150]]
|
12
12
|
|
@@ -16,6 +16,25 @@ To be released.
|
|
16
16
|
|
17
17
|
- Added `EmojiReact` class to Activity Vocabulary API. [[FEP-c0e0]]
|
18
18
|
|
19
|
+
- Added `successor` property to the `Actor` types in the Activity
|
20
|
+
Vocabulary API.
|
21
|
+
|
22
|
+
- Added `Application.getSuccessor()` method.
|
23
|
+
- `new Application()` constructor now accepts `successor` option.
|
24
|
+
- `Application.clone()` method now accepts `successor` option.
|
25
|
+
- Added `Group.getSuccessor()` method.
|
26
|
+
- `new Group()` constructor now accepts `successor` option.
|
27
|
+
- `Group.clone()` method now accepts `successor` option.
|
28
|
+
- Added `Organization.getSuccessor()` method.
|
29
|
+
- `new Organization()` constructor now accepts `successor` option.
|
30
|
+
- `Organization.clone()` method now accepts `successor` option.
|
31
|
+
- Added `Person.getSuccessor()` method.
|
32
|
+
- `new Person()` constructor now accepts `successor` option.
|
33
|
+
- `Person.clone()` method now accepts `successor` option.
|
34
|
+
- Added `Service.getSuccessor()` method.
|
35
|
+
- `new Service()` constructor now accepts `successor` option.
|
36
|
+
- `Service.clone()` method now accepts `successor` option.
|
37
|
+
|
19
38
|
- Added `DidService` class to Activity Vocabulary API.
|
20
39
|
[[FEP-9091], [#146]]
|
21
40
|
|
@@ -56,11 +75,30 @@ To be released.
|
|
56
75
|
- `Service.clone()` method now accepts `service` option.
|
57
76
|
- `Service.clone()` method now accepts `services` option.
|
58
77
|
|
78
|
+
- The default time window for verifying HTTP Signatures of incoming requests
|
79
|
+
is now an hour (was a minute). This new default window is according to
|
80
|
+
the [ActivityPub and HTTP Signatures] document.
|
81
|
+
|
82
|
+
- The default value of `VerifyRequestOptions.timeWindow` option became
|
83
|
+
`{ hours: 1 }` (was `{ minutes: 1 }`).
|
84
|
+
|
85
|
+
- The default value of `CreateFederationOptions.signatureTimeWindow`
|
86
|
+
option became `{ hours: 1 }` (was `{ minutes: 1 }`).
|
87
|
+
|
88
|
+
- The type of `VerifyRequestOptions.timeWindow` property became
|
89
|
+
`Temporal.Duration | Temporal.DurationLike | false`
|
90
|
+
(was `Temporal.DurationLike | false`).
|
91
|
+
|
92
|
+
- The type of `CreateFederationOptions.signatureTimeWindow` property
|
93
|
+
became `Temporal.Duration | Temporal.DurationLike | false`
|
94
|
+
(was `Temporal.DurationLike | false`).
|
95
|
+
|
59
96
|
- In the `fedify inbox` command's web interface, the *Raw Activity* tab is
|
60
97
|
added to show the raw JSON object of the received activity.
|
61
98
|
|
62
99
|
[FEP-c0e0]: https://w3id.org/fep/c0e0
|
63
100
|
[FEP-9091]: https://w3id.org/fep/9091
|
101
|
+
[ActivityPub and HTTP Signatures]: https://swicg.github.io/activitypub-http-signature/
|
64
102
|
[#146]: https://github.com/dahlia/fedify/issues/146
|
65
103
|
[#150]: https://github.com/dahlia/fedify/issues/150
|
66
104
|
|
@@ -101,7 +101,7 @@ export class FederationImpl {
|
|
101
101
|
? (identity) => getAuthenticatedDocumentLoader(identity, true)
|
102
102
|
: getAuthenticatedDocumentLoader);
|
103
103
|
this.onOutboxError = options.onOutboxError;
|
104
|
-
this.signatureTimeWindow = options.signatureTimeWindow ?? {
|
104
|
+
this.signatureTimeWindow = options.signatureTimeWindow ?? { hours: 1 };
|
105
105
|
this.skipSignatureVerification = options.skipSignatureVerification ?? false;
|
106
106
|
this.outboxRetryPolicy = options.outboxRetryPolicy ??
|
107
107
|
createExponentialBackoffPolicy();
|
package/esm/sig/http.js
CHANGED
@@ -131,7 +131,8 @@ export async function verifyRequest(request, { documentLoader, contextLoader, ti
|
|
131
131
|
const date = dntShim.Temporal.Instant.from(new Date(dateHeader).toISOString());
|
132
132
|
const now = currentTime ?? dntShim.Temporal.Now.instant();
|
133
133
|
if (timeWindow !== false) {
|
134
|
-
const tw = timeWindow ??
|
134
|
+
const tw = timeWindow ??
|
135
|
+
{ hours: 1 };
|
135
136
|
if (dntShim.Temporal.Instant.compare(date, now.add(tw)) > 0) {
|
136
137
|
logger.debug("Failed to verify; Date is too far in the future.", { date: date.toString(), now: now.toString() });
|
137
138
|
return null;
|
@@ -15,6 +15,9 @@ defaultContext:
|
|
15
15
|
"@id": "as:alsoKnownAs"
|
16
16
|
"@type": "@id"
|
17
17
|
manuallyApprovesFollowers: "as:manuallyApprovesFollowers"
|
18
|
+
movedTo:
|
19
|
+
"@id": "as:movedTo"
|
20
|
+
"@type": "@id"
|
18
21
|
toot: "http://joinmastodon.org/ns#"
|
19
22
|
featured:
|
20
23
|
"@id": "toot:featured"
|
@@ -248,6 +251,23 @@ properties:
|
|
248
251
|
range:
|
249
252
|
- "http://www.w3.org/2001/XMLSchema#boolean"
|
250
253
|
|
254
|
+
- singularName: successor
|
255
|
+
functional: true
|
256
|
+
compactName: movedTo
|
257
|
+
uri: "https://www.w3.org/ns/activitystreams#movedTo"
|
258
|
+
description: >-
|
259
|
+
Signifies that an actor has been moved to a different ID.
|
260
|
+
Used in Mastodon-style data portability with the {@link Move} activity;
|
261
|
+
see [ActivityPub Data Portability/Move
|
262
|
+
Action](https://swicg.github.io/activitypub-data-portability/#move-action)
|
263
|
+
for more details.
|
264
|
+
range:
|
265
|
+
- "https://www.w3.org/ns/activitystreams#Application"
|
266
|
+
- "https://www.w3.org/ns/activitystreams#Group"
|
267
|
+
- "https://www.w3.org/ns/activitystreams#Organization"
|
268
|
+
- "https://www.w3.org/ns/activitystreams#Person"
|
269
|
+
- "https://www.w3.org/ns/activitystreams#Service"
|
270
|
+
|
251
271
|
- pluralName: aliases
|
252
272
|
singularName: alias
|
253
273
|
singularAccessor: true
|
package/esm/vocab/group.yaml
CHANGED
@@ -15,6 +15,9 @@ defaultContext:
|
|
15
15
|
"@id": "as:alsoKnownAs"
|
16
16
|
"@type": "@id"
|
17
17
|
manuallyApprovesFollowers: "as:manuallyApprovesFollowers"
|
18
|
+
movedTo:
|
19
|
+
"@id": "as:movedTo"
|
20
|
+
"@type": "@id"
|
18
21
|
toot: "http://joinmastodon.org/ns#"
|
19
22
|
featured:
|
20
23
|
"@id": "toot:featured"
|
@@ -248,6 +251,23 @@ properties:
|
|
248
251
|
range:
|
249
252
|
- "http://www.w3.org/2001/XMLSchema#boolean"
|
250
253
|
|
254
|
+
- singularName: successor
|
255
|
+
functional: true
|
256
|
+
compactName: movedTo
|
257
|
+
uri: "https://www.w3.org/ns/activitystreams#movedTo"
|
258
|
+
description: >-
|
259
|
+
Signifies that an actor has been moved to a different ID.
|
260
|
+
Used in Mastodon-style data portability with the {@link Move} activity;
|
261
|
+
see [ActivityPub Data Portability/Move
|
262
|
+
Action](https://swicg.github.io/activitypub-data-portability/#move-action)
|
263
|
+
for more details.
|
264
|
+
range:
|
265
|
+
- "https://www.w3.org/ns/activitystreams#Application"
|
266
|
+
- "https://www.w3.org/ns/activitystreams#Group"
|
267
|
+
- "https://www.w3.org/ns/activitystreams#Organization"
|
268
|
+
- "https://www.w3.org/ns/activitystreams#Person"
|
269
|
+
- "https://www.w3.org/ns/activitystreams#Service"
|
270
|
+
|
251
271
|
- pluralName: aliases
|
252
272
|
singularName: alias
|
253
273
|
singularAccessor: true
|
@@ -15,6 +15,9 @@ defaultContext:
|
|
15
15
|
"@id": "as:alsoKnownAs"
|
16
16
|
"@type": "@id"
|
17
17
|
manuallyApprovesFollowers: "as:manuallyApprovesFollowers"
|
18
|
+
movedTo:
|
19
|
+
"@id": "as:movedTo"
|
20
|
+
"@type": "@id"
|
18
21
|
toot: "http://joinmastodon.org/ns#"
|
19
22
|
featured:
|
20
23
|
"@id": "toot:featured"
|
@@ -248,6 +251,23 @@ properties:
|
|
248
251
|
range:
|
249
252
|
- "http://www.w3.org/2001/XMLSchema#boolean"
|
250
253
|
|
254
|
+
- singularName: successor
|
255
|
+
functional: true
|
256
|
+
compactName: movedTo
|
257
|
+
uri: "https://www.w3.org/ns/activitystreams#movedTo"
|
258
|
+
description: >-
|
259
|
+
Signifies that an actor has been moved to a different ID.
|
260
|
+
Used in Mastodon-style data portability with the {@link Move} activity;
|
261
|
+
see [ActivityPub Data Portability/Move
|
262
|
+
Action](https://swicg.github.io/activitypub-data-portability/#move-action)
|
263
|
+
for more details.
|
264
|
+
range:
|
265
|
+
- "https://www.w3.org/ns/activitystreams#Application"
|
266
|
+
- "https://www.w3.org/ns/activitystreams#Group"
|
267
|
+
- "https://www.w3.org/ns/activitystreams#Organization"
|
268
|
+
- "https://www.w3.org/ns/activitystreams#Person"
|
269
|
+
- "https://www.w3.org/ns/activitystreams#Service"
|
270
|
+
|
251
271
|
- pluralName: aliases
|
252
272
|
singularName: alias
|
253
273
|
singularAccessor: true
|
package/esm/vocab/person.yaml
CHANGED
@@ -15,6 +15,9 @@ defaultContext:
|
|
15
15
|
"@id": "as:alsoKnownAs"
|
16
16
|
"@type": "@id"
|
17
17
|
manuallyApprovesFollowers: "as:manuallyApprovesFollowers"
|
18
|
+
movedTo:
|
19
|
+
"@id": "as:movedTo"
|
20
|
+
"@type": "@id"
|
18
21
|
toot: "http://joinmastodon.org/ns#"
|
19
22
|
featured:
|
20
23
|
"@id": "toot:featured"
|
@@ -248,6 +251,23 @@ properties:
|
|
248
251
|
range:
|
249
252
|
- "http://www.w3.org/2001/XMLSchema#boolean"
|
250
253
|
|
254
|
+
- singularName: successor
|
255
|
+
functional: true
|
256
|
+
compactName: movedTo
|
257
|
+
uri: "https://www.w3.org/ns/activitystreams#movedTo"
|
258
|
+
description: >-
|
259
|
+
Signifies that an actor has been moved to a different ID.
|
260
|
+
Used in Mastodon-style data portability with the {@link Move} activity;
|
261
|
+
see [ActivityPub Data Portability/Move
|
262
|
+
Action](https://swicg.github.io/activitypub-data-portability/#move-action)
|
263
|
+
for more details.
|
264
|
+
range:
|
265
|
+
- "https://www.w3.org/ns/activitystreams#Application"
|
266
|
+
- "https://www.w3.org/ns/activitystreams#Group"
|
267
|
+
- "https://www.w3.org/ns/activitystreams#Organization"
|
268
|
+
- "https://www.w3.org/ns/activitystreams#Person"
|
269
|
+
- "https://www.w3.org/ns/activitystreams#Service"
|
270
|
+
|
251
271
|
- pluralName: aliases
|
252
272
|
singularName: alias
|
253
273
|
singularAccessor: true
|
package/esm/vocab/service.yaml
CHANGED
@@ -15,6 +15,9 @@ defaultContext:
|
|
15
15
|
"@id": "as:alsoKnownAs"
|
16
16
|
"@type": "@id"
|
17
17
|
manuallyApprovesFollowers: "as:manuallyApprovesFollowers"
|
18
|
+
movedTo:
|
19
|
+
"@id": "as:movedTo"
|
20
|
+
"@type": "@id"
|
18
21
|
toot: "http://joinmastodon.org/ns#"
|
19
22
|
featured:
|
20
23
|
"@id": "toot:featured"
|
@@ -248,6 +251,23 @@ properties:
|
|
248
251
|
range:
|
249
252
|
- "http://www.w3.org/2001/XMLSchema#boolean"
|
250
253
|
|
254
|
+
- singularName: successor
|
255
|
+
functional: true
|
256
|
+
compactName: movedTo
|
257
|
+
uri: "https://www.w3.org/ns/activitystreams#movedTo"
|
258
|
+
description: >-
|
259
|
+
Signifies that an actor has been moved to a different ID.
|
260
|
+
Used in Mastodon-style data portability with the {@link Move} activity;
|
261
|
+
see [ActivityPub Data Portability/Move
|
262
|
+
Action](https://swicg.github.io/activitypub-data-portability/#move-action)
|
263
|
+
for more details.
|
264
|
+
range:
|
265
|
+
- "https://www.w3.org/ns/activitystreams#Application"
|
266
|
+
- "https://www.w3.org/ns/activitystreams#Group"
|
267
|
+
- "https://www.w3.org/ns/activitystreams#Organization"
|
268
|
+
- "https://www.w3.org/ns/activitystreams#Person"
|
269
|
+
- "https://www.w3.org/ns/activitystreams#Service"
|
270
|
+
|
251
271
|
- pluralName: aliases
|
252
272
|
singularName: alias
|
253
273
|
singularAccessor: true
|