@fedify/vocab-runtime 2.0.8 → 2.0.9

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.
Files changed (47) hide show
  1. package/deno.json +1 -1
  2. package/dist/{chunk-CUT6urMc.cjs → chunk-CKQMccvm.cjs} +7 -9
  3. package/dist/jsonld.cjs +4 -5
  4. package/dist/jsonld.d.cts +3 -4
  5. package/dist/jsonld.d.ts +2 -2
  6. package/dist/jsonld.js +1 -3
  7. package/dist/mod.cjs +56 -121
  8. package/dist/mod.d.cts +1 -5
  9. package/dist/mod.d.ts +1 -5
  10. package/dist/mod.js +32 -100
  11. package/dist/tests/{chunk-DWy1uDak.cjs → chunk-Do9eywBl.cjs} +13 -17
  12. package/dist/tests/docloader.test.cjs +65 -106
  13. package/dist/tests/{docloader.test.js → docloader.test.mjs} +60 -107
  14. package/dist/tests/internal/multicodec.test.cjs +5 -7
  15. package/dist/tests/internal/{multicodec.test.js → multicodec.test.mjs} +3 -4
  16. package/dist/tests/key.test.cjs +39 -70
  17. package/dist/tests/{key.test.js → key.test.mjs} +32 -62
  18. package/dist/tests/langstr.test.cjs +6 -8
  19. package/dist/tests/{langstr.test.js → langstr.test.mjs} +2 -4
  20. package/dist/tests/{link-CdFPEo9O.cjs → link-B6ZWBZhf.cjs} +6 -8
  21. package/dist/tests/{link-Ck2yj4dH.js → link-B8JGXSS2.mjs} +1 -2
  22. package/dist/tests/link.test.cjs +5 -7
  23. package/dist/tests/{link.test.js → link.test.mjs} +3 -4
  24. package/dist/tests/multibase/multibase.test.cjs +10 -17
  25. package/dist/tests/multibase/{multibase.test.js → multibase.test.mjs} +10 -18
  26. package/dist/tests/{multibase-B2D6B0V4.cjs → multibase-CgYqpk4Z.cjs} +43 -49
  27. package/dist/tests/{multibase-BdHCGO4H.js → multibase-jcKrOpuU.mjs} +5 -12
  28. package/dist/tests/{multicodec-mHcRzSGY.cjs → multicodec-DeYop8xg.cjs} +16 -18
  29. package/dist/tests/{multicodec-DvC5xnX2.js → multicodec-aqbZnrNi.mjs} +1 -2
  30. package/dist/tests/{request-Cqx2eUpt.js → request-AitXfW_2.mjs} +4 -45
  31. package/dist/tests/{request-D2-F2dMS.cjs → request-C6iSYeYi.cjs} +38 -72
  32. package/dist/tests/request.test.cjs +23 -24
  33. package/dist/tests/request.test.mjs +42 -0
  34. package/dist/tests/{url-C5Vs9nYh.cjs → url-Cr2K-wzd.cjs} +31 -35
  35. package/dist/tests/{url-fW_DHbih.js → url-Djghaq0m.mjs} +3 -7
  36. package/dist/tests/url.test.cjs +5 -7
  37. package/dist/tests/{url.test.js → url.test.mjs} +3 -4
  38. package/package.json +3 -3
  39. package/dist/tests/request.test.js +0 -43
  40. /package/dist/tests/{docloader.test.d.ts → docloader.test.d.mts} +0 -0
  41. /package/dist/tests/internal/{multicodec.test.d.ts → multicodec.test.d.mts} +0 -0
  42. /package/dist/tests/{key.test.d.ts → key.test.d.mts} +0 -0
  43. /package/dist/tests/{langstr.test.d.ts → langstr.test.d.mts} +0 -0
  44. /package/dist/tests/{link.test.d.ts → link.test.d.mts} +0 -0
  45. /package/dist/tests/multibase/{multibase.test.d.ts → multibase.test.d.mts} +0 -0
  46. /package/dist/tests/{request.test.d.ts → request.test.d.mts} +0 -0
  47. /package/dist/tests/{url.test.d.ts → url.test.d.mts} +0 -0
package/deno.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fedify/vocab-runtime",
3
- "version": "2.0.8",
3
+ "version": "2.0.9",
4
4
  "license": "MIT",
