@fedify/fedify 1.1.0-dev.444 → 1.1.0-dev.447

Sign up to get free protection for your applications and to get access to all the features.
@@ -3882,7 +3882,9 @@ export class Object {
3882
3882
  continue;
3883
3883
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
3884
3884
  globalThis.Object.keys(v).length === 1) {
3885
- _49BipA5dq9eoH8LX8xdsVumveTca_attachment.push(new URL(v["@id"]));
3885
+ _49BipA5dq9eoH8LX8xdsVumveTca_attachment.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
3886
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
3887
+ : new URL(v["@id"]));
3886
3888
  continue;
3887
3889
  }
3888
3890
  const decoded = typeof v === "object" && "@type" in v &&
@@ -3976,7 +3978,9 @@ export class Object {
3976
3978
  continue;
3977
3979
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
3978
3980
  globalThis.Object.keys(v).length === 1) {
3979
- _42CGqJ94zgQ3ZBbfHwD8Hrr2L5Py_attributedTo.push(new URL(v["@id"]));
3981
+ _42CGqJ94zgQ3ZBbfHwD8Hrr2L5Py_attributedTo.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
3982
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
3983
+ : new URL(v["@id"]));
3980
3984
  continue;
3981
3985
  }
3982
3986
  const decoded = typeof v === "object" && "@type" in v &&
@@ -4018,7 +4022,9 @@ export class Object {
4018
4022
  continue;
4019
4023
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
4020
4024
  globalThis.Object.keys(v).length === 1) {
4021
- _3ocC3VVi88cEd5sPWL8djkZsvTN6_audience.push(new URL(v["@id"]));
4025
+ _3ocC3VVi88cEd5sPWL8djkZsvTN6_audience.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
4026
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
4027
+ : new URL(v["@id"]));
4022
4028
  continue;
4023
4029
  }
4024
4030
  _3ocC3VVi88cEd5sPWL8djkZsvTN6_audience.push(await _a.fromJsonLd(v, options));
@@ -4061,7 +4067,9 @@ export class Object {
4061
4067
  continue;
4062
4068
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
4063
4069
  globalThis.Object.keys(v).length === 1) {
4064
- _3mhZzGXSpQ431mBSz2kvych22v4e_context.push(new URL(v["@id"]));
4070
+ _3mhZzGXSpQ431mBSz2kvych22v4e_context.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
4071
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
4072
+ : new URL(v["@id"]));
4065
4073
  continue;
4066
4074
  }
4067
4075
  const decoded = typeof v === "object" && "@type" in v &&
@@ -4189,7 +4197,9 @@ export class Object {
4189
4197
  continue;
4190
4198
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
4191
4199
  globalThis.Object.keys(v).length === 1) {
4192
- _86xFhmgBapoMvYqjbjRuDPayTrS_generator.push(new URL(v["@id"]));
4200
+ _86xFhmgBapoMvYqjbjRuDPayTrS_generator.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
4201
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
4202
+ : new URL(v["@id"]));
4193
4203
  continue;
4194
4204
  }
4195
4205
  const decoded = typeof v === "object" && "@type" in v &&
@@ -4279,7 +4289,9 @@ export class Object {
4279
4289
  continue;
4280
4290
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
4281
4291
  globalThis.Object.keys(v).length === 1) {
4282
- _33CjRLy5ujtsUrwRSCrsggvGdKuR_icon.push(new URL(v["@id"]));
4292
+ _33CjRLy5ujtsUrwRSCrsggvGdKuR_icon.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
4293
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
4294
+ : new URL(v["@id"]));
4283
4295
  continue;
4284
4296
  }
4285
4297
  _33CjRLy5ujtsUrwRSCrsggvGdKuR_icon.push(await Image.fromJsonLd(v, options));
@@ -4298,7 +4310,9 @@ export class Object {
4298
4310
  continue;
4299
4311
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
4300
4312
  globalThis.Object.keys(v).length === 1) {
4301
- _3dXrUdkARxwyJLtJcYi1AJ92H41U_image.push(new URL(v["@id"]));
4313
+ _3dXrUdkARxwyJLtJcYi1AJ92H41U_image.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
4314
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
4315
+ : new URL(v["@id"]));
4302
4316
  continue;
4303
4317
  }
4304
4318
  _3dXrUdkARxwyJLtJcYi1AJ92H41U_image.push(await Image.fromJsonLd(v, options));
@@ -4317,7 +4331,9 @@ export class Object {
4317
4331
  continue;
4318
4332
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
4319
4333
  globalThis.Object.keys(v).length === 1) {
4320
- _3fpbDrvZgf3Kq1a5V9aByFn8kx3s_inReplyTo.push(new URL(v["@id"]));
4334
+ _3fpbDrvZgf3Kq1a5V9aByFn8kx3s_inReplyTo.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
4335
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
4336
+ : new URL(v["@id"]));
4321
4337
  continue;
4322
4338
  }
4323
4339
  const decoded = typeof v === "object" && "@type" in v &&
@@ -4407,7 +4423,9 @@ export class Object {
4407
4423
  continue;
4408
4424
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
4409
4425
  globalThis.Object.keys(v).length === 1) {
4410
- _31k5MUZJsnsPNg8dQQJieWaXTFnR_location.push(new URL(v["@id"]));
4426
+ _31k5MUZJsnsPNg8dQQJieWaXTFnR_location.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
4427
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
4428
+ : new URL(v["@id"]));
4411
4429
  continue;
4412
4430
  }
4413
4431
  const decoded = typeof v === "object" && "@type" in v &&
@@ -4497,7 +4515,9 @@ export class Object {
4497
4515
  continue;
4498
4516
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
4499
4517
  globalThis.Object.keys(v).length === 1) {
4500
- _gCVTegXxWWCw6wWRxa1QF65zusg_preview.push(new URL(v["@id"]));
4518
+ _gCVTegXxWWCw6wWRxa1QF65zusg_preview.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
4519
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
4520
+ : new URL(v["@id"]));
4501
4521
  continue;
4502
4522
  }
4503
4523
  const decoded = typeof v === "object" && "@type" in v &&
@@ -4601,7 +4621,9 @@ export class Object {
4601
4621
  continue;
4602
4622
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
4603
4623
  globalThis.Object.keys(v).length === 1) {
4604
- _7UpwM3JWcXhADcscukEehBorf6k_replies.push(new URL(v["@id"]));
4624
+ _7UpwM3JWcXhADcscukEehBorf6k_replies.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
4625
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
4626
+ : new URL(v["@id"]));
4605
4627
  continue;
4606
4628
  }
4607
4629
  _7UpwM3JWcXhADcscukEehBorf6k_replies.push(await Collection.fromJsonLd(v, options));
@@ -4658,7 +4680,9 @@ export class Object {
4658
4680
  continue;
4659
4681
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
4660
4682
  globalThis.Object.keys(v).length === 1) {
4661
- _5chuqj6s95p5gg2sk1HntGfarRf_tag.push(new URL(v["@id"]));
4683
+ _5chuqj6s95p5gg2sk1HntGfarRf_tag.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
4684
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
4685
+ : new URL(v["@id"]));
4662
4686
  continue;
4663
4687
  }
4664
4688
  const decoded = typeof v === "object" && "@type" in v &&
@@ -4791,7 +4815,9 @@ export class Object {
4791
4815
  continue;
4792
4816
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
4793
4817
  globalThis.Object.keys(v).length === 1) {
4794
- _3hFbw7DTpHhq3cvVhkY8njhcsXbd_to.push(new URL(v["@id"]));
4818
+ _3hFbw7DTpHhq3cvVhkY8njhcsXbd_to.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
4819
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
4820
+ : new URL(v["@id"]));
4795
4821
  continue;
4796
4822
  }
4797
4823
  _3hFbw7DTpHhq3cvVhkY8njhcsXbd_to.push(await _a.fromJsonLd(v, options));
@@ -4810,7 +4836,9 @@ export class Object {
4810
4836
  continue;
4811
4837
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
4812
4838
  globalThis.Object.keys(v).length === 1) {
4813
- _aLZupjwL8XB7tzdLgCMXdjZ6qej_bto.push(new URL(v["@id"]));
4839
+ _aLZupjwL8XB7tzdLgCMXdjZ6qej_bto.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
4840
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
4841
+ : new URL(v["@id"]));
4814
4842
  continue;
4815
4843
  }
4816
4844
  _aLZupjwL8XB7tzdLgCMXdjZ6qej_bto.push(await _a.fromJsonLd(v, options));
@@ -4829,7 +4857,9 @@ export class Object {
4829
4857
  continue;
4830
4858
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
4831
4859
  globalThis.Object.keys(v).length === 1) {
4832
- _42a1SvBs24QSLzKcfjCyNTjW5a1g_cc.push(new URL(v["@id"]));
4860
+ _42a1SvBs24QSLzKcfjCyNTjW5a1g_cc.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
4861
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
4862
+ : new URL(v["@id"]));
4833
4863
  continue;
4834
4864
  }
4835
4865
  _42a1SvBs24QSLzKcfjCyNTjW5a1g_cc.push(await _a.fromJsonLd(v, options));
@@ -4848,7 +4878,9 @@ export class Object {
4848
4878
  continue;
4849
4879
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
4850
4880
  globalThis.Object.keys(v).length === 1) {
4851
- _3qvegKUB8YLgTXRpEf8E6JZSkz2H_bcc.push(new URL(v["@id"]));
4881
+ _3qvegKUB8YLgTXRpEf8E6JZSkz2H_bcc.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
4882
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
4883
+ : new URL(v["@id"]));
4852
4884
  continue;
4853
4885
  }
4854
4886
  _3qvegKUB8YLgTXRpEf8E6JZSkz2H_bcc.push(await _a.fromJsonLd(v, options));
@@ -4923,7 +4955,9 @@ export class Object {
4923
4955
  continue;
4924
4956
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
4925
4957
  globalThis.Object.keys(v).length === 1) {
4926
- _42rPnotok1ivQ2RNCKNbeFJgx8b8_proof.push(new URL(v["@id"]));
4958
+ _42rPnotok1ivQ2RNCKNbeFJgx8b8_proof.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
4959
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
4960
+ : new URL(v["@id"]));
4927
4961
  continue;
4928
4962
  }
4929
4963
  _42rPnotok1ivQ2RNCKNbeFJgx8b8_proof.push(await DataIntegrityProof.fromJsonLd(v, options));
@@ -7073,7 +7107,9 @@ export class Activity extends Object {
7073
7107
  continue;
7074
7108
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
7075
7109
  globalThis.Object.keys(v).length === 1) {
7076
- _2DjTTboo3CNHU2a2JQqUSE2dbv9D_actor.push(new URL(v["@id"]));
7110
+ _2DjTTboo3CNHU2a2JQqUSE2dbv9D_actor.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
7111
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
7112
+ : new URL(v["@id"]));
7077
7113
  continue;
7078
7114
  }
7079
7115
  const decoded = typeof v === "object" && "@type" in v &&
@@ -7115,7 +7151,9 @@ export class Activity extends Object {
7115
7151
  continue;
7116
7152
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
7117
7153
  globalThis.Object.keys(v).length === 1) {
7118
- _2MH19yxjn1wnHsNfa5n4JBhJzxyc_object.push(new URL(v["@id"]));
7154
+ _2MH19yxjn1wnHsNfa5n4JBhJzxyc_object.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
7155
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
7156
+ : new URL(v["@id"]));
7119
7157
  continue;
7120
7158
  }
7121
7159
  _2MH19yxjn1wnHsNfa5n4JBhJzxyc_object.push(await Object.fromJsonLd(v, options));
@@ -7134,7 +7172,9 @@ export class Activity extends Object {
7134
7172
  continue;
7135
7173
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
7136
7174
  globalThis.Object.keys(v).length === 1) {
7137
- _3JQCmF2Ww56Ag9EWRYoSZRDNCYtF_target.push(new URL(v["@id"]));
7175
+ _3JQCmF2Ww56Ag9EWRYoSZRDNCYtF_target.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
7176
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
7177
+ : new URL(v["@id"]));
7138
7178
  continue;
7139
7179
  }
7140
7180
  _3JQCmF2Ww56Ag9EWRYoSZRDNCYtF_target.push(await Object.fromJsonLd(v, options));
@@ -7153,7 +7193,9 @@ export class Activity extends Object {
7153
7193
  continue;
7154
7194
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
7155
7195
  globalThis.Object.keys(v).length === 1) {
7156
- _u4QGFbRFcYmPEKGbPv1hpBR9r5G_result.push(new URL(v["@id"]));
7196
+ _u4QGFbRFcYmPEKGbPv1hpBR9r5G_result.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
7197
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
7198
+ : new URL(v["@id"]));
7157
7199
  continue;
7158
7200
  }
7159
7201
  _u4QGFbRFcYmPEKGbPv1hpBR9r5G_result.push(await Object.fromJsonLd(v, options));
@@ -7172,7 +7214,9 @@ export class Activity extends Object {
7172
7214
  continue;
7173
7215
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
7174
7216
  globalThis.Object.keys(v).length === 1) {
7175
- _25zu2s3VxVujgEKqrDycjE284XQR_origin.push(new URL(v["@id"]));
7217
+ _25zu2s3VxVujgEKqrDycjE284XQR_origin.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
7218
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
7219
+ : new URL(v["@id"]));
7176
7220
  continue;
7177
7221
  }
7178
7222
  _25zu2s3VxVujgEKqrDycjE284XQR_origin.push(await Object.fromJsonLd(v, options));
@@ -7191,7 +7235,9 @@ export class Activity extends Object {
7191
7235
  continue;
7192
7236
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
7193
7237
  globalThis.Object.keys(v).length === 1) {
7194
- _3c5t2x7DYRo2shwTxpkd4kYSS5WQ_instrument.push(new URL(v["@id"]));
7238
+ _3c5t2x7DYRo2shwTxpkd4kYSS5WQ_instrument.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
7239
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
7240
+ : new URL(v["@id"]));
7195
7241
  continue;
7196
7242
  }
7197
7243
  _3c5t2x7DYRo2shwTxpkd4kYSS5WQ_instrument.push(await Object.fromJsonLd(v, options));
@@ -8704,7 +8750,9 @@ export class DataIntegrityProof {
8704
8750
  continue;
8705
8751
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
8706
8752
  globalThis.Object.keys(v).length === 1) {
8707
- _2mHVKxqA7zncjveJrDEo3pWpMZqg_verificationMethod.push(new URL(v["@id"]));
8753
+ _2mHVKxqA7zncjveJrDEo3pWpMZqg_verificationMethod.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
8754
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
8755
+ : new URL(v["@id"]));
8708
8756
  continue;
8709
8757
  }
8710
8758
  _2mHVKxqA7zncjveJrDEo3pWpMZqg_verificationMethod.push(await Multikey.fromJsonLd(v, options));
@@ -9221,7 +9269,9 @@ export class CryptographicKey {
9221
9269
  continue;
9222
9270
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
9223
9271
  globalThis.Object.keys(v).length === 1) {
9224
- _5UJq9NDh3ZHgswFwwdVxQvJxdx2_owner.push(new URL(v["@id"]));
9272
+ _5UJq9NDh3ZHgswFwwdVxQvJxdx2_owner.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
9273
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
9274
+ : new URL(v["@id"]));
9225
9275
  continue;
9226
9276
  }
9227
9277
  const decoded = typeof v === "object" && "@type" in v &&
@@ -9713,7 +9763,9 @@ export class Multikey {
9713
9763
  continue;
9714
9764
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
9715
9765
  globalThis.Object.keys(v).length === 1) {
9716
- _2yr3eUBTP6cNcyaxKzAXWjFsnGzN_controller.push(new URL(v["@id"]));
9766
+ _2yr3eUBTP6cNcyaxKzAXWjFsnGzN_controller.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
9767
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
9768
+ : new URL(v["@id"]));
9717
9769
  continue;
9718
9770
  }
9719
9771
  const decoded = typeof v === "object" && "@type" in v &&
