@fedify/fedify 0.14.0-dev.334 → 0.14.0-dev.335
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 +11 -0
- package/esm/federation/middleware.js +2 -2
- package/esm/vocab/object.yaml +13 -0
- package/esm/vocab/source.yaml +26 -0
- package/esm/vocab/vocab.js +453 -0
- package/package.json +1 -1
- package/types/federation/collection.d.ts +0 -1
- package/types/federation/collection.d.ts.map +1 -1
- package/types/federation/context.d.ts +0 -2
- package/types/federation/context.d.ts.map +1 -1
- package/types/federation/handler.d.ts +0 -2
- package/types/federation/handler.d.ts.map +1 -1
- package/types/federation/middleware.d.ts +0 -2
- package/types/federation/middleware.d.ts.map +1 -1
- package/types/federation/send.d.ts +0 -2
- package/types/federation/send.d.ts.map +1 -1
- package/types/nodeinfo/handler.d.ts +0 -1
- package/types/nodeinfo/handler.d.ts.map +1 -1
- package/types/nodeinfo/types.d.ts +0 -1
- package/types/nodeinfo/types.d.ts.map +1 -1
- package/types/runtime/docloader.d.ts +0 -1
- package/types/runtime/docloader.d.ts.map +1 -1
- package/types/sig/http.d.ts +0 -2
- package/types/sig/http.d.ts.map +1 -1
- package/types/sig/key.d.ts +0 -1
- package/types/sig/key.d.ts.map +1 -1
- package/types/sig/owner.d.ts +0 -1
- package/types/sig/owner.d.ts.map +1 -1
- package/types/sig/proof.d.ts +0 -1
- package/types/sig/proof.d.ts.map +1 -1
- package/types/vocab/actor.d.ts +0 -1
- package/types/vocab/actor.d.ts.map +1 -1
- package/types/vocab/constants.d.ts +0 -1
- package/types/vocab/constants.d.ts.map +1 -1
- package/types/vocab/lookup.d.ts +0 -1
- package/types/vocab/lookup.d.ts.map +1 -1
- package/types/vocab/vocab.d.ts +191 -1
- package/types/vocab/vocab.d.ts.map +1 -1
- package/types/webfinger/handler.d.ts +0 -1
- package/types/webfinger/handler.d.ts.map +1 -1
- package/types/webfinger/lookup.d.ts +0 -1
- package/types/webfinger/lookup.d.ts.map +1 -1
- package/types/x/hono.d.ts +0 -1
- package/types/x/hono.d.ts.map +1 -1
package/CHANGES.md
CHANGED
@@ -8,6 +8,15 @@ Version 0.14.0
|
|
8
8
|
|
9
9
|
To be released.
|
10
10
|
|
11
|
+
- Added `source` property to `Object` class in Activity Vocabulary API.
|
12
|
+
[[#114]]
|
13
|
+
|
14
|
+
- Added `Object.source` property.
|
15
|
+
- `new Object()` constructor now accepts `source` option.
|
16
|
+
- `Object.clone()` method now accepts `source` option.
|
17
|
+
|
18
|
+
- Added `Source` class to Activity Vocabulary API. [[#114]]
|
19
|
+
|
11
20
|
- Improved the performance of `Object.toJsonLd()` method.
|
12
21
|
|
13
22
|
- `Object.toJsonLd()` method no longer guarantees that the returned
|
@@ -24,6 +33,8 @@ To be released.
|
|
24
33
|
Bun, and fills the *deno.json* file with the default `compilerOptions` on
|
25
34
|
Deno.
|
26
35
|
|
36
|
+
[#114]: https://github.com/dahlia/fedify/issues/114
|
37
|
+
|
27
38
|
|
28
39
|
Version 0.13.0
|
29
40
|
--------------
|
@@ -56,11 +56,11 @@ class FederationImpl {
|
|
56
56
|
constructor(options) {
|
57
57
|
this.kv = options.kv;
|
58
58
|
this.kvPrefixes = {
|
59
|
-
...
|
59
|
+
...{
|
60
60
|
activityIdempotence: ["_fedify", "activityIdempotence"],
|
61
61
|
remoteDocument: ["_fedify", "remoteDocument"],
|
62
62
|
publicKey: ["_fedify", "publicKey"],
|
63
|
-
}
|
63
|
+
},
|
64
64
|
...(options.kvPrefixes ?? {}),
|
65
65
|
};
|
66
66
|
this.queue = options.queue;
|
package/esm/vocab/object.yaml
CHANGED
@@ -330,6 +330,19 @@ properties:
|
|
330
330
|
range:
|
331
331
|
- "http://www.w3.org/2001/XMLSchema#boolean"
|
332
332
|
|
333
|
+
- singularName: source
|
334
|
+
functional: true
|
335
|
+
compactName: source
|
336
|
+
uri: "https://www.w3.org/ns/activitystreams#source"
|
337
|
+
description: |
|
338
|
+
The `source` property is intended to convey some sort of source from which
|
339
|
+
the `content` markup was derived, as a form of provenance, or to support
|
340
|
+
future editing by clients. In general, clients do the conversion from
|
341
|
+
`source` to `content`, not the other way around.
|
342
|
+
untyped: true
|
343
|
+
range:
|
344
|
+
- "https://www.w3.org/ns/activitystreams#Source"
|
345
|
+
|
333
346
|
- singularName: proof
|
334
347
|
pluralName: proofs
|
335
348
|
singularAccessor: true
|
@@ -0,0 +1,26 @@
|
|
1
|
+
$schema: ../codegen/schema.yaml
|
2
|
+
name: Source
|
3
|
+
compactName: as:Source
|
4
|
+
uri: "https://www.w3.org/ns/activitystreams#Source"
|
5
|
+
entity: false
|
6
|
+
description: Contents of {@link Object}'s `source`.
|
7
|
+
defaultContext: "https://www.w3.org/ns/activitystreams"
|
8
|
+
|
9
|
+
properties:
|
10
|
+
- pluralName: contents
|
11
|
+
singularName: content
|
12
|
+
singularAccessor: true
|
13
|
+
compactName: content
|
14
|
+
uri: "https://www.w3.org/ns/activitystreams#content"
|
15
|
+
description: The source content.
|
16
|
+
range:
|
17
|
+
- "http://www.w3.org/2001/XMLSchema#string"
|
18
|
+
- "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
19
|
+
|
20
|
+
- singularName: mediaType
|
21
|
+
functional: true
|
22
|
+
compactName: mediaType
|
23
|
+
uri: "https://www.w3.org/ns/activitystreams#mediaType"
|
24
|
+
description: The MIME media type of the source content.
|
25
|
+
range:
|
26
|
+
- "http://www.w3.org/2001/XMLSchema#string"
|
package/esm/vocab/vocab.js
CHANGED
@@ -59,6 +59,7 @@ export class Object {
|
|
59
59
|
#_3BLrzmscsjHCw8TF5BHRW9WkPnX8 = [];
|
60
60
|
#_3bNvLMBN1bCJETiTihM3wvi1B2JX = [];
|
61
61
|
#_u8gdcDTtChQ4tbSQMXc4cYWyum7 = [];
|
62
|
+
#_2ZwCFoS787v8y8bXKjMoE6MAbrEB = [];
|
62
63
|
#_42rPnotok1ivQ2RNCKNbeFJgx8b8 = [];
|
63
64
|
/**
|
64
65
|
* Constructs a new instance of Object with the given values.
|
@@ -601,6 +602,16 @@ export class Object {
|
|
601
602
|
"boolean" + ".");
|
602
603
|
}
|
603
604
|
}
|
605
|
+
if ("source" in values && values.source != null) {
|
606
|
+
if (values.source instanceof Source) {
|
607
|
+
// @ts-ignore: type is checked above.
|
608
|
+
this.#_2ZwCFoS787v8y8bXKjMoE6MAbrEB = [values.source];
|
609
|
+
}
|
610
|
+
else {
|
611
|
+
throw new TypeError("The source must be of type " +
|
612
|
+
"Source" + ".");
|
613
|
+
}
|
614
|
+
}
|
604
615
|
if ("proof" in values && values.proof != null) {
|
605
616
|
if (values.proof instanceof DataIntegrityProof ||
|
606
617
|
values.proof instanceof URL) {
|
@@ -1192,6 +1203,17 @@ export class Object {
|
|
1192
1203
|
"boolean" + ".");
|
1193
1204
|
}
|
1194
1205
|
}
|
1206
|
+
clone.#_2ZwCFoS787v8y8bXKjMoE6MAbrEB = this.#_2ZwCFoS787v8y8bXKjMoE6MAbrEB;
|
1207
|
+
if ("source" in values && values.source != null) {
|
1208
|
+
if (values.source instanceof Source) {
|
1209
|
+
// @ts-ignore: type is checked above.
|
1210
|
+
clone.#_2ZwCFoS787v8y8bXKjMoE6MAbrEB = [values.source];
|
1211
|
+
}
|
1212
|
+
else {
|
1213
|
+
throw new TypeError("The source must be of type " +
|
1214
|
+
"Source" + ".");
|
1215
|
+
}
|
1216
|
+
}
|
1195
1217
|
clone.#_42rPnotok1ivQ2RNCKNbeFJgx8b8 = this.#_42rPnotok1ivQ2RNCKNbeFJgx8b8;
|
1196
1218
|
if ("proof" in values && values.proof != null) {
|
1197
1219
|
if (values.proof instanceof DataIntegrityProof ||
|
@@ -2638,6 +2660,16 @@ export class Object {
|
|
2638
2660
|
return null;
|
2639
2661
|
return this.#_u8gdcDTtChQ4tbSQMXc4cYWyum7[0];
|
2640
2662
|
}
|
2663
|
+
/** The `source` property is intended to convey some sort of source from which
|
2664
|
+
* the `content` markup was derived, as a form of provenance, or to support
|
2665
|
+
* future editing by clients. In general, clients do the conversion from
|
2666
|
+
* `source` to `content`, not the other way around.
|
2667
|
+
*/
|
2668
|
+
get source() {
|
2669
|
+
if (this.#_2ZwCFoS787v8y8bXKjMoE6MAbrEB.length < 1)
|
2670
|
+
return null;
|
2671
|
+
return this.#_2ZwCFoS787v8y8bXKjMoE6MAbrEB[0];
|
2672
|
+
}
|
2641
2673
|
async #fetchProof(url, options = {}) {
|
2642
2674
|
const documentLoader = options.documentLoader ?? this._documentLoader ??
|
2643
2675
|
fetchDocumentLoader;
|
@@ -3223,6 +3255,21 @@ export class Object {
|
|
3223
3255
|
result["sensitive"] = compactItems[0];
|
3224
3256
|
}
|
3225
3257
|
compactItems = [];
|
3258
|
+
for (const v of this.#_2ZwCFoS787v8y8bXKjMoE6MAbrEB) {
|
3259
|
+
const item = await v.toJsonLd({
|
3260
|
+
...options,
|
3261
|
+
format: undefined,
|
3262
|
+
context: undefined,
|
3263
|
+
});
|
3264
|
+
compactItems.push(item);
|
3265
|
+
}
|
3266
|
+
if (compactItems.length > 1) {
|
3267
|
+
result["source"] = compactItems;
|
3268
|
+
}
|
3269
|
+
else if (compactItems.length === 1) {
|
3270
|
+
result["source"] = compactItems[0];
|
3271
|
+
}
|
3272
|
+
compactItems = [];
|
3226
3273
|
for (const v of this.#_42rPnotok1ivQ2RNCKNbeFJgx8b8) {
|
3227
3274
|
const item = v instanceof URL ? v.href : await v.toJsonLd({
|
3228
3275
|
...options,
|
@@ -3549,6 +3596,14 @@ export class Object {
|
|
3549
3596
|
values["https://www.w3.org/ns/activitystreams#sensitive"] = array;
|
3550
3597
|
}
|
3551
3598
|
array = [];
|
3599
|
+
for (const v of this.#_2ZwCFoS787v8y8bXKjMoE6MAbrEB) {
|
3600
|
+
const element = await v.toJsonLd(options);
|
3601
|
+
array.push(element);
|
3602
|
+
}
|
3603
|
+
if (array.length > 0) {
|
3604
|
+
values["https://www.w3.org/ns/activitystreams#source"] = array;
|
3605
|
+
}
|
3606
|
+
array = [];
|
3552
3607
|
for (const v of this.#_42rPnotok1ivQ2RNCKNbeFJgx8b8) {
|
3553
3608
|
const element = v instanceof URL
|
3554
3609
|
? { "@id": v.href }
|
@@ -4775,6 +4830,19 @@ export class Object {
|
|
4775
4830
|
_u8gdcDTtChQ4tbSQMXc4cYWyum7.push(v["@value"]);
|
4776
4831
|
}
|
4777
4832
|
instance.#_u8gdcDTtChQ4tbSQMXc4cYWyum7 = _u8gdcDTtChQ4tbSQMXc4cYWyum7;
|
4833
|
+
const _2ZwCFoS787v8y8bXKjMoE6MAbrEB = [];
|
4834
|
+
const _2ZwCFoS787v8y8bXKjMoE6MAbrEB__array = values["https://www.w3.org/ns/activitystreams#source"];
|
4835
|
+
for (const v of _2ZwCFoS787v8y8bXKjMoE6MAbrEB__array == null
|
4836
|
+
? []
|
4837
|
+
: _2ZwCFoS787v8y8bXKjMoE6MAbrEB__array.length === 1 &&
|
4838
|
+
"@list" in _2ZwCFoS787v8y8bXKjMoE6MAbrEB__array[0]
|
4839
|
+
? _2ZwCFoS787v8y8bXKjMoE6MAbrEB__array[0]["@list"]
|
4840
|
+
: _2ZwCFoS787v8y8bXKjMoE6MAbrEB__array) {
|
4841
|
+
if (v == null)
|
4842
|
+
continue;
|
4843
|
+
_2ZwCFoS787v8y8bXKjMoE6MAbrEB.push(await Source.fromJsonLd(v, options));
|
4844
|
+
}
|
4845
|
+
instance.#_2ZwCFoS787v8y8bXKjMoE6MAbrEB = _2ZwCFoS787v8y8bXKjMoE6MAbrEB;
|
4778
4846
|
const _42rPnotok1ivQ2RNCKNbeFJgx8b8 = [];
|
4779
4847
|
const _42rPnotok1ivQ2RNCKNbeFJgx8b8__array = values["https://w3id.org/security#proof"];
|
4780
4848
|
for (const v of _42rPnotok1ivQ2RNCKNbeFJgx8b8__array == null
|
@@ -5191,6 +5259,17 @@ export class Object {
|
|
5191
5259
|
if (_u8gdcDTtChQ4tbSQMXc4cYWyum7.length == 1) {
|
5192
5260
|
proxy.sensitive = _u8gdcDTtChQ4tbSQMXc4cYWyum7[0];
|
5193
5261
|
}
|
5262
|
+
const _2ZwCFoS787v8y8bXKjMoE6MAbrEB = this.#_2ZwCFoS787v8y8bXKjMoE6MAbrEB
|
5263
|
+
// deno-lint-ignore no-explicit-any
|
5264
|
+
.map((v) => v instanceof URL
|
5265
|
+
? {
|
5266
|
+
[Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
|
5267
|
+
[Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
|
5268
|
+
}
|
5269
|
+
: v);
|
5270
|
+
if (_2ZwCFoS787v8y8bXKjMoE6MAbrEB.length == 1) {
|
5271
|
+
proxy.source = _2ZwCFoS787v8y8bXKjMoE6MAbrEB[0];
|
5272
|
+
}
|
5194
5273
|
const _42rPnotok1ivQ2RNCKNbeFJgx8b8 = this.#_42rPnotok1ivQ2RNCKNbeFJgx8b8
|
5195
5274
|
// deno-lint-ignore no-explicit-any
|
5196
5275
|
.map((v) => v instanceof URL
|
@@ -32678,6 +32757,380 @@ export class Service extends Object {
|
|
32678
32757
|
return "Service " + inspect(proxy, options);
|
32679
32758
|
}
|
32680
32759
|
}
|
32760
|
+
/** Contents of {@link Object}'s `source`.
|
32761
|
+
*/
|
32762
|
+
export class Source {
|
32763
|
+
#documentLoader;
|
32764
|
+
#contextLoader;
|
32765
|
+
id;
|
32766
|
+
get _documentLoader() {
|
32767
|
+
return this.#documentLoader;
|
32768
|
+
}
|
32769
|
+
get _contextLoader() {
|
32770
|
+
return this.#contextLoader;
|
32771
|
+
}
|
32772
|
+
#cachedJsonLd;
|
32773
|
+
/**
|
32774
|
+
* The type URI of {@link Source}: `https://www.w3.org/ns/activitystreams#Source`.
|
32775
|
+
*/
|
32776
|
+
static get typeId() {
|
32777
|
+
return new URL("https://www.w3.org/ns/activitystreams#Source");
|
32778
|
+
}
|
32779
|
+
#_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz = [];
|
32780
|
+
#_3BLrzmscsjHCw8TF5BHRW9WkPnX8 = [];
|
32781
|
+
/**
|
32782
|
+
* Constructs a new instance of Source with the given values.
|
32783
|
+
* @param values The values to initialize the instance with.
|
32784
|
+
* @param options The options to use for initialization.
|
32785
|
+
*/
|
32786
|
+
constructor(values, { documentLoader, contextLoader, } = {}) {
|
32787
|
+
this.#documentLoader = documentLoader;
|
32788
|
+
this.#contextLoader = contextLoader;
|
32789
|
+
if (values.id == null || values.id instanceof URL) {
|
32790
|
+
this.id = values.id ?? null;
|
32791
|
+
}
|
32792
|
+
else {
|
32793
|
+
throw new TypeError("The id must be a URL.");
|
32794
|
+
}
|
32795
|
+
if ("content" in values && values.content != null) {
|
32796
|
+
if (typeof values.content === "string" ||
|
32797
|
+
values.content instanceof LanguageString) {
|
32798
|
+
// @ts-ignore: type is checked above.
|
32799
|
+
this.#_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz = [values.content];
|
32800
|
+
}
|
32801
|
+
else {
|
32802
|
+
throw new TypeError("The content must be of type " +
|
32803
|
+
"string | LanguageString" + ".");
|
32804
|
+
}
|
32805
|
+
}
|
32806
|
+
if ("contents" in values && values.contents != null) {
|
32807
|
+
if ("content" in values &&
|
32808
|
+
values.content != null) {
|
32809
|
+
throw new TypeError("Cannot initialize both content and " +
|
32810
|
+
"contents at the same time.");
|
32811
|
+
}
|
32812
|
+
if (Array.isArray(values.contents) &&
|
32813
|
+
values.contents.every((v) => typeof v === "string" || v instanceof LanguageString)) {
|
32814
|
+
// @ts-ignore: type is checked above.
|
32815
|
+
this.#_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz = values.contents;
|
32816
|
+
}
|
32817
|
+
else {
|
32818
|
+
throw new TypeError("The contents must be an array of type " +
|
32819
|
+
"string | LanguageString" + ".");
|
32820
|
+
}
|
32821
|
+
}
|
32822
|
+
if ("mediaType" in values && values.mediaType != null) {
|
32823
|
+
if (typeof values.mediaType === "string") {
|
32824
|
+
// @ts-ignore: type is checked above.
|
32825
|
+
this.#_3BLrzmscsjHCw8TF5BHRW9WkPnX8 = [values.mediaType];
|
32826
|
+
}
|
32827
|
+
else {
|
32828
|
+
throw new TypeError("The mediaType must be of type " +
|
32829
|
+
"string" + ".");
|
32830
|
+
}
|
32831
|
+
}
|
32832
|
+
}
|
32833
|
+
/**
|
32834
|
+
* Clones this instance, optionally updating it with the given values.
|
32835
|
+
* @param values The values to update the clone with.
|
32836
|
+
* @options The options to use for cloning.
|
32837
|
+
* @returns The cloned instance.
|
32838
|
+
*/
|
32839
|
+
clone(values = {}, options = {}) {
|
32840
|
+
// @ts-ignore: this.constructor is not recognized as a constructor, but it is.
|
32841
|
+
const clone = new this.constructor({ id: values.id ?? this.id }, options);
|
32842
|
+
clone.#_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz = this.#_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz;
|
32843
|
+
if ("content" in values && values.content != null) {
|
32844
|
+
if (typeof values.content === "string" ||
|
32845
|
+
values.content instanceof LanguageString) {
|
32846
|
+
// @ts-ignore: type is checked above.
|
32847
|
+
clone.#_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz = [values.content];
|
32848
|
+
}
|
32849
|
+
else {
|
32850
|
+
throw new TypeError("The content must be of type " +
|
32851
|
+
"string | LanguageString" + ".");
|
32852
|
+
}
|
32853
|
+
}
|
32854
|
+
if ("contents" in values && values.contents != null) {
|
32855
|
+
if ("content" in values &&
|
32856
|
+
values.content != null) {
|
32857
|
+
throw new TypeError("Cannot update both content and " +
|
32858
|
+
"contents at the same time.");
|
32859
|
+
}
|
32860
|
+
if (Array.isArray(values.contents) &&
|
32861
|
+
values.contents.every((v) => typeof v === "string" || v instanceof LanguageString)) {
|
32862
|
+
// @ts-ignore: type is checked above.
|
32863
|
+
clone.#_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz = values.contents;
|
32864
|
+
}
|
32865
|
+
else {
|
32866
|
+
throw new TypeError("The contents must be an array of type " +
|
32867
|
+
"string | LanguageString" + ".");
|
32868
|
+
}
|
32869
|
+
}
|
32870
|
+
clone.#_3BLrzmscsjHCw8TF5BHRW9WkPnX8 = this.#_3BLrzmscsjHCw8TF5BHRW9WkPnX8;
|
32871
|
+
if ("mediaType" in values && values.mediaType != null) {
|
32872
|
+
if (typeof values.mediaType === "string") {
|
32873
|
+
// @ts-ignore: type is checked above.
|
32874
|
+
clone.#_3BLrzmscsjHCw8TF5BHRW9WkPnX8 = [values.mediaType];
|
32875
|
+
}
|
32876
|
+
else {
|
32877
|
+
throw new TypeError("The mediaType must be of type " +
|
32878
|
+
"string" + ".");
|
32879
|
+
}
|
32880
|
+
}
|
32881
|
+
return clone;
|
32882
|
+
}
|
32883
|
+
/** The source content.
|
32884
|
+
*/
|
32885
|
+
get content() {
|
32886
|
+
if (this.#_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz.length < 1)
|
32887
|
+
return null;
|
32888
|
+
return this.#_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz[0];
|
32889
|
+
}
|
32890
|
+
/** The source content.
|
32891
|
+
*/
|
32892
|
+
get contents() {
|
32893
|
+
return this.#_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz;
|
32894
|
+
}
|
32895
|
+
/** The MIME media type of the source content.
|
32896
|
+
*/
|
32897
|
+
get mediaType() {
|
32898
|
+
if (this.#_3BLrzmscsjHCw8TF5BHRW9WkPnX8.length < 1)
|
32899
|
+
return null;
|
32900
|
+
return this.#_3BLrzmscsjHCw8TF5BHRW9WkPnX8[0];
|
32901
|
+
}
|
32902
|
+
/**
|
32903
|
+
* Converts this object to a JSON-LD structure.
|
32904
|
+
* @param options The options to use.
|
32905
|
+
* - `format`: The format of the output: `compact` or
|
32906
|
+
`expand`.
|
32907
|
+
* - `contextLoader`: The loader for remote JSON-LD contexts.
|
32908
|
+
* - `context`: The JSON-LD context to use. Not applicable
|
32909
|
+
when `format` is set to `'expand'`.
|
32910
|
+
* @returns The JSON-LD representation of this object.
|
32911
|
+
*/
|
32912
|
+
async toJsonLd(options = {}) {
|
32913
|
+
if (options.expand != null) {
|
32914
|
+
if (options.format != null) {
|
32915
|
+
throw new TypeError("The expand option, which is deprecated, cannot be used together " +
|
32916
|
+
"with the format option.");
|
32917
|
+
}
|
32918
|
+
getLogger(["fedify", "vocab"]).warn("The expand option is deprecated; use format: 'expand' instead.");
|
32919
|
+
options = { ...options, format: "expand", expand: undefined };
|
32920
|
+
}
|
32921
|
+
if (options.format == null && this.#cachedJsonLd != null) {
|
32922
|
+
return this.#cachedJsonLd;
|
32923
|
+
}
|
32924
|
+
if (options.format !== "compact" && options.context != null) {
|
32925
|
+
throw new TypeError("The context option can only be used when the format option is set " +
|
32926
|
+
"to 'compact'.");
|
32927
|
+
}
|
32928
|
+
options = {
|
32929
|
+
...options,
|
32930
|
+
contextLoader: options.contextLoader ?? fetchDocumentLoader,
|
32931
|
+
};
|
32932
|
+
if (options.format == null &&
|
32933
|
+
(this.#_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz == null ||
|
32934
|
+
this.#_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz.length < 1)) {
|
32935
|
+
const result = {};
|
32936
|
+
// deno-lint-ignore no-unused-vars
|
32937
|
+
let compactItems;
|
32938
|
+
compactItems = [];
|
32939
|
+
for (const v of this.#_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz) {
|
32940
|
+
const item = typeof v === "string" ? v : {
|
32941
|
+
"@value": v.toString(),
|
32942
|
+
"@language": v.language.compact(),
|
32943
|
+
};
|
32944
|
+
compactItems.push(item);
|
32945
|
+
}
|
32946
|
+
if (compactItems.length > 1) {
|
32947
|
+
result["content"] = compactItems;
|
32948
|
+
}
|
32949
|
+
else if (compactItems.length === 1) {
|
32950
|
+
result["content"] = compactItems[0];
|
32951
|
+
}
|
32952
|
+
compactItems = [];
|
32953
|
+
for (const v of this.#_3BLrzmscsjHCw8TF5BHRW9WkPnX8) {
|
32954
|
+
const item = v;
|
32955
|
+
compactItems.push(item);
|
32956
|
+
}
|
32957
|
+
if (compactItems.length > 1) {
|
32958
|
+
result["mediaType"] = compactItems;
|
32959
|
+
}
|
32960
|
+
else if (compactItems.length === 1) {
|
32961
|
+
result["mediaType"] = compactItems[0];
|
32962
|
+
}
|
32963
|
+
result["type"] = "as:Source";
|
32964
|
+
if (this.id != null)
|
32965
|
+
result["id"] = this.id.href;
|
32966
|
+
result["@context"] = "https://www.w3.org/ns/activitystreams";
|
32967
|
+
return result;
|
32968
|
+
}
|
32969
|
+
// deno-lint-ignore no-unused-vars prefer-const
|
32970
|
+
let array;
|
32971
|
+
const values = {};
|
32972
|
+
array = [];
|
32973
|
+
for (const v of this.#_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz) {
|
32974
|
+
const element = typeof v === "string" ? { "@value": v } : {
|
32975
|
+
"@value": v.toString(),
|
32976
|
+
"@language": v.language.compact(),
|
32977
|
+
};
|
32978
|
+
array.push(element);
|
32979
|
+
}
|
32980
|
+
if (array.length > 0) {
|
32981
|
+
values["https://www.w3.org/ns/activitystreams#content"] = array;
|
32982
|
+
}
|
32983
|
+
array = [];
|
32984
|
+
for (const v of this.#_3BLrzmscsjHCw8TF5BHRW9WkPnX8) {
|
32985
|
+
const element = { "@value": v };
|
32986
|
+
array.push(element);
|
32987
|
+
}
|
32988
|
+
if (array.length > 0) {
|
32989
|
+
values["https://www.w3.org/ns/activitystreams#mediaType"] = array;
|
32990
|
+
}
|
32991
|
+
values["@type"] = ["https://www.w3.org/ns/activitystreams#Source"];
|
32992
|
+
if (this.id != null)
|
32993
|
+
values["@id"] = this.id.href;
|
32994
|
+
if (options.format === "expand") {
|
32995
|
+
return await jsonld.expand(values, { documentLoader: options.contextLoader });
|
32996
|
+
}
|
32997
|
+
const docContext = options.context ??
|
32998
|
+
"https://www.w3.org/ns/activitystreams";
|
32999
|
+
const compacted = await jsonld.compact(values, docContext, { documentLoader: options.contextLoader });
|
33000
|
+
if (docContext != null) {
|
33001
|
+
// Embed context
|
33002
|
+
}
|
33003
|
+
return compacted;
|
33004
|
+
}
|
33005
|
+
/**
|
33006
|
+
* Converts a JSON-LD structure to an object of this type.
|
33007
|
+
* @param json The JSON-LD structure to convert.
|
33008
|
+
* @returns The object of this type.
|
33009
|
+
* @throws {TypeError} If the given `json` is invalid.
|
33010
|
+
*/
|
33011
|
+
static async fromJsonLd(json, options = {}) {
|
33012
|
+
if (typeof json === "undefined") {
|
33013
|
+
throw new TypeError("Invalid JSON-LD: undefined.");
|
33014
|
+
}
|
33015
|
+
else if (json === null)
|
33016
|
+
throw new TypeError("Invalid JSON-LD: null.");
|
33017
|
+
options = {
|
33018
|
+
...options,
|
33019
|
+
documentLoader: options.documentLoader ?? fetchDocumentLoader,
|
33020
|
+
contextLoader: options.contextLoader ?? fetchDocumentLoader,
|
33021
|
+
};
|
33022
|
+
// deno-lint-ignore no-explicit-any
|
33023
|
+
let values;
|
33024
|
+
if (globalThis.Object.keys(json).length == 0) {
|
33025
|
+
values = {};
|
33026
|
+
}
|
33027
|
+
else {
|
33028
|
+
const expanded = await jsonld.expand(json, {
|
33029
|
+
documentLoader: options.contextLoader,
|
33030
|
+
keepFreeFloatingNodes: true,
|
33031
|
+
});
|
33032
|
+
values =
|
33033
|
+
// deno-lint-ignore no-explicit-any
|
33034
|
+
(expanded[0] ?? {});
|
33035
|
+
}
|
33036
|
+
if ("@type" in values) {
|
33037
|
+
if (!values["@type"].includes("https://www.w3.org/ns/activitystreams#Source")) {
|
33038
|
+
throw new TypeError("Invalid type: " + values["@type"]);
|
33039
|
+
}
|
33040
|
+
}
|
33041
|
+
const instance = new this({ id: "@id" in values ? new URL(values["@id"]) : undefined }, options);
|
33042
|
+
const _4HuuRSdSrXq8Jj2J9gcdYfoCzeuz = [];
|
33043
|
+
const _4HuuRSdSrXq8Jj2J9gcdYfoCzeuz__array = values["https://www.w3.org/ns/activitystreams#content"];
|
33044
|
+
for (const v of _4HuuRSdSrXq8Jj2J9gcdYfoCzeuz__array == null
|
33045
|
+
? []
|
33046
|
+
: _4HuuRSdSrXq8Jj2J9gcdYfoCzeuz__array.length === 1 &&
|
33047
|
+
"@list" in _4HuuRSdSrXq8Jj2J9gcdYfoCzeuz__array[0]
|
33048
|
+
? _4HuuRSdSrXq8Jj2J9gcdYfoCzeuz__array[0]["@list"]
|
33049
|
+
: _4HuuRSdSrXq8Jj2J9gcdYfoCzeuz__array) {
|
33050
|
+
if (v == null)
|
33051
|
+
continue;
|
33052
|
+
const decoded = typeof v === "object" && "@value" in v &&
|
33053
|
+
typeof v["@value"] === "string" && !("@language" in v)
|
33054
|
+
? v["@value"]
|
33055
|
+
: typeof v === "object" && "@language" in v && "@value" in v &&
|
33056
|
+
typeof v["@language"] === "string" &&
|
33057
|
+
typeof v["@value"] === "string"
|
33058
|
+
? new LanguageString(v["@value"], v["@language"])
|
33059
|
+
: undefined;
|
33060
|
+
if (typeof decoded === "undefined")
|
33061
|
+
continue;
|
33062
|
+
_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz.push(decoded);
|
33063
|
+
}
|
33064
|
+
instance.#_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz = _4HuuRSdSrXq8Jj2J9gcdYfoCzeuz;
|
33065
|
+
const _3BLrzmscsjHCw8TF5BHRW9WkPnX8 = [];
|
33066
|
+
const _3BLrzmscsjHCw8TF5BHRW9WkPnX8__array = values["https://www.w3.org/ns/activitystreams#mediaType"];
|
33067
|
+
for (const v of _3BLrzmscsjHCw8TF5BHRW9WkPnX8__array == null
|
33068
|
+
? []
|
33069
|
+
: _3BLrzmscsjHCw8TF5BHRW9WkPnX8__array.length === 1 &&
|
33070
|
+
"@list" in _3BLrzmscsjHCw8TF5BHRW9WkPnX8__array[0]
|
33071
|
+
? _3BLrzmscsjHCw8TF5BHRW9WkPnX8__array[0]["@list"]
|
33072
|
+
: _3BLrzmscsjHCw8TF5BHRW9WkPnX8__array) {
|
33073
|
+
if (v == null)
|
33074
|
+
continue;
|
33075
|
+
_3BLrzmscsjHCw8TF5BHRW9WkPnX8.push(v["@value"]);
|
33076
|
+
}
|
33077
|
+
instance.#_3BLrzmscsjHCw8TF5BHRW9WkPnX8 = _3BLrzmscsjHCw8TF5BHRW9WkPnX8;
|
33078
|
+
if (!("_fromSubclass" in options) || !options._fromSubclass) {
|
33079
|
+
try {
|
33080
|
+
instance.#cachedJsonLd = structuredClone(json);
|
33081
|
+
}
|
33082
|
+
catch {
|
33083
|
+
getLogger(["fedify", "vocab"]).warn("Failed to cache JSON-LD: {json}", { json });
|
33084
|
+
}
|
33085
|
+
}
|
33086
|
+
return instance;
|
33087
|
+
}
|
33088
|
+
_getCustomInspectProxy() {
|
33089
|
+
const proxy = {};
|
33090
|
+
if (this.id != null) {
|
33091
|
+
proxy.id = {
|
33092
|
+
[Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(this.id.href, options),
|
33093
|
+
[Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(this.id.href, options),
|
33094
|
+
};
|
33095
|
+
}
|
33096
|
+
const _4HuuRSdSrXq8Jj2J9gcdYfoCzeuz = this.#_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz
|
33097
|
+
// deno-lint-ignore no-explicit-any
|
33098
|
+
.map((v) => v instanceof URL
|
33099
|
+
? {
|
33100
|
+
[Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
|
33101
|
+
[Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
|
33102
|
+
}
|
33103
|
+
: v);
|
33104
|
+
if (_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz.length == 1) {
|
33105
|
+
proxy.content = _4HuuRSdSrXq8Jj2J9gcdYfoCzeuz[0];
|
33106
|
+
}
|
33107
|
+
if (_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz.length > 1 ||
|
33108
|
+
!("content" in proxy) &&
|
33109
|
+
_4HuuRSdSrXq8Jj2J9gcdYfoCzeuz.length > 0) {
|
33110
|
+
proxy.contents = _4HuuRSdSrXq8Jj2J9gcdYfoCzeuz;
|
33111
|
+
}
|
33112
|
+
const _3BLrzmscsjHCw8TF5BHRW9WkPnX8 = this.#_3BLrzmscsjHCw8TF5BHRW9WkPnX8
|
33113
|
+
// deno-lint-ignore no-explicit-any
|
33114
|
+
.map((v) => v instanceof URL
|
33115
|
+
? {
|
33116
|
+
[Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
|
33117
|
+
[Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
|
33118
|
+
}
|
33119
|
+
: v);
|
33120
|
+
if (_3BLrzmscsjHCw8TF5BHRW9WkPnX8.length == 1) {
|
33121
|
+
proxy.mediaType = _3BLrzmscsjHCw8TF5BHRW9WkPnX8[0];
|
33122
|
+
}
|
33123
|
+
return proxy;
|
33124
|
+
}
|
33125
|
+
[Symbol.for("Deno.customInspect")](inspect, options) {
|
33126
|
+
const proxy = this._getCustomInspectProxy();
|
33127
|
+
return "Source " + inspect(proxy, options);
|
33128
|
+
}
|
33129
|
+
[Symbol.for("nodejs.util.inspect.custom")](_depth, options, inspect) {
|
33130
|
+
const proxy = this._getCustomInspectProxy();
|
33131
|
+
return "Source " + inspect(proxy, options);
|
33132
|
+
}
|
33133
|
+
}
|
32681
33134
|
/** A specialization of {@link Accept} indicating that
|
32682
33135
|
* the acceptance is tentative.
|
32683
33136
|
*/
|
package/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../src/federation/collection.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../src/federation/collection.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,KAAK;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,KAAK,EAAE,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,GAC3B,OAAO,CAAC,UAAU,CAAC,CAiBrB;AAED;;;;;;;;GAQG;AACH,wBAAsB,oCAAoC,CACxD,YAAY,EAAE,MAAM,GAAG,GAAG,EAC1B,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,GAC/B,OAAO,CAAC,MAAM,CAAC,CAOjB"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/federation/context.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/federation/context.ts"],"names":[],"mappings":"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"}
|