5
5
  "exports": {
6
6
  ".": "./src/mod.ts",
@@ -1,4 +1,4 @@
1
- //#region rolldown:runtime
1
+ //#region \0rolldown/runtime.js
2
2
  var __create = Object.create;
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -19,12 +19,10 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
19
19
  value: mod,
20
20
  enumerable: true
21
21
  }) : target, mod));
22
-
23
22
  //#endregion
24
-
25
- Object.defineProperty(exports, '__toESM', {
26
- enumerable: true,
27
- get: function () {
28
- return __toESM;
29
- }
30
- });
23
+ Object.defineProperty(exports, "__toESM", {
24
+ enumerable: true,
25
+ get: function() {
26
+ return __toESM;
27
+ }
28
+ });
package/dist/jsonld.cjs CHANGED
@@ -1,8 +1,7 @@
1
- const require_chunk = require('./chunk-CUT6urMc.cjs');
2
- const jsonld_dist_jsonld_esm_js = require_chunk.__toESM(require("jsonld/dist/jsonld.esm.js"));
3
-
1
+ const require_chunk = require("./chunk-CKQMccvm.cjs");
2
+ let jsonld_dist_jsonld_esm_js = require("jsonld/dist/jsonld.esm.js");
3
+ jsonld_dist_jsonld_esm_js = require_chunk.__toESM(jsonld_dist_jsonld_esm_js);
4
4
  //#region src/jsonld.ts
5
5
  var jsonld_default = jsonld_dist_jsonld_esm_js.default;
6
-
7
6
  //#endregion
8
- module.exports = jsonld_default;
7
+ module.exports = jsonld_default;
package/dist/jsonld.d.cts CHANGED
@@ -1,6 +1,5 @@
1
- import * as jsonld0 from "jsonld";
1
+ import * as _$jsonld from "jsonld";
2
2
 
3
3
  //#region src/jsonld.d.ts
4
- declare const _default: typeof jsonld0;
5
- //#endregion
6
- export { _default as default };
4
+ declare const _default: typeof _$jsonld;
5
+ export = _default;
package/dist/jsonld.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import * as jsonld0 from "jsonld";
1
+ import * as _$jsonld from "jsonld";
2
2
 
3
3
  //#region src/jsonld.d.ts
4
- declare const _default: typeof jsonld0;
4
+ declare const _default: typeof _$jsonld;
5
5
  //#endregion
6
6
  export { _default as default };
package/dist/jsonld.js CHANGED
@@ -1,7 +1,5 @@
1
1
  import jsonld from "jsonld/dist/jsonld.esm.js";
2
-
3
2
  //#region src/jsonld.ts
4
3
  var jsonld_default = jsonld;
5
-
6
4
  //#endregion
7
- export { jsonld_default as default };
5
+ export { jsonld_default as default };
package/dist/mod.cjs CHANGED
@@ -1,16 +1,18 @@
1
- const require_chunk = require('./chunk-CUT6urMc.cjs');
2
- const __logtape_logtape = require_chunk.__toESM(require("@logtape/logtape"));
3
- const __opentelemetry_api = require_chunk.__toESM(require("@opentelemetry/api"));
4
- const node_process = require_chunk.__toESM(require("node:process"));
5
- const node_dns_promises = require_chunk.__toESM(require("node:dns/promises"));
6
- const node_net = require_chunk.__toESM(require("node:net"));
7
- const asn1js = require_chunk.__toESM(require("asn1js"));
8
- const byte_encodings_base64 = require_chunk.__toESM(require("byte-encodings/base64"));
9
- const byte_encodings_base64url = require_chunk.__toESM(require("byte-encodings/base64url"));
10
- const node_crypto = require_chunk.__toESM(require("node:crypto"));
11
- const pkijs = require_chunk.__toESM(require("pkijs"));
12
- const __multiformats_base_x = require_chunk.__toESM(require("@multiformats/base-x"));
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.ts
15
17
  const preloadedContexts = {
16
18
  "https://www.w3.org/ns/activitystreams": { "@context": {
@@ -4258,50 +4260,10 @@ const preloadedContexts = {
4258
4260
  }
4259
4261
  } }
4260
4262
  };
4261
- var contexts_default = preloadedContexts;
4262
-
4263
4263
  //#endregion
4264
4264
  //#region deno.json
4265
4265
  var name = "@fedify/vocab-runtime";
