@fedify/vocab-runtime 2.2.0-dev.613 → 2.2.0-dev.622
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/deno.json +1 -1
- package/dist/{chunk-CUT6urMc.cjs → chunk-CKQMccvm.cjs} +7 -9
- package/dist/jsonld.cjs +4 -5
- package/dist/jsonld.d.cts +3 -4
- package/dist/jsonld.d.ts +2 -2
- package/dist/jsonld.js +1 -3
- package/dist/mod.cjs +80 -170
- package/dist/mod.d.cts +1 -2
- package/dist/mod.d.ts +1 -2
- package/dist/mod.js +56 -149
- package/dist/tests/{chunk-DWy1uDak.cjs → chunk-Do9eywBl.cjs} +13 -17
- package/dist/tests/decimal.test.cjs +12 -21
- package/dist/tests/{decimal.test.js → decimal.test.mjs} +10 -18
- package/dist/tests/{docloader-DEi540Xh.js → docloader-CLla_XnE.mjs} +35 -65
- package/dist/tests/{docloader-txRGFv1x.cjs → docloader-WtKuh5yf.cjs} +51 -81
- package/dist/tests/docloader.test.cjs +53 -90
- package/dist/tests/{docloader.test.js → docloader.test.mjs} +53 -96
- package/dist/tests/internal/multicodec.test.cjs +5 -7
- package/dist/tests/internal/{multicodec.test.js → multicodec.test.mjs} +3 -4
- package/dist/tests/{key-ByCmSI2y.js → key-BeTHFQJK.mjs} +14 -25
- package/dist/tests/{key-CCPn6TEY.cjs → key-DTTIntwb.cjs} +60 -71
- package/dist/tests/key.test.cjs +23 -45
- package/dist/tests/{key.test.js → key.test.mjs} +21 -42
- package/dist/tests/{langstr-EPh86hXK.cjs → langstr-CbAxaeEZ.cjs} +6 -8
- package/dist/tests/{langstr-BsVE3s9u.js → langstr-Di5AvKpB.mjs} +1 -2
- package/dist/tests/langstr.test.cjs +7 -8
- package/dist/tests/{langstr.test.js → langstr.test.mjs} +3 -4
- package/dist/tests/{link-DYNFAdNu.cjs → link-FguCydMA.cjs} +6 -8
- package/dist/tests/{link-C3q2TC2G.js → link-NUUWCdnK.mjs} +1 -2
- package/dist/tests/link.test.cjs +5 -7
- package/dist/tests/{link.test.js → link.test.mjs} +3 -4
- package/dist/tests/multibase/multibase.test.cjs +10 -17
- package/dist/tests/multibase/{multibase.test.js → multibase.test.mjs} +10 -18
- package/dist/tests/{multibase-B4g8pz6F.js → multibase-BgU9XRf7.mjs} +5 -12
- package/dist/tests/{multibase-o_ovPHYJ.cjs → multibase-F7LtMMsK.cjs} +43 -49
- package/dist/tests/{multicodec--6hQ74zI.cjs → multicodec-CxGVGa91.cjs} +16 -18
- package/dist/tests/{multicodec-Dq3IiOV4.js → multicodec-CyFp54fI.mjs} +1 -2
- package/dist/tests/{request-73FIhAHw.cjs → request-B7F8mcfm.cjs} +38 -72
- package/dist/tests/{request-BO6hGoBJ.js → request-DeDrepIV.mjs} +4 -45
- package/dist/tests/request.test.cjs +23 -24
- package/dist/tests/request.test.mjs +42 -0
- package/dist/tests/{url-CWEP9Zs9.js → url-BQ_kgmCk.mjs} +3 -7
- package/dist/tests/{url-DIjOdK8Q.cjs → url-pFuSds44.cjs} +31 -35
- package/dist/tests/url.test.cjs +5 -7
- package/dist/tests/{url.test.js → url.test.mjs} +3 -4
- package/package.json +3 -3
- package/dist/tests/request.test.js +0 -43
- /package/dist/tests/{decimal.test.d.ts → decimal.test.d.mts} +0 -0
- /package/dist/tests/{docloader.test.d.ts → docloader.test.d.mts} +0 -0
- /package/dist/tests/internal/{multicodec.test.d.ts → multicodec.test.d.mts} +0 -0
- /package/dist/tests/{key.test.d.ts → key.test.d.mts} +0 -0
- /package/dist/tests/{langstr.test.d.ts → langstr.test.d.mts} +0 -0
- /package/dist/tests/{link.test.d.ts → link.test.d.mts} +0 -0
- /package/dist/tests/multibase/{multibase.test.d.ts → multibase.test.d.mts} +0 -0
- /package/dist/tests/{request.test.d.ts → request.test.d.mts} +0 -0
- /package/dist/tests/{url.test.d.ts → url.test.d.mts} +0 -0
package/dist/mod.cjs
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_chunk = require("./chunk-CKQMccvm.cjs");
|
|
3
|
+
let _logtape_logtape = require("@logtape/logtape");
|
|
4
|
+
let _opentelemetry_api = require("@opentelemetry/api");
|
|
5
|
+
let node_process = require("node:process");
|
|
6
|
+
node_process = require_chunk.__toESM(node_process);
|
|
7
|
+
let node_dns_promises = require("node:dns/promises");
|
|
8
|
+
let node_net = require("node:net");
|
|
9
|
+
let asn1js = require("asn1js");
|
|
10
|
+
let byte_encodings_base64 = require("byte-encodings/base64");
|
|
11
|
+
let byte_encodings_base64url = require("byte-encodings/base64url");
|
|
12
|
+
let node_crypto = require("node:crypto");
|
|
13
|
+
let pkijs = require("pkijs");
|
|
14
|
+
let _multiformats_base_x = require("@multiformats/base-x");
|
|
15
|
+
_multiformats_base_x = require_chunk.__toESM(_multiformats_base_x);
|
|
14
16
|
//#region src/contexts/activitystreams.json
|
|
15
|
-
var
|
|
17
|
+
var activitystreams_default = { "@context": {
|
|
16
18
|
"@vocab": "_:",
|
|
17
19
|
"xsd": "http://www.w3.org/2001/XMLSchema#",
|
|
18
20
|
"as": "https://www.w3.org/ns/activitystreams#",
|
|
@@ -388,12 +390,10 @@ var __context$11 = {
|
|
|
388
390
|
"@id": "as:alsoKnownAs",
|
|
389
391
|
"@type": "@id"
|
|
390
392
|
}
|
|
391
|
-
};
|
|
392
|
-
var activitystreams_default = { "@context": __context$11 };
|
|
393
|
-
|
|
393
|
+
} };
|
|
394
394
|
//#endregion
|
|
395
395
|
//#region src/contexts/did-v1.json
|
|
396
|
-
var
|
|
396
|
+
var did_v1_default = { "@context": {
|
|
397
397
|
"@protected": true,
|
|
398
398
|
"id": "@id",
|
|
399
399
|
"type": "@type",
|
|
@@ -447,12 +447,10 @@ var __context$10 = {
|
|
|
447
447
|
"@id": "https://w3id.org/security#verificationMethod",
|
|
448
448
|
"@type": "@id"
|
|
449
449
|
}
|
|
450
|
-
};
|
|
451
|
-
var did_v1_default = { "@context": __context$10 };
|
|
452
|
-
|
|
450
|
+
} };
|
|
453
451
|
//#endregion
|
|
454
452
|
//#region src/contexts/fep-5711.json
|
|
455
|
-
var
|
|
453
|
+
var fep_5711_default = { "@context": {
|
|
456
454
|
"likesOf": {
|
|
457
455
|
"@id": "https://w3id.org/fep/5711#likesOf",
|
|
458
456
|
"@type": "@id"
|
|
@@ -485,12 +483,10 @@ var __context$9 = {
|
|
|
485
483
|
"@id": "https://w3id.org/fep/5711#likedOf",
|
|
486
484
|
"@type": "@id"
|
|
487
485
|
}
|
|
488
|
-
};
|
|
489
|
-
var fep_5711_default = { "@context": __context$9 };
|
|
490
|
-
|
|
486
|
+
} };
|
|
491
487
|
//#endregion
|
|
492
488
|
//#region src/contexts/gotosocial.json
|
|
493
|
-
var
|
|
489
|
+
var gotosocial_default = { "@context": {
|
|
494
490
|
"xsd": "http://www.w3.org/2001/XMLSchema#",
|
|
495
491
|
"gts": "https://gotosocial.org/ns#",
|
|
496
492
|
"LikeRequest": "gts:LikeRequest",
|
|
@@ -573,12 +569,10 @@ var __context$8 = {
|
|
|
573
569
|
"@id": "gts:approvedBy",
|
|
574
570
|
"@type": "@id"
|
|
575
571
|
}
|
|
576
|
-
};
|
|
577
|
-
var gotosocial_default = { "@context": __context$8 };
|
|
578
|
-
|
|
572
|
+
} };
|
|
579
573
|
//#endregion
|
|
580
574
|
//#region src/contexts/identity-v1.json
|
|
581
|
-
var
|
|
575
|
+
var identity_v1_default = { "@context": {
|
|
582
576
|
"id": "@id",
|
|
583
577
|
"type": "@type",
|
|
584
578
|
"cred": "https://w3id.org/credentials#",
|
|
@@ -727,12 +721,10 @@ var __context$7 = {
|
|
|
727
721
|
"@id": "perm:writePermission",
|
|
728
722
|
"@type": "@id"
|
|
729
723
|
}
|
|
730
|
-
};
|
|
731
|
-
var identity_v1_default = { "@context": __context$7 };
|
|
732
|
-
|
|
724
|
+
} };
|
|
733
725
|
//#endregion
|
|
734
726
|
//#region src/contexts/joinmastodon.json
|
|
735
|
-
var
|
|
727
|
+
var joinmastodon_default = { "@context": {
|
|
736
728
|
"toot": "http://joinmastodon.org/ns#",
|
|
737
729
|
"Emoji": "toot:Emoji",
|
|
738
730
|
"featured": {
|
|
@@ -757,12 +749,10 @@ var __context$6 = {
|
|
|
757
749
|
"@id": "toot:attributionDomains",
|
|
758
750
|
"@type": "@id"
|
|
759
751
|
}
|
|
760
|
-
};
|
|
761
|
-
var joinmastodon_default = { "@context": __context$6 };
|
|
762
|
-
|
|
752
|
+
} };
|
|
763
753
|
//#endregion
|
|
764
754
|
//#region src/contexts/schemaorg.json
|
|
765
|
-
var
|
|
755
|
+
var schemaorg_default = { "@context": {
|
|
766
756
|
"type": "@type",
|
|
767
757
|
"id": "@id",
|
|
768
758
|
"HTML": { "@id": "rdf:HTML" },
|
|
@@ -4064,12 +4054,10 @@ var __context$5 = {
|
|
|
4064
4054
|
"yearlyRevenue": { "@id": "schema:yearlyRevenue" },
|
|
4065
4055
|
"yearsInOperation": { "@id": "schema:yearsInOperation" },
|
|
4066
4056
|
"yield": { "@id": "schema:yield" }
|
|
4067
|
-
};
|
|
4068
|
-
var schemaorg_default = { "@context": __context$5 };
|
|
4069
|
-
|
|
4057
|
+
} };
|
|
4070
4058
|
//#endregion
|
|
4071
4059
|
//#region src/contexts/security-data-integrity-v1.json
|
|
4072
|
-
var
|
|
4060
|
+
var security_data_integrity_v1_default = { "@context": {
|
|
4073
4061
|
"id": "@id",
|
|
4074
4062
|
"type": "@type",
|
|
4075
4063
|
"@protected": true,
|
|
@@ -4144,12 +4132,10 @@ var __context$4 = {
|
|
|
4144
4132
|
}
|
|
4145
4133
|
}
|
|
4146
4134
|
}
|
|
4147
|
-
};
|
|
4148
|
-
var security_data_integrity_v1_default = { "@context": __context$4 };
|
|
4149
|
-
|
|
4135
|
+
} };
|
|
4150
4136
|
//#endregion
|
|
4151
4137
|
//#region src/contexts/security-data-integrity-v2.json
|
|
4152
|
-
var
|
|
4138
|
+
var security_data_integrity_v2_default = { "@context": {
|
|
4153
4139
|
"id": "@id",
|
|
4154
4140
|
"type": "@type",
|
|
4155
4141
|
"@protected": true,
|
|
@@ -4227,12 +4213,10 @@ var __context$3 = {
|
|
|
4227
4213
|
}
|
|
4228
4214
|
}
|
|
4229
4215
|
}
|
|
4230
|
-
};
|
|
4231
|
-
var security_data_integrity_v2_default = { "@context": __context$3 };
|
|
4232
|
-
|
|
4216
|
+
} };
|
|
4233
4217
|
//#endregion
|
|
4234
4218
|
//#region src/contexts/security-multikey-v1.json
|
|
4235
|
-
var
|
|
4219
|
+
var security_multikey_v1_default = { "@context": {
|
|
4236
4220
|
"id": "@id",
|
|
4237
4221
|
"type": "@type",
|
|
4238
4222
|
"@protected": true,
|
|
@@ -4264,12 +4248,10 @@ var __context$2 = {
|
|
|
4264
4248
|
}
|
|
4265
4249
|
}
|
|
4266
4250
|
}
|
|
4267
|
-
};
|
|
4268
|
-
var security_multikey_v1_default = { "@context": __context$2 };
|
|
4269
|
-
|
|
4251
|
+
} };
|
|
4270
4252
|
//#endregion
|
|
4271
4253
|
//#region src/contexts/security-v1.json
|
|
4272
|
-
var
|
|
4254
|
+
var security_v1_default = { "@context": {
|
|
4273
4255
|
"id": "@id",
|
|
4274
4256
|
"type": "@type",
|
|
4275
4257
|
"dc": "http://purl.org/dc/terms/",
|
|
@@ -4340,21 +4322,17 @@ var __context$1 = {
|
|
|
4340
4322
|
"signature": "sec:signature",
|
|
4341
4323
|
"signatureAlgorithm": "sec:signingAlgorithm",
|
|
4342
4324
|
"signatureValue": "sec:signatureValue"
|
|
4343
|
-
};
|
|
4344
|
-
var security_v1_default = { "@context": __context$1 };
|
|
4345
|
-
|
|
4325
|
+
} };
|
|
4346
4326
|
//#endregion
|
|
4347
4327
|
//#region src/contexts/webfinger.json
|
|
4348
|
-
var
|
|
4328
|
+
var webfinger_default = { "@context": {
|
|
4349
4329
|
"wf": "https://purl.archive.org/socialweb/webfinger#",
|
|
4350
4330
|
"xsd": "http://www.w3.org/2001/XMLSchema#",
|
|
4351
4331
|
"webfinger": {
|
|
4352
4332
|
"@id": "wf:webfinger",
|
|
4353
4333
|
"@type": "xsd:string"
|
|
4354
4334
|
}
|
|
4355
|
-
};
|
|
4356
|
-
var webfinger_default = { "@context": __context };
|
|
4357
|
-
|
|
4335
|
+
} };
|
|
4358
4336
|
//#endregion
|
|
4359
4337
|
//#region src/contexts.ts
|
|
4360
4338
|
const preloadedContexts = {
|
|
@@ -4371,50 +4349,10 @@ const preloadedContexts = {
|
|
|
4371
4349
|
"https://w3id.org/fep/5711": fep_5711_default,
|
|
4372
4350
|
"http://joinmastodon.org/ns": joinmastodon_default
|
|
4373
4351
|
};
|
|
4374
|
-
var contexts_default = preloadedContexts;
|
|
4375
|
-
|
|
4376
4352
|
//#endregion
|
|
4377
4353
|
//#region deno.json
|
|
4378
4354
|
var name = "@fedify/vocab-runtime";
|
|
4379
|
-
var version = "2.2.0-dev.
|
|
4380
|
-
var license = "MIT";
|
|
4381
|
-
var exports$1 = {
|
|
4382
|
-
".": "./src/mod.ts",
|
|
4383
|
-
"./jsonld": "./src/jsonld.ts"
|
|
4384
|
-
};
|
|
4385
|
-
var description = "Runtime library for @fedify/vocab";
|
|
4386
|
-
var author = {
|
|
4387
|
-
"name": "Hong Minhee",
|
|
4388
|
-
"email": "hong@minhee.org",
|
|
4389
|
-
"url": "https://hongminhee.org/"
|
|
4390
|
-
};
|
|
4391
|
-
var imports = {
|
|
4392
|
-
"@multiformats/base-x": "npm:@multiformats/base-x@^4.0.1",
|
|
4393
|
-
"asn1js": "npm:asn1js@^3.0.6",
|
|
4394
|
-
"byte-encodings": "npm:byte-encodings@^1.0.11",
|
|
4395
|
-
"fetch-mock": "npm:fetch-mock@^12.5.4",
|
|
4396
|
-
"jsonld": "npm:jsonld@^9.0.0",
|
|
4397
|
-
"pkijs": "npm:pkijs@^3.2.5"
|
|
4398
|
-
};
|
|
4399
|
-
var exclude = ["dist", "node_modules"];
|
|
4400
|
-
var publish = { "exclude": ["**/*.test.ts", "tsdown.config.ts"] };
|
|
4401
|
-
var tasks = {
|
|
4402
|
-
"check": "deno fmt --check && deno lint && deno check src/*.ts",
|
|
4403
|
-
"test": "deno test"
|
|
4404
|
-
};
|
|
4405
|
-
var deno_default = {
|
|
4406
|
-
name,
|
|
4407
|
-
version,
|
|
4408
|
-
license,
|
|
4409
|
-
exports: exports$1,
|
|
4410
|
-
description,
|
|
4411
|
-
author,
|
|
4412
|
-
imports,
|
|
4413
|
-
exclude,
|
|
4414
|
-
publish,
|
|
4415
|
-
tasks
|
|
4416
|
-
};
|
|
4417
|
-
|
|
4355
|
+
var version = "2.2.0-dev.622+e54cb037";
|
|
4418
4356
|
//#endregion
|
|
4419
4357
|
//#region src/link.ts
|
|
4420
4358
|
const parametersNeedLowerCase = ["rel", "type"];
|
|
@@ -4596,7 +4534,6 @@ var HttpHeaderLink = class HttpHeaderLink {
|
|
|
4596
4534
|
return new this(...inputs).toString();
|
|
4597
4535
|
}
|
|
4598
4536
|
};
|
|
4599
|
-
|
|
4600
4537
|
//#endregion
|
|
4601
4538
|
//#region src/request.ts
|
|
4602
4539
|
/**
|
|
@@ -4648,27 +4585,25 @@ function createActivityPubRequest(url, options = {}) {
|
|
|
4648
4585
|
* @since 1.3.0
|
|
4649
4586
|
*/
|
|
4650
4587
|
function getUserAgent({ software, url } = {}) {
|
|
4651
|
-
const fedify = `Fedify/${
|
|
4588
|
+
const fedify = `Fedify/${version}`;
|
|
4652
4589
|
const runtime = globalThis.Deno?.version?.deno != null ? `Deno/${Deno.version.deno}` : globalThis.process?.versions?.bun != null ? `Bun/${node_process.default.versions.bun}` : "navigator" in globalThis && navigator.userAgent === "Cloudflare-Workers" ? navigator.userAgent : globalThis.process?.versions?.node != null ? `Node.js/${node_process.default.versions.node}` : null;
|
|
4653
4590
|
const userAgent = software == null ? [fedify] : [software, fedify];
|
|
4654
4591
|
if (runtime != null) userAgent.push(runtime);
|
|
4655
4592
|
if (url != null) userAgent.push(`+${url.toString()}`);
|
|
4656
|
-
|
|
4657
|
-
return `${first} (${userAgent.join("; ")})`;
|
|
4593
|
+
return `${userAgent.shift()} (${userAgent.join("; ")})`;
|
|
4658
4594
|
}
|
|
4659
4595
|
/**
|
|
4660
4596
|
* Logs the request.
|
|
4661
4597
|
* @param request The request to log.
|
|
4662
4598
|
* @internal
|
|
4663
4599
|
*/
|
|
4664
|
-
function logRequest(logger
|
|
4665
|
-
logger
|
|
4600
|
+
function logRequest(logger, request) {
|
|
4601
|
+
logger.debug("Fetching document: {method} {url} {headers}", {
|
|
4666
4602
|
method: request.method,
|
|
4667
4603
|
url: request.url,
|
|
4668
4604
|
headers: Object.fromEntries(request.headers.entries())
|
|
4669
4605
|
});
|
|
4670
4606
|
}
|
|
4671
|
-
|
|
4672
4607
|
//#endregion
|
|
4673
4608
|
//#region src/url.ts
|
|
4674
4609
|
var UrlError = class extends Error {
|
|
@@ -4687,8 +4622,7 @@ async function validatePublicUrl(url) {
|
|
|
4687
4622
|
if (hostname.startsWith("[") && hostname.endsWith("]")) hostname = hostname.substring(1, hostname.length - 2);
|
|
4688
4623
|
if (hostname === "localhost") throw new UrlError("Localhost is not allowed");
|
|
4689
4624
|
if ("Deno" in globalThis && !(0, node_net.isIP)(hostname)) {
|
|
4690
|
-
|
|
4691
|
-
if (netPermission.state !== "granted") return;
|
|
4625
|
+
if ((await Deno.permissions.query({ name: "net" })).state !== "granted") return;
|
|
4692
4626
|
}
|
|
4693
4627
|
if ("Bun" in globalThis) {
|
|
4694
4628
|
if (hostname === "example.com" || hostname.endsWith(".example.com")) return;
|
|
@@ -4724,13 +4658,11 @@ function expandIPv6Address(address) {
|
|
|
4724
4658
|
if (address.startsWith("::")) address = "0000" + address;
|
|
4725
4659
|
if (address.endsWith("::")) address = address + "0000";
|
|
4726
4660
|
address = address.replace("::", ":0000".repeat(8 - (address.match(/:/g) || []).length) + ":");
|
|
4727
|
-
|
|
4728
|
-
return parts.map((part) => part.padStart(4, "0")).join(":");
|
|
4661
|
+
return address.split(":").map((part) => part.padStart(4, "0")).join(":");
|
|
4729
4662
|
}
|
|
4730
|
-
|
|
4731
4663
|
//#endregion
|
|
4732
4664
|
//#region src/docloader.ts
|
|
4733
|
-
const logger = (0,
|
|
4665
|
+
const logger = (0, _logtape_logtape.getLogger)([
|
|
4734
4666
|
"fedify",
|
|
4735
4667
|
"runtime",
|
|
4736
4668
|
"docloader"
|
|
@@ -4745,7 +4677,7 @@ const DEFAULT_MAX_REDIRECTION = 20;
|
|
|
4745
4677
|
* @throws {FetchError} If the response is not OK.
|
|
4746
4678
|
* @internal
|
|
4747
4679
|
*/
|
|
4748
|
-
async function getRemoteDocument(url, response, fetch
|
|
4680
|
+
async function getRemoteDocument(url, response, fetch) {
|
|
4749
4681
|
const documentUrl = response.url === "" ? url : response.url;
|
|
4750
4682
|
const docUrl = new URL(documentUrl);
|
|
4751
4683
|
if (!response.ok) {
|
|
@@ -4783,7 +4715,7 @@ async function getRemoteDocument(url, response, fetch$1) {
|
|
|
4783
4715
|
alternateUrl: altUri.href,
|
|
4784
4716
|
url: documentUrl
|
|
4785
4717
|
});
|
|
4786
|
-
return await fetch
|
|
4718
|
+
return await fetch(altUri.href);
|
|
4787
4719
|
}
|
|
4788
4720
|
}
|
|
4789
4721
|
}
|
|
@@ -4809,15 +4741,14 @@ async function getRemoteDocument(url, response, fetch$1) {
|
|
|
4809
4741
|
attrPattern.lastIndex = 0;
|
|
4810
4742
|
while ((attrMatch = attrPattern.exec(tagContent)) !== null) {
|
|
4811
4743
|
const key = attrMatch[1].toLowerCase();
|
|
4812
|
-
|
|
4813
|
-
attribs[key] = value;
|
|
4744
|
+
attribs[key] = attrMatch[2] ?? attrMatch[3] ?? attrMatch[4] ?? "";
|
|
4814
4745
|
}
|
|
4815
4746
|
if (attribs.rel === "alternate" && "type" in attribs && (attribs.type === "application/activity+json" || attribs.type === "application/ld+json" || attribs.type.startsWith("application/ld+json;")) && "href" in attribs && new URL(attribs.href, docUrl).href !== docUrl.href) {
|
|
4816
4747
|
logger.debug("Found alternate document: {alternateUrl} from {url}", {
|
|
4817
4748
|
alternateUrl: attribs.href,
|
|
4818
4749
|
url: documentUrl
|
|
4819
4750
|
});
|
|
4820
|
-
return await fetch
|
|
4751
|
+
return await fetch(new URL(attribs.href, docUrl).href);
|
|
4821
4752
|
}
|
|
4822
4753
|
}
|
|
4823
4754
|
document = JSON.parse(html);
|
|
@@ -4852,17 +4783,16 @@ async function getRemoteDocument(url, response, fetch$1) {
|
|
|
4852
4783
|
* @since 1.3.0
|
|
4853
4784
|
*/
|
|
4854
4785
|
function getDocumentLoader({ allowPrivateAddress, maxRedirection, skipPreloadedContexts, userAgent } = {}) {
|
|
4855
|
-
const
|
|
4856
|
-
const tracer = tracerProvider.getTracer(deno_default.name, deno_default.version);
|
|
4786
|
+
const tracer = _opentelemetry_api.trace.getTracerProvider().getTracer(name, version);
|
|
4857
4787
|
const maximumRedirection = maxRedirection ?? DEFAULT_MAX_REDIRECTION;
|
|
4858
4788
|
async function load(url, options, redirected = 0, visited = /* @__PURE__ */ new Set()) {
|
|
4859
4789
|
options?.signal?.throwIfAborted();
|
|
4860
4790
|
const currentUrl = new URL(url).href;
|
|
4861
|
-
if (!skipPreloadedContexts && currentUrl in
|
|
4791
|
+
if (!skipPreloadedContexts && currentUrl in preloadedContexts) {
|
|
4862
4792
|
logger.debug("Using preloaded context: {url}.", { url: currentUrl });
|
|
4863
4793
|
return {
|
|
4864
4794
|
contextUrl: null,
|
|
4865
|
-
document:
|
|
4795
|
+
document: preloadedContexts[currentUrl],
|
|
4866
4796
|
documentUrl: currentUrl
|
|
4867
4797
|
};
|
|
4868
4798
|
}
|
|
@@ -4877,7 +4807,7 @@ function getDocumentLoader({ allowPrivateAddress, maxRedirection, skipPreloadedC
|
|
|
4877
4807
|
}
|
|
4878
4808
|
visited.add(currentUrl);
|
|
4879
4809
|
return await tracer.startActiveSpan("activitypub.fetch_document", {
|
|
4880
|
-
kind:
|
|
4810
|
+
kind: _opentelemetry_api.SpanKind.CLIENT,
|
|
4881
4811
|
attributes: { "url.full": currentUrl }
|
|
4882
4812
|
}, async (span) => {
|
|
4883
4813
|
try {
|
|
@@ -4914,7 +4844,7 @@ function getDocumentLoader({ allowPrivateAddress, maxRedirection, skipPreloadedC
|
|
|
4914
4844
|
} catch (error) {
|
|
4915
4845
|
span.recordException(error);
|
|
4916
4846
|
span.setStatus({
|
|
4917
|
-
code:
|
|
4847
|
+
code: _opentelemetry_api.SpanStatusCode.ERROR,
|
|
4918
4848
|
message: String(error)
|
|
4919
4849
|
});
|
|
4920
4850
|
throw error;
|
|
@@ -4925,7 +4855,6 @@ function getDocumentLoader({ allowPrivateAddress, maxRedirection, skipPreloadedC
|
|
|
4925
4855
|
}
|
|
4926
4856
|
return load;
|
|
4927
4857
|
}
|
|
4928
|
-
|
|
4929
4858
|
//#endregion
|
|
4930
4859
|
//#region src/internal/multicodec.ts
|
|
4931
4860
|
const INVALID_MULTICODEC_PREFIX = "Invalid multicodec prefix.";
|
|
@@ -4965,7 +4894,6 @@ function addMulticodecPrefix(code, payload) {
|
|
|
4965
4894
|
prefixed.set(payload, prefix.length);
|
|
4966
4895
|
return prefixed;
|
|
4967
4896
|
}
|
|
4968
|
-
|
|
4969
4897
|
//#endregion
|
|
4970
4898
|
//#region src/jwk.ts
|
|
4971
4899
|
function validateCryptoKey(key, type) {
|
|
@@ -4973,11 +4901,9 @@ function validateCryptoKey(key, type) {
|
|
|
4973
4901
|
if (!key.extractable) throw new TypeError("The key is not extractable.");
|
|
4974
4902
|
if (key.algorithm.name !== "RSASSA-PKCS1-v1_5" && key.algorithm.name !== "Ed25519") throw new TypeError("Currently only RSASSA-PKCS1-v1_5 and Ed25519 keys are supported. More algorithms will be added in the future!");
|
|
4975
4903
|
if (key.algorithm.name === "RSASSA-PKCS1-v1_5") {
|
|
4976
|
-
|
|
4977
|
-
if (algorithm.hash.name !== "SHA-256") throw new TypeError("For compatibility with the existing Fediverse software (e.g., Mastodon), hash algorithm for RSASSA-PKCS1-v1_5 keys must be SHA-256.");
|
|
4904
|
+
if (key.algorithm.hash.name !== "SHA-256") throw new TypeError("For compatibility with the existing Fediverse software (e.g., Mastodon), hash algorithm for RSASSA-PKCS1-v1_5 keys must be SHA-256.");
|
|
4978
4905
|
}
|
|
4979
4906
|
}
|
|
4980
|
-
|
|
4981
4907
|
//#endregion
|
|
4982
4908
|
//#region src/multibase/util.ts
|
|
4983
4909
|
const textDecoder = new TextDecoder();
|
|
@@ -4993,7 +4919,6 @@ function concat(arrs, length) {
|
|
|
4993
4919
|
}
|
|
4994
4920
|
return output;
|
|
4995
4921
|
}
|
|
4996
|
-
|
|
4997
4922
|
//#endregion
|
|
4998
4923
|
//#region src/multibase/base.ts
|
|
4999
4924
|
/**
|
|
@@ -5002,8 +4927,8 @@ function concat(arrs, length) {
|
|
|
5002
4927
|
var Base = class {
|
|
5003
4928
|
codeBuf;
|
|
5004
4929
|
codec;
|
|
5005
|
-
constructor(name
|
|
5006
|
-
this.name = name
|
|
4930
|
+
constructor(name, code, factory, alphabet) {
|
|
4931
|
+
this.name = name;
|
|
5007
4932
|
this.code = code;
|
|
5008
4933
|
this.alphabet = alphabet;
|
|
5009
4934
|
this.codeBuf = encodeText(this.code);
|
|
@@ -5018,12 +4943,11 @@ var Base = class {
|
|
|
5018
4943
|
return this.codec.decode(string);
|
|
5019
4944
|
}
|
|
5020
4945
|
};
|
|
5021
|
-
|
|
5022
4946
|
//#endregion
|
|
5023
4947
|
//#region src/multibase/rfc4648.ts
|
|
5024
4948
|
const decode = (string, alphabet, bitsPerChar) => {
|
|
5025
|
-
const codes
|
|
5026
|
-
for (let i = 0; i < alphabet.length; ++i) codes
|
|
4949
|
+
const codes = {};
|
|
4950
|
+
for (let i = 0; i < alphabet.length; ++i) codes[alphabet[i]] = i;
|
|
5027
4951
|
let end = string.length;
|
|
5028
4952
|
while (string[end - 1] === "=") --end;
|
|
5029
4953
|
const out = new Uint8Array(end * bitsPerChar / 8 | 0);
|
|
@@ -5031,7 +4955,7 @@ const decode = (string, alphabet, bitsPerChar) => {
|
|
|
5031
4955
|
let buffer = 0;
|
|
5032
4956
|
let written = 0;
|
|
5033
4957
|
for (let i = 0; i < end; ++i) {
|
|
5034
|
-
const value = codes
|
|
4958
|
+
const value = codes[string[i]];
|
|
5035
4959
|
if (value === void 0) throw new SyntaxError("Invalid character " + string[i]);
|
|
5036
4960
|
buffer = buffer << bitsPerChar | value;
|
|
5037
4961
|
bits += bitsPerChar;
|
|
@@ -5074,7 +4998,6 @@ const rfc4648 = (bitsPerChar) => (alphabet) => {
|
|
|
5074
4998
|
}
|
|
5075
4999
|
};
|
|
5076
5000
|
};
|
|
5077
|
-
|
|
5078
5001
|
//#endregion
|
|
5079
5002
|
//#region src/multibase/constants.ts
|
|
5080
5003
|
const identity = () => {
|
|
@@ -5110,7 +5033,7 @@ const constants = [
|
|
|
5110
5033
|
[
|
|
5111
5034
|
"base10",
|
|
5112
5035
|
"9",
|
|
5113
|
-
|
|
5036
|
+
_multiformats_base_x.default,
|
|
5114
5037
|
"0123456789"
|
|
5115
5038
|
],
|
|
5116
5039
|
[
|
|
@@ -5182,25 +5105,25 @@ const constants = [
|
|
|
5182
5105
|
[
|
|
5183
5106
|
"base36",
|
|
5184
5107
|
"k",
|
|
5185
|
-
|
|
5108
|
+
_multiformats_base_x.default,
|
|
5186
5109
|
"0123456789abcdefghijklmnopqrstuvwxyz"
|
|
5187
5110
|
],
|
|
5188
5111
|
[
|
|
5189
5112
|
"base36upper",
|
|
5190
5113
|
"K",
|
|
5191
|
-
|
|
5114
|
+
_multiformats_base_x.default,
|
|
5192
5115
|
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|
5193
5116
|
],
|
|
5194
5117
|
[
|
|
5195
5118
|
"base58btc",
|
|
5196
5119
|
"z",
|
|
5197
|
-
|
|
5120
|
+
_multiformats_base_x.default,
|
|
5198
5121
|
"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
|
|
5199
5122
|
],
|
|
5200
5123
|
[
|
|
5201
5124
|
"base58flickr",
|
|
5202
5125
|
"Z",
|
|
5203
|
-
|
|
5126
|
+
_multiformats_base_x.default,
|
|
5204
5127
|
"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"
|
|
5205
5128
|
],
|
|
5206
5129
|
[
|
|
@@ -5236,7 +5159,6 @@ const codes = constants.reduce((prev, tupple) => {
|
|
|
5236
5159
|
prev[tupple[1]] = names[tupple[0]];
|
|
5237
5160
|
return prev;
|
|
5238
5161
|
}, {});
|
|
5239
|
-
|
|
5240
5162
|
//#endregion
|
|
5241
5163
|
//#region src/multibase/mod.ts
|
|
5242
5164
|
/**
|
|
@@ -5273,8 +5195,7 @@ function decodeMultibase(data) {
|
|
|
5273
5195
|
"k",
|
|
5274
5196
|
"K"
|
|
5275
5197
|
].includes(prefix)) data = data.toLowerCase();
|
|
5276
|
-
|
|
5277
|
-
return enc.decode(data.substring(1));
|
|
5198
|
+
return encoding(data[0]).decode(data.substring(1));
|
|
5278
5199
|
}
|
|
5279
5200
|
/**
|
|
5280
5201
|
* Get the encoding by name or code
|
|
@@ -5296,7 +5217,6 @@ function encodingFromBaseData(data) {
|
|
|
5296
5217
|
if (data instanceof Uint8Array) data = decodeText(data);
|
|
5297
5218
|
return encoding(data[0]);
|
|
5298
5219
|
}
|
|
5299
|
-
|
|
5300
5220
|
//#endregion
|
|
5301
5221
|
//#region src/key.ts
|
|
5302
5222
|
const algorithms = {
|
|
@@ -5321,8 +5241,7 @@ async function importSpki(pem) {
|
|
|
5321
5241
|
} catch (_) {
|
|
5322
5242
|
throw new TypeError("Invalid PEM-SPKI format.");
|
|
5323
5243
|
}
|
|
5324
|
-
const
|
|
5325
|
-
const oid = pki.algorithm.algorithmId;
|
|
5244
|
+
const oid = pkijs.PublicKeyInfo.fromBER(spki).algorithm.algorithmId;
|
|
5326
5245
|
const algorithm = algorithms[oid];
|
|
5327
5246
|
if (algorithm == null) throw new TypeError("Unsupported algorithm: " + oid);
|
|
5328
5247
|
return await crypto.subtle.importKey("spki", spki, algorithm, true, ["verify"]);
|
|
@@ -5336,8 +5255,7 @@ async function importSpki(pem) {
|
|
|
5336
5255
|
*/
|
|
5337
5256
|
async function exportSpki(key) {
|
|
5338
5257
|
validateCryptoKey(key);
|
|
5339
|
-
|
|
5340
|
-
let pem = (0, byte_encodings_base64.encodeBase64)(spki);
|
|
5258
|
+
let pem = (0, byte_encodings_base64.encodeBase64)(await crypto.subtle.exportKey("spki", key));
|
|
5341
5259
|
pem = (pem.match(/.{1,64}/g) || []).join("\n");
|
|
5342
5260
|
return `-----BEGIN PUBLIC KEY-----\n${pem}\n-----END PUBLIC KEY-----\n`;
|
|
5343
5261
|
}
|
|
@@ -5349,16 +5267,14 @@ async function exportSpki(key) {
|
|
|
5349
5267
|
* @since 1.5.0
|
|
5350
5268
|
*/
|
|
5351
5269
|
function importPkcs1(pem) {
|
|
5352
|
-
|
|
5270
|
+
return importSpki((0, node_crypto.createPublicKey)({
|
|
5353
5271
|
key: pem,
|
|
5354
5272
|
format: "pem",
|
|
5355
5273
|
type: "pkcs1"
|
|
5356
|
-
})
|
|
5357
|
-
const spki = key.export({
|
|
5274
|
+
}).export({
|
|
5358
5275
|
type: "spki",
|
|
5359
5276
|
format: "pem"
|
|
5360
|
-
});
|
|
5361
|
-
return importSpki(spki);
|
|
5277
|
+
}));
|
|
5362
5278
|
}
|
|
5363
5279
|
const PKCS1_HEADER = /^\s*-----BEGIN\s+RSA\s+PUBLIC\s+KEY-----\s*\n/;
|
|
5364
5280
|
/**
|
|
@@ -5385,12 +5301,11 @@ async function importMultibaseKey(key) {
|
|
|
5385
5301
|
const { code } = getMulticodecPrefix(decoded);
|
|
5386
5302
|
const content = removeMulticodecPrefix(decoded);
|
|
5387
5303
|
if (code === 4613) {
|
|
5388
|
-
const
|
|
5304
|
+
const exported = (0, node_crypto.createPublicKey)({
|
|
5389
5305
|
key: content,
|
|
5390
5306
|
format: "der",
|
|
5391
5307
|
type: "pkcs1"
|
|
5392
|
-
})
|
|
5393
|
-
const exported = keyObject.export({
|
|
5308
|
+
}).export({
|
|
5394
5309
|
type: "spki",
|
|
5395
5310
|
format: "der"
|
|
5396
5311
|
});
|
|
@@ -5422,21 +5337,18 @@ async function exportMultibaseKey(key) {
|
|
|
5422
5337
|
const decodedN = (0, byte_encodings_base64url.decodeBase64Url)(jwk.n);
|
|
5423
5338
|
const n = new Uint8Array(decodedN.length + 1);
|
|
5424
5339
|
n.set(decodedN, 1);
|
|
5425
|
-
|
|
5340
|
+
content = new asn1js.Sequence({ value: [new asn1js.Integer({
|
|
5426
5341
|
isHexOnly: true,
|
|
5427
5342
|
valueHex: n
|
|
5428
5343
|
}), new asn1js.Integer({
|
|
5429
5344
|
isHexOnly: true,
|
|
5430
5345
|
valueHex: (0, byte_encodings_base64url.decodeBase64Url)(jwk.e)
|
|
5431
|
-
})] });
|
|
5432
|
-
content = sequence.toBER(false);
|
|
5346
|
+
})] }).toBER(false);
|
|
5433
5347
|
code = 4613;
|
|
5434
5348
|
} else throw new TypeError("Unsupported key type: " + JSON.stringify(key.algorithm));
|
|
5435
|
-
const
|
|
5436
|
-
const encoded = encodeMultibase("base58btc", prefixed);
|
|
5349
|
+
const encoded = encodeMultibase("base58btc", addMulticodecPrefix(code, new Uint8Array(content)));
|
|
5437
5350
|
return new TextDecoder().decode(encoded);
|
|
5438
5351
|
}
|
|
5439
|
-
|
|
5440
5352
|
//#endregion
|
|
5441
5353
|
//#region src/decimal.ts
|
|
5442
5354
|
const DECIMAL_PATTERN = /^(\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)$/;
|
|
@@ -5512,7 +5424,6 @@ function parseDecimal(value) {
|
|
|
5512
5424
|
if (!isDecimal(normalized)) throw new TypeError(`${JSON.stringify(value)} is not a valid xsd:decimal lexical form.`);
|
|
5513
5425
|
return normalized;
|
|
5514
5426
|
}
|
|
5515
|
-
|
|
5516
5427
|
//#endregion
|
|
5517
5428
|
//#region src/langstr.ts
|
|
5518
5429
|
/**
|
|
@@ -5541,7 +5452,6 @@ LanguageString.prototype[Symbol.for("Deno.customInspect")] = function(inspect, o
|
|
|
5541
5452
|
LanguageString.prototype[Symbol.for("nodejs.util.inspect.custom")] = function(_depth, options, inspect) {
|
|
5542
5453
|
return `<${this.locale.baseName}> ${inspect(this.toString(), options)}`;
|
|
5543
5454
|
};
|
|
5544
|
-
|
|
5545
5455
|
//#endregion
|
|
5546
5456
|
exports.FetchError = FetchError;
|
|
5547
5457
|
exports.LanguageString = LanguageString;
|
|
@@ -5566,5 +5476,5 @@ exports.isValidPublicIPv4Address = isValidPublicIPv4Address;
|
|
|
5566
5476
|
exports.isValidPublicIPv6Address = isValidPublicIPv6Address;
|
|
5567
5477
|
exports.logRequest = logRequest;
|
|
5568
5478
|
exports.parseDecimal = parseDecimal;
|
|
5569
|
-
exports.preloadedContexts =
|
|
5570
|
-
exports.validatePublicUrl = validatePublicUrl;
|
|
5479
|
+
exports.preloadedContexts = preloadedContexts;
|
|
5480
|
+
exports.validatePublicUrl = validatePublicUrl;
|
package/dist/mod.d.cts
CHANGED
|
@@ -370,7 +370,6 @@ declare class LanguageString extends String {
|
|
|
370
370
|
//#endregion
|
|
371
371
|
//#region src/multibase/types.d.ts
|
|
372
372
|
type BaseCode = "\x00" | "0" | "7" | "9" | "f" | "F" | "v" | "V" | "t" | "T" | "b" | "B" | "c" | "C" | "h" | "k" | "K" | "z" | "Z" | "m" | "M" | "u" | "U";
|
|
373
|
-
|
|
374
373
|
/**
|
|
375
374
|
* - Names of the supported encodings
|
|
376
375
|
*/
|
|
@@ -434,4 +433,4 @@ declare function isValidPublicIPv4Address(address: string): boolean;
|
|
|
434
433
|
declare function isValidPublicIPv6Address(address: string): boolean;
|
|
435
434
|
declare function expandIPv6Address(address: string): string;
|
|
436
435
|
//#endregion
|
|
437
|
-
export { AuthenticatedDocumentLoaderFactory, CreateRequestOptions, Decimal, DocumentLoader, DocumentLoaderFactory, DocumentLoaderFactoryOptions, DocumentLoaderOptions, FetchError, GetDocumentLoaderOptions, GetUserAgentOptions, LanguageString, RemoteDocument, UrlError, canParseDecimal, createActivityPubRequest, decodeMultibase, encodeMultibase, encodingFromBaseData, expandIPv6Address, exportMultibaseKey, exportSpki, getDocumentLoader, getRemoteDocument, getUserAgent, importMultibaseKey, importPem, importPkcs1, importSpki, isDecimal, isValidPublicIPv4Address, isValidPublicIPv6Address, logRequest, parseDecimal, preloadedContexts, validatePublicUrl };
|
|
436
|
+
export { type AuthenticatedDocumentLoaderFactory, type CreateRequestOptions, type Decimal, type DocumentLoader, type DocumentLoaderFactory, type DocumentLoaderFactoryOptions, type DocumentLoaderOptions, FetchError, type GetDocumentLoaderOptions, type GetUserAgentOptions, LanguageString, type RemoteDocument, UrlError, canParseDecimal, createActivityPubRequest, decodeMultibase, encodeMultibase, encodingFromBaseData, expandIPv6Address, exportMultibaseKey, exportSpki, getDocumentLoader, getRemoteDocument, getUserAgent, importMultibaseKey, importPem, importPkcs1, importSpki, isDecimal, isValidPublicIPv4Address, isValidPublicIPv6Address, logRequest, parseDecimal, preloadedContexts, validatePublicUrl };
|
package/dist/mod.d.ts
CHANGED
|
@@ -370,7 +370,6 @@ declare class LanguageString extends String {
|
|
|
370
370
|
//#endregion
|
|
371
371
|
//#region src/multibase/types.d.ts
|
|
372
372
|
type BaseCode = "\x00" | "0" | "7" | "9" | "f" | "F" | "v" | "V" | "t" | "T" | "b" | "B" | "c" | "C" | "h" | "k" | "K" | "z" | "Z" | "m" | "M" | "u" | "U";
|
|
373
|
-
|
|
374
373
|
/**
|
|
375
374
|
* - Names of the supported encodings
|
|
376
375
|
*/
|
|
@@ -434,4 +433,4 @@ declare function isValidPublicIPv4Address(address: string): boolean;
|
|
|
434
433
|
declare function isValidPublicIPv6Address(address: string): boolean;
|
|
435
434
|
declare function expandIPv6Address(address: string): string;
|
|
436
435
|
//#endregion
|
|
437
|
-
export { AuthenticatedDocumentLoaderFactory, CreateRequestOptions, Decimal, DocumentLoader, DocumentLoaderFactory, DocumentLoaderFactoryOptions, DocumentLoaderOptions, FetchError, GetDocumentLoaderOptions, GetUserAgentOptions, LanguageString, RemoteDocument, UrlError, canParseDecimal, createActivityPubRequest, decodeMultibase, encodeMultibase, encodingFromBaseData, expandIPv6Address, exportMultibaseKey, exportSpki, getDocumentLoader, getRemoteDocument, getUserAgent, importMultibaseKey, importPem, importPkcs1, importSpki, isDecimal, isValidPublicIPv4Address, isValidPublicIPv6Address, logRequest, parseDecimal, preloadedContexts, validatePublicUrl };
|
|
436
|
+
export { type AuthenticatedDocumentLoaderFactory, type CreateRequestOptions, type Decimal, type DocumentLoader, type DocumentLoaderFactory, type DocumentLoaderFactoryOptions, type DocumentLoaderOptions, FetchError, type GetDocumentLoaderOptions, type GetUserAgentOptions, LanguageString, type RemoteDocument, UrlError, canParseDecimal, createActivityPubRequest, decodeMultibase, encodeMultibase, encodingFromBaseData, expandIPv6Address, exportMultibaseKey, exportSpki, getDocumentLoader, getRemoteDocument, getUserAgent, importMultibaseKey, importPem, importPkcs1, importSpki, isDecimal, isValidPublicIPv4Address, isValidPublicIPv6Address, logRequest, parseDecimal, preloadedContexts, validatePublicUrl };
|