@@ -10338,6 +10390,7 @@ export class Application extends Object {
10338
10390
  #_2kGKkJtoFWg8c18PaVSqj9NKP4t7_suspended = [];
10339
10391
  #_79S8K4f5J9MWUgCxziRyUe6PTHZ_memorial = [];
10340
10392
  #_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable = [];
10393
+ #_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [];
10341
10394
  #_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = [];
10342
10395
  #_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [];
10343
10396
  #_2xEU4QtkC53RAun67T81Egqt9vmL_isCat = [];
@@ -10585,6 +10638,20 @@ export class Application extends Object {
10585
10638
  "boolean" + ".");
10586
10639
  }
10587
10640
  }
10641
+ if ("successor" in values && values.successor != null) {
10642
+ if (values.successor instanceof _b ||
10643
+ values.successor instanceof Group ||
10644
+ values.successor instanceof Organization ||
10645
+ values.successor instanceof Person ||
10646
+ values.successor instanceof Service || values.successor instanceof URL) {
10647
+ // @ts-ignore: type is checked above.
10648
+ this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [values.successor];
10649
+ }
10650
+ else {
10651
+ throw new TypeError("The successor must be of type " +
10652
+ "Application | Group | Organization | Person | Service | URL" + ".");
10653
+ }
10654
+ }
10588
10655
  if ("alias" in values && values.alias != null) {
10589
10656
  if (values.alias instanceof _b || values.alias instanceof Group ||
10590
10657
  values.alias instanceof Organization ||
@@ -10934,6 +11001,22 @@ export class Application extends Object {
10934
11001
  "boolean" + ".");
10935
11002
  }
10936
11003
  }
11004
+ clone.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo =
11005
+ this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo;
11006
+ if ("successor" in values && values.successor != null) {
11007
+ if (values.successor instanceof _b ||
11008
+ values.successor instanceof Group ||
11009
+ values.successor instanceof Organization ||
11010
+ values.successor instanceof Person ||
11011
+ values.successor instanceof Service || values.successor instanceof URL) {
11012
+ // @ts-ignore: type is checked above.
11013
+ clone.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [values.successor];
11014
+ }
11015
+ else {
11016
+ throw new TypeError("The successor must be of type " +
11017
+ "Application | Group | Organization | Person | Service | URL" + ".");
11018
+ }
11019
+ }
10937
11020
  clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs =
10938
11021
  this.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs;
10939
11022
  if ("alias" in values && values.alias != null) {
@@ -11728,6 +11811,95 @@ export class Application extends Object {
11728
11811
  return null;
11729
11812
  return this.#_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable[0];
11730
11813
  }
11814
+ async #fetchSuccessor(url, options = {}) {
11815
+ const documentLoader = options.documentLoader ?? this._documentLoader ??
11816
+ fetchDocumentLoader;
11817
+ const contextLoader = options.contextLoader ?? this._contextLoader ??
11818
+ fetchDocumentLoader;
11819
+ let fetchResult;
11820
+ try {
11821
+ fetchResult = await documentLoader(url.href);
11822
+ }
11823
+ catch (error) {
11824
+ if (options.suppressError) {
11825
+ getLogger(["fedify", "vocab"]).error("Failed to fetch {url}: {error}", { error, url: url.href });
11826
+ return null;
11827
+ }
11828
+ throw error;
11829
+ }
11830
+ const { document } = fetchResult;
11831
+ try {
11832
+ return await _b.fromJsonLd(document, { documentLoader, contextLoader });
11833
+ }
11834
+ catch (e) {
11835
+ if (!(e instanceof TypeError))
11836
+ throw e;
11837
+ }
11838
+ try {
11839
+ return await Group.fromJsonLd(document, { documentLoader, contextLoader });
11840
+ }
11841
+ catch (e) {
11842
+ if (!(e instanceof TypeError))
11843
+ throw e;
11844
+ }
11845
+ try {
11846
+ return await Organization.fromJsonLd(document, { documentLoader, contextLoader });
11847
+ }
11848
+ catch (e) {
11849
+ if (!(e instanceof TypeError))
11850
+ throw e;
11851
+ }
11852
+ try {
11853
+ return await Person.fromJsonLd(document, { documentLoader, contextLoader });
11854
+ }
11855
+ catch (e) {
11856
+ if (!(e instanceof TypeError))
11857
+ throw e;
11858
+ }
11859
+ try {
11860
+ return await Service.fromJsonLd(document, { documentLoader, contextLoader });
11861
+ }
11862
+ catch (e) {
11863
+ if (!(e instanceof TypeError))
11864
+ throw e;
11865
+ }
11866
+ throw new TypeError("Expected an object of any type of: " +
11867
+ [
11868
+ "https://www.w3.org/ns/activitystreams#Application",
11869
+ "https://www.w3.org/ns/activitystreams#Group",
11870
+ "https://www.w3.org/ns/activitystreams#Organization",
11871
+ "https://www.w3.org/ns/activitystreams#Person",
11872
+ "https://www.w3.org/ns/activitystreams#Service",
11873
+ ].join(", "));
11874
+ }
11875
+ /**
11876
+ * Similar to
11877
+ * {@link Application.getSuccessor},
11878
+ * but returns its `@id` URL instead of the object itself.
11879
+ */
11880
+ get successorId() {
11881
+ if (this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.length < 1)
11882
+ return null;
11883
+ const v = this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0];
11884
+ if (v instanceof URL)
11885
+ return v;
11886
+ return v.id;
11887
+ }
11888
+ /** Signifies that an actor has been moved to a different ID. Used in Mastodon-style data portability with the {@link Move} activity; see [ActivityPub Data Portability/Move Action](https://swicg.github.io/activitypub-data-portability/#move-action) for more details.
11889
+ */
11890
+ async getSuccessor(options = {}) {
11891
+ if (this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.length < 1)
11892
+ return null;
11893
+ const v = this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0];
11894
+ if (v instanceof URL) {
11895
+ const fetched = await this.#fetchSuccessor(v, options);
11896
+ if (fetched == null)
11897
+ return null;
11898
+ this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0] = fetched;
11899
+ return fetched;
11900
+ }
11901
+ return v;
11902
+ }
11731
11903
  async #fetchAlias(url, options = {}) {
11732
11904
  const documentLoader = options.documentLoader ?? this._documentLoader ??
11733
11905
  fetchDocumentLoader;
@@ -12192,6 +12364,46 @@ export class Application extends Object {
12192
12364
  : compactItems[0];
12193
12365
  }
12194
12366
  compactItems = [];
12367
+ for (const v of this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo) {
12368
+ const item = v instanceof URL
12369
+ ? v.href
12370
+ : v instanceof _b
12371
+ ? await v.toJsonLd({
12372
+ ...options,
12373
+ format: undefined,
12374
+ context: undefined,
12375
+ })
12376
+ : v instanceof Group
12377
+ ? await v.toJsonLd({
12378
+ ...options,
12379
+ format: undefined,
12380
+ context: undefined,
12381
+ })
12382
+ : v instanceof Organization
12383
+ ? await v.toJsonLd({
12384
+ ...options,
12385
+ format: undefined,
12386
+ context: undefined,
12387
+ })
12388
+ : v instanceof Person
12389
+ ? await v.toJsonLd({
12390
+ ...options,
12391
+ format: undefined,
12392
+ context: undefined,
12393
+ })
12394
+ : await v.toJsonLd({
12395
+ ...options,
12396
+ format: undefined,
12397
+ context: undefined,
12398
+ });
12399
+ compactItems.push(item);
12400
+ }
12401
+ if (compactItems.length > 0) {
12402
+ result["movedTo"] = compactItems.length > 1
12403
+ ? compactItems
12404
+ : compactItems[0];
12405
+ }
12406
+ compactItems = [];
12195
12407
  for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs) {
12196
12408
  const item = v instanceof URL
12197
12409
  ? v.href
@@ -12265,7 +12477,9 @@ export class Application extends Object {
12265
12477
  "https://www.w3.org/ns/did/v1",
12266
12478
  "https://w3id.org/security/multikey/v1",
12267
12479
  {
12480
+ "alsoKnownAs": { "@id": "as:alsoKnownAs", "@type": "@id" },
12268
12481
  "manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
12482
+ "movedTo": { "@id": "as:movedTo", "@type": "@id" },
12269
12483
  "toot": "http://joinmastodon.org/ns#",
12270
12484
  "featured": { "@id": "toot:featured", "@type": "@id" },
12271
12485
  "featuredTags": { "@id": "toot:featuredTags", "@type": "@id" },
@@ -12468,6 +12682,25 @@ export class Application extends Object {
12468
12682
  values["http://joinmastodon.org/ns#indexable"] = propValue;
12469
12683
  }
12470
12684
  array = [];
12685
+ for (const v of this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo) {
12686
+ const element = v instanceof URL
12687
+ ? { "@id": v.href }
12688
+ : v instanceof _b
12689
+ ? await v.toJsonLd(options)
12690
+ : v instanceof Group
12691
+ ? await v.toJsonLd(options)
12692
+ : v instanceof Organization
12693
+ ? await v.toJsonLd(options)
12694
+ : v instanceof Person
12695
+ ? await v.toJsonLd(options)
12696
+ : await v.toJsonLd(options);
12697
+ array.push(element);
12698
+ }
12699
+ if (array.length > 0) {
12700
+ const propValue = array;
12701
+ values["https://www.w3.org/ns/activitystreams#movedTo"] = propValue;
12702
+ }
12703
+ array = [];
12471
12704
  for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs) {
12472
12705
  const element = v instanceof URL
12473
12706
  ? { "@id": v.href }
@@ -12520,7 +12753,9 @@ export class Application extends Object {
12520
12753
  "https://www.w3.org/ns/did/v1",
12521
12754
  "https://w3id.org/security/multikey/v1",
12522
12755
  {
12756
+ "alsoKnownAs": { "@id": "as:alsoKnownAs", "@type": "@id" },
12523
12757
  "manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
12758
+ "movedTo": { "@id": "as:movedTo", "@type": "@id" },
12524
12759
  "toot": "http://joinmastodon.org/ns#",
12525
12760
  "featured": { "@id": "toot:featured", "@type": "@id" },
12526
12761
  "featuredTags": { "@id": "toot:featuredTags", "@type": "@id" },
@@ -12643,7 +12878,9 @@ export class Application extends Object {
12643
12878
  continue;
12644
12879
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
12645
12880
  globalThis.Object.keys(v).length === 1) {
12646
- _axq166E2eZADq34V4MYUc8KMZdC_publicKey.push(new URL(v["@id"]));
12881
+ _axq166E2eZADq34V4MYUc8KMZdC_publicKey.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
12882
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
12883
+ : new URL(v["@id"]));
12647
12884
  continue;
12648
12885
  }
12649
12886
  _axq166E2eZADq34V4MYUc8KMZdC_publicKey.push(await CryptographicKey.fromJsonLd(v, options));
@@ -12662,7 +12899,9 @@ export class Application extends Object {
12662
12899
  continue;
12663
12900
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
12664
12901
  globalThis.Object.keys(v).length === 1) {
12665
- _4EHQFWZSz1k1d4LmPrQiMba2GbP3_assertionMethod.push(new URL(v["@id"]));
12902
+ _4EHQFWZSz1k1d4LmPrQiMba2GbP3_assertionMethod.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
12903
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
12904
+ : new URL(v["@id"]));
12666
12905
  continue;
12667
12906
  }
12668
12907
  _4EHQFWZSz1k1d4LmPrQiMba2GbP3_assertionMethod.push(await Multikey.fromJsonLd(v, options));
@@ -12697,7 +12936,9 @@ export class Application extends Object {
12697
12936
  continue;
12698
12937
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
12699
12938
  globalThis.Object.keys(v).length === 1) {
12700
- _3ghX3VfZXXbLvhCRH7QJqpzLrXjB_inbox.push(new URL(v["@id"]));
12939
+ _3ghX3VfZXXbLvhCRH7QJqpzLrXjB_inbox.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
12940
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
12941
+ : new URL(v["@id"]));
12701
12942
  continue;
12702
12943
  }
12703
12944
  _3ghX3VfZXXbLvhCRH7QJqpzLrXjB_inbox.push(await OrderedCollection.fromJsonLd(v, options));
@@ -12716,7 +12957,9 @@ export class Application extends Object {
12716
12957
  continue;
12717
12958
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
12718
12959
  globalThis.Object.keys(v).length === 1) {
12719
- _41QwhqJouoLg3h8dRPKat21brynC_outbox.push(new URL(v["@id"]));
12960
+ _41QwhqJouoLg3h8dRPKat21brynC_outbox.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
12961
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
12962
+ : new URL(v["@id"]));
12720
12963
  continue;
12721
12964
  }
12722
12965
  _41QwhqJouoLg3h8dRPKat21brynC_outbox.push(await OrderedCollection.fromJsonLd(v, options));
@@ -12735,7 +12978,9 @@ export class Application extends Object {
12735
12978
  continue;
12736
12979
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
12737
12980
  globalThis.Object.keys(v).length === 1) {
12738
- _3yAv8jymNfNuJUDuBzJ1NQhdbAee_following.push(new URL(v["@id"]));
12981
+ _3yAv8jymNfNuJUDuBzJ1NQhdbAee_following.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
12982
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
12983
+ : new URL(v["@id"]));
12739
12984
  continue;
12740
12985
  }
12741
12986
  _3yAv8jymNfNuJUDuBzJ1NQhdbAee_following.push(await Collection.fromJsonLd(v, options));
@@ -12754,7 +12999,9 @@ export class Application extends Object {
12754
12999
  continue;
12755
13000
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
12756
13001
  globalThis.Object.keys(v).length === 1) {
12757
- _BBCTgfphhsFzpVfKTykGSpBNwoA_followers.push(new URL(v["@id"]));
13002
+ _BBCTgfphhsFzpVfKTykGSpBNwoA_followers.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
13003
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
13004
+ : new URL(v["@id"]));
12758
13005
  continue;
12759
13006
  }
12760
13007
  _BBCTgfphhsFzpVfKTykGSpBNwoA_followers.push(await Collection.fromJsonLd(v, options));
@@ -12773,7 +13020,9 @@ export class Application extends Object {
12773
13020
  continue;
12774
13021
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
12775
13022
  globalThis.Object.keys(v).length === 1) {
12776
- _3bgkPwJanyTCoVFM9ovRcus8tKkU_liked.push(new URL(v["@id"]));
13023
+ _3bgkPwJanyTCoVFM9ovRcus8tKkU_liked.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
13024
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
13025
+ : new URL(v["@id"]));
12777
13026
  continue;
12778
13027
  }
12779
13028
  _3bgkPwJanyTCoVFM9ovRcus8tKkU_liked.push(await Collection.fromJsonLd(v, options));
@@ -12792,7 +13041,9 @@ export class Application extends Object {
12792
13041
  continue;
12793
13042
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
12794
13043
  globalThis.Object.keys(v).length === 1) {
12795
- _4N1vBJzXDf8NbBumeECQMFvKetja_featured.push(new URL(v["@id"]));
13044
+ _4N1vBJzXDf8NbBumeECQMFvKetja_featured.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
13045
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
13046
+ : new URL(v["@id"]));
12796
13047
  continue;
12797
13048
  }
12798
13049
  _4N1vBJzXDf8NbBumeECQMFvKetja_featured.push(await Collection.fromJsonLd(v, options));
@@ -12811,7 +13062,9 @@ export class Application extends Object {
12811
13062
  continue;
12812
13063
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
12813
13064
  globalThis.Object.keys(v).length === 1) {
12814
- _2MxnRRLq9iPzx5CFq2NPrXdUDCac_featuredTags.push(new URL(v["@id"]));
13065
+ _2MxnRRLq9iPzx5CFq2NPrXdUDCac_featuredTags.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
13066
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
13067
+ : new URL(v["@id"]));
12815
13068
  continue;
12816
13069
  }
12817
13070
  _2MxnRRLq9iPzx5CFq2NPrXdUDCac_featuredTags.push(await Collection.fromJsonLd(v, options));
@@ -12830,7 +13083,9 @@ export class Application extends Object {
12830
13083
  continue;
12831
13084
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
12832
13085
  globalThis.Object.keys(v).length === 1) {
12833
- _3sG2Hdwn9qzKGu9mpYkqakAMUkH9_streams.push(new URL(v["@id"]));
13086
+ _3sG2Hdwn9qzKGu9mpYkqakAMUkH9_streams.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
13087
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
13088
+ : new URL(v["@id"]));
12834
13089
  continue;