4266
- var version = "2.0.8";
4267
- var license = "MIT";
4268
- var exports$1 = {
4269
- ".": "./src/mod.ts",
4270
- "./jsonld": "./src/jsonld.ts"
4271
- };
4272
- var description = "Runtime library for @fedify/vocab";
4273
- var author = {
4274
- "name": "Hong Minhee",
4275
- "email": "hong@minhee.org",
4276
- "url": "https://hongminhee.org/"
4277
- };
4278
- var imports = {
4279
- "@multiformats/base-x": "npm:@multiformats/base-x@^4.0.1",
4280
- "asn1js": "npm:asn1js@^3.0.6",
4281
- "byte-encodings": "npm:byte-encodings@^1.0.11",
4282
- "fetch-mock": "npm:fetch-mock@^12.5.4",
4283
- "jsonld": "npm:jsonld@^9.0.0",
4284
- "pkijs": "npm:pkijs@^3.2.5"
4285
- };
4286
- var exclude = ["dist", "node_modules"];
4287
- var publish = { "exclude": ["**/*.test.ts", "tsdown.config.ts"] };
4288
- var tasks = {
4289
- "check": "deno fmt --check && deno lint && deno check src/*.ts",
4290
- "test": "deno test"
4291
- };
4292
- var deno_default = {
4293
- name,
4294
- version,
4295
- license,
4296
- exports: exports$1,
4297
- description,
4298
- author,
4299
- imports,
4300
- exclude,
4301
- publish,
4302
- tasks
4303
- };
4304
-
4266
+ var version = "2.0.9";
4305
4267
  //#endregion
4306
4268
  //#region src/link.ts
4307
4269
  const parametersNeedLowerCase = ["rel", "type"];
@@ -4483,7 +4445,6 @@ var HttpHeaderLink = class HttpHeaderLink {
4483
4445
  return new this(...inputs).toString();
4484
4446
  }
4485
4447
  };
4486
-
4487
4448
  //#endregion
4488
4449
  //#region src/request.ts
4489
4450
  /**
@@ -4529,27 +4490,25 @@ function createActivityPubRequest(url, options = {}) {
4529
4490
  * @since 1.3.0
4530
4491
  */
4531
4492
  function getUserAgent({ software, url } = {}) {
4532
- const fedify = `Fedify/${deno_default.version}`;
4493
+ const fedify = `Fedify/${version}`;
4533
4494
  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;
4534
4495
  const userAgent = software == null ? [fedify] : [software, fedify];
4535
4496
  if (runtime != null) userAgent.push(runtime);
4536
4497
  if (url != null) userAgent.push(`+${url.toString()}`);
4537
- const first = userAgent.shift();
4538
- return `${first} (${userAgent.join("; ")})`;
4498
+ return `${userAgent.shift()} (${userAgent.join("; ")})`;
4539
4499
  }
4540
4500
  /**
4541
4501
  * Logs the request.
4542
4502
  * @param request The request to log.
4543
4503
  * @internal
4544
4504
  */
