@fedify/fedify 0.14.0-dev.338 → 0.14.0-dev.339

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,4 @@
1
- var _a, _b, _c;
1
+ var _a, _b, _c, _d, _e, _f, _g, _h;
2
2
  // deno-lint-ignore-file ban-unused-ignore prefer-const
3
3
  import * as dntShim from "../_dnt.shims.js";
4
4
  // @ts-ignore TS7016
@@ -9684,6 +9684,7 @@ export class Application extends Object {
9684
9684
  #_2kGKkJtoFWg8c18PaVSqj9NKP4t7 = [];
9685
9685
  #_79S8K4f5J9MWUgCxziRyUe6PTHZ = [];
9686
9686
  #_2diCorzqPGQQqftp6e4SrCEwEnyk = [];
9687
+ #_3NV7TGNhuABbryNjNi4wib4DgNpY = [];
9687
9688
  /**
9688
9689
  * Constructs a new instance of Application with the given values.
9689
9690
  * @param values The values to initialize the instance with.
@@ -9918,6 +9919,37 @@ export class Application extends Object {
9918
9919
  "boolean" + ".");
9919
9920
  }
9920
9921
  }
9922
+ if ("alias" in values && values.alias != null) {
9923
+ if (values.alias instanceof _b || values.alias instanceof Group ||
9924
+ values.alias instanceof Organization ||
9925
+ values.alias instanceof Person || values.alias instanceof Service ||
9926
+ values.alias instanceof URL) {
9927
+ // @ts-ignore: type is checked above.
9928
+ this.#_3NV7TGNhuABbryNjNi4wib4DgNpY = [values.alias];
9929
+ }
9930
+ else {
9931
+ throw new TypeError("The alias must be of type " +
9932
+ "Application | Group | Organization | Person | Service | URL" + ".");
9933
+ }
9934
+ }
9935
+ if ("aliases" in values && values.aliases != null) {
9936
+ if ("alias" in values &&
9937
+ values.alias != null) {
9938
+ throw new TypeError("Cannot initialize both alias and " +
9939
+ "aliases at the same time.");
9940
+ }
9941
+ if (Array.isArray(values.aliases) &&
9942
+ values.aliases.every((v) => v instanceof _b || v instanceof Group ||
9943
+ v instanceof Organization || v instanceof Person ||
9944
+ v instanceof Service || v instanceof URL)) {
9945
+ // @ts-ignore: type is checked above.
9946
+ this.#_3NV7TGNhuABbryNjNi4wib4DgNpY = values.aliases;
9947
+ }
9948
+ else {
9949
+ throw new TypeError("The aliases must be an array of type " +
9950
+ "Application | Group | Organization | Person | Service | URL" + ".");
9951
+ }
9952
+ }
9921
9953
  }
9922
9954
  /**
9923
9955
  * Clones this instance, optionally updating it with the given values.
@@ -10173,6 +10205,38 @@ export class Application extends Object {
10173
10205
  "boolean" + ".");
10174
10206
  }
10175
10207
  }
10208
+ clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY;
10209
+ if ("alias" in values && values.alias != null) {
10210
+ if (values.alias instanceof _b || values.alias instanceof Group ||
10211
+ values.alias instanceof Organization ||
10212
+ values.alias instanceof Person || values.alias instanceof Service ||
10213
+ values.alias instanceof URL) {
10214
+ // @ts-ignore: type is checked above.
10215
+ clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY = [values.alias];
10216
+ }
10217
+ else {
10218
+ throw new TypeError("The alias must be of type " +
10219
+ "Application | Group | Organization | Person | Service | URL" + ".");
10220
+ }
10221
+ }
10222
+ if ("aliases" in values && values.aliases != null) {
10223
+ if ("alias" in values &&
10224
+ values.alias != null) {
10225
+ throw new TypeError("Cannot update both alias and " +
10226
+ "aliases at the same time.");
10227
+ }
10228
+ if (Array.isArray(values.aliases) &&
10229
+ values.aliases.every((v) => v instanceof _b || v instanceof Group ||
10230
+ v instanceof Organization || v instanceof Person ||
10231
+ v instanceof Service || v instanceof URL)) {
10232
+ // @ts-ignore: type is checked above.
10233
+ clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY = values.aliases;
10234
+ }
10235
+ else {
10236
+ throw new TypeError("The aliases must be an array of type " +
10237
+ "Application | Group | Organization | Person | Service | URL" + ".");
10238
+ }
10239
+ }
10176
10240
  return clone;
10177
10241
  }
10178
10242
  /** A short username which may be used to refer to the actor,
@@ -10889,6 +10953,126 @@ export class Application extends Object {
10889
10953
  return null;
10890
10954
  return this.#_2diCorzqPGQQqftp6e4SrCEwEnyk[0];
10891
10955
  }
10956
+ async #fetchAlias(url, options = {}) {
10957
+ const documentLoader = options.documentLoader ?? this._documentLoader ??
10958
+ fetchDocumentLoader;
10959
+ const contextLoader = options.contextLoader ?? this._contextLoader ??
10960
+ fetchDocumentLoader;
10961
+ let fetchResult;
10962
+ try {
10963
+ fetchResult = await documentLoader(url.href);
10964
+ }
10965
+ catch (error) {
10966
+ if (options.suppressError) {
10967
+ getLogger(["fedify", "vocab"]).error("Failed to fetch {url}: {error}", { error, url: url.href });
10968
+ return null;
10969
+ }
10970
+ throw error;
10971
+ }
10972
+ const { document } = fetchResult;
10973
+ try {
10974
+ return await _b.fromJsonLd(document, { documentLoader, contextLoader });
10975
+ }
10976
+ catch (e) {
10977
+ if (!(e instanceof TypeError))
10978
+ throw e;
10979
+ }
10980
+ try {
10981
+ return await Group.fromJsonLd(document, { documentLoader, contextLoader });
10982
+ }
10983
+ catch (e) {
10984
+ if (!(e instanceof TypeError))
10985
+ throw e;
10986
+ }
10987
+ try {
10988
+ return await Organization.fromJsonLd(document, { documentLoader, contextLoader });
10989
+ }
10990
+ catch (e) {
10991
+ if (!(e instanceof TypeError))
10992
+ throw e;
10993
+ }
10994
+ try {
10995
+ return await Person.fromJsonLd(document, { documentLoader, contextLoader });
10996
+ }
10997
+ catch (e) {
10998
+ if (!(e instanceof TypeError))
10999
+ throw e;
11000
+ }
11001
+ try {
11002
+ return await Service.fromJsonLd(document, { documentLoader, contextLoader });
11003
+ }
11004
+ catch (e) {
11005
+ if (!(e instanceof TypeError))
11006
+ throw e;
11007
+ }
11008
+ throw new TypeError("Expected an object of any type of: " +
11009
+ [
11010
+ "https://www.w3.org/ns/activitystreams#Application",
11011
+ "https://www.w3.org/ns/activitystreams#Group",
11012
+ "https://www.w3.org/ns/activitystreams#Organization",
11013
+ "https://www.w3.org/ns/activitystreams#Person",
11014
+ "https://www.w3.org/ns/activitystreams#Service",
11015
+ ].join(", "));
11016
+ }
11017
+ /**
11018
+ * Similar to
11019
+ * {@link Application.getAlias},
11020
+ * but returns its `@id` URL instead of the object itself.
11021
+ */
11022
+ get aliasId() {
11023
+ if (this.#_3NV7TGNhuABbryNjNi4wib4DgNpY.length < 1)
11024
+ return null;
11025
+ const v = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY[0];
11026
+ if (v instanceof URL)
11027
+ return v;
11028
+ return v.id;
11029
+ }
11030
+ /** The `aliases` (`alsoKnownAs`) property is used to specify alternative names
11031
+ * or aliases for an entity. It can be used to provide additional identifiers
11032
+ * or labels for an entity, which can be useful in scenarios where an entity
11033
+ * may have multiple names or aliases.
11034
+ */
11035
+ async getAlias(options = {}) {
11036
+ if (this.#_3NV7TGNhuABbryNjNi4wib4DgNpY.length < 1)
11037
+ return null;
11038
+ const v = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY[0];
11039
+ if (v instanceof URL) {
11040
+ const fetched = await this.#fetchAlias(v, options);
11041
+ if (fetched == null)
11042
+ return null;
11043
+ this.#_3NV7TGNhuABbryNjNi4wib4DgNpY[0] = fetched;
11044
+ return fetched;
11045
+ }
11046
+ return v;
11047
+ }
11048
+ /**
11049
+ * Similar to
11050
+ * {@link Application.getAliases},
11051
+ * but returns their `@id`s instead of the objects themselves.
11052
+ */
11053
+ get aliasIds() {
11054
+ return this.#_3NV7TGNhuABbryNjNi4wib4DgNpY.map((v) => v instanceof URL ? v : v.id).filter((id) => id !== null);
11055
+ }
11056
+ /** The `aliases` (`alsoKnownAs`) property is used to specify alternative names
11057
+ * or aliases for an entity. It can be used to provide additional identifiers
11058
+ * or labels for an entity, which can be useful in scenarios where an entity
11059
+ * may have multiple names or aliases.
11060
+ */
11061
+ async *getAliases(options = {}) {
11062
+ const vs = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY;
11063
+ for (let i = 0; i < vs.length; i++) {
11064
+ const v = vs[i];
11065
+ if (v instanceof URL) {
11066
+ const fetched = await this.#fetchAlias(v, options);
11067
+ if (fetched == null)
11068
+ continue;
11069
+ vs[i] = fetched;
11070
+ yield fetched;
11071
+ continue;
11072
+ }
11073
+ yield v;
11074
+ }
11075
+ }
10892
11076
  /**
10893
11077
  * Converts this object to a JSON-LD structure.
10894
11078
  * @param options The options to use.
@@ -11163,6 +11347,47 @@ export class Application extends Object {
11163
11347
  else if (compactItems.length === 1) {
11164
11348
  result["indexable"] = compactItems[0];
11165
11349
  }
11350
+ compactItems = [];
11351
+ for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY) {
11352
+ const item = v instanceof URL
11353
+ ? v.href
11354
+ : v instanceof _b
11355
+ ? await v.toJsonLd({
11356
+ ...options,
11357
+ format: undefined,
11358
+ context: undefined,
11359
+ })
11360
+ : v instanceof Group
11361
+ ? await v.toJsonLd({
11362
+ ...options,
11363
+ format: undefined,
11364
+ context: undefined,
11365
+ })
11366
+ : v instanceof Organization
11367
+ ? await v.toJsonLd({
11368
+ ...options,
11369
+ format: undefined,
11370
+ context: undefined,
11371
+ })
11372
+ : v instanceof Person
11373
+ ? await v.toJsonLd({
11374
+ ...options,
11375
+ format: undefined,
11376
+ context: undefined,
11377
+ })
11378
+ : await v.toJsonLd({
11379
+ ...options,
11380
+ format: undefined,
11381
+ context: undefined,
11382
+ });
11383
+ compactItems.push(item);
11384
+ }
11385
+ if (compactItems.length > 1) {
11386
+ result["alsoKnownAs"] = compactItems;
11387
+ }
11388
+ else if (compactItems.length === 1) {
11389
+ result["alsoKnownAs"] = compactItems[0];
11390
+ }
11166
11391
  result["type"] = "Application";
11167
11392
  if (this.id != null)
11168
11393
  result["id"] = this.id.href;
@@ -11355,6 +11580,24 @@ export class Application extends Object {
11355
11580
  if (array.length > 0) {
11356
11581
  values["http://joinmastodon.org/ns#indexable"] = array;
11357
11582
  }
11583
+ array = [];
11584
+ for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY) {
11585
+ const element = v instanceof URL
11586
+ ? { "@id": v.href }
11587
+ : v instanceof _b
11588
+ ? await v.toJsonLd(options)
11589
+ : v instanceof Group
11590
+ ? await v.toJsonLd(options)
11591
+ : v instanceof Organization
11592
+ ? await v.toJsonLd(options)
11593
+ : v instanceof Person
11594
+ ? await v.toJsonLd(options)
11595
+ : await v.toJsonLd(options);
11596
+ array.push(element);
11597
+ }
11598
+ if (array.length > 0) {
11599
+ values["https://www.w3.org/ns/activitystreams#alsoKnownAs"] = array;
11600
+ }
11358
11601
  values["@type"] = ["https://www.w3.org/ns/activitystreams#Application"];
11359
11602
  if (this.id != null)
11360
11603
  values["@id"] = this.id.href;
@@ -11441,7 +11684,7 @@ export class Application extends Object {
11441
11684
  // @ts-ignore: an internal option
11442
11685
  _fromSubclass: true,
11443
11686
  });
11444
- if (!(instance instanceof Application)) {
11687
+ if (!(instance instanceof _b)) {
11445
11688
  throw new TypeError("Unexpected type: " + instance.constructor.name);
11446
11689
  }
11447
11690
  const _3isuDgRAKSntq9XdbjiNxjwyPZAf = [];
@@ -11725,6 +11968,47 @@ export class Application extends Object {
11725
11968
  _2diCorzqPGQQqftp6e4SrCEwEnyk.push(v["@value"]);
11726
11969
  }
11727
11970
  instance.#_2diCorzqPGQQqftp6e4SrCEwEnyk = _2diCorzqPGQQqftp6e4SrCEwEnyk;
11971
+ const _3NV7TGNhuABbryNjNi4wib4DgNpY = [];
11972
+ const _3NV7TGNhuABbryNjNi4wib4DgNpY__array = values["https://www.w3.org/ns/activitystreams#alsoKnownAs"];
11973
+ for (const v of _3NV7TGNhuABbryNjNi4wib4DgNpY__array == null
11974
+ ? []
11975
+ : _3NV7TGNhuABbryNjNi4wib4DgNpY__array.length === 1 &&
11976
+ "@list" in _3NV7TGNhuABbryNjNi4wib4DgNpY__array[0]
11977
+ ? _3NV7TGNhuABbryNjNi4wib4DgNpY__array[0]["@list"]
11978
+ : _3NV7TGNhuABbryNjNi4wib4DgNpY__array) {
11979
+ if (v == null)
11980
+ continue;
11981
+ if (typeof v === "object" && "@id" in v && !("@type" in v) &&
11982
+ globalThis.Object.keys(v).length === 1) {
11983
+ _3NV7TGNhuABbryNjNi4wib4DgNpY.push(new URL(v["@id"]));
11984
+ continue;
11985
+ }
11986
+ const decoded = typeof v === "object" && "@type" in v &&
11987
+ Array.isArray(v["@type"]) &&
11988
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Application")
11989
+ ? await _b.fromJsonLd(v, options)
11990
+ : typeof v === "object" && "@type" in v &&
11991
+ Array.isArray(v["@type"]) &&
11992
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Group")
11993
+ ? await Group.fromJsonLd(v, options)
11994
+ : typeof v === "object" && "@type" in v &&
11995
+ Array.isArray(v["@type"]) &&
11996
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Organization")
11997
+ ? await Organization.fromJsonLd(v, options)
11998
+ : typeof v === "object" && "@type" in v &&
11999
+ Array.isArray(v["@type"]) &&
12000
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Person")
12001
+ ? await Person.fromJsonLd(v, options)
12002
+ : typeof v === "object" && "@type" in v &&
12003
+ Array.isArray(v["@type"]) &&
12004
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Service")
12005
+ ? await Service.fromJsonLd(v, options)
12006
+ : undefined;
12007
+ if (typeof decoded === "undefined")
12008
+ continue;
12009
+ _3NV7TGNhuABbryNjNi4wib4DgNpY.push(decoded);
12010
+ }
12011
+ instance.#_3NV7TGNhuABbryNjNi4wib4DgNpY = _3NV7TGNhuABbryNjNi4wib4DgNpY;
11728
12012
  if (!("_fromSubclass" in options) || !options._fromSubclass) {
11729
12013
  try {
11730
12014
  instance.#cachedJsonLd = structuredClone(json);
@@ -11941,6 +12225,22 @@ export class Application extends Object {
11941
12225
  if (_2diCorzqPGQQqftp6e4SrCEwEnyk.length == 1) {
11942
12226
  proxy.indexable = _2diCorzqPGQQqftp6e4SrCEwEnyk[0];
11943
12227
  }
12228
+ const _3NV7TGNhuABbryNjNi4wib4DgNpY = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY
12229
+ // deno-lint-ignore no-explicit-any
12230
+ .map((v) => v instanceof URL
12231
+ ? {
12232
+ [Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
12233
+ [Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
12234
+ }
12235
+ : v);
12236
+ if (_3NV7TGNhuABbryNjNi4wib4DgNpY.length == 1) {
12237
+ proxy.alias = _3NV7TGNhuABbryNjNi4wib4DgNpY[0];
12238
+ }
12239
+ if (_3NV7TGNhuABbryNjNi4wib4DgNpY.length > 1 ||
12240
+ !("alias" in proxy) &&
12241
+ _3NV7TGNhuABbryNjNi4wib4DgNpY.length > 0) {
12242
+ proxy.aliases = _3NV7TGNhuABbryNjNi4wib4DgNpY;
12243
+ }
11944
12244
  return proxy;
11945
12245
  }
11946
12246
  [Symbol.for("Deno.customInspect")](inspect, options) {
@@ -11952,6 +12252,7 @@ export class Application extends Object {
11952
12252
  return "Application " + inspect(proxy, options);
11953
12253
  }
11954
12254
  }
12255
+ _b = Application;
11955
12256
  /** Instances of `IntransitiveActivity` are a subtype of {@link Activity}
11956
12257
  * representing intransitive actions. The `object` property is therefore
11957
12258
  * inappropriate for these activities.
@@ -14327,7 +14628,7 @@ export class CollectionPage extends Collection {
14327
14628
  }
14328
14629
  }
14329
14630
  if ("next" in values && values.next != null) {
14330
- if (values.next instanceof _b || values.next instanceof URL) {
14631
+ if (values.next instanceof _c || values.next instanceof URL) {
14331
14632
  // @ts-ignore: type is checked above.
14332
14633
  this.#_3BT4kQLcXhHx7TAWaNDKh8nFn9eY = [values.next];
14333
14634
  }
@@ -14337,7 +14638,7 @@ export class CollectionPage extends Collection {
14337
14638
  }
14338
14639
  }
14339
14640
  if ("prev" in values && values.prev != null) {
14340
- if (values.prev instanceof _b || values.prev instanceof URL) {
14641
+ if (values.prev instanceof _c || values.prev instanceof URL) {
14341
14642
  // @ts-ignore: type is checked above.
14342
14643
  this.#_3b8yG8tDNzQFFEnWhCc13G8eHooA = [values.prev];
14343
14644
  }
@@ -14368,7 +14669,7 @@ export class CollectionPage extends Collection {
14368
14669
  }
14369
14670
  clone.#_3BT4kQLcXhHx7TAWaNDKh8nFn9eY = this.#_3BT4kQLcXhHx7TAWaNDKh8nFn9eY;
14370
14671
  if ("next" in values && values.next != null) {
14371
- if (values.next instanceof _b || values.next instanceof URL) {
14672
+ if (values.next instanceof _c || values.next instanceof URL) {
14372
14673
  // @ts-ignore: type is checked above.
14373
14674
  clone.#_3BT4kQLcXhHx7TAWaNDKh8nFn9eY = [values.next];
14374
14675
  }
@@ -14379,7 +14680,7 @@ export class CollectionPage extends Collection {
14379
14680
  }
14380
14681
  clone.#_3b8yG8tDNzQFFEnWhCc13G8eHooA = this.#_3b8yG8tDNzQFFEnWhCc13G8eHooA;
14381
14682
  if ("prev" in values && values.prev != null) {
14382
- if (values.prev instanceof _b || values.prev instanceof URL) {
14683
+ if (values.prev instanceof _c || values.prev instanceof URL) {
14383
14684
  // @ts-ignore: type is checked above.
14384
14685
  clone.#_3b8yG8tDNzQFFEnWhCc13G8eHooA = [values.prev];
14385
14686
  }
@@ -14464,7 +14765,7 @@ export class CollectionPage extends Collection {
14464
14765
  }
14465
14766
  const { document } = fetchResult;
14466
14767
  try {
14467
- return await _b.fromJsonLd(document, { documentLoader, contextLoader });
14768
+ return await _c.fromJsonLd(document, { documentLoader, contextLoader });
14468
14769
  }
14469
14770
  catch (e) {
14470
14771
  if (!(e instanceof TypeError))
@@ -14519,7 +14820,7 @@ export class CollectionPage extends Collection {
14519
14820
  }
14520
14821
  const { document } = fetchResult;
14521
14822
  try {
14522
- return await _b.fromJsonLd(document, { documentLoader, contextLoader });
14823
+ return await _c.fromJsonLd(document, { documentLoader, contextLoader });
14523
14824
  }
14524
14825
  catch (e) {
14525
14826
  if (!(e instanceof TypeError))
@@ -14771,7 +15072,7 @@ export class CollectionPage extends Collection {
14771
15072
  // @ts-ignore: an internal option
14772
15073
  _fromSubclass: true,
14773
15074
  });
14774
- if (!(instance instanceof _b)) {
15075
+ if (!(instance instanceof _c)) {
14775
15076
  throw new TypeError("Unexpected type: " + instance.constructor.name);
14776
15077
  }
14777
15078
  const _2kWgBhQKjEauxx8C6qF3ZQamK4Le = [];
@@ -14807,7 +15108,7 @@ export class CollectionPage extends Collection {
14807
15108
  _3BT4kQLcXhHx7TAWaNDKh8nFn9eY.push(new URL(v["@id"]));
14808
15109
  continue;
14809
15110
  }
14810
- _3BT4kQLcXhHx7TAWaNDKh8nFn9eY.push(await _b.fromJsonLd(v, options));
15111
+ _3BT4kQLcXhHx7TAWaNDKh8nFn9eY.push(await _c.fromJsonLd(v, options));
14811
15112
  }
14812
15113
  instance.#_3BT4kQLcXhHx7TAWaNDKh8nFn9eY = _3BT4kQLcXhHx7TAWaNDKh8nFn9eY;
14813
15114
  const _3b8yG8tDNzQFFEnWhCc13G8eHooA = [];
@@ -14825,7 +15126,7 @@ export class CollectionPage extends Collection {
14825
15126
  _3b8yG8tDNzQFFEnWhCc13G8eHooA.push(new URL(v["@id"]));
14826
15127
  continue;
14827
15128
  }
14828
- _3b8yG8tDNzQFFEnWhCc13G8eHooA.push(await _b.fromJsonLd(v, options));
15129
+ _3b8yG8tDNzQFFEnWhCc13G8eHooA.push(await _c.fromJsonLd(v, options));
14829
15130
  }
14830
15131
  instance.#_3b8yG8tDNzQFFEnWhCc13G8eHooA = _3b8yG8tDNzQFFEnWhCc13G8eHooA;
14831
15132
  if (!("_fromSubclass" in options) || !options._fromSubclass) {
@@ -14884,7 +15185,7 @@ export class CollectionPage extends Collection {
14884
15185
  return "CollectionPage " + inspect(proxy, options);
14885
15186
  }
14886
15187
  }
14887
- _b = CollectionPage;
15188
+ _c = CollectionPage;
14888
15189
  /** Indicates that the `actor` has created the `object`.
14889
15190
  */
14890
15191
  export class Create extends Activity {
@@ -16654,6 +16955,7 @@ export class Group extends Object {
16654
16955
  #_2kGKkJtoFWg8c18PaVSqj9NKP4t7 = [];
16655
16956
  #_79S8K4f5J9MWUgCxziRyUe6PTHZ = [];
16656
16957
  #_2diCorzqPGQQqftp6e4SrCEwEnyk = [];
16958
+ #_3NV7TGNhuABbryNjNi4wib4DgNpY = [];
16657
16959
  /**
16658
16960
  * Constructs a new instance of Group with the given values.
16659
16961
  * @param values The values to initialize the instance with.
@@ -16888,6 +17190,37 @@ export class Group extends Object {
16888
17190
  "boolean" + ".");
16889
17191
  }
16890
17192
  }
17193
+ if ("alias" in values && values.alias != null) {
17194
+ if (values.alias instanceof Application || values.alias instanceof _d ||
17195
+ values.alias instanceof Organization ||
17196
+ values.alias instanceof Person || values.alias instanceof Service ||
17197
+ values.alias instanceof URL) {
17198
+ // @ts-ignore: type is checked above.
17199
+ this.#_3NV7TGNhuABbryNjNi4wib4DgNpY = [values.alias];
17200
+ }
17201
+ else {
17202
+ throw new TypeError("The alias must be of type " +
17203
+ "Application | Group | Organization | Person | Service | URL" + ".");
17204
+ }
17205
+ }
17206
+ if ("aliases" in values && values.aliases != null) {
17207
+ if ("alias" in values &&
17208
+ values.alias != null) {
17209
+ throw new TypeError("Cannot initialize both alias and " +
17210
+ "aliases at the same time.");
17211
+ }
17212
+ if (Array.isArray(values.aliases) &&
17213
+ values.aliases.every((v) => v instanceof Application || v instanceof _d ||
17214
+ v instanceof Organization || v instanceof Person ||
17215
+ v instanceof Service || v instanceof URL)) {
17216
+ // @ts-ignore: type is checked above.
17217
+ this.#_3NV7TGNhuABbryNjNi4wib4DgNpY = values.aliases;
17218
+ }
17219
+ else {
17220
+ throw new TypeError("The aliases must be an array of type " +
17221
+ "Application | Group | Organization | Person | Service | URL" + ".");
17222
+ }
17223
+ }
16891
17224
  }
16892
17225
  /**
16893
17226
  * Clones this instance, optionally updating it with the given values.
@@ -17143,6 +17476,38 @@ export class Group extends Object {
17143
17476
  "boolean" + ".");
17144
17477
  }
17145
17478
  }
17479
+ clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY;
17480
+ if ("alias" in values && values.alias != null) {
17481
+ if (values.alias instanceof Application || values.alias instanceof _d ||
17482
+ values.alias instanceof Organization ||
17483
+ values.alias instanceof Person || values.alias instanceof Service ||
17484
+ values.alias instanceof URL) {
17485
+ // @ts-ignore: type is checked above.
17486
+ clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY = [values.alias];
17487
+ }
17488
+ else {
17489
+ throw new TypeError("The alias must be of type " +
17490
+ "Application | Group | Organization | Person | Service | URL" + ".");
17491
+ }
17492
+ }
17493
+ if ("aliases" in values && values.aliases != null) {
17494
+ if ("alias" in values &&
17495
+ values.alias != null) {
17496
+ throw new TypeError("Cannot update both alias and " +
17497
+ "aliases at the same time.");
17498
+ }
17499
+ if (Array.isArray(values.aliases) &&
17500
+ values.aliases.every((v) => v instanceof Application || v instanceof _d ||
17501
+ v instanceof Organization || v instanceof Person ||
17502
+ v instanceof Service || v instanceof URL)) {
17503
+ // @ts-ignore: type is checked above.
17504
+ clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY = values.aliases;
17505
+ }
17506
+ else {
17507
+ throw new TypeError("The aliases must be an array of type " +
17508
+ "Application | Group | Organization | Person | Service | URL" + ".");
17509
+ }
17510
+ }
17146
17511
  return clone;
17147
17512
  }
17148
17513
  /** A short username which may be used to refer to the actor,
@@ -17859,6 +18224,126 @@ export class Group extends Object {
17859
18224
  return null;
17860
18225
  return this.#_2diCorzqPGQQqftp6e4SrCEwEnyk[0];
17861
18226
  }
18227
+ async #fetchAlias(url, options = {}) {
18228
+ const documentLoader = options.documentLoader ?? this._documentLoader ??
18229
+ fetchDocumentLoader;
18230
+ const contextLoader = options.contextLoader ?? this._contextLoader ??
18231
+ fetchDocumentLoader;
18232
+ let fetchResult;
18233
+ try {
18234
+ fetchResult = await documentLoader(url.href);
18235
+ }
18236
+ catch (error) {
18237
+ if (options.suppressError) {
18238
+ getLogger(["fedify", "vocab"]).error("Failed to fetch {url}: {error}", { error, url: url.href });
18239
+ return null;
18240
+ }
18241
+ throw error;
18242
+ }
18243
+ const { document } = fetchResult;
18244
+ try {
18245
+ return await Application.fromJsonLd(document, { documentLoader, contextLoader });
18246
+ }
18247
+ catch (e) {
18248
+ if (!(e instanceof TypeError))
18249
+ throw e;
18250
+ }
18251
+ try {
18252
+ return await _d.fromJsonLd(document, { documentLoader, contextLoader });
18253
+ }
18254
+ catch (e) {
18255
+ if (!(e instanceof TypeError))
18256
+ throw e;
18257
+ }
18258
+ try {
18259
+ return await Organization.fromJsonLd(document, { documentLoader, contextLoader });
18260
+ }
18261
+ catch (e) {
18262
+ if (!(e instanceof TypeError))
18263
+ throw e;
18264
+ }
18265
+ try {
18266
+ return await Person.fromJsonLd(document, { documentLoader, contextLoader });
18267
+ }
18268
+ catch (e) {
18269
+ if (!(e instanceof TypeError))
18270
+ throw e;
18271
+ }
18272
+ try {
18273
+ return await Service.fromJsonLd(document, { documentLoader, contextLoader });
18274
+ }
18275
+ catch (e) {
18276
+ if (!(e instanceof TypeError))
18277
+ throw e;
18278
+ }
18279
+ throw new TypeError("Expected an object of any type of: " +
18280
+ [
18281
+ "https://www.w3.org/ns/activitystreams#Application",
18282
+ "https://www.w3.org/ns/activitystreams#Group",
18283
+ "https://www.w3.org/ns/activitystreams#Organization",
18284
+ "https://www.w3.org/ns/activitystreams#Person",
18285
+ "https://www.w3.org/ns/activitystreams#Service",
18286
+ ].join(", "));
18287
+ }
18288
+ /**
18289
+ * Similar to
18290
+ * {@link Group.getAlias},
18291
+ * but returns its `@id` URL instead of the object itself.
18292
+ */
18293
+ get aliasId() {
18294
+ if (this.#_3NV7TGNhuABbryNjNi4wib4DgNpY.length < 1)
18295
+ return null;
18296
+ const v = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY[0];
18297
+ if (v instanceof URL)
18298
+ return v;
18299
+ return v.id;
18300
+ }
18301
+ /** The `aliases` (`alsoKnownAs`) property is used to specify alternative names
18302
+ * or aliases for an entity. It can be used to provide additional identifiers
18303
+ * or labels for an entity, which can be useful in scenarios where an entity
18304
+ * may have multiple names or aliases.
18305
+ */
18306
+ async getAlias(options = {}) {
18307
+ if (this.#_3NV7TGNhuABbryNjNi4wib4DgNpY.length < 1)
18308
+ return null;
18309
+ const v = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY[0];
18310
+ if (v instanceof URL) {
18311
+ const fetched = await this.#fetchAlias(v, options);
18312
+ if (fetched == null)
18313
+ return null;
18314
+ this.#_3NV7TGNhuABbryNjNi4wib4DgNpY[0] = fetched;
18315
+ return fetched;
18316
+ }
18317
+ return v;
18318
+ }
18319
+ /**
18320
+ * Similar to
18321
+ * {@link Group.getAliases},
18322
+ * but returns their `@id`s instead of the objects themselves.
18323
+ */
18324
+ get aliasIds() {
18325
+ return this.#_3NV7TGNhuABbryNjNi4wib4DgNpY.map((v) => v instanceof URL ? v : v.id).filter((id) => id !== null);
18326
+ }
18327
+ /** The `aliases` (`alsoKnownAs`) property is used to specify alternative names
18328
+ * or aliases for an entity. It can be used to provide additional identifiers
18329
+ * or labels for an entity, which can be useful in scenarios where an entity
18330
+ * may have multiple names or aliases.
18331
+ */
18332
+ async *getAliases(options = {}) {
18333
+ const vs = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY;
18334
+ for (let i = 0; i < vs.length; i++) {
18335
+ const v = vs[i];
18336
+ if (v instanceof URL) {
18337
+ const fetched = await this.#fetchAlias(v, options);
18338
+ if (fetched == null)
18339
+ continue;
18340
+ vs[i] = fetched;
18341
+ yield fetched;
18342
+ continue;
18343
+ }
18344
+ yield v;
18345
+ }
18346
+ }
17862
18347
  /**
17863
18348
  * Converts this object to a JSON-LD structure.
17864
18349
  * @param options The options to use.
@@ -18133,6 +18618,47 @@ export class Group extends Object {
18133
18618
  else if (compactItems.length === 1) {
18134
18619
  result["indexable"] = compactItems[0];
18135
18620
  }
18621
+ compactItems = [];
18622
+ for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY) {
18623
+ const item = v instanceof URL
18624
+ ? v.href
18625
+ : v instanceof Application
18626
+ ? await v.toJsonLd({
18627
+ ...options,
18628
+ format: undefined,
18629
+ context: undefined,
18630
+ })
18631
+ : v instanceof _d
18632
+ ? await v.toJsonLd({
18633
+ ...options,
18634
+ format: undefined,
18635
+ context: undefined,
18636
+ })
18637
+ : v instanceof Organization
18638
+ ? await v.toJsonLd({
18639
+ ...options,
18640
+ format: undefined,
18641
+ context: undefined,
18642
+ })
18643
+ : v instanceof Person
18644
+ ? await v.toJsonLd({
18645
+ ...options,
18646
+ format: undefined,
18647
+ context: undefined,
18648
+ })
18649
+ : await v.toJsonLd({
18650
+ ...options,
18651
+ format: undefined,
18652
+ context: undefined,
18653
+ });
18654
+ compactItems.push(item);
18655
+ }
18656
+ if (compactItems.length > 1) {
18657
+ result["alsoKnownAs"] = compactItems;
18658
+ }
18659
+ else if (compactItems.length === 1) {
18660
+ result["alsoKnownAs"] = compactItems[0];
18661
+ }
18136
18662
  result["type"] = "Group";
18137
18663
  if (this.id != null)
18138
18664
  result["id"] = this.id.href;
@@ -18325,6 +18851,24 @@ export class Group extends Object {
18325
18851
  if (array.length > 0) {
18326
18852
  values["http://joinmastodon.org/ns#indexable"] = array;
18327
18853
  }
18854
+ array = [];
18855
+ for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY) {
18856
+ const element = v instanceof URL
18857
+ ? { "@id": v.href }
18858
+ : v instanceof Application
18859
+ ? await v.toJsonLd(options)
18860
+ : v instanceof _d
18861
+ ? await v.toJsonLd(options)
18862
+ : v instanceof Organization
18863
+ ? await v.toJsonLd(options)
18864
+ : v instanceof Person
18865
+ ? await v.toJsonLd(options)
18866
+ : await v.toJsonLd(options);
18867
+ array.push(element);
18868
+ }
18869
+ if (array.length > 0) {
18870
+ values["https://www.w3.org/ns/activitystreams#alsoKnownAs"] = array;
18871
+ }
18328
18872
  values["@type"] = ["https://www.w3.org/ns/activitystreams#Group"];
18329
18873
  if (this.id != null)
18330
18874
  values["@id"] = this.id.href;
@@ -18411,7 +18955,7 @@ export class Group extends Object {
18411
18955
  // @ts-ignore: an internal option
18412
18956
  _fromSubclass: true,
18413
18957
  });
18414
- if (!(instance instanceof Group)) {
18958
+ if (!(instance instanceof _d)) {
18415
18959
  throw new TypeError("Unexpected type: " + instance.constructor.name);
18416
18960
  }
18417
18961
  const _3isuDgRAKSntq9XdbjiNxjwyPZAf = [];
@@ -18695,6 +19239,47 @@ export class Group extends Object {
18695
19239
  _2diCorzqPGQQqftp6e4SrCEwEnyk.push(v["@value"]);
18696
19240
  }
18697
19241
  instance.#_2diCorzqPGQQqftp6e4SrCEwEnyk = _2diCorzqPGQQqftp6e4SrCEwEnyk;
19242
+ const _3NV7TGNhuABbryNjNi4wib4DgNpY = [];
19243
+ const _3NV7TGNhuABbryNjNi4wib4DgNpY__array = values["https://www.w3.org/ns/activitystreams#alsoKnownAs"];
19244
+ for (const v of _3NV7TGNhuABbryNjNi4wib4DgNpY__array == null
19245
+ ? []
19246
+ : _3NV7TGNhuABbryNjNi4wib4DgNpY__array.length === 1 &&
19247
+ "@list" in _3NV7TGNhuABbryNjNi4wib4DgNpY__array[0]
19248
+ ? _3NV7TGNhuABbryNjNi4wib4DgNpY__array[0]["@list"]
19249
+ : _3NV7TGNhuABbryNjNi4wib4DgNpY__array) {
19250
+ if (v == null)
19251
+ continue;
19252
+ if (typeof v === "object" && "@id" in v && !("@type" in v) &&
19253
+ globalThis.Object.keys(v).length === 1) {
19254
+ _3NV7TGNhuABbryNjNi4wib4DgNpY.push(new URL(v["@id"]));
19255
+ continue;
19256
+ }
19257
+ const decoded = typeof v === "object" && "@type" in v &&
19258
+ Array.isArray(v["@type"]) &&
19259
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Application")
19260
+ ? await Application.fromJsonLd(v, options)
19261
+ : typeof v === "object" && "@type" in v &&
19262
+ Array.isArray(v["@type"]) &&
19263
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Group")
19264
+ ? await _d.fromJsonLd(v, options)
19265
+ : typeof v === "object" && "@type" in v &&
19266
+ Array.isArray(v["@type"]) &&
19267
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Organization")
19268
+ ? await Organization.fromJsonLd(v, options)
19269
+ : typeof v === "object" && "@type" in v &&
19270
+ Array.isArray(v["@type"]) &&
19271
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Person")
19272
+ ? await Person.fromJsonLd(v, options)
19273
+ : typeof v === "object" && "@type" in v &&
19274
+ Array.isArray(v["@type"]) &&
19275
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Service")
19276
+ ? await Service.fromJsonLd(v, options)
19277
+ : undefined;
19278
+ if (typeof decoded === "undefined")
19279
+ continue;
19280
+ _3NV7TGNhuABbryNjNi4wib4DgNpY.push(decoded);
19281
+ }
19282
+ instance.#_3NV7TGNhuABbryNjNi4wib4DgNpY = _3NV7TGNhuABbryNjNi4wib4DgNpY;
18698
19283
  if (!("_fromSubclass" in options) || !options._fromSubclass) {
18699
19284
  try {
18700
19285
  instance.#cachedJsonLd = structuredClone(json);
@@ -18911,6 +19496,22 @@ export class Group extends Object {
18911
19496
  if (_2diCorzqPGQQqftp6e4SrCEwEnyk.length == 1) {
18912
19497
  proxy.indexable = _2diCorzqPGQQqftp6e4SrCEwEnyk[0];
18913
19498
  }
19499
+ const _3NV7TGNhuABbryNjNi4wib4DgNpY = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY
19500
+ // deno-lint-ignore no-explicit-any
19501
+ .map((v) => v instanceof URL
19502
+ ? {
19503
+ [Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
19504
+ [Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
19505
+ }
19506
+ : v);
19507
+ if (_3NV7TGNhuABbryNjNi4wib4DgNpY.length == 1) {
19508
+ proxy.alias = _3NV7TGNhuABbryNjNi4wib4DgNpY[0];
19509
+ }
19510
+ if (_3NV7TGNhuABbryNjNi4wib4DgNpY.length > 1 ||
19511
+ !("alias" in proxy) &&
19512
+ _3NV7TGNhuABbryNjNi4wib4DgNpY.length > 0) {
19513
+ proxy.aliases = _3NV7TGNhuABbryNjNi4wib4DgNpY;
19514
+ }
18914
19515
  return proxy;
18915
19516
  }
18916
19517
  [Symbol.for("Deno.customInspect")](inspect, options) {
@@ -18922,6 +19523,7 @@ export class Group extends Object {
18922
19523
  return "Group " + inspect(proxy, options);
18923
19524
  }
18924
19525
  }
19526
+ _d = Group;
18925
19527
  /** A Link is an indirect, qualified reference to a resource identified by a URL.
18926
19528
  * The fundamental model for links is established by RFC 5988. Many of the
18927
19529
  * properties defined by the Activity Vocabulary allow values that are either
@@ -19076,7 +19678,7 @@ export class Link {
19076
19678
  }
19077
19679
  if ("previews" in values && values.previews != null) {
19078
19680
  if (Array.isArray(values.previews) &&
19079
- values.previews.every((v) => v instanceof _c || v instanceof Object || v instanceof URL)) {
19681
+ values.previews.every((v) => v instanceof _e || v instanceof Object || v instanceof URL)) {
19080
19682
  // @ts-ignore: type is checked above.
19081
19683
  this.#_gCVTegXxWWCw6wWRxa1QF65zusg = values.previews;
19082
19684
  }
@@ -19209,7 +19811,7 @@ export class Link {
19209
19811
  clone.#_gCVTegXxWWCw6wWRxa1QF65zusg = this.#_gCVTegXxWWCw6wWRxa1QF65zusg;
19210
19812
  if ("previews" in values && values.previews != null) {
19211
19813
  if (Array.isArray(values.previews) &&
19212
- values.previews.every((v) => v instanceof _c || v instanceof Object || v instanceof URL)) {
19814
+ values.previews.every((v) => v instanceof _e || v instanceof Object || v instanceof URL)) {
19213
19815
  // @ts-ignore: type is checked above.
19214
19816
  clone.#_gCVTegXxWWCw6wWRxa1QF65zusg = values.previews;
19215
19817
  }
@@ -19315,7 +19917,7 @@ export class Link {
19315
19917
  }
19316
19918
  const { document } = fetchResult;
19317
19919
  try {
19318
- return await _c.fromJsonLd(document, { documentLoader, contextLoader });
19920
+ return await _e.fromJsonLd(document, { documentLoader, contextLoader });
19319
19921
  }
19320
19922
  catch (e) {
19321
19923
  if (!(e instanceof TypeError))
@@ -19479,7 +20081,7 @@ export class Link {
19479
20081
  for (const v of this.#_gCVTegXxWWCw6wWRxa1QF65zusg) {
19480
20082
  const item = v instanceof URL
19481
20083
  ? v.href
19482
- : v instanceof _c
20084
+ : v instanceof _e
19483
20085
  ? await v.toJsonLd({
19484
20086
  ...options,
19485
20087
  format: undefined,
@@ -19576,7 +20178,7 @@ export class Link {
19576
20178
  for (const v of this.#_gCVTegXxWWCw6wWRxa1QF65zusg) {
19577
20179
  const element = v instanceof URL
19578
20180
  ? { "@id": v.href }
19579
- : v instanceof _c
20181
+ : v instanceof _e
19580
20182
  ? await v.toJsonLd(options)
19581
20183
  : await v.toJsonLd(options);
19582
20184
  array.push(element);
@@ -19764,7 +20366,7 @@ export class Link {
19764
20366
  "https://www.w3.org/ns/activitystreams#Hashtag",
19765
20367
  "https://www.w3.org/ns/activitystreams#Mention",
19766
20368
  ].some((t) => v["@type"].includes(t))
19767
- ? await _c.fromJsonLd(v, options)
20369
+ ? await _e.fromJsonLd(v, options)
19768
20370
  : typeof v === "object" && "@type" in v &&
19769
20371
  Array.isArray(v["@type"]) &&
19770
20372
  [
@@ -19959,7 +20561,7 @@ export class Link {
19959
20561
  return "Link " + inspect(proxy, options);
19960
20562
  }
19961
20563
  }
19962
- _c = Link;
20564
+ _e = Link;
19963
20565
  /** A specialized {@link Link} that represents an #hashtag.
19964
20566
  *
19965
20567
  * See also <https://swicg.github.io/miscellany/#Hashtag>.
@@ -22857,6 +23459,7 @@ export class Organization extends Object {
22857
23459
  #_2kGKkJtoFWg8c18PaVSqj9NKP4t7 = [];
22858
23460
  #_79S8K4f5J9MWUgCxziRyUe6PTHZ = [];
22859
23461
  #_2diCorzqPGQQqftp6e4SrCEwEnyk = [];
23462
+ #_3NV7TGNhuABbryNjNi4wib4DgNpY = [];
22860
23463
  /**
22861
23464
  * Constructs a new instance of Organization with the given values.
22862
23465
  * @param values The values to initialize the instance with.
@@ -23091,6 +23694,37 @@ export class Organization extends Object {
23091
23694
  "boolean" + ".");
23092
23695
  }
23093
23696
  }
23697
+ if ("alias" in values && values.alias != null) {
23698
+ if (values.alias instanceof Application || values.alias instanceof Group ||
23699
+ values.alias instanceof _f ||
23700
+ values.alias instanceof Person || values.alias instanceof Service ||
23701
+ values.alias instanceof URL) {
23702
+ // @ts-ignore: type is checked above.
23703
+ this.#_3NV7TGNhuABbryNjNi4wib4DgNpY = [values.alias];
23704
+ }
23705
+ else {
23706
+ throw new TypeError("The alias must be of type " +
23707
+ "Application | Group | Organization | Person | Service | URL" + ".");
23708
+ }
23709
+ }
23710
+ if ("aliases" in values && values.aliases != null) {
23711
+ if ("alias" in values &&
23712
+ values.alias != null) {
23713
+ throw new TypeError("Cannot initialize both alias and " +
23714
+ "aliases at the same time.");
23715
+ }
23716
+ if (Array.isArray(values.aliases) &&
23717
+ values.aliases.every((v) => v instanceof Application || v instanceof Group ||
23718
+ v instanceof _f || v instanceof Person ||
23719
+ v instanceof Service || v instanceof URL)) {
23720
+ // @ts-ignore: type is checked above.
23721
+ this.#_3NV7TGNhuABbryNjNi4wib4DgNpY = values.aliases;
23722
+ }
23723
+ else {
23724
+ throw new TypeError("The aliases must be an array of type " +
23725
+ "Application | Group | Organization | Person | Service | URL" + ".");
23726
+ }
23727
+ }
23094
23728
  }
23095
23729
  /**
23096
23730
  * Clones this instance, optionally updating it with the given values.
@@ -23346,6 +23980,38 @@ export class Organization extends Object {
23346
23980
  "boolean" + ".");
23347
23981
  }
23348
23982
  }
23983
+ clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY;
23984
+ if ("alias" in values && values.alias != null) {
23985
+ if (values.alias instanceof Application || values.alias instanceof Group ||
23986
+ values.alias instanceof _f ||
23987
+ values.alias instanceof Person || values.alias instanceof Service ||
23988
+ values.alias instanceof URL) {
23989
+ // @ts-ignore: type is checked above.
23990
+ clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY = [values.alias];
23991
+ }
23992
+ else {
23993
+ throw new TypeError("The alias must be of type " +
23994
+ "Application | Group | Organization | Person | Service | URL" + ".");
23995
+ }
23996
+ }
23997
+ if ("aliases" in values && values.aliases != null) {
23998
+ if ("alias" in values &&
23999
+ values.alias != null) {
24000
+ throw new TypeError("Cannot update both alias and " +
24001
+ "aliases at the same time.");
24002
+ }
24003
+ if (Array.isArray(values.aliases) &&
24004
+ values.aliases.every((v) => v instanceof Application || v instanceof Group ||
24005
+ v instanceof _f || v instanceof Person ||
24006
+ v instanceof Service || v instanceof URL)) {
24007
+ // @ts-ignore: type is checked above.
24008
+ clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY = values.aliases;
24009
+ }
24010
+ else {
24011
+ throw new TypeError("The aliases must be an array of type " +
24012
+ "Application | Group | Organization | Person | Service | URL" + ".");
24013
+ }
24014
+ }
23349
24015
  return clone;
23350
24016
  }
23351
24017
  /** A short username which may be used to refer to the actor,
@@ -24062,6 +24728,126 @@ export class Organization extends Object {
24062
24728
  return null;
24063
24729
  return this.#_2diCorzqPGQQqftp6e4SrCEwEnyk[0];
24064
24730
  }
24731
+ async #fetchAlias(url, options = {}) {
24732
+ const documentLoader = options.documentLoader ?? this._documentLoader ??
24733
+ fetchDocumentLoader;
24734
+ const contextLoader = options.contextLoader ?? this._contextLoader ??
24735
+ fetchDocumentLoader;
24736
+ let fetchResult;
24737
+ try {
24738
+ fetchResult = await documentLoader(url.href);
24739
+ }
24740
+ catch (error) {
24741
+ if (options.suppressError) {
24742
+ getLogger(["fedify", "vocab"]).error("Failed to fetch {url}: {error}", { error, url: url.href });
24743
+ return null;
24744
+ }
24745
+ throw error;
24746
+ }
24747
+ const { document } = fetchResult;
24748
+ try {
24749
+ return await Application.fromJsonLd(document, { documentLoader, contextLoader });
24750
+ }
24751
+ catch (e) {
24752
+ if (!(e instanceof TypeError))
24753
+ throw e;
24754
+ }
24755
+ try {
24756
+ return await Group.fromJsonLd(document, { documentLoader, contextLoader });
24757
+ }
24758
+ catch (e) {
24759
+ if (!(e instanceof TypeError))
24760
+ throw e;
24761
+ }
24762
+ try {
24763
+ return await _f.fromJsonLd(document, { documentLoader, contextLoader });
24764
+ }
24765
+ catch (e) {
24766
+ if (!(e instanceof TypeError))
24767
+ throw e;
24768
+ }
24769
+ try {
24770
+ return await Person.fromJsonLd(document, { documentLoader, contextLoader });
24771
+ }
24772
+ catch (e) {
24773
+ if (!(e instanceof TypeError))
24774
+ throw e;
24775
+ }
24776
+ try {
24777
+ return await Service.fromJsonLd(document, { documentLoader, contextLoader });
24778
+ }
24779
+ catch (e) {
24780
+ if (!(e instanceof TypeError))
24781
+ throw e;
24782
+ }
24783
+ throw new TypeError("Expected an object of any type of: " +
24784
+ [
24785
+ "https://www.w3.org/ns/activitystreams#Application",
24786
+ "https://www.w3.org/ns/activitystreams#Group",
24787
+ "https://www.w3.org/ns/activitystreams#Organization",
24788
+ "https://www.w3.org/ns/activitystreams#Person",
24789
+ "https://www.w3.org/ns/activitystreams#Service",
24790
+ ].join(", "));
24791
+ }
24792
+ /**
24793
+ * Similar to
24794
+ * {@link Organization.getAlias},
24795
+ * but returns its `@id` URL instead of the object itself.
24796
+ */
24797
+ get aliasId() {
24798
+ if (this.#_3NV7TGNhuABbryNjNi4wib4DgNpY.length < 1)
24799
+ return null;
24800
+ const v = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY[0];
24801
+ if (v instanceof URL)
24802
+ return v;
24803
+ return v.id;
24804
+ }
24805
+ /** The `aliases` (`alsoKnownAs`) property is used to specify alternative names
24806
+ * or aliases for an entity. It can be used to provide additional identifiers
24807
+ * or labels for an entity, which can be useful in scenarios where an entity
24808
+ * may have multiple names or aliases.
24809
+ */
24810
+ async getAlias(options = {}) {
24811
+ if (this.#_3NV7TGNhuABbryNjNi4wib4DgNpY.length < 1)
24812
+ return null;
24813
+ const v = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY[0];
24814
+ if (v instanceof URL) {
24815
+ const fetched = await this.#fetchAlias(v, options);
24816
+ if (fetched == null)
24817
+ return null;
24818
+ this.#_3NV7TGNhuABbryNjNi4wib4DgNpY[0] = fetched;
24819
+ return fetched;
24820
+ }
24821
+ return v;
24822
+ }
24823
+ /**
24824
+ * Similar to
24825
+ * {@link Organization.getAliases},
24826
+ * but returns their `@id`s instead of the objects themselves.
24827
+ */
24828
+ get aliasIds() {
24829
+ return this.#_3NV7TGNhuABbryNjNi4wib4DgNpY.map((v) => v instanceof URL ? v : v.id).filter((id) => id !== null);
24830
+ }
24831
+ /** The `aliases` (`alsoKnownAs`) property is used to specify alternative names
24832
+ * or aliases for an entity. It can be used to provide additional identifiers
24833
+ * or labels for an entity, which can be useful in scenarios where an entity
24834
+ * may have multiple names or aliases.
24835
+ */
24836
+ async *getAliases(options = {}) {
24837
+ const vs = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY;
24838
+ for (let i = 0; i < vs.length; i++) {
24839
+ const v = vs[i];
24840
+ if (v instanceof URL) {
24841
+ const fetched = await this.#fetchAlias(v, options);
24842
+ if (fetched == null)
24843
+ continue;
24844
+ vs[i] = fetched;
24845
+ yield fetched;
24846
+ continue;
24847
+ }
24848
+ yield v;
24849
+ }
24850
+ }
24065
24851
  /**
24066
24852
  * Converts this object to a JSON-LD structure.
24067
24853
  * @param options The options to use.
@@ -24336,6 +25122,47 @@ export class Organization extends Object {
24336
25122
  else if (compactItems.length === 1) {
24337
25123
  result["indexable"] = compactItems[0];
24338
25124
  }
25125
+ compactItems = [];
25126
+ for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY) {
25127
+ const item = v instanceof URL
25128
+ ? v.href
25129
+ : v instanceof Application
25130
+ ? await v.toJsonLd({
25131
+ ...options,
25132
+ format: undefined,
25133
+ context: undefined,
25134
+ })
25135
+ : v instanceof Group
25136
+ ? await v.toJsonLd({
25137
+ ...options,
25138
+ format: undefined,
25139
+ context: undefined,
25140
+ })
25141
+ : v instanceof _f
25142
+ ? await v.toJsonLd({
25143
+ ...options,
25144
+ format: undefined,
25145
+ context: undefined,
25146
+ })
25147
+ : v instanceof Person
25148
+ ? await v.toJsonLd({
25149
+ ...options,
25150
+ format: undefined,
25151
+ context: undefined,
25152
+ })
25153
+ : await v.toJsonLd({
25154
+ ...options,
25155
+ format: undefined,
25156
+ context: undefined,
25157
+ });
25158
+ compactItems.push(item);
25159
+ }
25160
+ if (compactItems.length > 1) {
25161
+ result["alsoKnownAs"] = compactItems;
25162
+ }
25163
+ else if (compactItems.length === 1) {
25164
+ result["alsoKnownAs"] = compactItems[0];
25165
+ }
24339
25166
  result["type"] = "Organization";
24340
25167
  if (this.id != null)
24341
25168
  result["id"] = this.id.href;
@@ -24528,6 +25355,24 @@ export class Organization extends Object {
24528
25355
  if (array.length > 0) {
24529
25356
  values["http://joinmastodon.org/ns#indexable"] = array;
24530
25357
  }
25358
+ array = [];
25359
+ for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY) {
25360
+ const element = v instanceof URL
25361
+ ? { "@id": v.href }
25362
+ : v instanceof Application
25363
+ ? await v.toJsonLd(options)
25364
+ : v instanceof Group
25365
+ ? await v.toJsonLd(options)
25366
+ : v instanceof _f
25367
+ ? await v.toJsonLd(options)
25368
+ : v instanceof Person
25369
+ ? await v.toJsonLd(options)
25370
+ : await v.toJsonLd(options);
25371
+ array.push(element);
25372
+ }
25373
+ if (array.length > 0) {
25374
+ values["https://www.w3.org/ns/activitystreams#alsoKnownAs"] = array;
25375
+ }
24531
25376
  values["@type"] = ["https://www.w3.org/ns/activitystreams#Organization"];
24532
25377
  if (this.id != null)
24533
25378
  values["@id"] = this.id.href;
@@ -24614,7 +25459,7 @@ export class Organization extends Object {
24614
25459
  // @ts-ignore: an internal option
24615
25460
  _fromSubclass: true,
24616
25461
  });
24617
- if (!(instance instanceof Organization)) {
25462
+ if (!(instance instanceof _f)) {
24618
25463
  throw new TypeError("Unexpected type: " + instance.constructor.name);
24619
25464
  }
24620
25465
  const _3isuDgRAKSntq9XdbjiNxjwyPZAf = [];
@@ -24898,6 +25743,47 @@ export class Organization extends Object {
24898
25743
  _2diCorzqPGQQqftp6e4SrCEwEnyk.push(v["@value"]);
24899
25744
  }
24900
25745
  instance.#_2diCorzqPGQQqftp6e4SrCEwEnyk = _2diCorzqPGQQqftp6e4SrCEwEnyk;
25746
+ const _3NV7TGNhuABbryNjNi4wib4DgNpY = [];
25747
+ const _3NV7TGNhuABbryNjNi4wib4DgNpY__array = values["https://www.w3.org/ns/activitystreams#alsoKnownAs"];
25748
+ for (const v of _3NV7TGNhuABbryNjNi4wib4DgNpY__array == null
25749
+ ? []
25750
+ : _3NV7TGNhuABbryNjNi4wib4DgNpY__array.length === 1 &&
25751
+ "@list" in _3NV7TGNhuABbryNjNi4wib4DgNpY__array[0]
25752
+ ? _3NV7TGNhuABbryNjNi4wib4DgNpY__array[0]["@list"]
25753
+ : _3NV7TGNhuABbryNjNi4wib4DgNpY__array) {
25754
+ if (v == null)
25755
+ continue;
25756
+ if (typeof v === "object" && "@id" in v && !("@type" in v) &&
25757
+ globalThis.Object.keys(v).length === 1) {
25758
+ _3NV7TGNhuABbryNjNi4wib4DgNpY.push(new URL(v["@id"]));
25759
+ continue;
25760
+ }
25761
+ const decoded = typeof v === "object" && "@type" in v &&
25762
+ Array.isArray(v["@type"]) &&
25763
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Application")
25764
+ ? await Application.fromJsonLd(v, options)
25765
+ : typeof v === "object" && "@type" in v &&
25766
+ Array.isArray(v["@type"]) &&
25767
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Group")
25768
+ ? await Group.fromJsonLd(v, options)
25769
+ : typeof v === "object" && "@type" in v &&
25770
+ Array.isArray(v["@type"]) &&
25771
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Organization")
25772
+ ? await _f.fromJsonLd(v, options)
25773
+ : typeof v === "object" && "@type" in v &&
25774
+ Array.isArray(v["@type"]) &&
25775
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Person")
25776
+ ? await Person.fromJsonLd(v, options)
25777
+ : typeof v === "object" && "@type" in v &&
25778
+ Array.isArray(v["@type"]) &&
25779
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Service")
25780
+ ? await Service.fromJsonLd(v, options)
25781
+ : undefined;
25782
+ if (typeof decoded === "undefined")
25783
+ continue;
25784
+ _3NV7TGNhuABbryNjNi4wib4DgNpY.push(decoded);
25785
+ }
25786
+ instance.#_3NV7TGNhuABbryNjNi4wib4DgNpY = _3NV7TGNhuABbryNjNi4wib4DgNpY;
24901
25787
  if (!("_fromSubclass" in options) || !options._fromSubclass) {
24902
25788
  try {
24903
25789
  instance.#cachedJsonLd = structuredClone(json);
@@ -25114,6 +26000,22 @@ export class Organization extends Object {
25114
26000
  if (_2diCorzqPGQQqftp6e4SrCEwEnyk.length == 1) {
25115
26001
  proxy.indexable = _2diCorzqPGQQqftp6e4SrCEwEnyk[0];
25116
26002
  }
26003
+ const _3NV7TGNhuABbryNjNi4wib4DgNpY = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY
26004
+ // deno-lint-ignore no-explicit-any
26005
+ .map((v) => v instanceof URL
26006
+ ? {
26007
+ [Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
26008
+ [Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
26009
+ }
26010
+ : v);
26011
+ if (_3NV7TGNhuABbryNjNi4wib4DgNpY.length == 1) {
26012
+ proxy.alias = _3NV7TGNhuABbryNjNi4wib4DgNpY[0];
26013
+ }
26014
+ if (_3NV7TGNhuABbryNjNi4wib4DgNpY.length > 1 ||
26015
+ !("alias" in proxy) &&
26016
+ _3NV7TGNhuABbryNjNi4wib4DgNpY.length > 0) {
26017
+ proxy.aliases = _3NV7TGNhuABbryNjNi4wib4DgNpY;
26018
+ }
25117
26019
  return proxy;
25118
26020
  }
25119
26021
  [Symbol.for("Deno.customInspect")](inspect, options) {
@@ -25125,6 +26027,7 @@ export class Organization extends Object {
25125
26027
  return "Organization " + inspect(proxy, options);
25126
26028
  }
25127
26029
  }
26030
+ _f = Organization;
25128
26031
  /** Represents a Web Page.
25129
26032
  */
25130
26033
  export class Page extends Document {
@@ -25331,6 +26234,7 @@ export class Person extends Object {
25331
26234
  #_2kGKkJtoFWg8c18PaVSqj9NKP4t7 = [];
25332
26235
  #_79S8K4f5J9MWUgCxziRyUe6PTHZ = [];
25333
26236
  #_2diCorzqPGQQqftp6e4SrCEwEnyk = [];
26237
+ #_3NV7TGNhuABbryNjNi4wib4DgNpY = [];
25334
26238
  /**
25335
26239
  * Constructs a new instance of Person with the given values.
25336
26240
  * @param values The values to initialize the instance with.
@@ -25565,6 +26469,37 @@ export class Person extends Object {
25565
26469
  "boolean" + ".");
25566
26470
  }
25567
26471
  }
26472
+ if ("alias" in values && values.alias != null) {
26473
+ if (values.alias instanceof Application || values.alias instanceof Group ||
26474
+ values.alias instanceof Organization ||
26475
+ values.alias instanceof _g || values.alias instanceof Service ||
26476
+ values.alias instanceof URL) {
26477
+ // @ts-ignore: type is checked above.
26478
+ this.#_3NV7TGNhuABbryNjNi4wib4DgNpY = [values.alias];
26479
+ }
26480
+ else {
26481
+ throw new TypeError("The alias must be of type " +
26482
+ "Application | Group | Organization | Person | Service | URL" + ".");
26483
+ }
26484
+ }
26485
+ if ("aliases" in values && values.aliases != null) {
26486
+ if ("alias" in values &&
26487
+ values.alias != null) {
26488
+ throw new TypeError("Cannot initialize both alias and " +
26489
+ "aliases at the same time.");
26490
+ }
26491
+ if (Array.isArray(values.aliases) &&
26492
+ values.aliases.every((v) => v instanceof Application || v instanceof Group ||
26493
+ v instanceof Organization || v instanceof _g ||
26494
+ v instanceof Service || v instanceof URL)) {
26495
+ // @ts-ignore: type is checked above.
26496
+ this.#_3NV7TGNhuABbryNjNi4wib4DgNpY = values.aliases;
26497
+ }
26498
+ else {
26499
+ throw new TypeError("The aliases must be an array of type " +
26500
+ "Application | Group | Organization | Person | Service | URL" + ".");
26501
+ }
26502
+ }
25568
26503
  }
25569
26504
  /**
25570
26505
  * Clones this instance, optionally updating it with the given values.
@@ -25820,6 +26755,38 @@ export class Person extends Object {
25820
26755
  "boolean" + ".");
25821
26756
  }
25822
26757
  }
26758
+ clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY;
26759
+ if ("alias" in values && values.alias != null) {
26760
+ if (values.alias instanceof Application || values.alias instanceof Group ||
26761
+ values.alias instanceof Organization ||
26762
+ values.alias instanceof _g || values.alias instanceof Service ||
26763
+ values.alias instanceof URL) {
26764
+ // @ts-ignore: type is checked above.
26765
+ clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY = [values.alias];
26766
+ }
26767
+ else {
26768
+ throw new TypeError("The alias must be of type " +
26769
+ "Application | Group | Organization | Person | Service | URL" + ".");
26770
+ }
26771
+ }
26772
+ if ("aliases" in values && values.aliases != null) {
26773
+ if ("alias" in values &&
26774
+ values.alias != null) {
26775
+ throw new TypeError("Cannot update both alias and " +
26776
+ "aliases at the same time.");
26777
+ }
26778
+ if (Array.isArray(values.aliases) &&
26779
+ values.aliases.every((v) => v instanceof Application || v instanceof Group ||
26780
+ v instanceof Organization || v instanceof _g ||
26781
+ v instanceof Service || v instanceof URL)) {
26782
+ // @ts-ignore: type is checked above.
26783
+ clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY = values.aliases;
26784
+ }
26785
+ else {
26786
+ throw new TypeError("The aliases must be an array of type " +
26787
+ "Application | Group | Organization | Person | Service | URL" + ".");
26788
+ }
26789
+ }
25823
26790
  return clone;
25824
26791
  }
25825
26792
  /** A short username which may be used to refer to the actor,
@@ -26536,6 +27503,126 @@ export class Person extends Object {
26536
27503
  return null;
26537
27504
  return this.#_2diCorzqPGQQqftp6e4SrCEwEnyk[0];
26538
27505
  }
27506
+ async #fetchAlias(url, options = {}) {
27507
+ const documentLoader = options.documentLoader ?? this._documentLoader ??
27508
+ fetchDocumentLoader;
27509
+ const contextLoader = options.contextLoader ?? this._contextLoader ??
27510
+ fetchDocumentLoader;
27511
+ let fetchResult;
27512
+ try {
27513
+ fetchResult = await documentLoader(url.href);
27514
+ }
27515
+ catch (error) {
27516
+ if (options.suppressError) {
27517
+ getLogger(["fedify", "vocab"]).error("Failed to fetch {url}: {error}", { error, url: url.href });
27518
+ return null;
27519
+ }
27520
+ throw error;
27521
+ }
27522
+ const { document } = fetchResult;
27523
+ try {
27524
+ return await Application.fromJsonLd(document, { documentLoader, contextLoader });
27525
+ }
27526
+ catch (e) {
27527
+ if (!(e instanceof TypeError))
27528
+ throw e;
27529
+ }
27530
+ try {
27531
+ return await Group.fromJsonLd(document, { documentLoader, contextLoader });
27532
+ }
27533
+ catch (e) {
27534
+ if (!(e instanceof TypeError))
27535
+ throw e;
27536
+ }
27537
+ try {
27538
+ return await Organization.fromJsonLd(document, { documentLoader, contextLoader });
27539
+ }
27540
+ catch (e) {
27541
+ if (!(e instanceof TypeError))
27542
+ throw e;
27543
+ }
27544
+ try {
27545
+ return await _g.fromJsonLd(document, { documentLoader, contextLoader });
27546
+ }
27547
+ catch (e) {
27548
+ if (!(e instanceof TypeError))
27549
+ throw e;
27550
+ }
27551
+ try {
27552
+ return await Service.fromJsonLd(document, { documentLoader, contextLoader });
27553
+ }
27554
+ catch (e) {
27555
+ if (!(e instanceof TypeError))
27556
+ throw e;
27557
+ }
27558
+ throw new TypeError("Expected an object of any type of: " +
27559
+ [
27560
+ "https://www.w3.org/ns/activitystreams#Application",
27561
+ "https://www.w3.org/ns/activitystreams#Group",
27562
+ "https://www.w3.org/ns/activitystreams#Organization",
27563
+ "https://www.w3.org/ns/activitystreams#Person",
27564
+ "https://www.w3.org/ns/activitystreams#Service",
27565
+ ].join(", "));
27566
+ }
27567
+ /**
27568
+ * Similar to
27569
+ * {@link Person.getAlias},
27570
+ * but returns its `@id` URL instead of the object itself.
27571
+ */
27572
+ get aliasId() {
27573
+ if (this.#_3NV7TGNhuABbryNjNi4wib4DgNpY.length < 1)
27574
+ return null;
27575
+ const v = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY[0];
27576
+ if (v instanceof URL)
27577
+ return v;
27578
+ return v.id;
27579
+ }
27580
+ /** The `aliases` (`alsoKnownAs`) property is used to specify alternative names
27581
+ * or aliases for an entity. It can be used to provide additional identifiers
27582
+ * or labels for an entity, which can be useful in scenarios where an entity
27583
+ * may have multiple names or aliases.
27584
+ */
27585
+ async getAlias(options = {}) {
27586
+ if (this.#_3NV7TGNhuABbryNjNi4wib4DgNpY.length < 1)
27587
+ return null;
27588
+ const v = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY[0];
27589
+ if (v instanceof URL) {
27590
+ const fetched = await this.#fetchAlias(v, options);
27591
+ if (fetched == null)
27592
+ return null;
27593
+ this.#_3NV7TGNhuABbryNjNi4wib4DgNpY[0] = fetched;
27594
+ return fetched;
27595
+ }
27596
+ return v;
27597
+ }
27598
+ /**
27599
+ * Similar to
27600
+ * {@link Person.getAliases},
27601
+ * but returns their `@id`s instead of the objects themselves.
27602
+ */
27603
+ get aliasIds() {
27604
+ return this.#_3NV7TGNhuABbryNjNi4wib4DgNpY.map((v) => v instanceof URL ? v : v.id).filter((id) => id !== null);
27605
+ }
27606
+ /** The `aliases` (`alsoKnownAs`) property is used to specify alternative names
27607
+ * or aliases for an entity. It can be used to provide additional identifiers
27608
+ * or labels for an entity, which can be useful in scenarios where an entity
27609
+ * may have multiple names or aliases.
27610
+ */
27611
+ async *getAliases(options = {}) {
27612
+ const vs = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY;
27613
+ for (let i = 0; i < vs.length; i++) {
27614
+ const v = vs[i];
27615
+ if (v instanceof URL) {
27616
+ const fetched = await this.#fetchAlias(v, options);
27617
+ if (fetched == null)
27618
+ continue;
27619
+ vs[i] = fetched;
27620
+ yield fetched;
27621
+ continue;
27622
+ }
27623
+ yield v;
27624
+ }
27625
+ }
26539
27626
  /**
26540
27627
  * Converts this object to a JSON-LD structure.
26541
27628
  * @param options The options to use.
@@ -26810,6 +27897,47 @@ export class Person extends Object {
26810
27897
  else if (compactItems.length === 1) {
26811
27898
  result["indexable"] = compactItems[0];
26812
27899
  }
27900
+ compactItems = [];
27901
+ for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY) {
27902
+ const item = v instanceof URL
27903
+ ? v.href
27904
+ : v instanceof Application
27905
+ ? await v.toJsonLd({
27906
+ ...options,
27907
+ format: undefined,
27908
+ context: undefined,
27909
+ })
27910
+ : v instanceof Group
27911
+ ? await v.toJsonLd({
27912
+ ...options,
27913
+ format: undefined,
27914
+ context: undefined,
27915
+ })
27916
+ : v instanceof Organization
27917
+ ? await v.toJsonLd({
27918
+ ...options,
27919
+ format: undefined,
27920
+ context: undefined,
27921
+ })
27922
+ : v instanceof _g
27923
+ ? await v.toJsonLd({
27924
+ ...options,
27925
+ format: undefined,
27926
+ context: undefined,
27927
+ })
27928
+ : await v.toJsonLd({
27929
+ ...options,
27930
+ format: undefined,
27931
+ context: undefined,
27932
+ });
27933
+ compactItems.push(item);
27934
+ }
27935
+ if (compactItems.length > 1) {
27936
+ result["alsoKnownAs"] = compactItems;
27937
+ }
27938
+ else if (compactItems.length === 1) {
27939
+ result["alsoKnownAs"] = compactItems[0];
27940
+ }
26813
27941
  result["type"] = "Person";
26814
27942
  if (this.id != null)
26815
27943
  result["id"] = this.id.href;
@@ -27002,6 +28130,24 @@ export class Person extends Object {
27002
28130
  if (array.length > 0) {
27003
28131
  values["http://joinmastodon.org/ns#indexable"] = array;
27004
28132
  }
28133
+ array = [];
28134
+ for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY) {
28135
+ const element = v instanceof URL
28136
+ ? { "@id": v.href }
28137
+ : v instanceof Application
28138
+ ? await v.toJsonLd(options)
28139
+ : v instanceof Group
28140
+ ? await v.toJsonLd(options)
28141
+ : v instanceof Organization
28142
+ ? await v.toJsonLd(options)
28143
+ : v instanceof _g
28144
+ ? await v.toJsonLd(options)
28145
+ : await v.toJsonLd(options);
28146
+ array.push(element);
28147
+ }
28148
+ if (array.length > 0) {
28149
+ values["https://www.w3.org/ns/activitystreams#alsoKnownAs"] = array;
28150
+ }
27005
28151
  values["@type"] = ["https://www.w3.org/ns/activitystreams#Person"];
27006
28152
  if (this.id != null)
27007
28153
  values["@id"] = this.id.href;
@@ -27088,7 +28234,7 @@ export class Person extends Object {
27088
28234
  // @ts-ignore: an internal option
27089
28235
  _fromSubclass: true,
27090
28236
  });
27091
- if (!(instance instanceof Person)) {
28237
+ if (!(instance instanceof _g)) {
27092
28238
  throw new TypeError("Unexpected type: " + instance.constructor.name);
27093
28239
  }
27094
28240
  const _3isuDgRAKSntq9XdbjiNxjwyPZAf = [];
@@ -27372,6 +28518,47 @@ export class Person extends Object {
27372
28518
  _2diCorzqPGQQqftp6e4SrCEwEnyk.push(v["@value"]);
27373
28519
  }
27374
28520
  instance.#_2diCorzqPGQQqftp6e4SrCEwEnyk = _2diCorzqPGQQqftp6e4SrCEwEnyk;
28521
+ const _3NV7TGNhuABbryNjNi4wib4DgNpY = [];
28522
+ const _3NV7TGNhuABbryNjNi4wib4DgNpY__array = values["https://www.w3.org/ns/activitystreams#alsoKnownAs"];
28523
+ for (const v of _3NV7TGNhuABbryNjNi4wib4DgNpY__array == null
28524
+ ? []
28525
+ : _3NV7TGNhuABbryNjNi4wib4DgNpY__array.length === 1 &&
28526
+ "@list" in _3NV7TGNhuABbryNjNi4wib4DgNpY__array[0]
28527
+ ? _3NV7TGNhuABbryNjNi4wib4DgNpY__array[0]["@list"]
28528
+ : _3NV7TGNhuABbryNjNi4wib4DgNpY__array) {
28529
+ if (v == null)
28530
+ continue;
28531
+ if (typeof v === "object" && "@id" in v && !("@type" in v) &&
28532
+ globalThis.Object.keys(v).length === 1) {
28533
+ _3NV7TGNhuABbryNjNi4wib4DgNpY.push(new URL(v["@id"]));
28534
+ continue;
28535
+ }
28536
+ const decoded = typeof v === "object" && "@type" in v &&
28537
+ Array.isArray(v["@type"]) &&
28538
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Application")
28539
+ ? await Application.fromJsonLd(v, options)
28540
+ : typeof v === "object" && "@type" in v &&
28541
+ Array.isArray(v["@type"]) &&
28542
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Group")
28543
+ ? await Group.fromJsonLd(v, options)
28544
+ : typeof v === "object" && "@type" in v &&
28545
+ Array.isArray(v["@type"]) &&
28546
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Organization")
28547
+ ? await Organization.fromJsonLd(v, options)
28548
+ : typeof v === "object" && "@type" in v &&
28549
+ Array.isArray(v["@type"]) &&
28550
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Person")
28551
+ ? await _g.fromJsonLd(v, options)
28552
+ : typeof v === "object" && "@type" in v &&
28553
+ Array.isArray(v["@type"]) &&
28554
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Service")
28555
+ ? await Service.fromJsonLd(v, options)
28556
+ : undefined;
28557
+ if (typeof decoded === "undefined")
28558
+ continue;
28559
+ _3NV7TGNhuABbryNjNi4wib4DgNpY.push(decoded);
28560
+ }
28561
+ instance.#_3NV7TGNhuABbryNjNi4wib4DgNpY = _3NV7TGNhuABbryNjNi4wib4DgNpY;
27375
28562
  if (!("_fromSubclass" in options) || !options._fromSubclass) {
27376
28563
  try {
27377
28564
  instance.#cachedJsonLd = structuredClone(json);
@@ -27588,6 +28775,22 @@ export class Person extends Object {
27588
28775
  if (_2diCorzqPGQQqftp6e4SrCEwEnyk.length == 1) {
27589
28776
  proxy.indexable = _2diCorzqPGQQqftp6e4SrCEwEnyk[0];
27590
28777
  }
28778
+ const _3NV7TGNhuABbryNjNi4wib4DgNpY = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY
28779
+ // deno-lint-ignore no-explicit-any
28780
+ .map((v) => v instanceof URL
28781
+ ? {
28782
+ [Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
28783
+ [Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
28784
+ }
28785
+ : v);
28786
+ if (_3NV7TGNhuABbryNjNi4wib4DgNpY.length == 1) {
28787
+ proxy.alias = _3NV7TGNhuABbryNjNi4wib4DgNpY[0];
28788
+ }
28789
+ if (_3NV7TGNhuABbryNjNi4wib4DgNpY.length > 1 ||
28790
+ !("alias" in proxy) &&
28791
+ _3NV7TGNhuABbryNjNi4wib4DgNpY.length > 0) {
28792
+ proxy.aliases = _3NV7TGNhuABbryNjNi4wib4DgNpY;
28793
+ }
27591
28794
  return proxy;
27592
28795
  }
27593
28796
  [Symbol.for("Deno.customInspect")](inspect, options) {
@@ -27599,6 +28802,7 @@ export class Person extends Object {
27599
28802
  return "Person " + inspect(proxy, options);
27600
28803
  }
27601
28804
  }
28805
+ _g = Person;
27602
28806
  /** Represents a logical or physical location. See [5.3 Representing
27603
28807
  * Places](https://www.w3.org/TR/activitystreams-vocabulary/#places)
27604
28808
  * for additional information.
@@ -30489,6 +31693,7 @@ export class Service extends Object {
30489
31693
  #_2kGKkJtoFWg8c18PaVSqj9NKP4t7 = [];
30490
31694
  #_79S8K4f5J9MWUgCxziRyUe6PTHZ = [];
30491
31695
  #_2diCorzqPGQQqftp6e4SrCEwEnyk = [];
31696
+ #_3NV7TGNhuABbryNjNi4wib4DgNpY = [];
30492
31697
  /**
30493
31698
  * Constructs a new instance of Service with the given values.
30494
31699
  * @param values The values to initialize the instance with.
@@ -30723,6 +31928,37 @@ export class Service extends Object {
30723
31928
  "boolean" + ".");
30724
31929
  }
30725
31930
  }
31931
+ if ("alias" in values && values.alias != null) {
31932
+ if (values.alias instanceof Application || values.alias instanceof Group ||
31933
+ values.alias instanceof Organization ||
31934
+ values.alias instanceof Person || values.alias instanceof _h ||
31935
+ values.alias instanceof URL) {
31936
+ // @ts-ignore: type is checked above.
31937
+ this.#_3NV7TGNhuABbryNjNi4wib4DgNpY = [values.alias];
31938
+ }
31939
+ else {
31940
+ throw new TypeError("The alias must be of type " +
31941
+ "Application | Group | Organization | Person | Service | URL" + ".");
31942
+ }
31943
+ }
31944
+ if ("aliases" in values && values.aliases != null) {
31945
+ if ("alias" in values &&
31946
+ values.alias != null) {
31947
+ throw new TypeError("Cannot initialize both alias and " +
31948
+ "aliases at the same time.");
31949
+ }
31950
+ if (Array.isArray(values.aliases) &&
31951
+ values.aliases.every((v) => v instanceof Application || v instanceof Group ||
31952
+ v instanceof Organization || v instanceof Person ||
31953
+ v instanceof _h || v instanceof URL)) {
31954
+ // @ts-ignore: type is checked above.
31955
+ this.#_3NV7TGNhuABbryNjNi4wib4DgNpY = values.aliases;
31956
+ }
31957
+ else {
31958
+ throw new TypeError("The aliases must be an array of type " +
31959
+ "Application | Group | Organization | Person | Service | URL" + ".");
31960
+ }
31961
+ }
30726
31962
  }
30727
31963
  /**
30728
31964
  * Clones this instance, optionally updating it with the given values.
@@ -30978,6 +32214,38 @@ export class Service extends Object {
30978
32214
  "boolean" + ".");
30979
32215
  }
30980
32216
  }
32217
+ clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY;
32218
+ if ("alias" in values && values.alias != null) {
32219
+ if (values.alias instanceof Application || values.alias instanceof Group ||
32220
+ values.alias instanceof Organization ||
32221
+ values.alias instanceof Person || values.alias instanceof _h ||
32222
+ values.alias instanceof URL) {
32223
+ // @ts-ignore: type is checked above.
32224
+ clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY = [values.alias];
32225
+ }
32226
+ else {
32227
+ throw new TypeError("The alias must be of type " +
32228
+ "Application | Group | Organization | Person | Service | URL" + ".");
32229
+ }
32230
+ }
32231
+ if ("aliases" in values && values.aliases != null) {
32232
+ if ("alias" in values &&
32233
+ values.alias != null) {
32234
+ throw new TypeError("Cannot update both alias and " +
32235
+ "aliases at the same time.");
32236
+ }
32237
+ if (Array.isArray(values.aliases) &&
32238
+ values.aliases.every((v) => v instanceof Application || v instanceof Group ||
32239
+ v instanceof Organization || v instanceof Person ||
32240
+ v instanceof _h || v instanceof URL)) {
32241
+ // @ts-ignore: type is checked above.
32242
+ clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY = values.aliases;
32243
+ }
32244
+ else {
32245
+ throw new TypeError("The aliases must be an array of type " +
32246
+ "Application | Group | Organization | Person | Service | URL" + ".");
32247
+ }
32248
+ }
30981
32249
  return clone;
30982
32250
  }
30983
32251
  /** A short username which may be used to refer to the actor,
@@ -31694,6 +32962,126 @@ export class Service extends Object {
31694
32962
  return null;
31695
32963
  return this.#_2diCorzqPGQQqftp6e4SrCEwEnyk[0];
31696
32964
  }
32965
+ async #fetchAlias(url, options = {}) {
32966
+ const documentLoader = options.documentLoader ?? this._documentLoader ??
32967
+ fetchDocumentLoader;
32968
+ const contextLoader = options.contextLoader ?? this._contextLoader ??
32969
+ fetchDocumentLoader;
32970
+ let fetchResult;
32971
+ try {
32972
+ fetchResult = await documentLoader(url.href);
32973
+ }
32974
+ catch (error) {
32975
+ if (options.suppressError) {
32976
+ getLogger(["fedify", "vocab"]).error("Failed to fetch {url}: {error}", { error, url: url.href });
32977
+ return null;
32978
+ }
32979
+ throw error;
32980
+ }
32981
+ const { document } = fetchResult;
32982
+ try {
32983
+ return await Application.fromJsonLd(document, { documentLoader, contextLoader });
32984
+ }
32985
+ catch (e) {
32986
+ if (!(e instanceof TypeError))
32987
+ throw e;
32988
+ }
32989
+ try {
32990
+ return await Group.fromJsonLd(document, { documentLoader, contextLoader });
32991
+ }
32992
+ catch (e) {
32993
+ if (!(e instanceof TypeError))
32994
+ throw e;
32995
+ }
32996
+ try {
32997
+ return await Organization.fromJsonLd(document, { documentLoader, contextLoader });
32998
+ }
32999
+ catch (e) {
33000
+ if (!(e instanceof TypeError))
33001
+ throw e;
33002
+ }
33003
+ try {
33004
+ return await Person.fromJsonLd(document, { documentLoader, contextLoader });
33005
+ }
33006
+ catch (e) {
33007
+ if (!(e instanceof TypeError))
33008
+ throw e;
33009
+ }
33010
+ try {
33011
+ return await _h.fromJsonLd(document, { documentLoader, contextLoader });
33012
+ }
33013
+ catch (e) {
33014
+ if (!(e instanceof TypeError))
33015
+ throw e;
33016
+ }
33017
+ throw new TypeError("Expected an object of any type of: " +
33018
+ [
33019
+ "https://www.w3.org/ns/activitystreams#Application",
33020
+ "https://www.w3.org/ns/activitystreams#Group",
33021
+ "https://www.w3.org/ns/activitystreams#Organization",
33022
+ "https://www.w3.org/ns/activitystreams#Person",
33023
+ "https://www.w3.org/ns/activitystreams#Service",
33024
+ ].join(", "));
33025
+ }
33026
+ /**
33027
+ * Similar to
33028
+ * {@link Service.getAlias},
33029
+ * but returns its `@id` URL instead of the object itself.
33030
+ */
33031
+ get aliasId() {
33032
+ if (this.#_3NV7TGNhuABbryNjNi4wib4DgNpY.length < 1)
33033
+ return null;
33034
+ const v = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY[0];
33035
+ if (v instanceof URL)
33036
+ return v;
33037
+ return v.id;
33038
+ }
33039
+ /** The `aliases` (`alsoKnownAs`) property is used to specify alternative names
33040
+ * or aliases for an entity. It can be used to provide additional identifiers
33041
+ * or labels for an entity, which can be useful in scenarios where an entity
33042
+ * may have multiple names or aliases.
33043
+ */
33044
+ async getAlias(options = {}) {
33045
+ if (this.#_3NV7TGNhuABbryNjNi4wib4DgNpY.length < 1)
33046
+ return null;
33047
+ const v = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY[0];
33048
+ if (v instanceof URL) {
33049
+ const fetched = await this.#fetchAlias(v, options);
33050
+ if (fetched == null)
33051
+ return null;
33052
+ this.#_3NV7TGNhuABbryNjNi4wib4DgNpY[0] = fetched;
33053
+ return fetched;
33054
+ }
33055
+ return v;
33056
+ }
33057
+ /**
33058
+ * Similar to
33059
+ * {@link Service.getAliases},
33060
+ * but returns their `@id`s instead of the objects themselves.
33061
+ */
33062
+ get aliasIds() {
33063
+ return this.#_3NV7TGNhuABbryNjNi4wib4DgNpY.map((v) => v instanceof URL ? v : v.id).filter((id) => id !== null);
33064
+ }
33065
+ /** The `aliases` (`alsoKnownAs`) property is used to specify alternative names
33066
+ * or aliases for an entity. It can be used to provide additional identifiers
33067
+ * or labels for an entity, which can be useful in scenarios where an entity
33068
+ * may have multiple names or aliases.
33069
+ */
33070
+ async *getAliases(options = {}) {
33071
+ const vs = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY;
33072
+ for (let i = 0; i < vs.length; i++) {
33073
+ const v = vs[i];
33074
+ if (v instanceof URL) {
33075
+ const fetched = await this.#fetchAlias(v, options);
33076
+ if (fetched == null)
33077
+ continue;
33078
+ vs[i] = fetched;
33079
+ yield fetched;
33080
+ continue;
33081
+ }
33082
+ yield v;
33083
+ }
33084
+ }
31697
33085
  /**
31698
33086
  * Converts this object to a JSON-LD structure.
31699
33087
  * @param options The options to use.
@@ -31968,6 +33356,47 @@ export class Service extends Object {
31968
33356
  else if (compactItems.length === 1) {
31969
33357
  result["indexable"] = compactItems[0];
31970
33358
  }
33359
+ compactItems = [];
33360
+ for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY) {
33361
+ const item = v instanceof URL
33362
+ ? v.href
33363
+ : v instanceof Application
33364
+ ? await v.toJsonLd({
33365
+ ...options,
33366
+ format: undefined,
33367
+ context: undefined,
33368
+ })
33369
+ : v instanceof Group
33370
+ ? await v.toJsonLd({
33371
+ ...options,
33372
+ format: undefined,
33373
+ context: undefined,
33374
+ })
33375
+ : v instanceof Organization
33376
+ ? await v.toJsonLd({
33377
+ ...options,
33378
+ format: undefined,
33379
+ context: undefined,
33380
+ })
33381
+ : v instanceof Person
33382
+ ? await v.toJsonLd({
33383
+ ...options,
33384
+ format: undefined,
33385
+ context: undefined,
33386
+ })
33387
+ : await v.toJsonLd({
33388
+ ...options,
33389
+ format: undefined,
33390
+ context: undefined,
33391
+ });
33392
+ compactItems.push(item);
33393
+ }
33394
+ if (compactItems.length > 1) {
33395
+ result["alsoKnownAs"] = compactItems;
33396
+ }
33397
+ else if (compactItems.length === 1) {
33398
+ result["alsoKnownAs"] = compactItems[0];
33399
+ }
31971
33400
  result["type"] = "Service";
31972
33401
  if (this.id != null)
31973
33402
  result["id"] = this.id.href;
@@ -32160,6 +33589,24 @@ export class Service extends Object {
32160
33589
  if (array.length > 0) {
32161
33590
  values["http://joinmastodon.org/ns#indexable"] = array;
32162
33591
  }
33592
+ array = [];
33593
+ for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY) {
33594
+ const element = v instanceof URL
33595
+ ? { "@id": v.href }
33596
+ : v instanceof Application
33597
+ ? await v.toJsonLd(options)
33598
+ : v instanceof Group
33599
+ ? await v.toJsonLd(options)
33600
+ : v instanceof Organization
33601
+ ? await v.toJsonLd(options)
33602
+ : v instanceof Person
33603
+ ? await v.toJsonLd(options)
33604
+ : await v.toJsonLd(options);
33605
+ array.push(element);
33606
+ }
33607
+ if (array.length > 0) {
33608
+ values["https://www.w3.org/ns/activitystreams#alsoKnownAs"] = array;
33609
+ }
32163
33610
  values["@type"] = ["https://www.w3.org/ns/activitystreams#Service"];
32164
33611
  if (this.id != null)
32165
33612
  values["@id"] = this.id.href;
@@ -32246,7 +33693,7 @@ export class Service extends Object {
32246
33693
  // @ts-ignore: an internal option
32247
33694
  _fromSubclass: true,
32248
33695
  });
32249
- if (!(instance instanceof Service)) {
33696
+ if (!(instance instanceof _h)) {
32250
33697
  throw new TypeError("Unexpected type: " + instance.constructor.name);
32251
33698
  }
32252
33699
  const _3isuDgRAKSntq9XdbjiNxjwyPZAf = [];
@@ -32530,6 +33977,47 @@ export class Service extends Object {
32530
33977
  _2diCorzqPGQQqftp6e4SrCEwEnyk.push(v["@value"]);
32531
33978
  }
32532
33979
  instance.#_2diCorzqPGQQqftp6e4SrCEwEnyk = _2diCorzqPGQQqftp6e4SrCEwEnyk;
33980
+ const _3NV7TGNhuABbryNjNi4wib4DgNpY = [];
33981
+ const _3NV7TGNhuABbryNjNi4wib4DgNpY__array = values["https://www.w3.org/ns/activitystreams#alsoKnownAs"];
33982
+ for (const v of _3NV7TGNhuABbryNjNi4wib4DgNpY__array == null
33983
+ ? []
33984
+ : _3NV7TGNhuABbryNjNi4wib4DgNpY__array.length === 1 &&
33985
+ "@list" in _3NV7TGNhuABbryNjNi4wib4DgNpY__array[0]
33986
+ ? _3NV7TGNhuABbryNjNi4wib4DgNpY__array[0]["@list"]
33987
+ : _3NV7TGNhuABbryNjNi4wib4DgNpY__array) {
33988
+ if (v == null)
33989
+ continue;
33990
+ if (typeof v === "object" && "@id" in v && !("@type" in v) &&
33991
+ globalThis.Object.keys(v).length === 1) {
33992
+ _3NV7TGNhuABbryNjNi4wib4DgNpY.push(new URL(v["@id"]));
33993
+ continue;
33994
+ }
33995
+ const decoded = typeof v === "object" && "@type" in v &&
33996
+ Array.isArray(v["@type"]) &&
33997
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Application")
33998
+ ? await Application.fromJsonLd(v, options)
33999
+ : typeof v === "object" && "@type" in v &&
34000
+ Array.isArray(v["@type"]) &&
34001
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Group")
34002
+ ? await Group.fromJsonLd(v, options)
34003
+ : typeof v === "object" && "@type" in v &&
34004
+ Array.isArray(v["@type"]) &&
34005
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Organization")
34006
+ ? await Organization.fromJsonLd(v, options)
34007
+ : typeof v === "object" && "@type" in v &&
34008
+ Array.isArray(v["@type"]) &&
34009
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Person")
34010
+ ? await Person.fromJsonLd(v, options)
34011
+ : typeof v === "object" && "@type" in v &&
34012
+ Array.isArray(v["@type"]) &&
34013
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Service")
34014
+ ? await _h.fromJsonLd(v, options)
34015
+ : undefined;
34016
+ if (typeof decoded === "undefined")
34017
+ continue;
34018
+ _3NV7TGNhuABbryNjNi4wib4DgNpY.push(decoded);
34019
+ }
34020
+ instance.#_3NV7TGNhuABbryNjNi4wib4DgNpY = _3NV7TGNhuABbryNjNi4wib4DgNpY;
32533
34021
  if (!("_fromSubclass" in options) || !options._fromSubclass) {
32534
34022
  try {
32535
34023
  instance.#cachedJsonLd = structuredClone(json);
@@ -32746,6 +34234,22 @@ export class Service extends Object {
32746
34234
  if (_2diCorzqPGQQqftp6e4SrCEwEnyk.length == 1) {
32747
34235
  proxy.indexable = _2diCorzqPGQQqftp6e4SrCEwEnyk[0];
32748
34236
  }
34237
+ const _3NV7TGNhuABbryNjNi4wib4DgNpY = this.#_3NV7TGNhuABbryNjNi4wib4DgNpY
34238
+ // deno-lint-ignore no-explicit-any
34239
+ .map((v) => v instanceof URL
34240
+ ? {
34241
+ [Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
34242
+ [Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
34243
+ }
34244
+ : v);
34245
+ if (_3NV7TGNhuABbryNjNi4wib4DgNpY.length == 1) {
34246
+ proxy.alias = _3NV7TGNhuABbryNjNi4wib4DgNpY[0];
34247
+ }
34248
+ if (_3NV7TGNhuABbryNjNi4wib4DgNpY.length > 1 ||
34249
+ !("alias" in proxy) &&
34250
+ _3NV7TGNhuABbryNjNi4wib4DgNpY.length > 0) {
34251
+ proxy.aliases = _3NV7TGNhuABbryNjNi4wib4DgNpY;
34252
+ }
32749
34253
  return proxy;
32750
34254
  }
32751
34255
  [Symbol.for("Deno.customInspect")](inspect, options) {
@@ -32757,6 +34261,7 @@ export class Service extends Object {
32757
34261
  return "Service " + inspect(proxy, options);
32758
34262
  }
32759
34263
  }
34264
+ _h = Service;
32760
34265
  /** Contents of {@link Object}'s `source`.
32761
34266
  */
32762
34267
  export class Source {