12835
13090
  }
12836
13091
  _3sG2Hdwn9qzKGu9mpYkqakAMUkH9_streams.push(await Collection.fromJsonLd(v, options));
@@ -12907,6 +13162,50 @@ export class Application extends Object {
12907
13162
  }
12908
13163
  instance.#_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable =
12909
13164
  _2diCorzqPGQQqftp6e4SrCEwEnyk_indexable;
13165
+ const _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [];
13166
+ let _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array = values["https://www.w3.org/ns/activitystreams#movedTo"];
13167
+ for (const v of _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array == null
13168
+ ? []
13169
+ : _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array.length === 1 &&
13170
+ "@list" in _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array[0]
13171
+ ? _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array[0]["@list"]
13172
+ : _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array) {
13173
+ if (v == null)
13174
+ continue;
13175
+ if (typeof v === "object" && "@id" in v && !("@type" in v) &&
13176
+ globalThis.Object.keys(v).length === 1) {
13177
+ _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
13178
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
13179
+ : new URL(v["@id"]));
13180
+ continue;
13181
+ }
13182
+ const decoded = typeof v === "object" && "@type" in v &&
13183
+ Array.isArray(v["@type"]) &&
13184
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Application")
13185
+ ? await _b.fromJsonLd(v, options)
13186
+ : typeof v === "object" && "@type" in v &&
13187
+ Array.isArray(v["@type"]) &&
13188
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Group")
13189
+ ? await Group.fromJsonLd(v, options)
13190
+ : typeof v === "object" && "@type" in v &&
13191
+ Array.isArray(v["@type"]) &&
13192
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Organization")
13193
+ ? await Organization.fromJsonLd(v, options)
13194
+ : typeof v === "object" && "@type" in v &&
13195
+ Array.isArray(v["@type"]) &&
13196
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Person")
13197
+ ? await Person.fromJsonLd(v, options)
13198
+ : typeof v === "object" && "@type" in v &&
13199
+ Array.isArray(v["@type"]) &&
13200
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Service")
13201
+ ? await Service.fromJsonLd(v, options)
13202
+ : undefined;
13203
+ if (typeof decoded === "undefined")
13204
+ continue;
13205
+ _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.push(decoded);
13206
+ }
13207
+ instance.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo =
13208
+ _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo;
12910
13209
  const _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = [];
12911
13210
  let _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs__array = values["https://www.w3.org/ns/activitystreams#alsoKnownAs"];
12912
13211
  for (const v of _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs__array == null
@@ -12919,7 +13218,9 @@ export class Application extends Object {
12919
13218
  continue;
12920
13219
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
12921
13220
  globalThis.Object.keys(v).length === 1) {
12922
- _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs.push(new URL(v["@id"]));
13221
+ _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
13222
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
13223
+ : new URL(v["@id"]));
12923
13224
  continue;
12924
13225
  }
12925
13226
  const decoded = typeof v === "object" && "@type" in v &&
@@ -12961,7 +13262,9 @@ export class Application extends Object {
12961
13262
  continue;
12962
13263
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
12963
13264
  globalThis.Object.keys(v).length === 1) {
12964
- _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(new URL(v["@id"]));
13265
+ _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
13266
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
13267
+ : new URL(v["@id"]));
12965
13268
  continue;
12966
13269
  }
12967
13270
  _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(await DidService.fromJsonLd(v, options));
@@ -13218,6 +13521,18 @@ export class Application extends Object {
13218
13521
  if (_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable.length == 1) {
13219
13522
  proxy.indexable = _2diCorzqPGQQqftp6e4SrCEwEnyk_indexable[0];
13220
13523
  }
13524
+ const _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = this
13525
+ .#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo
13526
+ // deno-lint-ignore no-explicit-any
13527
+ .map((v) => v instanceof URL
13528
+ ? {
13529
+ [Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
13530
+ [Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
13531
+ }
13532
+ : v);
13533
+ if (_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.length == 1) {
13534
+ proxy.successor = _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0];
13535
+ }
13221
13536
  const _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = this
13222
13537
  .#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs
13223
13538
  // deno-lint-ignore no-explicit-any
@@ -15453,7 +15768,9 @@ export class Collection extends Object {
15453
15768
  continue;
15454
15769
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
15455
15770
  globalThis.Object.keys(v).length === 1) {
15456
- _3UyUdxnyn6cDn53QKrh4MBiearma_current.push(new URL(v["@id"]));
15771
+ _3UyUdxnyn6cDn53QKrh4MBiearma_current.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
15772
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
15773
+ : new URL(v["@id"]));
15457
15774
  continue;
15458
15775
  }
15459
15776
  _3UyUdxnyn6cDn53QKrh4MBiearma_current.push(await CollectionPage.fromJsonLd(v, options));
@@ -15472,7 +15789,9 @@ export class Collection extends Object {
15472
15789
  continue;
15473
15790
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
15474
15791
  globalThis.Object.keys(v).length === 1) {
15475
- _J52RqweMe6hhv7RnLJMC8BExTE5_first.push(new URL(v["@id"]));
15792
+ _J52RqweMe6hhv7RnLJMC8BExTE5_first.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
15793
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
15794
+ : new URL(v["@id"]));
15476
15795
  continue;
15477
15796
  }
15478
15797
  _J52RqweMe6hhv7RnLJMC8BExTE5_first.push(await CollectionPage.fromJsonLd(v, options));
@@ -15491,7 +15810,9 @@ export class Collection extends Object {
15491
15810
  continue;
15492
15811
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
15493
15812
  globalThis.Object.keys(v).length === 1) {
15494
- _gyJJnyEFnuNVi1HFZKfAn3Hfn26_last.push(new URL(v["@id"]));
15813
+ _gyJJnyEFnuNVi1HFZKfAn3Hfn26_last.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
15814
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
15815
+ : new URL(v["@id"]));
15495
15816
  continue;
15496
15817
  }
15497
15818
  _gyJJnyEFnuNVi1HFZKfAn3Hfn26_last.push(await CollectionPage.fromJsonLd(v, options));
@@ -15510,7 +15831,9 @@ export class Collection extends Object {
15510
15831
  continue;
15511
15832
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
15512
15833
  globalThis.Object.keys(v).length === 1) {
15513
- _2JPCKWTcfBmTCcW8Tv3TpRaLVaqg_items.push(new URL(v["@id"]));
15834
+ _2JPCKWTcfBmTCcW8Tv3TpRaLVaqg_items.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
15835
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
15836
+ : new URL(v["@id"]));
15514
15837
  continue;
15515
15838
  }
15516
15839
  const decoded = typeof v === "object" && "@type" in v &&
@@ -16164,7 +16487,9 @@ export class CollectionPage extends Collection {
16164
16487
  continue;
16165
16488
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
16166
16489
  globalThis.Object.keys(v).length === 1) {
16167
- _2kWgBhQKjEauxx8C6qF3ZQamK4Le_partOf.push(new URL(v["@id"]));
16490
+ _2kWgBhQKjEauxx8C6qF3ZQamK4Le_partOf.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
16491
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
16492
+ : new URL(v["@id"]));
16168
16493
  continue;
16169
16494
  }
16170
16495
  _2kWgBhQKjEauxx8C6qF3ZQamK4Le_partOf.push(await Collection.fromJsonLd(v, options));
@@ -16183,7 +16508,9 @@ export class CollectionPage extends Collection {
16183
16508
  continue;
16184
16509
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
16185
16510
  globalThis.Object.keys(v).length === 1) {
16186
- _3BT4kQLcXhHx7TAWaNDKh8nFn9eY_next.push(new URL(v["@id"]));
16511
+ _3BT4kQLcXhHx7TAWaNDKh8nFn9eY_next.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
16512
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
16513
+ : new URL(v["@id"]));
16187
16514
  continue;
16188
16515
  }
16189
16516
  _3BT4kQLcXhHx7TAWaNDKh8nFn9eY_next.push(await _c.fromJsonLd(v, options));
@@ -16202,7 +16529,9 @@ export class CollectionPage extends Collection {
16202
16529
  continue;
16203
16530
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
16204
16531
  globalThis.Object.keys(v).length === 1) {
16205
- _3b8yG8tDNzQFFEnWhCc13G8eHooA_prev.push(new URL(v["@id"]));
16532
+ _3b8yG8tDNzQFFEnWhCc13G8eHooA_prev.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
16533
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
16534
+ : new URL(v["@id"]));
16206
16535
  continue;
16207
16536
  }
16208
16537
  _3b8yG8tDNzQFFEnWhCc13G8eHooA_prev.push(await _c.fromJsonLd(v, options));
@@ -17965,6 +18294,7 @@ export class Group extends Object {
17965
18294
  #_2kGKkJtoFWg8c18PaVSqj9NKP4t7_suspended = [];
17966
18295
  #_79S8K4f5J9MWUgCxziRyUe6PTHZ_memorial = [];
17967
18296
  #_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable = [];
18297
+ #_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [];
17968
18298
  #_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = [];
17969
18299
  #_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [];
17970
18300
  #_2xEU4QtkC53RAun67T81Egqt9vmL_isCat = [];
@@ -18212,6 +18542,20 @@ export class Group extends Object {
18212
18542
  "boolean" + ".");
18213
18543
  }
18214
18544
  }
18545
+ if ("successor" in values && values.successor != null) {
18546
+ if (values.successor instanceof Application ||
18547
+ values.successor instanceof _d ||
18548
+ values.successor instanceof Organization ||
18549
+ values.successor instanceof Person ||
18550
+ values.successor instanceof Service || values.successor instanceof URL) {
18551
+ // @ts-ignore: type is checked above.
18552
+ this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [values.successor];
18553
+ }
18554
+ else {
18555
+ throw new TypeError("The successor must be of type " +
18556
+ "Application | Group | Organization | Person | Service | URL" + ".");
18557
+ }
18558
+ }
18215
18559
  if ("alias" in values && values.alias != null) {
18216
18560
  if (values.alias instanceof Application || values.alias instanceof _d ||
18217
18561
  values.alias instanceof Organization ||
@@ -18561,6 +18905,22 @@ export class Group extends Object {
18561
18905
  "boolean" + ".");
18562
18906
  }
18563
18907
  }
18908
+ clone.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo =
18909
+ this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo;
18910
+ if ("successor" in values && values.successor != null) {
18911
+ if (values.successor instanceof Application ||
18912
+ values.successor instanceof _d ||
18913
+ values.successor instanceof Organization ||
18914
+ values.successor instanceof Person ||
18915
+ values.successor instanceof Service || values.successor instanceof URL) {
18916
+ // @ts-ignore: type is checked above.
18917
+ clone.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [values.successor];
18918
+ }
18919
+ else {
18920
+ throw new TypeError("The successor must be of type " +
18921
+ "Application | Group | Organization | Person | Service | URL" + ".");
18922
+ }
18923
+ }
18564
18924
  clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs =
18565
18925
  this.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs;
18566
18926
  if ("alias" in values && values.alias != null) {
@@ -19355,6 +19715,95 @@ export class Group extends Object {
19355
19715
  return null;
19356
19716
  return this.#_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable[0];
19357
19717
  }
19718
+ async #fetchSuccessor(url, options = {}) {
19719
+ const documentLoader = options.documentLoader ?? this._documentLoader ??
19720
+ fetchDocumentLoader;
19721
+ const contextLoader = options.contextLoader ?? this._contextLoader ??
19722
+ fetchDocumentLoader;
19723
+ let fetchResult;
19724
+ try {
19725
+ fetchResult = await documentLoader(url.href);
19726
+ }
19727
+ catch (error) {
19728
+ if (options.suppressError) {
19729
+ getLogger(["fedify", "vocab"]).error("Failed to fetch {url}: {error}", { error, url: url.href });
19730
+ return null;
19731
+ }
19732
+ throw error;
19733
+ }
19734
+ const { document } = fetchResult;
19735
+ try {
19736
+ return await Application.fromJsonLd(document, { documentLoader, contextLoader });
19737
+ }
19738
+ catch (e) {
19739
+ if (!(e instanceof TypeError))
19740
+ throw e;
19741
+ }
19742
+ try {
19743
+ return await _d.fromJsonLd(document, { documentLoader, contextLoader });
19744
+ }
19745
+ catch (e) {
19746
+ if (!(e instanceof TypeError))
19747
+ throw e;
19748
+ }
19749
+ try {
19750
+ return await Organization.fromJsonLd(document, { documentLoader, contextLoader });
19751
+ }
19752
+ catch (e) {
19753
+ if (!(e instanceof TypeError))
19754
+ throw e;
19755
+ }
19756
+ try {
19757
+ return await Person.fromJsonLd(document, { documentLoader, contextLoader });
19758
+ }
19759
+ catch (e) {
19760
+ if (!(e instanceof TypeError))
19761
+ throw e;
19762
+ }
19763
+ try {
19764
+ return await Service.fromJsonLd(document, { documentLoader, contextLoader });
19765
+ }
19766
+ catch (e) {
19767
+ if (!(e instanceof TypeError))
19768
+ throw e;
19769
+ }
19770
+ throw new TypeError("Expected an object of any type of: " +
19771
+ [
19772
+ "https://www.w3.org/ns/activitystreams#Application",
19773
+ "https://www.w3.org/ns/activitystreams#Group",
19774
+ "https://www.w3.org/ns/activitystreams#Organization",
19775
+ "https://www.w3.org/ns/activitystreams#Person",
19776
+ "https://www.w3.org/ns/activitystreams#Service",
19777
+ ].join(", "));
19778
+ }
19779
+ /**
19780
+ * Similar to
19781
+ * {@link Group.getSuccessor},
19782
+ * but returns its `@id` URL instead of the object itself.
19783
+ */
19784
+ get successorId() {
19785
+ if (this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.length < 1)
19786
+ return null;
19787
+ const v = this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0];
19788
+ if (v instanceof URL)
19789
+ return v;
19790
+ return v.id;
19791
+ }
19792
+ /** Signifies that an actor has been moved to a different ID. Used in Mastodon-style data portability with the {@link Move} activity; see [ActivityPub Data Portability/Move Action](https://swicg.github.io/activitypub-data-portability/#move-action) for more details.
19793
+ */
19794
+ async getSuccessor(options = {}) {
19795
+ if (this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.length < 1)
19796
+ return null;
19797
+ const v = this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0];
19798
+ if (v instanceof URL) {
19799
+ const fetched = await this.#fetchSuccessor(v, options);
19800
+ if (fetched == null)
19801
+ return null;
19802
+ this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0] = fetched;
19803
+ return fetched;
19804
+ }
19805
+ return v;
19806
+ }
19358
19807
  async #fetchAlias(url, options = {}) {
19359
19808
  const documentLoader = options.documentLoader ?? this._documentLoader ??
19360
19809
  fetchDocumentLoader;
@@ -19819,6 +20268,46 @@ export class Group extends Object {
19819
20268
  : compactItems[0];
19820
20269
  }
19821
20270
  compactItems = [];
