@fedify/vocab 2.5.0-dev.2562 → 2.5.0-dev.2597

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.
Files changed (38) hide show
  1. package/deno.json +1 -1
  2. package/dist/mod.cjs +792 -248
  3. package/dist/mod.d.cts +50 -0
  4. package/dist/mod.d.ts +50 -0
  5. package/dist/mod.js +792 -248
  6. package/dist-tests/{actor-BjR7XMY3.mjs → actor-Bv4E58SY.mjs} +2 -2
  7. package/dist-tests/actor.test.mjs +2 -2
  8. package/dist-tests/application.yaml +16 -0
  9. package/dist-tests/attribution-domains.test.mjs +122 -0
  10. package/dist-tests/deep-clone.test.mjs +1 -1
  11. package/dist-tests/gateway.test.mjs +2 -2
  12. package/dist-tests/group.yaml +16 -0
  13. package/dist-tests/license.test.mjs +2 -2
  14. package/dist-tests/{lookup-DLoLCARL.mjs → lookup-CE08Sr09.mjs} +2 -2
  15. package/dist-tests/lookup.test.mjs +2 -2
  16. package/dist-tests/organization.yaml +16 -0
  17. package/dist-tests/person.yaml +16 -0
  18. package/dist-tests/portable-lookup.test.mjs +3 -3
  19. package/dist-tests/service.yaml +16 -0
  20. package/dist-tests/signed-representation.test.mjs +1 -1
  21. package/dist-tests/sparse-arrays.test.mjs +1 -1
  22. package/dist-tests/{src-l_qXemk3.mjs → src-BfQX2hVK.mjs} +3 -3
  23. package/dist-tests/translation.test.mjs +2 -2
  24. package/dist-tests/type.test.mjs +1 -1
  25. package/dist-tests/update.yaml +3 -0
  26. package/dist-tests/{vocab-fx-0u7cy.mjs → vocab-BcGkZqeH.mjs} +791 -247
  27. package/dist-tests/vocab.test.mjs +12 -3
  28. package/package.json +5 -5
  29. package/src/__snapshots__/vocab.test.ts.snap +15 -0
  30. package/src/application.yaml +16 -0
  31. package/src/attribution-domains.test.ts +177 -0
  32. package/src/group.yaml +16 -0
  33. package/src/organization.yaml +16 -0
  34. package/src/person.yaml +16 -0
  35. package/src/service.yaml +16 -0
  36. package/src/update.yaml +3 -0
  37. package/src/vocab.test.ts +8 -0
  38. package/tsconfig.check.json +14 -0
@@ -1,14 +1,14 @@
1
1
  import "temporal-polyfill";
2
2
  globalThis.addEventListener = () => {};
3
3
  import { t as getTypeId } from "./type-BMdjm4Eg.mjs";
4
- import { F as Organization, I as Person, W as Service, a as Application, x as Group } from "./vocab-fx-0u7cy.mjs";
4
+ import { F as Organization, I as Person, W as Service, a as Application, x as Group } from "./vocab-BcGkZqeH.mjs";
5
5
  import { canonicalizePortableUri, formatIri, fromCompatibleEf61Id, isGatewayUrl } from "@fedify/vocab-runtime";
6
6
  import { lookupWebFinger } from "@fedify/webfinger";
7
7
  import { SpanStatusCode, trace } from "@opentelemetry/api";
8
8
  import { domainToASCII, domainToUnicode } from "node:url";
9
9
  //#region deno.json
10
10
  var name = "@fedify/vocab";
11
- var version = "2.5.0-dev.2562+d712c1d0";
11
+ var version = "2.5.0-dev.2597+7bed9e2b";
12
12
  //#endregion
13
13
  //#region src/actor.ts
