@fedify/fedify 1.1.0-dev.428 → 1.1.0-dev.431
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 +42 -0
- package/esm/vocab/application.yaml +13 -0
- package/esm/vocab/arrive.yaml +1 -1
- package/esm/vocab/didservice.yaml +22 -0
- package/esm/vocab/export.yaml +9 -0
- package/esm/vocab/group.yaml +13 -0
- package/esm/vocab/organization.yaml +13 -0
- package/esm/vocab/person.yaml +13 -0
- package/esm/vocab/service.yaml +13 -0
- package/esm/vocab/vocab.js +1443 -4
- package/esm/webfinger/handler.js +1 -1
- package/package.json +1 -1
- package/types/vocab/vocab.d.ts +320 -0
- package/types/vocab/vocab.d.ts.map +1 -1
package/esm/vocab/vocab.js
CHANGED
@@ -7844,6 +7844,420 @@ export class PropertyValue {
|
|
7844
7844
|
return "PropertyValue " + inspect(proxy, options);
|
7845
7845
|
}
|
7846
7846
|
}
|
7847
|
+
/** Means of communicating or interacting with the DID subject or associated
|
7848
|
+
* entities via one or more service endpoints. Examples include discovery
|
7849
|
+
* services, agent services, social networking services, file storage services,
|
7850
|
+
* and verifiable credential repository services.
|
7851
|
+
*/
|
7852
|
+
export class DidService {
|
7853
|
+
#documentLoader;
|
7854
|
+
#contextLoader;
|
7855
|
+
id;
|
7856
|
+
get _documentLoader() {
|
7857
|
+
return this.#documentLoader;
|
7858
|
+
}
|
7859
|
+
get _contextLoader() {
|
7860
|
+
return this.#contextLoader;
|
7861
|
+
}
|
7862
|
+
#cachedJsonLd;
|
7863
|
+
/**
|
7864
|
+
* The type URI of {@link DidService}: `https://www.w3.org/ns/did#Service`.
|
7865
|
+
*/
|
7866
|
+
static get typeId() {
|
7867
|
+
return new URL("https://www.w3.org/ns/did#Service");
|
7868
|
+
}
|
7869
|
+
#_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint = [];
|
7870
|
+
/**
|
7871
|
+
* Constructs a new instance of DidService with the given values.
|
7872
|
+
* @param values The values to initialize the instance with.
|
7873
|
+
* @param options The options to use for initialization.
|
7874
|
+
*/
|
7875
|
+
constructor(values, { documentLoader, contextLoader, } = {}) {
|
7876
|
+
this.#documentLoader = documentLoader;
|
7877
|
+
this.#contextLoader = contextLoader;
|
7878
|
+
if (values.id == null || values.id instanceof URL) {
|
7879
|
+
this.id = values.id ?? null;
|
7880
|
+
}
|
7881
|
+
else {
|
7882
|
+
throw new TypeError("The id must be a URL.");
|
7883
|
+
}
|
7884
|
+
if ("endpoint" in values && values.endpoint != null) {
|
7885
|
+
if (values.endpoint instanceof URL) {
|
7886
|
+
// @ts-ignore: type is checked above.
|
7887
|
+
this.#_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint = [values.endpoint];
|
7888
|
+
}
|
7889
|
+
else {
|
7890
|
+
throw new TypeError("The endpoint must be of type " +
|
7891
|
+
"URL" + ".");
|
7892
|
+
}
|
7893
|
+
}
|
7894
|
+
if ("endpoints" in values && values.endpoints != null) {
|
7895
|
+
if ("endpoint" in values &&
|
7896
|
+
values.endpoint != null) {
|
7897
|
+
throw new TypeError("Cannot initialize both endpoint and " +
|
7898
|
+
"endpoints at the same time.");
|
7899
|
+
}
|
7900
|
+
if (Array.isArray(values.endpoints) &&
|
7901
|
+
values.endpoints.every((v) => v instanceof URL)) {
|
7902
|
+
// @ts-ignore: type is checked above.
|
7903
|
+
this.#_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint = values.endpoints;
|
7904
|
+
}
|
7905
|
+
else {
|
7906
|
+
throw new TypeError("The endpoints must be an array of type " +
|
7907
|
+
"URL" + ".");
|
7908
|
+
}
|
7909
|
+
}
|
7910
|
+
}
|
7911
|
+
/**
|
7912
|
+
* Clones this instance, optionally updating it with the given values.
|
7913
|
+
* @param values The values to update the clone with.
|
7914
|
+
* @options The options to use for cloning.
|
7915
|
+
* @returns The cloned instance.
|
7916
|
+
*/
|
7917
|
+
clone(values = {}, options = {}) {
|
7918
|
+
// @ts-ignore: this.constructor is not recognized as a constructor, but it is.
|
7919
|
+
const clone = new this.constructor({ id: values.id ?? this.id }, options);
|
7920
|
+
clone.#_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint =
|
7921
|
+
this.#_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint;
|
7922
|
+
if ("endpoint" in values && values.endpoint != null) {
|
7923
|
+
if (values.endpoint instanceof URL) {
|
7924
|
+
// @ts-ignore: type is checked above.
|
7925
|
+
clone.#_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint = [
|
7926
|
+
values.endpoint,
|
7927
|
+
];
|
7928
|
+
}
|
7929
|
+
else {
|
7930
|
+
throw new TypeError("The endpoint must be of type " +
|
7931
|
+
"URL" + ".");
|
7932
|
+
}
|
7933
|
+
}
|
7934
|
+
if ("endpoints" in values && values.endpoints != null) {
|
7935
|
+
if ("endpoint" in values &&
|
7936
|
+
values.endpoint != null) {
|
7937
|
+
throw new TypeError("Cannot update both endpoint and " +
|
7938
|
+
"endpoints at the same time.");
|
7939
|
+
}
|
7940
|
+
if (Array.isArray(values.endpoints) &&
|
7941
|
+
values.endpoints.every((v) => v instanceof URL)) {
|
7942
|
+
// @ts-ignore: type is checked above.
|
7943
|
+
clone.#_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint = values.endpoints;
|
7944
|
+
}
|
7945
|
+
else {
|
7946
|
+
throw new TypeError("The endpoints must be an array of type " +
|
7947
|
+
"URL" + ".");
|
7948
|
+
}
|
7949
|
+
}
|
7950
|
+
return clone;
|
7951
|
+
}
|
7952
|
+
/** A network address, such as an HTTP URL, at which services operate on behalf
|
7953
|
+
* of a DID subject.
|
7954
|
+
*/
|
7955
|
+
get endpoint() {
|
7956
|
+
if (this.#_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint.length < 1) {
|
7957
|
+
return null;
|
7958
|
+
}
|
7959
|
+
return this.#_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint[0];
|
7960
|
+
}
|
7961
|
+
/** A network address, such as an HTTP URL, at which services operate on behalf
|
7962
|
+
* of a DID subject.
|
7963
|
+
*/
|
7964
|
+
get endpoints() {
|
7965
|
+
return this.#_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint;
|
7966
|
+
}
|
7967
|
+
/**
|
7968
|
+
* Converts this object to a JSON-LD structure.
|
7969
|
+
* @param options The options to use.
|
7970
|
+
* - `format`: The format of the output: `compact` or
|
7971
|
+
`expand`.
|
7972
|
+
* - `contextLoader`: The loader for remote JSON-LD contexts.
|
7973
|
+
* - `context`: The JSON-LD context to use. Not applicable
|
7974
|
+
when `format` is set to `'expand'`.
|
7975
|
+
* @returns The JSON-LD representation of this object.
|
7976
|
+
*/
|
7977
|
+
async toJsonLd(options = {}) {
|
7978
|
+
if (options.format == null && this.#cachedJsonLd != null) {
|
7979
|
+
return this.#cachedJsonLd;
|
7980
|
+
}
|
7981
|
+
if (options.format !== "compact" && options.context != null) {
|
7982
|
+
throw new TypeError("The context option can only be used when the format option is set " +
|
7983
|
+
"to 'compact'.");
|
7984
|
+
}
|
7985
|
+
options = {
|
7986
|
+
...options,
|
7987
|
+
contextLoader: options.contextLoader ?? fetchDocumentLoader,
|
7988
|
+
};
|
7989
|
+
// deno-lint-ignore no-unused-vars prefer-const
|
7990
|
+
let array;
|
7991
|
+
const values = {};
|
7992
|
+
array = [];
|
7993
|
+
for (const v of this.#_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint) {
|
7994
|
+
const element = { "@id": v.href };
|
7995
|
+
array.push(element);
|
7996
|
+
}
|
7997
|
+
if (array.length > 0) {
|
7998
|
+
const propValue = array;
|
7999
|
+
values["https://www.w3.org/ns/did#serviceEndpoint"] = propValue;
|
8000
|
+
}
|
8001
|
+
values["@type"] = ["https://www.w3.org/ns/did#Service"];
|
8002
|
+
if (this.id != null)
|
8003
|
+
values["@id"] = this.id.href;
|
8004
|
+
if (options.format === "expand") {
|
8005
|
+
return await jsonld.expand(values, { documentLoader: options.contextLoader });
|
8006
|
+
}
|
8007
|
+
const docContext = options.context ??
|
8008
|
+
"https://www.w3.org/ns/did/v1";
|
8009
|
+
const compacted = await jsonld.compact(values, docContext, { documentLoader: options.contextLoader });
|
8010
|
+
if (docContext != null) {
|
8011
|
+
// Embed context
|
8012
|
+
}
|
8013
|
+
return compacted;
|
8014
|
+
}
|
8015
|
+
isCompactable() {
|
8016
|
+
return true;
|
8017
|
+
}
|
8018
|
+
/**
|
8019
|
+
* Converts a JSON-LD structure to an object of this type.
|
8020
|
+
* @param json The JSON-LD structure to convert.
|
8021
|
+
* @returns The object of this type.
|
8022
|
+
* @throws {TypeError} If the given `json` is invalid.
|
8023
|
+
*/
|
8024
|
+
static async fromJsonLd(json, options = {}) {
|
8025
|
+
if (typeof json === "undefined") {
|
8026
|
+
throw new TypeError("Invalid JSON-LD: undefined.");
|
8027
|
+
}
|
8028
|
+
else if (json === null)
|
8029
|
+
throw new TypeError("Invalid JSON-LD: null.");
|
8030
|
+
options = {
|
8031
|
+
...options,
|
8032
|
+
documentLoader: options.documentLoader ?? fetchDocumentLoader,
|
8033
|
+
contextLoader: options.contextLoader ?? fetchDocumentLoader,
|
8034
|
+
};
|
8035
|
+
// deno-lint-ignore no-explicit-any
|
8036
|
+
let values;
|
8037
|
+
if (globalThis.Object.keys(json).length == 0) {
|
8038
|
+
values = {};
|
8039
|
+
}
|
8040
|
+
else {
|
8041
|
+
const expanded = await jsonld.expand(json, {
|
8042
|
+
documentLoader: options.contextLoader,
|
8043
|
+
keepFreeFloatingNodes: true,
|
8044
|
+
});
|
8045
|
+
values =
|
8046
|
+
// deno-lint-ignore no-explicit-any
|
8047
|
+
(expanded[0] ?? {});
|
8048
|
+
}
|
8049
|
+
if ("@type" in values) {
|
8050
|
+
if (values["@type"].includes("https://w3id.org/fep/9091#Export")) {
|
8051
|
+
return await Export.fromJsonLd(json, options);
|
8052
|
+
}
|
8053
|
+
if (!values["@type"].includes("https://www.w3.org/ns/did#Service")) {
|
8054
|
+
throw new TypeError("Invalid type: " + values["@type"]);
|
8055
|
+
}
|
8056
|
+
}
|
8057
|
+
const instance = new this({ id: "@id" in values ? new URL(values["@id"]) : undefined }, options);
|
8058
|
+
const _2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint = [];
|
8059
|
+
let _2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint__array = values["https://www.w3.org/ns/did#serviceEndpoint"];
|
8060
|
+
for (const v of _2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint__array == null
|
8061
|
+
? []
|
8062
|
+
: _2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint__array.length === 1 &&
|
8063
|
+
"@list" in _2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint__array[0]
|
8064
|
+
? _2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint__array[0]["@list"]
|
8065
|
+
: _2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint__array) {
|
8066
|
+
if (v == null)
|
8067
|
+
continue;
|
8068
|
+
_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint.push(new URL(v["@id"]));
|
8069
|
+
}
|
8070
|
+
instance.#_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint =
|
8071
|
+
_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint;
|
8072
|
+
if (!("_fromSubclass" in options) || !options._fromSubclass) {
|
8073
|
+
try {
|
8074
|
+
instance.#cachedJsonLd = structuredClone(json);
|
8075
|
+
}
|
8076
|
+
catch {
|
8077
|
+
getLogger(["fedify", "vocab"]).warn("Failed to cache JSON-LD: {json}", { json });
|
8078
|
+
}
|
8079
|
+
}
|
8080
|
+
return instance;
|
8081
|
+
}
|
8082
|
+
_getCustomInspectProxy() {
|
8083
|
+
const proxy = {};
|
8084
|
+
if (this.id != null) {
|
8085
|
+
proxy.id = {
|
8086
|
+
[Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(this.id.href, options),
|
8087
|
+
[Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(this.id.href, options),
|
8088
|
+
};
|
8089
|
+
}
|
8090
|
+
const _2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint = this
|
8091
|
+
.#_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint
|
8092
|
+
// deno-lint-ignore no-explicit-any
|
8093
|
+
.map((v) => v instanceof URL
|
8094
|
+
? {
|
8095
|
+
[Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
|
8096
|
+
[Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
|
8097
|
+
}
|
8098
|
+
: v);
|
8099
|
+
if (_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint.length == 1) {
|
8100
|
+
proxy.endpoint = _2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint[0];
|
8101
|
+
}
|
8102
|
+
if (_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint.length > 1 ||
|
8103
|
+
!("endpoint" in proxy) &&
|
8104
|
+
_2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint.length > 0) {
|
8105
|
+
proxy.endpoints = _2KM4fetG6FTJ1cphj76rzJ8Dyv7p_serviceEndpoint;
|
8106
|
+
}
|
8107
|
+
return proxy;
|
8108
|
+
}
|
8109
|
+
[Symbol.for("Deno.customInspect")](inspect, options) {
|
8110
|
+
const proxy = this._getCustomInspectProxy();
|
8111
|
+
return "DidService " + inspect(proxy, options);
|
8112
|
+
}
|
8113
|
+
[Symbol.for("nodejs.util.inspect.custom")](_depth, options, inspect) {
|
8114
|
+
const proxy = this._getCustomInspectProxy();
|
8115
|
+
return "DidService " + inspect(proxy, options);
|
8116
|
+
}
|
8117
|
+
}
|
8118
|
+
/** "Export Actor" service.
|
8119
|
+
*/
|
8120
|
+
export class Export extends DidService {
|
8121
|
+
#cachedJsonLd;
|
8122
|
+
/**
|
8123
|
+
* The type URI of {@link Export}: `https://w3id.org/fep/9091#Export`.
|
8124
|
+
*/
|
8125
|
+
static get typeId() {
|
8126
|
+
return new URL("https://w3id.org/fep/9091#Export");
|
8127
|
+
}
|
8128
|
+
/**
|
8129
|
+
* Constructs a new instance of Export with the given values.
|
8130
|
+
* @param values The values to initialize the instance with.
|
8131
|
+
* @param options The options to use for initialization.
|
8132
|
+
*/
|
8133
|
+
constructor(values, { documentLoader, contextLoader, } = {}) {
|
8134
|
+
super(values, { documentLoader, contextLoader });
|
8135
|
+
}
|
8136
|
+
/**
|
8137
|
+
* Clones this instance, optionally updating it with the given values.
|
8138
|
+
* @param values The values to update the clone with.
|
8139
|
+
* @options The options to use for cloning.
|
8140
|
+
* @returns The cloned instance.
|
8141
|
+
*/
|
8142
|
+
clone(values = {}, options = {}) {
|
8143
|
+
const clone = super.clone(values, options);
|
8144
|
+
return clone;
|
8145
|
+
}
|
8146
|
+
/**
|
8147
|
+
* Converts this object to a JSON-LD structure.
|
8148
|
+
* @param options The options to use.
|
8149
|
+
* - `format`: The format of the output: `compact` or
|
8150
|
+
`expand`.
|
8151
|
+
* - `contextLoader`: The loader for remote JSON-LD contexts.
|
8152
|
+
* - `context`: The JSON-LD context to use. Not applicable
|
8153
|
+
when `format` is set to `'expand'`.
|
8154
|
+
* @returns The JSON-LD representation of this object.
|
8155
|
+
*/
|
8156
|
+
async toJsonLd(options = {}) {
|
8157
|
+
if (options.format == null && this.#cachedJsonLd != null) {
|
8158
|
+
return this.#cachedJsonLd;
|
8159
|
+
}
|
8160
|
+
if (options.format !== "compact" && options.context != null) {
|
8161
|
+
throw new TypeError("The context option can only be used when the format option is set " +
|
8162
|
+
"to 'compact'.");
|
8163
|
+
}
|
8164
|
+
options = {
|
8165
|
+
...options,
|
8166
|
+
contextLoader: options.contextLoader ?? fetchDocumentLoader,
|
8167
|
+
};
|
8168
|
+
// deno-lint-ignore no-unused-vars prefer-const
|
8169
|
+
let array;
|
8170
|
+
const baseValues = await super.toJsonLd({
|
8171
|
+
...options,
|
8172
|
+
format: "expand",
|
8173
|
+
context: undefined,
|
8174
|
+
});
|
8175
|
+
const values = baseValues[0];
|
8176
|
+
values["@type"] = ["https://w3id.org/fep/9091#Export"];
|
8177
|
+
if (this.id != null)
|
8178
|
+
values["@id"] = this.id.href;
|
8179
|
+
if (options.format === "expand") {
|
8180
|
+
return await jsonld.expand(values, { documentLoader: options.contextLoader });
|
8181
|
+
}
|
8182
|
+
const docContext = options.context ??
|
8183
|
+
"https://www.w3.org/ns/did/v1";
|
8184
|
+
const compacted = await jsonld.compact(values, docContext, { documentLoader: options.contextLoader });
|
8185
|
+
if (docContext != null) {
|
8186
|
+
// Embed context
|
8187
|
+
}
|
8188
|
+
return compacted;
|
8189
|
+
}
|
8190
|
+
isCompactable() {
|
8191
|
+
return super.isCompactable();
|
8192
|
+
}
|
8193
|
+
/**
|
8194
|
+
* Converts a JSON-LD structure to an object of this type.
|
8195
|
+
* @param json The JSON-LD structure to convert.
|
8196
|
+
* @returns The object of this type.
|
8197
|
+
* @throws {TypeError} If the given `json` is invalid.
|
8198
|
+
*/
|
8199
|
+
static async fromJsonLd(json, options = {}) {
|
8200
|
+
if (typeof json === "undefined") {
|
8201
|
+
throw new TypeError("Invalid JSON-LD: undefined.");
|
8202
|
+
}
|
8203
|
+
else if (json === null)
|
8204
|
+
throw new TypeError("Invalid JSON-LD: null.");
|
8205
|
+
options = {
|
8206
|
+
...options,
|
8207
|
+
documentLoader: options.documentLoader ?? fetchDocumentLoader,
|
8208
|
+
contextLoader: options.contextLoader ?? fetchDocumentLoader,
|
8209
|
+
};
|
8210
|
+
// deno-lint-ignore no-explicit-any
|
8211
|
+
let values;
|
8212
|
+
if (globalThis.Object.keys(json).length == 0) {
|
8213
|
+
values = {};
|
8214
|
+
}
|
8215
|
+
else {
|
8216
|
+
const expanded = await jsonld.expand(json, {
|
8217
|
+
documentLoader: options.contextLoader,
|
8218
|
+
keepFreeFloatingNodes: true,
|
8219
|
+
});
|
8220
|
+
values =
|
8221
|
+
// deno-lint-ignore no-explicit-any
|
8222
|
+
(expanded[0] ?? {});
|
8223
|
+
}
|
8224
|
+
if ("@type" in values) {
|
8225
|
+
if (!values["@type"].includes("https://w3id.org/fep/9091#Export")) {
|
8226
|
+
throw new TypeError("Invalid type: " + values["@type"]);
|
8227
|
+
}
|
8228
|
+
}
|
8229
|
+
delete values["@type"];
|
8230
|
+
const instance = await super.fromJsonLd(values, {
|
8231
|
+
...options,
|
8232
|
+
// @ts-ignore: an internal option
|
8233
|
+
_fromSubclass: true,
|
8234
|
+
});
|
8235
|
+
if (!(instance instanceof Export)) {
|
8236
|
+
throw new TypeError("Unexpected type: " + instance.constructor.name);
|
8237
|
+
}
|
8238
|
+
if (!("_fromSubclass" in options) || !options._fromSubclass) {
|
8239
|
+
try {
|
8240
|
+
instance.#cachedJsonLd = structuredClone(json);
|
8241
|
+
}
|
8242
|
+
catch {
|
8243
|
+
getLogger(["fedify", "vocab"]).warn("Failed to cache JSON-LD: {json}", { json });
|
8244
|
+
}
|
8245
|
+
}
|
8246
|
+
return instance;
|
8247
|
+
}
|
8248
|
+
_getCustomInspectProxy() {
|
8249
|
+
const proxy = super._getCustomInspectProxy();
|
8250
|
+
return proxy;
|
8251
|
+
}
|
8252
|
+
[Symbol.for("Deno.customInspect")](inspect, options) {
|
8253
|
+
const proxy = this._getCustomInspectProxy();
|
8254
|
+
return "Export " + inspect(proxy, options);
|
8255
|
+
}
|
8256
|
+
[Symbol.for("nodejs.util.inspect.custom")](_depth, options, inspect) {
|
8257
|
+
const proxy = this._getCustomInspectProxy();
|
8258
|
+
return "Export " + inspect(proxy, options);
|
8259
|
+
}
|
8260
|
+
}
|
7847
8261
|
/** A proof that can be added to any activity or object, allowing recipients to
|
7848
8262
|
* verify the identity of the actor and the integrity of the data.
|
7849
8263
|
*/
|
@@ -9911,6 +10325,7 @@ export class Application extends Object {
|
|
9911
10325
|
#_79S8K4f5J9MWUgCxziRyUe6PTHZ_memorial = [];
|
9912
10326
|
#_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable = [];
|
9913
10327
|
#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = [];
|
10328
|
+
#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [];
|
9914
10329
|
#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat = [];
|
9915
10330
|
/**
|
9916
10331
|
* Constructs a new instance of Application with the given values.
|
@@ -10187,6 +10602,32 @@ export class Application extends Object {
|
|
10187
10602
|
"Application | Group | Organization | Person | Service | URL" + ".");
|
10188
10603
|
}
|
10189
10604
|
}
|
10605
|
+
if ("service" in values && values.service != null) {
|
10606
|
+
if (values.service instanceof DidService || values.service instanceof URL) {
|
10607
|
+
// @ts-ignore: type is checked above.
|
10608
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [values.service];
|
10609
|
+
}
|
10610
|
+
else {
|
10611
|
+
throw new TypeError("The service must be of type " +
|
10612
|
+
"DidService | URL" + ".");
|
10613
|
+
}
|
10614
|
+
}
|
10615
|
+
if ("services" in values && values.services != null) {
|
10616
|
+
if ("service" in values &&
|
10617
|
+
values.service != null) {
|
10618
|
+
throw new TypeError("Cannot initialize both service and " +
|
10619
|
+
"services at the same time.");
|
10620
|
+
}
|
10621
|
+
if (Array.isArray(values.services) &&
|
10622
|
+
values.services.every((v) => v instanceof DidService || v instanceof URL)) {
|
10623
|
+
// @ts-ignore: type is checked above.
|
10624
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = values.services;
|
10625
|
+
}
|
10626
|
+
else {
|
10627
|
+
throw new TypeError("The services must be an array of type " +
|
10628
|
+
"DidService | URL" + ".");
|
10629
|
+
}
|
10630
|
+
}
|
10190
10631
|
if ("cat" in values && values.cat != null) {
|
10191
10632
|
if (typeof values.cat === "boolean") {
|
10192
10633
|
// @ts-ignore: type is checked above.
|
@@ -10512,6 +10953,34 @@ export class Application extends Object {
|
|
10512
10953
|
"Application | Group | Organization | Person | Service | URL" + ".");
|
10513
10954
|
}
|
10514
10955
|
}
|
10956
|
+
clone.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service =
|
10957
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
10958
|
+
if ("service" in values && values.service != null) {
|
10959
|
+
if (values.service instanceof DidService || values.service instanceof URL) {
|
10960
|
+
// @ts-ignore: type is checked above.
|
10961
|
+
clone.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [values.service];
|
10962
|
+
}
|
10963
|
+
else {
|
10964
|
+
throw new TypeError("The service must be of type " +
|
10965
|
+
"DidService | URL" + ".");
|
10966
|
+
}
|
10967
|
+
}
|
10968
|
+
if ("services" in values && values.services != null) {
|
10969
|
+
if ("service" in values &&
|
10970
|
+
values.service != null) {
|
10971
|
+
throw new TypeError("Cannot update both service and " +
|
10972
|
+
"services at the same time.");
|
10973
|
+
}
|
10974
|
+
if (Array.isArray(values.services) &&
|
10975
|
+
values.services.every((v) => v instanceof DidService || v instanceof URL)) {
|
10976
|
+
// @ts-ignore: type is checked above.
|
10977
|
+
clone.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = values.services;
|
10978
|
+
}
|
10979
|
+
else {
|
10980
|
+
throw new TypeError("The services must be an array of type " +
|
10981
|
+
"DidService | URL" + ".");
|
10982
|
+
}
|
10983
|
+
}
|
10515
10984
|
clone.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat =
|
10516
10985
|
this.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat;
|
10517
10986
|
if ("cat" in values && values.cat != null) {
|
@@ -11365,6 +11834,92 @@ export class Application extends Object {
|
|
11365
11834
|
yield v;
|
11366
11835
|
}
|
11367
11836
|
}
|
11837
|
+
async #fetchService(url, options = {}) {
|
11838
|
+
const documentLoader = options.documentLoader ?? this._documentLoader ??
|
11839
|
+
fetchDocumentLoader;
|
11840
|
+
const contextLoader = options.contextLoader ?? this._contextLoader ??
|
11841
|
+
fetchDocumentLoader;
|
11842
|
+
let fetchResult;
|
11843
|
+
try {
|
11844
|
+
fetchResult = await documentLoader(url.href);
|
11845
|
+
}
|
11846
|
+
catch (error) {
|
11847
|
+
if (options.suppressError) {
|
11848
|
+
getLogger(["fedify", "vocab"]).error("Failed to fetch {url}: {error}", { error, url: url.href });
|
11849
|
+
return null;
|
11850
|
+
}
|
11851
|
+
throw error;
|
11852
|
+
}
|
11853
|
+
const { document } = fetchResult;
|
11854
|
+
try {
|
11855
|
+
return await DidService.fromJsonLd(document, { documentLoader, contextLoader });
|
11856
|
+
}
|
11857
|
+
catch (e) {
|
11858
|
+
if (!(e instanceof TypeError))
|
11859
|
+
throw e;
|
11860
|
+
}
|
11861
|
+
throw new TypeError("Expected an object of any type of: " +
|
11862
|
+
["https://www.w3.org/ns/did#Service"].join(", "));
|
11863
|
+
}
|
11864
|
+
/**
|
11865
|
+
* Similar to
|
11866
|
+
* {@link Application.getService},
|
11867
|
+
* but returns its `@id` URL instead of the object itself.
|
11868
|
+
*/
|
11869
|
+
get serviceId() {
|
11870
|
+
if (this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length < 1)
|
11871
|
+
return null;
|
11872
|
+
const v = this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0];
|
11873
|
+
if (v instanceof URL)
|
11874
|
+
return v;
|
11875
|
+
return v.id;
|
11876
|
+
}
|
11877
|
+
/** Means of communicating or interacting with the DID subject or associated
|
11878
|
+
* entities via one or more service endpoints. Examples include discovery
|
11879
|
+
* services, agent services, social networking services, file storage services,
|
11880
|
+
* and verifiable credential repository services.
|
11881
|
+
*/
|
11882
|
+
async getService(options = {}) {
|
11883
|
+
if (this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length < 1)
|
11884
|
+
return null;
|
11885
|
+
const v = this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0];
|
11886
|
+
if (v instanceof URL) {
|
11887
|
+
const fetched = await this.#fetchService(v, options);
|
11888
|
+
if (fetched == null)
|
11889
|
+
return null;
|
11890
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0] = fetched;
|
11891
|
+
return fetched;
|
11892
|
+
}
|
11893
|
+
return v;
|
11894
|
+
}
|
11895
|
+
/**
|
11896
|
+
* Similar to
|
11897
|
+
* {@link Application.getServices},
|
11898
|
+
* but returns their `@id`s instead of the objects themselves.
|
11899
|
+
*/
|
11900
|
+
get serviceIds() {
|
11901
|
+
return this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.map((v) => v instanceof URL ? v : v.id).filter((id) => id !== null);
|
11902
|
+
}
|
11903
|
+
/** Means of communicating or interacting with the DID subject or associated
|
11904
|
+
* entities via one or more service endpoints. Examples include discovery
|
11905
|
+
* services, agent services, social networking services, file storage services,
|
11906
|
+
* and verifiable credential repository services.
|
11907
|
+
*/
|
11908
|
+
async *getServices(options = {}) {
|
11909
|
+
const vs = this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
11910
|
+
for (let i = 0; i < vs.length; i++) {
|
11911
|
+
const v = vs[i];
|
11912
|
+
if (v instanceof URL) {
|
11913
|
+
const fetched = await this.#fetchService(v, options);
|
11914
|
+
if (fetched == null)
|
11915
|
+
continue;
|
11916
|
+
vs[i] = fetched;
|
11917
|
+
yield fetched;
|
11918
|
+
continue;
|
11919
|
+
}
|
11920
|
+
yield v;
|
11921
|
+
}
|
11922
|
+
}
|
11368
11923
|
/** Used on actors to indicate that they in some way identify as a cat,
|
11369
11924
|
* expressed as a boolean value. If this property is set to `true`,
|
11370
11925
|
* displaying the actor or their notes will have some special effects
|
@@ -11663,6 +12218,20 @@ export class Application extends Object {
|
|
11663
12218
|
: compactItems[0];
|
11664
12219
|
}
|
11665
12220
|
compactItems = [];
|
12221
|
+
for (const v of this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service) {
|
12222
|
+
const item = v instanceof URL ? v.href : await v.toJsonLd({
|
12223
|
+
...options,
|
12224
|
+
format: undefined,
|
12225
|
+
context: undefined,
|
12226
|
+
});
|
12227
|
+
compactItems.push(item);
|
12228
|
+
}
|
12229
|
+
if (compactItems.length > 0) {
|
12230
|
+
result["service"] = compactItems.length > 1
|
12231
|
+
? compactItems
|
12232
|
+
: compactItems[0];
|
12233
|
+
}
|
12234
|
+
compactItems = [];
|
11666
12235
|
for (const v of this.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat) {
|
11667
12236
|
const item = v;
|
11668
12237
|
compactItems.push(item);
|
@@ -11901,7 +12470,18 @@ export class Application extends Object {
|
|
11901
12470
|
}
|
11902
12471
|
if (array.length > 0) {
|
11903
12472
|
const propValue = array;
|
11904
|
-
values["https://www.w3.org/ns/activitystreams#alsoKnownAs"] = propValue;
|
12473
|
+
values["https://www.w3.org/ns/activitystreams#alsoKnownAs"] = propValue;
|
12474
|
+
}
|
12475
|
+
array = [];
|
12476
|
+
for (const v of this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service) {
|
12477
|
+
const element = v instanceof URL
|
12478
|
+
? { "@id": v.href }
|
12479
|
+
: await v.toJsonLd(options);
|
12480
|
+
array.push(element);
|
12481
|
+
}
|
12482
|
+
if (array.length > 0) {
|
12483
|
+
const propValue = array;
|
12484
|
+
values["https://www.w3.org/ns/did#service"] = propValue;
|
11905
12485
|
}
|
11906
12486
|
array = [];
|
11907
12487
|
for (const v of this.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat) {
|
@@ -11962,6 +12542,9 @@ export class Application extends Object {
|
|
11962
12542
|
if (this.#_3isuDgRAKSntq9XdbjiNxjwyPZAf_preferredUsername != null &&
|
11963
12543
|
this.#_3isuDgRAKSntq9XdbjiNxjwyPZAf_preferredUsername.length > 0)
|
11964
12544
|
return false;
|
12545
|
+
if (this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service != null &&
|
12546
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length > 0)
|
12547
|
+
return false;
|
11965
12548
|
return super.isCompactable();
|
11966
12549
|
}
|
11967
12550
|
/**
|
@@ -12351,6 +12934,25 @@ export class Application extends Object {
|
|
12351
12934
|
}
|
12352
12935
|
instance.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs =
|
12353
12936
|
_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs;
|
12937
|
+
const _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [];
|
12938
|
+
let _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array = values["https://www.w3.org/ns/did#service"];
|
12939
|
+
for (const v of _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array == null
|
12940
|
+
? []
|
12941
|
+
: _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array.length === 1 &&
|
12942
|
+
"@list" in _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array[0]
|
12943
|
+
? _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array[0]["@list"]
|
12944
|
+
: _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array) {
|
12945
|
+
if (v == null)
|
12946
|
+
continue;
|
12947
|
+
if (typeof v === "object" && "@id" in v && !("@type" in v) &&
|
12948
|
+
globalThis.Object.keys(v).length === 1) {
|
12949
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(new URL(v["@id"]));
|
12950
|
+
continue;
|
12951
|
+
}
|
12952
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(await DidService.fromJsonLd(v, options));
|
12953
|
+
}
|
12954
|
+
instance.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service =
|
12955
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
12354
12956
|
const _2xEU4QtkC53RAun67T81Egqt9vmL_isCat = [];
|
12355
12957
|
let _2xEU4QtkC53RAun67T81Egqt9vmL_isCat__array = values["https://misskey-hub.net/ns#isCat"];
|
12356
12958
|
for (const v of _2xEU4QtkC53RAun67T81Egqt9vmL_isCat__array == null
|
@@ -12618,6 +13220,23 @@ export class Application extends Object {
|
|
12618
13220
|
_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs.length > 0) {
|
12619
13221
|
proxy.aliases = _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs;
|
12620
13222
|
}
|
13223
|
+
const _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = this
|
13224
|
+
.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service
|
13225
|
+
// deno-lint-ignore no-explicit-any
|
13226
|
+
.map((v) => v instanceof URL
|
13227
|
+
? {
|
13228
|
+
[Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
|
13229
|
+
[Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
|
13230
|
+
}
|
13231
|
+
: v);
|
13232
|
+
if (_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length == 1) {
|
13233
|
+
proxy.service = _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0];
|
13234
|
+
}
|
13235
|
+
if (_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length > 1 ||
|
13236
|
+
!("service" in proxy) &&
|
13237
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length > 0) {
|
13238
|
+
proxy.services = _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
13239
|
+
}
|
12621
13240
|
const _2xEU4QtkC53RAun67T81Egqt9vmL_isCat = this
|
12622
13241
|
.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat
|
12623
13242
|
// deno-lint-ignore no-explicit-any
|
@@ -17316,6 +17935,7 @@ export class Group extends Object {
|
|
17316
17935
|
#_79S8K4f5J9MWUgCxziRyUe6PTHZ_memorial = [];
|
17317
17936
|
#_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable = [];
|
17318
17937
|
#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = [];
|
17938
|
+
#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [];
|
17319
17939
|
#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat = [];
|
17320
17940
|
/**
|
17321
17941
|
* Constructs a new instance of Group with the given values.
|
@@ -17592,6 +18212,32 @@ export class Group extends Object {
|
|
17592
18212
|
"Application | Group | Organization | Person | Service | URL" + ".");
|
17593
18213
|
}
|
17594
18214
|
}
|
18215
|
+
if ("service" in values && values.service != null) {
|
18216
|
+
if (values.service instanceof DidService || values.service instanceof URL) {
|
18217
|
+
// @ts-ignore: type is checked above.
|
18218
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [values.service];
|
18219
|
+
}
|
18220
|
+
else {
|
18221
|
+
throw new TypeError("The service must be of type " +
|
18222
|
+
"DidService | URL" + ".");
|
18223
|
+
}
|
18224
|
+
}
|
18225
|
+
if ("services" in values && values.services != null) {
|
18226
|
+
if ("service" in values &&
|
18227
|
+
values.service != null) {
|
18228
|
+
throw new TypeError("Cannot initialize both service and " +
|
18229
|
+
"services at the same time.");
|
18230
|
+
}
|
18231
|
+
if (Array.isArray(values.services) &&
|
18232
|
+
values.services.every((v) => v instanceof DidService || v instanceof URL)) {
|
18233
|
+
// @ts-ignore: type is checked above.
|
18234
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = values.services;
|
18235
|
+
}
|
18236
|
+
else {
|
18237
|
+
throw new TypeError("The services must be an array of type " +
|
18238
|
+
"DidService | URL" + ".");
|
18239
|
+
}
|
18240
|
+
}
|
17595
18241
|
if ("cat" in values && values.cat != null) {
|
17596
18242
|
if (typeof values.cat === "boolean") {
|
17597
18243
|
// @ts-ignore: type is checked above.
|
@@ -17917,6 +18563,34 @@ export class Group extends Object {
|
|
17917
18563
|
"Application | Group | Organization | Person | Service | URL" + ".");
|
17918
18564
|
}
|
17919
18565
|
}
|
18566
|
+
clone.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service =
|
18567
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
18568
|
+
if ("service" in values && values.service != null) {
|
18569
|
+
if (values.service instanceof DidService || values.service instanceof URL) {
|
18570
|
+
// @ts-ignore: type is checked above.
|
18571
|
+
clone.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [values.service];
|
18572
|
+
}
|
18573
|
+
else {
|
18574
|
+
throw new TypeError("The service must be of type " +
|
18575
|
+
"DidService | URL" + ".");
|
18576
|
+
}
|
18577
|
+
}
|
18578
|
+
if ("services" in values && values.services != null) {
|
18579
|
+
if ("service" in values &&
|
18580
|
+
values.service != null) {
|
18581
|
+
throw new TypeError("Cannot update both service and " +
|
18582
|
+
"services at the same time.");
|
18583
|
+
}
|
18584
|
+
if (Array.isArray(values.services) &&
|
18585
|
+
values.services.every((v) => v instanceof DidService || v instanceof URL)) {
|
18586
|
+
// @ts-ignore: type is checked above.
|
18587
|
+
clone.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = values.services;
|
18588
|
+
}
|
18589
|
+
else {
|
18590
|
+
throw new TypeError("The services must be an array of type " +
|
18591
|
+
"DidService | URL" + ".");
|
18592
|
+
}
|
18593
|
+
}
|
17920
18594
|
clone.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat =
|
17921
18595
|
this.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat;
|
17922
18596
|
if ("cat" in values && values.cat != null) {
|
@@ -18770,6 +19444,92 @@ export class Group extends Object {
|
|
18770
19444
|
yield v;
|
18771
19445
|
}
|
18772
19446
|
}
|
19447
|
+
async #fetchService(url, options = {}) {
|
19448
|
+
const documentLoader = options.documentLoader ?? this._documentLoader ??
|
19449
|
+
fetchDocumentLoader;
|
19450
|
+
const contextLoader = options.contextLoader ?? this._contextLoader ??
|
19451
|
+
fetchDocumentLoader;
|
19452
|
+
let fetchResult;
|
19453
|
+
try {
|
19454
|
+
fetchResult = await documentLoader(url.href);
|
19455
|
+
}
|
19456
|
+
catch (error) {
|
19457
|
+
if (options.suppressError) {
|
19458
|
+
getLogger(["fedify", "vocab"]).error("Failed to fetch {url}: {error}", { error, url: url.href });
|
19459
|
+
return null;
|
19460
|
+
}
|
19461
|
+
throw error;
|
19462
|
+
}
|
19463
|
+
const { document } = fetchResult;
|
19464
|
+
try {
|
19465
|
+
return await DidService.fromJsonLd(document, { documentLoader, contextLoader });
|
19466
|
+
}
|
19467
|
+
catch (e) {
|
19468
|
+
if (!(e instanceof TypeError))
|
19469
|
+
throw e;
|
19470
|
+
}
|
19471
|
+
throw new TypeError("Expected an object of any type of: " +
|
19472
|
+
["https://www.w3.org/ns/did#Service"].join(", "));
|
19473
|
+
}
|
19474
|
+
/**
|
19475
|
+
* Similar to
|
19476
|
+
* {@link Group.getService},
|
19477
|
+
* but returns its `@id` URL instead of the object itself.
|
19478
|
+
*/
|
19479
|
+
get serviceId() {
|
19480
|
+
if (this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length < 1)
|
19481
|
+
return null;
|
19482
|
+
const v = this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0];
|
19483
|
+
if (v instanceof URL)
|
19484
|
+
return v;
|
19485
|
+
return v.id;
|
19486
|
+
}
|
19487
|
+
/** Means of communicating or interacting with the DID subject or associated
|
19488
|
+
* entities via one or more service endpoints. Examples include discovery
|
19489
|
+
* services, agent services, social networking services, file storage services,
|
19490
|
+
* and verifiable credential repository services.
|
19491
|
+
*/
|
19492
|
+
async getService(options = {}) {
|
19493
|
+
if (this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length < 1)
|
19494
|
+
return null;
|
19495
|
+
const v = this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0];
|
19496
|
+
if (v instanceof URL) {
|
19497
|
+
const fetched = await this.#fetchService(v, options);
|
19498
|
+
if (fetched == null)
|
19499
|
+
return null;
|
19500
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0] = fetched;
|
19501
|
+
return fetched;
|
19502
|
+
}
|
19503
|
+
return v;
|
19504
|
+
}
|
19505
|
+
/**
|
19506
|
+
* Similar to
|
19507
|
+
* {@link Group.getServices},
|
19508
|
+
* but returns their `@id`s instead of the objects themselves.
|
19509
|
+
*/
|
19510
|
+
get serviceIds() {
|
19511
|
+
return this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.map((v) => v instanceof URL ? v : v.id).filter((id) => id !== null);
|
19512
|
+
}
|
19513
|
+
/** Means of communicating or interacting with the DID subject or associated
|
19514
|
+
* entities via one or more service endpoints. Examples include discovery
|
19515
|
+
* services, agent services, social networking services, file storage services,
|
19516
|
+
* and verifiable credential repository services.
|
19517
|
+
*/
|
19518
|
+
async *getServices(options = {}) {
|
19519
|
+
const vs = this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
19520
|
+
for (let i = 0; i < vs.length; i++) {
|
19521
|
+
const v = vs[i];
|
19522
|
+
if (v instanceof URL) {
|
19523
|
+
const fetched = await this.#fetchService(v, options);
|
19524
|
+
if (fetched == null)
|
19525
|
+
continue;
|
19526
|
+
vs[i] = fetched;
|
19527
|
+
yield fetched;
|
19528
|
+
continue;
|
19529
|
+
}
|
19530
|
+
yield v;
|
19531
|
+
}
|
19532
|
+
}
|
18773
19533
|
/** Used on actors to indicate that they in some way identify as a cat,
|
18774
19534
|
* expressed as a boolean value. If this property is set to `true`,
|
18775
19535
|
* displaying the actor or their notes will have some special effects
|
@@ -19068,6 +19828,20 @@ export class Group extends Object {
|
|
19068
19828
|
: compactItems[0];
|
19069
19829
|
}
|
19070
19830
|
compactItems = [];
|
19831
|
+
for (const v of this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service) {
|
19832
|
+
const item = v instanceof URL ? v.href : await v.toJsonLd({
|
19833
|
+
...options,
|
19834
|
+
format: undefined,
|
19835
|
+
context: undefined,
|
19836
|
+
});
|
19837
|
+
compactItems.push(item);
|
19838
|
+
}
|
19839
|
+
if (compactItems.length > 0) {
|
19840
|
+
result["service"] = compactItems.length > 1
|
19841
|
+
? compactItems
|
19842
|
+
: compactItems[0];
|
19843
|
+
}
|
19844
|
+
compactItems = [];
|
19071
19845
|
for (const v of this.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat) {
|
19072
19846
|
const item = v;
|
19073
19847
|
compactItems.push(item);
|
@@ -19309,6 +20083,17 @@ export class Group extends Object {
|
|
19309
20083
|
values["https://www.w3.org/ns/activitystreams#alsoKnownAs"] = propValue;
|
19310
20084
|
}
|
19311
20085
|
array = [];
|
20086
|
+
for (const v of this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service) {
|
20087
|
+
const element = v instanceof URL
|
20088
|
+
? { "@id": v.href }
|
20089
|
+
: await v.toJsonLd(options);
|
20090
|
+
array.push(element);
|
20091
|
+
}
|
20092
|
+
if (array.length > 0) {
|
20093
|
+
const propValue = array;
|
20094
|
+
values["https://www.w3.org/ns/did#service"] = propValue;
|
20095
|
+
}
|
20096
|
+
array = [];
|
19312
20097
|
for (const v of this.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat) {
|
19313
20098
|
const element = { "@value": v };
|
19314
20099
|
array.push(element);
|
@@ -19367,6 +20152,9 @@ export class Group extends Object {
|
|
19367
20152
|
if (this.#_3isuDgRAKSntq9XdbjiNxjwyPZAf_preferredUsername != null &&
|
19368
20153
|
this.#_3isuDgRAKSntq9XdbjiNxjwyPZAf_preferredUsername.length > 0)
|
19369
20154
|
return false;
|
20155
|
+
if (this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service != null &&
|
20156
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length > 0)
|
20157
|
+
return false;
|
19370
20158
|
return super.isCompactable();
|
19371
20159
|
}
|
19372
20160
|
/**
|
@@ -19756,6 +20544,25 @@ export class Group extends Object {
|
|
19756
20544
|
}
|
19757
20545
|
instance.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs =
|
19758
20546
|
_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs;
|
20547
|
+
const _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [];
|
20548
|
+
let _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array = values["https://www.w3.org/ns/did#service"];
|
20549
|
+
for (const v of _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array == null
|
20550
|
+
? []
|
20551
|
+
: _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array.length === 1 &&
|
20552
|
+
"@list" in _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array[0]
|
20553
|
+
? _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array[0]["@list"]
|
20554
|
+
: _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array) {
|
20555
|
+
if (v == null)
|
20556
|
+
continue;
|
20557
|
+
if (typeof v === "object" && "@id" in v && !("@type" in v) &&
|
20558
|
+
globalThis.Object.keys(v).length === 1) {
|
20559
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(new URL(v["@id"]));
|
20560
|
+
continue;
|
20561
|
+
}
|
20562
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(await DidService.fromJsonLd(v, options));
|
20563
|
+
}
|
20564
|
+
instance.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service =
|
20565
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
19759
20566
|
const _2xEU4QtkC53RAun67T81Egqt9vmL_isCat = [];
|
19760
20567
|
let _2xEU4QtkC53RAun67T81Egqt9vmL_isCat__array = values["https://misskey-hub.net/ns#isCat"];
|
19761
20568
|
for (const v of _2xEU4QtkC53RAun67T81Egqt9vmL_isCat__array == null
|
@@ -20023,6 +20830,23 @@ export class Group extends Object {
|
|
20023
20830
|
_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs.length > 0) {
|
20024
20831
|
proxy.aliases = _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs;
|
20025
20832
|
}
|
20833
|
+
const _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = this
|
20834
|
+
.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service
|
20835
|
+
// deno-lint-ignore no-explicit-any
|
20836
|
+
.map((v) => v instanceof URL
|
20837
|
+
? {
|
20838
|
+
[Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
|
20839
|
+
[Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
|
20840
|
+
}
|
20841
|
+
: v);
|
20842
|
+
if (_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length == 1) {
|
20843
|
+
proxy.service = _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0];
|
20844
|
+
}
|
20845
|
+
if (_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length > 1 ||
|
20846
|
+
!("service" in proxy) &&
|
20847
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length > 0) {
|
20848
|
+
proxy.services = _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
20849
|
+
}
|
20026
20850
|
const _2xEU4QtkC53RAun67T81Egqt9vmL_isCat = this
|
20027
20851
|
.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat
|
20028
20852
|
// deno-lint-ignore no-explicit-any
|
@@ -23949,6 +24773,7 @@ export class Organization extends Object {
|
|
23949
24773
|
#_79S8K4f5J9MWUgCxziRyUe6PTHZ_memorial = [];
|
23950
24774
|
#_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable = [];
|
23951
24775
|
#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = [];
|
24776
|
+
#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [];
|
23952
24777
|
#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat = [];
|
23953
24778
|
/**
|
23954
24779
|
* Constructs a new instance of Organization with the given values.
|
@@ -24225,6 +25050,32 @@ export class Organization extends Object {
|
|
24225
25050
|
"Application | Group | Organization | Person | Service | URL" + ".");
|
24226
25051
|
}
|
24227
25052
|
}
|
25053
|
+
if ("service" in values && values.service != null) {
|
25054
|
+
if (values.service instanceof DidService || values.service instanceof URL) {
|
25055
|
+
// @ts-ignore: type is checked above.
|
25056
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [values.service];
|
25057
|
+
}
|
25058
|
+
else {
|
25059
|
+
throw new TypeError("The service must be of type " +
|
25060
|
+
"DidService | URL" + ".");
|
25061
|
+
}
|
25062
|
+
}
|
25063
|
+
if ("services" in values && values.services != null) {
|
25064
|
+
if ("service" in values &&
|
25065
|
+
values.service != null) {
|
25066
|
+
throw new TypeError("Cannot initialize both service and " +
|
25067
|
+
"services at the same time.");
|
25068
|
+
}
|
25069
|
+
if (Array.isArray(values.services) &&
|
25070
|
+
values.services.every((v) => v instanceof DidService || v instanceof URL)) {
|
25071
|
+
// @ts-ignore: type is checked above.
|
25072
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = values.services;
|
25073
|
+
}
|
25074
|
+
else {
|
25075
|
+
throw new TypeError("The services must be an array of type " +
|
25076
|
+
"DidService | URL" + ".");
|
25077
|
+
}
|
25078
|
+
}
|
24228
25079
|
if ("cat" in values && values.cat != null) {
|
24229
25080
|
if (typeof values.cat === "boolean") {
|
24230
25081
|
// @ts-ignore: type is checked above.
|
@@ -24550,6 +25401,34 @@ export class Organization extends Object {
|
|
24550
25401
|
"Application | Group | Organization | Person | Service | URL" + ".");
|
24551
25402
|
}
|
24552
25403
|
}
|
25404
|
+
clone.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service =
|
25405
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
25406
|
+
if ("service" in values && values.service != null) {
|
25407
|
+
if (values.service instanceof DidService || values.service instanceof URL) {
|
25408
|
+
// @ts-ignore: type is checked above.
|
25409
|
+
clone.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [values.service];
|
25410
|
+
}
|
25411
|
+
else {
|
25412
|
+
throw new TypeError("The service must be of type " +
|
25413
|
+
"DidService | URL" + ".");
|
25414
|
+
}
|
25415
|
+
}
|
25416
|
+
if ("services" in values && values.services != null) {
|
25417
|
+
if ("service" in values &&
|
25418
|
+
values.service != null) {
|
25419
|
+
throw new TypeError("Cannot update both service and " +
|
25420
|
+
"services at the same time.");
|
25421
|
+
}
|
25422
|
+
if (Array.isArray(values.services) &&
|
25423
|
+
values.services.every((v) => v instanceof DidService || v instanceof URL)) {
|
25424
|
+
// @ts-ignore: type is checked above.
|
25425
|
+
clone.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = values.services;
|
25426
|
+
}
|
25427
|
+
else {
|
25428
|
+
throw new TypeError("The services must be an array of type " +
|
25429
|
+
"DidService | URL" + ".");
|
25430
|
+
}
|
25431
|
+
}
|
24553
25432
|
clone.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat =
|
24554
25433
|
this.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat;
|
24555
25434
|
if ("cat" in values && values.cat != null) {
|
@@ -25403,6 +26282,92 @@ export class Organization extends Object {
|
|
25403
26282
|
yield v;
|
25404
26283
|
}
|
25405
26284
|
}
|
26285
|
+
async #fetchService(url, options = {}) {
|
26286
|
+
const documentLoader = options.documentLoader ?? this._documentLoader ??
|
26287
|
+
fetchDocumentLoader;
|
26288
|
+
const contextLoader = options.contextLoader ?? this._contextLoader ??
|
26289
|
+
fetchDocumentLoader;
|
26290
|
+
let fetchResult;
|
26291
|
+
try {
|
26292
|
+
fetchResult = await documentLoader(url.href);
|
26293
|
+
}
|
26294
|
+
catch (error) {
|
26295
|
+
if (options.suppressError) {
|
26296
|
+
getLogger(["fedify", "vocab"]).error("Failed to fetch {url}: {error}", { error, url: url.href });
|
26297
|
+
return null;
|
26298
|
+
}
|
26299
|
+
throw error;
|
26300
|
+
}
|
26301
|
+
const { document } = fetchResult;
|
26302
|
+
try {
|
26303
|
+
return await DidService.fromJsonLd(document, { documentLoader, contextLoader });
|
26304
|
+
}
|
26305
|
+
catch (e) {
|
26306
|
+
if (!(e instanceof TypeError))
|
26307
|
+
throw e;
|
26308
|
+
}
|
26309
|
+
throw new TypeError("Expected an object of any type of: " +
|
26310
|
+
["https://www.w3.org/ns/did#Service"].join(", "));
|
26311
|
+
}
|
26312
|
+
/**
|
26313
|
+
* Similar to
|
26314
|
+
* {@link Organization.getService},
|
26315
|
+
* but returns its `@id` URL instead of the object itself.
|
26316
|
+
*/
|
26317
|
+
get serviceId() {
|
26318
|
+
if (this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length < 1)
|
26319
|
+
return null;
|
26320
|
+
const v = this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0];
|
26321
|
+
if (v instanceof URL)
|
26322
|
+
return v;
|
26323
|
+
return v.id;
|
26324
|
+
}
|
26325
|
+
/** Means of communicating or interacting with the DID subject or associated
|
26326
|
+
* entities via one or more service endpoints. Examples include discovery
|
26327
|
+
* services, agent services, social networking services, file storage services,
|
26328
|
+
* and verifiable credential repository services.
|
26329
|
+
*/
|
26330
|
+
async getService(options = {}) {
|
26331
|
+
if (this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length < 1)
|
26332
|
+
return null;
|
26333
|
+
const v = this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0];
|
26334
|
+
if (v instanceof URL) {
|
26335
|
+
const fetched = await this.#fetchService(v, options);
|
26336
|
+
if (fetched == null)
|
26337
|
+
return null;
|
26338
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0] = fetched;
|
26339
|
+
return fetched;
|
26340
|
+
}
|
26341
|
+
return v;
|
26342
|
+
}
|
26343
|
+
/**
|
26344
|
+
* Similar to
|
26345
|
+
* {@link Organization.getServices},
|
26346
|
+
* but returns their `@id`s instead of the objects themselves.
|
26347
|
+
*/
|
26348
|
+
get serviceIds() {
|
26349
|
+
return this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.map((v) => v instanceof URL ? v : v.id).filter((id) => id !== null);
|
26350
|
+
}
|
26351
|
+
/** Means of communicating or interacting with the DID subject or associated
|
26352
|
+
* entities via one or more service endpoints. Examples include discovery
|
26353
|
+
* services, agent services, social networking services, file storage services,
|
26354
|
+
* and verifiable credential repository services.
|
26355
|
+
*/
|
26356
|
+
async *getServices(options = {}) {
|
26357
|
+
const vs = this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
26358
|
+
for (let i = 0; i < vs.length; i++) {
|
26359
|
+
const v = vs[i];
|
26360
|
+
if (v instanceof URL) {
|
26361
|
+
const fetched = await this.#fetchService(v, options);
|
26362
|
+
if (fetched == null)
|
26363
|
+
continue;
|
26364
|
+
vs[i] = fetched;
|
26365
|
+
yield fetched;
|
26366
|
+
continue;
|
26367
|
+
}
|
26368
|
+
yield v;
|
26369
|
+
}
|
26370
|
+
}
|
25406
26371
|
/** Used on actors to indicate that they in some way identify as a cat,
|
25407
26372
|
* expressed as a boolean value. If this property is set to `true`,
|
25408
26373
|
* displaying the actor or their notes will have some special effects
|
@@ -25701,6 +26666,20 @@ export class Organization extends Object {
|
|
25701
26666
|
: compactItems[0];
|
25702
26667
|
}
|
25703
26668
|
compactItems = [];
|
26669
|
+
for (const v of this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service) {
|
26670
|
+
const item = v instanceof URL ? v.href : await v.toJsonLd({
|
26671
|
+
...options,
|
26672
|
+
format: undefined,
|
26673
|
+
context: undefined,
|
26674
|
+
});
|
26675
|
+
compactItems.push(item);
|
26676
|
+
}
|
26677
|
+
if (compactItems.length > 0) {
|
26678
|
+
result["service"] = compactItems.length > 1
|
26679
|
+
? compactItems
|
26680
|
+
: compactItems[0];
|
26681
|
+
}
|
26682
|
+
compactItems = [];
|
25704
26683
|
for (const v of this.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat) {
|
25705
26684
|
const item = v;
|
25706
26685
|
compactItems.push(item);
|
@@ -25942,6 +26921,17 @@ export class Organization extends Object {
|
|
25942
26921
|
values["https://www.w3.org/ns/activitystreams#alsoKnownAs"] = propValue;
|
25943
26922
|
}
|
25944
26923
|
array = [];
|
26924
|
+
for (const v of this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service) {
|
26925
|
+
const element = v instanceof URL
|
26926
|
+
? { "@id": v.href }
|
26927
|
+
: await v.toJsonLd(options);
|
26928
|
+
array.push(element);
|
26929
|
+
}
|
26930
|
+
if (array.length > 0) {
|
26931
|
+
const propValue = array;
|
26932
|
+
values["https://www.w3.org/ns/did#service"] = propValue;
|
26933
|
+
}
|
26934
|
+
array = [];
|
25945
26935
|
for (const v of this.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat) {
|
25946
26936
|
const element = { "@value": v };
|
25947
26937
|
array.push(element);
|
@@ -26000,6 +26990,9 @@ export class Organization extends Object {
|
|
26000
26990
|
if (this.#_3isuDgRAKSntq9XdbjiNxjwyPZAf_preferredUsername != null &&
|
26001
26991
|
this.#_3isuDgRAKSntq9XdbjiNxjwyPZAf_preferredUsername.length > 0)
|
26002
26992
|
return false;
|
26993
|
+
if (this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service != null &&
|
26994
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length > 0)
|
26995
|
+
return false;
|
26003
26996
|
return super.isCompactable();
|
26004
26997
|
}
|
26005
26998
|
/**
|
@@ -26385,10 +27378,29 @@ export class Organization extends Object {
|
|
26385
27378
|
: undefined;
|
26386
27379
|
if (typeof decoded === "undefined")
|
26387
27380
|
continue;
|
26388
|
-
_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs.push(decoded);
|
27381
|
+
_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs.push(decoded);
|
27382
|
+
}
|
27383
|
+
instance.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs =
|
27384
|
+
_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs;
|
27385
|
+
const _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [];
|
27386
|
+
let _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array = values["https://www.w3.org/ns/did#service"];
|
27387
|
+
for (const v of _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array == null
|
27388
|
+
? []
|
27389
|
+
: _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array.length === 1 &&
|
27390
|
+
"@list" in _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array[0]
|
27391
|
+
? _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array[0]["@list"]
|
27392
|
+
: _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array) {
|
27393
|
+
if (v == null)
|
27394
|
+
continue;
|
27395
|
+
if (typeof v === "object" && "@id" in v && !("@type" in v) &&
|
27396
|
+
globalThis.Object.keys(v).length === 1) {
|
27397
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(new URL(v["@id"]));
|
27398
|
+
continue;
|
27399
|
+
}
|
27400
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(await DidService.fromJsonLd(v, options));
|
26389
27401
|
}
|
26390
|
-
instance.#
|
26391
|
-
|
27402
|
+
instance.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service =
|
27403
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
26392
27404
|
const _2xEU4QtkC53RAun67T81Egqt9vmL_isCat = [];
|
26393
27405
|
let _2xEU4QtkC53RAun67T81Egqt9vmL_isCat__array = values["https://misskey-hub.net/ns#isCat"];
|
26394
27406
|
for (const v of _2xEU4QtkC53RAun67T81Egqt9vmL_isCat__array == null
|
@@ -26656,6 +27668,23 @@ export class Organization extends Object {
|
|
26656
27668
|
_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs.length > 0) {
|
26657
27669
|
proxy.aliases = _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs;
|
26658
27670
|
}
|
27671
|
+
const _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = this
|
27672
|
+
.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service
|
27673
|
+
// deno-lint-ignore no-explicit-any
|
27674
|
+
.map((v) => v instanceof URL
|
27675
|
+
? {
|
27676
|
+
[Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
|
27677
|
+
[Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
|
27678
|
+
}
|
27679
|
+
: v);
|
27680
|
+
if (_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length == 1) {
|
27681
|
+
proxy.service = _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0];
|
27682
|
+
}
|
27683
|
+
if (_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length > 1 ||
|
27684
|
+
!("service" in proxy) &&
|
27685
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length > 0) {
|
27686
|
+
proxy.services = _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
27687
|
+
}
|
26659
27688
|
const _2xEU4QtkC53RAun67T81Egqt9vmL_isCat = this
|
26660
27689
|
.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat
|
26661
27690
|
// deno-lint-ignore no-explicit-any
|
@@ -26882,6 +27911,7 @@ export class Person extends Object {
|
|
26882
27911
|
#_79S8K4f5J9MWUgCxziRyUe6PTHZ_memorial = [];
|
26883
27912
|
#_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable = [];
|
26884
27913
|
#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = [];
|
27914
|
+
#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [];
|
26885
27915
|
#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat = [];
|
26886
27916
|
/**
|
26887
27917
|
* Constructs a new instance of Person with the given values.
|
@@ -27158,6 +28188,32 @@ export class Person extends Object {
|
|
27158
28188
|
"Application | Group | Organization | Person | Service | URL" + ".");
|
27159
28189
|
}
|
27160
28190
|
}
|
28191
|
+
if ("service" in values && values.service != null) {
|
28192
|
+
if (values.service instanceof DidService || values.service instanceof URL) {
|
28193
|
+
// @ts-ignore: type is checked above.
|
28194
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [values.service];
|
28195
|
+
}
|
28196
|
+
else {
|
28197
|
+
throw new TypeError("The service must be of type " +
|
28198
|
+
"DidService | URL" + ".");
|
28199
|
+
}
|
28200
|
+
}
|
28201
|
+
if ("services" in values && values.services != null) {
|
28202
|
+
if ("service" in values &&
|
28203
|
+
values.service != null) {
|
28204
|
+
throw new TypeError("Cannot initialize both service and " +
|
28205
|
+
"services at the same time.");
|
28206
|
+
}
|
28207
|
+
if (Array.isArray(values.services) &&
|
28208
|
+
values.services.every((v) => v instanceof DidService || v instanceof URL)) {
|
28209
|
+
// @ts-ignore: type is checked above.
|
28210
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = values.services;
|
28211
|
+
}
|
28212
|
+
else {
|
28213
|
+
throw new TypeError("The services must be an array of type " +
|
28214
|
+
"DidService | URL" + ".");
|
28215
|
+
}
|
28216
|
+
}
|
27161
28217
|
if ("cat" in values && values.cat != null) {
|
27162
28218
|
if (typeof values.cat === "boolean") {
|
27163
28219
|
// @ts-ignore: type is checked above.
|
@@ -27483,6 +28539,34 @@ export class Person extends Object {
|
|
27483
28539
|
"Application | Group | Organization | Person | Service | URL" + ".");
|
27484
28540
|
}
|
27485
28541
|
}
|
28542
|
+
clone.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service =
|
28543
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
28544
|
+
if ("service" in values && values.service != null) {
|
28545
|
+
if (values.service instanceof DidService || values.service instanceof URL) {
|
28546
|
+
// @ts-ignore: type is checked above.
|
28547
|
+
clone.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [values.service];
|
28548
|
+
}
|
28549
|
+
else {
|
28550
|
+
throw new TypeError("The service must be of type " +
|
28551
|
+
"DidService | URL" + ".");
|
28552
|
+
}
|
28553
|
+
}
|
28554
|
+
if ("services" in values && values.services != null) {
|
28555
|
+
if ("service" in values &&
|
28556
|
+
values.service != null) {
|
28557
|
+
throw new TypeError("Cannot update both service and " +
|
28558
|
+
"services at the same time.");
|
28559
|
+
}
|
28560
|
+
if (Array.isArray(values.services) &&
|
28561
|
+
values.services.every((v) => v instanceof DidService || v instanceof URL)) {
|
28562
|
+
// @ts-ignore: type is checked above.
|
28563
|
+
clone.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = values.services;
|
28564
|
+
}
|
28565
|
+
else {
|
28566
|
+
throw new TypeError("The services must be an array of type " +
|
28567
|
+
"DidService | URL" + ".");
|
28568
|
+
}
|
28569
|
+
}
|
27486
28570
|
clone.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat =
|
27487
28571
|
this.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat;
|
27488
28572
|
if ("cat" in values && values.cat != null) {
|
@@ -28336,6 +29420,92 @@ export class Person extends Object {
|
|
28336
29420
|
yield v;
|
28337
29421
|
}
|
28338
29422
|
}
|
29423
|
+
async #fetchService(url, options = {}) {
|
29424
|
+
const documentLoader = options.documentLoader ?? this._documentLoader ??
|
29425
|
+
fetchDocumentLoader;
|
29426
|
+
const contextLoader = options.contextLoader ?? this._contextLoader ??
|
29427
|
+
fetchDocumentLoader;
|
29428
|
+
let fetchResult;
|
29429
|
+
try {
|
29430
|
+
fetchResult = await documentLoader(url.href);
|
29431
|
+
}
|
29432
|
+
catch (error) {
|
29433
|
+
if (options.suppressError) {
|
29434
|
+
getLogger(["fedify", "vocab"]).error("Failed to fetch {url}: {error}", { error, url: url.href });
|
29435
|
+
return null;
|
29436
|
+
}
|
29437
|
+
throw error;
|
29438
|
+
}
|
29439
|
+
const { document } = fetchResult;
|
29440
|
+
try {
|
29441
|
+
return await DidService.fromJsonLd(document, { documentLoader, contextLoader });
|
29442
|
+
}
|
29443
|
+
catch (e) {
|
29444
|
+
if (!(e instanceof TypeError))
|
29445
|
+
throw e;
|
29446
|
+
}
|
29447
|
+
throw new TypeError("Expected an object of any type of: " +
|
29448
|
+
["https://www.w3.org/ns/did#Service"].join(", "));
|
29449
|
+
}
|
29450
|
+
/**
|
29451
|
+
* Similar to
|
29452
|
+
* {@link Person.getService},
|
29453
|
+
* but returns its `@id` URL instead of the object itself.
|
29454
|
+
*/
|
29455
|
+
get serviceId() {
|
29456
|
+
if (this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length < 1)
|
29457
|
+
return null;
|
29458
|
+
const v = this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0];
|
29459
|
+
if (v instanceof URL)
|
29460
|
+
return v;
|
29461
|
+
return v.id;
|
29462
|
+
}
|
29463
|
+
/** Means of communicating or interacting with the DID subject or associated
|
29464
|
+
* entities via one or more service endpoints. Examples include discovery
|
29465
|
+
* services, agent services, social networking services, file storage services,
|
29466
|
+
* and verifiable credential repository services.
|
29467
|
+
*/
|
29468
|
+
async getService(options = {}) {
|
29469
|
+
if (this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length < 1)
|
29470
|
+
return null;
|
29471
|
+
const v = this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0];
|
29472
|
+
if (v instanceof URL) {
|
29473
|
+
const fetched = await this.#fetchService(v, options);
|
29474
|
+
if (fetched == null)
|
29475
|
+
return null;
|
29476
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0] = fetched;
|
29477
|
+
return fetched;
|
29478
|
+
}
|
29479
|
+
return v;
|
29480
|
+
}
|
29481
|
+
/**
|
29482
|
+
* Similar to
|
29483
|
+
* {@link Person.getServices},
|
29484
|
+
* but returns their `@id`s instead of the objects themselves.
|
29485
|
+
*/
|
29486
|
+
get serviceIds() {
|
29487
|
+
return this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.map((v) => v instanceof URL ? v : v.id).filter((id) => id !== null);
|
29488
|
+
}
|
29489
|
+
/** Means of communicating or interacting with the DID subject or associated
|
29490
|
+
* entities via one or more service endpoints. Examples include discovery
|
29491
|
+
* services, agent services, social networking services, file storage services,
|
29492
|
+
* and verifiable credential repository services.
|
29493
|
+
*/
|
29494
|
+
async *getServices(options = {}) {
|
29495
|
+
const vs = this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
29496
|
+
for (let i = 0; i < vs.length; i++) {
|
29497
|
+
const v = vs[i];
|
29498
|
+
if (v instanceof URL) {
|
29499
|
+
const fetched = await this.#fetchService(v, options);
|
29500
|
+
if (fetched == null)
|
29501
|
+
continue;
|
29502
|
+
vs[i] = fetched;
|
29503
|
+
yield fetched;
|
29504
|
+
continue;
|
29505
|
+
}
|
29506
|
+
yield v;
|
29507
|
+
}
|
29508
|
+
}
|
28339
29509
|
/** Used on actors to indicate that they in some way identify as a cat,
|
28340
29510
|
* expressed as a boolean value. If this property is set to `true`,
|
28341
29511
|
* displaying the actor or their notes will have some special effects
|
@@ -28634,6 +29804,20 @@ export class Person extends Object {
|
|
28634
29804
|
: compactItems[0];
|
28635
29805
|
}
|
28636
29806
|
compactItems = [];
|
29807
|
+
for (const v of this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service) {
|
29808
|
+
const item = v instanceof URL ? v.href : await v.toJsonLd({
|
29809
|
+
...options,
|
29810
|
+
format: undefined,
|
29811
|
+
context: undefined,
|
29812
|
+
});
|
29813
|
+
compactItems.push(item);
|
29814
|
+
}
|
29815
|
+
if (compactItems.length > 0) {
|
29816
|
+
result["service"] = compactItems.length > 1
|
29817
|
+
? compactItems
|
29818
|
+
: compactItems[0];
|
29819
|
+
}
|
29820
|
+
compactItems = [];
|
28637
29821
|
for (const v of this.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat) {
|
28638
29822
|
const item = v;
|
28639
29823
|
compactItems.push(item);
|
@@ -28875,6 +30059,17 @@ export class Person extends Object {
|
|
28875
30059
|
values["https://www.w3.org/ns/activitystreams#alsoKnownAs"] = propValue;
|
28876
30060
|
}
|
28877
30061
|
array = [];
|
30062
|
+
for (const v of this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service) {
|
30063
|
+
const element = v instanceof URL
|
30064
|
+
? { "@id": v.href }
|
30065
|
+
: await v.toJsonLd(options);
|
30066
|
+
array.push(element);
|
30067
|
+
}
|
30068
|
+
if (array.length > 0) {
|
30069
|
+
const propValue = array;
|
30070
|
+
values["https://www.w3.org/ns/did#service"] = propValue;
|
30071
|
+
}
|
30072
|
+
array = [];
|
28878
30073
|
for (const v of this.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat) {
|
28879
30074
|
const element = { "@value": v };
|
28880
30075
|
array.push(element);
|
@@ -28933,6 +30128,9 @@ export class Person extends Object {
|
|
28933
30128
|
if (this.#_3isuDgRAKSntq9XdbjiNxjwyPZAf_preferredUsername != null &&
|
28934
30129
|
this.#_3isuDgRAKSntq9XdbjiNxjwyPZAf_preferredUsername.length > 0)
|
28935
30130
|
return false;
|
30131
|
+
if (this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service != null &&
|
30132
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length > 0)
|
30133
|
+
return false;
|
28936
30134
|
return super.isCompactable();
|
28937
30135
|
}
|
28938
30136
|
/**
|
@@ -29322,6 +30520,25 @@ export class Person extends Object {
|
|
29322
30520
|
}
|
29323
30521
|
instance.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs =
|
29324
30522
|
_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs;
|
30523
|
+
const _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [];
|
30524
|
+
let _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array = values["https://www.w3.org/ns/did#service"];
|
30525
|
+
for (const v of _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array == null
|
30526
|
+
? []
|
30527
|
+
: _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array.length === 1 &&
|
30528
|
+
"@list" in _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array[0]
|
30529
|
+
? _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array[0]["@list"]
|
30530
|
+
: _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array) {
|
30531
|
+
if (v == null)
|
30532
|
+
continue;
|
30533
|
+
if (typeof v === "object" && "@id" in v && !("@type" in v) &&
|
30534
|
+
globalThis.Object.keys(v).length === 1) {
|
30535
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(new URL(v["@id"]));
|
30536
|
+
continue;
|
30537
|
+
}
|
30538
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(await DidService.fromJsonLd(v, options));
|
30539
|
+
}
|
30540
|
+
instance.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service =
|
30541
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
29325
30542
|
const _2xEU4QtkC53RAun67T81Egqt9vmL_isCat = [];
|
29326
30543
|
let _2xEU4QtkC53RAun67T81Egqt9vmL_isCat__array = values["https://misskey-hub.net/ns#isCat"];
|
29327
30544
|
for (const v of _2xEU4QtkC53RAun67T81Egqt9vmL_isCat__array == null
|
@@ -29589,6 +30806,23 @@ export class Person extends Object {
|
|
29589
30806
|
_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs.length > 0) {
|
29590
30807
|
proxy.aliases = _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs;
|
29591
30808
|
}
|
30809
|
+
const _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = this
|
30810
|
+
.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service
|
30811
|
+
// deno-lint-ignore no-explicit-any
|
30812
|
+
.map((v) => v instanceof URL
|
30813
|
+
? {
|
30814
|
+
[Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
|
30815
|
+
[Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
|
30816
|
+
}
|
30817
|
+
: v);
|
30818
|
+
if (_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length == 1) {
|
30819
|
+
proxy.service = _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0];
|
30820
|
+
}
|
30821
|
+
if (_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length > 1 ||
|
30822
|
+
!("service" in proxy) &&
|
30823
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length > 0) {
|
30824
|
+
proxy.services = _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
30825
|
+
}
|
29592
30826
|
const _2xEU4QtkC53RAun67T81Egqt9vmL_isCat = this
|
29593
30827
|
.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat
|
29594
30828
|
// deno-lint-ignore no-explicit-any
|
@@ -32491,6 +33725,7 @@ export class Service extends Object {
|
|
32491
33725
|
#_79S8K4f5J9MWUgCxziRyUe6PTHZ_memorial = [];
|
32492
33726
|
#_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable = [];
|
32493
33727
|
#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = [];
|
33728
|
+
#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [];
|
32494
33729
|
#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat = [];
|
32495
33730
|
/**
|
32496
33731
|
* Constructs a new instance of Service with the given values.
|
@@ -32767,6 +34002,32 @@ export class Service extends Object {
|
|
32767
34002
|
"Application | Group | Organization | Person | Service | URL" + ".");
|
32768
34003
|
}
|
32769
34004
|
}
|
34005
|
+
if ("service" in values && values.service != null) {
|
34006
|
+
if (values.service instanceof DidService || values.service instanceof URL) {
|
34007
|
+
// @ts-ignore: type is checked above.
|
34008
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [values.service];
|
34009
|
+
}
|
34010
|
+
else {
|
34011
|
+
throw new TypeError("The service must be of type " +
|
34012
|
+
"DidService | URL" + ".");
|
34013
|
+
}
|
34014
|
+
}
|
34015
|
+
if ("services" in values && values.services != null) {
|
34016
|
+
if ("service" in values &&
|
34017
|
+
values.service != null) {
|
34018
|
+
throw new TypeError("Cannot initialize both service and " +
|
34019
|
+
"services at the same time.");
|
34020
|
+
}
|
34021
|
+
if (Array.isArray(values.services) &&
|
34022
|
+
values.services.every((v) => v instanceof DidService || v instanceof URL)) {
|
34023
|
+
// @ts-ignore: type is checked above.
|
34024
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = values.services;
|
34025
|
+
}
|
34026
|
+
else {
|
34027
|
+
throw new TypeError("The services must be an array of type " +
|
34028
|
+
"DidService | URL" + ".");
|
34029
|
+
}
|
34030
|
+
}
|
32770
34031
|
if ("cat" in values && values.cat != null) {
|
32771
34032
|
if (typeof values.cat === "boolean") {
|
32772
34033
|
// @ts-ignore: type is checked above.
|
@@ -33092,6 +34353,34 @@ export class Service extends Object {
|
|
33092
34353
|
"Application | Group | Organization | Person | Service | URL" + ".");
|
33093
34354
|
}
|
33094
34355
|
}
|
34356
|
+
clone.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service =
|
34357
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
34358
|
+
if ("service" in values && values.service != null) {
|
34359
|
+
if (values.service instanceof DidService || values.service instanceof URL) {
|
34360
|
+
// @ts-ignore: type is checked above.
|
34361
|
+
clone.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [values.service];
|
34362
|
+
}
|
34363
|
+
else {
|
34364
|
+
throw new TypeError("The service must be of type " +
|
34365
|
+
"DidService | URL" + ".");
|
34366
|
+
}
|
34367
|
+
}
|
34368
|
+
if ("services" in values && values.services != null) {
|
34369
|
+
if ("service" in values &&
|
34370
|
+
values.service != null) {
|
34371
|
+
throw new TypeError("Cannot update both service and " +
|
34372
|
+
"services at the same time.");
|
34373
|
+
}
|
34374
|
+
if (Array.isArray(values.services) &&
|
34375
|
+
values.services.every((v) => v instanceof DidService || v instanceof URL)) {
|
34376
|
+
// @ts-ignore: type is checked above.
|
34377
|
+
clone.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = values.services;
|
34378
|
+
}
|
34379
|
+
else {
|
34380
|
+
throw new TypeError("The services must be an array of type " +
|
34381
|
+
"DidService | URL" + ".");
|
34382
|
+
}
|
34383
|
+
}
|
33095
34384
|
clone.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat =
|
33096
34385
|
this.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat;
|
33097
34386
|
if ("cat" in values && values.cat != null) {
|
@@ -33945,6 +35234,92 @@ export class Service extends Object {
|
|
33945
35234
|
yield v;
|
33946
35235
|
}
|
33947
35236
|
}
|
35237
|
+
async #fetchService(url, options = {}) {
|
35238
|
+
const documentLoader = options.documentLoader ?? this._documentLoader ??
|
35239
|
+
fetchDocumentLoader;
|
35240
|
+
const contextLoader = options.contextLoader ?? this._contextLoader ??
|
35241
|
+
fetchDocumentLoader;
|
35242
|
+
let fetchResult;
|
35243
|
+
try {
|
35244
|
+
fetchResult = await documentLoader(url.href);
|
35245
|
+
}
|
35246
|
+
catch (error) {
|
35247
|
+
if (options.suppressError) {
|
35248
|
+
getLogger(["fedify", "vocab"]).error("Failed to fetch {url}: {error}", { error, url: url.href });
|
35249
|
+
return null;
|
35250
|
+
}
|
35251
|
+
throw error;
|
35252
|
+
}
|
35253
|
+
const { document } = fetchResult;
|
35254
|
+
try {
|
35255
|
+
return await DidService.fromJsonLd(document, { documentLoader, contextLoader });
|
35256
|
+
}
|
35257
|
+
catch (e) {
|
35258
|
+
if (!(e instanceof TypeError))
|
35259
|
+
throw e;
|
35260
|
+
}
|
35261
|
+
throw new TypeError("Expected an object of any type of: " +
|
35262
|
+
["https://www.w3.org/ns/did#Service"].join(", "));
|
35263
|
+
}
|
35264
|
+
/**
|
35265
|
+
* Similar to
|
35266
|
+
* {@link Service.getService},
|
35267
|
+
* but returns its `@id` URL instead of the object itself.
|
35268
|
+
*/
|
35269
|
+
get serviceId() {
|
35270
|
+
if (this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length < 1)
|
35271
|
+
return null;
|
35272
|
+
const v = this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0];
|
35273
|
+
if (v instanceof URL)
|
35274
|
+
return v;
|
35275
|
+
return v.id;
|
35276
|
+
}
|
35277
|
+
/** Means of communicating or interacting with the DID subject or associated
|
35278
|
+
* entities via one or more service endpoints. Examples include discovery
|
35279
|
+
* services, agent services, social networking services, file storage services,
|
35280
|
+
* and verifiable credential repository services.
|
35281
|
+
*/
|
35282
|
+
async getService(options = {}) {
|
35283
|
+
if (this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length < 1)
|
35284
|
+
return null;
|
35285
|
+
const v = this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0];
|
35286
|
+
if (v instanceof URL) {
|
35287
|
+
const fetched = await this.#fetchService(v, options);
|
35288
|
+
if (fetched == null)
|
35289
|
+
return null;
|
35290
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0] = fetched;
|
35291
|
+
return fetched;
|
35292
|
+
}
|
35293
|
+
return v;
|
35294
|
+
}
|
35295
|
+
/**
|
35296
|
+
* Similar to
|
35297
|
+
* {@link Service.getServices},
|
35298
|
+
* but returns their `@id`s instead of the objects themselves.
|
35299
|
+
*/
|
35300
|
+
get serviceIds() {
|
35301
|
+
return this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.map((v) => v instanceof URL ? v : v.id).filter((id) => id !== null);
|
35302
|
+
}
|
35303
|
+
/** Means of communicating or interacting with the DID subject or associated
|
35304
|
+
* entities via one or more service endpoints. Examples include discovery
|
35305
|
+
* services, agent services, social networking services, file storage services,
|
35306
|
+
* and verifiable credential repository services.
|
35307
|
+
*/
|
35308
|
+
async *getServices(options = {}) {
|
35309
|
+
const vs = this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
35310
|
+
for (let i = 0; i < vs.length; i++) {
|
35311
|
+
const v = vs[i];
|
35312
|
+
if (v instanceof URL) {
|
35313
|
+
const fetched = await this.#fetchService(v, options);
|
35314
|
+
if (fetched == null)
|
35315
|
+
continue;
|
35316
|
+
vs[i] = fetched;
|
35317
|
+
yield fetched;
|
35318
|
+
continue;
|
35319
|
+
}
|
35320
|
+
yield v;
|
35321
|
+
}
|
35322
|
+
}
|
33948
35323
|
/** Used on actors to indicate that they in some way identify as a cat,
|
33949
35324
|
* expressed as a boolean value. If this property is set to `true`,
|
33950
35325
|
* displaying the actor or their notes will have some special effects
|
@@ -34243,6 +35618,20 @@ export class Service extends Object {
|
|
34243
35618
|
: compactItems[0];
|
34244
35619
|
}
|
34245
35620
|
compactItems = [];
|
35621
|
+
for (const v of this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service) {
|
35622
|
+
const item = v instanceof URL ? v.href : await v.toJsonLd({
|
35623
|
+
...options,
|
35624
|
+
format: undefined,
|
35625
|
+
context: undefined,
|
35626
|
+
});
|
35627
|
+
compactItems.push(item);
|
35628
|
+
}
|
35629
|
+
if (compactItems.length > 0) {
|
35630
|
+
result["service"] = compactItems.length > 1
|
35631
|
+
? compactItems
|
35632
|
+
: compactItems[0];
|
35633
|
+
}
|
35634
|
+
compactItems = [];
|
34246
35635
|
for (const v of this.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat) {
|
34247
35636
|
const item = v;
|
34248
35637
|
compactItems.push(item);
|
@@ -34484,6 +35873,17 @@ export class Service extends Object {
|
|
34484
35873
|
values["https://www.w3.org/ns/activitystreams#alsoKnownAs"] = propValue;
|
34485
35874
|
}
|
34486
35875
|
array = [];
|
35876
|
+
for (const v of this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service) {
|
35877
|
+
const element = v instanceof URL
|
35878
|
+
? { "@id": v.href }
|
35879
|
+
: await v.toJsonLd(options);
|
35880
|
+
array.push(element);
|
35881
|
+
}
|
35882
|
+
if (array.length > 0) {
|
35883
|
+
const propValue = array;
|
35884
|
+
values["https://www.w3.org/ns/did#service"] = propValue;
|
35885
|
+
}
|
35886
|
+
array = [];
|
34487
35887
|
for (const v of this.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat) {
|
34488
35888
|
const element = { "@value": v };
|
34489
35889
|
array.push(element);
|
@@ -34542,6 +35942,9 @@ export class Service extends Object {
|
|
34542
35942
|
if (this.#_3isuDgRAKSntq9XdbjiNxjwyPZAf_preferredUsername != null &&
|
34543
35943
|
this.#_3isuDgRAKSntq9XdbjiNxjwyPZAf_preferredUsername.length > 0)
|
34544
35944
|
return false;
|
35945
|
+
if (this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service != null &&
|
35946
|
+
this.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length > 0)
|
35947
|
+
return false;
|
34545
35948
|
return super.isCompactable();
|
34546
35949
|
}
|
34547
35950
|
/**
|
@@ -34931,6 +36334,25 @@ export class Service extends Object {
|
|
34931
36334
|
}
|
34932
36335
|
instance.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs =
|
34933
36336
|
_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs;
|
36337
|
+
const _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [];
|
36338
|
+
let _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array = values["https://www.w3.org/ns/did#service"];
|
36339
|
+
for (const v of _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array == null
|
36340
|
+
? []
|
36341
|
+
: _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array.length === 1 &&
|
36342
|
+
"@list" in _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array[0]
|
36343
|
+
? _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array[0]["@list"]
|
36344
|
+
: _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service__array) {
|
36345
|
+
if (v == null)
|
36346
|
+
continue;
|
36347
|
+
if (typeof v === "object" && "@id" in v && !("@type" in v) &&
|
36348
|
+
globalThis.Object.keys(v).length === 1) {
|
36349
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(new URL(v["@id"]));
|
36350
|
+
continue;
|
36351
|
+
}
|
36352
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(await DidService.fromJsonLd(v, options));
|
36353
|
+
}
|
36354
|
+
instance.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service =
|
36355
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
34934
36356
|
const _2xEU4QtkC53RAun67T81Egqt9vmL_isCat = [];
|
34935
36357
|
let _2xEU4QtkC53RAun67T81Egqt9vmL_isCat__array = values["https://misskey-hub.net/ns#isCat"];
|
34936
36358
|
for (const v of _2xEU4QtkC53RAun67T81Egqt9vmL_isCat__array == null
|
@@ -35198,6 +36620,23 @@ export class Service extends Object {
|
|
35198
36620
|
_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs.length > 0) {
|
35199
36621
|
proxy.aliases = _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs;
|
35200
36622
|
}
|
36623
|
+
const _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = this
|
36624
|
+
.#_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service
|
36625
|
+
// deno-lint-ignore no-explicit-any
|
36626
|
+
.map((v) => v instanceof URL
|
36627
|
+
? {
|
36628
|
+
[Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
|
36629
|
+
[Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
|
36630
|
+
}
|
36631
|
+
: v);
|
36632
|
+
if (_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length == 1) {
|
36633
|
+
proxy.service = _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service[0];
|
36634
|
+
}
|
36635
|
+
if (_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length > 1 ||
|
36636
|
+
!("service" in proxy) &&
|
36637
|
+
_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.length > 0) {
|
36638
|
+
proxy.services = _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service;
|
36639
|
+
}
|
35201
36640
|
const _2xEU4QtkC53RAun67T81Egqt9vmL_isCat = this
|
35202
36641
|
.#_2xEU4QtkC53RAun67T81Egqt9vmL_isCat
|
35203
36642
|
// deno-lint-ignore no-explicit-any
|