20271
+ for (const v of this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo) {
20272
+ const item = v instanceof URL
20273
+ ? v.href
20274
+ : v instanceof Application
20275
+ ? await v.toJsonLd({
20276
+ ...options,
20277
+ format: undefined,
20278
+ context: undefined,
20279
+ })
20280
+ : v instanceof _d
20281
+ ? await v.toJsonLd({
20282
+ ...options,
20283
+ format: undefined,
20284
+ context: undefined,
20285
+ })
20286
+ : v instanceof Organization
20287
+ ? await v.toJsonLd({
20288
+ ...options,
20289
+ format: undefined,
20290
+ context: undefined,
20291
+ })
20292
+ : v instanceof Person
20293
+ ? await v.toJsonLd({
20294
+ ...options,
20295
+ format: undefined,
20296
+ context: undefined,
20297
+ })
20298
+ : await v.toJsonLd({
20299
+ ...options,
20300
+ format: undefined,
20301
+ context: undefined,
20302
+ });
20303
+ compactItems.push(item);
20304
+ }
20305
+ if (compactItems.length > 0) {
20306
+ result["movedTo"] = compactItems.length > 1
20307
+ ? compactItems
20308
+ : compactItems[0];
20309
+ }
20310
+ compactItems = [];
19822
20311
  for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs) {
19823
20312
  const item = v instanceof URL
19824
20313
  ? v.href
@@ -19892,7 +20381,9 @@ export class Group extends Object {
19892
20381
  "https://www.w3.org/ns/did/v1",
19893
20382
  "https://w3id.org/security/multikey/v1",
19894
20383
  {
20384
+ "alsoKnownAs": { "@id": "as:alsoKnownAs", "@type": "@id" },
19895
20385
  "manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
20386
+ "movedTo": { "@id": "as:movedTo", "@type": "@id" },
19896
20387
  "toot": "http://joinmastodon.org/ns#",
19897
20388
  "featured": { "@id": "toot:featured", "@type": "@id" },
19898
20389
  "featuredTags": { "@id": "toot:featuredTags", "@type": "@id" },
@@ -20095,6 +20586,25 @@ export class Group extends Object {
20095
20586
  values["http://joinmastodon.org/ns#indexable"] = propValue;
20096
20587
  }
20097
20588
  array = [];
20589
+ for (const v of this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo) {
20590
+ const element = v instanceof URL
20591
+ ? { "@id": v.href }
20592
+ : v instanceof Application
20593
+ ? await v.toJsonLd(options)
20594
+ : v instanceof _d
20595
+ ? await v.toJsonLd(options)
20596
+ : v instanceof Organization
20597
+ ? await v.toJsonLd(options)
20598
+ : v instanceof Person
20599
+ ? await v.toJsonLd(options)
20600
+ : await v.toJsonLd(options);
20601
+ array.push(element);
20602
+ }
20603
+ if (array.length > 0) {
20604
+ const propValue = array;
20605
+ values["https://www.w3.org/ns/activitystreams#movedTo"] = propValue;
20606
+ }
20607
+ array = [];
20098
20608
  for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs) {
20099
20609
  const element = v instanceof URL
20100
20610
  ? { "@id": v.href }
@@ -20147,7 +20657,9 @@ export class Group extends Object {
20147
20657
  "https://www.w3.org/ns/did/v1",
20148
20658
  "https://w3id.org/security/multikey/v1",
20149
20659
  {
20660
+ "alsoKnownAs": { "@id": "as:alsoKnownAs", "@type": "@id" },
20150
20661
  "manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
20662
+ "movedTo": { "@id": "as:movedTo", "@type": "@id" },
20151
20663
  "toot": "http://joinmastodon.org/ns#",
20152
20664
  "featured": { "@id": "toot:featured", "@type": "@id" },
20153
20665
  "featuredTags": { "@id": "toot:featuredTags", "@type": "@id" },
@@ -20270,7 +20782,9 @@ export class Group extends Object {
20270
20782
  continue;
20271
20783
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
20272
20784
  globalThis.Object.keys(v).length === 1) {
20273
- _axq166E2eZADq34V4MYUc8KMZdC_publicKey.push(new URL(v["@id"]));
20785
+ _axq166E2eZADq34V4MYUc8KMZdC_publicKey.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
20786
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
20787
+ : new URL(v["@id"]));
20274
20788
  continue;
20275
20789
  }
20276
20790
  _axq166E2eZADq34V4MYUc8KMZdC_publicKey.push(await CryptographicKey.fromJsonLd(v, options));
@@ -20289,7 +20803,9 @@ export class Group extends Object {
20289
20803
  continue;
20290
20804
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
20291
20805
  globalThis.Object.keys(v).length === 1) {
20292
- _4EHQFWZSz1k1d4LmPrQiMba2GbP3_assertionMethod.push(new URL(v["@id"]));
20806
+ _4EHQFWZSz1k1d4LmPrQiMba2GbP3_assertionMethod.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
20807
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
20808
+ : new URL(v["@id"]));
20293
20809
  continue;
20294
20810
  }
20295
20811
  _4EHQFWZSz1k1d4LmPrQiMba2GbP3_assertionMethod.push(await Multikey.fromJsonLd(v, options));
@@ -20324,7 +20840,9 @@ export class Group extends Object {
20324
20840
  continue;
20325
20841
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
20326
20842
  globalThis.Object.keys(v).length === 1) {
20327
- _3ghX3VfZXXbLvhCRH7QJqpzLrXjB_inbox.push(new URL(v["@id"]));
20843
+ _3ghX3VfZXXbLvhCRH7QJqpzLrXjB_inbox.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
20844
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
20845
+ : new URL(v["@id"]));
20328
20846
  continue;
20329
20847
  }
20330
20848
  _3ghX3VfZXXbLvhCRH7QJqpzLrXjB_inbox.push(await OrderedCollection.fromJsonLd(v, options));
@@ -20343,7 +20861,9 @@ export class Group extends Object {
20343
20861
  continue;
20344
20862
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
20345
20863
  globalThis.Object.keys(v).length === 1) {
20346
- _41QwhqJouoLg3h8dRPKat21brynC_outbox.push(new URL(v["@id"]));
20864
+ _41QwhqJouoLg3h8dRPKat21brynC_outbox.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
20865
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
20866
+ : new URL(v["@id"]));
20347
20867
  continue;
20348
20868
  }
20349
20869
  _41QwhqJouoLg3h8dRPKat21brynC_outbox.push(await OrderedCollection.fromJsonLd(v, options));
@@ -20362,7 +20882,9 @@ export class Group extends Object {
20362
20882
  continue;
20363
20883
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
20364
20884
  globalThis.Object.keys(v).length === 1) {
20365
- _3yAv8jymNfNuJUDuBzJ1NQhdbAee_following.push(new URL(v["@id"]));
20885
+ _3yAv8jymNfNuJUDuBzJ1NQhdbAee_following.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
20886
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
20887
+ : new URL(v["@id"]));
20366
20888
  continue;
20367
20889
  }
20368
20890
  _3yAv8jymNfNuJUDuBzJ1NQhdbAee_following.push(await Collection.fromJsonLd(v, options));
@@ -20381,7 +20903,9 @@ export class Group extends Object {
20381
20903
  continue;
20382
20904
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
20383
20905
  globalThis.Object.keys(v).length === 1) {
20384
- _BBCTgfphhsFzpVfKTykGSpBNwoA_followers.push(new URL(v["@id"]));
20906
+ _BBCTgfphhsFzpVfKTykGSpBNwoA_followers.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
20907
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
20908
+ : new URL(v["@id"]));
20385
20909
  continue;
20386
20910
  }
20387
20911
  _BBCTgfphhsFzpVfKTykGSpBNwoA_followers.push(await Collection.fromJsonLd(v, options));
@@ -20400,7 +20924,9 @@ export class Group extends Object {
20400
20924
  continue;
20401
20925
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
20402
20926
  globalThis.Object.keys(v).length === 1) {
20403
- _3bgkPwJanyTCoVFM9ovRcus8tKkU_liked.push(new URL(v["@id"]));
20927
+ _3bgkPwJanyTCoVFM9ovRcus8tKkU_liked.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
20928
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
20929
+ : new URL(v["@id"]));
20404
20930
  continue;
20405
20931
  }
20406
20932
  _3bgkPwJanyTCoVFM9ovRcus8tKkU_liked.push(await Collection.fromJsonLd(v, options));
@@ -20419,7 +20945,9 @@ export class Group extends Object {
20419
20945
  continue;
20420
20946
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
20421
20947
  globalThis.Object.keys(v).length === 1) {
20422
- _4N1vBJzXDf8NbBumeECQMFvKetja_featured.push(new URL(v["@id"]));
20948
+ _4N1vBJzXDf8NbBumeECQMFvKetja_featured.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
20949
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
20950
+ : new URL(v["@id"]));
20423
20951
  continue;
20424
20952
  }
20425
20953
  _4N1vBJzXDf8NbBumeECQMFvKetja_featured.push(await Collection.fromJsonLd(v, options));
@@ -20438,7 +20966,9 @@ export class Group extends Object {
20438
20966
  continue;
20439
20967
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
20440
20968
  globalThis.Object.keys(v).length === 1) {
20441
- _2MxnRRLq9iPzx5CFq2NPrXdUDCac_featuredTags.push(new URL(v["@id"]));
20969
+ _2MxnRRLq9iPzx5CFq2NPrXdUDCac_featuredTags.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
20970
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
20971
+ : new URL(v["@id"]));
20442
20972
  continue;
20443
20973
  }
20444
20974
  _2MxnRRLq9iPzx5CFq2NPrXdUDCac_featuredTags.push(await Collection.fromJsonLd(v, options));
@@ -20457,7 +20987,9 @@ export class Group extends Object {
20457
20987
  continue;
20458
20988
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
20459
20989
  globalThis.Object.keys(v).length === 1) {
20460
- _3sG2Hdwn9qzKGu9mpYkqakAMUkH9_streams.push(new URL(v["@id"]));
20990
+ _3sG2Hdwn9qzKGu9mpYkqakAMUkH9_streams.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
20991
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
20992
+ : new URL(v["@id"]));
20461
20993
  continue;
20462
20994
  }
20463
20995
  _3sG2Hdwn9qzKGu9mpYkqakAMUkH9_streams.push(await Collection.fromJsonLd(v, options));
@@ -20534,6 +21066,50 @@ export class Group extends Object {
20534
21066
  }
20535
21067
  instance.#_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable =
20536
21068
  _2diCorzqPGQQqftp6e4SrCEwEnyk_indexable;
21069
+ const _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [];
21070
+ let _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array = values["https://www.w3.org/ns/activitystreams#movedTo"];
21071
+ for (const v of _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array == null
21072
+ ? []
21073
+ : _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array.length === 1 &&
21074
+ "@list" in _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array[0]
21075
+ ? _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array[0]["@list"]
21076
+ : _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array) {
21077
+ if (v == null)
21078
+ continue;
21079
+ if (typeof v === "object" && "@id" in v && !("@type" in v) &&
21080
+ globalThis.Object.keys(v).length === 1) {
21081
+ _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
21082
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
21083
+ : new URL(v["@id"]));
21084
+ continue;
21085
+ }
21086
+ const decoded = typeof v === "object" && "@type" in v &&
21087
+ Array.isArray(v["@type"]) &&
21088
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Application")
21089
+ ? await Application.fromJsonLd(v, options)
21090
+ : typeof v === "object" && "@type" in v &&
21091
+ Array.isArray(v["@type"]) &&
21092
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Group")
21093
+ ? await _d.fromJsonLd(v, options)
21094
+ : typeof v === "object" && "@type" in v &&
21095
+ Array.isArray(v["@type"]) &&
21096
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Organization")
21097
+ ? await Organization.fromJsonLd(v, options)
21098
+ : typeof v === "object" && "@type" in v &&
21099
+ Array.isArray(v["@type"]) &&
21100
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Person")
21101
+ ? await Person.fromJsonLd(v, options)
21102
+ : typeof v === "object" && "@type" in v &&
21103
+ Array.isArray(v["@type"]) &&
21104
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Service")
21105
+ ? await Service.fromJsonLd(v, options)
21106
+ : undefined;
21107
+ if (typeof decoded === "undefined")
21108
+ continue;
21109
+ _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.push(decoded);
21110
+ }
21111
+ instance.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo =
21112
+ _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo;
20537
21113
  const _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = [];
20538
21114
  let _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs__array = values["https://www.w3.org/ns/activitystreams#alsoKnownAs"];
20539
21115
  for (const v of _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs__array == null
@@ -20546,7 +21122,9 @@ export class Group extends Object {
20546
21122
  continue;
20547
21123
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
20548
21124
  globalThis.Object.keys(v).length === 1) {
20549
- _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs.push(new URL(v["@id"]));
21125
+ _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
21126
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
21127
+ : new URL(v["@id"]));
20550
21128
  continue;
20551
21129
  }
20552
21130
  const decoded = typeof v === "object" && "@type" in v &&
@@ -20588,7 +21166,9 @@ export class Group extends Object {
20588
21166
  continue;
20589
21167
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
20590
21168
  globalThis.Object.keys(v).length === 1) {
20591
- _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(new URL(v["@id"]));
21169
+ _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
21170
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
21171
+ : new URL(v["@id"]));
20592
21172
  continue;
20593
21173
  }
20594
21174
  _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(await DidService.fromJsonLd(v, options));
@@ -20845,6 +21425,18 @@ export class Group extends Object {
20845
21425
  if (_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable.length == 1) {
20846
21426
  proxy.indexable = _2diCorzqPGQQqftp6e4SrCEwEnyk_indexable[0];
20847
21427
  }
21428
+ const _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = this
21429
+ .#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo
21430
+ // deno-lint-ignore no-explicit-any
21431
+ .map((v) => v instanceof URL
21432
+ ? {
21433
+ [Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
21434
+ [Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
21435
+ }
21436
+ : v);
21437
+ if (_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.length == 1) {
21438
+ proxy.successor = _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0];
21439
+ }
20848
21440
  const _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = this
20849
21441
  .#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs
20850
21442
  // deno-lint-ignore no-explicit-any
@@ -21747,7 +22339,9 @@ export class Link {
21747
22339
  continue;
21748
22340
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
21749
22341
  globalThis.Object.keys(v).length === 1) {
21750
- _gCVTegXxWWCw6wWRxa1QF65zusg_preview.push(new URL(v["@id"]));
22342
+ _gCVTegXxWWCw6wWRxa1QF65zusg_preview.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
22343
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
22344
+ : new URL(v["@id"]));
21751
22345
  continue;
21752
22346
  }
21753
22347
  const decoded = typeof v === "object" && "@type" in v &&
@@ -24178,7 +24772,9 @@ export class OrderedCollection extends Collection {
24178
24772
  continue;
24179
24773
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
24180
24774
  globalThis.Object.keys(v).length === 1) {
24181
- _2JPCKWTcfBmTCcW8Tv3TpRaLVaqg_items.push(new URL(v["@id"]));
24775
+ _2JPCKWTcfBmTCcW8Tv3TpRaLVaqg_items.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
24776
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
24777
+ : new URL(v["@id"]));
24182
24778
  continue;
24183
24779
  }
24184
24780
  const decoded = typeof v === "object" && "@type" in v &&
@@ -24650,7 +25246,9 @@ export class OrderedCollectionPage extends CollectionPage {
24650
25246
  continue;
24651
25247
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
24652
25248
  globalThis.Object.keys(v).length === 1) {
24653
- _2JPCKWTcfBmTCcW8Tv3TpRaLVaqg_items.push(new URL(v["@id"]));
25249
+ _2JPCKWTcfBmTCcW8Tv3TpRaLVaqg_items.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
25250
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
25251
+ : new URL(v["@id"]));
24654
25252
  continue;
24655
25253
  }
24656
25254
  const decoded = typeof v === "object" && "@type" in v &&
@@ -24818,6 +25416,7 @@ export class Organization extends Object {
24818
25416
  #_2kGKkJtoFWg8c18PaVSqj9NKP4t7_suspended = [];
24819
25417
  #_79S8K4f5J9MWUgCxziRyUe6PTHZ_memorial = [];
24820
25418
  #_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable = [];
25419
+ #_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [];
24821
25420
  #_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = [];
24822
25421
  #_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [];
24823
25422
  #_2xEU4QtkC53RAun67T81Egqt9vmL_isCat = [];
@@ -25065,6 +25664,20 @@ export class Organization extends Object {
25065
25664
  "boolean" + ".");
25066
25665
  }
25067
25666
  }
25667
+ if ("successor" in values && values.successor != null) {
25668
+ if (values.successor instanceof Application ||
25669
+ values.successor instanceof Group ||
25670
+ values.successor instanceof _f ||
25671
+ values.successor instanceof Person ||
25672
+ values.successor instanceof Service || values.successor instanceof URL) {
25673
+ // @ts-ignore: type is checked above.
25674
+ this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [values.successor];
25675
+ }
25676
+ else {
25677
+ throw new TypeError("The successor must be of type " +
25678
+ "Application | Group | Organization | Person | Service | URL" + ".");
25679
+ }
25680
+ }
25068
25681
  if ("alias" in values && values.alias != null) {
25069
25682
  if (values.alias instanceof Application || values.alias instanceof Group ||
25070
25683
  values.alias instanceof _f ||
@@ -25414,6 +26027,22 @@ export class Organization extends Object {
25414
26027
  "boolean" + ".");
25415
26028
  }
25416
26029
  }