4545
- function logRequest(logger$1, request) {
4546
- logger$1.debug("Fetching document: {method} {url} {headers}", {
4505
+ function logRequest(logger, request) {
4506
+ logger.debug("Fetching document: {method} {url} {headers}", {
4547
4507
  method: request.method,
4548
4508
  url: request.url,
4549
4509
  headers: Object.fromEntries(request.headers.entries())
4550
4510
  });
4551
4511
  }
4552
-
4553
4512
  //#endregion
4554
4513
  //#region src/url.ts
4555
4514
  var UrlError = class extends Error {
@@ -4568,8 +4527,7 @@ async function validatePublicUrl(url) {
4568
4527
  if (hostname.startsWith("[") && hostname.endsWith("]")) hostname = hostname.substring(1, hostname.length - 2);
4569
4528
  if (hostname === "localhost") throw new UrlError("Localhost is not allowed");
4570
4529
  if ("Deno" in globalThis && !(0, node_net.isIP)(hostname)) {
4571
- const netPermission = await Deno.permissions.query({ name: "net" });
4572
- if (netPermission.state !== "granted") return;
4530
+ if ((await Deno.permissions.query({ name: "net" })).state !== "granted") return;
4573
4531
  }
4574
4532
  if ("Bun" in globalThis) {
4575
4533
  if (hostname === "example.com" || hostname.endsWith(".example.com")) return;
@@ -4605,13 +4563,11 @@ function expandIPv6Address(address) {
4605
4563
  if (address.startsWith("::")) address = "0000" + address;
4606
4564
  if (address.endsWith("::")) address = address + "0000";
4607
4565
  address = address.replace("::", ":0000".repeat(8 - (address.match(/:/g) || []).length) + ":");
4608
- const parts = address.split(":");
4609
- return parts.map((part) => part.padStart(4, "0")).join(":");
4566
+ return address.split(":").map((part) => part.padStart(4, "0")).join(":");
4610
4567
  }
4611
-
4612
4568
  //#endregion
4613
4569
  //#region src/docloader.ts
4614
- const logger = (0, __logtape_logtape.getLogger)([
4570
+ const logger = (0, _logtape_logtape.getLogger)([
4615
4571
  "fedify",
4616
4572
  "runtime",
4617
4573
  "docloader"
@@ -4626,7 +4582,7 @@ const DEFAULT_MAX_REDIRECTION = 20;
4626
4582
  * @throws {FetchError} If the response is not OK.
4627
4583
  * @internal
4628
4584
  */
4629
- async function getRemoteDocument(url, response, fetch$1) {
4585
+ async function getRemoteDocument(url, response, fetch) {
4630
4586
  const documentUrl = response.url === "" ? url : response.url;
4631
4587
  const docUrl = new URL(documentUrl);
4632
4588
  if (!response.ok) {
@@ -4664,7 +4620,7 @@ async function getRemoteDocument(url, response, fetch$1) {
4664
4620
  alternateUrl: altUri.href,
4665
4621
  url: documentUrl
4666
4622
  });
4667
- return await fetch$1(altUri.href);
4623
+ return await fetch(altUri.href);
4668
4624
  }
4669
4625
  }
4670
4626
  }
@@ -4690,15 +4646,14 @@ async function getRemoteDocument(url, response, fetch$1) {
4690
4646
  attrPattern.lastIndex = 0;
4691
4647
  while ((attrMatch = attrPattern.exec(tagContent)) !== null) {
4692
4648
  const key = attrMatch[1].toLowerCase();
4693
- const value = attrMatch[2] ?? attrMatch[3] ?? attrMatch[4] ?? "";
4694
- attribs[key] = value;
4649
+ attribs[key] = attrMatch[2] ?? attrMatch[3] ?? attrMatch[4] ?? "";
4695
4650
  }
4696
4651
  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) {
4697
4652
  logger.debug("Found alternate document: {alternateUrl} from {url}", {
4698
4653
  alternateUrl: attribs.href,
4699
4654
  url: documentUrl
4700
4655
  });
4701
- return await fetch$1(new URL(attribs.href, docUrl).href);
4656
+ return await fetch(new URL(attribs.href, docUrl).href);
4702
4657
  }
4703
4658
  }
4704
4659
  document = JSON.parse(html);
@@ -4733,16 +4688,15 @@ async function getRemoteDocument(url, response, fetch$1) {
4733
4688
  * @since 1.3.0
4734
4689
  */
4735
4690
  function getDocumentLoader({ allowPrivateAddress, skipPreloadedContexts, userAgent } = {}) {
4736
- const tracerProvider = __opentelemetry_api.trace.getTracerProvider();
4737
- const tracer = tracerProvider.getTracer(deno_default.name, deno_default.version);
4691
+ const tracer = _opentelemetry_api.trace.getTracerProvider().getTracer(name, version);
4738
4692
  async function load(url, options, redirected = 0, visited = /* @__PURE__ */ new Set()) {
4739
4693
  options?.signal?.throwIfAborted();
4740
4694
  const currentUrl = new URL(url).href;
4741
- if (!skipPreloadedContexts && currentUrl in contexts_default) {
4695
+ if (!skipPreloadedContexts && currentUrl in preloadedContexts) {
4742
4696
  logger.debug("Using preloaded context: {url}.", { url: currentUrl });
4743
4697
  return {
4744
4698
  contextUrl: null,
4745
- document: contexts_default[currentUrl],
4699
+ document: preloadedContexts[currentUrl],
4746
4700
  documentUrl: currentUrl
4747
4701
  };
4748
4702
  }
@@ -4757,7 +4711,7 @@ function getDocumentLoader({ allowPrivateAddress, skipPreloadedContexts, userAge
4757
4711
  }
4758
4712
  visited.add(currentUrl);
4759
4713
  return await tracer.startActiveSpan("activitypub.fetch_document", {
4760
- kind: __opentelemetry_api.SpanKind.CLIENT,
4714
+ kind: _opentelemetry_api.SpanKind.CLIENT,
4761
4715
  attributes: { "url.full": currentUrl }
4762
4716
  }, async (span) => {
4763
4717
  try {
@@ -4794,7 +4748,7 @@ function getDocumentLoader({ allowPrivateAddress, skipPreloadedContexts, userAge
4794
4748
  } catch (error) {
4795
4749
  span.recordException(error);
4796
4750
  span.setStatus({
4797
- code: __opentelemetry_api.SpanStatusCode.ERROR,
4751
+ code: _opentelemetry_api.SpanStatusCode.ERROR,
4798
4752
  message: String(error)
4799
4753
  });
4800
4754
  throw error;
@@ -4805,7 +4759,6 @@ function getDocumentLoader({ allowPrivateAddress, skipPreloadedContexts, userAge
4805
4759
  }
4806
4760
  return load;
4807
4761
  }
4808
-
4809
4762
  //#endregion
4810
4763
  //#region src/internal/multicodec.ts
4811
4764
  const INVALID_MULTICODEC_PREFIX = "Invalid multicodec prefix.";
@@ -4845,7 +4798,6 @@ function addMulticodecPrefix(code, payload) {
4845
4798
  prefixed.set(payload, prefix.length);
4846
4799
  return prefixed;
4847
4800
  }
4848
-
4849
4801
  //#endregion
4850
4802
  //#region src/jwk.ts
4851
4803
  function validateCryptoKey(key, type) {
@@ -4853,11 +4805,9 @@ function validateCryptoKey(key, type) {
4853
4805
  if (!key.extractable) throw new TypeError("The key is not extractable.");
4854
4806
  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!");
4855
4807
  if (key.algorithm.name === "RSASSA-PKCS1-v1_5") {
4856
- const algorithm = key.algorithm;
4857
- 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.");
4808
+ 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.");
4858
4809
  }
4859
4810
  }
4860
-
4861
4811
  //#endregion
4862
4812
  //#region src/multibase/util.ts
4863
4813
  const textDecoder = new TextDecoder();
@@ -4873,7 +4823,6 @@ function concat(arrs, length) {
4873
4823
  }
4874
4824
  return output;
4875
4825
  }
4876
-
4877
4826
  //#endregion
4878
4827
  //#region src/multibase/base.ts
4879
4828
  /**
@@ -4882,8 +4831,8 @@ function concat(arrs, length) {
4882
4831
  var Base = class {
4883
4832
  codeBuf;
4884
4833
  codec;
4885
- constructor(name$1, code, factory, alphabet) {
4886
- this.name = name$1;
4834
+ constructor(name, code, factory, alphabet) {
4835
+ this.name = name;
4887
4836
  this.code = code;
4888
4837
  this.alphabet = alphabet;
4889
4838
  this.codeBuf = encodeText(this.code);
@@ -4898,12 +4847,11 @@ var Base = class {
4898
4847
  return this.codec.decode(string);
4899
4848
  }
4900
4849
  };
4901
-
4902
4850
  //#endregion
4903
4851
  //#region src/multibase/rfc4648.ts
4904
4852
  const decode = (string, alphabet, bitsPerChar) => {
4905
- const codes$1 = {};
4906
- for (let i = 0; i < alphabet.length; ++i) codes$1[alphabet[i]] = i;
4853
+ const codes = {};
4854
+ for (let i = 0; i < alphabet.length; ++i) codes[alphabet[i]] = i;
4907
4855
  let end = string.length;
4908
4856
  while (string[end - 1] === "=") --end;
4909
4857
  const out = new Uint8Array(end * bitsPerChar / 8 | 0);
@@ -4911,7 +4859,7 @@ const decode = (string, alphabet, bitsPerChar) => {
4911
4859
  let buffer = 0;
4912
4860
  let written = 0;
4913
4861
  for (let i = 0; i < end; ++i) {
4914
- const value = codes$1[string[i]];
4862
+ const value = codes[string[i]];
4915
4863
  if (value === void 0) throw new SyntaxError("Invalid character " + string[i]);
4916
4864
  buffer = buffer << bitsPerChar | value;
4917
4865
  bits += bitsPerChar;
@@ -4954,7 +4902,6 @@ const rfc4648 = (bitsPerChar) => (alphabet) => {
4954
4902
  }
4955
4903
  };
4956
4904
  };
4957
-
4958
4905
  //#endregion
4959
4906
  //#region src/multibase/constants.ts
4960
4907
  const identity = () => {
@@ -4990,7 +4937,7 @@ const constants = [
4990
4937
  [
4991
4938
  "base10",
4992
4939
  "9",
4993
- __multiformats_base_x.default,
4940
+ _multiformats_base_x.default,
4994
4941
  "0123456789"
4995
4942
  ],
4996
4943
  [
@@ -5062,25 +5009,25 @@ const constants = [
5062
5009
  [
5063
5010
  "base36",
5064
5011
  "k",
5065
- __multiformats_base_x.default,
5012
+ _multiformats_base_x.default,
5066
5013
  "0123456789abcdefghijklmnopqrstuvwxyz"
5067
5014
  ],
5068
5015
  [
5069
5016
  "base36upper",
5070
5017
  "K",
5071
- __multiformats_base_x.default,
5018
+ _multiformats_base_x.default,
5072
5019
  "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
5073
5020
  ],
5074
5021
  [
5075
5022
  "base58btc",
5076
5023
  "z",
5077
- __multiformats_base_x.default,
5024
+ _multiformats_base_x.default,
5078
5025
  "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
5079
5026
  ],
5080
5027
  [
5081
5028
  "base58flickr",
5082
5029
  "Z",
5083
- __multiformats_base_x.default,
5030
+ _multiformats_base_x.default,
5084
5031
  "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"
5085
5032
  ],
5086
5033
  [
@@ -5116,7 +5063,6 @@ const codes = constants.reduce((prev, tupple) => {
5116
5063
  prev[tupple[1]] = names[tupple[0]];
5117
5064
  return prev;
5118
5065
  }, {});
5119
-
5120
5066
  //#endregion
5121
5067
  //#region src/multibase/mod.ts
5122
5068
  /**
@@ -5153,8 +5099,7 @@ function decodeMultibase(data) {
5153
5099
  "k",
5154
5100
  "K"
5155
5101
  ].includes(prefix)) data = data.toLowerCase();
5156
- const enc = encoding(data[0]);
5157
- return enc.decode(data.substring(1));
5102
+ return encoding(data[0]).decode(data.substring(1));
5158
5103
  }
5159
5104
  /**
5160
5105
  * Get the encoding by name or code
@@ -5176,7 +5121,6 @@ function encodingFromBaseData(data) {
5176
5121
  if (data instanceof Uint8Array) data = decodeText(data);
5177
5122
  return encoding(data[0]);
5178
5123
  }
5179
-
5180
5124
  //#endregion
5181
5125
  //#region src/key.ts
5182
5126
  const algorithms = {
@@ -5201,8 +5145,7 @@ async function importSpki(pem) {
5201
5145
  } catch (_) {
5202
5146
  throw new TypeError("Invalid PEM-SPKI format.");
5203
5147
  }
5204
- const pki = pkijs.PublicKeyInfo.fromBER(spki);
5205
- const oid = pki.algorithm.algorithmId;
5148
+ const oid = pkijs.PublicKeyInfo.fromBER(spki).algorithm.algorithmId;
5206
5149
  const algorithm = algorithms[oid];
5207
5150
  if (algorithm == null) throw new TypeError("Unsupported algorithm: " + oid);
5208
5151
  return await crypto.subtle.importKey("spki", spki, algorithm, true, ["verify"]);
@@ -5216,8 +5159,7 @@ async function importSpki(pem) {
5216
5159
  */
5217
5160
  async function exportSpki(key) {
5218
5161
  validateCryptoKey(key);
5219
- const spki = await crypto.subtle.exportKey("spki", key);
5220
- let pem = (0, byte_encodings_base64.encodeBase64)(spki);
5162
+ let pem = (0, byte_encodings_base64.encodeBase64)(await crypto.subtle.exportKey("spki", key));
5221
5163
  pem = (pem.match(/.{1,64}/g) || []).join("\n");
5222
5164
  return `-----BEGIN PUBLIC KEY-----\n${pem}\n-----END PUBLIC KEY-----\n`;
5223
5165
  }
@@ -5229,16 +5171,14 @@ async function exportSpki(key) {
5229
5171
  * @since 1.5.0
5230
5172
  */
5231
5173
  function importPkcs1(pem) {
5232
- const key = (0, node_crypto.createPublicKey)({
5174
+ return importSpki((0, node_crypto.createPublicKey)({
5233
5175
  key: pem,
5234
5176
  format: "pem",
5235
5177
  type: "pkcs1"
5236
- });
5237
- const spki = key.export({
5178
+ }).export({
5238
5179
  type: "spki",
5239
5180
  format: "pem"
5240
- });
5241
- return importSpki(spki);
5181
+ }));
5242
5182
  }
5243
5183
  const PKCS1_HEADER = /^\s*-----BEGIN\s+RSA\s+PUBLIC\s+KEY-----\s*\n/;
5244
5184
  /**
@@ -5265,12 +5205,11 @@ async function importMultibaseKey(key) {
5265
5205
  const { code } = getMulticodecPrefix(decoded);
5266
5206
  const content = removeMulticodecPrefix(decoded);
5267
5207
  if (code === 4613) {
5268
- const keyObject = (0, node_crypto.createPublicKey)({
5208
+ const exported = (0, node_crypto.createPublicKey)({
5269
5209
  key: content,
5270
5210
  format: "der",
5271
5211
  type: "pkcs1"
5272
- });
5273
- const exported = keyObject.export({
5212
+ }).export({
5274
5213
  type: "spki",
5275
5214
  format: "der"
5276
5215
  });
@@ -5302,21 +5241,18 @@ async function exportMultibaseKey(key) {
5302
5241
  const decodedN = (0, byte_encodings_base64url.decodeBase64Url)(jwk.n);
5303
5242
  const n = new Uint8Array(decodedN.length + 1);
5304
5243
  n.set(decodedN, 1);
5305
- const sequence = new asn1js.Sequence({ value: [new asn1js.Integer({
5244
+ content = new asn1js.Sequence({ value: [new asn1js.Integer({
5306
5245
  isHexOnly: true,
5307
5246
  valueHex: n
5308
5247
  }), new asn1js.Integer({
5309
5248
  isHexOnly: true,
5310
5249
  valueHex: (0, byte_encodings_base64url.decodeBase64Url)(jwk.e)
5311
- })] });
5312
- content = sequence.toBER(false);
5250
+ })] }).toBER(false);
5313
5251
  code = 4613;
5314
5252
  } else throw new TypeError("Unsupported key type: " + JSON.stringify(key.algorithm));
5315
- const prefixed = addMulticodecPrefix(code, new Uint8Array(content));
5316
- const encoded = encodeMultibase("base58btc", prefixed);
5253
+ const encoded = encodeMultibase("base58btc", addMulticodecPrefix(code, new Uint8Array(content)));
5317
5254
  return new TextDecoder().decode(encoded);
5318
5255
  }
5319
-
5320
5256
  //#endregion
5321
5257
  //#region src/langstr.ts
5322
5258
  /**
@@ -5345,7 +5281,6 @@ LanguageString.prototype[Symbol.for("Deno.customInspect")] = function(inspect, o
5345
5281
  LanguageString.prototype[Symbol.for("nodejs.util.inspect.custom")] = function(_depth, options, inspect) {
5346
5282
  return `<${this.locale.baseName}> ${inspect(this.toString(), options)}`;
5347
5283
  };
5348
-
5349
5284
  //#endregion
5350
5285
  exports.FetchError = FetchError;
5351
5286
  exports.LanguageString = LanguageString;
@@ -5367,5 +5302,5 @@ exports.importSpki = importSpki;
5367
5302
  exports.isValidPublicIPv4Address = isValidPublicIPv4Address;
5368
5303
  exports.isValidPublicIPv6Address = isValidPublicIPv6Address;
5369
5304
  exports.logRequest = logRequest;
5370
- exports.preloadedContexts = contexts_default;
5371
- exports.validatePublicUrl = validatePublicUrl;
5305
+ exports.preloadedContexts = preloadedContexts;
5306
+ exports.validatePublicUrl = validatePublicUrl;
package/dist/mod.d.cts CHANGED
@@ -1,9 +1,6 @@
1
1
  import { Logger } from "@logtape/logtape";
2
2
 
3
3
  //#region src/contexts.d.ts
4
- // Preloaded context documents
5
- // https://github.com/fedify-dev/fedify/issues/74
6
- // cSpell: disable
7
4
  declare const preloadedContexts: Record<string, unknown>;
8
5
  //#endregion
9
6
  //#region src/request.d.ts
@@ -267,7 +264,6 @@ declare class LanguageString extends String {
267
264
  //#endregion
268
265
  //#region src/multibase/types.d.ts
269
266
  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";
270
-
271
267
  /**
272
268
  * - Names of the supported encodings
273
269
  */
@@ -331,4 +327,4 @@ declare function isValidPublicIPv4Address(address: string): boolean;
331
327
  declare function isValidPublicIPv6Address(address: string): boolean;
332
328
  declare function expandIPv6Address(address: string): string;
333
329
  //#endregion
334
- export { AuthenticatedDocumentLoaderFactory, CreateRequestOptions, DocumentLoader, DocumentLoaderFactory, DocumentLoaderFactoryOptions, DocumentLoaderOptions, FetchError, GetDocumentLoaderOptions, GetUserAgentOptions, LanguageString, RemoteDocument, UrlError, createActivityPubRequest, decodeMultibase, encodeMultibase, encodingFromBaseData, expandIPv6Address, exportMultibaseKey, exportSpki, getDocumentLoader, getRemoteDocument, getUserAgent, importMultibaseKey, importPem, importPkcs1, importSpki, isValidPublicIPv4Address, isValidPublicIPv6Address, logRequest, preloadedContexts, validatePublicUrl };
330
+ export { type AuthenticatedDocumentLoaderFactory, type CreateRequestOptions, type DocumentLoader, type DocumentLoaderFactory, type DocumentLoaderFactoryOptions, type DocumentLoaderOptions, FetchError, type GetDocumentLoaderOptions, type GetUserAgentOptions, LanguageString, type RemoteDocument, UrlError, createActivityPubRequest, decodeMultibase, encodeMultibase, encodingFromBaseData, expandIPv6Address, exportMultibaseKey, exportSpki, getDocumentLoader, getRemoteDocument, getUserAgent, importMultibaseKey, importPem, importPkcs1, importSpki, isValidPublicIPv4Address, isValidPublicIPv6Address, logRequest, preloadedContexts, validatePublicUrl };
package/dist/mod.d.ts CHANGED
@@ -1,9 +1,6 @@
1
1
  import { Logger } from "@logtape/logtape";
2
2
 
3
3
  //#region src/contexts.d.ts
4
- // Preloaded context documents
5
- // https://github.com/fedify-dev/fedify/issues/74
6
- // cSpell: disable
7
4
  declare const preloadedContexts: Record<string, unknown>;
8
5
  //#endregion
9
6
  //#region src/request.d.ts
@@ -267,7 +264,6 @@ declare class LanguageString extends String {
267
264
  //#endregion
268
265
  //#region src/multibase/types.d.ts
269
266
  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";
270
-
271
267
  /**
272
268
  * - Names of the supported encodings
273
269
  */
@@ -331,4 +327,4 @@ declare function isValidPublicIPv4Address(address: string): boolean;
331
327
  declare function isValidPublicIPv6Address(address: string): boolean;
332
328
  declare function expandIPv6Address(address: string): string;
333
329
  //#endregion
334
- export { AuthenticatedDocumentLoaderFactory, CreateRequestOptions, DocumentLoader, DocumentLoaderFactory, DocumentLoaderFactoryOptions, DocumentLoaderOptions, FetchError, GetDocumentLoaderOptions, GetUserAgentOptions, LanguageString, RemoteDocument, UrlError, createActivityPubRequest, decodeMultibase, encodeMultibase, encodingFromBaseData, expandIPv6Address, exportMultibaseKey, exportSpki, getDocumentLoader, getRemoteDocument, getUserAgent, importMultibaseKey, importPem, importPkcs1, importSpki, isValidPublicIPv4Address, isValidPublicIPv6Address, logRequest, preloadedContexts, validatePublicUrl };
330
+ export { type AuthenticatedDocumentLoaderFactory, type CreateRequestOptions, type DocumentLoader, type DocumentLoaderFactory, type DocumentLoaderFactoryOptions, type DocumentLoaderOptions, FetchError, type GetDocumentLoaderOptions, type GetUserAgentOptions, LanguageString, type RemoteDocument, UrlError, createActivityPubRequest, decodeMultibase, encodeMultibase, encodingFromBaseData, expandIPv6Address, exportMultibaseKey, exportSpki, getDocumentLoader, getRemoteDocument, getUserAgent, importMultibaseKey, importPem, importPkcs1, importSpki, isValidPublicIPv4Address, isValidPublicIPv6Address, logRequest, preloadedContexts, validatePublicUrl };