14
14
  const ACTOR_DISCOVERY_HISTOGRAM_BUCKETS = [
@@ -2,8 +2,8 @@ import "temporal-polyfill";
2
2
  globalThis.addEventListener = () => {};
3
3
  import { n as __exportAll } from "./rolldown-runtime-BWJg4WE8.mjs";
4
4
  import { t as esm_default } from "./esm-BIqRhjGA.mjs";
5
- import { a as normalizeActorHandle, i as isActor, n as getActorHandle, r as getActorTypeName, t as getActorClassByTypeName } from "./actor-BjR7XMY3.mjs";
6
- import { F as Organization, I as Person, W as Service, a as Application, x as Group } from "./vocab-fx-0u7cy.mjs";
5
+ import { a as normalizeActorHandle, i as isActor, n as getActorHandle, r as getActorTypeName, t as getActorClassByTypeName } from "./actor-Bv4E58SY.mjs";
6
+ import { F as Organization, I as Person, W as Service, a as Application, x as Group } from "./vocab-BcGkZqeH.mjs";
7
7
  import { createTestMeterProvider, test } from "@fedify/fixture";
8
8
  import { deepStrictEqual, ok, rejects, strictEqual, throws } from "node:assert/strict";
9
9
  //#region ../../node_modules/.pnpm/fast-check@3.23.2/node_modules/fast-check/lib/esm/check/precondition/PreconditionFailure.js
@@ -36,6 +36,9 @@ defaultContext:
36
36
  suspended: "toot:suspended"
37
37
  memorial: "toot:memorial"
38
38
  indexable: "toot:indexable"
39
+ attributionDomains:
40
+ "@id": "toot:attributionDomains"
41
+ "@container": "@set"
39
42
  schema: "http://schema.org#"
40
43
  PropertyValue: "schema:PropertyValue"
41
44
  value: "schema:value"
@@ -284,6 +287,19 @@ properties:
284
287
  range:
285
288
  - "http://www.w3.org/2001/XMLSchema#boolean"
286
289
 
290
+ - pluralName: attributionDomains
291
+ singularName: attributionDomain
292
+ compactName: attributionDomains
293
+ uri: "http://joinmastodon.org/ns#attributionDomains"
294
+ description: |
295
+ Domains this actor claims as its own, so that Mastodon can credit the
296
+ actor on link preview cards that point at one of them. Each value is a
297
+ bare host name, without a scheme, port, path, or leading `*.`. Fedify
298
+ treats the values as opaque strings and does not normalize or validate
299
+ them; applications are responsible for producing normalized host names.
300
+ range:
301
+ - "http://www.w3.org/2001/XMLSchema#string"
302
+
287
303
  - singularName: successor
288
304
  functional: true
289
305
  compactName: movedTo
@@ -0,0 +1,122 @@
1
+ import "temporal-polyfill";
2
+ globalThis.addEventListener = () => {};
3
+ import { F as Organization, I as Person, J as Update, W as Service, a as Application, x as Group } from "./vocab-BcGkZqeH.mjs";
4
+ import "./src-BfQX2hVK.mjs";
5
+ import { test } from "@fedify/fixture";
6
+ import { deepStrictEqual, ok } from "node:assert/strict";
7
+ //#region src/attribution-domains.test.ts
8
+ const AS = "https://www.w3.org/ns/activitystreams";
9
+ const MASTODON = "http://joinmastodon.org/ns";
10
+ const aliceId = new URL("https://social.example/users/alice");
11
+ const updateId = new URL("https://social.example/activities/1");
12
+ function record(value) {
13
+ ok(value != null && typeof value === "object" && !Array.isArray(value));
14
+ return value;
15
+ }
16
+ test("attributionDomains round-trips through every actor type", async () => {
17
+ const actorTypes = [
18
+ ["Application", Application],
19
+ ["Group", Group],
20
+ ["Organization", Organization],
21
+ ["Person", Person],
22
+ ["Service", Service]
23
+ ];
24
+ for (const [name, Actor] of actorTypes) {
25
+ const id = new URL(`https://social.example/${name.toLowerCase()}/alice`);
26
+ const json = record(await new Actor({
27
+ id,
28
+ attributionDomains: ["blog.example", "photos.example"]
29
+ }).toJsonLd());
30
+ deepStrictEqual(json.attributionDomains, ["blog.example", "photos.example"]);
31
+ const context = json["@context"];
32
+ deepStrictEqual(record(context.at(-1))["attributionDomains"], {
33
+ "@id": "toot:attributionDomains",
34
+ "@container": "@set"
35
+ });
36
+ const parsed = await Actor.fromJsonLd(json);
37
+ deepStrictEqual(parsed.id, id);
38
+ deepStrictEqual(parsed.attributionDomains, ["blog.example", "photos.example"]);
39
+ }
40
+ });
41
+ test("attributionDomains single value fast path and compact form", async () => {
42
+ const person = new Person({
43
+ id: aliceId,
44
+ attributionDomains: ["blog.example"]
45
+ });
46
+ deepStrictEqual(record(await person.toJsonLd()).attributionDomains, "blog.example");
47
+ deepStrictEqual(record(await person.toJsonLd({ format: "compact" })).attributionDomains, ["blog.example"]);
48
+ });
49
+ test("attributionDomains omitted when missing or empty", async () => {
50
+ for (const person of [new Person({ id: aliceId }), new Person({
51
+ id: aliceId,
52
+ attributionDomains: []
53
+ })]) ok(!("attributionDomains" in record(await person.toJsonLd())));
54
+ deepStrictEqual((await Person.fromJsonLd({
55
+ "@context": AS,
56
+ id: aliceId.href,
57
+ type: "Person"
58
+ })).attributionDomains, []);
59
+ });
60
+ test("attributionDomains ignores non-string values", async () => {
61
+ deepStrictEqual((await Person.fromJsonLd({
62
+ "@context": [AS, MASTODON],
63
+ id: aliceId.href,
64
+ type: "Person",
65
+ attributionDomains: [
66
+ 42,
67
+ "blog.example",
68
+ true,
69
+ { "@value": null }
70
+ ]
71
+ })).attributionDomains, ["blog.example"]);
72
+ });
73
+ test("Update serializes the bare attributionDomains key in its object", async () => {
74
+ const alice = new Person({
75
+ id: aliceId,
76
+ attributionDomains: ["blog.example"]
77
+ });
78
+ const object = record(record(await new Update({
79
+ id: updateId,
80
+ actor: aliceId,
81
+ object: alice
82
+ }).toJsonLd()).object);
83
+ deepStrictEqual(object.attributionDomains, ["blog.example"]);
84
+ ok(!("toot:attributionDomains" in object));
85
+ });
86
+ test("parses Mastodon's published actor shape with a single string", async () => {
87
+ const document = {
88
+ "@context": [
89
+ AS,
90
+ "https://w3id.org/security/v1",
91
+ {
92
+ toot: `${MASTODON}#`,
93
+ attributionDomains: {
94
+ "@id": "toot:attributionDomains",
95
+ "@container": "@set"
96
+ },
97
+ discoverable: "toot:discoverable",
98
+ indexable: "toot:indexable"
99
+ }
100
+ ],
101
+ id: aliceId.href,
102
+ type: "Person",
103
+ preferredUsername: "alice",
104
+ inbox: `${aliceId.href}/inbox`,
105
+ outbox: `${aliceId.href}/outbox`,
106
+ attributionDomains: "blog.example"
107
+ };
108
+ deepStrictEqual((await Person.fromJsonLd(document)).attributionDomains, ["blog.example"]);
109
+ });
110
+ test("parses attributionDomains through the preloaded Mastodon context", async () => {
111
+ const document = {
112
+ "@context": [AS, MASTODON],
113
+ id: aliceId.href,
114
+ type: "Person",
115
+ attributionDomains: ["blog.example"]
116
+ };
117
+ const person = await Person.fromJsonLd(document);
118
+ deepStrictEqual(person.attributionDomains, ["blog.example"]);
119
+ deepStrictEqual(record(await person.toJsonLd({ format: "compact" })).attributionDomains, ["blog.example"]);
120
+ });
121
+ //#endregion
122
+ export {};
@@ -1,6 +1,6 @@
1
1
  import { Temporal } from "temporal-polyfill";
2
2
  globalThis.addEventListener = () => {};
3
- import { A as Note, D as Link, G as Source, H as QuoteRequest, I as Person, U as Reject, f as DataIntegrityProof, h as Endpoints, j as Object$1, t as Accept, u as Create } from "./vocab-fx-0u7cy.mjs";
3
+ import { A as Note, D as Link, G as Source, H as QuoteRequest, I as Person, U as Reject, f as DataIntegrityProof, h as Endpoints, j as Object$1, t as Accept, u as Create } from "./vocab-BcGkZqeH.mjs";
4
4
  import { createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
5
5
  import { deepStrictEqual, notStrictEqual, ok, strictEqual, throws } from "node:assert/strict";
6
6
  import { LanguageString } from "@fedify/vocab-runtime";
@@ -1,8 +1,8 @@
1
1
  import "temporal-polyfill";
2
2
  globalThis.addEventListener = () => {};
3
3
  import { t as esm_default } from "./esm-BIqRhjGA.mjs";
4
- import { A as Note, C as Image, I as Person, N as OrderedCollection, c as CollectionPage, s as Collection, u as Create } from "./vocab-fx-0u7cy.mjs";
5
- import { r as traverseCollection, t as lookupObject } from "./lookup-DLoLCARL.mjs";
4
+ import { A as Note, C as Image, I as Person, N as OrderedCollection, c as CollectionPage, s as Collection, u as Create } from "./vocab-BcGkZqeH.mjs";
5
+ import { r as traverseCollection, t as lookupObject } from "./lookup-CE08Sr09.mjs";
6
6
  import { t as assertInstanceOf } from "./utils-Df2odC27.mjs";
7
7
  import { createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
8
8
  import { deepStrictEqual, ok, rejects } from "node:assert/strict";
@@ -36,6 +36,9 @@ defaultContext:
36
36
  suspended: "toot:suspended"
37
37
  memorial: "toot:memorial"
38
38
  indexable: "toot:indexable"
39
+ attributionDomains:
40
+ "@id": "toot:attributionDomains"
41
+ "@container": "@set"
39
42
  schema: "http://schema.org#"
40
43
  PropertyValue: "schema:PropertyValue"
41
44
  value: "schema:value"
@@ -284,6 +287,19 @@ properties:
284
287
  range:
285
288
  - "http://www.w3.org/2001/XMLSchema#boolean"
286
289
 
290
+ - pluralName: attributionDomains
291
+ singularName: attributionDomain
292
+ compactName: attributionDomains
293
+ uri: "http://joinmastodon.org/ns#attributionDomains"
294
+ description: |
295
+ Domains this actor claims as its own, so that Mastodon can credit the
296
+ actor on link preview cards that point at one of them. Each value is a
297
+ bare host name, without a scheme, port, path, or leading `*.`. Fedify
298
+ treats the values as opaque strings and does not normalize or validate
299
+ them; applications are responsible for producing normalized host names.
300
+ range:
301
+ - "http://www.w3.org/2001/XMLSchema#string"
302
+
287
303
  - singularName: successor
288
304
  functional: true
289
305
  compactName: movedTo
@@ -1,7 +1,7 @@
1
1
  import "temporal-polyfill";
2
2
  globalThis.addEventListener = () => {};
3
- import { A as Note, B as Question, C as Image, D as Link, F as Organization, I as Person, W as Service, Y as Video, a as Application, s as Collection, u as Create, x as Group } from "./vocab-fx-0u7cy.mjs";
4
- import "./src-l_qXemk3.mjs";
3
+ import { A as Note, B as Question, C as Image, D as Link, F as Organization, I as Person, W as Service, Y as Video, a as Application, s as Collection, u as Create, x as Group } from "./vocab-BcGkZqeH.mjs";
4
+ import "./src-BfQX2hVK.mjs";
5
5
  import { test } from "@fedify/fixture";
6
6
  import { deepStrictEqual, ok } from "node:assert/strict";
7
7
  import { getDocumentLoader, preloadedContexts } from "@fedify/vocab-runtime";
@@ -1,8 +1,8 @@
1
1
  import { Temporal } from "temporal-polyfill";
2
2
  globalThis.addEventListener = () => {};
3
- import { i as isActor, o as name, s as version } from "./actor-BjR7XMY3.mjs";
3
+ import { i as isActor, o as name, s as version } from "./actor-Bv4E58SY.mjs";
4
4
  import { t as getTypeId } from "./type-BMdjm4Eg.mjs";
5
- import { j as Object$1 } from "./vocab-fx-0u7cy.mjs";
5
+ import { j as Object$1 } from "./vocab-BcGkZqeH.mjs";
6
6
  import { canonicalizePortableUri, formatIri, getDocumentLoader, haveSameFe34Origin, haveSameIriOrigin, parseIri } from "@fedify/vocab-runtime";
7
7
  import { lookupWebFinger } from "@fedify/webfinger";
8
8
  import { SpanStatusCode, trace } from "@opentelemetry/api";
@@ -1,8 +1,8 @@
1
1
  import "temporal-polyfill";
2
2
  globalThis.addEventListener = () => {};
3
3
  import { t as esm_default } from "./esm-BIqRhjGA.mjs";
4
- import { A as Note, I as Person, j as Object$1, s as Collection } from "./vocab-fx-0u7cy.mjs";
5
- import { n as lookupObserver, r as traverseCollection, t as lookupObject } from "./lookup-DLoLCARL.mjs";
4
+ import { A as Note, I as Person, j as Object$1, s as Collection } from "./vocab-BcGkZqeH.mjs";
5
+ import { n as lookupObserver, r as traverseCollection, t as lookupObject } from "./lookup-CE08Sr09.mjs";
6
6
  import { t as assertInstanceOf } from "./utils-Df2odC27.mjs";
7
7
  import { createTestMeterProvider, createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
8
8
  import { deepStrictEqual, equal, ok, rejects } from "node:assert/strict";
@@ -36,6 +36,9 @@ defaultContext:
36
36
  suspended: "toot:suspended"
37
37
  memorial: "toot:memorial"
38
38
  indexable: "toot:indexable"
39
+ attributionDomains:
40
+ "@id": "toot:attributionDomains"
41
+ "@container": "@set"
39
42
  schema: "http://schema.org#"
40
43
  PropertyValue: "schema:PropertyValue"
41
44
  value: "schema:value"
@@ -284,6 +287,19 @@ properties:
284
287
  range:
285
288
  - "http://www.w3.org/2001/XMLSchema#boolean"
286
289
 
290
+ - pluralName: attributionDomains
291
+ singularName: attributionDomain
292
+ compactName: attributionDomains
293
+ uri: "http://joinmastodon.org/ns#attributionDomains"
294
+ description: |
295
+ Domains this actor claims as its own, so that Mastodon can credit the
296
+ actor on link preview cards that point at one of them. Each value is a
297
+ bare host name, without a scheme, port, path, or leading `*.`. Fedify
298
+ treats the values as opaque strings and does not normalize or validate
299
+ them; applications are responsible for producing normalized host names.
300
+ range:
301
+ - "http://www.w3.org/2001/XMLSchema#string"
302
+
287
303
  - singularName: successor
288
304
  functional: true
289
305
  compactName: movedTo
@@ -36,6 +36,9 @@ defaultContext:
36
36
  suspended: "toot:suspended"
37
37
  memorial: "toot:memorial"
38
38
  indexable: "toot:indexable"
39
+ attributionDomains:
40
+ "@id": "toot:attributionDomains"
41
+ "@container": "@set"
39
42
  schema: "http://schema.org#"
40
43
  PropertyValue: "schema:PropertyValue"
41
44
  value: "schema:value"
@@ -284,6 +287,19 @@ properties:
284
287
  range:
285
288
  - "http://www.w3.org/2001/XMLSchema#boolean"
286
289
 
290
+ - pluralName: attributionDomains
291
+ singularName: attributionDomain
292
+ compactName: attributionDomains
293
+ uri: "http://joinmastodon.org/ns#attributionDomains"
294
+ description: |
295
+ Domains this actor claims as its own, so that Mastodon can credit the
296
+ actor on link preview cards that point at one of them. Each value is a
297
+ bare host name, without a scheme, port, path, or leading `*.`. Fedify
298
+ treats the values as opaque strings and does not normalize or validate
299
+ them; applications are responsible for producing normalized host names.
300
+ range:
301
+ - "http://www.w3.org/2001/XMLSchema#string"
302
+
287
303
  - singularName: successor
288
304
  functional: true
289
305
  compactName: movedTo
@@ -1,9 +1,9 @@
1
1
  import "temporal-polyfill";
2
2
  globalThis.addEventListener = () => {};
3
3
  import { t as esm_default } from "./esm-BIqRhjGA.mjs";
4
- import { n as getActorHandle } from "./actor-BjR7XMY3.mjs";
5
- import { I as Person } from "./vocab-fx-0u7cy.mjs";
6
- import { t as lookupObject } from "./lookup-DLoLCARL.mjs";
4
+ import { n as getActorHandle } from "./actor-Bv4E58SY.mjs";
5
+ import { I as Person } from "./vocab-BcGkZqeH.mjs";
6
+ import { t as lookupObject } from "./lookup-CE08Sr09.mjs";
7
7
  import { t as assertInstanceOf } from "./utils-Df2odC27.mjs";
8
8
  import { mockDocumentLoader, test } from "@fedify/fixture";
9
9
  import { deepStrictEqual, equal, rejects } from "node:assert/strict";
@@ -36,6 +36,9 @@ defaultContext:
36
36
  suspended: "toot:suspended"
37
37
  memorial: "toot:memorial"
38
38
  indexable: "toot:indexable"
39
+ attributionDomains:
40
+ "@id": "toot:attributionDomains"
41
+ "@container": "@set"
39
42
  schema: "http://schema.org#"
40
43
  PropertyValue: "schema:PropertyValue"
41
44
  value: "schema:value"
@@ -284,6 +287,19 @@ properties:
284
287
  range:
285
288
  - "http://www.w3.org/2001/XMLSchema#boolean"
286
289
 
290
+ - pluralName: attributionDomains
291
+ singularName: attributionDomain
292
+ compactName: attributionDomains
293
+ uri: "http://joinmastodon.org/ns#attributionDomains"
294
+ description: |
295
+ Domains this actor claims as its own, so that Mastodon can credit the
296
+ actor on link preview cards that point at one of them. Each value is a
297
+ bare host name, without a scheme, port, path, or leading `*.`. Fedify
298
+ treats the values as opaque strings and does not normalize or validate
299
+ them; applications are responsible for producing normalized host names.
300
+ range:
301
+ - "http://www.w3.org/2001/XMLSchema#string"
302
+
287
303
  - singularName: successor
288
304
  functional: true
289
305
  compactName: movedTo
@@ -1,6 +1,6 @@
1
1
  import "temporal-polyfill";
2
2
  globalThis.addEventListener = () => {};
3
- import { A as Note, B as Question, N as OrderedCollection, Q as vocab_exports, i as Announce, u as Create } from "./vocab-fx-0u7cy.mjs";
3
+ import { A as Note, B as Question, N as OrderedCollection, Q as vocab_exports, i as Announce, u as Create } from "./vocab-BcGkZqeH.mjs";
4
4
  import { mockDocumentLoader, test } from "@fedify/fixture";
5
5
  import { deepStrictEqual, ok } from "node:assert/strict";
6
6
  import { isMarkerSafeContext, retainSignedRepresentation } from "@fedify/vocab-runtime/internal/signed-representation";
@@ -1,6 +1,6 @@
1
1
  import "temporal-polyfill";
2
2
  globalThis.addEventListener = () => {};
3
- import { A as Note, q as Translation, u as Create } from "./vocab-fx-0u7cy.mjs";
3
+ import { A as Note, q as Translation, u as Create } from "./vocab-BcGkZqeH.mjs";
4
4
  import { mockDocumentLoader, test } from "@fedify/fixture";
5
5
  import { deepStrictEqual, notStrictEqual, ok, strictEqual, throws } from "node:assert/strict";
6
6
  //#region src/sparse-arrays.test.ts
@@ -1,8 +1,8 @@
1
1
  import "temporal-polyfill";
2
2
  globalThis.addEventListener = () => {};
3
- import "./actor-BjR7XMY3.mjs";
4
- import "./vocab-fx-0u7cy.mjs";
5
- import "./lookup-DLoLCARL.mjs";
3
+ import "./actor-Bv4E58SY.mjs";
4
+ import "./vocab-BcGkZqeH.mjs";
5
+ import "./lookup-CE08Sr09.mjs";
6
6
  import { LanguageString as LanguageString$1 } from "@fedify/vocab-runtime";
7
7
  new URL("https://www.w3.org/ns/activitystreams#Public");
8
8
  //#endregion
@@ -1,7 +1,7 @@
1
1
  import "temporal-polyfill";
2
2
  globalThis.addEventListener = () => {};
3
- import { A as Note, D as Link, F as Organization, I as Person, J as Update, R as PropertyValue, W as Service, a as Application, j as Object$1, o as Article, q as Translation, s as Collection, u as Create, x as Group } from "./vocab-fx-0u7cy.mjs";
4
- import { t as LanguageString$1 } from "./src-l_qXemk3.mjs";
3
+ import { A as Note, D as Link, F as Organization, I as Person, J as Update, R as PropertyValue, W as Service, a as Application, j as Object$1, o as Article, q as Translation, s as Collection, u as Create, x as Group } from "./vocab-BcGkZqeH.mjs";
4
+ import { t as LanguageString$1 } from "./src-BfQX2hVK.mjs";
5
5
  import { test } from "@fedify/fixture";
6
6
  import { deepStrictEqual, ok, rejects } from "node:assert/strict";
7
7
  import { getDocumentLoader, preloadedContexts } from "@fedify/vocab-runtime";
@@ -1,7 +1,7 @@
1
1
  import "temporal-polyfill";
2
2
  globalThis.addEventListener = () => {};
3
3
  import { t as getTypeId } from "./type-BMdjm4Eg.mjs";
4
- import { D as Link, I as Person, X as getEntityTypeById, Z as isEntityType } from "./vocab-fx-0u7cy.mjs";
4
+ import { D as Link, I as Person, X as getEntityTypeById, Z as isEntityType } from "./vocab-BcGkZqeH.mjs";
5
5
  import { test } from "@fedify/fixture";
6
6
  import { deepStrictEqual } from "node:assert/strict";
7
7
  //#region src/type.test.ts
@@ -38,6 +38,9 @@ defaultContext:
38
38
  suspended: "toot:suspended"
39
39
  memorial: "toot:memorial"
40
40
  indexable: "toot:indexable"
41
+ attributionDomains:
42
+ "@id": "toot:attributionDomains"
43
+ "@container": "@set"
41
44
  votersCount:
42
45
  "@id": "toot:votersCount"
43
46
  "@type": "http://www.w3.org/2001/XMLSchema#nonNegativeInteger"