26030
+ clone.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo =
26031
+ this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo;
26032
+ if ("successor" in values && values.successor != null) {
26033
+ if (values.successor instanceof Application ||
26034
+ values.successor instanceof Group ||
26035
+ values.successor instanceof _f ||
26036
+ values.successor instanceof Person ||
26037
+ values.successor instanceof Service || values.successor instanceof URL) {
26038
+ // @ts-ignore: type is checked above.
26039
+ clone.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [values.successor];
26040
+ }
26041
+ else {
26042
+ throw new TypeError("The successor must be of type " +
26043
+ "Application | Group | Organization | Person | Service | URL" + ".");
26044
+ }
26045
+ }
25417
26046
  clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs =
25418
26047
  this.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs;
25419
26048
  if ("alias" in values && values.alias != null) {
@@ -26208,6 +26837,95 @@ export class Organization extends Object {
26208
26837
  return null;
26209
26838
  return this.#_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable[0];
26210
26839
  }
26840
+ async #fetchSuccessor(url, options = {}) {
26841
+ const documentLoader = options.documentLoader ?? this._documentLoader ??
26842
+ fetchDocumentLoader;
26843
+ const contextLoader = options.contextLoader ?? this._contextLoader ??
26844
+ fetchDocumentLoader;
26845
+ let fetchResult;
26846
+ try {
26847
+ fetchResult = await documentLoader(url.href);
26848
+ }
26849
+ catch (error) {
26850
+ if (options.suppressError) {
26851
+ getLogger(["fedify", "vocab"]).error("Failed to fetch {url}: {error}", { error, url: url.href });
26852
+ return null;
26853
+ }
26854
+ throw error;
26855
+ }
26856
+ const { document } = fetchResult;
26857
+ try {
26858
+ return await Application.fromJsonLd(document, { documentLoader, contextLoader });
26859
+ }
26860
+ catch (e) {
26861
+ if (!(e instanceof TypeError))
26862
+ throw e;
26863
+ }
26864
+ try {
26865
+ return await Group.fromJsonLd(document, { documentLoader, contextLoader });
26866
+ }
26867
+ catch (e) {
26868
+ if (!(e instanceof TypeError))
26869
+ throw e;
26870
+ }
26871
+ try {
26872
+ return await _f.fromJsonLd(document, { documentLoader, contextLoader });
26873
+ }
26874
+ catch (e) {
26875
+ if (!(e instanceof TypeError))
26876
+ throw e;
26877
+ }
26878
+ try {
26879
+ return await Person.fromJsonLd(document, { documentLoader, contextLoader });
26880
+ }
26881
+ catch (e) {
26882
+ if (!(e instanceof TypeError))
26883
+ throw e;
26884
+ }
26885
+ try {
26886
+ return await Service.fromJsonLd(document, { documentLoader, contextLoader });
26887
+ }
26888
+ catch (e) {
26889
+ if (!(e instanceof TypeError))
26890
+ throw e;
26891
+ }
26892
+ throw new TypeError("Expected an object of any type of: " +
26893
+ [
26894
+ "https://www.w3.org/ns/activitystreams#Application",
26895
+ "https://www.w3.org/ns/activitystreams#Group",
26896
+ "https://www.w3.org/ns/activitystreams#Organization",
26897
+ "https://www.w3.org/ns/activitystreams#Person",
26898
+ "https://www.w3.org/ns/activitystreams#Service",
26899
+ ].join(", "));
26900
+ }
26901
+ /**
26902
+ * Similar to
26903
+ * {@link Organization.getSuccessor},
26904
+ * but returns its `@id` URL instead of the object itself.
26905
+ */
26906
+ get successorId() {
26907
+ if (this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.length < 1)
26908
+ return null;
26909
+ const v = this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0];
26910
+ if (v instanceof URL)
26911
+ return v;
26912
+ return v.id;
26913
+ }
26914
+ /** Signifies that an actor has been moved to a different ID. Used in Mastodon-style data portability with the {@link Move} activity; see [ActivityPub Data Portability/Move Action](https://swicg.github.io/activitypub-data-portability/#move-action) for more details.
26915
+ */
26916
+ async getSuccessor(options = {}) {
26917
+ if (this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.length < 1)
26918
+ return null;
26919
+ const v = this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0];
26920
+ if (v instanceof URL) {
26921
+ const fetched = await this.#fetchSuccessor(v, options);
26922
+ if (fetched == null)
26923
+ return null;
26924
+ this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0] = fetched;
26925
+ return fetched;
26926
+ }
26927
+ return v;
26928
+ }
26211
26929
  async #fetchAlias(url, options = {}) {
26212
26930
  const documentLoader = options.documentLoader ?? this._documentLoader ??
26213
26931
  fetchDocumentLoader;
@@ -26672,6 +27390,46 @@ export class Organization extends Object {
26672
27390
  : compactItems[0];
26673
27391
  }
26674
27392
  compactItems = [];
27393
+ for (const v of this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo) {
27394
+ const item = v instanceof URL
27395
+ ? v.href
27396
+ : v instanceof Application
27397
+ ? await v.toJsonLd({
27398
+ ...options,
27399
+ format: undefined,
27400
+ context: undefined,
27401
+ })
27402
+ : v instanceof Group
27403
+ ? await v.toJsonLd({
27404
+ ...options,
27405
+ format: undefined,
27406
+ context: undefined,
27407
+ })
27408
+ : v instanceof _f
27409
+ ? await v.toJsonLd({
27410
+ ...options,
27411
+ format: undefined,
27412
+ context: undefined,
27413
+ })
27414
+ : v instanceof Person
27415
+ ? await v.toJsonLd({
27416
+ ...options,
27417
+ format: undefined,
27418
+ context: undefined,
27419
+ })
27420
+ : await v.toJsonLd({
27421
+ ...options,
27422
+ format: undefined,
27423
+ context: undefined,
27424
+ });
27425
+ compactItems.push(item);
27426
+ }
27427
+ if (compactItems.length > 0) {
27428
+ result["movedTo"] = compactItems.length > 1
27429
+ ? compactItems
27430
+ : compactItems[0];
27431
+ }
27432
+ compactItems = [];
26675
27433
  for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs) {
26676
27434
  const item = v instanceof URL
26677
27435
  ? v.href
@@ -26745,7 +27503,9 @@ export class Organization extends Object {
26745
27503
  "https://www.w3.org/ns/did/v1",
26746
27504
  "https://w3id.org/security/multikey/v1",
26747
27505
  {
27506
+ "alsoKnownAs": { "@id": "as:alsoKnownAs", "@type": "@id" },
26748
27507
  "manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
27508
+ "movedTo": { "@id": "as:movedTo", "@type": "@id" },
26749
27509
  "toot": "http://joinmastodon.org/ns#",
26750
27510
  "featured": { "@id": "toot:featured", "@type": "@id" },
26751
27511
  "featuredTags": { "@id": "toot:featuredTags", "@type": "@id" },
@@ -26948,6 +27708,25 @@ export class Organization extends Object {
26948
27708
  values["http://joinmastodon.org/ns#indexable"] = propValue;
26949
27709
  }
26950
27710
  array = [];
27711
+ for (const v of this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo) {
27712
+ const element = v instanceof URL
27713
+ ? { "@id": v.href }
27714
+ : v instanceof Application
27715
+ ? await v.toJsonLd(options)
27716
+ : v instanceof Group
27717
+ ? await v.toJsonLd(options)
27718
+ : v instanceof _f
27719
+ ? await v.toJsonLd(options)
27720
+ : v instanceof Person
27721
+ ? await v.toJsonLd(options)
27722
+ : await v.toJsonLd(options);
27723
+ array.push(element);
27724
+ }
27725
+ if (array.length > 0) {
27726
+ const propValue = array;
27727
+ values["https://www.w3.org/ns/activitystreams#movedTo"] = propValue;
27728
+ }
27729
+ array = [];
26951
27730
  for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs) {
26952
27731
  const element = v instanceof URL
26953
27732
  ? { "@id": v.href }
@@ -27000,7 +27779,9 @@ export class Organization extends Object {
27000
27779
  "https://www.w3.org/ns/did/v1",
27001
27780
  "https://w3id.org/security/multikey/v1",
27002
27781
  {
27782
+ "alsoKnownAs": { "@id": "as:alsoKnownAs", "@type": "@id" },
27003
27783
  "manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
27784
+ "movedTo": { "@id": "as:movedTo", "@type": "@id" },
27004
27785
  "toot": "http://joinmastodon.org/ns#",
27005
27786
  "featured": { "@id": "toot:featured", "@type": "@id" },
27006
27787
  "featuredTags": { "@id": "toot:featuredTags", "@type": "@id" },
@@ -27123,7 +27904,9 @@ export class Organization extends Object {
27123
27904
  continue;
27124
27905
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
27125
27906
  globalThis.Object.keys(v).length === 1) {
27126
- _axq166E2eZADq34V4MYUc8KMZdC_publicKey.push(new URL(v["@id"]));
27907
+ _axq166E2eZADq34V4MYUc8KMZdC_publicKey.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
27908
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
27909
+ : new URL(v["@id"]));
27127
27910
  continue;
27128
27911
  }
27129
27912
  _axq166E2eZADq34V4MYUc8KMZdC_publicKey.push(await CryptographicKey.fromJsonLd(v, options));
@@ -27142,7 +27925,9 @@ export class Organization extends Object {
27142
27925
  continue;
27143
27926
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
27144
27927
  globalThis.Object.keys(v).length === 1) {
27145
- _4EHQFWZSz1k1d4LmPrQiMba2GbP3_assertionMethod.push(new URL(v["@id"]));
27928
+ _4EHQFWZSz1k1d4LmPrQiMba2GbP3_assertionMethod.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
27929
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
27930
+ : new URL(v["@id"]));
27146
27931
  continue;
27147
27932
  }
27148
27933
  _4EHQFWZSz1k1d4LmPrQiMba2GbP3_assertionMethod.push(await Multikey.fromJsonLd(v, options));
@@ -27177,7 +27962,9 @@ export class Organization extends Object {
27177
27962
  continue;
27178
27963
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
27179
27964
  globalThis.Object.keys(v).length === 1) {
27180
- _3ghX3VfZXXbLvhCRH7QJqpzLrXjB_inbox.push(new URL(v["@id"]));
27965
+ _3ghX3VfZXXbLvhCRH7QJqpzLrXjB_inbox.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
27966
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
27967
+ : new URL(v["@id"]));
27181
27968
  continue;
27182
27969
  }
27183
27970
  _3ghX3VfZXXbLvhCRH7QJqpzLrXjB_inbox.push(await OrderedCollection.fromJsonLd(v, options));
@@ -27196,7 +27983,9 @@ export class Organization extends Object {
27196
27983
  continue;
27197
27984
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
27198
27985
  globalThis.Object.keys(v).length === 1) {
27199
- _41QwhqJouoLg3h8dRPKat21brynC_outbox.push(new URL(v["@id"]));
27986
+ _41QwhqJouoLg3h8dRPKat21brynC_outbox.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
27987
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
27988
+ : new URL(v["@id"]));
27200
27989
  continue;
27201
27990
  }
27202
27991
  _41QwhqJouoLg3h8dRPKat21brynC_outbox.push(await OrderedCollection.fromJsonLd(v, options));
@@ -27215,7 +28004,9 @@ export class Organization extends Object {
27215
28004
  continue;
27216
28005
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
27217
28006
  globalThis.Object.keys(v).length === 1) {
27218
- _3yAv8jymNfNuJUDuBzJ1NQhdbAee_following.push(new URL(v["@id"]));
28007
+ _3yAv8jymNfNuJUDuBzJ1NQhdbAee_following.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
28008
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
28009
+ : new URL(v["@id"]));
27219
28010
  continue;
27220
28011
  }
27221
28012
  _3yAv8jymNfNuJUDuBzJ1NQhdbAee_following.push(await Collection.fromJsonLd(v, options));
@@ -27234,7 +28025,9 @@ export class Organization extends Object {
27234
28025
  continue;
27235
28026
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
27236
28027
  globalThis.Object.keys(v).length === 1) {
27237
- _BBCTgfphhsFzpVfKTykGSpBNwoA_followers.push(new URL(v["@id"]));
28028
+ _BBCTgfphhsFzpVfKTykGSpBNwoA_followers.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
28029
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
28030
+ : new URL(v["@id"]));
27238
28031
  continue;
27239
28032
  }
27240
28033
  _BBCTgfphhsFzpVfKTykGSpBNwoA_followers.push(await Collection.fromJsonLd(v, options));
@@ -27253,7 +28046,9 @@ export class Organization extends Object {
27253
28046
  continue;
27254
28047
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
27255
28048
  globalThis.Object.keys(v).length === 1) {
27256
- _3bgkPwJanyTCoVFM9ovRcus8tKkU_liked.push(new URL(v["@id"]));
28049
+ _3bgkPwJanyTCoVFM9ovRcus8tKkU_liked.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
28050
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
28051
+ : new URL(v["@id"]));
27257
28052
  continue;
27258
28053
  }
27259
28054
  _3bgkPwJanyTCoVFM9ovRcus8tKkU_liked.push(await Collection.fromJsonLd(v, options));
@@ -27272,7 +28067,9 @@ export class Organization extends Object {
27272
28067
  continue;
27273
28068
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
27274
28069
  globalThis.Object.keys(v).length === 1) {
27275
- _4N1vBJzXDf8NbBumeECQMFvKetja_featured.push(new URL(v["@id"]));
28070
+ _4N1vBJzXDf8NbBumeECQMFvKetja_featured.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
28071
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
28072
+ : new URL(v["@id"]));
27276
28073
  continue;
27277
28074
  }
27278
28075
  _4N1vBJzXDf8NbBumeECQMFvKetja_featured.push(await Collection.fromJsonLd(v, options));
@@ -27291,7 +28088,9 @@ export class Organization extends Object {
27291
28088
  continue;
27292
28089
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
27293
28090
  globalThis.Object.keys(v).length === 1) {
27294
- _2MxnRRLq9iPzx5CFq2NPrXdUDCac_featuredTags.push(new URL(v["@id"]));
28091
+ _2MxnRRLq9iPzx5CFq2NPrXdUDCac_featuredTags.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
28092
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
28093
+ : new URL(v["@id"]));
27295
28094
  continue;
27296
28095
  }
27297
28096
  _2MxnRRLq9iPzx5CFq2NPrXdUDCac_featuredTags.push(await Collection.fromJsonLd(v, options));
@@ -27310,7 +28109,9 @@ export class Organization extends Object {
27310
28109
  continue;
27311
28110
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
27312
28111
  globalThis.Object.keys(v).length === 1) {
27313
- _3sG2Hdwn9qzKGu9mpYkqakAMUkH9_streams.push(new URL(v["@id"]));
28112
+ _3sG2Hdwn9qzKGu9mpYkqakAMUkH9_streams.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
28113
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
28114
+ : new URL(v["@id"]));
27314
28115
  continue;
27315
28116
  }
27316
28117
  _3sG2Hdwn9qzKGu9mpYkqakAMUkH9_streams.push(await Collection.fromJsonLd(v, options));
@@ -27387,6 +28188,50 @@ export class Organization extends Object {
27387
28188
  }
27388
28189
  instance.#_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable =
27389
28190
  _2diCorzqPGQQqftp6e4SrCEwEnyk_indexable;
