@fedify/vocab-runtime 2.4.0-dev.1655 → 2.4.0-pr.934.40
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/{docloader-C_dir7Xb.d.ts → docloader-DnUMWHaJ.d.cts} +0 -2
- package/dist/{docloader-D2DTRiyA.d.cts → docloader-xRGn1azD.d.ts} +0 -2
- package/dist/internal/jsonld-cache.cjs +1 -1
- package/dist/internal/jsonld-cache.d.cts +1 -1
- package/dist/internal/jsonld-cache.d.ts +1 -1
- package/dist/internal/jsonld-cache.js +1 -1
- package/dist/mod.cjs +8 -159
- package/dist/mod.d.cts +2 -91
- package/dist/mod.d.ts +2 -91
- package/dist/mod.js +9 -152
- package/dist/tests/decimal.test.cjs +5 -6
- package/dist/tests/decimal.test.mjs +5 -6
- package/dist/tests/{docloader-DVVWmXLI.cjs → docloader-BFedvemb.cjs} +6 -12
- package/dist/tests/{docloader-HbEvzi-t.mjs → docloader-Xi61Le8w.mjs} +6 -12
- package/dist/tests/docloader.test.cjs +3 -3
- package/dist/tests/docloader.test.mjs +3 -3
- package/dist/tests/jsonld-cache.test.cjs +1 -1
- package/dist/tests/jsonld-cache.test.mjs +1 -1
- package/dist/tests/{key-Drbw_2tw.mjs → key-CDGDH_vC.mjs} +1 -1
- package/dist/tests/{key-BcOWDLMm.cjs → key-_wXwomh_.cjs} +1 -1
- package/dist/tests/key.test.cjs +2 -2
- package/dist/tests/key.test.mjs +2 -2
- package/dist/tests/langstr.test.cjs +1 -1
- package/dist/tests/langstr.test.mjs +1 -1
- package/dist/tests/multibase/multibase.test.cjs +1 -1
- package/dist/tests/multibase/multibase.test.mjs +1 -1
- package/dist/tests/{multibase-Cluwl8OM.mjs → multibase-B4bvakyA.mjs} +1 -12
- package/dist/tests/{multibase-DcDQDNnI.cjs → multibase-Bz_UUDtL.cjs} +0 -17
- package/dist/tests/{request-B6s_F7bi.mjs → request-BOS-hNaf.mjs} +1 -1
- package/dist/tests/{request-DvEyU5Zf.cjs → request-cCPgOxYG.cjs} +1 -1
- package/dist/tests/request.test.cjs +1 -1
- package/dist/tests/request.test.mjs +1 -1
- package/dist/tests/{url-CsOV_B_P.cjs → url-BvjYQdxL.cjs} +0 -26
- package/dist/tests/{url-Du7RQQgP.mjs → url-a2D8NAgh.mjs} +1 -15
- package/dist/tests/url.test.cjs +1 -18
- package/dist/tests/url.test.mjs +1 -18
- package/dist/{url-DD4F0ULf.cjs → url-Ck3dGEwH.cjs} +0 -26
- package/dist/{url-DGVbSVVi.js → url-m1YxGNZ0.js} +1 -15
- package/package.json +1 -1
- package/src/contexts/security-data-integrity-v1.json +4 -0
- package/src/contexts.ts +0 -2
- package/src/docloader.ts +0 -2
- package/src/mod.ts +0 -12
- package/src/url.test.ts +0 -23
- package/src/url.ts +0 -23
- package/dist/tests/digest-BJlumPNJ.mjs +0 -140
- package/dist/tests/digest-DLwUyHCK.cjs +0 -175
- package/dist/tests/digest.test.cjs +0 -103
- package/dist/tests/digest.test.d.cts +0 -1
- package/dist/tests/digest.test.d.mts +0 -1
- package/dist/tests/digest.test.mjs +0 -103
- package/src/contexts/fep-ef61.json +0 -10
- package/src/digest.test.ts +0 -220
- package/src/digest.ts +0 -229
- /package/dist/tests/{langstr-BOQHfJDr.cjs → langstr-CbAxaeEZ.cjs} +0 -0
- /package/dist/tests/{langstr-DDLc4833.mjs → langstr-Di5AvKpB.mjs} +0 -0
package/dist/mod.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { a as formatIri, c as haveSameIriOrigin, d as
|
|
2
|
+
import { a as formatIri, c as haveSameIriOrigin, d as parseIri, f as parseJsonLdId, i as expandIPv6Address, l as isValidPublicIPv4Address, n as arePortableUrisEqual, o as getFe34Origin, p as validatePublicUrl, r as canonicalizePortableUri, s as haveSameFe34Origin, t as UrlError, u as isValidPublicIPv6Address } from "./url-m1YxGNZ0.js";
|
|
3
3
|
import { getLogger } from "@logtape/logtape";
|
|
4
4
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
|
5
5
|
import process from "node:process";
|
|
@@ -465,6 +465,10 @@ const preloadedContexts = {
|
|
|
465
465
|
"id": "@id",
|
|
466
466
|
"type": "@type",
|
|
467
467
|
"@protected": true,
|
|
468
|
+
"digestMultibase": {
|
|
469
|
+
"@id": "https://w3id.org/security#digestMultibase",
|
|
470
|
+
"@type": "https://w3id.org/security#multibase"
|
|
471
|
+
},
|
|
468
472
|
"proof": {
|
|
469
473
|
"@id": "https://w3id.org/security#proof",
|
|
470
474
|
"@type": "@id",
|
|
@@ -4301,14 +4305,6 @@ const preloadedContexts = {
|
|
|
4301
4305
|
"@type": "@id"
|
|
4302
4306
|
}
|
|
4303
4307
|
} },
|
|
4304
|
-
"https://w3id.org/fep/ef61": { "@context": {
|
|
4305
|
-
"gateways": {
|
|
4306
|
-
"@id": "https://w3id.org/fep/ef61/gateways",
|
|
4307
|
-
"@type": "@id",
|
|
4308
|
-
"@container": "@list"
|
|
4309
|
-
},
|
|
4310
|
-
"digestMultibase": "https://www.w3.org/ns/credentials/v2#digestMultibase"
|
|
4311
|
-
} },
|
|
4312
4308
|
"https://join-lemmy.org/context.json": { "@context": ["https://w3id.org/security/v1", {
|
|
4313
4309
|
"as": "https://www.w3.org/ns/activitystreams#",
|
|
4314
4310
|
"lemmy": "https://join-lemmy.org/ns#",
|
|
@@ -4367,7 +4363,7 @@ const preloadedContexts = {
|
|
|
4367
4363
|
//#endregion
|
|
4368
4364
|
//#region deno.json
|
|
4369
4365
|
var name = "@fedify/vocab-runtime";
|
|
4370
|
-
var version = "2.4.0-
|
|
4366
|
+
var version = "2.4.0-pr.934.40+3331d302";
|
|
4371
4367
|
//#endregion
|
|
4372
4368
|
//#region src/link.ts
|
|
4373
4369
|
const parametersNeedLowerCase = ["rel", "type"];
|
|
@@ -4798,10 +4794,8 @@ async function getRemoteDocument(url, response, fetch) {
|
|
|
4798
4794
|
* - <https://www.w3.org/ns/activitystreams>
|
|
4799
4795
|
* - <https://w3id.org/security/v1>
|
|
4800
4796
|
* - <https://w3id.org/security/data-integrity/v1>
|
|
4801
|
-
* - <https://w3id.org/security/data-integrity/v2>
|
|
4802
4797
|
* - <https://www.w3.org/ns/did/v1>
|
|
4803
4798
|
* - <https://w3id.org/security/multikey/v1>
|
|
4804
|
-
* - <https://w3id.org/fep/ef61>
|
|
4805
4799
|
* - <https://purl.archive.org/socialweb/webfinger>
|
|
4806
4800
|
* - <http://schema.org/>
|
|
4807
4801
|
* @param options Options for the document loader.
|
|
@@ -4932,8 +4926,8 @@ function validateCryptoKey(key, type) {
|
|
|
4932
4926
|
}
|
|
4933
4927
|
//#endregion
|
|
4934
4928
|
//#region src/multibase/util.ts
|
|
4935
|
-
const textDecoder
|
|
4936
|
-
const decodeText = (bytes) => textDecoder
|
|
4929
|
+
const textDecoder = new TextDecoder();
|
|
4930
|
+
const decodeText = (bytes) => textDecoder.decode(bytes);
|
|
4937
4931
|
const textEncoder = new TextEncoder();
|
|
4938
4932
|
const encodeText = (text) => textEncoder.encode(text);
|
|
4939
4933
|
function concat(arrs, length) {
|
|
@@ -5522,143 +5516,6 @@ function parseDecimal(value) {
|
|
|
5522
5516
|
return normalized;
|
|
5523
5517
|
}
|
|
5524
5518
|
//#endregion
|
|
5525
|
-
//#region src/digest.ts
|
|
5526
|
-
const SHA2_256_MULTIHASH_CODE = 18;
|
|
5527
|
-
const SHA2_256_DIGEST_LENGTH = 32;
|
|
5528
|
-
const MAX_DIGEST_MULTIBASE_LENGTH = 1 + (SHA2_256_DIGEST_LENGTH + 2) * 8;
|
|
5529
|
-
const textDecoder = new TextDecoder();
|
|
5530
|
-
const getArrayBufferByteLength = Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, "byteLength")?.get;
|
|
5531
|
-
function isCanonicalVarintPrefix(data, prefix) {
|
|
5532
|
-
const canonical = addMulticodecPrefix(prefix.code, new Uint8Array());
|
|
5533
|
-
if (canonical.length !== prefix.prefixLength) return false;
|
|
5534
|
-
for (let i = 0; i < canonical.length; i++) if (data[i] !== canonical[i]) return false;
|
|
5535
|
-
return true;
|
|
5536
|
-
}
|
|
5537
|
-
function toWebCryptoBytes(bytes) {
|
|
5538
|
-
if (getArrayBufferByteLength != null) try {
|
|
5539
|
-
getArrayBufferByteLength.call(bytes.buffer);
|
|
5540
|
-
return bytes;
|
|
5541
|
-
} catch {}
|
|
5542
|
-
return new Uint8Array(bytes);
|
|
5543
|
-
}
|
|
5544
|
-
/**
|
|
5545
|
-
* Computes the SHA-256 digest of a byte sequence and encodes it as a
|
|
5546
|
-
* base58-btc multibase multihash suitable for FEP-ef61's
|
|
5547
|
-
* `digestMultibase` property.
|
|
5548
|
-
*
|
|
5549
|
-
* @param bytes The bytes to digest.
|
|
5550
|
-
* @returns The base58-btc multibase-encoded SHA-256 multihash.
|
|
5551
|
-
* @since 2.4.0
|
|
5552
|
-
*/
|
|
5553
|
-
async function computeDigestMultibase(bytes) {
|
|
5554
|
-
const digest = new Uint8Array(await crypto.subtle.digest("SHA-256", toWebCryptoBytes(bytes)));
|
|
5555
|
-
const multihash = addMulticodecPrefix(SHA2_256_MULTIHASH_CODE, addMulticodecPrefix(digest.length, digest));
|
|
5556
|
-
return textDecoder.decode(encodeMultibase("base58btc", multihash));
|
|
5557
|
-
}
|
|
5558
|
-
/**
|
|
5559
|
-
* Parses and validates a SHA-256 `digestMultibase` value.
|
|
5560
|
-
*
|
|
5561
|
-
* @param value The multibase-encoded multihash to parse.
|
|
5562
|
-
* @returns The digest algorithm and raw digest bytes.
|
|
5563
|
-
* @throws {TypeError} If the value is malformed or uses an unsupported hash
|
|
5564
|
-
* algorithm.
|
|
5565
|
-
* @since 2.4.0
|
|
5566
|
-
*/
|
|
5567
|
-
function parseDigestMultibase(value) {
|
|
5568
|
-
if (value.length > MAX_DIGEST_MULTIBASE_LENGTH) throw new TypeError("Invalid digestMultibase encoding.");
|
|
5569
|
-
let multihash;
|
|
5570
|
-
try {
|
|
5571
|
-
multihash = decodeMultibase(value);
|
|
5572
|
-
} catch (error) {
|
|
5573
|
-
throw new TypeError("Invalid digestMultibase encoding.", { cause: error });
|
|
5574
|
-
}
|
|
5575
|
-
const encoding = encodingFromBaseData(value);
|
|
5576
|
-
if (value !== textDecoder.decode(encodeMultibase(encoding.name, multihash))) throw new TypeError("Invalid digestMultibase encoding.");
|
|
5577
|
-
let algorithmPrefix;
|
|
5578
|
-
try {
|
|
5579
|
-
algorithmPrefix = getMulticodecPrefix(multihash);
|
|
5580
|
-
} catch (error) {
|
|
5581
|
-
throw new TypeError("Invalid digestMultibase multihash.", { cause: error });
|
|
5582
|
-
}
|
|
5583
|
-
if (!isCanonicalVarintPrefix(multihash, algorithmPrefix)) throw new TypeError("Invalid digestMultibase multihash.");
|
|
5584
|
-
if (algorithmPrefix.code !== SHA2_256_MULTIHASH_CODE) throw new TypeError(`Unsupported digest algorithm: 0x${algorithmPrefix.code.toString(16)}`);
|
|
5585
|
-
const lengthAndDigest = multihash.subarray(algorithmPrefix.prefixLength);
|
|
5586
|
-
let lengthPrefix;
|
|
5587
|
-
try {
|
|
5588
|
-
lengthPrefix = getMulticodecPrefix(lengthAndDigest);
|
|
5589
|
-
} catch (error) {
|
|
5590
|
-
throw new TypeError("Invalid digestMultibase multihash.", { cause: error });
|
|
5591
|
-
}
|
|
5592
|
-
if (!isCanonicalVarintPrefix(lengthAndDigest, lengthPrefix)) throw new TypeError("Invalid digestMultibase multihash.");
|
|
5593
|
-
const digest = lengthAndDigest.slice(lengthPrefix.prefixLength);
|
|
5594
|
-
if (lengthPrefix.code !== SHA2_256_DIGEST_LENGTH || digest.length !== SHA2_256_DIGEST_LENGTH) throw new TypeError("Invalid SHA-256 digest length.");
|
|
5595
|
-
return {
|
|
5596
|
-
algorithm: "sha2-256",
|
|
5597
|
-
digest
|
|
5598
|
-
};
|
|
5599
|
-
}
|
|
5600
|
-
function extractDigestMultibase(value) {
|
|
5601
|
-
const hashlink = typeof value === "string" ? value : value.href;
|
|
5602
|
-
const match = /^hl:([^:\r\n\u2028\u2029]+)$/i.exec(hashlink);
|
|
5603
|
-
if (match == null || match[0].length !== hashlink.length) throw new TypeError("Invalid simple hashlink.");
|
|
5604
|
-
return match[1];
|
|
5605
|
-
}
|
|
5606
|
-
/**
|
|
5607
|
-
* Parses a metadata-free `hl:` hashlink and validates its resource digest.
|
|
5608
|
-
*
|
|
5609
|
-
* @param value The simple hashlink to parse.
|
|
5610
|
-
* @returns The `digestMultibase` value carried by the hashlink.
|
|
5611
|
-
* @throws {TypeError} If the hashlink is malformed, contains metadata, or
|
|
5612
|
-
* carries an invalid or unsupported digest.
|
|
5613
|
-
* @since 2.4.0
|
|
5614
|
-
*/
|
|
5615
|
-
function parseHashlink(value) {
|
|
5616
|
-
const digestMultibase = extractDigestMultibase(value);
|
|
5617
|
-
parseDigestMultibase(digestMultibase);
|
|
5618
|
-
return { digestMultibase };
|
|
5619
|
-
}
|
|
5620
|
-
/**
|
|
5621
|
-
* Creates a metadata-free `hl:` hashlink from a `digestMultibase` value.
|
|
5622
|
-
*
|
|
5623
|
-
* @param digestMultibase The SHA-256 multibase multihash to embed.
|
|
5624
|
-
* @returns The simple hashlink.
|
|
5625
|
-
* @throws {TypeError} If the digest is malformed or unsupported.
|
|
5626
|
-
* @since 2.4.0
|
|
5627
|
-
*/
|
|
5628
|
-
function createHashlink(digestMultibase) {
|
|
5629
|
-
parseDigestMultibase(digestMultibase);
|
|
5630
|
-
return `hl:${digestMultibase}`;
|
|
5631
|
-
}
|
|
5632
|
-
/**
|
|
5633
|
-
* Verifies that bytes match a SHA-256 `digestMultibase` value.
|
|
5634
|
-
*
|
|
5635
|
-
* @param bytes The bytes to verify.
|
|
5636
|
-
* @param digestMultibase The expected digest.
|
|
5637
|
-
* @returns Whether the bytes match the digest.
|
|
5638
|
-
* @throws {TypeError} If the digest is malformed or unsupported.
|
|
5639
|
-
* @since 2.4.0
|
|
5640
|
-
*/
|
|
5641
|
-
async function verifyDigestMultibase(bytes, digestMultibase) {
|
|
5642
|
-
const expected = parseDigestMultibase(digestMultibase).digest;
|
|
5643
|
-
const actual = new Uint8Array(await crypto.subtle.digest("SHA-256", toWebCryptoBytes(bytes)));
|
|
5644
|
-
if (expected.length !== actual.length) return false;
|
|
5645
|
-
let difference = 0;
|
|
5646
|
-
for (let i = 0; i < expected.length; i++) difference |= expected[i] ^ actual[i];
|
|
5647
|
-
return difference === 0;
|
|
5648
|
-
}
|
|
5649
|
-
/**
|
|
5650
|
-
* Verifies that bytes match the resource digest in a simple hashlink.
|
|
5651
|
-
*
|
|
5652
|
-
* @param bytes The bytes to verify.
|
|
5653
|
-
* @param hashlink The simple hashlink containing the expected digest.
|
|
5654
|
-
* @returns Whether the bytes match the hashlink digest.
|
|
5655
|
-
* @throws {TypeError} If the hashlink or digest is malformed or unsupported.
|
|
5656
|
-
* @since 2.4.0
|
|
5657
|
-
*/
|
|
5658
|
-
async function verifyHashlink(bytes, hashlink) {
|
|
5659
|
-
return await verifyDigestMultibase(bytes, extractDigestMultibase(hashlink));
|
|
5660
|
-
}
|
|
5661
|
-
//#endregion
|
|
5662
5519
|
//#region src/langstr.ts
|
|
5663
5520
|
/**
|
|
5664
5521
|
* A language-tagged string which corresponds to the `rdf:langString` type.
|
|
@@ -5687,4 +5544,4 @@ LanguageString.prototype[Symbol.for("nodejs.util.inspect.custom")] = function(_d
|
|
|
5687
5544
|
return `<${this.locale.baseName}> ${inspect(this.toString(), options)}`;
|
|
5688
5545
|
};
|
|
5689
5546
|
//#endregion
|
|
5690
|
-
export { FetchError, LanguageString, UrlError, arePortableUrisEqual, canParseDecimal, canonicalizePortableUri,
|
|
5547
|
+
export { FetchError, LanguageString, UrlError, arePortableUrisEqual, canParseDecimal, canonicalizePortableUri, createActivityPubRequest, decodeMultibase, encodeMultibase, encodingFromBaseData, expandIPv6Address, exportDidKey, exportMultibaseKey, exportSpki, formatIri, getDocumentLoader, getFe34Origin, getRemoteDocument, getUserAgent, haveSameFe34Origin, haveSameIriOrigin, importDidKey, importMultibaseKey, importPem, importPkcs1, importSpki, isDecimal, isValidPublicIPv4Address, isValidPublicIPv6Address, logRequest, parseDecimal, parseDidKeyVerificationMethod, parseIri, parseJsonLdId, preloadedContexts, validatePublicUrl };
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
require("./chunk-C2EiDwsr.cjs");
|
|
2
|
-
require("./docloader-
|
|
3
|
-
require("./url-
|
|
4
|
-
require("./key-
|
|
5
|
-
require("./multibase-
|
|
6
|
-
require("./
|
|
7
|
-
require("./langstr-BOQHfJDr.cjs");
|
|
2
|
+
require("./docloader-BFedvemb.cjs");
|
|
3
|
+
require("./url-BvjYQdxL.cjs");
|
|
4
|
+
require("./key-_wXwomh_.cjs");
|
|
5
|
+
require("./multibase-Bz_UUDtL.cjs");
|
|
6
|
+
require("./langstr-CbAxaeEZ.cjs");
|
|
8
7
|
let node_assert = require("node:assert");
|
|
9
8
|
let node_test = require("node:test");
|
|
10
9
|
//#region src/decimal.ts
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import "./docloader-
|
|
2
|
-
import "./url-
|
|
3
|
-
import "./key-
|
|
4
|
-
import "./multibase-
|
|
5
|
-
import "./
|
|
6
|
-
import "./langstr-DDLc4833.mjs";
|
|
1
|
+
import "./docloader-Xi61Le8w.mjs";
|
|
2
|
+
import "./url-a2D8NAgh.mjs";
|
|
3
|
+
import "./key-CDGDH_vC.mjs";
|
|
4
|
+
import "./multibase-B4bvakyA.mjs";
|
|
5
|
+
import "./langstr-Di5AvKpB.mjs";
|
|
7
6
|
import { deepStrictEqual, throws } from "node:assert";
|
|
8
7
|
import { test } from "node:test";
|
|
9
8
|
//#region src/decimal.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require("./chunk-C2EiDwsr.cjs");
|
|
2
|
-
const require_request = require("./request-
|
|
2
|
+
const require_request = require("./request-cCPgOxYG.cjs");
|
|
3
3
|
const require_link = require("./link-FguCydMA.cjs");
|
|
4
|
-
const require_url = require("./url-
|
|
4
|
+
const require_url = require("./url-BvjYQdxL.cjs");
|
|
5
5
|
let _logtape_logtape = require("@logtape/logtape");
|
|
6
6
|
let _opentelemetry_api = require("@opentelemetry/api");
|
|
7
7
|
//#endregion
|
|
@@ -460,6 +460,10 @@ const preloadedContexts = {
|
|
|
460
460
|
"id": "@id",
|
|
461
461
|
"type": "@type",
|
|
462
462
|
"@protected": true,
|
|
463
|
+
"digestMultibase": {
|
|
464
|
+
"@id": "https://w3id.org/security#digestMultibase",
|
|
465
|
+
"@type": "https://w3id.org/security#multibase"
|
|
466
|
+
},
|
|
463
467
|
"proof": {
|
|
464
468
|
"@id": "https://w3id.org/security#proof",
|
|
465
469
|
"@type": "@id",
|
|
@@ -4296,14 +4300,6 @@ const preloadedContexts = {
|
|
|
4296
4300
|
"@type": "@id"
|
|
4297
4301
|
}
|
|
4298
4302
|
} },
|
|
4299
|
-
"https://w3id.org/fep/ef61": { "@context": {
|
|
4300
|
-
"gateways": {
|
|
4301
|
-
"@id": "https://w3id.org/fep/ef61/gateways",
|
|
4302
|
-
"@type": "@id",
|
|
4303
|
-
"@container": "@list"
|
|
4304
|
-
},
|
|
4305
|
-
"digestMultibase": "https://www.w3.org/ns/credentials/v2#digestMultibase"
|
|
4306
|
-
} },
|
|
4307
4303
|
"https://join-lemmy.org/context.json": { "@context": ["https://w3id.org/security/v1", {
|
|
4308
4304
|
"as": "https://www.w3.org/ns/activitystreams#",
|
|
4309
4305
|
"lemmy": "https://join-lemmy.org/ns#",
|
|
@@ -4538,10 +4534,8 @@ async function getRemoteDocument(url, response, fetch) {
|
|
|
4538
4534
|
* - <https://www.w3.org/ns/activitystreams>
|
|
4539
4535
|
* - <https://w3id.org/security/v1>
|
|
4540
4536
|
* - <https://w3id.org/security/data-integrity/v1>
|
|
4541
|
-
* - <https://w3id.org/security/data-integrity/v2>
|
|
4542
4537
|
* - <https://www.w3.org/ns/did/v1>
|
|
4543
4538
|
* - <https://w3id.org/security/multikey/v1>
|
|
4544
|
-
* - <https://w3id.org/fep/ef61>
|
|
4545
4539
|
* - <https://purl.archive.org/socialweb/webfinger>
|
|
4546
4540
|
* - <http://schema.org/>
|
|
4547
4541
|
* @param options Options for the document loader.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as name, i as logRequest, n as createActivityPubRequest, o as version, t as FetchError } from "./request-
|
|
1
|
+
import { a as name, i as logRequest, n as createActivityPubRequest, o as version, t as FetchError } from "./request-BOS-hNaf.mjs";
|
|
2
2
|
import { t as HttpHeaderLink } from "./link-NUUWCdnK.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { p as validatePublicUrl, t as UrlError } from "./url-a2D8NAgh.mjs";
|
|
4
4
|
import { getLogger } from "@logtape/logtape";
|
|
5
5
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
|
6
6
|
//#endregion
|
|
@@ -459,6 +459,10 @@ const preloadedContexts = {
|
|
|
459
459
|
"id": "@id",
|
|
460
460
|
"type": "@type",
|
|
461
461
|
"@protected": true,
|
|
462
|
+
"digestMultibase": {
|
|
463
|
+
"@id": "https://w3id.org/security#digestMultibase",
|
|
464
|
+
"@type": "https://w3id.org/security#multibase"
|
|
465
|
+
},
|
|
462
466
|
"proof": {
|
|
463
467
|
"@id": "https://w3id.org/security#proof",
|
|
464
468
|
"@type": "@id",
|
|
@@ -4295,14 +4299,6 @@ const preloadedContexts = {
|
|
|
4295
4299
|
"@type": "@id"
|
|
4296
4300
|
}
|
|
4297
4301
|
} },
|
|
4298
|
-
"https://w3id.org/fep/ef61": { "@context": {
|
|
4299
|
-
"gateways": {
|
|
4300
|
-
"@id": "https://w3id.org/fep/ef61/gateways",
|
|
4301
|
-
"@type": "@id",
|
|
4302
|
-
"@container": "@list"
|
|
4303
|
-
},
|
|
4304
|
-
"digestMultibase": "https://www.w3.org/ns/credentials/v2#digestMultibase"
|
|
4305
|
-
} },
|
|
4306
4302
|
"https://join-lemmy.org/context.json": { "@context": ["https://w3id.org/security/v1", {
|
|
4307
4303
|
"as": "https://www.w3.org/ns/activitystreams#",
|
|
4308
4304
|
"lemmy": "https://join-lemmy.org/ns#",
|
|
@@ -4537,10 +4533,8 @@ async function getRemoteDocument(url, response, fetch) {
|
|
|
4537
4533
|
* - <https://www.w3.org/ns/activitystreams>
|
|
4538
4534
|
* - <https://w3id.org/security/v1>
|
|
4539
4535
|
* - <https://w3id.org/security/data-integrity/v1>
|
|
4540
|
-
* - <https://w3id.org/security/data-integrity/v2>
|
|
4541
4536
|
* - <https://www.w3.org/ns/did/v1>
|
|
4542
4537
|
* - <https://w3id.org/security/multikey/v1>
|
|
4543
|
-
* - <https://w3id.org/fep/ef61>
|
|
4544
4538
|
* - <https://purl.archive.org/socialweb/webfinger>
|
|
4545
4539
|
* - <http://schema.org/>
|
|
4546
4540
|
* @param options Options for the document loader.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-C2EiDwsr.cjs");
|
|
2
|
-
const require_docloader = require("./docloader-
|
|
3
|
-
const require_request = require("./request-
|
|
4
|
-
const require_url = require("./url-
|
|
2
|
+
const require_docloader = require("./docloader-BFedvemb.cjs");
|
|
3
|
+
const require_request = require("./request-cCPgOxYG.cjs");
|
|
4
|
+
const require_url = require("./url-BvjYQdxL.cjs");
|
|
5
5
|
let node_assert = require("node:assert");
|
|
6
6
|
let node_test = require("node:test");
|
|
7
7
|
//#region ../../node_modules/.pnpm/glob-to-regexp@0.4.1/node_modules/glob-to-regexp/index.js
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as getRemoteDocument, r as preloadedContexts, t as getDocumentLoader } from "./docloader-
|
|
2
|
-
import { t as FetchError } from "./request-
|
|
3
|
-
import { t as UrlError } from "./url-
|
|
1
|
+
import { n as getRemoteDocument, r as preloadedContexts, t as getDocumentLoader } from "./docloader-Xi61Le8w.mjs";
|
|
2
|
+
import { t as FetchError } from "./request-BOS-hNaf.mjs";
|
|
3
|
+
import { t as UrlError } from "./url-a2D8NAgh.mjs";
|
|
4
4
|
import { deepStrictEqual, ok, rejects } from "node:assert";
|
|
5
5
|
import { test } from "node:test";
|
|
6
6
|
//#region \0rolldown/runtime.js
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-C2EiDwsr.cjs");
|
|
2
|
-
const require_url = require("./url-
|
|
2
|
+
const require_url = require("./url-BvjYQdxL.cjs");
|
|
3
3
|
let node_assert = require("node:assert");
|
|
4
4
|
let node_test = require("node:test");
|
|
5
5
|
let jsonld_dist_jsonld_esm_js = require("jsonld/dist/jsonld.esm.js");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as formatIri, c as haveSameIriOrigin,
|
|
1
|
+
import { a as formatIri, c as haveSameIriOrigin, d as parseIri, s as haveSameFe34Origin } from "./url-a2D8NAgh.mjs";
|
|
2
2
|
import { deepStrictEqual, ok, strictEqual } from "node:assert";
|
|
3
3
|
import { test } from "node:test";
|
|
4
4
|
import jsonld from "jsonld/dist/jsonld.esm.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as getMulticodecPrefix, r as removeMulticodecPrefix, t as addMulticodecPrefix } from "./multicodec-CyFp54fI.mjs";
|
|
2
|
-
import { n as encodeMultibase, t as decodeMultibase } from "./multibase-
|
|
2
|
+
import { n as encodeMultibase, t as decodeMultibase } from "./multibase-B4bvakyA.mjs";
|
|
3
3
|
import { Integer, Sequence } from "asn1js";
|
|
4
4
|
import { decodeBase64, encodeBase64 } from "byte-encodings/base64";
|
|
5
5
|
import { decodeBase64Url } from "byte-encodings/base64url";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require("./chunk-C2EiDwsr.cjs");
|
|
2
2
|
const require_multicodec = require("./multicodec-CxGVGa91.cjs");
|
|
3
|
-
const require_multibase = require("./multibase-
|
|
3
|
+
const require_multibase = require("./multibase-Bz_UUDtL.cjs");
|
|
4
4
|
let asn1js = require("asn1js");
|
|
5
5
|
let byte_encodings_base64 = require("byte-encodings/base64");
|
|
6
6
|
let byte_encodings_base64url = require("byte-encodings/base64url");
|
package/dist/tests/key.test.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require("./chunk-C2EiDwsr.cjs");
|
|
2
2
|
const require_multicodec = require("./multicodec-CxGVGa91.cjs");
|
|
3
|
-
const require_key = require("./key-
|
|
4
|
-
const require_multibase = require("./multibase-
|
|
3
|
+
const require_key = require("./key-_wXwomh_.cjs");
|
|
4
|
+
const require_multibase = require("./multibase-Bz_UUDtL.cjs");
|
|
5
5
|
let node_assert = require("node:assert");
|
|
6
6
|
let node_test = require("node:test");
|
|
7
7
|
//#region src/key.test.ts
|
package/dist/tests/key.test.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as addMulticodecPrefix } from "./multicodec-CyFp54fI.mjs";
|
|
2
|
-
import { a as importMultibaseKey, c as importSpki, d as importJwk, i as importDidKey, l as parseDidKeyVerificationMethod, n as exportMultibaseKey, o as importPem, r as exportSpki, s as importPkcs1, t as exportDidKey, u as exportJwk } from "./key-
|
|
3
|
-
import { n as encodeMultibase } from "./multibase-
|
|
2
|
+
import { a as importMultibaseKey, c as importSpki, d as importJwk, i as importDidKey, l as parseDidKeyVerificationMethod, n as exportMultibaseKey, o as importPem, r as exportSpki, s as importPkcs1, t as exportDidKey, u as exportJwk } from "./key-CDGDH_vC.mjs";
|
|
3
|
+
import { n as encodeMultibase } from "./multibase-B4bvakyA.mjs";
|
|
4
4
|
import { deepStrictEqual, rejects } from "node:assert";
|
|
5
5
|
import { test } from "node:test";
|
|
6
6
|
//#region src/key.test.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-C2EiDwsr.cjs");
|
|
2
|
-
const require_langstr = require("./langstr-
|
|
2
|
+
const require_langstr = require("./langstr-CbAxaeEZ.cjs");
|
|
3
3
|
let node_assert = require("node:assert");
|
|
4
4
|
let node_test = require("node:test");
|
|
5
5
|
let node_util = require("node:util");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require("../chunk-C2EiDwsr.cjs");
|
|
2
|
-
const require_multibase = require("../multibase-
|
|
2
|
+
const require_multibase = require("../multibase-Bz_UUDtL.cjs");
|
|
3
3
|
let node_assert = require("node:assert");
|
|
4
4
|
let node_test = require("node:test");
|
|
5
5
|
//#region src/multibase/multibase.test.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as
|
|
1
|
+
import { a as decodeText, i as names, n as encodeMultibase, o as encodeText, r as codes, t as decodeMultibase } from "../multibase-B4bvakyA.mjs";
|
|
2
2
|
import { deepStrictEqual } from "node:assert";
|
|
3
3
|
import { test } from "node:test";
|
|
4
4
|
//#region src/multibase/multibase.test.ts
|
|
@@ -303,16 +303,5 @@ function encoding(nameOrCode) {
|
|
|
303
303
|
else if (Object.prototype.hasOwnProperty.call(codes, nameOrCode)) return codes[nameOrCode];
|
|
304
304
|
else throw new Error(`Unsupported encoding: ${nameOrCode}`);
|
|
305
305
|
}
|
|
306
|
-
/**
|
|
307
|
-
* Get encoding multibase from data
|
|
308
|
-
*
|
|
309
|
-
* @param {string|Uint8Array} data
|
|
310
|
-
* @returns {Base}
|
|
311
|
-
* @throws {Error} Will throw if the encoding is not supported
|
|
312
|
-
*/
|
|
313
|
-
function encodingFromBaseData(data) {
|
|
314
|
-
if (data instanceof Uint8Array) data = decodeText(data);
|
|
315
|
-
return encoding(data[0]);
|
|
316
|
-
}
|
|
317
306
|
//#endregion
|
|
318
|
-
export {
|
|
307
|
+
export { decodeText as a, names as i, encodeMultibase as n, encodeText as o, codes as r, decodeMultibase as t };
|
|
@@ -305,17 +305,6 @@ function encoding(nameOrCode) {
|
|
|
305
305
|
else if (Object.prototype.hasOwnProperty.call(codes, nameOrCode)) return codes[nameOrCode];
|
|
306
306
|
else throw new Error(`Unsupported encoding: ${nameOrCode}`);
|
|
307
307
|
}
|
|
308
|
-
/**
|
|
309
|
-
* Get encoding multibase from data
|
|
310
|
-
*
|
|
311
|
-
* @param {string|Uint8Array} data
|
|
312
|
-
* @returns {Base}
|
|
313
|
-
* @throws {Error} Will throw if the encoding is not supported
|
|
314
|
-
*/
|
|
315
|
-
function encodingFromBaseData(data) {
|
|
316
|
-
if (data instanceof Uint8Array) data = decodeText(data);
|
|
317
|
-
return encoding(data[0]);
|
|
318
|
-
}
|
|
319
308
|
//#endregion
|
|
320
309
|
Object.defineProperty(exports, "codes", {
|
|
321
310
|
enumerable: true,
|
|
@@ -347,12 +336,6 @@ Object.defineProperty(exports, "encodeText", {
|
|
|
347
336
|
return encodeText;
|
|
348
337
|
}
|
|
349
338
|
});
|
|
350
|
-
Object.defineProperty(exports, "encodingFromBaseData", {
|
|
351
|
-
enumerable: true,
|
|
352
|
-
get: function() {
|
|
353
|
-
return encodingFromBaseData;
|
|
354
|
-
}
|
|
355
|
-
});
|
|
356
339
|
Object.defineProperty(exports, "names", {
|
|
357
340
|
enumerable: true,
|
|
358
341
|
get: function() {
|
|
@@ -3,7 +3,7 @@ let node_process = require("node:process");
|
|
|
3
3
|
node_process = require_chunk.__toESM(node_process, 1);
|
|
4
4
|
//#region deno.json
|
|
5
5
|
var name = "@fedify/vocab-runtime";
|
|
6
|
-
var version = "2.4.0-
|
|
6
|
+
var version = "2.4.0-pr.934.40+3331d302";
|
|
7
7
|
//#endregion
|
|
8
8
|
//#region src/request.ts
|
|
9
9
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-C2EiDwsr.cjs");
|
|
2
|
-
const require_request = require("./request-
|
|
2
|
+
const require_request = require("./request-cCPgOxYG.cjs");
|
|
3
3
|
let node_assert = require("node:assert");
|
|
4
4
|
let node_test = require("node:test");
|
|
5
5
|
let node_process = require("node:process");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { o as version, r as getUserAgent } from "./request-
|
|
1
|
+
import { o as version, r as getUserAgent } from "./request-BOS-hNaf.mjs";
|
|
2
2
|
import { deepStrictEqual } from "node:assert";
|
|
3
3
|
import { test } from "node:test";
|
|
4
4
|
import process from "node:process";
|
|
@@ -211,20 +211,6 @@ function parseAtUri(uri) {
|
|
|
211
211
|
return new URL("at://" + encodeURIComponent(authority) + path);
|
|
212
212
|
}
|
|
213
213
|
/**
|
|
214
|
-
* Checks whether the URL is an FEP-ef61 gateway base URI.
|
|
215
|
-
*/
|
|
216
|
-
function isGatewayUrl(url) {
|
|
217
|
-
return (url.protocol === "http:" || url.protocol === "https:") && url.username === "" && url.password === "" && url.pathname === "/" && url.search === "" && url.hash === "";
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Parses and validates an FEP-ef61 gateway base URI.
|
|
221
|
-
*/
|
|
222
|
-
function parseGatewayUrl(url) {
|
|
223
|
-
const parsed = parseIri(url);
|
|
224
|
-
if (!isGatewayUrl(parsed)) throw new TypeError("FEP-ef61 gateways must be HTTP(S) base URIs with no credentials, path, query, or fragment.");
|
|
225
|
-
return parsed;
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
214
|
* Validates a URL to prevent SSRF attacks.
|
|
229
215
|
*/
|
|
230
216
|
async function validatePublicUrl(url) {
|
|
@@ -438,12 +424,6 @@ Object.defineProperty(exports, "haveSameIriOrigin", {
|
|
|
438
424
|
return haveSameIriOrigin;
|
|
439
425
|
}
|
|
440
426
|
});
|
|
441
|
-
Object.defineProperty(exports, "isGatewayUrl", {
|
|
442
|
-
enumerable: true,
|
|
443
|
-
get: function() {
|
|
444
|
-
return isGatewayUrl;
|
|
445
|
-
}
|
|
446
|
-
});
|
|
447
427
|
Object.defineProperty(exports, "isValidPublicIPv4Address", {
|
|
448
428
|
enumerable: true,
|
|
449
429
|
get: function() {
|
|
@@ -456,12 +436,6 @@ Object.defineProperty(exports, "isValidPublicIPv6Address", {
|
|
|
456
436
|
return isValidPublicIPv6Address;
|
|
457
437
|
}
|
|
458
438
|
});
|
|
459
|
-
Object.defineProperty(exports, "parseGatewayUrl", {
|
|
460
|
-
enumerable: true,
|
|
461
|
-
get: function() {
|
|
462
|
-
return parseGatewayUrl;
|
|
463
|
-
}
|
|
464
|
-
});
|
|
465
439
|
Object.defineProperty(exports, "parseIri", {
|
|
466
440
|
enumerable: true,
|
|
467
441
|
get: function() {
|
|
@@ -210,20 +210,6 @@ function parseAtUri(uri) {
|
|
|
210
210
|
return new URL("at://" + encodeURIComponent(authority) + path);
|
|
211
211
|
}
|
|
212
212
|
/**
|
|
213
|
-
* Checks whether the URL is an FEP-ef61 gateway base URI.
|
|
214
|
-
*/
|
|
215
|
-
function isGatewayUrl(url) {
|
|
216
|
-
return (url.protocol === "http:" || url.protocol === "https:") && url.username === "" && url.password === "" && url.pathname === "/" && url.search === "" && url.hash === "";
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* Parses and validates an FEP-ef61 gateway base URI.
|
|
220
|
-
*/
|
|
221
|
-
function parseGatewayUrl(url) {
|
|
222
|
-
const parsed = parseIri(url);
|
|
223
|
-
if (!isGatewayUrl(parsed)) throw new TypeError("FEP-ef61 gateways must be HTTP(S) base URIs with no credentials, path, query, or fragment.");
|
|
224
|
-
return parsed;
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
213
|
* Validates a URL to prevent SSRF attacks.
|
|
228
214
|
*/
|
|
229
215
|
async function validatePublicUrl(url) {
|
|
@@ -389,4 +375,4 @@ function matchesIPv6Prefix(address, prefixWords, prefixLength) {
|
|
|
389
375
|
return true;
|
|
390
376
|
}
|
|
391
377
|
//#endregion
|
|
392
|
-
export { formatIri as a, haveSameIriOrigin as c,
|
|
378
|
+
export { formatIri as a, haveSameIriOrigin as c, parseIri as d, parseJsonLdId as f, expandIPv6Address as i, isValidPublicIPv4Address as l, arePortableUrisEqual as n, getFe34Origin as o, validatePublicUrl as p, canonicalizePortableUri as r, haveSameFe34Origin as s, UrlError as t, isValidPublicIPv6Address as u };
|
package/dist/tests/url.test.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require("./chunk-C2EiDwsr.cjs");
|
|
2
|
-
const require_url = require("./url-
|
|
2
|
+
const require_url = require("./url-BvjYQdxL.cjs");
|
|
3
3
|
let node_assert = require("node:assert");
|
|
4
4
|
let node_test = require("node:test");
|
|
5
5
|
//#region src/url.test.ts
|
|
@@ -228,23 +228,6 @@ let node_test = require("node:test");
|
|
|
228
228
|
(0, node_assert.deepStrictEqual)(parsed, new URL("ap+ef61://did%3Aweb%3Aexample.com%2500/u/1"));
|
|
229
229
|
(0, node_assert.deepStrictEqual)(require_url.formatIri(parsed), "ap+ef61://did:web:example.com%00/u/1");
|
|
230
230
|
});
|
|
231
|
-
(0, node_test.test)("parseGatewayUrl() accepts only HTTP(S) base URIs", () => {
|
|
232
|
-
for (const url of ["https://server.example/", "http://server.example/"]) {
|
|
233
|
-
(0, node_assert.deepStrictEqual)(require_url.parseGatewayUrl(url), new URL(url));
|
|
234
|
-
(0, node_assert.ok)(require_url.isGatewayUrl(new URL(url)));
|
|
235
|
-
}
|
|
236
|
-
for (const url of [
|
|
237
|
-
"ftp://server.example/",
|
|
238
|
-
"https://user:pass@server.example/",
|
|
239
|
-
"https://user@server.example/",
|
|
240
|
-
"https://server.example/path",
|
|
241
|
-
"https://server.example/?x=1",
|
|
242
|
-
"https://server.example/#fragment"
|
|
243
|
-
]) {
|
|
244
|
-
(0, node_assert.throws)(() => require_url.parseGatewayUrl(url), TypeError);
|
|
245
|
-
(0, node_assert.ok)(!require_url.isGatewayUrl(new URL(url)));
|
|
246
|
-
}
|
|
247
|
-
});
|
|
248
231
|
(0, node_test.test)("validatePublicUrl()", async () => {
|
|
249
232
|
await (0, node_assert.rejects)(() => require_url.validatePublicUrl("ftp://localhost"), require_url.UrlError);
|
|
250
233
|
await (0, node_assert.rejects)(() => require_url.validatePublicUrl("data:text/plain;base64,SGVsbG8sIFdvcmxkIQ=="), require_url.UrlError);
|