@fedify/fedify 0.14.0-dev.337 → 0.14.0-dev.339
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 +51 -0
- package/esm/federation/middleware.js +22 -40
- package/esm/vocab/application.yaml +17 -0
- package/esm/vocab/group.yaml +17 -0
- package/esm/vocab/organization.yaml +17 -0
- package/esm/vocab/person.yaml +17 -0
- package/esm/vocab/service.yaml +17 -0
- package/esm/vocab/vocab.js +1528 -23
- package/package.json +1 -1
- package/types/federation/callback.d.ts +18 -3
- package/types/federation/callback.d.ts.map +1 -1
- package/types/federation/context.d.ts +12 -22
- package/types/federation/context.d.ts.map +1 -1
- package/types/federation/handler.d.ts +9 -9
- package/types/federation/handler.d.ts.map +1 -1
- package/types/federation/middleware.d.ts +14 -12
- package/types/federation/middleware.d.ts.map +1 -1
- package/types/vocab/vocab.d.ts +180 -0
- package/types/vocab/vocab.d.ts.map +1 -1
package/CHANGES.md
CHANGED
@@ -8,6 +8,23 @@ Version 0.14.0
|
|
8
8
|
|
9
9
|
To be released.
|
10
10
|
|
11
|
+
- Removed the limitation that the `sendActivity({ handle: string },
|
12
|
+
"followers", Activity)` overload is only available for `RequestContext`
|
13
|
+
but not for `Context`. Now it is available for both. [[#115]]
|
14
|
+
|
15
|
+
- Added `Context.sendActivity({ handle: string }, "followers", Activity)`
|
16
|
+
overload.
|
17
|
+
- Added type parameter `TContext` to `CollectionsDispatcher` type's first
|
18
|
+
parameter to distinguish between `RequestContext` and `Context`.
|
19
|
+
- The first parameter of `CollectionDispatcher` type became `TContext`
|
20
|
+
(was `RequestContext`).
|
21
|
+
- Added type parameter `TContext` to `CollectionsCursor` type's first
|
22
|
+
parameter to distinguish between `RequestContext` and `Context`.
|
23
|
+
- The first parameter of `CollectionCursor` type became `TContext`
|
24
|
+
(was `RequestContext`).
|
25
|
+
- Added type parameter `TContext` to `CollectionsCallbackSetters` type's
|
26
|
+
first parameter to distinguish between `RequestContext` and `Context`.
|
27
|
+
|
11
28
|
- Added `source` property to `Object` class in Activity Vocabulary API.
|
12
29
|
[[#114]]
|
13
30
|
|
@@ -17,6 +34,39 @@ To be released.
|
|
17
34
|
|
18
35
|
- Added `Source` class to Activity Vocabulary API. [[#114]]
|
19
36
|
|
37
|
+
- Added `aliases` property to `Actor` type in Activity Vocabulary API.
|
38
|
+
|
39
|
+
- Added `Application.getAliases()` method.
|
40
|
+
- Added `Application.getAlias()` method.
|
41
|
+
- `new Application()` constructor now accepts `alias` option.
|
42
|
+
- `new Application()` constructor now accepts `aliases` option.
|
43
|
+
- `Application.clone()` method now accepts `alias` option.
|
44
|
+
- `Application.clone()` method now accepts `aliases` option.
|
45
|
+
- Added `Group.getAliases()` method.
|
46
|
+
- Added `Group.getAlias()` method.
|
47
|
+
- `new Group()` constructor now accepts `alias` option.
|
48
|
+
- `new Group()` constructor now accepts `aliases` option.
|
49
|
+
- `Group.clone()` method now accepts `alias` option.
|
50
|
+
- `Group.clone()` method now accepts `aliases` option.
|
51
|
+
- Added `Organization.getAliases()` method.
|
52
|
+
- Added `Organization.getAlias()` method.
|
53
|
+
- `new Organization()` constructor now accepts `alias` option.
|
54
|
+
- `new Organization()` constructor now accepts `aliases` option.
|
55
|
+
- `Organization.clone()` method now accepts `alias` option.
|
56
|
+
- `Organization.clone()` method now accepts `aliases` option.
|
57
|
+
- Added `Person.getAliases()` method.
|
58
|
+
- Added `Person.getAlias()` method.
|
59
|
+
- `new Person()` constructor now accepts `alias` option.
|
60
|
+
- `new Person()` constructor now accepts `aliases` option.
|
61
|
+
- `Person.clone()` method now accepts `alias` option.
|
62
|
+
- `Person.clone()` method now accepts `aliases` option.
|
63
|
+
- Added `Service.getAliases()` method.
|
64
|
+
- Added `Service.getAlias()` method.
|
65
|
+
- `new Service()` constructor now accepts `alias` option.
|
66
|
+
- `new Service()` constructor now accepts `aliases` option.
|
67
|
+
- `Service.clone()` method now accepts `alias` option.
|
68
|
+
- `Service.clone()` method now accepts `aliases` option.
|
69
|
+
|
20
70
|
- Improved the performance of `Object.toJsonLd()` method.
|
21
71
|
|
22
72
|
- `Object.toJsonLd()` method no longer guarantees that the returned
|
@@ -34,6 +84,7 @@ To be released.
|
|
34
84
|
Deno.
|
35
85
|
|
36
86
|
[#114]: https://github.com/dahlia/fedify/issues/114
|
87
|
+
[#115]: https://github.com/dahlia/fedify/issues/115
|
37
88
|
|
38
89
|
|
39
90
|
Version 0.13.0
|
@@ -496,9 +496,7 @@ class FederationImpl {
|
|
496
496
|
}
|
497
497
|
this.inboxPath = path;
|
498
498
|
}
|
499
|
-
const callbacks = {
|
500
|
-
dispatcher,
|
501
|
-
};
|
499
|
+
const callbacks = { dispatcher };
|
502
500
|
this.inboxCallbacks = callbacks;
|
503
501
|
const setters = {
|
504
502
|
setCounter(counter) {
|
@@ -528,9 +526,7 @@ class FederationImpl {
|
|
528
526
|
if (variables.size !== 1 || !variables.has("handle")) {
|
529
527
|
throw new RouterError("Path for outbox dispatcher must have one variable: {handle}");
|
530
528
|
}
|
531
|
-
const callbacks = {
|
532
|
-
dispatcher,
|
533
|
-
};
|
529
|
+
const callbacks = { dispatcher };
|
534
530
|
this.outboxCallbacks = callbacks;
|
535
531
|
const setters = {
|
536
532
|
setCounter(counter) {
|
@@ -560,9 +556,7 @@ class FederationImpl {
|
|
560
556
|
if (variables.size !== 1 || !variables.has("handle")) {
|
561
557
|
throw new RouterError("Path for following collection dispatcher must have one variable: {handle}");
|
562
558
|
}
|
563
|
-
const callbacks = {
|
564
|
-
dispatcher,
|
565
|
-
};
|
559
|
+
const callbacks = { dispatcher };
|
566
560
|
this.followingCallbacks = callbacks;
|
567
561
|
const setters = {
|
568
562
|
setCounter(counter) {
|
@@ -592,9 +586,7 @@ class FederationImpl {
|
|
592
586
|
if (variables.size !== 1 || !variables.has("handle")) {
|
593
587
|
throw new RouterError("Path for followers collection dispatcher must have one variable: {handle}");
|
594
588
|
}
|
595
|
-
const callbacks = {
|
596
|
-
dispatcher,
|
597
|
-
};
|
589
|
+
const callbacks = { dispatcher };
|
598
590
|
this.followersCallbacks = callbacks;
|
599
591
|
const setters = {
|
600
592
|
setCounter(counter) {
|
@@ -624,9 +616,7 @@ class FederationImpl {
|
|
624
616
|
if (variables.size !== 1 || !variables.has("handle")) {
|
625
617
|
throw new RouterError("Path for liked collection dispatcher must have one variable: {handle}");
|
626
618
|
}
|
627
|
-
const callbacks = {
|
628
|
-
dispatcher,
|
629
|
-
};
|
619
|
+
const callbacks = { dispatcher };
|
630
620
|
this.likedCallbacks = callbacks;
|
631
621
|
const setters = {
|
632
622
|
setCounter(counter) {
|
@@ -656,9 +646,7 @@ class FederationImpl {
|
|
656
646
|
if (variables.size !== 1 || !variables.has("handle")) {
|
657
647
|
throw new RouterError("Path for featured collection dispatcher must have one variable: {handle}");
|
658
648
|
}
|
659
|
-
const callbacks = {
|
660
|
-
dispatcher,
|
661
|
-
};
|
649
|
+
const callbacks = { dispatcher };
|
662
650
|
this.featuredCallbacks = callbacks;
|
663
651
|
const setters = {
|
664
652
|
setCounter(counter) {
|
@@ -689,9 +677,7 @@ class FederationImpl {
|
|
689
677
|
throw new RouterError("Path for featured tags collection dispatcher must have one " +
|
690
678
|
"variable: {handle}");
|
691
679
|
}
|
692
|
-
const callbacks = {
|
693
|
-
dispatcher,
|
694
|
-
};
|
680
|
+
const callbacks = { dispatcher };
|
695
681
|
this.featuredTagsCallbacks = callbacks;
|
696
682
|
const setters = {
|
697
683
|
setCounter(counter) {
|
@@ -1313,7 +1299,7 @@ class ContextImpl {
|
|
1313
1299
|
throw new Error("If recipients is 'followers', sender must be an actor handle.");
|
1314
1300
|
}
|
1315
1301
|
expandedRecipients = [];
|
1316
|
-
for await (const recipient of this
|
1302
|
+
for await (const recipient of this.#getFollowers(sender.handle)) {
|
1317
1303
|
expandedRecipients.push(recipient);
|
1318
1304
|
}
|
1319
1305
|
const collectionId = this.federation.router.build("followers", sender);
|
@@ -1326,24 +1312,7 @@ class ContextImpl {
|
|
1326
1312
|
}
|
1327
1313
|
return await this.federation.sendActivity(keys, expandedRecipients, activity, opts);
|
1328
1314
|
}
|
1329
|
-
getFollowers(
|
1330
|
-
throw new Error('"followers" recipients are not supported in Context. ' +
|
1331
|
-
"Use RequestContext instead.");
|
1332
|
-
}
|
1333
|
-
}
|
1334
|
-
class RequestContextImpl extends ContextImpl {
|
1335
|
-
#invokedFromActorDispatcher;
|
1336
|
-
#invokedFromObjectDispatcher;
|
1337
|
-
request;
|
1338
|
-
url;
|
1339
|
-
constructor(options) {
|
1340
|
-
super(options);
|
1341
|
-
this.#invokedFromActorDispatcher = options.invokedFromActorDispatcher;
|
1342
|
-
this.#invokedFromObjectDispatcher = options.invokedFromObjectDispatcher;
|
1343
|
-
this.request = options.request;
|
1344
|
-
this.url = options.url;
|
1345
|
-
}
|
1346
|
-
async *getFollowers(handle) {
|
1315
|
+
async *#getFollowers(handle) {
|
1347
1316
|
if (this.federation.followersCallbacks == null) {
|
1348
1317
|
throw new Error("No followers collection dispatcher registered.");
|
1349
1318
|
}
|
@@ -1366,6 +1335,19 @@ class RequestContextImpl extends ContextImpl {
|
|
1366
1335
|
cursor = result.nextCursor ?? null;
|
1367
1336
|
}
|
1368
1337
|
}
|
1338
|
+
}
|
1339
|
+
class RequestContextImpl extends ContextImpl {
|
1340
|
+
#invokedFromActorDispatcher;
|
1341
|
+
#invokedFromObjectDispatcher;
|
1342
|
+
request;
|
1343
|
+
url;
|
1344
|
+
constructor(options) {
|
1345
|
+
super(options);
|
1346
|
+
this.#invokedFromActorDispatcher = options.invokedFromActorDispatcher;
|
1347
|
+
this.#invokedFromObjectDispatcher = options.invokedFromObjectDispatcher;
|
1348
|
+
this.request = options.request;
|
1349
|
+
this.url = options.url;
|
1350
|
+
}
|
1369
1351
|
async getActor(handle) {
|
1370
1352
|
if (this.federation.actorCallbacks == null ||
|
1371
1353
|
this.federation.actorCallbacks.dispatcher == null) {
|
@@ -242,3 +242,20 @@ properties:
|
|
242
242
|
description: Whether the actor allows to be indexed.
|
243
243
|
range:
|
244
244
|
- "http://www.w3.org/2001/XMLSchema#boolean"
|
245
|
+
|
246
|
+
- pluralName: aliases
|
247
|
+
singularName: alias
|
248
|
+
singularAccessor: true
|
249
|
+
compactName: alsoKnownAs
|
250
|
+
uri: "https://www.w3.org/ns/activitystreams#alsoKnownAs"
|
251
|
+
description: |
|
252
|
+
The `aliases` (`alsoKnownAs`) property is used to specify alternative names
|
253
|
+
or aliases for an entity. It can be used to provide additional identifiers
|
254
|
+
or labels for an entity, which can be useful in scenarios where an entity
|
255
|
+
may have multiple names or aliases.
|
256
|
+
range:
|
257
|
+
- "https://www.w3.org/ns/activitystreams#Application"
|
258
|
+
- "https://www.w3.org/ns/activitystreams#Group"
|
259
|
+
- "https://www.w3.org/ns/activitystreams#Organization"
|
260
|
+
- "https://www.w3.org/ns/activitystreams#Person"
|
261
|
+
- "https://www.w3.org/ns/activitystreams#Service"
|
package/esm/vocab/group.yaml
CHANGED
@@ -242,3 +242,20 @@ properties:
|
|
242
242
|
description: Whether the actor allows to be indexed.
|
243
243
|
range:
|
244
244
|
- "http://www.w3.org/2001/XMLSchema#boolean"
|
245
|
+
|
246
|
+
- pluralName: aliases
|
247
|
+
singularName: alias
|
248
|
+
singularAccessor: true
|
249
|
+
compactName: alsoKnownAs
|
250
|
+
uri: "https://www.w3.org/ns/activitystreams#alsoKnownAs"
|
251
|
+
description: |
|
252
|
+
The `aliases` (`alsoKnownAs`) property is used to specify alternative names
|
253
|
+
or aliases for an entity. It can be used to provide additional identifiers
|
254
|
+
or labels for an entity, which can be useful in scenarios where an entity
|
255
|
+
may have multiple names or aliases.
|
256
|
+
range:
|
257
|
+
- "https://www.w3.org/ns/activitystreams#Application"
|
258
|
+
- "https://www.w3.org/ns/activitystreams#Group"
|
259
|
+
- "https://www.w3.org/ns/activitystreams#Organization"
|
260
|
+
- "https://www.w3.org/ns/activitystreams#Person"
|
261
|
+
- "https://www.w3.org/ns/activitystreams#Service"
|
@@ -242,3 +242,20 @@ properties:
|
|
242
242
|
description: Whether the actor allows to be indexed.
|
243
243
|
range:
|
244
244
|
- "http://www.w3.org/2001/XMLSchema#boolean"
|
245
|
+
|
246
|
+
- pluralName: aliases
|
247
|
+
singularName: alias
|
248
|
+
singularAccessor: true
|
249
|
+
compactName: alsoKnownAs
|
250
|
+
uri: "https://www.w3.org/ns/activitystreams#alsoKnownAs"
|
251
|
+
description: |
|
252
|
+
The `aliases` (`alsoKnownAs`) property is used to specify alternative names
|
253
|
+
or aliases for an entity. It can be used to provide additional identifiers
|
254
|
+
or labels for an entity, which can be useful in scenarios where an entity
|
255
|
+
may have multiple names or aliases.
|
256
|
+
range:
|
257
|
+
- "https://www.w3.org/ns/activitystreams#Application"
|
258
|
+
- "https://www.w3.org/ns/activitystreams#Group"
|
259
|
+
- "https://www.w3.org/ns/activitystreams#Organization"
|
260
|
+
- "https://www.w3.org/ns/activitystreams#Person"
|
261
|
+
- "https://www.w3.org/ns/activitystreams#Service"
|
package/esm/vocab/person.yaml
CHANGED
@@ -242,3 +242,20 @@ properties:
|
|
242
242
|
description: Whether the actor allows to be indexed.
|
243
243
|
range:
|
244
244
|
- "http://www.w3.org/2001/XMLSchema#boolean"
|
245
|
+
|
246
|
+
- pluralName: aliases
|
247
|
+
singularName: alias
|
248
|
+
singularAccessor: true
|
249
|
+
compactName: alsoKnownAs
|
250
|
+
uri: "https://www.w3.org/ns/activitystreams#alsoKnownAs"
|
251
|
+
description: |
|
252
|
+
The `aliases` (`alsoKnownAs`) property is used to specify alternative names
|
253
|
+
or aliases for an entity. It can be used to provide additional identifiers
|
254
|
+
or labels for an entity, which can be useful in scenarios where an entity
|
255
|
+
may have multiple names or aliases.
|
256
|
+
range:
|
257
|
+
- "https://www.w3.org/ns/activitystreams#Application"
|
258
|
+
- "https://www.w3.org/ns/activitystreams#Group"
|
259
|
+
- "https://www.w3.org/ns/activitystreams#Organization"
|
260
|
+
- "https://www.w3.org/ns/activitystreams#Person"
|
261
|
+
- "https://www.w3.org/ns/activitystreams#Service"
|
package/esm/vocab/service.yaml
CHANGED
@@ -242,3 +242,20 @@ properties:
|
|
242
242
|
description: Whether the actor allows to be indexed.
|
243
243
|
range:
|
244
244
|
- "http://www.w3.org/2001/XMLSchema#boolean"
|
245
|
+
|
246
|
+
- pluralName: aliases
|
247
|
+
singularName: alias
|
248
|
+
singularAccessor: true
|
249
|
+
compactName: alsoKnownAs
|
250
|
+
uri: "https://www.w3.org/ns/activitystreams#alsoKnownAs"
|
251
|
+
description: |
|
252
|
+
The `aliases` (`alsoKnownAs`) property is used to specify alternative names
|
253
|
+
or aliases for an entity. It can be used to provide additional identifiers
|
254
|
+
or labels for an entity, which can be useful in scenarios where an entity
|
255
|
+
may have multiple names or aliases.
|
256
|
+
range:
|
257
|
+
- "https://www.w3.org/ns/activitystreams#Application"
|
258
|
+
- "https://www.w3.org/ns/activitystreams#Group"
|
259
|
+
- "https://www.w3.org/ns/activitystreams#Organization"
|
260
|
+
- "https://www.w3.org/ns/activitystreams#Person"
|
261
|
+
- "https://www.w3.org/ns/activitystreams#Service"
|