28191
+ const _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [];
28192
+ let _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array = values["https://www.w3.org/ns/activitystreams#movedTo"];
28193
+ for (const v of _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array == null
28194
+ ? []
28195
+ : _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array.length === 1 &&
28196
+ "@list" in _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array[0]
28197
+ ? _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array[0]["@list"]
28198
+ : _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array) {
28199
+ if (v == null)
28200
+ continue;
28201
+ if (typeof v === "object" && "@id" in v && !("@type" in v) &&
28202
+ globalThis.Object.keys(v).length === 1) {
28203
+ _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
28204
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
28205
+ : new URL(v["@id"]));
28206
+ continue;
28207
+ }
28208
+ const decoded = typeof v === "object" && "@type" in v &&
28209
+ Array.isArray(v["@type"]) &&
28210
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Application")
28211
+ ? await Application.fromJsonLd(v, options)
28212
+ : typeof v === "object" && "@type" in v &&
28213
+ Array.isArray(v["@type"]) &&
28214
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Group")
28215
+ ? await Group.fromJsonLd(v, options)
28216
+ : typeof v === "object" && "@type" in v &&
28217
+ Array.isArray(v["@type"]) &&
28218
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Organization")
28219
+ ? await _f.fromJsonLd(v, options)
28220
+ : typeof v === "object" && "@type" in v &&
28221
+ Array.isArray(v["@type"]) &&
28222
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Person")
28223
+ ? await Person.fromJsonLd(v, options)
28224
+ : typeof v === "object" && "@type" in v &&
28225
+ Array.isArray(v["@type"]) &&
28226
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Service")
28227
+ ? await Service.fromJsonLd(v, options)
28228
+ : undefined;
28229
+ if (typeof decoded === "undefined")
28230
+ continue;
28231
+ _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.push(decoded);
28232
+ }
28233
+ instance.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo =
28234
+ _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo;
27390
28235
  const _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = [];
27391
28236
  let _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs__array = values["https://www.w3.org/ns/activitystreams#alsoKnownAs"];
27392
28237
  for (const v of _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs__array == null
@@ -27399,7 +28244,9 @@ export class Organization extends Object {
27399
28244
  continue;
27400
28245
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
27401
28246
  globalThis.Object.keys(v).length === 1) {
27402
- _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs.push(new URL(v["@id"]));
28247
+ _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
28248
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
28249
+ : new URL(v["@id"]));
27403
28250
  continue;
27404
28251
  }
27405
28252
  const decoded = typeof v === "object" && "@type" in v &&
@@ -27441,7 +28288,9 @@ export class Organization extends Object {
27441
28288
  continue;
27442
28289
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
27443
28290
  globalThis.Object.keys(v).length === 1) {
27444
- _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(new URL(v["@id"]));
28291
+ _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
28292
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
28293
+ : new URL(v["@id"]));
27445
28294
  continue;
27446
28295
  }
27447
28296
  _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(await DidService.fromJsonLd(v, options));
@@ -27698,6 +28547,18 @@ export class Organization extends Object {
27698
28547
  if (_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable.length == 1) {
27699
28548
  proxy.indexable = _2diCorzqPGQQqftp6e4SrCEwEnyk_indexable[0];
27700
28549
  }
28550
+ const _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = this
28551
+ .#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo
28552
+ // deno-lint-ignore no-explicit-any
28553
+ .map((v) => v instanceof URL
28554
+ ? {
28555
+ [Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
28556
+ [Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
28557
+ }
28558
+ : v);
28559
+ if (_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.length == 1) {
28560
+ proxy.successor = _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0];
28561
+ }
27701
28562
  const _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = this
27702
28563
  .#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs
27703
28564
  // deno-lint-ignore no-explicit-any
@@ -27958,6 +28819,7 @@ export class Person extends Object {
27958
28819
  #_2kGKkJtoFWg8c18PaVSqj9NKP4t7_suspended = [];
27959
28820
  #_79S8K4f5J9MWUgCxziRyUe6PTHZ_memorial = [];
27960
28821
  #_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable = [];
28822
+ #_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [];
27961
28823
  #_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = [];
27962
28824
  #_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [];
27963
28825
  #_2xEU4QtkC53RAun67T81Egqt9vmL_isCat = [];
@@ -28205,6 +29067,20 @@ export class Person extends Object {
28205
29067
  "boolean" + ".");
28206
29068
  }
28207
29069
  }
29070
+ if ("successor" in values && values.successor != null) {
29071
+ if (values.successor instanceof Application ||
29072
+ values.successor instanceof Group ||
29073
+ values.successor instanceof Organization ||
29074
+ values.successor instanceof _g ||
29075
+ values.successor instanceof Service || values.successor instanceof URL) {
29076
+ // @ts-ignore: type is checked above.
29077
+ this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [values.successor];
29078
+ }
29079
+ else {
29080
+ throw new TypeError("The successor must be of type " +
29081
+ "Application | Group | Organization | Person | Service | URL" + ".");
29082
+ }
29083
+ }
28208
29084
  if ("alias" in values && values.alias != null) {
28209
29085
  if (values.alias instanceof Application || values.alias instanceof Group ||
28210
29086
  values.alias instanceof Organization ||
@@ -28554,6 +29430,22 @@ export class Person extends Object {
28554
29430
  "boolean" + ".");
28555
29431
  }
28556
29432
  }
29433
+ clone.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo =
29434
+ this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo;
29435
+ if ("successor" in values && values.successor != null) {
29436
+ if (values.successor instanceof Application ||
29437
+ values.successor instanceof Group ||
29438
+ values.successor instanceof Organization ||
29439
+ values.successor instanceof _g ||
29440
+ values.successor instanceof Service || values.successor instanceof URL) {
29441
+ // @ts-ignore: type is checked above.
29442
+ clone.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [values.successor];
29443
+ }
29444
+ else {
29445
+ throw new TypeError("The successor must be of type " +
29446
+ "Application | Group | Organization | Person | Service | URL" + ".");
29447
+ }
29448
+ }
28557
29449
  clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs =
28558
29450
  this.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs;
28559
29451
  if ("alias" in values && values.alias != null) {
@@ -29348,6 +30240,95 @@ export class Person extends Object {
29348
30240
  return null;
29349
30241
  return this.#_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable[0];
29350
30242
  }
30243
+ async #fetchSuccessor(url, options = {}) {
30244
+ const documentLoader = options.documentLoader ?? this._documentLoader ??
30245
+ fetchDocumentLoader;
30246
+ const contextLoader = options.contextLoader ?? this._contextLoader ??
30247
+ fetchDocumentLoader;
30248
+ let fetchResult;
30249
+ try {
30250
+ fetchResult = await documentLoader(url.href);
30251
+ }
30252
+ catch (error) {
30253
+ if (options.suppressError) {
30254
+ getLogger(["fedify", "vocab"]).error("Failed to fetch {url}: {error}", { error, url: url.href });
30255
+ return null;
30256
+ }
30257
+ throw error;
30258
+ }
30259
+ const { document } = fetchResult;
30260
+ try {
30261
+ return await Application.fromJsonLd(document, { documentLoader, contextLoader });
30262
+ }
30263
+ catch (e) {
30264
+ if (!(e instanceof TypeError))
30265
+ throw e;
30266
+ }
30267
+ try {
30268
+ return await Group.fromJsonLd(document, { documentLoader, contextLoader });
30269
+ }
30270
+ catch (e) {
30271
+ if (!(e instanceof TypeError))
30272
+ throw e;
30273
+ }
30274
+ try {
30275
+ return await Organization.fromJsonLd(document, { documentLoader, contextLoader });
30276
+ }
30277
+ catch (e) {
30278
+ if (!(e instanceof TypeError))
30279
+ throw e;
30280
+ }
30281
+ try {
30282
+ return await _g.fromJsonLd(document, { documentLoader, contextLoader });
30283
+ }
30284
+ catch (e) {
30285
+ if (!(e instanceof TypeError))
30286
+ throw e;
30287
+ }
30288
+ try {
30289
+ return await Service.fromJsonLd(document, { documentLoader, contextLoader });
30290
+ }
30291
+ catch (e) {
30292
+ if (!(e instanceof TypeError))
30293
+ throw e;
30294
+ }
30295
+ throw new TypeError("Expected an object of any type of: " +
30296
+ [
30297
+ "https://www.w3.org/ns/activitystreams#Application",
30298
+ "https://www.w3.org/ns/activitystreams#Group",
30299
+ "https://www.w3.org/ns/activitystreams#Organization",
30300
+ "https://www.w3.org/ns/activitystreams#Person",
30301
+ "https://www.w3.org/ns/activitystreams#Service",
30302
+ ].join(", "));
30303
+ }
30304
+ /**
30305
+ * Similar to
30306
+ * {@link Person.getSuccessor},
30307
+ * but returns its `@id` URL instead of the object itself.
30308
+ */
30309
+ get successorId() {
30310
+ if (this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.length < 1)
30311
+ return null;
30312
+ const v = this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0];
30313
+ if (v instanceof URL)
30314
+ return v;
30315
+ return v.id;
30316
+ }
30317
+ /** Signifies that an actor has been moved to a different ID. Used in Mastodon-style data portability with the {@link Move} activity; see [ActivityPub Data Portability/Move Action](https://swicg.github.io/activitypub-data-portability/#move-action) for more details.
30318
+ */
30319
+ async getSuccessor(options = {}) {
30320
+ if (this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.length < 1)
30321
+ return null;
30322
+ const v = this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0];
30323
+ if (v instanceof URL) {
30324
+ const fetched = await this.#fetchSuccessor(v, options);
30325
+ if (fetched == null)
30326
+ return null;
30327
+ this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0] = fetched;
30328
+ return fetched;
30329
+ }
30330
+ return v;
30331
+ }
29351
30332
  async #fetchAlias(url, options = {}) {
29352
30333
  const documentLoader = options.documentLoader ?? this._documentLoader ??
29353
30334
  fetchDocumentLoader;
@@ -29812,6 +30793,46 @@ export class Person extends Object {
29812
30793
  : compactItems[0];
29813
30794
  }
29814
30795
  compactItems = [];
30796
+ for (const v of this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo) {
30797
+ const item = v instanceof URL
30798
+ ? v.href
30799
+ : v instanceof Application
30800
+ ? await v.toJsonLd({
30801
+ ...options,
30802
+ format: undefined,
30803
+ context: undefined,
30804
+ })
30805
+ : v instanceof Group
30806
+ ? await v.toJsonLd({
30807
+ ...options,
30808
+ format: undefined,
30809
+ context: undefined,
30810
+ })
30811
+ : v instanceof Organization
30812
+ ? await v.toJsonLd({
30813
+ ...options,
30814
+ format: undefined,
30815
+ context: undefined,
30816
+ })
30817
+ : v instanceof _g
30818
+ ? await v.toJsonLd({
30819
+ ...options,
30820
+ format: undefined,
30821
+ context: undefined,
30822
+ })
30823
+ : await v.toJsonLd({
30824
+ ...options,
30825
+ format: undefined,
30826
+ context: undefined,
30827
+ });
30828
+ compactItems.push(item);
30829
+ }
30830
+ if (compactItems.length > 0) {
30831
+ result["movedTo"] = compactItems.length > 1
30832
+ ? compactItems
30833
+ : compactItems[0];
30834
+ }
30835
+ compactItems = [];
29815
30836
  for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs) {
29816
30837
  const item = v instanceof URL
29817
30838
  ? v.href
@@ -29885,7 +30906,9 @@ export class Person extends Object {
29885
30906
  "https://www.w3.org/ns/did/v1",
29886
30907
  "https://w3id.org/security/multikey/v1",
29887
30908
  {
30909
+ "alsoKnownAs": { "@id": "as:alsoKnownAs", "@type": "@id" },
29888
30910
  "manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
30911
+ "movedTo": { "@id": "as:movedTo", "@type": "@id" },
29889
30912
  "toot": "http://joinmastodon.org/ns#",
29890
30913
  "featured": { "@id": "toot:featured", "@type": "@id" },
29891
30914
  "featuredTags": { "@id": "toot:featuredTags", "@type": "@id" },
@@ -30088,6 +31111,25 @@ export class Person extends Object {
30088
31111
  values["http://joinmastodon.org/ns#indexable"] = propValue;
30089
31112
  }
30090
31113
  array = [];
31114
+ for (const v of this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo) {
31115
+ const element = v instanceof URL
31116
+ ? { "@id": v.href }
31117
+ : v instanceof Application
31118
+ ? await v.toJsonLd(options)
31119
+ : v instanceof Group
31120
+ ? await v.toJsonLd(options)
31121
+ : v instanceof Organization
31122
+ ? await v.toJsonLd(options)
31123
+ : v instanceof _g
31124
+ ? await v.toJsonLd(options)
31125
+ : await v.toJsonLd(options);
31126
+ array.push(element);
31127
+ }
31128
+ if (array.length > 0) {
31129
+ const propValue = array;
31130
+ values["https://www.w3.org/ns/activitystreams#movedTo"] = propValue;
31131
+ }
31132
+ array = [];
30091
31133
  for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs) {
30092
31134
  const element = v instanceof URL
30093
31135
  ? { "@id": v.href }
@@ -30140,7 +31182,9 @@ export class Person extends Object {
30140
31182
  "https://www.w3.org/ns/did/v1",
30141
31183
  "https://w3id.org/security/multikey/v1",
30142
31184
  {
31185
+ "alsoKnownAs": { "@id": "as:alsoKnownAs", "@type": "@id" },
30143
31186
  "manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
31187
+ "movedTo": { "@id": "as:movedTo", "@type": "@id" },
30144
31188
  "toot": "http://joinmastodon.org/ns#",
30145
31189
  "featured": { "@id": "toot:featured", "@type": "@id" },
30146
31190
  "featuredTags": { "@id": "toot:featuredTags", "@type": "@id" },
@@ -30263,7 +31307,9 @@ export class Person extends Object {
30263
31307
  continue;
30264
31308
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
30265
31309
  globalThis.Object.keys(v).length === 1) {
30266
- _axq166E2eZADq34V4MYUc8KMZdC_publicKey.push(new URL(v["@id"]));
31310
+ _axq166E2eZADq34V4MYUc8KMZdC_publicKey.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
31311
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
31312
+ : new URL(v["@id"]));
30267
31313
  continue;
30268
31314
  }
30269
31315
  _axq166E2eZADq34V4MYUc8KMZdC_publicKey.push(await CryptographicKey.fromJsonLd(v, options));
@@ -30282,7 +31328,9 @@ export class Person extends Object {
30282
31328
  continue;
30283
31329
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
30284
31330
  globalThis.Object.keys(v).length === 1) {
30285
- _4EHQFWZSz1k1d4LmPrQiMba2GbP3_assertionMethod.push(new URL(v["@id"]));
31331
+ _4EHQFWZSz1k1d4LmPrQiMba2GbP3_assertionMethod.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
31332
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
31333
+ : new URL(v["@id"]));
30286
31334
  continue;
30287
31335
  }
30288
31336
  _4EHQFWZSz1k1d4LmPrQiMba2GbP3_assertionMethod.push(await Multikey.fromJsonLd(v, options));
@@ -30317,7 +31365,9 @@ export class Person extends Object {
30317
31365
  continue;
30318
31366
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
30319
31367
  globalThis.Object.keys(v).length === 1) {
30320
- _3ghX3VfZXXbLvhCRH7QJqpzLrXjB_inbox.push(new URL(v["@id"]));
31368
+ _3ghX3VfZXXbLvhCRH7QJqpzLrXjB_inbox.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
31369
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
31370
+ : new URL(v["@id"]));
30321
31371
  continue;
30322
31372
  }
30323
31373
  _3ghX3VfZXXbLvhCRH7QJqpzLrXjB_inbox.push(await OrderedCollection.fromJsonLd(v, options));
@@ -30336,7 +31386,9 @@ export class Person extends Object {
30336
31386
  continue;
30337
31387
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
30338
31388
  globalThis.Object.keys(v).length === 1) {
30339
- _41QwhqJouoLg3h8dRPKat21brynC_outbox.push(new URL(v["@id"]));
31389
+ _41QwhqJouoLg3h8dRPKat21brynC_outbox.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
31390
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
31391
+ : new URL(v["@id"]));
30340
31392
  continue;
30341
31393
  }
30342
31394
  _41QwhqJouoLg3h8dRPKat21brynC_outbox.push(await OrderedCollection.fromJsonLd(v, options));
@@ -30355,7 +31407,9 @@ export class Person extends Object {
30355
31407
  continue;
30356
31408
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
30357
31409
  globalThis.Object.keys(v).length === 1) {
30358
- _3yAv8jymNfNuJUDuBzJ1NQhdbAee_following.push(new URL(v["@id"]));
31410
+ _3yAv8jymNfNuJUDuBzJ1NQhdbAee_following.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
31411
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
31412
+ : new URL(v["@id"]));
30359
31413
  continue;
30360
31414
  }
30361
31415
  _3yAv8jymNfNuJUDuBzJ1NQhdbAee_following.push(await Collection.fromJsonLd(v, options));
