@fedify/fedify 1.0.8 → 1.0.10
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGES.md +156 -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.0.10
|
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.0.9
|
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.0.8
|
7
83
|
-------------
|
8
84
|
|
@@ -268,6 +344,86 @@ Released on September 26, 2024.
|
|
268
344
|
[#137]: https://github.com/dahlia/fedify/issues/137
|
269
345
|
|
270
346
|
|
347
|
+
Version 0.15.8
|
348
|
+
--------------
|
349
|
+
|
350
|
+
Released on November 159, 2024.
|
351
|
+
|
352
|
+
- Fix a bug where `Actor`'s `inbox` and `outbox` properties had not been
|
353
|
+
able to be set to an `OrderedCollectionPage` object, even though it is
|
354
|
+
a subtype of `OrderedCollection` according to Activity Vocabulary
|
355
|
+
specification. [[#165]]
|
356
|
+
|
357
|
+
- The type of `Application()` constructor's `inbox` and `outbox` options
|
358
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
359
|
+
(was `OrderedCollection | null | undefined`).
|
360
|
+
- The type of `Application.clone()` method's `inbox` and `outbox` options
|
361
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
362
|
+
(was `OrderedCollection | null | undefined`).
|
363
|
+
- The return type of `Application.getInbox()` and
|
364
|
+
`Application.getOutbox()` methods is now `OrderedCollection |
|
365
|
+
OrderedCollectionPage | null` (was `OrderedCollection | null`).
|
366
|
+
- The type of `Group()` constructor's `inbox` and `outbox` options is
|
367
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
368
|
+
`OrderedCollection | null | undefined`).
|
369
|
+
- The type of `Group.clone()` method's `inbox` and `outbox` options is
|
370
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
371
|
+
`OrderedCollection | null | undefined`).
|
372
|
+
- The return type of `Group.getInbox()` and `Group.getOutbox()` methods
|
373
|
+
is now `OrderedCollection | OrderedCollectionPage | null` (was
|
374
|
+
`OrderedCollection | null`).
|
375
|
+
- The type of `Organization()` constructor's `inbox` and `outbox` options
|
376
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
377
|
+
(was `OrderedCollection | null | undefined`).
|
378
|
+
- The type of `Organization.clone()` method's `inbox` and `outbox` options
|
379
|
+
is now `OrderedCollection | OrderedCollectionPage | null | undefined`
|
380
|
+
(was `OrderedCollection | null | undefined`).
|
381
|
+
- The return type of `Organization.getInbox()` and
|
382
|
+
`Organization.getOutbox()` methods is now `OrderedCollection |
|
383
|
+
OrderedCollectionPage | null` (was `OrderedCollection | null`).
|
384
|
+
- The type of `Person()` constructor's `inbox` and `outbox` options is
|
385
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
386
|
+
`OrderedCollection | null | undefined`).
|
387
|
+
- The type of `Person.clone()` method's `inbox` and `outbox` options is
|
388
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
389
|
+
`OrderedCollection | null | undefined`).
|
390
|
+
- The return type of `Person.getInbox()` and `Person.getOutbox()` methods
|
391
|
+
is now `OrderedCollection | OrderedCollectionPage | null` (was
|
392
|
+
`OrderedCollection | null`).
|
393
|
+
- The type of `Service()` constructor's `inbox` and `outbox` options is
|
394
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
395
|
+
`OrderedCollection | null | undefined`).
|
396
|
+
- The type of `Service.clone()` method's `inbox` and `outbox` options is
|
397
|
+
now `OrderedCollection | OrderedCollectionPage | null | undefined` (was
|
398
|
+
`OrderedCollection | null | undefined`).
|
399
|
+
- The return type of `Service.getInbox()` and `Service.getOutbox()`
|
400
|
+
methods is now `OrderedCollection | OrderedCollectionPage | null` (was
|
401
|
+
`OrderedCollection | null`).
|
402
|
+
|
403
|
+
[#165]: https://github.com/dahlia/fedify/issues/165
|
404
|
+
|
405
|
+
|
406
|
+
Version 0.15.7
|
407
|
+
--------------
|
408
|
+
|
409
|
+
Released on November 14, 2024.
|
410
|
+
|
411
|
+
- Suppressed a `TypeError` with a message <q>unusable</q> due to Node.js's
|
412
|
+
mysterious behavior. [[#159]]
|
413
|
+
|
414
|
+
- The `verifyRequest()` function no longer throws a `TypeError`
|
415
|
+
when a given `Request` object's body is already consumed or locked.
|
416
|
+
Instead, it logs an error message to the `["fedify", "sig", "http"]`
|
417
|
+
logger category and returns `null`.
|
418
|
+
- The `Federation.fetch()` method no longer throws a `TypeError`
|
419
|
+
when a given `Request` object's body is already consumed or locked.
|
420
|
+
Instead, it logs an error message to the `["fedify", "federation",
|
421
|
+
"inbox"]` logger category and responds with a `500 Internal Server
|
422
|
+
Error`.
|
423
|
+
|
424
|
+
[#159]: https://github.com/dahlia/fedify/issues/159
|
425
|
+
|
426
|
+
|
271
427
|
Version 0.15.6
|
272
428
|
--------------
|
273
429
|
|
@@ -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
|
+
}
|
@@ -102,6 +102,7 @@ properties:
|
|
102
102
|
and dropping any activities already seen.
|
103
103
|
range:
|
104
104
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
105
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
105
106
|
|
106
107
|
- singularName: outbox
|
107
108
|
functional: true
|
@@ -120,6 +121,7 @@ properties:
|
|
120
121
|
implementing and deploying the server.
|
121
122
|
range:
|
122
123
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
124
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
123
125
|
|
124
126
|
- singularName: following
|
125
127
|
functional: true
|
package/esm/vocab/group.yaml
CHANGED
@@ -102,6 +102,7 @@ properties:
|
|
102
102
|
and dropping any activities already seen.
|
103
103
|
range:
|
104
104
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
105
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
105
106
|
|
106
107
|
- singularName: outbox
|
107
108
|
functional: true
|
@@ -120,6 +121,7 @@ properties:
|
|
120
121
|
implementing and deploying the server.
|
121
122
|
range:
|
122
123
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
124
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
123
125
|
|
124
126
|
- singularName: following
|
125
127
|
functional: true
|
@@ -102,6 +102,7 @@ properties:
|
|
102
102
|
and dropping any activities already seen.
|
103
103
|
range:
|
104
104
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
105
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
105
106
|
|
106
107
|
- singularName: outbox
|
107
108
|
functional: true
|
@@ -120,6 +121,7 @@ properties:
|
|
120
121
|
implementing and deploying the server.
|
121
122
|
range:
|
122
123
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
124
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
123
125
|
|
124
126
|
- singularName: following
|
125
127
|
functional: true
|
package/esm/vocab/person.yaml
CHANGED
@@ -102,6 +102,7 @@ properties:
|
|
102
102
|
and dropping any activities already seen.
|
103
103
|
range:
|
104
104
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
105
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
105
106
|
|
106
107
|
- singularName: outbox
|
107
108
|
functional: true
|
@@ -120,6 +121,7 @@ properties:
|
|
120
121
|
implementing and deploying the server.
|
121
122
|
range:
|
122
123
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
124
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
123
125
|
|
124
126
|
- singularName: following
|
125
127
|
functional: true
|
package/esm/vocab/service.yaml
CHANGED
@@ -102,6 +102,7 @@ properties:
|
|
102
102
|
and dropping any activities already seen.
|
103
103
|
range:
|
104
104
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
105
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
105
106
|
|
106
107
|
- singularName: outbox
|
107
108
|
functional: true
|
@@ -120,6 +121,7 @@ properties:
|
|
120
121
|
implementing and deploying the server.
|
121
122
|
range:
|
122
123
|
- "https://www.w3.org/ns/activitystreams#OrderedCollection"
|
124
|
+
- "https://www.w3.org/ns/activitystreams#OrderedCollectionPage"
|
123
125
|
|
124
126
|
- singularName: following
|
125
127
|
functional: true
|