@fedify/vocab 2.4.0-dev.1618 → 2.4.0-dev.1655
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/deno.json +1 -1
- package/dist/mod.cjs +425 -15
- package/dist/mod.d.cts +109 -1
- package/dist/mod.d.ts +109 -1
- package/dist/mod.js +426 -16
- package/dist-tests/{actor-COnJgcOw.mjs → actor-D_oGj9t4.mjs} +2 -2
- package/dist-tests/actor.test.mjs +2 -2
- package/dist-tests/application.yaml +15 -0
- package/dist-tests/audio.yaml +2 -1
- package/dist-tests/document.yaml +14 -1
- package/dist-tests/group.yaml +15 -0
- package/dist-tests/image.yaml +2 -1
- package/dist-tests/link.yaml +14 -1
- package/dist-tests/lookup.test.mjs +2 -2
- package/dist-tests/organization.yaml +15 -0
- package/dist-tests/page.yaml +2 -1
- package/dist-tests/person.yaml +15 -0
- package/dist-tests/service.yaml +15 -0
- package/dist-tests/type.test.mjs +1 -1
- package/dist-tests/video.yaml +2 -1
- package/dist-tests/{vocab-OU5GYbNg.mjs → vocab-Bjwctrxn.mjs} +426 -16
- package/dist-tests/vocab.test.mjs +152 -1
- package/package.json +4 -4
- package/src/__snapshots__/vocab.test.ts.snap +54 -15
- package/src/application.yaml +15 -0
- package/src/audio.yaml +2 -1
- package/src/document.yaml +14 -1
- package/src/group.yaml +15 -0
- package/src/image.yaml +2 -1
- package/src/link.yaml +14 -1
- package/src/organization.yaml +15 -0
- package/src/page.yaml +2 -1
- package/src/person.yaml +15 -0
- package/src/preprocessors.ts +3 -1
- package/src/service.yaml +15 -0
- package/src/video.yaml +2 -1
- package/src/vocab.test.ts +244 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Temporal } from "temporal-polyfill";
|
|
2
2
|
globalThis.addEventListener = () => {};
|
|
3
|
-
import { B as
|
|
3
|
+
import { A as OrderedCollectionPage, B as Source, C as InteractionRule, D as Note, E as Multikey, F as Question, I as QuoteAuthorization, L as QuoteRequest, M as Person, N as Place, O as Object$1, P as Proposal, R as Reject, S as InteractionPolicy, T as Measure, V as Tombstone, W as vocab_exports, _ as Follow, a as Application, b as Image, c as Create, d as Document, f as Endpoints, g as FeaturedItem, h as FeaturedCollection, i as Announce, j as Organization, k as Offer, l as CryptographicKey, m as FeatureRequest, n as Activity, o as Collection, p as FeatureAuthorization, r as Agreement, s as Commitment, t as Accept, u as Delete, v as Group, w as Link, x as Intent, y as Hashtag, z as Service } from "./vocab-Bjwctrxn.mjs";
|
|
4
4
|
import { t as assertInstanceOf } from "./utils-CQjrpUkt.mjs";
|
|
5
5
|
import { mockDocumentLoader, test } from "@fedify/fixture";
|
|
6
6
|
import { deepStrictEqual, notDeepStrictEqual, ok, rejects, throws } from "node:assert/strict";
|
|
@@ -380,6 +380,154 @@ test("fromJsonLd() handles portable ActivityPub IRIs", async () => {
|
|
|
380
380
|
deepStrictEqual(pageJson.next, "ap+ef61://did:key:z6Mkabc/actor/outbox?page=2");
|
|
381
381
|
deepStrictEqual(pageJson.prev, "ap+ef61://did:key:z6Mkabc/actor/outbox?page=1");
|
|
382
382
|
});
|
|
383
|
+
test("FEP-ef61: actor gateways round-trip as an ordered URI list", async () => {
|
|
384
|
+
const actorClasses = [
|
|
385
|
+
Application,
|
|
386
|
+
Group,
|
|
387
|
+
Organization,
|
|
388
|
+
Person,
|
|
389
|
+
Service
|
|
390
|
+
];
|
|
391
|
+
const gateways = [new URL("https://server1.example/"), new URL("https://server2.example/")];
|
|
392
|
+
for (const ActorClass of actorClasses) {
|
|
393
|
+
const actor = await ActorClass.fromJsonLd({
|
|
394
|
+
"@context": ["https://www.w3.org/ns/activitystreams", "https://w3id.org/fep/ef61"],
|
|
395
|
+
type: ActorClass.name,
|
|
396
|
+
id: "ap+ef61://did:key:z6Mkabc/actor",
|
|
397
|
+
gateways: gateways.map((gateway) => gateway.href)
|
|
398
|
+
});
|
|
399
|
+
deepStrictEqual(actor.gateways, gateways);
|
|
400
|
+
const jsonLd = await actor.toJsonLd();
|
|
401
|
+
deepStrictEqual(jsonLd.type, ActorClass.name);
|
|
402
|
+
deepStrictEqual(jsonLd.gateways, gateways.map((gateway) => gateway.href));
|
|
403
|
+
deepStrictEqual((await ActorClass.fromJsonLd(jsonLd)).gateways, gateways);
|
|
404
|
+
}
|
|
405
|
+
});
|
|
406
|
+
test("FEP-ef61: actor gateways preserve single, empty, and invalid cases", async () => {
|
|
407
|
+
deepStrictEqual((await new Person({
|
|
408
|
+
id: new URL("ap+ef61://did%3Akey%3Az6Mkabc/actor"),
|
|
409
|
+
gateways: [new URL("https://server.example/")]
|
|
410
|
+
}).toJsonLd()).gateways, ["https://server.example/"]);
|
|
411
|
+
ok(!("gateways" in await new Person({
|
|
412
|
+
id: new URL("ap+ef61://did%3Akey%3Az6Mkabc/actor"),
|
|
413
|
+
gateways: []
|
|
414
|
+
}).toJsonLd()));
|
|
415
|
+
await rejects(() => Person.fromJsonLd({
|
|
416
|
+
"@context": ["https://www.w3.org/ns/activitystreams", "https://w3id.org/fep/ef61"],
|
|
417
|
+
type: "Person",
|
|
418
|
+
gateways: ["not a uri"]
|
|
419
|
+
}), TypeError);
|
|
420
|
+
});
|
|
421
|
+
test("FEP-ef61: actor gateways accept @id typed JSON-LD references", async () => {
|
|
422
|
+
deepStrictEqual((await Person.fromJsonLd({
|
|
423
|
+
"@context": ["https://www.w3.org/ns/activitystreams", { gateways: {
|
|
424
|
+
"@id": "https://w3id.org/fep/ef61/gateways",
|
|
425
|
+
"@type": "@id",
|
|
426
|
+
"@container": "@list"
|
|
427
|
+
} }],
|
|
428
|
+
type: "Person",
|
|
429
|
+
id: "ap+ef61://did:key:z6Mkabc/actor",
|
|
430
|
+
gateways: ["https://gateway.example/"]
|
|
431
|
+
})).gateways, [new URL("https://gateway.example/")]);
|
|
432
|
+
});
|
|
433
|
+
test("FEP-ef61: actor gateways must be HTTP(S) base URIs", async () => {
|
|
434
|
+
const validGateways = [new URL("https://server.example/"), new URL("http://server.example/")];
|
|
435
|
+
deepStrictEqual(new Person({
|
|
436
|
+
id: new URL("ap+ef61://did%3Akey%3Az6Mkabc/actor"),
|
|
437
|
+
gateways: validGateways
|
|
438
|
+
}).gateways, validGateways);
|
|
439
|
+
for (const gateway of [
|
|
440
|
+
"ftp://server.example/",
|
|
441
|
+
"https://user:pass@server.example/",
|
|
442
|
+
"https://user@server.example/",
|
|
443
|
+
"https://server.example/path",
|
|
444
|
+
"https://server.example/?x=1",
|
|
445
|
+
"https://server.example/#fragment"
|
|
446
|
+
]) {
|
|
447
|
+
throws(() => new Person({
|
|
448
|
+
id: new URL("ap+ef61://did%3Akey%3Az6Mkabc/actor"),
|
|
449
|
+
gateways: [new URL(gateway)]
|
|
450
|
+
}), TypeError);
|
|
451
|
+
await rejects(() => Person.fromJsonLd({
|
|
452
|
+
"@context": ["https://www.w3.org/ns/activitystreams", "https://w3id.org/fep/ef61"],
|
|
453
|
+
type: "Person",
|
|
454
|
+
gateways: [gateway]
|
|
455
|
+
}), TypeError);
|
|
456
|
+
}
|
|
457
|
+
});
|
|
458
|
+
test("FEP-ef61: digestMultibase round-trips on links and media objects", async () => {
|
|
459
|
+
const digestMultibase = "zQmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n";
|
|
460
|
+
const link = await Link.fromJsonLd({
|
|
461
|
+
"@context": ["https://www.w3.org/ns/activitystreams", "https://w3id.org/fep/ef61"],
|
|
462
|
+
type: "Link",
|
|
463
|
+
href: "hl:zQmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n",
|
|
464
|
+
digestMultibase
|
|
465
|
+
});
|
|
466
|
+
deepStrictEqual(link.digestMultibase, digestMultibase);
|
|
467
|
+
deepStrictEqual((await link.toJsonLd()).digestMultibase, digestMultibase);
|
|
468
|
+
for (const cls of [Document, Image]) {
|
|
469
|
+
const media = await cls.fromJsonLd({
|
|
470
|
+
"@context": ["https://www.w3.org/ns/activitystreams", "https://w3id.org/fep/ef61"],
|
|
471
|
+
type: cls.name,
|
|
472
|
+
url: "hl:zQmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n",
|
|
473
|
+
mediaType: "image/png",
|
|
474
|
+
digestMultibase
|
|
475
|
+
});
|
|
476
|
+
deepStrictEqual(media.digestMultibase, digestMultibase);
|
|
477
|
+
const jsonLd = await media.toJsonLd();
|
|
478
|
+
deepStrictEqual(jsonLd.type, cls.name);
|
|
479
|
+
deepStrictEqual(jsonLd.digestMultibase, digestMultibase);
|
|
480
|
+
}
|
|
481
|
+
});
|
|
482
|
+
test("FEP-ef61: digestMultibase avoids Data Integrity context conflicts", async () => {
|
|
483
|
+
const digestMultibase = "zQmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n";
|
|
484
|
+
const image = new Image({
|
|
485
|
+
url: new URL("hl:zQmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n"),
|
|
486
|
+
mediaType: "image/png",
|
|
487
|
+
digestMultibase
|
|
488
|
+
});
|
|
489
|
+
const expanded = await image.toJsonLd({ format: "expand" });
|
|
490
|
+
deepStrictEqual(expanded[0]["https://www.w3.org/ns/credentials/v2#digestMultibase"], [{ "@value": digestMultibase }]);
|
|
491
|
+
ok(!("https://w3id.org/security#digestMultibase" in expanded[0]));
|
|
492
|
+
const compact = await image.toJsonLd();
|
|
493
|
+
deepStrictEqual(compact.digestMultibase, digestMultibase);
|
|
494
|
+
ok(!compact["@context"].includes("https://w3id.org/fep/ef61"));
|
|
495
|
+
ok(compact["@context"].some((context) => context != null && typeof context === "object" && context.digestMultibase === "https://www.w3.org/ns/credentials/v2#digestMultibase"));
|
|
496
|
+
});
|
|
497
|
+
test("FEP-ef61: digestMultibase parses after Data Integrity v1 contexts", async () => {
|
|
498
|
+
const digestMultibase = "zQmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n";
|
|
499
|
+
deepStrictEqual((await Image.fromJsonLd({
|
|
500
|
+
"@context": [
|
|
501
|
+
"https://www.w3.org/ns/activitystreams",
|
|
502
|
+
"https://w3id.org/security/data-integrity/v1",
|
|
503
|
+
"https://w3id.org/fep/ef61"
|
|
504
|
+
],
|
|
505
|
+
type: "Image",
|
|
506
|
+
url: "hl:zQmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n",
|
|
507
|
+
mediaType: "image/png",
|
|
508
|
+
digestMultibase
|
|
509
|
+
})).digestMultibase, digestMultibase);
|
|
510
|
+
});
|
|
511
|
+
test("FEP-ef61: Link image normalization preserves digestMultibase", async () => {
|
|
512
|
+
const digestMultibase = "zQmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n";
|
|
513
|
+
const obj = await Object$1.fromJsonLd({
|
|
514
|
+
"@context": [
|
|
515
|
+
"https://www.w3.org/ns/activitystreams",
|
|
516
|
+
"https://w3id.org/security/data-integrity/v1",
|
|
517
|
+
"https://w3id.org/fep/ef61"
|
|
518
|
+
],
|
|
519
|
+
type: "Note",
|
|
520
|
+
image: {
|
|
521
|
+
type: "Link",
|
|
522
|
+
href: "hl:zQmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n",
|
|
523
|
+
mediaType: "image/png",
|
|
524
|
+
digestMultibase
|
|
525
|
+
}
|
|
526
|
+
});
|
|
527
|
+
const images = [];
|
|
528
|
+
for await (const img of obj.getImages()) images.push(img);
|
|
529
|
+
deepStrictEqual(images[0]?.digestMultibase, digestMultibase);
|
|
530
|
+
});
|
|
383
531
|
test("fromJsonLd() caches text that mentions portable ActivityPub IRIs", async () => {
|
|
384
532
|
const noteJson = {
|
|
385
533
|
"@context": ["https://www.w3.org/ns/activitystreams", { extra: "https://example.com/ns#extra" }],
|
|
@@ -1156,6 +1304,7 @@ test("Person.toJsonLd()", async () => {
|
|
|
1156
1304
|
deepStrictEqual(await new Person({ aliases: [new URL("https://example.com/alias")] }).toJsonLd(), {
|
|
1157
1305
|
"@context": [
|
|
1158
1306
|
"https://www.w3.org/ns/activitystreams",
|
|
1307
|
+
"https://w3id.org/fep/ef61",
|
|
1159
1308
|
"https://w3id.org/security/v1",
|
|
1160
1309
|
"https://w3id.org/security/data-integrity/v1",
|
|
1161
1310
|
"https://www.w3.org/ns/did/v1",
|
|
@@ -1657,6 +1806,7 @@ test("InteractionPolicy.canFeature", async () => {
|
|
|
1657
1806
|
const expected = {
|
|
1658
1807
|
"@context": [
|
|
1659
1808
|
"https://www.w3.org/ns/activitystreams",
|
|
1809
|
+
"https://w3id.org/fep/ef61",
|
|
1660
1810
|
"https://w3id.org/security/v1",
|
|
1661
1811
|
"https://w3id.org/security/data-integrity/v1",
|
|
1662
1812
|
"https://www.w3.org/ns/did/v1",
|
|
@@ -3234,6 +3384,7 @@ const sampleValues = {
|
|
|
3234
3384
|
]),
|
|
3235
3385
|
"fedify:langTag": new Intl.Locale("en-Latn-US"),
|
|
3236
3386
|
"fedify:url": new URL("https://fedify.dev/"),
|
|
3387
|
+
"fedify:gatewayUrl": new URL("https://gateway.example/"),
|
|
3237
3388
|
"fedify:publicKey": rsaPublicKey.publicKey,
|
|
3238
3389
|
"fedify:multibaseKey": ed25519PublicKey.publicKey,
|
|
3239
3390
|
"fedify:proofPurpose": "assertionMethod",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fedify/vocab",
|
|
3
|
-
"version": "2.4.0-dev.
|
|
3
|
+
"version": "2.4.0-dev.1655+b8f3c3d5",
|
|
4
4
|
"homepage": "https://fedify.dev/",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
"jsonld": "^9.0.0",
|
|
44
44
|
"pkijs": "^3.3.3",
|
|
45
45
|
"temporal-polyfill": "^1.0.1",
|
|
46
|
-
"@fedify/vocab-tools": "2.4.0-dev.
|
|
47
|
-
"@fedify/webfinger": "2.4.0-dev.
|
|
48
|
-
"@fedify/vocab-runtime": "2.4.0-dev.
|
|
46
|
+
"@fedify/vocab-tools": "2.4.0-dev.1655+b8f3c3d5",
|
|
47
|
+
"@fedify/webfinger": "2.4.0-dev.1655+b8f3c3d5",
|
|
48
|
+
"@fedify/vocab-runtime": "2.4.0-dev.1655+b8f3c3d5"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@types/node": "^22.17.0",
|
|
@@ -3352,6 +3352,7 @@ snapshot[`Deno.inspect(Application) [auto] 1`] = `
|
|
|
3352
3352
|
preferredUsernames: [ "hello", <en> "hello" ],
|
|
3353
3353
|
publicKey: CryptographicKey {},
|
|
3354
3354
|
assertionMethod: Multikey {},
|
|
3355
|
+
gateway: URL "https://gateway.example/",
|
|
3355
3356
|
manuallyApprovesFollowers: true,
|
|
3356
3357
|
inbox: OrderedCollection {},
|
|
3357
3358
|
outbox: OrderedCollection {},
|
|
@@ -3418,6 +3419,7 @@ snapshot[`Deno.inspect(Application) [auto] 2`] = `
|
|
|
3418
3419
|
preferredUsernames: [ "hello", <en> "hello" ],
|
|
3419
3420
|
publicKey: URL "https://example.com/",
|
|
3420
3421
|
assertionMethod: URL "https://example.com/",
|
|
3422
|
+
gateway: URL "https://gateway.example/",
|
|
3421
3423
|
manuallyApprovesFollowers: true,
|
|
3422
3424
|
inbox: URL "https://example.com/",
|
|
3423
3425
|
outbox: URL "https://example.com/",
|
|
@@ -3484,6 +3486,7 @@ snapshot[`Deno.inspect(Application) [auto] 3`] = `
|
|
|
3484
3486
|
preferredUsernames: [ "hello", "hello" ],
|
|
3485
3487
|
publicKeys: [ CryptographicKey {}, CryptographicKey {} ],
|
|
3486
3488
|
assertionMethods: [ Multikey {}, Multikey {} ],
|
|
3489
|
+
gateways: [ URL "https://gateway.example/", URL "https://gateway.example/" ],
|
|
3487
3490
|
manuallyApprovesFollowers: true,
|
|
3488
3491
|
inbox: OrderedCollection {},
|
|
3489
3492
|
outbox: OrderedCollection {},
|
|
@@ -3833,7 +3836,8 @@ snapshot[`Deno.inspect(Audio) [auto] 1`] = `
|
|
|
3833
3836
|
replyAuthorization: ReplyAuthorization {},
|
|
3834
3837
|
announceAuthorization: AnnounceAuthorization {},
|
|
3835
3838
|
width: 123,
|
|
3836
|
-
height: 123
|
|
3839
|
+
height: 123,
|
|
3840
|
+
digestMultibase: "hello"
|
|
3837
3841
|
}'
|
|
3838
3842
|
`;
|
|
3839
3843
|
|
|
@@ -3878,7 +3882,8 @@ snapshot[`Deno.inspect(Audio) [auto] 2`] = `
|
|
|
3878
3882
|
replyAuthorization: URL "https://example.com/",
|
|
3879
3883
|
announceAuthorization: URL "https://example.com/",
|
|
3880
3884
|
width: 123,
|
|
3881
|
-
height: 123
|
|
3885
|
+
height: 123,
|
|
3886
|
+
digestMultibase: "hello"
|
|
3882
3887
|
}'
|
|
3883
3888
|
`;
|
|
3884
3889
|
|
|
@@ -3923,7 +3928,8 @@ snapshot[`Deno.inspect(Audio) [auto] 3`] = `
|
|
|
3923
3928
|
replyAuthorization: ReplyAuthorization {},
|
|
3924
3929
|
announceAuthorization: AnnounceAuthorization {},
|
|
3925
3930
|
width: 123,
|
|
3926
|
-
height: 123
|
|
3931
|
+
height: 123,
|
|
3932
|
+
digestMultibase: "hello"
|
|
3927
3933
|
}'
|
|
3928
3934
|
`;
|
|
3929
3935
|
|
|
@@ -4901,7 +4907,8 @@ snapshot[`Deno.inspect(Document) [auto] 1`] = `
|
|
|
4901
4907
|
replyAuthorization: ReplyAuthorization {},
|
|
4902
4908
|
announceAuthorization: AnnounceAuthorization {},
|
|
4903
4909
|
width: 123,
|
|
4904
|
-
height: 123
|
|
4910
|
+
height: 123,
|
|
4911
|
+
digestMultibase: "hello"
|
|
4905
4912
|
}'
|
|
4906
4913
|
`;
|
|
4907
4914
|
|
|
@@ -4946,7 +4953,8 @@ snapshot[`Deno.inspect(Document) [auto] 2`] = `
|
|
|
4946
4953
|
replyAuthorization: URL "https://example.com/",
|
|
4947
4954
|
announceAuthorization: URL "https://example.com/",
|
|
4948
4955
|
width: 123,
|
|
4949
|
-
height: 123
|
|
4956
|
+
height: 123,
|
|
4957
|
+
digestMultibase: "hello"
|
|
4950
4958
|
}'
|
|
4951
4959
|
`;
|
|
4952
4960
|
|
|
@@ -4991,7 +4999,8 @@ snapshot[`Deno.inspect(Document) [auto] 3`] = `
|
|
|
4991
4999
|
replyAuthorization: ReplyAuthorization {},
|
|
4992
5000
|
announceAuthorization: AnnounceAuthorization {},
|
|
4993
5001
|
width: 123,
|
|
4994
|
-
height: 123
|
|
5002
|
+
height: 123,
|
|
5003
|
+
digestMultibase: "hello"
|
|
4995
5004
|
}'
|
|
4996
5005
|
`;
|
|
4997
5006
|
|
|
@@ -5500,6 +5509,7 @@ snapshot[`Deno.inspect(Group) [auto] 1`] = `
|
|
|
5500
5509
|
preferredUsernames: [ "hello", <en> "hello" ],
|
|
5501
5510
|
publicKey: CryptographicKey {},
|
|
5502
5511
|
assertionMethod: Multikey {},
|
|
5512
|
+
gateway: URL "https://gateway.example/",
|
|
5503
5513
|
manuallyApprovesFollowers: true,
|
|
5504
5514
|
inbox: OrderedCollection {},
|
|
5505
5515
|
outbox: OrderedCollection {},
|
|
@@ -5566,6 +5576,7 @@ snapshot[`Deno.inspect(Group) [auto] 2`] = `
|
|
|
5566
5576
|
preferredUsernames: [ "hello", <en> "hello" ],
|
|
5567
5577
|
publicKey: URL "https://example.com/",
|
|
5568
5578
|
assertionMethod: URL "https://example.com/",
|
|
5579
|
+
gateway: URL "https://gateway.example/",
|
|
5569
5580
|
manuallyApprovesFollowers: true,
|
|
5570
5581
|
inbox: URL "https://example.com/",
|
|
5571
5582
|
outbox: URL "https://example.com/",
|
|
@@ -5632,6 +5643,7 @@ snapshot[`Deno.inspect(Group) [auto] 3`] = `
|
|
|
5632
5643
|
preferredUsernames: [ "hello", "hello" ],
|
|
5633
5644
|
publicKeys: [ CryptographicKey {}, CryptographicKey {} ],
|
|
5634
5645
|
assertionMethods: [ Multikey {}, Multikey {} ],
|
|
5646
|
+
gateways: [ URL "https://gateway.example/", URL "https://gateway.example/" ],
|
|
5635
5647
|
manuallyApprovesFollowers: true,
|
|
5636
5648
|
inbox: OrderedCollection {},
|
|
5637
5649
|
outbox: OrderedCollection {},
|
|
@@ -5661,6 +5673,7 @@ snapshot[`Deno.inspect(Hashtag) [auto] 1`] = `
|
|
|
5661
5673
|
href: URL "https://example.com/",
|
|
5662
5674
|
rel: "hello",
|
|
5663
5675
|
mediaType: "hello",
|
|
5676
|
+
digestMultibase: "hello",
|
|
5664
5677
|
names: [ "hello", <en> "hello" ],
|
|
5665
5678
|
language: Locale [Intl.Locale] {
|
|
5666
5679
|
baseName: "en-Latn-US",
|
|
@@ -5686,6 +5699,7 @@ snapshot[`Deno.inspect(Hashtag) [auto] 2`] = `
|
|
|
5686
5699
|
href: URL "https://example.com/",
|
|
5687
5700
|
rel: "hello",
|
|
5688
5701
|
mediaType: "hello",
|
|
5702
|
+
digestMultibase: "hello",
|
|
5689
5703
|
names: [ "hello", <en> "hello" ],
|
|
5690
5704
|
language: Locale [Intl.Locale] {
|
|
5691
5705
|
baseName: "en-Latn-US",
|
|
@@ -5711,6 +5725,7 @@ snapshot[`Deno.inspect(Hashtag) [auto] 3`] = `
|
|
|
5711
5725
|
href: URL "https://example.com/",
|
|
5712
5726
|
rels: [ "hello", "hello" ],
|
|
5713
5727
|
mediaType: "hello",
|
|
5728
|
+
digestMultibase: "hello",
|
|
5714
5729
|
names: [ "hello", "hello" ],
|
|
5715
5730
|
language: Locale [Intl.Locale] {
|
|
5716
5731
|
baseName: "en-Latn-US",
|
|
@@ -5918,7 +5933,8 @@ snapshot[`Deno.inspect(Image) [auto] 1`] = `
|
|
|
5918
5933
|
replyAuthorization: ReplyAuthorization {},
|
|
5919
5934
|
announceAuthorization: AnnounceAuthorization {},
|
|
5920
5935
|
width: 123,
|
|
5921
|
-
height: 123
|
|
5936
|
+
height: 123,
|
|
5937
|
+
digestMultibase: "hello"
|
|
5922
5938
|
}'
|
|
5923
5939
|
`;
|
|
5924
5940
|
|
|
@@ -5963,7 +5979,8 @@ snapshot[`Deno.inspect(Image) [auto] 2`] = `
|
|
|
5963
5979
|
replyAuthorization: URL "https://example.com/",
|
|
5964
5980
|
announceAuthorization: URL "https://example.com/",
|
|
5965
5981
|
width: 123,
|
|
5966
|
-
height: 123
|
|
5982
|
+
height: 123,
|
|
5983
|
+
digestMultibase: "hello"
|
|
5967
5984
|
}'
|
|
5968
5985
|
`;
|
|
5969
5986
|
|
|
@@ -6008,7 +6025,8 @@ snapshot[`Deno.inspect(Image) [auto] 3`] = `
|
|
|
6008
6025
|
replyAuthorization: ReplyAuthorization {},
|
|
6009
6026
|
announceAuthorization: AnnounceAuthorization {},
|
|
6010
6027
|
width: 123,
|
|
6011
|
-
height: 123
|
|
6028
|
+
height: 123,
|
|
6029
|
+
digestMultibase: "hello"
|
|
6012
6030
|
}'
|
|
6013
6031
|
`;
|
|
6014
6032
|
|
|
@@ -6753,6 +6771,7 @@ snapshot[`Deno.inspect(Link) [auto] 1`] = `
|
|
|
6753
6771
|
href: URL "https://example.com/",
|
|
6754
6772
|
rel: "hello",
|
|
6755
6773
|
mediaType: "hello",
|
|
6774
|
+
digestMultibase: "hello",
|
|
6756
6775
|
names: [ "hello", <en> "hello" ],
|
|
6757
6776
|
language: Locale [Intl.Locale] {
|
|
6758
6777
|
baseName: "en-Latn-US",
|
|
@@ -6778,6 +6797,7 @@ snapshot[`Deno.inspect(Link) [auto] 2`] = `
|
|
|
6778
6797
|
href: URL "https://example.com/",
|
|
6779
6798
|
rel: "hello",
|
|
6780
6799
|
mediaType: "hello",
|
|
6800
|
+
digestMultibase: "hello",
|
|
6781
6801
|
names: [ "hello", <en> "hello" ],
|
|
6782
6802
|
language: Locale [Intl.Locale] {
|
|
6783
6803
|
baseName: "en-Latn-US",
|
|
@@ -6803,6 +6823,7 @@ snapshot[`Deno.inspect(Link) [auto] 3`] = `
|
|
|
6803
6823
|
href: URL "https://example.com/",
|
|
6804
6824
|
rels: [ "hello", "hello" ],
|
|
6805
6825
|
mediaType: "hello",
|
|
6826
|
+
digestMultibase: "hello",
|
|
6806
6827
|
names: [ "hello", "hello" ],
|
|
6807
6828
|
language: Locale [Intl.Locale] {
|
|
6808
6829
|
baseName: "en-Latn-US",
|
|
@@ -6975,6 +6996,7 @@ snapshot[`Deno.inspect(Mention) [auto] 1`] = `
|
|
|
6975
6996
|
href: URL "https://example.com/",
|
|
6976
6997
|
rel: "hello",
|
|
6977
6998
|
mediaType: "hello",
|
|
6999
|
+
digestMultibase: "hello",
|
|
6978
7000
|
names: [ "hello", <en> "hello" ],
|
|
6979
7001
|
language: Locale [Intl.Locale] {
|
|
6980
7002
|
baseName: "en-Latn-US",
|
|
@@ -7000,6 +7022,7 @@ snapshot[`Deno.inspect(Mention) [auto] 2`] = `
|
|
|
7000
7022
|
href: URL "https://example.com/",
|
|
7001
7023
|
rel: "hello",
|
|
7002
7024
|
mediaType: "hello",
|
|
7025
|
+
digestMultibase: "hello",
|
|
7003
7026
|
names: [ "hello", <en> "hello" ],
|
|
7004
7027
|
language: Locale [Intl.Locale] {
|
|
7005
7028
|
baseName: "en-Latn-US",
|
|
@@ -7025,6 +7048,7 @@ snapshot[`Deno.inspect(Mention) [auto] 3`] = `
|
|
|
7025
7048
|
href: URL "https://example.com/",
|
|
7026
7049
|
rels: [ "hello", "hello" ],
|
|
7027
7050
|
mediaType: "hello",
|
|
7051
|
+
digestMultibase: "hello",
|
|
7028
7052
|
names: [ "hello", "hello" ],
|
|
7029
7053
|
language: Locale [Intl.Locale] {
|
|
7030
7054
|
baseName: "en-Latn-US",
|
|
@@ -7996,6 +8020,7 @@ snapshot[`Deno.inspect(Organization) [auto] 1`] = `
|
|
|
7996
8020
|
preferredUsernames: [ "hello", <en> "hello" ],
|
|
7997
8021
|
publicKey: CryptographicKey {},
|
|
7998
8022
|
assertionMethod: Multikey {},
|
|
8023
|
+
gateway: URL "https://gateway.example/",
|
|
7999
8024
|
manuallyApprovesFollowers: true,
|
|
8000
8025
|
inbox: OrderedCollection {},
|
|
8001
8026
|
outbox: OrderedCollection {},
|
|
@@ -8062,6 +8087,7 @@ snapshot[`Deno.inspect(Organization) [auto] 2`] = `
|
|
|
8062
8087
|
preferredUsernames: [ "hello", <en> "hello" ],
|
|
8063
8088
|
publicKey: URL "https://example.com/",
|
|
8064
8089
|
assertionMethod: URL "https://example.com/",
|
|
8090
|
+
gateway: URL "https://gateway.example/",
|
|
8065
8091
|
manuallyApprovesFollowers: true,
|
|
8066
8092
|
inbox: URL "https://example.com/",
|
|
8067
8093
|
outbox: URL "https://example.com/",
|
|
@@ -8128,6 +8154,7 @@ snapshot[`Deno.inspect(Organization) [auto] 3`] = `
|
|
|
8128
8154
|
preferredUsernames: [ "hello", "hello" ],
|
|
8129
8155
|
publicKeys: [ CryptographicKey {}, CryptographicKey {} ],
|
|
8130
8156
|
assertionMethods: [ Multikey {}, Multikey {} ],
|
|
8157
|
+
gateways: [ URL "https://gateway.example/", URL "https://gateway.example/" ],
|
|
8131
8158
|
manuallyApprovesFollowers: true,
|
|
8132
8159
|
inbox: OrderedCollection {},
|
|
8133
8160
|
outbox: OrderedCollection {},
|
|
@@ -8192,7 +8219,8 @@ snapshot[`Deno.inspect(Page) [auto] 1`] = `
|
|
|
8192
8219
|
replyAuthorization: ReplyAuthorization {},
|
|
8193
8220
|
announceAuthorization: AnnounceAuthorization {},
|
|
8194
8221
|
width: 123,
|
|
8195
|
-
height: 123
|
|
8222
|
+
height: 123,
|
|
8223
|
+
digestMultibase: "hello"
|
|
8196
8224
|
}'
|
|
8197
8225
|
`;
|
|
8198
8226
|
|
|
@@ -8237,7 +8265,8 @@ snapshot[`Deno.inspect(Page) [auto] 2`] = `
|
|
|
8237
8265
|
replyAuthorization: URL "https://example.com/",
|
|
8238
8266
|
announceAuthorization: URL "https://example.com/",
|
|
8239
8267
|
width: 123,
|
|
8240
|
-
height: 123
|
|
8268
|
+
height: 123,
|
|
8269
|
+
digestMultibase: "hello"
|
|
8241
8270
|
}'
|
|
8242
8271
|
`;
|
|
8243
8272
|
|
|
@@ -8282,7 +8311,8 @@ snapshot[`Deno.inspect(Page) [auto] 3`] = `
|
|
|
8282
8311
|
replyAuthorization: ReplyAuthorization {},
|
|
8283
8312
|
announceAuthorization: AnnounceAuthorization {},
|
|
8284
8313
|
width: 123,
|
|
8285
|
-
height: 123
|
|
8314
|
+
height: 123,
|
|
8315
|
+
digestMultibase: "hello"
|
|
8286
8316
|
}'
|
|
8287
8317
|
`;
|
|
8288
8318
|
|
|
@@ -8329,6 +8359,7 @@ snapshot[`Deno.inspect(Person) [auto] 1`] = `
|
|
|
8329
8359
|
preferredUsernames: [ "hello", <en> "hello" ],
|
|
8330
8360
|
publicKey: CryptographicKey {},
|
|
8331
8361
|
assertionMethod: Multikey {},
|
|
8362
|
+
gateway: URL "https://gateway.example/",
|
|
8332
8363
|
manuallyApprovesFollowers: true,
|
|
8333
8364
|
inbox: OrderedCollection {},
|
|
8334
8365
|
outbox: OrderedCollection {},
|
|
@@ -8395,6 +8426,7 @@ snapshot[`Deno.inspect(Person) [auto] 2`] = `
|
|
|
8395
8426
|
preferredUsernames: [ "hello", <en> "hello" ],
|
|
8396
8427
|
publicKey: URL "https://example.com/",
|
|
8397
8428
|
assertionMethod: URL "https://example.com/",
|
|
8429
|
+
gateway: URL "https://gateway.example/",
|
|
8398
8430
|
manuallyApprovesFollowers: true,
|
|
8399
8431
|
inbox: URL "https://example.com/",
|
|
8400
8432
|
outbox: URL "https://example.com/",
|
|
@@ -8461,6 +8493,7 @@ snapshot[`Deno.inspect(Person) [auto] 3`] = `
|
|
|
8461
8493
|
preferredUsernames: [ "hello", "hello" ],
|
|
8462
8494
|
publicKeys: [ CryptographicKey {}, CryptographicKey {} ],
|
|
8463
8495
|
assertionMethods: [ Multikey {}, Multikey {} ],
|
|
8496
|
+
gateways: [ URL "https://gateway.example/", URL "https://gateway.example/" ],
|
|
8464
8497
|
manuallyApprovesFollowers: true,
|
|
8465
8498
|
inbox: OrderedCollection {},
|
|
8466
8499
|
outbox: OrderedCollection {},
|
|
@@ -9553,6 +9586,7 @@ snapshot[`Deno.inspect(Service) [auto] 1`] = `
|
|
|
9553
9586
|
preferredUsernames: [ "hello", <en> "hello" ],
|
|
9554
9587
|
publicKey: CryptographicKey {},
|
|
9555
9588
|
assertionMethod: Multikey {},
|
|
9589
|
+
gateway: URL "https://gateway.example/",
|
|
9556
9590
|
manuallyApprovesFollowers: true,
|
|
9557
9591
|
inbox: OrderedCollection {},
|
|
9558
9592
|
outbox: OrderedCollection {},
|
|
@@ -9619,6 +9653,7 @@ snapshot[`Deno.inspect(Service) [auto] 2`] = `
|
|
|
9619
9653
|
preferredUsernames: [ "hello", <en> "hello" ],
|
|
9620
9654
|
publicKey: URL "https://example.com/",
|
|
9621
9655
|
assertionMethod: URL "https://example.com/",
|
|
9656
|
+
gateway: URL "https://gateway.example/",
|
|
9622
9657
|
manuallyApprovesFollowers: true,
|
|
9623
9658
|
inbox: URL "https://example.com/",
|
|
9624
9659
|
outbox: URL "https://example.com/",
|
|
@@ -9685,6 +9720,7 @@ snapshot[`Deno.inspect(Service) [auto] 3`] = `
|
|
|
9685
9720
|
preferredUsernames: [ "hello", "hello" ],
|
|
9686
9721
|
publicKeys: [ CryptographicKey {}, CryptographicKey {} ],
|
|
9687
9722
|
assertionMethods: [ Multikey {}, Multikey {} ],
|
|
9723
|
+
gateways: [ URL "https://gateway.example/", URL "https://gateway.example/" ],
|
|
9688
9724
|
manuallyApprovesFollowers: true,
|
|
9689
9725
|
inbox: OrderedCollection {},
|
|
9690
9726
|
outbox: OrderedCollection {},
|
|
@@ -10643,7 +10679,8 @@ snapshot[`Deno.inspect(Video) [auto] 1`] = `
|
|
|
10643
10679
|
replyAuthorization: ReplyAuthorization {},
|
|
10644
10680
|
announceAuthorization: AnnounceAuthorization {},
|
|
10645
10681
|
width: 123,
|
|
10646
|
-
height: 123
|
|
10682
|
+
height: 123,
|
|
10683
|
+
digestMultibase: "hello"
|
|
10647
10684
|
}'
|
|
10648
10685
|
`;
|
|
10649
10686
|
|
|
@@ -10688,7 +10725,8 @@ snapshot[`Deno.inspect(Video) [auto] 2`] = `
|
|
|
10688
10725
|
replyAuthorization: URL "https://example.com/",
|
|
10689
10726
|
announceAuthorization: URL "https://example.com/",
|
|
10690
10727
|
width: 123,
|
|
10691
|
-
height: 123
|
|
10728
|
+
height: 123,
|
|
10729
|
+
digestMultibase: "hello"
|
|
10692
10730
|
}'
|
|
10693
10731
|
`;
|
|
10694
10732
|
|
|
@@ -10733,7 +10771,8 @@ snapshot[`Deno.inspect(Video) [auto] 3`] = `
|
|
|
10733
10771
|
replyAuthorization: ReplyAuthorization {},
|
|
10734
10772
|
announceAuthorization: AnnounceAuthorization {},
|
|
10735
10773
|
width: 123,
|
|
10736
|
-
height: 123
|
|
10774
|
+
height: 123,
|
|
10775
|
+
digestMultibase: "hello"
|
|
10737
10776
|
}'
|
|
10738
10777
|
`;
|
|
10739
10778
|
|
package/src/application.yaml
CHANGED
|
@@ -7,6 +7,7 @@ entity: true
|
|
|
7
7
|
description: Describes a software application.
|
|
8
8
|
defaultContext:
|
|
9
9
|
- "https://www.w3.org/ns/activitystreams"
|
|
10
|
+
- "https://w3id.org/fep/ef61"
|
|
10
11
|
- "https://w3id.org/security/v1"
|
|
11
12
|
- "https://w3id.org/security/data-integrity/v1"
|
|
12
13
|
- "https://www.w3.org/ns/did/v1"
|
|
@@ -78,6 +79,20 @@ properties:
|
|
|
78
79
|
range:
|
|
79
80
|
- "https://w3id.org/security#Multikey"
|
|
80
81
|
|
|
82
|
+
- pluralName: gateways
|
|
83
|
+
singularName: gateway
|
|
84
|
+
singularAccessor: true
|
|
85
|
+
compactName: gateways
|
|
86
|
+
uri: "https://w3id.org/fep/ef61/gateways"
|
|
87
|
+
container: list
|
|
88
|
+
description: |
|
|
89
|
+
Gateways where the latest version of this portable actor object can be
|
|
90
|
+
retrieved.
|
|
91
|
+
|
|
92
|
+
See [FEP-ef61](https://w3id.org/fep/ef61) for details.
|
|
93
|
+
range:
|
|
94
|
+
- "fedify:gatewayUrl"
|
|
95
|
+
|
|
81
96
|
- singularName: manuallyApprovesFollowers
|
|
82
97
|
functional: true
|
|
83
98
|
compactName: manuallyApprovesFollowers
|
package/src/audio.yaml
CHANGED
|
@@ -7,6 +7,7 @@ entity: true
|
|
|
7
7
|
description: Represents an audio document of any kind.
|
|
8
8
|
defaultContext:
|
|
9
9
|
- "https://www.w3.org/ns/activitystreams"
|
|
10
|
-
- "https://w3id.org/security/data-integrity/
|
|
10
|
+
- "https://w3id.org/security/data-integrity/v2"
|
|
11
|
+
- digestMultibase: "https://www.w3.org/ns/credentials/v2#digestMultibase"
|
|
11
12
|
- "https://gotosocial.org/ns"
|
|
12
13
|
properties: []
|
package/src/document.yaml
CHANGED
|
@@ -7,7 +7,8 @@ entity: true
|
|
|
7
7
|
description: Represents a document of any kind.
|
|
8
8
|
defaultContext:
|
|
9
9
|
- "https://www.w3.org/ns/activitystreams"
|
|
10
|
-
- "https://w3id.org/security/data-integrity/
|
|
10
|
+
- "https://w3id.org/security/data-integrity/v2"
|
|
11
|
+
- digestMultibase: "https://www.w3.org/ns/credentials/v2#digestMultibase"
|
|
11
12
|
- "https://gotosocial.org/ns"
|
|
12
13
|
|
|
13
14
|
properties:
|
|
@@ -30,3 +31,15 @@ properties:
|
|
|
30
31
|
device-independent pixels of the linked resource.
|
|
31
32
|
range:
|
|
32
33
|
- "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"
|
|
34
|
+
|
|
35
|
+
- singularName: digestMultibase
|
|
36
|
+
functional: true
|
|
37
|
+
compactName: digestMultibase
|
|
38
|
+
uri: "https://www.w3.org/ns/credentials/v2#digestMultibase"
|
|
39
|
+
description: |
|
|
40
|
+
The multibase-encoded integrity digest of an external resource represented
|
|
41
|
+
by this document.
|
|
42
|
+
|
|
43
|
+
See [FEP-ef61](https://w3id.org/fep/ef61) for details.
|
|
44
|
+
range:
|
|
45
|
+
- "http://www.w3.org/2001/XMLSchema#string"
|
package/src/group.yaml
CHANGED
|
@@ -7,6 +7,7 @@ entity: true
|
|
|
7
7
|
description: Represents a formal or informal collective of Actors.
|
|
8
8
|
defaultContext:
|
|
9
9
|
- "https://www.w3.org/ns/activitystreams"
|
|
10
|
+
- "https://w3id.org/fep/ef61"
|
|
10
11
|
- "https://w3id.org/security/v1"
|
|
11
12
|
- "https://w3id.org/security/data-integrity/v1"
|
|
12
13
|
- "https://www.w3.org/ns/did/v1"
|
|
@@ -78,6 +79,20 @@ properties:
|
|
|
78
79
|
range:
|
|
79
80
|
- "https://w3id.org/security#Multikey"
|
|
80
81
|
|
|
82
|
+
- pluralName: gateways
|
|
83
|
+
singularName: gateway
|
|
84
|
+
singularAccessor: true
|
|
85
|
+
compactName: gateways
|
|
86
|
+
uri: "https://w3id.org/fep/ef61/gateways"
|
|
87
|
+
container: list
|
|
88
|
+
description: |
|
|
89
|
+
Gateways where the latest version of this portable actor object can be
|
|
90
|
+
retrieved.
|
|
91
|
+
|
|
92
|
+
See [FEP-ef61](https://w3id.org/fep/ef61) for details.
|
|
93
|
+
range:
|
|
94
|
+
- "fedify:gatewayUrl"
|
|
95
|
+
|
|
81
96
|
- singularName: manuallyApprovesFollowers
|
|
82
97
|
functional: true
|
|
83
98
|
compactName: manuallyApprovesFollowers
|
package/src/image.yaml
CHANGED
|
@@ -7,6 +7,7 @@ entity: true
|
|
|
7
7
|
description: An image document of any kind.
|
|
8
8
|
defaultContext:
|
|
9
9
|
- "https://www.w3.org/ns/activitystreams"
|
|
10
|
-
- "https://w3id.org/security/data-integrity/
|
|
10
|
+
- "https://w3id.org/security/data-integrity/v2"
|
|
11
|
+
- digestMultibase: "https://www.w3.org/ns/credentials/v2#digestMultibase"
|
|
11
12
|
- "https://gotosocial.org/ns"
|
|
12
13
|
properties: []
|
package/src/link.yaml
CHANGED
|
@@ -12,7 +12,9 @@ description: |
|
|
|
12
12
|
object) to the resource identified by the `href`. Properties of
|
|
13
13
|
the {@link Link} are properties of the reference as opposed to properties of
|
|
14
14
|
the resource.
|
|
15
|
-
defaultContext:
|
|
15
|
+
defaultContext:
|
|
16
|
+
- "https://www.w3.org/ns/activitystreams"
|
|
17
|
+
- "https://w3id.org/fep/ef61"
|
|
16
18
|
|
|
17
19
|
properties:
|
|
18
20
|
- singularName: href
|
|
@@ -48,6 +50,17 @@ properties:
|
|
|
48
50
|
range:
|
|
49
51
|
- "http://www.w3.org/2001/XMLSchema#string"
|
|
50
52
|
|
|
53
|
+
- singularName: digestMultibase
|
|
54
|
+
functional: true
|
|
55
|
+
compactName: digestMultibase
|
|
56
|
+
uri: "https://www.w3.org/ns/credentials/v2#digestMultibase"
|
|
57
|
+
description: |
|
|
58
|
+
The multibase-encoded integrity digest of the linked resource.
|
|
59
|
+
|
|
60
|
+
See [FEP-ef61](https://w3id.org/fep/ef61) for details.
|
|
61
|
+
range:
|
|
62
|
+
- "http://www.w3.org/2001/XMLSchema#string"
|
|
63
|
+
|
|
51
64
|
- pluralName: names
|
|
52
65
|
singularName: name
|
|
53
66
|
singularAccessor: true
|