@@ -30374,7 +31428,9 @@ export class Person extends Object {
30374
31428
  continue;
30375
31429
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
30376
31430
  globalThis.Object.keys(v).length === 1) {
30377
- _BBCTgfphhsFzpVfKTykGSpBNwoA_followers.push(new URL(v["@id"]));
31431
+ _BBCTgfphhsFzpVfKTykGSpBNwoA_followers.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
31432
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
31433
+ : new URL(v["@id"]));
30378
31434
  continue;
30379
31435
  }
30380
31436
  _BBCTgfphhsFzpVfKTykGSpBNwoA_followers.push(await Collection.fromJsonLd(v, options));
@@ -30393,7 +31449,9 @@ export class Person extends Object {
30393
31449
  continue;
30394
31450
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
30395
31451
  globalThis.Object.keys(v).length === 1) {
30396
- _3bgkPwJanyTCoVFM9ovRcus8tKkU_liked.push(new URL(v["@id"]));
31452
+ _3bgkPwJanyTCoVFM9ovRcus8tKkU_liked.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
31453
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
31454
+ : new URL(v["@id"]));
30397
31455
  continue;
30398
31456
  }
30399
31457
  _3bgkPwJanyTCoVFM9ovRcus8tKkU_liked.push(await Collection.fromJsonLd(v, options));
@@ -30412,7 +31470,9 @@ export class Person extends Object {
30412
31470
  continue;
30413
31471
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
30414
31472
  globalThis.Object.keys(v).length === 1) {
30415
- _4N1vBJzXDf8NbBumeECQMFvKetja_featured.push(new URL(v["@id"]));
31473
+ _4N1vBJzXDf8NbBumeECQMFvKetja_featured.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
31474
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
31475
+ : new URL(v["@id"]));
30416
31476
  continue;
30417
31477
  }
30418
31478
  _4N1vBJzXDf8NbBumeECQMFvKetja_featured.push(await Collection.fromJsonLd(v, options));
@@ -30431,7 +31491,9 @@ export class Person extends Object {
30431
31491
  continue;
30432
31492
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
30433
31493
  globalThis.Object.keys(v).length === 1) {
30434
- _2MxnRRLq9iPzx5CFq2NPrXdUDCac_featuredTags.push(new URL(v["@id"]));
31494
+ _2MxnRRLq9iPzx5CFq2NPrXdUDCac_featuredTags.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
31495
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
31496
+ : new URL(v["@id"]));
30435
31497
  continue;
30436
31498
  }
30437
31499
  _2MxnRRLq9iPzx5CFq2NPrXdUDCac_featuredTags.push(await Collection.fromJsonLd(v, options));
@@ -30450,7 +31512,9 @@ export class Person extends Object {
30450
31512
  continue;
30451
31513
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
30452
31514
  globalThis.Object.keys(v).length === 1) {
30453
- _3sG2Hdwn9qzKGu9mpYkqakAMUkH9_streams.push(new URL(v["@id"]));
31515
+ _3sG2Hdwn9qzKGu9mpYkqakAMUkH9_streams.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
31516
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
31517
+ : new URL(v["@id"]));
30454
31518
  continue;
30455
31519
  }
30456
31520
  _3sG2Hdwn9qzKGu9mpYkqakAMUkH9_streams.push(await Collection.fromJsonLd(v, options));
@@ -30527,6 +31591,50 @@ export class Person extends Object {
30527
31591
  }
30528
31592
  instance.#_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable =
30529
31593
  _2diCorzqPGQQqftp6e4SrCEwEnyk_indexable;
31594
+ const _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [];
31595
+ let _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array = values["https://www.w3.org/ns/activitystreams#movedTo"];
31596
+ for (const v of _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array == null
31597
+ ? []
31598
+ : _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array.length === 1 &&
31599
+ "@list" in _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array[0]
31600
+ ? _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array[0]["@list"]
31601
+ : _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array) {
31602
+ if (v == null)
31603
+ continue;
31604
+ if (typeof v === "object" && "@id" in v && !("@type" in v) &&
31605
+ globalThis.Object.keys(v).length === 1) {
31606
+ _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
31607
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
31608
+ : new URL(v["@id"]));
31609
+ continue;
31610
+ }
31611
+ const decoded = typeof v === "object" && "@type" in v &&
31612
+ Array.isArray(v["@type"]) &&
31613
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Application")
31614
+ ? await Application.fromJsonLd(v, options)
31615
+ : typeof v === "object" && "@type" in v &&
31616
+ Array.isArray(v["@type"]) &&
31617
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Group")
31618
+ ? await Group.fromJsonLd(v, options)
31619
+ : typeof v === "object" && "@type" in v &&
31620
+ Array.isArray(v["@type"]) &&
31621
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Organization")
31622
+ ? await Organization.fromJsonLd(v, options)
31623
+ : typeof v === "object" && "@type" in v &&
31624
+ Array.isArray(v["@type"]) &&
31625
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Person")
31626
+ ? await _g.fromJsonLd(v, options)
31627
+ : typeof v === "object" && "@type" in v &&
31628
+ Array.isArray(v["@type"]) &&
31629
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Service")
31630
+ ? await Service.fromJsonLd(v, options)
31631
+ : undefined;
31632
+ if (typeof decoded === "undefined")
31633
+ continue;
31634
+ _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.push(decoded);
31635
+ }
31636
+ instance.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo =
31637
+ _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo;
30530
31638
  const _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = [];
30531
31639
  let _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs__array = values["https://www.w3.org/ns/activitystreams#alsoKnownAs"];
30532
31640
  for (const v of _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs__array == null
@@ -30539,7 +31647,9 @@ export class Person extends Object {
30539
31647
  continue;
30540
31648
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
30541
31649
  globalThis.Object.keys(v).length === 1) {
30542
- _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs.push(new URL(v["@id"]));
31650
+ _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
31651
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
31652
+ : new URL(v["@id"]));
30543
31653
  continue;
30544
31654
  }
30545
31655
  const decoded = typeof v === "object" && "@type" in v &&
@@ -30581,7 +31691,9 @@ export class Person extends Object {
30581
31691
  continue;
30582
31692
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
30583
31693
  globalThis.Object.keys(v).length === 1) {
30584
- _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(new URL(v["@id"]));
31694
+ _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
31695
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
31696
+ : new URL(v["@id"]));
30585
31697
  continue;
30586
31698
  }
30587
31699
  _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(await DidService.fromJsonLd(v, options));
@@ -30838,6 +31950,18 @@ export class Person extends Object {
30838
31950
  if (_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable.length == 1) {
30839
31951
  proxy.indexable = _2diCorzqPGQQqftp6e4SrCEwEnyk_indexable[0];
30840
31952
  }
31953
+ const _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = this
31954
+ .#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo
31955
+ // deno-lint-ignore no-explicit-any
31956
+ .map((v) => v instanceof URL
31957
+ ? {
31958
+ [Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
31959
+ [Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
31960
+ }
31961
+ : v);
31962
+ if (_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.length == 1) {
31963
+ proxy.successor = _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0];
31964
+ }
30841
31965
  const _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = this
30842
31966
  .#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs
30843
31967
  // deno-lint-ignore no-explicit-any
@@ -31842,7 +32966,9 @@ export class Profile extends Object {
31842
32966
  continue;
31843
32967
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
31844
32968
  globalThis.Object.keys(v).length === 1) {
31845
- _3CLQ1PLSXrhSQbTGGHuxNyaEFKM1_describes.push(new URL(v["@id"]));
32969
+ _3CLQ1PLSXrhSQbTGGHuxNyaEFKM1_describes.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
32970
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
32971
+ : new URL(v["@id"]));
31846
32972
  continue;
31847
32973
  }
31848
32974
  _3CLQ1PLSXrhSQbTGGHuxNyaEFKM1_describes.push(await Object.fromJsonLd(v, options));
@@ -32373,7 +33499,9 @@ export class Question extends IntransitiveActivity {
32373
33499
  continue;
32374
33500
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
32375
33501
  globalThis.Object.keys(v).length === 1) {
32376
- _2N5scKaVEcdYHFmfKYYacAwUhUgQ_oneOf.push(new URL(v["@id"]));
33502
+ _2N5scKaVEcdYHFmfKYYacAwUhUgQ_oneOf.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
33503
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
33504
+ : new URL(v["@id"]));
32377
33505
  continue;
32378
33506
  }
32379
33507
  _2N5scKaVEcdYHFmfKYYacAwUhUgQ_oneOf.push(await Object.fromJsonLd(v, options));
@@ -32392,7 +33520,9 @@ export class Question extends IntransitiveActivity {
32392
33520
  continue;
32393
33521
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
32394
33522
  globalThis.Object.keys(v).length === 1) {
32395
- _2mV6isMTPRKbWdLCjcpiEysq5dAY_anyOf.push(new URL(v["@id"]));
33523
+ _2mV6isMTPRKbWdLCjcpiEysq5dAY_anyOf.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
33524
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
33525
+ : new URL(v["@id"]));
32396
33526
  continue;
32397
33527
  }
32398
33528
  _2mV6isMTPRKbWdLCjcpiEysq5dAY_anyOf.push(await Object.fromJsonLd(v, options));
@@ -33479,7 +34609,9 @@ export class Relationship extends Object {
33479
34609
  continue;
33480
34610
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
33481
34611
  globalThis.Object.keys(v).length === 1) {
33482
- _2Zqdmi46ZnDQsECS6mzwhrv3rUKq_subject.push(new URL(v["@id"]));
34612
+ _2Zqdmi46ZnDQsECS6mzwhrv3rUKq_subject.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
34613
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
34614
+ : new URL(v["@id"]));
33483
34615
  continue;
33484
34616
  }
33485
34617
  _2Zqdmi46ZnDQsECS6mzwhrv3rUKq_subject.push(await Object.fromJsonLd(v, options));
@@ -33498,7 +34630,9 @@ export class Relationship extends Object {
33498
34630
  continue;
33499
34631
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
33500
34632
  globalThis.Object.keys(v).length === 1) {
33501
- _2MH19yxjn1wnHsNfa5n4JBhJzxyc_object.push(new URL(v["@id"]));
34633
+ _2MH19yxjn1wnHsNfa5n4JBhJzxyc_object.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
34634
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
34635
+ : new URL(v["@id"]));
33502
34636
  continue;
33503
34637
  }
33504
34638
  _2MH19yxjn1wnHsNfa5n4JBhJzxyc_object.push(await Object.fromJsonLd(v, options));
@@ -33517,7 +34651,9 @@ export class Relationship extends Object {
33517
34651
  continue;
33518
34652
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
33519
34653
  globalThis.Object.keys(v).length === 1) {
33520
- _4Lzz89F9qipAQSGkWyX9DGWiUojG_relationship.push(new URL(v["@id"]));
34654
+ _4Lzz89F9qipAQSGkWyX9DGWiUojG_relationship.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
34655
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
34656
+ : new URL(v["@id"]));
33521
34657
  continue;
33522
34658
  }
33523
34659
  _4Lzz89F9qipAQSGkWyX9DGWiUojG_relationship.push(await Object.fromJsonLd(v, options));
@@ -33780,6 +34916,7 @@ export class Service extends Object {
33780
34916
  #_2kGKkJtoFWg8c18PaVSqj9NKP4t7_suspended = [];
33781
34917
  #_79S8K4f5J9MWUgCxziRyUe6PTHZ_memorial = [];
33782
34918
  #_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable = [];
34919
+ #_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [];
33783
34920
  #_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = [];
33784
34921
  #_4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service = [];
33785
34922
  #_2xEU4QtkC53RAun67T81Egqt9vmL_isCat = [];
@@ -34027,6 +35164,20 @@ export class Service extends Object {
34027
35164
  "boolean" + ".");
34028
35165
  }
34029
35166
  }
35167
+ if ("successor" in values && values.successor != null) {
35168
+ if (values.successor instanceof Application ||
35169
+ values.successor instanceof Group ||
35170
+ values.successor instanceof Organization ||
35171
+ values.successor instanceof Person ||
35172
+ values.successor instanceof _h || values.successor instanceof URL) {
35173
+ // @ts-ignore: type is checked above.
35174
+ this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [values.successor];
35175
+ }
35176
+ else {
35177
+ throw new TypeError("The successor must be of type " +
35178
+ "Application | Group | Organization | Person | Service | URL" + ".");
35179
+ }
35180
+ }
34030
35181
  if ("alias" in values && values.alias != null) {
34031
35182
  if (values.alias instanceof Application || values.alias instanceof Group ||
34032
35183
  values.alias instanceof Organization ||
@@ -34376,6 +35527,22 @@ export class Service extends Object {
34376
35527
  "boolean" + ".");
34377
35528
  }
34378
35529
  }
35530
+ clone.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo =
35531
+ this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo;
35532
+ if ("successor" in values && values.successor != null) {
35533
+ if (values.successor instanceof Application ||
35534
+ values.successor instanceof Group ||
35535
+ values.successor instanceof Organization ||
35536
+ values.successor instanceof Person ||
35537
+ values.successor instanceof _h || values.successor instanceof URL) {
35538
+ // @ts-ignore: type is checked above.
35539
+ clone.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [values.successor];
35540
+ }
35541
+ else {
35542
+ throw new TypeError("The successor must be of type " +
35543
+ "Application | Group | Organization | Person | Service | URL" + ".");
35544
+ }
35545
+ }
34379
35546
  clone.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs =
34380
35547
  this.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs;
34381
35548
  if ("alias" in values && values.alias != null) {
@@ -35170,6 +36337,95 @@ export class Service extends Object {
35170
36337
  return null;
35171
36338
  return this.#_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable[0];
35172
36339
  }
36340
+ async #fetchSuccessor(url, options = {}) {
36341
+ const documentLoader = options.documentLoader ?? this._documentLoader ??
36342
+ fetchDocumentLoader;
36343
+ const contextLoader = options.contextLoader ?? this._contextLoader ??
36344
+ fetchDocumentLoader;
36345
+ let fetchResult;
36346
+ try {
36347
+ fetchResult = await documentLoader(url.href);
36348
+ }
36349
+ catch (error) {
36350
+ if (options.suppressError) {
36351
+ getLogger(["fedify", "vocab"]).error("Failed to fetch {url}: {error}", { error, url: url.href });
36352
+ return null;
36353
+ }
36354
+ throw error;
36355
+ }
36356
+ const { document } = fetchResult;
36357
+ try {
36358
+ return await Application.fromJsonLd(document, { documentLoader, contextLoader });
36359
+ }
36360
+ catch (e) {
36361
+ if (!(e instanceof TypeError))
36362
+ throw e;
36363
+ }
36364
+ try {
36365
+ return await Group.fromJsonLd(document, { documentLoader, contextLoader });
36366
+ }
36367
+ catch (e) {
36368
+ if (!(e instanceof TypeError))
36369
+ throw e;
36370
+ }
36371
+ try {
36372
+ return await Organization.fromJsonLd(document, { documentLoader, contextLoader });
36373
+ }
36374
+ catch (e) {
36375
+ if (!(e instanceof TypeError))
36376
+ throw e;
36377
+ }
36378
+ try {
36379
+ return await Person.fromJsonLd(document, { documentLoader, contextLoader });
36380
+ }
36381
+ catch (e) {
36382
+ if (!(e instanceof TypeError))
36383
+ throw e;
36384
+ }
36385
+ try {
36386
+ return await _h.fromJsonLd(document, { documentLoader, contextLoader });
36387
+ }
36388
+ catch (e) {
36389
+ if (!(e instanceof TypeError))
36390
+ throw e;
36391
+ }
36392
+ throw new TypeError("Expected an object of any type of: " +
36393
+ [
36394
+ "https://www.w3.org/ns/activitystreams#Application",
36395
+ "https://www.w3.org/ns/activitystreams#Group",
36396
+ "https://www.w3.org/ns/activitystreams#Organization",
36397
+ "https://www.w3.org/ns/activitystreams#Person",
36398
+ "https://www.w3.org/ns/activitystreams#Service",
36399
+ ].join(", "));
36400
+ }
36401
+ /**
36402
+ * Similar to
36403
+ * {@link Service.getSuccessor},
36404
+ * but returns its `@id` URL instead of the object itself.
36405
+ */
36406
+ get successorId() {
36407
+ if (this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.length < 1)
36408
+ return null;
36409
+ const v = this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0];
36410
+ if (v instanceof URL)
36411
+ return v;
36412
+ return v.id;
36413
+ }
36414
+ /** Signifies that an actor has been moved to a different ID. Used in Mastodon-style data portability with the {@link Move} activity; see [ActivityPub Data Portability/Move Action](https://swicg.github.io/activitypub-data-portability/#move-action) for more details.
36415
+ */
36416
+ async getSuccessor(options = {}) {
36417
+ if (this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.length < 1)
36418
+ return null;
36419
+ const v = this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0];
36420
+ if (v instanceof URL) {
36421
+ const fetched = await this.#fetchSuccessor(v, options);
36422
+ if (fetched == null)
36423
+ return null;
36424
+ this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0] = fetched;
36425
+ return fetched;
36426
+ }
36427
+ return v;
36428
+ }
35173
36429
  async #fetchAlias(url, options = {}) {
35174
36430
  const documentLoader = options.documentLoader ?? this._documentLoader ??
35175
36431
  fetchDocumentLoader;
@@ -35634,6 +36890,46 @@ export class Service extends Object {
35634
36890
  : compactItems[0];
35635
36891
  }
35636
36892
  compactItems = [];
36893
+ for (const v of this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo) {
36894
+ const item = v instanceof URL
36895
+ ? v.href
36896
+ : v instanceof Application
36897
+ ? await v.toJsonLd({
36898
+ ...options,
36899
+ format: undefined,
36900
+ context: undefined,
36901
+ })
36902
+ : v instanceof Group
36903
+ ? await v.toJsonLd({
36904
+ ...options,
36905
+ format: undefined,
36906
+ context: undefined,
36907
+ })
36908
+ : v instanceof Organization
36909
+ ? await v.toJsonLd({
36910
+ ...options,
36911
+ format: undefined,
36912
+ context: undefined,
36913
+ })
36914
+ : v instanceof Person
36915
+ ? await v.toJsonLd({
36916
+ ...options,
36917
+ format: undefined,
36918
+ context: undefined,
36919
+ })
36920
+ : await v.toJsonLd({
36921
+ ...options,
36922
+ format: undefined,
36923
+ context: undefined,
36924
+ });
36925
+ compactItems.push(item);
36926
+ }
36927
+ if (compactItems.length > 0) {
36928
+ result["movedTo"] = compactItems.length > 1
36929
+ ? compactItems
36930
+ : compactItems[0];
36931
+ }
36932
+ compactItems = [];
35637
36933
  for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs) {
35638
36934
  const item = v instanceof URL
35639
36935
  ? v.href
@@ -35707,7 +37003,9 @@ export class Service extends Object {
35707
37003
  "https://www.w3.org/ns/did/v1",
35708
37004
  "https://w3id.org/security/multikey/v1",
35709
37005
  {
37006
+ "alsoKnownAs": { "@id": "as:alsoKnownAs", "@type": "@id" },
35710
37007
  "manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
37008
+ "movedTo": { "@id": "as:movedTo", "@type": "@id" },
35711
37009
  "toot": "http://joinmastodon.org/ns#",
35712
37010
  "featured": { "@id": "toot:featured", "@type": "@id" },
35713
37011
  "featuredTags": { "@id": "toot:featuredTags", "@type": "@id" },
@@ -35910,6 +37208,25 @@ export class Service extends Object {
35910
37208
  values["http://joinmastodon.org/ns#indexable"] = propValue;
35911
37209
  }
35912
37210
  array = [];
37211
+ for (const v of this.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo) {
37212
+ const element = v instanceof URL
37213
+ ? { "@id": v.href }
37214
+ : v instanceof Application
37215
+ ? await v.toJsonLd(options)
37216
+ : v instanceof Group
37217
+ ? await v.toJsonLd(options)
37218
+ : v instanceof Organization
37219
+ ? await v.toJsonLd(options)
37220
+ : v instanceof Person
37221
+ ? await v.toJsonLd(options)
37222
+ : await v.toJsonLd(options);
37223
+ array.push(element);
37224
+ }
37225
+ if (array.length > 0) {
37226
+ const propValue = array;
37227
+ values["https://www.w3.org/ns/activitystreams#movedTo"] = propValue;
37228
+ }
37229
+ array = [];
35913
37230
  for (const v of this.#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs) {
35914
37231
  const element = v instanceof URL
35915
37232
  ? { "@id": v.href }
@@ -35962,7 +37279,9 @@ export class Service extends Object {
35962
37279
  "https://www.w3.org/ns/did/v1",
35963
37280
  "https://w3id.org/security/multikey/v1",
35964
37281
  {
37282
+ "alsoKnownAs": { "@id": "as:alsoKnownAs", "@type": "@id" },
35965
37283
  "manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
37284
+ "movedTo": { "@id": "as:movedTo", "@type": "@id" },
35966
37285
  "toot": "http://joinmastodon.org/ns#",
35967
37286
  "featured": { "@id": "toot:featured", "@type": "@id" },
35968
37287
  "featuredTags": { "@id": "toot:featuredTags", "@type": "@id" },
@@ -36085,7 +37404,9 @@ export class Service extends Object {
36085
37404
  continue;
36086
37405
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
36087
37406
  globalThis.Object.keys(v).length === 1) {
36088
- _axq166E2eZADq34V4MYUc8KMZdC_publicKey.push(new URL(v["@id"]));
37407
+ _axq166E2eZADq34V4MYUc8KMZdC_publicKey.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
37408
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
37409
+ : new URL(v["@id"]));
36089
37410
  continue;
36090
37411
  }
36091
37412
  _axq166E2eZADq34V4MYUc8KMZdC_publicKey.push(await CryptographicKey.fromJsonLd(v, options));
@@ -36104,7 +37425,9 @@ export class Service extends Object {
36104
37425
  continue;
36105
37426
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
36106
37427
  globalThis.Object.keys(v).length === 1) {
36107
- _4EHQFWZSz1k1d4LmPrQiMba2GbP3_assertionMethod.push(new URL(v["@id"]));
37428
+ _4EHQFWZSz1k1d4LmPrQiMba2GbP3_assertionMethod.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
37429
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
37430
+ : new URL(v["@id"]));
36108
37431
  continue;
36109
37432
  }
36110
37433
  _4EHQFWZSz1k1d4LmPrQiMba2GbP3_assertionMethod.push(await Multikey.fromJsonLd(v, options));
@@ -36139,7 +37462,9 @@ export class Service extends Object {
36139
37462
  continue;
36140
37463
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
36141
37464
  globalThis.Object.keys(v).length === 1) {
36142
- _3ghX3VfZXXbLvhCRH7QJqpzLrXjB_inbox.push(new URL(v["@id"]));
37465
+ _3ghX3VfZXXbLvhCRH7QJqpzLrXjB_inbox.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
37466
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
37467
+ : new URL(v["@id"]));
36143
37468
  continue;
36144
37469
  }
36145
37470
  _3ghX3VfZXXbLvhCRH7QJqpzLrXjB_inbox.push(await OrderedCollection.fromJsonLd(v, options));
@@ -36158,7 +37483,9 @@ export class Service extends Object {
36158
37483
  continue;
36159
37484
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
36160
37485
  globalThis.Object.keys(v).length === 1) {
36161
- _41QwhqJouoLg3h8dRPKat21brynC_outbox.push(new URL(v["@id"]));
37486
+ _41QwhqJouoLg3h8dRPKat21brynC_outbox.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
37487
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
37488
+ : new URL(v["@id"]));
36162
37489
  continue;
36163
37490
  }
36164
37491
  _41QwhqJouoLg3h8dRPKat21brynC_outbox.push(await OrderedCollection.fromJsonLd(v, options));
@@ -36177,7 +37504,9 @@ export class Service extends Object {
36177
37504
  continue;
36178
37505
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
36179
37506
  globalThis.Object.keys(v).length === 1) {
36180
- _3yAv8jymNfNuJUDuBzJ1NQhdbAee_following.push(new URL(v["@id"]));
37507
+ _3yAv8jymNfNuJUDuBzJ1NQhdbAee_following.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
37508
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
37509
+ : new URL(v["@id"]));
36181
37510
  continue;
36182
37511
  }
36183
37512
  _3yAv8jymNfNuJUDuBzJ1NQhdbAee_following.push(await Collection.fromJsonLd(v, options));
@@ -36196,7 +37525,9 @@ export class Service extends Object {
36196
37525
  continue;
36197
37526
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
36198
37527
  globalThis.Object.keys(v).length === 1) {
36199
- _BBCTgfphhsFzpVfKTykGSpBNwoA_followers.push(new URL(v["@id"]));
37528
+ _BBCTgfphhsFzpVfKTykGSpBNwoA_followers.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
37529
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
37530
+ : new URL(v["@id"]));
36200
37531
  continue;
36201
37532
  }
36202
37533
  _BBCTgfphhsFzpVfKTykGSpBNwoA_followers.push(await Collection.fromJsonLd(v, options));
@@ -36215,7 +37546,9 @@ export class Service extends Object {
36215
37546
  continue;
36216
37547
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
36217
37548
  globalThis.Object.keys(v).length === 1) {
36218
- _3bgkPwJanyTCoVFM9ovRcus8tKkU_liked.push(new URL(v["@id"]));
37549
+ _3bgkPwJanyTCoVFM9ovRcus8tKkU_liked.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
37550
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
37551
+ : new URL(v["@id"]));
36219
37552
  continue;
36220
37553
  }
36221
37554
  _3bgkPwJanyTCoVFM9ovRcus8tKkU_liked.push(await Collection.fromJsonLd(v, options));
@@ -36234,7 +37567,9 @@ export class Service extends Object {
36234
37567
  continue;
36235
37568
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
36236
37569
  globalThis.Object.keys(v).length === 1) {
36237
- _4N1vBJzXDf8NbBumeECQMFvKetja_featured.push(new URL(v["@id"]));
37570
+ _4N1vBJzXDf8NbBumeECQMFvKetja_featured.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
37571
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
37572
+ : new URL(v["@id"]));
36238
37573
  continue;
36239
37574
  }
36240
37575
  _4N1vBJzXDf8NbBumeECQMFvKetja_featured.push(await Collection.fromJsonLd(v, options));
@@ -36253,7 +37588,9 @@ export class Service extends Object {
36253
37588
  continue;
36254
37589
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
36255
37590
  globalThis.Object.keys(v).length === 1) {
36256
- _2MxnRRLq9iPzx5CFq2NPrXdUDCac_featuredTags.push(new URL(v["@id"]));
37591
+ _2MxnRRLq9iPzx5CFq2NPrXdUDCac_featuredTags.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
37592
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
37593
+ : new URL(v["@id"]));
36257
37594
  continue;
36258
37595
  }
36259
37596
  _2MxnRRLq9iPzx5CFq2NPrXdUDCac_featuredTags.push(await Collection.fromJsonLd(v, options));
@@ -36272,7 +37609,9 @@ export class Service extends Object {
36272
37609
  continue;
36273
37610
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
36274
37611
  globalThis.Object.keys(v).length === 1) {
36275
- _3sG2Hdwn9qzKGu9mpYkqakAMUkH9_streams.push(new URL(v["@id"]));
37612
+ _3sG2Hdwn9qzKGu9mpYkqakAMUkH9_streams.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
37613
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
37614
+ : new URL(v["@id"]));
36276
37615
  continue;
36277
37616
  }
36278
37617
  _3sG2Hdwn9qzKGu9mpYkqakAMUkH9_streams.push(await Collection.fromJsonLd(v, options));
@@ -36349,6 +37688,50 @@ export class Service extends Object {
36349
37688
  }
36350
37689
  instance.#_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable =
36351
37690
  _2diCorzqPGQQqftp6e4SrCEwEnyk_indexable;
37691
+ const _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = [];
37692
+ let _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array = values["https://www.w3.org/ns/activitystreams#movedTo"];
37693
+ for (const v of _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array == null
37694
+ ? []
37695
+ : _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array.length === 1 &&
37696
+ "@list" in _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array[0]
37697
+ ? _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array[0]["@list"]
37698
+ : _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo__array) {
37699
+ if (v == null)
37700
+ continue;
37701
+ if (typeof v === "object" && "@id" in v && !("@type" in v) &&
37702
+ globalThis.Object.keys(v).length === 1) {
37703
+ _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
37704
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
37705
+ : new URL(v["@id"]));
37706
+ continue;
37707
+ }
37708
+ const decoded = typeof v === "object" && "@type" in v &&
37709
+ Array.isArray(v["@type"]) &&
37710
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Application")
37711
+ ? await Application.fromJsonLd(v, options)
37712
+ : typeof v === "object" && "@type" in v &&
37713
+ Array.isArray(v["@type"]) &&
37714
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Group")
37715
+ ? await Group.fromJsonLd(v, options)
37716
+ : typeof v === "object" && "@type" in v &&
37717
+ Array.isArray(v["@type"]) &&
37718
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Organization")
37719
+ ? await Organization.fromJsonLd(v, options)
37720
+ : typeof v === "object" && "@type" in v &&
37721
+ Array.isArray(v["@type"]) &&
37722
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Person")
37723
+ ? await Person.fromJsonLd(v, options)
37724
+ : typeof v === "object" && "@type" in v &&
37725
+ Array.isArray(v["@type"]) &&
37726
+ v["@type"].includes("https://www.w3.org/ns/activitystreams#Service")
37727
+ ? await _h.fromJsonLd(v, options)
37728
+ : undefined;
37729
+ if (typeof decoded === "undefined")
37730
+ continue;
37731
+ _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.push(decoded);
37732
+ }
37733
+ instance.#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo =
37734
+ _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo;
36352
37735
  const _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = [];
36353
37736
  let _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs__array = values["https://www.w3.org/ns/activitystreams#alsoKnownAs"];
36354
37737
  for (const v of _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs__array == null
@@ -36361,7 +37744,9 @@ export class Service extends Object {
36361
37744
  continue;
36362
37745
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
36363
37746
  globalThis.Object.keys(v).length === 1) {
36364
- _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs.push(new URL(v["@id"]));
37747
+ _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
37748
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
37749
+ : new URL(v["@id"]));
36365
37750
  continue;
36366
37751
  }
36367
37752
  const decoded = typeof v === "object" && "@type" in v &&
@@ -36403,7 +37788,9 @@ export class Service extends Object {
36403
37788
  continue;
36404
37789
  if (typeof v === "object" && "@id" in v && !("@type" in v) &&
36405
37790
  globalThis.Object.keys(v).length === 1) {
36406
- _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(new URL(v["@id"]));
37791
+ _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(!URL.canParse(v["@id"]) && v["@id"].startsWith("at://")
37792
+ ? new URL("at://" + encodeURIComponent(v["@id"].substring(5)))
37793
+ : new URL(v["@id"]));
36407
37794
  continue;
36408
37795
  }
36409
37796
  _4Q6NrKH6bazBGtxwG8vyG77ir7Tg_service.push(await DidService.fromJsonLd(v, options));
@@ -36660,6 +38047,18 @@ export class Service extends Object {
36660
38047
  if (_2diCorzqPGQQqftp6e4SrCEwEnyk_indexable.length == 1) {
36661
38048
  proxy.indexable = _2diCorzqPGQQqftp6e4SrCEwEnyk_indexable[0];
36662
38049
  }
38050
+ const _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo = this
38051
+ .#_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo
38052
+ // deno-lint-ignore no-explicit-any
38053
+ .map((v) => v instanceof URL
38054
+ ? {
38055
+ [Symbol.for("Deno.customInspect")]: (inspect, options) => "URL " + inspect(v.href, options),
38056
+ [Symbol.for("nodejs.util.inspect.custom")]: (_depth, options, inspect) => "URL " + inspect(v.href, options),
38057
+ }
38058
+ : v);
38059
+ if (_2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo.length == 1) {
38060
+ proxy.successor = _2ZNWDhuNdSXBwEmrB5kwffdKGzok_movedTo[0];
38061
+ }
36663
38062
  const _3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs = this
36664
38063
  .#_3NV7TGNhuABbryNjNi4wib4DgNpY_alsoKnownAs
36665
38064
  // deno-lint-ignore no-explicit-any